Summary
RXNT will make available the RXNT Patient API for third-party developers as part of the certification criteria outlined by the Office of the National Coordinator for Health Information Technology (ONC). The RXNT Patient API allows third-party developers who are developing software applications to access the Protected Health Information (PHI) of patients that are under the care of or have been under the care of providers that have used the RXNT platform. This documentation provides instructions to access RXNT Patient API, including authentication details and methods to connect to the API and retrieve PHI.
This document serves to fulfill the following criterion outlined by ONC:
- Application Access – Patient Selection - 45 CFR 170.315(g)(7)
- Application Access – All Data Request - 45 CFR 170.315(g)(9)
Registration
Third-Party Developer Registration
Any third-party developer that needs access to patient information via a third-party application must first be registered with RXNT. To register, simply contact RXNT at integration@rxnt.com with the following information:
- Application name
- Developer name
- Developer contact
- Developer phone number
- Developer email address
RXNT will provide the developer with login credentials that will be used to access RXNT Patient API.
Application Access – Patient Selection - 45 CFR 170.315(g)(7)
Authenticate Access Request
In compliance with 45 CFR 170.315 (g)(7), RXNT Patient API provides an API that receives a request from a registered third-party developer with active credentials. Third-party developers will submit a request that contains the developer’s login credentials.
The request body should contain the following parameters using the credentials provided to them by RXNT.
Parameters
- Username
- Password
Both of the parameters outlined above are required and should be passed as JSON in the body of the request.
{
“UserName” : “demouser”,
“Password”: “demoPassword”
}
Sample Request
Method: POST
URL: https://app2.rxnt.com/MasterIndexExternalAPIServices/masterindexexternalapi/v1/authentication/AuthenticateUser
Headers:
{
“Content-Type”: “application/json”
}
Body:
{
“Username” : “demouser”,
“Password”: “demoPassword”
}
RXNT will check the request to ensure that the third-party developer has both active and valid credentials to access patient information to confirm the request is coming from an authorized party. If the third-party developer is authorized to access patient data, RXNT authenticates the request and returns a JSON response with a limited time token and values that should be used for subsequent API calls.
Sample Response
{
"AppLoginId": "loginId",
"DoctorCompanyId": "DoctorCompanyId",
"TokenExpiryDate": "TokenExpiryDate",
"Token": "Token",
"Signature": "Signature",
"NoOfDaysToExpire": "NumberOfDaysToExpire",
"ValidationMessages": null,
"ValidationStatus": "Success",
"Meta": null
}
Select Patient
In order to select a patient using RXNT Patient API, third-party developers must have access to the RXNT ExternalReferencePatientID, which is available to registered patients via the PHR on the profile screen.
The request body should include the parameters outlined below as provided in the initial response from RXNT.
Parameters
- DoctorCompanyId
- Signature
- Token
- RequestCompanyId
- ExternalReferencePatientId
All of the parameters outlined above are required and should be passed as JSON in the body of the request.
Sample Request
Method: POST
URL: https://app2.RXNT.com/MasterIndexExternalAPIServices/masterindexexternalapi/v1/patientdashboard/patientccd/GetV1PatientInfoByExternalPatientId
Headers:
{
“Content-Type”: “application/json”
}
Body:
{
"DoctorCompanyId": “DoctorCompanyId”,
"Signature": “Signature”,
"Token": “Token”,
"RequestCompanyId": “RequestCompanyId”,
"ExternalReferencePatientId": "ExternalReferencePatientId"
}
The API will first check to confirm that the ExternalReferencePatientID exists.
Sample Response
The response is in JSON and it returns values for ExternalReferencePatientId, ValidationMessages, ValidationStatus and Meta.
On Success
{
"ExternalReferencePatientId": "ExternalReferencePatientId",
"ValidationMessages": null,
"ValidationStatus": "Success",
"Meta": null
}
On Failure
{
"ExternalReferencePatientId": null,
"ValidationMessages": [
"Patient doesn't exists with the External Reference Patient Id: xxxx"
],
"ValidationStatus": "Failed",
"Meta": null
}
Application Access – All Data Request - 45 CFR 170.315(g)(9)
RXNT Patient API provides access to patient clinical data, in compliance with 45 CFR 170.315(g)(9). This API responds to requests for patient data for all of the data categories specified in USCDI v1, which are listed below. The API also responds to requests for patient data associated with a specific date as well as requests for patient data within a specified date range.
- Allergies and Intolerances
- Substance (Medication)
- Substance (Drug Class)
- Reaction
- Assessment and Plan of Treatment
- Care Team Member(s)
- Clinical Notes
- Consultation Note
- Discharge Summary Note
- History & Physical
- Procedure Note
- Progress Note
- Other Clinical Note
- Non-Clinical Note
- Goals
- Patient Goals
- Health Concerns
- Immunizations
- Laboratory
- Tests
- Values/Results
- Medications
- Patient Demographics/Information
- First Name
- Last Name
- Middle Name (including middle initial)
- Suffix
- Previous Name
- Date of Birth
- Race
- Ethnicity
- Sex (Assigned at Birth)
- Preferred Language
- Current Address
- Previous Address
- Phone Number
- Phone Number Type
- Email Address
- Problems
- Procedures
- Provenance
- Author Time Stamp
- Author Organization
- Smoking Status
- Unique Device Identifier(s) for a Patient’s Implantable Device(s)
- Vital Signs
- Systolic blood pressure
- Diastolic blood pressure
- Heart Rate
- Respiratory rate
- Body Temperature
- Body height
- Body weight
- Pulse oximetry
- Inhaled oxygen concentration
- BMI Percentile (2 - 20 years)
- Weight-for-length Percentile (Birth - 36 Months)
- Head Occipital-frontal Circumference Percentile (Birth - 36 Months)
The sample request is shown below:
Method: POST URL:
https://app2.RXNT.com/MasterIndexExternalAPIServices/masterindexexternalapi/v1/patientdashboard/patientccd/GetPatientCCDSData
Sample Request (All Data)
Headers:
{
“Content-Type”: “application/json”
}
Body:
{
"DoctorCompanyId": “DoctorCompanyId”,
"Signature": “Signature”,
"Token": “Token”,
"RequestCompanyId": “RequestCompanyId”,
"ExternalReferencePatientId": "ExternalReferencePatientId",
"FromDate": "2017/01/01",
"ToDate": "2017/12/31"
}
Parameters
- DoctorCompanyId
- Signature
- Token
- RequestCompanyId
- ExternalReferencePatientId
- FromDate
- ToDate
All the above parameters, apart from FromDate and ToDate are required. FromDate and ToDate are optional but you should either have both of them or none of them.
In order to get patient data for a specific date, fields FromDate and ToDate should be the same.
Sample Response
The response is in JSON and it returns values for PatientCCDSXml, ValidationMessages, ValidationStatus, Meta.
{
"PatientCCDSXml": “CCDS XML”,
"ValidationMessages": null,
"ValidationStatus": "Success",
"Meta": null
}
The CCDS XML is returned as a value for the key PatientCCDSXml into JSON response. It can be used by third-party developers as per their needs.
In order to get patient data for a specific date, fields FromDate and ToDate should be the same.
Sample XML File is attached to this article.
Date Criteria filter for g(9) and VDT
Date is filtered based on the given FromDate and ToDate value and it must follow the following guidelines:
- “Start Date” should be less than or equal to “To Date”
- If “End Date” Exists, “From Date” should be less than or equal to “End Date”
The following section contains some scenarios that explain date filtering.
Problem |
Start Date |
End Date |
Essential hypertension |
10/5/2011 |
|
Severe hypothyroidism |
12/31/2006 |
|
Chronic rejection of renal transplant |
12/31/2011 |
|
Fever, unspecified fever cause |
6/22/2015 |
|
Overweight |
12/31/2006 |
6/1/2007 |
The above table is the master table used for the queries in the scenarios below:
Scenario 1:
- From Date = “01/01/2005”
- To Date = “12/31/2005”
No records will be listed
Scenario 2:
- From Date = “01/01/2005”
- To Date = “12/31/2006”
Problem |
Start Date |
End Date |
Severe hypothyroidism |
12/31/2006 |
|
Overweight |
12/31/2006 |
6/1/2007 |
Scenario 3:
- From Date = “01/01/2007”
- To Date = “12/31/2010”
Problem |
Start Date |
End Date |
Severe hypothyroidism |
12/31/2006 |
|
Overweight |
12/31/2006 |
6/1/2007 |
Scenario 4:
- From Date = “01/01/2007”
- To Date = “12/31/2011”
Problem |
Start Date |
End Date |
Essential hypertension |
10/5/2011 |
|
Severe hypothyroidism |
12/31/2006 |
|
Chronic rejection of renal transplant |
12/31/2011 |
|
Overweight |
12/31/2006 |
6/1/2007 |
Scenario 5:
- From Date = “01/01/2007”
- To Date = “12/31/2015”
Problem |
Start Date |
End Date |
Essential hypertension |
10/5/2011 |
|
Severe hypothyroidism |
12/31/2006 |
|
Chronic rejection of renal transplant |
12/31/2011 |
|
Fever, unspecified fever cause |
6/22/2015 |
|
Overweight |
12/31/2006 |
6/1/2007 |
Scenario 6:
- From Date = “01/01/2008”
- To Date = “12/31/2011”
Problem |
Start Date |
End Date |
Essential hypertension |
10/5/2011 |
|
Severe hypothyroidism |
12/31/2006 |
|
Chronic rejection of renal transplant |
12/31/2011 |
|
Scenario 7:
- From Date = “01/01/2015”
- To Date = “12/31/2017”
Problem |
Start Date |
End Date |
Essential hypertension |
10/5/2011 |
|
Severe hypothyroidism |
12/31/2006 |
|
Chronic rejection of renal transplant |
12/31/2011 |
|
Fever, unspecified fever cause |
6/22/2015 |
|
Scenario 8:
- From Date = “12/31/2006”
- To Date = “12/31/2006”
Problem |
Start Date |
End Date |
Severe hypothyroidism |
12/31/2006 |
|
Overweight |
12/31/2006 |
6/1/2007 |
Scenario 9:
- From Date = “01/01/2015”
- To Date = “01/01/2015”
Problem |
Start Date |
End Date |
Essential hypertension |
10/5/2011 |
|
Severe hypothyroidism |
12/31/2006 |
|
Chronic rejection of renal transplant |
12/31/2011 |
|
Scenario 10:
- From Date = “06/01/2007”
- To Date = “06/01/2007”
Problem |
Start Date |
End Date |
Severe hypothyroidism |
12/31/2006 |
|
Overweight |
12/31/2006 |
6/1/2007 |
Scenario 11:
- From Date = “06/02/2007”
- To Date = “06/02/2007”
Problem |
Start Date |
End Date |
Severe hypothyroidism |
12/31/2006 |
|
RXNT Patient API Terms and Conditions
RXNT Patient API is maintained by RXNT.