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.

Was this article helpful?
0 out of 0 found this helpful