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
Search
Semantic search of a patient’s medical record for information related to the patient’s medical history.
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?text=dia&offset=0&limit=20",
"lastLink": "https://cernerdemo.api.us-1.healtheintent.com/chart-search/v1/suggestion-search-results?text=dia&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 list of suggestions for the given search. | Suggestions |
400 | Bad Request | Bad Request | Error |
401 | Unauthorized | Unauthorized | Error |
403 | Forbidden | Forbidden | Error |
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": "e1f0e864-97e4-4c3b-bd7c-91864760ba7c"
},
"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": "N",
"display": "N",
"system": "allscripts:resultinterpretation"
}
],
"codings": [
{
"code": "N",
"display": "Normal",
"system": "2.16.840.1.113883.12.78"
}
],
"text": "N"
},
"notes": [
{
"text": "Random note",
"author": [
{
"aliases": [
{
"value": 1234,
"type": "DEA",
"system": "2.16.840.1.113883.4.814"
}
],
"name": {
"formatted": "Brizendine, Margaret"
}
}
],
"date": "2011-07-27T01:06:40.310Z"
}
],
"value": {
"numeric": {
"value": "118"
}
}
}
],
"totalResults": 1,
"firstLink": "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?offset=0&limit=20",
"lastLink": "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?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. 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 formatting 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 formatting 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 effectiveDate. 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. Supports a maximum of three search terms including code and text search. When multiple codes and text are searched for, the default logical operator is and. 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 maximum of three search terms including code and text search. 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 | An array of observations. | ObservationSearchResults |
400 | Bad Request | Bad Request | Error |
401 | Unauthorized | Unauthorized | Error |
403 | Forbidden | Forbidden | Error |
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": {
"dataPartitionId": "8dee150d-505f-4635-b009-1bef63d7cf5a",
"sourceId": "4512585"
},
"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": {
"provider": {
"aliases": [
{
"value": "1284442",
"type": "EXTERNAL"
},
{
"value": "CERNMS020724",
"type": "_NOT_RECOGNIZED"
}
],
"name": {
"formatted": "Salomoni, Martin"
}
}
}
},
"relevantText": "striAcute Cystitis & Diabetes Type IIng",
"identifiedConcepts": [
{
"codings": {
"system": "2.16.840.1.113883.6.96",
"code": "73211009",
"display": "diabetes mellitus type 1"
},
"offset": {
"start": "1",
"end": "25"
},
"isMatched": true
}
]
}
],
"totalResults": 1,
"firstLink": "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?offset=0&limit=20",
"lastLink": "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?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. Supports clinical, radiology, and diagnostic documents. 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 formatting 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 formatting 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 effectiveDate. 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. Supports a maximum of three search terms including code and text search. When multiple codes and text are searched for, the default logical operator is and. Must be in typeSystem | typeCode format, for example, 2.16.840.1.113883.6.96 |
text | query | string | false | N/A | Searched free text. Supports a maximum of three search terms including code and text search. 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 | Success | DocumentReferenceSearchResults |
400 | Bad Request | Bad Request | Error |
401 | Unauthorized | Unauthorized | Error |
403 | Forbidden | Forbidden | Error |
Schema Definitions
Suggestions
Name | Type | Required | Description | Accepted Values |
---|---|---|---|---|
items | [Suggestions] | true | [Retrieves a list of clinically relevant suggested search results for a given search.] | - |
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. | - |
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. | - |
ObservationSearchResults
Name | Type | Required | Description | Accepted Values |
---|---|---|---|---|
items | [ObservationSearchResults] | true | [This service searches patient observations in HealtheIntent and retrieves matched as well as semantically related observations. Applies sensitive data filtering.] | - |
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. | - |
DocumentReferenceSearchResults
Name | Type | Required | Description | Accepted Values |
---|---|---|---|---|
items | [DocumentReferenceSearchResults] | true | [This service searches patient documents in HealtheIntent and retrieves matched concepts and text as well as semantically related concepts from documents. Supports clinical, radiology, and diagnostic documents. Applies sensitive data filtering.] | - |
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. | - |