EMR Integration

Introduction

Hyperisk works best when it is integrated directly into the Electronic Medical Record (EMR), so that a patient's data is automatically passed from the EMR to Hyperisk with the simple click of a link, without requiring manual entry of the data. To achieve this integration, there are three basic steps: extract the required data from the EMR, format the data into a JavaScript Object Notation (JSON) string, and then post that string to the Hyperisk site. No protected health information is transmitted. The following guidelines outline the process of successfully linking an EMR to Hyperisk.

Extract the Data

Exactly how to extract the data will be contingent upon the specific EMR in use at your organization. For example, with Epic Hyperspace you might use Caché to retrieve the data and then build a link within a printgroup or you could use an Interconnect web service to load the data into an embedded web page. Or in Cerner's PowerChart you could use an XmlCclRequest to load the data into an MPage. Now lets review the data to pull and how to go about pulling it.

Hyperisk expects five data parameters to be passed from the EMR. These are:

sex
A value of "M" or "F" indicating the sex of the patient
dob
The date of birth of the patient
inpatient
(Optional) A boolean (true/false) flag indicating that the patient is currently an inpatient
Defaults to false if not passed
units
(Optional) The unit of measurement used for the patient's height - "in" for inches or "cm" for centimeters
Defaults to inches if not passed
data
A collection containing sets of the patient's measurement data

At least one set of measurement data is required, but at least four to six sets are recommended for more accurate results. Each set of measurement data should contain the following four fields:

time
A timestamp of when the measurements in the current set were taken
systolic
The patient's systolic blood pressure
diastolic
The patient's diastolic blood pressure
height
The patient's approximate height at the time the blood pressure was taken

Depending on whether or not the patient is inpatient or outpatient, the measurement data that is passed will be somewhat different:

Inpatient

Because an inpatient is constantly monitored, it is recommended that each set of measurements contain an average of the systolic and diastolic pressures over a twelve hour period, with a total of three days worth of data, or six sets (max). It is further suggested that each twelve hour period be from 0600 to 1800 hours and vice versa. The timestamp passed should indicate the start of the twelve hour period. The height value should be the closest corresponding height measurement to the timestamp.

Outpatient

The recommendation for outpatients is to pass the most recent six (max) blood pressure measurements within the past three years. The timestamp should specify the time that the measurement was taken and the height should be the nearest height measurement within two weeks of the blood pressure measurement. If no height measurement is available within that timeframe, then the blood pressure measurements should be skipped until a set with corresponding height can be found.

Format the Data

As stated in the previous section, the data should be sent to Hyperisk in the form of a JSON string. To learn more about JSON, see http://json.org/. This string will comprise of a JSON object containing each of the parameters outlined above.

The date of birth can be passed in most common date formats, such as "MM/DD/YYYY", "YY-MM-DD", "YYYY-MM-DD", etc. Note that if using two digit years the format "XX/XX/XX" (slashes) will be treated as "MM/DD/YY", while "XX-XX-XX" (dashes) will come out as "YY-MM-DD". Unix Timestamps are accepted but must be proceeded by the @ symbol - i.e. "@1215282385". If an invalid format is passed, an error message will be generated and processing will stop.

The data parameter is to be an array of objects each containing the four parameters specified above. As with the date of birth, the time field will accept most common date/time formats and they can even be intermixed. If an invalid format is passed for either the start or end dates, an error message will be generated and processing will stop. Here is an example of what the JSON object should look like:

{
   "inpatient": false,
   "units": "in",
   "sex": "M",
   "dob": "01/20/2004",
   "data": [{
      "time": "11/21/2015 10:05",
      "height": 60,
      "systolic": 120,
      "diastolic": 67
   }, {
      "time": "04/11/2016 10:20",
      "height": 60,
      "systolic": 124,
      "diastolic": 68
   }, {
      "time": "04/13/2016 14:43",
      "height": 60,
      "systolic": 138,
      "diastolic": 75
   }, {
      "time": "05/21/2016 11:20",
      "height": 61,
      "systolic": 118,
      "diastolic": 69
   }, {
      "time": "08/03/2016 16:35",
      "height": 61,
      "systolic": 133,
      "diastolic": 73
   }, {
      "time": "11/29/2016 11:50",
      "height": 62,
      "systolic": 125,
      "diastolic": 70
   }]
}

Send the Data

Once the data has been properly formatted, it is ready to be submitted to Hyperisk. This will be done via an HTTP POST request. The easiest way to do this is to load the data into an HTML form within an intermediary web page on your organization's network. This form would have its method set as "post" and its action would point to the Hyperisk URL. Then it would be a simple matter of automatically triggering the form to submit via JavaScript, which would transmit the data and launch into Hyperisk Recommendation view.

The Hyperisk Recommendation view's URL is:

Hyperisk requires an HTTPS connection

Replace "[YOUR-ORG]" with a unique identifier indicating your orginization (without the brackets).

The JSON string should be contained in an input or textarea field named data.

For a working example of how this would work, refer to the Hyperisk EMR Integration Demo:

Hyperisk EMR Integration Demo