Overview
The US Core Laboratory Result Observation Profile is based upon the core FHIR Observation Resource, and, along with the US Core DiagnosticReport Profile for Laboratory Results Reporting, meets the US Core Data for Interoperability (USCDI) v1 ‘Laboratory’ requirements. Laboratory results are grouped and summarized using the DiagnosticReport resource which reference Observation resources. Each Observation resource represents an individual laboratory test and result value, a “nested” panel (such as a microbial susceptibility panel) which references other observations, or rarely a laboratory test with component result values.
Example Usage Scenarios:
The following are example usage scenarios for the this profile:
- Query for lab results belonging to a Patient
- Record or update lab results belonging to a Patient
Each Observation has next elements:
- a status
- a category code of ‘laboratory’
- a LOINC code, if available, which tells you what is being measured
- a patient
Each Observation supports next elements:
- a time indicating when the measurement was taken
- a result value or a reason why the data is absent
- if the result value is a numeric quantity, a standard UCUM unit
Profile specific implementation guidance:
- Additional codes that translate or map to the Observation code or category codes are allowed. For example:
- providing both a local code and LOINC code
- providing a more specific category codes such as ‘chemistry’, SNOMED CT concept, or system specific codes in addition to the ‘laboratory’ category code.
- An Observation without a value, SHALL include a reason why the data is absent unless there are component observations, or references to other Observations that are grouped within it .
- For Further guidance see the US Core Observation Grouping section in FHIR Specification.
- See the General US Core Guidance Section for further guidance on using UCUM
This resource conforms to USCDI V1 profile for Observation - refer to StructureDefinition US Core Observation Lab. Observation response will be provided in JSON (refers to Capability Statement) format as per FHIR standard R4 version.
Must support elements, mandatory and optional search parameters
Observation must support these elements:
status
Slices for category
-category:Laboratory
code
subject
effective[x]
value[x]
dataAbsentReason
The syntax used to describe the interactions is described here.
The following search parameters and search parameter combinations SHALL be supported:
SHALL support searching using the combination of the patient
and category
search parameters:
GET [base]/Observation?patient={Type/}[id]&category={system|}[code]&category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory
SHALL support searching using the combination of the patient
and code
search parameters:
- including optional support for OR search on code (e.g.
code={system|}[code],{system|}[code],...
)
GET [base]/Observation?patient={Type/}[id]&code={system|}[code]{,{system|}[code],...}
SHALL support searching using the combination of the patient
and category
and date
search parameters:
- including support for these date comparators:
gt
,lt
,ge
,le
- including optional support for AND search on date (e.g.
date=[date]&date=[date]]&...
)
GET [base]/Observation?patient={Type/}[id]&category={system|}[code]&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}
The following search parameters and search parameter combinations SHOULD be supported:
SHOULD support searching using the combination of the patient
and category
and status
search parameters:
- including support for OR search on status (e.g.
status={system|}[code],{system|}[code],...
)
GET [base]/Observation?patient={Type/}[id]&category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory&status={system|}[code]{,{system|}[code],...}
SHOULD support searching using the combination of the patient
and code
and date
search parameters:
- including optional support for OR search on
code
(e.g.code={system|}[code],{system|}[code],...
) - including support for these date comparators:
gt
,lt
,ge
,le
- including optional support for AND search on
date
(e.g.date=[date]&date=[date]]&...
)
GET [base]/Observation?patient={Type/}[id]&code={system|}[code]{,{system|}[code],...}&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}
The response to any search operation is always a list of resources in a Bundle or an Operation Outcome.
Observation by Patient and Category
Search for Observation by combination patient and category.
METHOD GET
[base url]/Observation?patient={Type/}[id]&category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory
PARAMS
[base url] - FHIR base url
{Type/} - optional reference type
[id] - Id for the Patient
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Observation?patient=Patient/c5137fa5-3216-b12a-cbbc-a0c6bef361g7&category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
Observation by Patient and Code
Search for Observation by combination patient and code.
METHOD GET
[base url]/Observation?patient={Type/}[id]&code={system|}[code]
PARAMS
[base url] - FHIR base url
{Type/} - optional reference type
[id] - Id for the Patient
{system|} - The system for the category, e.g. http://loinc.org
{code} - code for observation in the system, e.g. 44974-4
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Observation?patient=Patient/c5137fa5-3216-b12a-cbbc-a0c6bef361g7&code=http://loinc.org|2339-0,http://loinc.org|25428-4,http://loinc.org|2514-8' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
Observation by Patient and Category and Date
Search for Observations by combination patient and category and date.
METHOD GET
[base url]/Observation?patient={Type/}[id]&category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}
PARAMS
[base url] - FHIR base url
{Type/} - optional reference type
[id] - Id for the Patient
{system|} - The system for the category, e.g. http://loinc.org
{code} - Code for observation in the system, e.g. 24323-8
[date] - Filter's date
{gt|lt|ge|le} - Search modifier gr
or lt
or ge
or le
. Specification how to search by date in FHIR
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Observation?patient=Patient/c5137fa5-3216-b12a-cbbc-a0c6bef361g7&category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory&date=ge2010-01-14T00:00:00Z' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
Observation by Patient and Category and Status
Search for Observations by combination patient and Category and Status.
METHOD GET
[base url]/Observation?patient={Type/}[id]&category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory&status={system|}[code]{,{system|}[code],...}
PARAMS
[base url] - FHIR base url
{Type/} - optional reference type
[id] - Id for the Patient
{system|} - The system for the category, e.g. http://loinc.org
{code} - code for observation in the system, e.g. final
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Observation?patient=Patient/c5137fa5-3216-b12a-cbbc-a0c6bef361g7&category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory&status=final' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
Observation by Patient and Code and Date
Search for Observations by combination patient and code and date.
METHOD GET
[base url]/Observation?patient={Type/}[id]&code={system|}[code]{,{system|}[code],...}&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}
PARAMS
[base url] - FHIR base url
{Type/} - optional reference type
[id] - Id for the Patient
{system|} - The system for the category, e.g. http://loinc.org
{code} - code for observation in the system, e.g. 2339-0
[date] - Filter's date
{gt|lt|ge|le} - Search modifier gr
or lt
or ge
or le
. Specification how to search by date in FHIR
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Observation?patient=Patient/c5137fa5-3216-b12a-cbbc-a0c6bef361g7&code=http://loinc.org|2339-0&date=ge2019-01-14T00:00:00Z' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'