NAV Navbar
Logo cerner
Ruby Shell

Observation API v1

The HealtheIntent Observation API allows systems to interact with observations data in HealtheIntent

Notes:

URL: https://cernerdemo.api.us.healtheintent.com/observation/v1

Observation

Observations are measurements and simple name-value pair assertions about a patient, for example, lab results, vital signs, and personal characteristics such as eye color. Additionally, observations can originate from procedures, physical exams, or devices that measure activity without the supervision of a provider, for example, fitness devices that measure steps.

Retrieve a Single Observation

Example Request:


require 'httparty' # Using HTTParty 0.16.2
require 'json'

headers = {
  'Authorization' => '<auth_header>',
  'Accept' => 'application/json'
} 

result = HTTParty.get('https://cernerdemo.api.us.healtheintent.com/observation/v1/populations/1424e81d-8cea-4d6b-b140-d6630b684a58/patients/a2f6a16d-1331-4ccc-8f70-6c4d953ba70b/observations/922335055401317580798721fc77965ed6670445e54ccf1360875056bbed0a1a7405b9077e2718064d5', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us.healtheintent.com/observation/v1/populations/1424e81d-8cea-4d6b-b140-d6630b684a58/patients/a2f6a16d-1331-4ccc-8f70-6c4d953ba70b/observations/922335055401317580798721fc77965ed6670445e54ccf1360875056bbed0a1a7405b9077e2718064d5 \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "code": {
    "codings": [
      {
        "system": "2.16.840.1.113883.6.1",
        "code": "46418-0",
        "display": "INR in Capillary blood by Coagulation assay"
      },
      {
        "system": "D1EF6DD8A18C429E9A95C77A5439956D",
        "code": "PT_INR_OBSTYPE",
        "display": "PT INR"
      }
    ],
    "sourceCodings": [
      {
        "code": "1676",
        "display": "INR FINGERSTICK",
        "system": "allscripts:resulttype"
      }
    ],
    "text": "INR FINGERSTICK"
  },
  "device": [
    {
      "manufacturer": "QUALCOMM",
      "model": "Fora Thermometer IR20b",
      "serialNumber": "xyz123",
      "type": {
        "codings": {
          "code": "27991004",
          "display": "Thermometer",
          "system": "2.16.840.1.113883.6.9"
        },
        "sourceCodings": {
          "code": "27991004",
          "display": "Thermometer",
          "system": "2.16.840.1.113883.6.96"
        },
        "text": "Thermometer"
      }
    }
  ],
  "effectiveDate": "2011-07-26T20:53:00.000Z",
  "effectivePeriod": {},
  "id": "922335055401317580798721fc77965ed6670445e54ccf1360875056bbed0a1a7405b9077e2718064d5",
  "interpretation": {
    "codings": [
      {
        "code": "N",
        "display": "Normal",
        "system": "2.16.840.1.113883.12.78"
      }
    ],
    "sourceCodings": [
      {
        "code": "214",
        "system": "urn:cerner:coding:codingsystem:codeset:52"
      }
    ],
    "text": "Normal"
  },
  "method": {
    "codings": [
      {
        "code": "89003005",
        "display": "Oral temperature taking (procedure)",
        "system": "2.16.840.1.113883.6.96"
      }
    ],
    "sourceCodings": [
      {
        "code": "89003005",
        "display": "Oral temperature taking (procedure)",
        "system": "2.16.840.1.113883.6.96"
      }
    ],
    "text": "Oral temperature taking (procedure)"
  },
  "notes": [
    {
      "author": {
        "aliases": [
          {
            "system": "2.16.840.1.113883.4.814",
            "type": "DEA",
            "value": "1234"
          }
        ],
        "name": {
          "formatted": "Brizendine, Margaret"
        }
      },
      "date": "2011-07-27T01:06:40.310Z",
      "text": "The patient is feeling well today."
    }
  ],
  "recorder": "PROVIDER",
  "sourceIdentifier": {
    "dataPartitionId": "3edf856e-08ba-4da1-9550-5a55a533523d",
    "id": "F585DD3407BB4409CBB971F9B8DD3C6F"
  },
  "specimenType": {
    "codings": [
      {}
    ],
    "sourceCodings": [
      {}
    ]
  },
  "status": {
    "codings": [
      {
        "code": "F",
        "display": "Final results",
        "system": "2.16.840.1.113883.12.85"
      }
    ],
    "sourceCodings": [
      {
        "code": "25",
        "display": "Auth (Verified)",
        "system": "urn:cerner:coding:codingsystem:codeset:8"
      }
    ],
    "text": "Auth"
  },
  "value": {
    "codified": [],
    "numeric": {
      "value": "36.8"
    },
    "unitOfMeasure": {
      "codings": [
        {
          "code": "258710007",
          "display": "degrees C",
          "system": "2.16.840.1.113883.6.96"
        }
      ],
      "sourceCodings": [
        {
          "code": "252",
          "display": "DegC",
          "system": "urn:cerner:coding:codingsystem:codeset:54"
        }
      ],
      "text": "degrees C"
    }
  }
}

GET /populations/{populationId}/patients/{patientId}/observations/{observationId}

Retrieves a single observation for a given patient.

Parameters

Parameter In Type Required Default Description Accepted Values
patientId path string true N/A The identifier of the patient. -
populationId path string true N/A The identifier of the population. -
observationId path string true N/A The ID that uniquely identifies the observation for the patient. -

Response Statuses

Status Meaning Description Schema
200 OK OK Observation
400 Bad Request Bad request Error
401 Unauthorized Unauthorized Error
403 Forbidden Forbidden Error
404 Not Found Not found Error

Retrieve a List of Observations

Example Request:


require 'httparty' # Using HTTParty 0.16.2
require 'json'

headers = {
  'Authorization' => '<auth_header>',
  'Accept' => 'application/json'
} 

result = HTTParty.get('https://cernerdemo.api.us.healtheintent.com/observation/v1/populations/1424e81d-8cea-4d6b-b140-d6630b684a58/patients/a2f6a16d-1331-4ccc-8f70-6c4d953ba70b/observations', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us.healtheintent.com/observation/v1/populations/1424e81d-8cea-4d6b-b140-d6630b684a58/patients/a2f6a16d-1331-4ccc-8f70-6c4d953ba70b/observations \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "items": [
    {
      "code": {
        "codings": [
          {
            "system": "2.16.840.1.113883.6.1",
            "code": "46418-0",
            "display": "INR in Capillary blood by Coagulation assay"
          },
          {
            "system": "D1EF6DD8A18C429E9A95C77A5439956D",
            "code": "PT_INR_OBSTYPE",
            "display": "PT INR"
          }
        ],
        "sourceCodings": [
          {
            "code": "1676",
            "display": "INR FINGERSTICK",
            "system": "allscripts:resulttype"
          }
        ],
        "text": "INR FINGERSTICK"
      },
      "device": [
        {
          "manufacturer": "QUALCOMM",
          "model": "Fora Thermometer IR20b",
          "serialNumber": "xyz123",
          "type": {
            "codings": {
              "code": "27991004",
              "display": "Thermometer",
              "system": "2.16.840.1.113883.6.9"
            },
            "sourceCodings": {
              "code": "27991004",
              "display": "Thermometer",
              "system": "2.16.840.1.113883.6.96"
            },
            "text": "Thermometer"
          }
        }
      ],
      "effectiveDate": "2011-07-26T20:53:00.000Z",
      "effectivePeriod": {},
      "id": "922335055401317580798721fc77965ed6670445e54ccf1360875056bbed0a1a7405b9077e2718064d5",
      "interpretation": {
        "codings": [
          {
            "code": "N",
            "display": "Normal",
            "system": "2.16.840.1.113883.12.78"
          }
        ],
        "sourceCodings": [
          {
            "code": "214",
            "system": "urn:cerner:coding:codingsystem:codeset:52"
          }
        ],
        "text": "Normal"
      },
      "method": {
        "codings": [
          {
            "code": "89003005",
            "display": "Oral temperature taking (procedure)",
            "system": "2.16.840.1.113883.6.96"
          }
        ],
        "sourceCodings": [
          {
            "code": "89003005",
            "display": "Oral temperature taking (procedure)",
            "system": "2.16.840.1.113883.6.96"
          }
        ],
        "text": "Oral temperature taking (procedure)"
      },
      "notes": [
        {
          "author": {
            "aliases": [
              {
                "system": "2.16.840.1.113883.4.814",
                "type": "DEA",
                "value": "1234"
              }
            ],
            "name": {
              "formatted": "Brizendine, Margaret"
            }
          },
          "date": "2011-07-27T01:06:40.310Z",
          "text": "The patient is feeling well today."
        }
      ],
      "recorder": "PROVIDER",
      "sourceIdentifier": {
        "dataPartitionId": "3edf856e-08ba-4da1-9550-5a55a533523d",
        "id": "F585DD3407BB4409CBB971F9B8DD3C6F"
      },
      "specimenType": {
        "codings": [
          {}
        ],
        "sourceCodings": [
          {}
        ]
      },
      "status": {
        "codings": [
          {
            "code": "F",
            "display": "Final results",
            "system": "2.16.840.1.113883.12.85"
          }
        ],
        "sourceCodings": [
          {
            "code": "25",
            "display": "Auth (Verified)",
            "system": "urn:cerner:coding:codingsystem:codeset:8"
          }
        ],
        "text": "Auth"
      },
      "value": {
        "codified": [],
        "numeric": {
          "value": "36.8"
        },
        "unitOfMeasure": {
          "codings": [
            {
              "code": "258710007",
              "display": "degrees C",
              "system": "2.16.840.1.113883.6.96"
            }
          ],
          "sourceCodings": [
            {
              "code": "252",
              "display": "DegC",
              "system": "urn:cerner:coding:codingsystem:codeset:54"
            }
          ],
          "text": "degrees C"
        }
      }
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us.healtheintent.com/observation/v1/populations/1424e81d-8cea-4d6b-b140-d6630b684a58/patients/a2f6a16d-1331-4ccc-8f70-6c4d953ba70b/observations?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us.healtheintent.com/observation/v1/populations/1424e81d-8cea-4d6b-b140-d6630b684a58/patients/a2f6a16d-1331-4ccc-8f70-6c4d953ba70b/observations?offset=0&limit=20"
}

GET /populations/{populationId}/patients/{patientId}/observations

Retrieves a list of the observations for a given patient.

Parameters

Parameter In Type Required Default Description Accepted Values
patientId path string true N/A The identifier of the patient. -
populationId path string true N/A The identifier of the population. -
cursor query string false N/A The last item on the list in the response from the previous request. If you specify this parameter, the response begins with the next item on the list. -
limit query integer(int32) false 20 The maximum number of results to display per page. The minimum limit is 1. The maximum limit is 100. -

Response Statuses

Status Meaning Description Schema
200 OK OK Observations
400 Bad Request Bad request Error
401 Unauthorized Unauthorized Error
403 Forbidden Forbidden Error
404 Not Found Not found Error

Schema Definitions

Observation

Name Type Required Description Accepted Values
accession string false An identifier that can be used to group laboratory results and also uniquely identifies the specimen used. -
code CodeableConcept true The name of the test or kind of observation that was measured or observed, for example, height, eye color, tobacco use, or hemoglobin. The code may optionally have additional precoordinated information such as the method, sample type, timing of measurement, and scale of measurement. -
device Device false The device that recorded, measured, or transmitted the observation or measurement, for example, glucometer, blood pressure cuff, scale, thermometer, or fitness or sleep devices. -
effectiveDate string false The clinically significant date and time associated with the observation. For lab results, this is the specimen collection time; for vitals, this is the time the measurement was taken. In International Organization for Standardization (ISO) 8601 formatting with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -
effectivePeriod Period false The clinically significant time period associated with the observation when the measurement is made over a period of time, for example, distance walked, calories burned, or REM sleep. In ISO 8601 formatting with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -
id string true The unique ID of the observation record. -
interpretation CodeableConcept false A categorization of the measurement value that indicates normalcy, for example, abnormal, normal, high, low, or critical. -
method CodeableConcept false The means or technique used to make the observation. The method can be precoordinated in the observation code. For example, if the observation code is LOINC 60978-4 Heart Rate Intra Arterial Line Invasive, the code indicates both what is being measured as well as the method. By contrast, if the observation code is simply LOINC 8867-4 Heart Rate, then a method of Palpation, Auscultation, Electrocardiography (ECG or EKG), or Invasive provides additional context regarding how the heart rate was measured. -
notes [ProviderNote] true The notes or comments associated with the observation. -
recorder string false Identifies the entity that is reporting the observation, for example, SELF or DEVICE. If the data source doesn’t differentiate or maintain the recorder per observation, then the data source may send the least common denominator across all observations. For example, if a data source has observations from a DEVICE as well as SELF, due to the patient entering data through a personal device dashboard, then all observations from that data source may have a recorder of SELF. DEVICE, PROVIDER, SELF, UNKNOWN
sourceIdentifier SourceIdentifier false An ID that uniquely identifies this observation for a patient in a data partition. -
specimenType CodeableConcept false The kind of substance used in the analysis, such as blood or urine. -
status CodeableConcept false The state of the observation, such as Preliminary, Final, Amended, or Cancelled. -
value ObservationValue false The result of the observation or measurement. The data type of the result value will either be numeric, codified, text, or a date. -

CodeableConcept

Name Type Required Description Accepted Values
codings [Code] false A list of codified values from standard code systems recognized by HealtheIntent. -
sourceCodings [Code] false The list of codified values provided in the source data. Not all of these codes are available in the codings list. For example, local or proprietary codes are not included on the codings list because they are not recognized by HealtheIntent. -
text string false This may be a localized or annotated description of the element provided by a source system or display text associated with one of the codes on the codings or sourceCodings list. -

Code

Name Type Required Description Accepted Values
code string false The unique identifier of the code. -
display string false A human-readable representation of the code. -
system string false The identifier of the coding system that gives meaning to the code. -

Device

Name Type Required Description Accepted Values
manufacturer string false The name of the organization that was responsible for making or producing the device. -
model string false The model identifier assigned by the manufacturer for the device. This may be a product name or a series of identifying characters. -
serialNumber string false A number or group of numbers and letters that uniquely identifies an individual device. -
type CodeableConcept true The kind of device, such as glucometer, blood pressure cuff, scale, or thermometer. -

Period

Name Type Required Description Accepted Values
end string false The date when the measurement period ended. If start exists without end, then this indicates that the period is ongoing. In ISO 8601 formatting with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -
start string false The date when the measurement period started. In ISO 8601 formatting with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -

ProviderNote

Name Type Required Description Accepted Values
date string false The date when the note was recorded. This field can have precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -
text string false The textual content of the note or comment. -
author Provider false Provider who recorded the note or comment. -

Provider

Name Type Required Description Accepted Values
aliases [ProviderAlias] false A list of identifiers of the provider, such as the ten-digit National Provider Identifier (NPI) of the provider or the Drug Enforcement Administration (DEA) number of the provider. -
name ProviderName false The name of the provider. -

ProviderAlias

Name Type Required Description Accepted Values
system string false Authority responsible for assigning the identifier. -
value string false The value or identifier within the context of the assigning authority. -
type string false The type of alias. DEA, EXTERNAL, NPI, SL, TAX, UPIN

ProviderName

Name Type Required Description Accepted Values
prefix string false The prefix portion of the provider’s name; such as Mr., Mrs., Dr., etc. -
given [string] false A list of given name portions of the provider’s name. If a person has a first name and a middle name, the first name should be the first item in the list and the middle name should be the second item in the list. -
family [string] false A list of family (i.e. last) name portions of the provider’s name. Some may have multiple family names. -
suffix string false The suffix portion of the provider’s name; such as Jr., Sr., MD., RN., etc. -
formatted string false The fully formatted name. -

SourceIdentifier

Name Type Required Description Accepted Values
dataPartitionId string false The identifier of the source data partition. -
id string false The unique identifier for the entity in the data partition. -

ObservationValue

Name Type Required Description Accepted Values
codified [CodifiedValue] true The result of the observation or measurement expressed using one or more codified values. -
date string false The result of the observation or measurement expressed using a date. In ISO 8601 formatting with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -
numeric NumericValue false The result of the observation or measurement expressed using a numeric value. -
text string false The result of the observation or measurement expressed using text. -
unitOfMeasure CodeableConcept false The unit of measure for the observation. -

CodifiedValue

Name Type Required Description Accepted Values
sequence string false Indicates the sequence, order, or priority of the codified values when an observation has multiple codified values. -
value CodeableConcept true The value of the codified observation. -

NumericValue

Name Type Required Description Accepted Values
modifier string false A comparator that indicates how to interpret the numeric value, for example, >, <, >=, or <=. Often present due to limitations in measurement precision. -
value string true The result of the observation or measurement expressed as a numeric value that can be a positive or negative whole number or decimal value. -

Error

Name Type Required Description Accepted Values
code integer(int32) true Http response status code representing the error. -
message string true Human readable description of the error. -
errorDetails [ErrorDetail] false List of additional error details. -

ErrorDetail

Name Type Required Description Accepted Values
domain string false A subsystem or context where an error occurred. -
reason string false Codified value representing the specific error resulting in the current error status. -
message string false Human readable description of an error. -
locationType string false Location or type of the field that caused an error. query, header, path, formData, body
location string false Name of the field that caused an error. -

Observations

Name Type Required Description Accepted Values
items [Observation] true No description -
firstLink string true The first page of results. -
nextLink string false The next page of results. -