NAV
Ruby Shell

Chart Search API v1

The HealtheIntent Chart Search API enables you to search a patient’s medical record for information related to the patient’s medical history. It provides a list of prioritized results and enables you to review associated documents. The API has access to past and current visits, which enables you to learn more about the patient’s medical history when making clinical decisions. This enhances health care and cost-effectiveness, and helps clinicians avoid repeated tests, procedures, medications, or questions. You can search for a subset of a patient’s medical record by entering a search term or phrase. For example, a search for lipid profile returns a list of every related medical record item associated with a lipid profile evaluation (evaluations, visits, and so on).

The HealtheIntent Chart Search API includes the following capabilities:
Concept Search: Find information in the medical record based on clinical concepts, such as drug, disease, or symptom. For example, a search for heart attack returns all documents containing the medical concept heart attack and any related concepts, such as myocardial infarction.
Word Search: Find information based on the presence of specific nonclinical words. For example, a search for heart attack pizza returns all documents with the medical concept heart attack and the term pizza.
Smart Ranking: Returns the most important search results at the top of the list. The API understands the context and use of each concept and can promote documents to the top of the list that use the concept in the most important context. For example, results found under chief complaints are ranked higher than results found under family history.

You can use the HealtheIntent Chart Search API to search for the following types of information:
• Text documents
• Clinical notes (including Dynamic Documentation)
• Diagnostic reports
• Pathology reports
• Radiology reports
• Discrete measurements
• Vital signs
• Laboratory results

Note: The data retrieved by this API is filtered based on your sensitive data filters for HealtheIntent. Ensure that your implementations of this API are designed with this in mind, and if you integrate data from HealtheIntent into a clinical workflow using this API, ensure that your users are informed of your sensitive data filters. See Understand Sensitive Data in HealtheIntent in the Reference Pages on Cerner Wiki for more information.

URL: https://cernerdemo.api.us-1.healtheintent.com/chart-search/v1

Suggestion Search Result

The suggestion search result displays the related content for the searched terms.

Suggestion Search Results

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-1.healtheintent.com/chart-search/v1/suggestion-search-results',
  query: {
  'text' => 'string'
}, headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/chart-search/v1/suggestion-search-results?text=type,string \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "items": [
    {
      "description": "Febrile convulsion",
      "coding": {
        "code": "46635009",
        "system": "SNOMED",
        "display": "diabetes mellitus type 1"
      }
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/chart-search/v1/suggestion-search-results?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/chart-search/v1/suggestion-search-results?offset=0&limit=20"
}

GET /suggestion-search-results

Retrieves a list of clinically relevant suggested search results for a given search.

Parameters

Parameter In Type Required Default Description Accepted Values
text query string true N/A The search text, which can be a partial or full name of the clinical concept. -
offset query integer(int32) false 0 The number of results to skip from the beginning of the list of results (typically for the purpose of paging). The minimum offset is 0. There is no maximum offset. -
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 A collection of suggestion search results. SuggestionSearchResults
400 Bad Request Bad Request Error
401 Unauthorized Unauthorized Error
403 Forbidden Forbidden Error

Document Reference Search Result

The document reference search result gives the related content to the document that includes radiology, document reference, and diagnostics.

Document Reference Search Results

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-1.healtheintent.com/chart-search/v1/populations/42efb88d-4082-4259-a720-cf7693de1d51/patients/f8f1fa75-baa6-4096-af24-25caa7c14a9f/document-reference-search-results', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/chart-search/v1/populations/42efb88d-4082-4259-a720-cf7693de1d51/patients/f8f1fa75-baa6-4096-af24-25caa7c14a9f/document-reference-search-results \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "items": [
    {
      "documentReference": {
        "id": "/partition:8dee150d-505f-4635-b009-1bef63d7cf5a/person:1349927,std:docref_4512585-264122",
        "sourceIdentifier": {
          "id": "4512585",
          "dataPartitionId": "8dee150d-505f-4635-b009-1bef63d7cf5a"
        },
        "description": "",
        "type": {
          "sourceCodings": [
            {
              "code": "22336603",
              "display": "CFTR.c.1717-1G>A",
              "system": "urn:cerner:coding:codingsystem:codeset:72"
            }
          ],
          "codings": [
            {
              "code": "22336603",
              "display": "CFTR.c.1717-1G>A",
              "system": "urn:cerner:coding:codingsystem:codeset:72"
            }
          ]
        },
        "context": {
          "period": {
            "end": "2014-08-18T12:52:00.000Z"
          }
        },
        "author": {
          "aliases": [
            {
              "value": "1284442",
              "type": "EXTERNAL"
            },
            {
              "value": "CERNMS020724",
              "type": "_NOT_RECOGNIZED"
            }
          ],
          "name": {
            "formatted": "Test last name, Test first name"
          }
        }
      },
      "relevantText": "Acute Cystitis & Diabetes Type II",
      "identifiedConcepts": [
        {
          "offset": {
            "start": "1",
            "end": "25"
          },
          "matched": true,
          "codings": [
            {
              "code": "73211009",
              "system": "2.16.840.1.113883.6.96",
              "display": "diabetes mellitus type 1"
            }
          ]
        }
      ]
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/chart-search/v1/populations/0fa79ed3-1413-4d40-ab71-d9d5e6c4babe/patients/0fa79ed3-1413-4d40-ab71-d9d5e6c4bab1/document-reference-search-results?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/chart-search/v1/populations/0fa79ed3-1413-4d40-ab71-d9d5e6c4babe/patients/0fa79ed3-1413-4d40-ab71-d9d5e6c4bab1/document-reference-search-results?offset=0&limit=20"
}

GET /populations/{populationId}/patients/{patientId}/document-reference-search-results

This service searches patient documents in HealtheIntent and retrieves matched concepts and text as well as semantically related concepts from documents. This service supports clinical, radiology, and diagnostic documents and applies sensitive data filtering.

Parameters

Parameter In Type Required Default Description Accepted Values
patientId path string true N/A The patient for whom the documents are retrieved. -
populationId path string true N/A The population from which the documents are retrieved. -
startDate query string false N/A The start date of the document in ISO 8601 format with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -
endDate query string false N/A The end date of the document in ISO 8601 format with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -
orderBy query string false -effectiveDate Sorts results by a given value in ascending or descending order of effective date. To specify descending, prefix the value with a hyphen (-). When relevance is selected, the sort is based on significance.\n -
code query array[string] false N/A Searched concept codes support a maximum of three search terms including code and text searches. When multiple codes and text are searched for, the default logical operator is AND. The search must be in typeSystem typeCode format. For example, 2.16.840.1.113883.6.96
text query array[string] false N/A Searched free text supports a maximum of three search terms including code and text searches. When multiple codes and text are searched for, the default logical operator is AND. -
offset query integer(int32) false 0 The number of results to skip from the beginning of the list of results (typically for the purpose of paging). The minimum offset is 0. There is no maximum offset. -
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 A list of documents. DocumentReferenceSearchResults
400 Bad Request Bad Request Error
401 Unauthorized Unauthorized Error
403 Forbidden Forbidden Error

Observation Search Result

The observation search result gives the related content to the observations that have been recorded in the laboratory.

Observation Search Results

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-1.healtheintent.com/chart-search/v1/populations/42efb88d-4082-4259-a720-cf7693de1d51/patients/c44f5461-05ff-42b3-99d0-b315d5408947/observation-search-results', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/chart-search/v1/populations/42efb88d-4082-4259-a720-cf7693de1d51/patients/c44f5461-05ff-42b3-99d0-b315d5408947/observation-search-results \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "items": [
    {
      "id": "9223350768818411704b22e26541346dcee4ae8665d183bb3efa7bad0261f0f71f75b4604f275a960d9",
      "sourceIdentifier": {
        "dataPartitionId": "3edf856e-08ba-4da1-9550-5a55a533523d",
        "Id": "F585DD3407BB4409CBB971F9B8DD3C6F"
      },
      "code": {
        "sourceCodings": [
          {
            "code": "2",
            "display": "Systolic",
            "system": "allscripts:vitaltype"
          }
        ],
        "codings": [
          {
            "code": "271649006",
            "display": "Systolic blood pressure",
            "system": "2.16.840.1.113883.6.96"
          }
        ],
        "text": "Systolic"
      },
      "effectiveDate": "2010-12-16T19:52:44.103Z",
      "interpretation": {
        "sourceCodings": [
          {
            "code": "207",
            "display": "HI",
            "system": "allscripts:resultinterpretation"
          }
        ],
        "codings": [
          {
            "code": "H",
            "display": "Normal",
            "system": "2.16.840.1.113883.12.78"
          }
        ],
        "text": "HI"
      },
      "notes": [
        {
          "text": "Systolic",
          "author": {
            "aliases": [
              {
                "value": "1618009",
                "type": "DEA",
                "system": "2.16.840.1.113883.4.814"
              }
            ],
            "name": {
              "formatted": "Test last name, Test first name",
              "prefix": "MR.",
              "suffix": "MD",
              "given": [
                "Test given name"
              ],
              "family": [
                "Test last name, Test first name"
              ]
            }
          },
          "date": "2011-07-27T01:06:40.310Z"
        }
      ],
      "value": {
        "numeric": {
          "value": "36",
          "modifier": ">"
        },
        "unitOfMeasure": {
          "sourceCodings": [
            {
              "code": "37127001",
              "display": "Injection of inner ear with alcohol (procedure)",
              "system": "2.16.840.1.113883.6.96"
            }
          ],
          "codings": [
            {
              "code": "37127001",
              "display": "Injection of inner ear with alcohol (procedure)",
              "system": "2.16.840.1.113883.6.96"
            }
          ],
          "text": "RBC"
        },
        "codified": [
          {
            "value": {
              "sourceCodings": [
                {
                  "code": "37127001",
                  "display": "Injection of inner ear with alcohol (procedure)",
                  "system": "2.16.840.1.113883.6.96"
                }
              ],
              "codings": [
                {
                  "code": "37127001",
                  "display": "Injection of inner ear with alcohol (procedure)",
                  "system": "2.16.840.1.113883.6.96"
                }
              ],
              "text": "RBC"
            },
            "sequence": "string"
          }
        ],
        "text": "kg",
        "date": "2010-12-16T19:52:44.103Z"
      },
      "referenceRange": {
        "display": "36.1-37.2 degree C",
        "low": {
          "numericValue": {
            "value": "36.0",
            "modifier": "<"
          },
          "textValue": {
            "value": "Neg"
          }
        },
        "high": {
          "numericValue": {
            "value": "37.3",
            "modifier": ">"
          },
          "textValue": {
            "value": "yellow"
          }
        }
      }
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/chart-search/v1/populations/0fa79ed3-1413-4d40-ab71-d9d5e6c4babe/patients/0fa79ed3-1413-4d40-ab71-d9d5e6c4bab1/observation-search-results?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/chart-search/v1/populations/0fa79ed3-1413-4d40-ab71-d9d5e6c4babe/patients/0fa79ed3-1413-4d40-ab71-d9d5e6c4bab1/observation-search-results?offset=0&limit=20"
}

GET /populations/{populationId}/patients/{patientId}/observation-search-results

This service searches patient observations in HealtheIntent and retrieves matched as well as semantically related observations. This service applies sensitive data filtering.

Parameters

Parameter In Type Required Default Description Accepted Values
patientId path string true N/A The ID of the patient in the population. -
populationId path string true N/A The ID of the population. -
startDate query string false N/A The start date of the observation in ISO 8601 format with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -
endDate query string false N/A The end date of the observation in ISO 8601 format with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -
orderBy query string false -effectiveDate Sorts results by a given value in ascending or descending order of effective date. To specify descending, prefix the value with a hyphen (-). When relevance is selected, the sort is based on significance.\n -
code query array[string] false N/A Searched codes support a maximum of three search terms including code and text searches. When multiple codes and text are searched for, the default logical operator is AND. The search must be in system code format. For example, 2.16.840.1.113883.6.96
text query array[string] false N/A Searched free text supports a maximum of three search terms including code and text searches. When multiple codes and text are searched for, the default logical operator is AND. -
offset query integer(int32) false 0 The number of results to skip from the beginning of the list of results (typically for the purpose of paging). The minimum offset is 0. There is no maximum offset. -
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 A list of observations ObservationSearchResults
400 Bad Request Bad Request Error
401 Unauthorized Unauthorized Error
403 Forbidden Forbidden Error

Schema Definitions

SuggestionSearchResults

Name Type Required Description Accepted Values
items [SuggestionSearchResult] true An array containing the current page of results. -
totalResults integer(int32) false The total number of results for the specified parameters. -
firstLink string true The first page of results. -
lastLink string false The last page of results. -
prevLink string false The previous page of results. -
nextLink string false The next page of results. -

SuggestionSearchResult

Name Type Required Description Accepted Values
description string true The description of the displayed text. -
coding Coding true No description -

Coding

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

Error

Name Type Required Description Accepted Values
code integer(int32) true The HTTP response status code that represents the error. -
message string true A human-readable description of the error. -
errorDetails [ErrorDetail] false A 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 A codified value that represents the specific error that caused the current error status. -
message string false A human-readable description of an error. -
locationType string false The location or type of the field that caused an error. query, header, path, formData, body
location string false The name of the field that caused an error. -

ObservationSearchResults

Name Type Required Description Accepted Values
items [ObservationSearchResult] true An array containing the current page of results. -
totalResults integer(int32) false The total number of results for the specified parameters. -
firstLink string true The first page of results. -
lastLink string false The last page of results. -
prevLink string false The previous page of results. -
nextLink string false The next page of results. -

ObservationSearchResult

Name Type Required Description Accepted Values
id string true The unique ID of the observation. -
sourceIdentifier SourceIdentifierResult true An ID that uniquely identifies the observation for a patient in a data partition. -
code Code true The name of the test or kind of observation that was measured or observed. For example, height, eye color, tobacco use, or hemoglobin. Optionally, the code may have additional precoordinated information such as the method, sample type, timing of measurement, and scale of measurement. -
effectiveDate string true 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 ISO 8601 format with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -
interpretation Code true A categorization of the measurement value that indicates normalcy. For example, abnormal, normal, high, low, or critical. -
notes [Notes] true The notes or comments associated with the observation. -
value Value true The result of the observation or measurement. The data type of the result value will either be numeric, codified, text, or a date. -
referenceRange ReferenceRange false The reference range associated with the observation -

SourceIdentifierResult

Name Type Required Description Accepted Values
dataPartitionId string false No description -
id string false No description -

Code

Name Type Required Description Accepted Values
sourceCodings [Coding] true 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. -
codings [Coding] true A list of codified values from standard code systems recognized by HealtheIntent. -
text string true 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 source codings list. -

Notes

Name Type Required Description Accepted Values
text string true The textual content of the note or comment. -
author Author true The individual who recorded the note or comment. -
date string true The date associated with the note or comment in ISO 8601 format with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -

Author

Name Type Required Description Accepted Values
aliases [Aliases] true A list of IDs of the provider, such as the ten-digit National Provider Identifier (NPI) or the Drug Enforcement Administration (DEA) number. -
name Name true A model containing attributes of a provider name. -

Aliases

Name Type Required Description Accepted Values
value string true The unique ID of the provider in the context of the system or assigning authority. -
type string true The alias type. -
system string true The authority responsible for assigning the alias value. Alias values may be unique in each system but not across systems. -

Name

Name Type Required Description Accepted Values
formatted string true The fully formatted name. -
prefix string true The parts prefixing the name, such as Dr., Mr., or Mrs. -
suffix string true The parts suffixing the name, such as MD, III, or Jr. -
given [string] true A list of the parts of the person’s personal name. For example, if a person has a first name and a middle name, the first name is the first item on the list and the middle name is the second item on the list. -
family [string] true A list of the person’s family (last) name or names. -

Value

Name Type Required Description Accepted Values
numeric Numeric true The result of the observation or measurement expressed using a numeric value. -
unitOfMeasure Code true The unit of measure for the observation. -
codified [Codified] true The result of the observation or measurement expressed using one or more codified values. -
text string true The result of the observation or measurement expressed using text. -
date string true The result of the observation or measurement expressed using a date ranging in precision from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -

Numeric

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

Codified

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

ReferenceRange

Name Type Required Description Accepted Values
display string false The textual value for the reference range. -
low Range false The value of the low bound of the reference range. -
high Range false The value of the high bound of the reference range. -

Range

Name Type Required Description Accepted Values
numericValue Numeric false Indicates that the reference range is a numeric value. -
textValue TextValue false Text-based reference range in an observation, which may be used when a quantitative range is not appropriate for an observation. -

TextValue

Name Type Required Description Accepted Values
value string false The reference range value expressed as a text value. -

DocumentReferenceSearchResults

Name Type Required Description Accepted Values
items [DocumentReferenceSearchResult] true An array containing the current page of results. -
totalResults integer(int32) false The total number of results for the specified parameters. -
firstLink string true The first page of results. -
lastLink string false The last page of results. -
prevLink string false The previous page of results. -
nextLink string false The next page of results. -

DocumentReferenceSearchResult

Name Type Required Description Accepted Values
documentReference DocumentReference true The structure of the summarized document entity. -
relevantText string true A brief extract of the document in the context of the searched terms. -
identifiedConcepts [IdentifiedConcepts] true The clinical concepts identified in the extract. -

DocumentReference

Name Type Required Description Accepted Values
id string true The unique ID of the patient’s document. -
sourceIdentifier SourceIdentifierDocument true An ID that uniquely identifies this observation for a patient in a data partition. -
description string true The title of the document. -
type Type true A codeable concept comprised of codings standardized by HealtheIntent and codings as provided by the source. -
context Context true The clinical context of the document. -
author Author true No description -

SourceIdentifierDocument

Name Type Required Description Accepted Values
dataPartitionId string true The data partition ID of the source system. -
id string true The ID that uniquely identifies the entity in the source system. -

Type

Name Type Required Description Accepted Values
sourceCodings Coding true 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. -
codings Coding true A list of codified values from standard code systems recognized by HealtheIntent. -
text string true 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 source codings list. -

Context

Name Type Required Description Accepted Values
period Period true 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 rapid eye movement (REM) sleep. -

Period

Name Type Required Description Accepted Values
start string true The date that the measurement period started in ISO 8601 format with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. -
end string true The date that the measurement period ended in ISO 8601 format with precision ranging from YYYY to YYYY-MM-DDThh:mm:ss.SSSZ. If no end date is present, the measurement period is ongoing. -

IdentifiedConcepts

Name Type Required Description Accepted Values
codings [Coding] true The clinical concepts identified by the concept extractor. -
offset Offset true No description -
matched string true Set to true when the searched concept is the same as the concept identified in the document. -

Offset

Name Type Required Description Accepted Values
start string true The start offset of the concept that is identified by the concept extractor. -
end string true The end offset of the concept that is identified by the concept extractor. -