Tag Archives: provider directories

Provider Network Directories on FHIR

FHIR logoI’ve done a lot of work on designing provider network directory schemas.  Much of it is described in this blog (“provider directories” tag) and in the related “Interoperability” entry on the DDOD website.  But so far, the effort has been focused on designing a standard data schema that could adequately represent the way the healthcare industry currently operates in terms of provider networks and health insurance coverage.  Now I’d like to highlight an important factor that’s been overlooked: the mechanics of moving this data between systems.

Simplified provider network directory modelIn their recent machine readability requirement for insurance issuers on health insurance marketplaces, CMS/CCIIO did not specify the transport mechanism for the QHP schema. The only requirement is to register the URL containing the data with HIOS (Health Insurance Oversight System). The URLs could be to a static page or to a dynamic RESTful query. I’d like to point out that CMS or third party services have an opportunity to provide significant value to both consumer applications and transaction oriented systems by adding a RESTful FHIR layer. Ideally, this would be done in front of globally aggregated datasets that have been registered in HIOS.  The resulting FHIR API would have resource types of Provider, Network and Plan, which correspond to the JSON files of the QHP provider directory schema.  The most relevant resource type

Much of the usefulness for machine readable provider network requirement is around enabling consumers to ask certain common questions when they need to select an insurance plan. (For example: Which insurance plans is my doctor in? Is she taking new patients at a desired facility under a particular plan? What plans have the specialists I need in a specific geographic region?) These questions could easily translate to FHIR queries using the Search interaction on any of the defined resource types.  With required monthly updates and potentially frequent changes in network and provider demographics, there are also use cases that benefit from availability of the History interaction, either as a type-level change log or an instance-level version view.  Additionally, by adding search parameters, response record count limits, and pagination in front of network directory datasets, load from traffic on aggregated data servers could be much more efficient.

NPPES on FHIR serverI set up a server with an example of a FHIR API implemented for provider directories, although limited to NPPES data model.  A big thanks to Dave McCallie for creating and sharing the original codebase: GitHub.com/ DavidXPortnoy/ nppes_fhir_demo.  You can find the live non-production sandbox version here: http://fhir-dev.ddod.us:8080/nppes_fhir.  Here are a few sample queries you can run against it:

I’m working on expanding the functionality of this server to accommodate the full provider network directory schema, including components of provider demographics, facilities, organizations, credentialing, insurance plans, plan coverage, and formularies.

 


Edit 10/2015: It should be said that my HHS Entrepreneur-in-Residence colleague, Alan Viars, has led an effort to build a robust API for NPPES for HHS IDEA Lab’s NPPES Modernization Project.  It’s designed to handle both efficient read access wanted by many applications and robust methods for making changes.  Although initially it focused on providing the simplest purpose built API possible, Alan is now looking at creating a version that would be based on FHIR practices.


Additional FHIR server implementations

The current FHIR server is quite simple.  It’s implemented using Python, Elasticsearch as document store for NPPES records, Flask as Python web server, and Gunicorn as WSGI web gateway.  Let’s call it the Flask-ElasticSearch implementation.   There are a couple other more popular alternatives.

It seems that the most active FHIR open source codebase is HAPI, located at https://github.com/jamesagnew/hapi-fhir.  It’s managed by James Agnew at University Health Network.  This is a Java / Maven library for creating both FHIR servers and clients.  Its ability to easily bolt FHIR onto any database makes it ideal for extending the API to existing applications.  It also enables existing apps to connect to other FHIR servers as a client.  This codebase is quite full featured, supporting all current FHIR resource types, most operations, and both XML and JSON encodings.  Relative to other alternatives, it’s well documented as well.  There’s a live demo project available: http://fhirtest.uhn.ca/

Finally, FHIRbase, located at https://github.com/fhirbase/fhirbase, is a relational storage server for FHIR with a document API.  It uses PostgreSQL as the relational database engine and written in PLpgSQL.  FHIRplace, located at https://github.com/fhirbase/fhirplace, provides a server that accesses FHIRbase.  It’s written in Clojure, Node.js, and JavaScript.  And like HAPI, it supports all current FHIR resource types, operations, and both XML and JSON encodings.

There are also a surprisingly large number of Windows-based FHIR servers that I haven’t considered, due to a desire to stay on non-proprietary platforms.  Although perhaps it shouldn’t be that surprising given the Windows heavy history of EHR and other healthcare apps.

 

Provider network directory standards

Here’s my most recent contribution to the effort around deploying data interoperability standards for use with healthcare provider network directories.  The schema proposed for use by QHP (Qualified Health Plans) on health insurance marketplaces can be found on GitHub:  https://github.com/CMSgov/QHP-provider-formulary-APIs.  Designing an improved model for the provider directory and plan coverage standards required analysis of:

The data model now looks like this:

Background info on this topic can be found in the related DDOD article.

Vision of healthcare provider network directories

Background

There are four pieces of information that U.S. consumers need to make informed choices about their healthcare insurance coverage.

  1. Directory: What are the healthcare provider demographics, including specialty, locations, hours, credentialing?
  2. Coverage: Does the provider take a particular insurance plan?
  3. Benefits: What are the benefits, copays and formularies associated with my plan?
  4. Availability: Is the provider accepting new patients for this particular insurance plan and location?

Without having these capabilities in place, consumers are likely to make uninformed decisions or delay decisions.  That in turn has significant health and financial impacts.

Problem

Healthcare provider directories have historically been supplied by the NPPES database.  But it has been lacking in terms of being accurate, up to date, or even able to represent reality accurately.  First, the overhead of making changes is quite high and there hasn’t been an easy way for a provider to delegate ability to make changes.  Second, the incentives aren’t there.  There are no penalties for abandoning updates and many providers don’t realize how frequently NPPES data is downloaded and propagated to consumer-facing applications.  Third, the data model is fixed by regulation, but it cannot accurately represent the many-to-many relationships among practitioners, groups, facilities and locations.  It also doesn’t adequately reflect the ability to manage multiple specialties and accreditations.


Incidentally, my work in the area of provider directories has been driven by the needs of DDOD.  Specifically, there were at least five DDOD use cases that directly depended on solving the provider directory problems.  But the actual problem extends well past the use cases.  An accurate and standardized “provider dimension” is needed for any type of analytics or applications involving providers.  That could include having access to insurance coverage information to analytics on utilization, open payments, fraud and comparative effectiveness research.

Addressing consumers need to understand their options in terms of coverage and benefits has historically been a challenge that’s yet to be solved.  There are routine complaints of consumers signing up for new coverage, only to find out that their provider doesn’t take their new plan or that they are not accepting patients for their plan.  These problems have been the driver for Insurance Marketplaces (aka, FFMs) instituting a new rule requiring QHPs (Qualified Health Plans) to publish machine readable provider network directories that are updated on at least a monthly basis.  This rule, which is effective open enrollment 2015 and the technical challenges around it are described in detail in the related DDOD discussion on provider network directories.  (Note that although the rule refers to “provider directories”, in reality it includes all 4 pieces of information.)  CMS already collects all this information from QHPs during the annual qualifications process.  It asks payers to submit template spreadsheets containing information about their plans, benefits and provider networks.

The seemingly simple question as to whether a provider is taking new patients has been a challenge as well.  That’s because the answer is both non-binary and volatile.  The answer might be different depending on insurance plan, type of referral, location and even time of day.  It may also fluctuate based on patient load, vacations and many other factors.  The challenged becomes even harder when you consider the fact that providers often don’t have the time or financial incentive to update this information with the payers.

Approach

Aneesh Chopra and I put together an industry workgroup to help determine how to best implement the QHP rule.  The workgroup spans the full spectrum of industry participants, payers, payer-provider intermediaries, providers and consumer applications.  It should be noted that we have an especially strong representation from payers and intermediaries, representing a substantial portion of the market.  While looking at the best ways to implement the rule from a technical and logistical perspective, we identified a missing leg: incentives.

3 pillars needed to reach critical mass for a new standard to become sustainable
Technology Logistics Incentives

The QHP rule and the specified data schema provides a starting point for the technology.  Workgroup participants also suggested how to use their organizations’ existing systems capabilities to fulfill the rule requirements.  We discussed logistics of how data can get moved from its multiple points of origin to CMS submission.

Through this exercise, it became quite clear that the implementation of the QHP mandate could make significant progress towards achieving its stated goals if certain actions are taken in another area — Medicare Advantage (MA).  That’s because, much of the data in the proposed standard originates with providers, rather than payers.  Such data typically includes provider demographics, credentialing, locations, and whether they’re accepting new patients.  But at this point, marketplaces are able to only exert economic pressure on payers.  MA, on the other hand, can leverage the STAR rating system to establish incentives for providers as well, which typically get propagated into provider-payer contracts.  STAR incentives are adjusted every year.  So it should be well within CMS’s ability to establish the desired objectives.  They can also leverage the CAHPS survey to measure the level of progress these efforts are making towards providing the necessary decision making tools to consumers.  At the moment, marketplaces don’t have any such metric.

It’s worth noting that Original Medicare (aka, Medicare FFS or Fee for Service) has an even stronger ability to create incentives for providers and I’ve been talking with CMS’s CPI group about publishing PECOS data to the new provider directory standard.  PECOS enjoys much more accurate and up to date provider data than NPPES, due to its use for billing.  But the PECOS implementation is not as challenging as its QHP counterpart in that we’re effectively publishing coverage for only one plan.  So complexities around plan coverage and their mapping to provider networks don’t apply.  But consumers still benefit from up to date provider information.

Vision

If we create incentive-driven solutions in the areas of Marketplaces, Medicare Advantage, Managed Medicaid, and Original Medicare, we might be able to solve the problems plaguing NPPES without requiring new regulation or a systems overhaul.  We will be including the vast majority of the practitioners across the U.S., almost all payers and deliver the needed information for consumers to make decisions about their coverage.

Finally, we are partnering with Google to leverage the timing of the QHP rule with a deployment of a compatible standard on Schema.org.  Doing so would help cement the standards around provider directories and insurance coverage even further.  It empowers healthcare providers and payers to publish their information in a decentralized manner.  Since updating information is so easy, it can happen more frequently.  Third party applications could pull this information directly from the source, rather than relying on a central body.  And the fact that search engines correctly interpret and index previously unstructured data means faster answers for consumers even outside of specialized applications.

Healthcare Provider Registries

As I’ve been reviewing Use Cases for DDOD (Demand-Driven Open Data), I’m realizing how much the industry depends on an up-to-date, reliable source of healthcare providers (aka, physicians, groups, hospitals, etc.).  Although some people may also call such an effort “NPI registry”, the actual need identified encompasses much more than even the fields and capabilities of the existing NPPES database.

Here are just the Use Cases that directly mention NPPES and other existing registries.

And besides these, there are at least a dozen more that would benefit from this repository, since they rely on the “provider” dimension for their analytics.  For example, most analysis on provider quality, utilization, and fraud depend on this dimension.

The most obvious improvements needed are around:

  • More realistic association between provider, group, and location, recognizing that these are many-to-many relationships that change with time
  • More accurate specialty taxonomy
  • More up to date information (since NPPES entries are rarely updated)
  • Easier method to query this information (rather than relying on zip file downloads)

But there are challenges on the “input” side of the equation as well.  There also seems to be some confusion in terms of assigning rights for modifying registries.  For example, it’s not easy for a provider group to figure out how to delegate update rights for all of its physicians to third party administrator.

There’s a growing list of companies and non-profits (including the American Medical Association) that have been trying to capitalize on the opportunities for a better solution.  As we go about working on the use cases mentioned here, I’d be looking to build a body of knowledge that would contribute to solving the core problems identified.


Related post:  CMS is enabling streamlined access to NPPES, PECOS, EHR to 3rd parties

 

CMS is enabling streamlined access to NPPES, PECOS, EHR to 3rd parties

I had a couple conversations this week with subject matter experts from industry and government about the NPPES and PECOS systems.

NPPES (National Plan and Provider Enumeration System) is a registry of healthcare providers, including their NPI (National Provider Identifier), specialty taxonomy and contact information.

PECOS (Medicare Provider Enrollment, Chain, and Ownership System) is a system that supports Medicare enrollment for providers and has its own similar database.

There seems to be a lot of demand for these systems to be:

  1. Kept up to date.  Currently NPPES is often too out of date to be useful for patients.  PECOS is updated more frequently, but isn’t available publicly.
  2. Easier to update.  One of the reasons NPPES is not updated often is the difficulty and overhead of doing so.  It would benefit greatly from an easier user interface, a public API and ability for surrogate 3rd parties to make updates.
  3. More realistic.  The data model for NPPES is much to simplistic to reflect the way providers currently do their work.  It should allow for many-to-many relationships between physicians, organizations and locations.
  4. Kept in sync. Discrepancies between NPPES and PECOS may be hard to resolve.  Sometimes it’s due to NPPES being out of date.  Other times it’s because the provider handles billing for Medicare differently .

First, my colleague and fellow HHS Entrepreneur-in-Residence, Alan Viars, has been leading a phenomenal effort to build a robust API for NPPES.  It was created as part of HHS IDEA Lab’s NPPES Modernization Project.  It’s designed to handle both efficient read access wanted by many applications and robust methods for making changes.  It was developed to focus on functionality and let external developers design beautiful user interfaces.

Second, CMS’s Identity & Access (I&A) Management System may help with some of these needs.  I&A is supposed to enable “streamlined access to NPPES, PECOS, and EHR” to both healthcare providers and their 3rd party surrogates.  There’s an introductory presentation on the topic that explains further: http://www.cms.gov/Outreach-and-Education/Outreach/NPC/Downloads/508-IA-Call-FINALDM2.pdf.  That said, I still need to familiarize myself with it and its capabilities.

 

PS: In an effort to help people who had problems with the CMS website, I uploaded a video to YouTube that demonstrates how a 3rd party can request to work on behalf of a healthcare provider as a surrogate.