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 – Data Category Request - 45 CFR 170.315(g)(8)
- 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 – Data Category Request - 45 CFR 170.315(g)(8)
In compliance with 45 CFR 170.315 (g)(8), RXNT Patient API provides access to patient clinical data for the following categories:
- Patient Name
- Sex
- Date of Birth
- Race
- Ethnicity
- Preferred Language
- Smoking Status
- Problems
- Medications
- Medication Allergies
- Laboratory Test(s)
- Laboratory Value(s)/Result(s)
- Vital Signs
- Procedures
- Care Team Member(s)
- Immunizations
- Unique Device Identifier(s) for a Patient’s Implantable Device(s)
- Assessment and Plan of Treatment
- Goals
- Health Concerns
This API responds to requests for patient data for each of the individual data categories specified in the Common Clinical Data Set and returns the full set of data for that data category. If an already authenticated user sends a post request to access a patient’s health information, the API authenticates the user, analyzes the request and returns appropriate response. 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.
In order to access patient data for specific categories, categories should be passed as an array of strings in the body of the request. The category string should follow the exact same formatting as in the list above. Detailed description of each of the fields in the list can be found at 2015 Edition Common Clinical Data Set - 45 CFR 170.102.
The sample request is shown below:
Method: POST URL: https://app2.RXNT.com/MasterIndexExternalAPIServices/masterindexexternalapi/v1/patientdashboard/patientccd/GetV1PatientInfoByExternalPatientId
Sample Request
Headers:
{
“Content-Type”: “application/json”
}
Body:
{
"DoctorCompanyId": “DoctorCompanyId”,
"Signature": “Signature”,
"Token": “Token”,
"RequestCompanyId": “RequestCompanyId”,
"ExternalReferencePatientId": "ExternalReferencePatientID",
"Categories": ["Vital Signs", "Smoking Status"],
"FromDate": "2017/01/01",
"ToDate": "2017/12/31"
}
Parameters
- DoctorCompanyId
- Signature
- Token
- RequestCompanyId
- ExternalReferencePatientId
- Categories
- 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. The category array should not be empty; it should contain at least one of the categories.
Sample Response
The response is in JSON and it returns values for PatientCCDSXml, ValidationMessages, ValidationStatus, Meta.
{
"PatientCCDSXml": “Patient Data in XML”
"ValidationMessages": null,
"ValidationStatus": "Success",
"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 the Common Clinical Data. 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.
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.
Date Criteria filter for g(8), 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.