Interoperability APIs

Paramount interoperability APIs enable Paramount members to consent to have their health data shared with third-party applications. It also allows third-party application owners to connect to provider and pharmacy directories, further referred to as “public non-member specific data.”

Paramount Interoperability APIs provide the following functionality:

  • Enable developers to register member-facing applications.
  • Enable members to provide consent for an application to access their data.
  • Use the HL7 Fast Healthcare Interoperability Resources (FHIR) standard for member data.
  • Use the HL7 FHIR standard for sharing public non-member specific data.

Third Party Applications

Developer-friendly, standards-based APIs that enable third party applications for vendors to connect their applications or programs to access Paramount data.

To use the Paramount interoperability API, a developer must register their application. An organization must register as a user and complete the registration application before submitting their application for consideration.

API Permissions and Scopes

Access tokens have scopes, which define permissions and the resources that the token can access. Scopes are primarily utilized to determine the type of data an application is requesting. Scopes must be explicitly declared; wildcards are not supported.

In the current release the following scopes are available for the following types of requests:

  • Public access - Provider Directory
  • Permissioned based - Patient access

Note: Any Scope not currently listed is not supported.

This gives access to the correct FHIR Endpoints.

API Documentation

This document serves the purpose of a quick start and provides useful links to the corresponding standards and specifications.

It does not provide detailed specification of the FHIR API or full details of its implementation in Aidbox. 

Basic Requests

Aidbox follows the FHIR standard. All API calls should be done using the following base url:

http://hl7.org/fhir/

Below are examples of basic requests, a full description of which can be found in the RESTful API section of the specification.

Find additional information about Aidbox and its implementation of the standard by visiting:

Read

To read data you should use GET HTTP request with the following basic structure:

GET [base url]/[resource name]

Where

[base url] - the base url (see above)

[resource name] - is the name of a resource you want to read.

The list below shows the main resources that were used by the FHIR Adapter.

Provider Directory

  • Organization
  • Practitioner
  • Location
  • Healthcare Service 
  • Organization Affiliation
  • Practitioner Role
  • Insurance Plan

Claims

  • Coverage 
  • Explanation Of Benefit

Drug formulary

  • Medication Knowledge 

Clinical Data

  • Goal
  • Medication 
  • Care Plan
  • Allergy Intolerance 
  • Condition 
  • Patient 
  • Related Person 
  • Procedure 
  • User

For example, to get a list of practitioners, you need to run the following query:

GET [base url]/Practitioner

You can get, for example, the following results:

{
    "resourceType": "Bundle",
    "type": "searchset",
    "meta": {
        "versionId": "14929925"
    },
    "entry": [
        {
            "resource": {
                "meta": {
                    "lastUpdated": "2021-06-11T19:38:39.686496Z",
                    "createdAt": "2021-06-11T19:38:39.686496Z",
                    "versionId": "11293018"
                },
                "name": [
                    {
                        "use": "official",
                        "given": [
                            "Sample",
                            "A"
                        ],
                        "family": "Practitioner"
                    }
                ],
                "birthDate": "1984-12-08"
                "resourceType": "Practitioner",
                "active": true,
                "id": "4ec99942-c667-4d54-af23-f89f0792e4ed",
                "identifier": [
                    {
                        "use": "secondary",
                        "type": {
                            "coding": [
                                {
                                    "code": "externalId",
                                    "display": "externalId",
                                    "userSelected": false
                                }
                            ]
                        },
                        "value": "89687",
                        "system": "http://hl7.org/fhir/sid/external-id"
                    },
                    {
                        "use": "official",
                        "type": {
                            "coding": [
                                {
                                    "code": "NPI",
                                    "display": "NPI",
                                    "userSelected": false
                                }
                            ]
                        },
                        "value": "1111111111",
                        "system": "http://hl7.org/fhir/sid/us-npi"
                    }
                ],
                "gender": "male"
            },
            "fullUrl": "https://portal.aidbox.my-staging.paramounthealthcare.com/Practitioner/4ec99942-c667-4d54-af23-f89f0792e4ed",
            "link": [
                {
                    "relation": "self",
                    "url": "https://portal.aidbox.my-staging.paramounthealthcare.com/Practitioner/4ec99942-c667-4d54-af23-f89f0792e4ed"
                }
            ]
        }
    ]
}
 

To get a list of patients, you can run the following query:

GET [base url]/Patient

To read a particular record use the following request:

GET [base url]/[resource name]/[id]

Where

[base url] - the base url (see above)

[resource name] - is the name of a resource you want to read

[id] - is a FHIR identifier

For example, to get data for a particular Practitioner you can run:

GET [base url]/Practitioner/4ec99942-c667-4d54-af23-f89f0792e4ed

You can get, for example, the following result:

{
    "meta": {
        "lastUpdated": "2021-06-11T19:38:39.686496Z",
        "createdAt": "2021-06-11T19:38:39.686496Z",
        "versionId": "11293018"
    },
    "name": [
        {
            "use": "official",
            "given": [
                "Sample",
                "A"
            ],
            "family": "Practitioner"
        }
    ],
    "birthDate": "1984-12-08"
    "resourceType": "Practitioner",
    "active": true,
    "id": "4ec99942-c667-4d54-af23-f89f0792e4ed",
    "identifier": [
        {
            "use": "secondary",
            "type": {
                "coding": [
                    {
                        "code": "externalId",
                        "display": "externalId",
                        "userSelected": false
                    }
                ]
            },
            "value": "89687",
            "system": "http://hl7.org/fhir/sid/external-id"
        },
        {
            "use": "official",
            "type": {
                "coding": [
                    {
                        "code": "NPI",
                        "display": "NPI",
                        "userSelected": false
                    }
                ]
            },
            "value": "1111111111",
            "system": "http://hl7.org/fhir/sid/us-npi"
        }
    ],
    "gender": "male"
}
More samples and additional information can be found here:

https://docs.aidbox.app/api-1/api/crud-1/read

Aidbox provides a Search API for all resources. Aidbox Search API is a superset of the FHIR Search API.  

Learn more about Aidbox Search API. 

The following request can be used to find records: 

GET [base url]/[resource name]?[search parameter1]=value1&[search parameter2]=value2 

Where 

 [base url] - the base url (see above) 

[resource name] - is the name of a resource you want to read 

[search parameter] - see below 

Search parameters can be one of the search parameters defined for a particular resource in the standard. For example, find the list of search parameters for the practitioner resource or for the organization resource

For example, to find the practitioner by name you can use the following request: 

GET [base url]/Practitioner?name=John 

Or to find the practitioner by it's identifier (for example NPI) use the following request: 

GET [base url]/Practitioner?identifier=1111111111 

 Parameter

Type

Description

_id

FHIR

Search and sort by resource id

 _lastUpdated

FHIR

Search and sort by resource last modification date

 _test

FHIR

Full text search by resource narrative

 _content

FHIR

Full test search by resource content

 _ilike

 FHIR

 Search by resource content

 _elements

 FHIR

 Include or exclude specific resource elements

 _summary

 FHIR

 Include only summary elements

 _list

 FHIR

 Search resources included into specific list

 _sort

 FHIR

 Sort search results

 _total

 FHIR

 Turn on/off total count

 _include

 FHIR

 Include referenced resources into result

 _revinclude

 FHIR

 Include into result resources, which reference searched resources

 _explain

 

 See query execution plan

 _result

 

 Change result format

For example, to use full text search to find a practitioner, use the following query: 

GET [base url]/Practitioner?_content=John 

Learn more about special search parameters

Provider and pharmacy directories are publicly available information and do not require any additional security measures. Members' claims and clinical data are considered Protected Health Information (PHI) and need to be secured. 

View tutorials for additional help.  

The FHIR standard provides a set of resources and its attributes, but in most cases it does not impose strict restrictions on the required attributes and their values. In turn, implementation guides impose additional, more stringent restrictions. The following 4 IGs are used to comply with CMS Rule

Provider Directory API –  

http://hl7.org/fhir/us/davinci-pdex-plan-net/index.html 

Drug Formulary –  

http://hl7.org/fhir/us/davinci-drug-formulary/ 

Clinical Data –  

http://hl7.org/fhir/us/core/history.html 

Claims and Encounter Data –  

http://hl7.org/fhir/us/carin-bb/index.html 

Provider and pharmacy directories are publicly available information and do not require any additional security measures. Members' claims and clinical data are considered Protected Health Information (PHI) and need to be secured. Members authorize applications they want to use to access their PHI. The process of app registration and authorization by members is standardized in the SMART on FHIR specification. 

SMART App Launch Framework (hl7.org) 

Developer Guidelines 

Below are guidelines you should follow to be successful in your Paramount interoperability API integration. 

Your Privacy Policy 

You will be asked to provide a URL to your privacy policy when registering your organization and your application in the Paramount Interoperability App Portal. These links should be easy to access and understand by a member using your app. 

Member Revokes Access 

A member may revoke access to your application via their member portal. When you encounter an invalid token indicating a member has revoked access, you should make a reasonable attempt to handle that case making it easy for the member to understand what is happening with their data. 

Contact Us

General support hours are available Monday – Friday from 9 a.m. – 4 p.m. EST. General support is not provided on holidays or weekends. For assistance regarding registering your organization or application please contact Paramount_Interoperability_Support@MedMutual.com.