Overview

This website provides API documentation for the careMESH National Provider Directory (Branded SEARCH). The documentation and the API responses are unique to the FHIR server defined below. Different FHIR servers may include different data sources and/or FHIR extensions.

The careMESH directory is a comprehensive, nationwide directory of US based healthcare providers and organizations. It is built from the ground up, based on the following standards:

At this time, implementation of DaVinci standards is partial and evolving, as the DaVinci standard itself is evolving.

The directory is built based on regular updates from over 500 sources. These include:

  • Medicare and Medicaid data sets
  • State medical board information
  • Hospital directory data
  • Individual provider updates of their own data
  • Payor directory data
For each customer, careMESH is able to build a custom integration of the various data sources.

The data sources that are included in this FHIR server are: All CMS Data Sources (e.g. NPPES, Medicare Care Compare, Hospital Compare...) NOTE: THIS APPLICATION IS FOR DEMO PURPOSES. IT IS CAPACITY AND RATE LIMITED AND THEREFORE CERTAIN TRANSACTIONS MAY BE SLOW OR TIME OUT.

There are two basic ways in which to access the directory. careMESH provides an interactive, user facing interface and through our FHIR based API. These are available at the following URLs for this server:

User Interface https://cms-data.caremesh.app/
API FHIR Server Root https://cms-data.caremesh.app/4_0_0/

Because the careMESH Directory is a standard FHIR service, you can use any client software supporting the FHIR standard to acess it. Since FHIR is a relatively simple REST-based standard, you can also access it easily using any HTTP client library.

For most resource types, you will find interactive examples and sample code for searching and reading that resource type. These are by no means comprehensive, and in most cases you will need to supplement the code with additional authentication information before they will work. In other words, they are demonstrations of how you might implement client code for the given operation, but should not be considered ready for production.

Authentication

Authentication Overview

careMESH Directory supports a variety of configurable authentication mechanisms. This document will document the specific authentication mechanisms supported for this instance of careMESH directory. That said, almost any form of authentication can be supported. Currently active supported forms include:

  • Authentication using an API key (JWT)
  • Authentication against Google accounts
  • Authentication against Microsoft Azure Active Directory
  • Authentication using SAML
  • SMART on FHIR Authentication

The following sections describe authentication strategies enabled for this directory instance:

Open

This is a pulbic API and does not require authentication. API requests may be rate limited to prevent system overload.

AuditEvent

Search Parameters

AuditEvent resources can be searched for using an HTTP GET request to the endpoint (i.e. /AuditEvent).

This resource type supports the following parameters:
Name Type Description Examples
action token Type of action performed during the event -
address string Identifier for the network access point of the user device -
agent reference Identifier of who -
date date Time when the event was recorded -
entity reference Specific instance of resource -
entity-type token Type of entity involved -
_type token the resource type
  • Practitioner
  • Organization
active token AuditEvent is active
  • true
  • false
_content string freeform search -
_count number The number of results to return -
_elements token only return the listed elements (comma-separated) -
_id token the resource ID -
_tag token search by meta tag -
identifier token search by identifier -
_lastUpdated date resource last updated date -
_uuid token the fhir resource id -
reference reference Search by a resource that this resource references -

Endpoint

Search Parameters

Endpoint resources can be searched for using an HTTP GET request to the endpoint (i.e. /Endpoint).

This resource type supports the following parameters:
Name Type Description Examples
organization reference search by organization id -
connection-type token Protocol/Profile/Standard to be used with this endpoint connection -
name string A name that this endpoint can be indentified by -
status token The current status of the Endpoint (usually expected to be active) -
_type token the resource type
  • Practitioner
  • Organization
active token Endpoint is active
  • true
  • false
_content string freeform search -
_count number The number of results to return -
_elements token only return the listed elements (comma-separated) -
_id token the resource ID -
_tag token search by meta tag -
identifier token search by identifier -
_lastUpdated date resource last updated date -
_uuid token the fhir resource id -
reference reference Search by a resource that this resource references -

HealthcareService

Description

The HealthcareService resource is used by careMESH to describe what services are offered by an organization at a location. The services offered may be unknown, in which case the service <code>type</code> and <code>specialty</code> lists will be empty. This should be interpreted to mean that the organization provides services at the address but the nature of the services is unknown.

Search Parameters

HealthcareService resources can be searched for using an HTTP GET request to the endpoint (i.e. /HealthcareService).

This resource type supports the following parameters:
Name Type Description Examples
organization reference search by organization id -
organization-name string -
location reference search by location id -
specialty string search by service specialty -
name string A portion of the Healthcare service name -
_type token the resource type
  • Practitioner
  • Organization
active token HealthcareService is active
  • true
  • false
_content string freeform search -
_count number The number of results to return -
_elements token only return the listed elements (comma-separated) -
_id token the resource ID -
_tag token search by meta tag -
identifier token search by identifier -
_lastUpdated date resource last updated date -
_uuid token the fhir resource id -
reference reference Search by a resource that this resource references -
address-city string search by city -
address-country string search by country -
address-postalcode string search by postal code -
address-state string search by state -
address-district string search by county -
location-alias string The location's alias -
telecom string the value of any kind of contact -
email token A value in an email contact -
phone token A value in a phone contact -
__npi token search by npi (placeholder to put npi in "_content" searches) -
__pac-id token search by identifier (placeholder to put PECOS Associate Control ID in "_content" searches) -
__pecos-enrollment-id token search by identifier (placeholder to put PECOS Enrollment ID in "_content" searches) -
__ccn token search by identifier (placeholder to put CMS Control Number (ccn) in "_content" searches) -

Location

Description

The Location resource represents a physical location at which service is provided. careMESH validates the vast majority of Locations against the USPS address database, therefore each location should represent a valid address. careMESH does not currently use the per-location contact information, so any contact information provided is purely for informational purposes and will not be used for careMESH delivery of messages. This resource is based on the FHIR R4 resource type, linked below.

Search Parameters

Location resources can be searched for using an HTTP GET request to the endpoint (i.e. /Location).

This resource type supports the following parameters:
Name Type Description Examples
name string A portion of the location's name or alias -
organization reference search by organization id -
_type token the resource type
  • Practitioner
  • Organization
active token Location is active
  • true
  • false
_content string freeform search -
_count number The number of results to return -
_elements token only return the listed elements (comma-separated) -
_id token the resource ID -
_tag token search by meta tag -
identifier token search by identifier -
_lastUpdated date resource last updated date -
_uuid token the fhir resource id -
reference reference Search by a resource that this resource references -
address-city string search by city -
address-country string search by country -
address-postalcode string search by postal code -
address-state string search by state -
address-district string search by county -
telecom string the value of any kind of contact -
email token A value in an email contact -
phone token A value in a phone contact -

Media

Description

The Media resource type is used by careMESH directory to provide a photograph of a practitioner where one is available. No other media types are supported. The resource is based on the FHIR R4 Media resource type, linked below.

Search Parameters

Media resources can be searched for using an HTTP GET request to the endpoint (i.e. /Media).

This resource type supports the following parameters:
Name Type Description Examples
subject reference search by organization id -
_type token the resource type
  • Practitioner
  • Organization
active token Media is active
  • true
  • false
_content string freeform search -
_count number The number of results to return -
_elements token only return the listed elements (comma-separated) -
_id token the resource ID -
_tag token search by meta tag -
identifier token search by identifier -
_lastUpdated date resource last updated date -
_uuid token the fhir resource id -
reference reference Search by a resource that this resource references -

Organization

Description

A careMESH directory Organization describes an organization that provides patient care, directly or indirectly. Some typical examples would include hospitals and provider practice groups. It is based on the FHIR Organization resource type, linked below.

Examples

Fetch an organization by id

This query gets an organization by resource ID

Method GET
Path Organization/8fd27e25-f522-5ff3-9e91-f52e7ac3e852
Code

                
                          
Result
Click "Try it!" to see results!

Search Parameters

Organization resources can be searched for using an HTTP GET request to the endpoint (i.e. /Organization).

This resource type supports the following parameters:
Name Type Description Examples
name string search by name -
name:contains string search by name substring -
partof reference An organization of which this organization forms a part -
__preferredName string the preferred name for the organization -
type string the type of the organization -
_type token the resource type
  • Practitioner
  • Organization
active token Organization is active
  • true
  • false
_content string freeform search -
_count number The number of results to return -
_elements token only return the listed elements (comma-separated) -
_id token the resource ID -
_tag token search by meta tag -
identifier token search by identifier -
_lastUpdated date resource last updated date -
_uuid token the fhir resource id -
reference reference Search by a resource that this resource references -
address-city string search by city -
address-country string search by country -
address-postalcode string search by postal code -
address-state string search by state -
address-district string search by county -
location-alias string The location's alias -
telecom string the value of any kind of contact -
email token A value in an email contact -
phone token A value in a phone contact -
__npi token search by npi (placeholder to put npi in "_content" searches) -
__pac-id token search by identifier (placeholder to put PECOS Associate Control ID in "_content" searches) -
__pecos-enrollment-id token search by identifier (placeholder to put PECOS Enrollment ID in "_content" searches) -
__ccn token search by identifier (placeholder to put CMS Control Number (ccn) in "_content" searches) -

Practitioner

Description

A careMESH Practitioner is any healthcare worker. This includes the obvious (doctors and nurses), but also administrative support personnel. It is based on the FHIR Practitioner resource type, linked below.

Examples

Read

Retrieve Dr. Sanjay Gupta by ID

Method GET
Path Practitioner/df259467-5d08-55b8-af51-50cf84f8ce3b
Code

                
                          
Result
Click "Try it!" to see results!

Simple search

Find Dr. Sanjay Gupta by first & last name

Method GET
Path Practitioner/?family=gupta&given=sanjay&address-city=atlanta
Code

                
                          
Result
Click "Try it!" to see results!

Find doctors by location

Find all the doctors with last name "walker" in New York city

Method GET
Path Practitioner/?family=walker&address-city=new%2Byork&state=ny
Code

                
                          
Result
Click "Try it!" to see results!

search by role (type) code for practitionerRoles that reference this one

Method GET
Path Practitioner
Code

                
                          
Result
Click "Try it!" to see results!

Search Parameters

Practitioner resources can be searched for using an HTTP GET request to the endpoint (i.e. /Practitioner).

This resource type supports the following parameters:
Name Type Description Examples
specialty string Search by provider specialty. Specialty can be expressed in several ways: * by code (e.g. "207Q00000X") * by system + code (e.g. "http://nucc.org/provider-taxonomy|207Q00000X") * by display name (e.g. "Family Medicine") Note that do to the presence of display names, the type is set to string. If you need an exact match on a specialty code, use the "specialty:exact" search parameter. -
__physician token limit search to physicians and podiatrists (CM Proprietary) -
__preferredName string the preferred name for the practitioner -
organization reference an organization with which the practitioner is associated -
location reference a location with which the practitioner is associated -
telecom string the value of any kind of contact -
email token A value in an email contact -
phone token A value in a phone contact -
_type token the resource type
  • Practitioner
  • Organization
active token Practitioner is active
  • true
  • false
_content string freeform search -
_count number The number of results to return -
_elements token only return the listed elements (comma-separated) -
_id token the resource ID -
_tag token search by meta tag -
identifier token search by identifier -
_lastUpdated date resource last updated date -
_uuid token the fhir resource id -
reference reference Search by a resource that this resource references -
family string search by family name -
given string search by given name -
address-city string search by city -
address-country string search by country -
address-postalcode string search by postal code -
address-state string search by state -
address-district string search by county -
location-alias string The location's alias -
_organization-name string Search by an organization name -
primary-designator token Is this provider a PCP? (NY Only) -
program-participation token Public health programs this provider participates in? (NY Only) -
program-new-patient token Accepting Patients in a Program? (NY Only) -
custom-designation token search by custom designation -
role-title token Title of provider in this Practitioner Role (NY Only) -
direct-address token -
__npi token search by npi (placeholder to put npi in "_content" searches) -
__pac-id token search by identifier (placeholder to put PECOS Associate Control ID in "_content" searches) -
__pecos-enrollment-id token search by identifier (placeholder to put PECOS Enrollment ID in "_content" searches) -
__ccn token search by identifier (placeholder to put CMS Control Number (ccn) in "_content" searches) -

PractitionerRole

Description

The PractitionerRole resource describes the link between a practitioner and an organization, a location, or both. In many cases, there will be contact information for the practitioner when they are working for at this combination of organization & location. This contact information should be preferred over contact information from other sources, as it is more specific. For more detail, refer to the FHIR PractitionerRole definitions linked below.

Examples

Find a physician's roles

Search for all PractitionerRoles associated with Dr. Sanjay Gupta, by ID

Method GET
Path PractitionerRole/?practitioner=Practitioner%2Fdf259467-5d08-55b8-af51-50cf84f8ce3b
Code

                
                          
Result
Click "Try it!" to see results!

Find all doctors at a hospital

Return a list of the first 10 doctors who are employed by Tampa General Hospital

Method GET
Path PractitionerRole/?organization=8fd27e25-f522-5ff3-9e91-f52e7ac3e852&_count=10
Code

                
                          
Result
Click "Try it!" to see results!

Search Parameters

PractitionerRole resources can be searched for using an HTTP GET request to the endpoint (i.e. /PractitionerRole).

This resource type supports the following parameters:
Name Type Description Examples
specialty string search by provider specialty -
location reference search by location id -
practitioner reference search by practitioner id -
role token -
organization reference search by organization id -
family string search by family name -
given string search by given name -
_type token the resource type
  • Practitioner
  • Organization
active token PractitionerRole is active
  • true
  • false
_content string freeform search -
_count number The number of results to return -
_elements token only return the listed elements (comma-separated) -
_id token the resource ID -
_tag token search by meta tag -
identifier token search by identifier -
_lastUpdated date resource last updated date -
_uuid token the fhir resource id -
reference reference Search by a resource that this resource references -
primary-designator token Is this provider a PCP? (NY Only) -
program-participation token Public health programs this provider participates in? (NY Only) -
program-new-patient token Accepting Patients in a Program? (NY Only) -
custom-designation token search by custom designation -
role-title token Title of provider in this Practitioner Role (NY Only) -
direct-address token -
address-city string search by city -
address-country string search by country -
address-postalcode string search by postal code -
address-state string search by state -
address-district string search by county -
location-alias string The location's alias -
telecom string the value of any kind of contact -
email token A value in an email contact -
phone token A value in a phone contact -
__npi token search by npi (placeholder to put npi in "_content" searches) -
__pac-id token search by identifier (placeholder to put PECOS Associate Control ID in "_content" searches) -
__pecos-enrollment-id token search by identifier (placeholder to put PECOS Enrollment ID in "_content" searches) -
__ccn token search by identifier (placeholder to put CMS Control Number (ccn) in "_content" searches) -

SearchParameter

Description

A SearchParameter resource specifies a search parameter that may be used on the RESTful API to search or filter on a resource. The SearchParameter resource declares: * how to refer to the search parameter from a client * how the search parameter is to be understood by the server * where in the source resource the parameter matches The search parameter resources present in the implementation guide (at each parameter's canonical URL) should be preferred over those provided by the server.

Search Parameters

SearchParameter resources can be searched for using an HTTP GET request to the endpoint (i.e. /SearchParameter).

This resource type supports the following parameters:
Name Type Description Examples
_id string search by parameter id -