ezEMRx is a strong supporter of the HL7® FHIR® standard as the future of REST-based interoperability. ezEMRx is also a member of the AIMS eCR initiative, aimed at accelerating the adoption of FHIR for communicable diseases. ezEMRx's FHIR API addresses interoperability and patient engagement efforts while meeting ONC 2015 EHR API certification requirements 170.315(g)(7), (g)(9), and (g)(10).
The ezEMRx FHIR API
ezEMRx FHIR API leverages FHIR R4 and SMART on FHIR Core Capabilities:
Launch Standalone Patient (g)(7,9) & (g)(10), replacing (g)(8)
Launch EHR Practitioner (g)(10)
Bulk FHIR with Backend Service Authorization (g)(10)
ezEMRx FHIR 2015 Edition Cures Update:
Single Patient & Population Services
Supports Critieria 170.315 (g)(7-9)(g)(10), replacing (g)(8)
US Core 3.1.1 / USCDI v1
SMART App Launch 1.0.0
Bulk Data 1.0.1
FHIR Release 4.0.1
The ezEMRx API makes health information broadly available using FHIR®, a set of clinical interoperability resources under the umbrella of the HL7 standards organization. FHIR is based on common web standards, and can be reached through a RESTful protocol in which each FHIR resource has a known URL. The standard continues to grow and become more widely used for patient data.
ezEMRx FHIR API makes EHR patient data readily available:
The data is populated into the DHIT FHIR server via receipt of a version 2.1 CCDA.
Delivers data payload via JSON to API client of choice.
Retrieves all USCDIv1 data or a class of data (e.g. clinical notes, problems, labs, or medications)
Secures the data using the HIPAA-compliant OAUTH standard for user authorization
The ezEMRx FHIR API supports the following launch types:
Patient Access from an End-User Device: Standalone Launch provides patients access to USCDIv1 data in JSON format via FHIR R4 DocumentReference Resource from any compatible app using Authorization Code Flow.
Patient Portal API Access: Patient Launch of an App from within a Patient Portal user session using the EHR Launch Flow.
Practitioner Portal API Access: Practitioner Launch of an App from within their EHR session. The EHR Launch Flow can be either a Single-patient app that runs in the context of a patient record or a bulk patients.
This documentation is intended to help you with the ezEMRx FHIR® API content. It will guide you through and help you consume your health resources.
Source Code or Software
ezEMRx API Developers may test applications by using the ezEMRx API Sandbox or by collaborating with the ezEMRx EHR; it is not necessary to access the ezEMRx EHR to test applications. In connection with providing the ezEMRx APIs, ezEMRx does not offer a license to use the ezEMRx EHR, or access to the ezEMRx EHR to any party that has not purchased a license to the ezEMRx EHR. ezEMRx will not make any ezEMRx source code available to any party in connection with the ezEMRx APIs.
By accessing/registering the ezEMRx APIs and ezEMRx API Sandbox, you assume the risk of liability for, and agree to indemnify and hold harmless ezEMRx and its affiliates, employees, customers, partners, dealers (collectively, the "ezEMRx") and will defend ezEMRx from and against any and all liabilities, losses, claims, damages, claims and expenses (including legal expenses of any kind and nature) arising out of, or relating to, directly or indirectly: (a) any action or omission related to (i) your use of the ezEMRx APIs or (ii) the development, content, or performance of third party applications developed by you or (b) your failure to comply with any federal, state or local laws, rules or regulations in connection with your use of the ezEMRx APIs.
ezEMRx APIs and ezEMRx API Sandbox are provided on an "as-is" basis with all faults and defects, and without any warranty whatsoever. The entire risk as to the quality and performance of the ezEMRx APIs is with the third party Developer. ezEMRx shall be responsible for the performance of ezEMRx developed applications. ezEMRx does not provide any service level agreements or performance objectives for availability, response time or any other performance measurement associated with the ezEMRx APIs or the ezEMRx Sandbox. For any issues alleged to be caused solely by the ezEMRx APIs or the ezEMRx API Sandbox, API Users may report issues to ezEMRx at firstname.lastname@example.org. ezEMRx will make reasonable efforts to investigate and correct such issues at its sole discretion towards the functioning of the ezEMRx API as intended.
ezEMRx FHIR API Endpoints
FHIR API Base URL
FHIR Metadata Information
FHIR Authorization Server Information
FHIR Server SMART-Configuration
FHIR Token Endpoint
FHIR Bulk Token Endpoint
FHIR Client Registration URL
Signup for a client account and register
Clients will need to register for access from the Client Registration URL. Only the ezEMRx admins have access to authorize the client. After the registration, you should have the following:
Client Secret Key
Authorized API type (Single Patient or Bulk)
ezEMRx FHIR® API allows other health IT applications to make read-only data requests for patient health information that is part of the Common Clinical Data Set.
§170.315(g)(7), §170.315(g)(9) and §170.315(g)(10) - API interface would allow a request for “all” the patient data, or specific “by specific data category.”
ezEMRx FHIR® API assumes the use of a cumulative CCDA with patient data. For filtering CCDA data by section, it will use the latest cumulative CCDA document of a patient (latest).
ezEMRx FHIR® API uses the restful based service architecture which allows seamless integration over the HTTPS protocol (POST). This allows any client request to communicate with the ezEMRx FHIR® API as the call to the operation essentially entails the building of a URL string to call an operation in the service.
API Query Parameters
Errors and exceptions are handled with a HTTP status code and a JSON response for the forbidden request.
Forbidden Request - HTTP Status Code - 403
A user trying to access another users profile or data will be returned with a Forbidden Request Error.
Bad Request - HTTP Status Code - 400
An invalid or a bad URL request to the server is returned with a HTTP - 400 response and message
Response OK - HTTP Status Code - 200
A valid request to the FHIR server is returned with a HTTP - 200 response and message
FHIR API Specifications
The following is provided as guidance and reference. It is assumed that the developer or client is familiar with HL7 FHIR® US Core Implementation Guide. For further information, please refer the HL7 published version. Please note, all methods support a search capability (eg: _search?) with the POST request.