FHIR Observation

Base Path: /fhir/4.0/Observation

Version: 2.0.0

The FHIR Observation API allows you to record and retrieve measurements and simple assertions made about a patient. Information that is typically recorded using an observation includes:

  • Vital signs: temperature, blood pressure, respiration rate
  • Laboratory Data: blood glucose, estimated GFR
  • Imaging results: bone density, fetal measurements
  • Clinical assessments
  • Personal characteristics: height, weight, eye-color
  • Social history: Smoking status, tobacco use, family support, cognitive status

The endpoint provides the ability to:

  • Retrieve all Observation resources that match search criteria for a given patient.
  • Retrieve a specific Observation resource based on its resource ID.
  • Retrieve the history of an Observation resource based on its resource ID.
  • Retrieve a specific version of an Observation resource based on its FHIR ID and Version ID.
  • Retrieve Observation results from third-party sources.
  • Supports exporting resources via FHIR Bulk.

The data returned in this API is subject to privacy and permissions settings, refer to the Working with Privacy guide to learn how this might affect your application.

The Observation API aggregates data from multiple sources, to learn about working with aggregated APIs refer to the Working with Aggregation guide in the Knowledge Hub.

This API is based on the R4 release of the FHIR standard, for more information on this API refer to the official FHIR documentation.


Methods

Retrieve Observations for a Patient

GET /fhir/4.0/Observation/

This method returns all observations for the patient identified by patient.identifier. Optionally additional filtering can be added.


Parameters

Name

Type

Data Type

Description


Name:

patient.identifier

required

Type:

query

Data Type:

string

Description:

The patient identifier consists of patient identifier namespace, also known as the system, and identifier, separated using a URL encoded | character i.e. %7c. The 'subject.identifier' variant of this parameter is also supported.

Note:

  • You must either define the patient.identifier or patient or subject.identifier or subject, not a combination of those parameters.
  • In addition to having the required patient.identifier, patient, subject.identifier or subject, you can defined chained patient or subject elements to define filters on the reference, each of the chained parameters can specify multiple comma separated values.

Sample format of the query is

  • patient.identifier={namespace}|{identifier}
  • patient.identifier={namespace}|{identifier} & patient.gender=male & patient.birthdate=2002-05-01


Sample Value: ORION|AAA-00315-7



Name:

patient

required

Type:

query

Data Type:

string

Description:

The patient resource id. The 'subject' variant of this parameter is also supported.

Note:

  • You must either define the patient.identifier or patient or subject.identifier or subject, not a combination of those parameters.
  • In addition to having the required patient.identifier, patient, subject.identifier or subject, you can defined chained patient or subject elements to define filters on the reference, each of the chained parameters can specify multiple comma separated values.

    Sample format of the query is

    • patient={patient FHIRID}
    • patient={patient FHIRID} & patient.gender=male & patient.birthdate=2002-05-01


Sample Value: IFAUCQJNGAYTENBNHBAE6USJJ5HA



Name:

subject.identifier

required

Type:

query

Data Type:

string

Description:

The subject identifier consists of subject identifier namespace, also known as the system, and identifier, separated using a URL encoded | character i.e. %7c. The 'patient.identifier' variant of this parameter is also supported.

Note:

  • You must either define the patient.identifier or patient or subject.identifier or subject, not a combination of those parameters.
  • In addition to having the required patient.identifier, patient, subject.identifier or subject, you can defined chained patient or subject elements to define filters on the reference, each of the chained parameters can specify multiple comma separated values.

Sample format of the query is

  • subject.identifier={namespace}|{identifier}
  • subject.identifier={namespace}|{identifier} & subject.gender=male & subject.birthdate=2002-05-01


Sample Value: ORION|AAA-00315-7



Name:

subject

required

Type:

query

Data Type:

string

Description:

The subject resource id. The 'patient' variant of this parameter is also supported.

Note:

  • You must either define the patient.identifier or patient or subject.identifier or subject, not a combination of those parameters.
  • In addition to having the required patient.identifier, patient, subject.identifier or subject, you can defined chained patient or subject elements to define filters on the reference, each of the chained parameters can specify multiple comma separated values.

    Sample format of the query is

    • subject={patient FHIRID}
    • subject={patient FHIRID} & patient.gender=male & patient.birthdate=2002-05-01


Sample Value: IFAUCQJNGAYTENBNHBAE6USJJ5HA



Name:

date

optional

Type:

query

Data Type:

array

Description:

Filters the observations to those with an effectiveDateTime or effectivePeriod on, before, or after a specific date, date-time, or date range. The supported prefixes are gt, ge, lt, le and eq. If no prefix is used, exact date or date-time matching is implied. Dates must be formatted according to ISO 8601 either as a date only (e.g. 1997-07-16) or as a date-time including the timezone (e.g. 1997-07-16T19:20:30+13:00). Ensure that special characters such as + are URL encoded i.e. %2B.

The format of the query is

  • date=gt{dateTimeValue}
  • date=ge{dateTimeValue}&date=le{dateTimeValue}


Sample Value: gt2000-01-01



Name:

code

optional

Type:

query

Data Type:

array

Description:

Filters the observations to those that are of the specified code(s). For each specified code, system and code are separated using a URL encoded | character i.e. %7c. The code is matched to the Observation.code.

Note: Supports passing in a comma-separated list of values.


Sample Value: http://loinc.org|8302-2



Name:

component-code

optional

Type:

query

Data Type:

array

Description:

Filters the observations to those that are of the specified component code(s). For each specified component code, system and code are separated using a URL encoded | character i.e. %7c. The component code is matched to the Observation.component.code .

Note: Supports passing in a comma-separated list of values.


Sample Value: http://loinc.org|8302-2



Name:

combo-code

optional

Type:

query

Data Type:

array

Description:

Filters the observations to those that are of the specified combo code(s). For each specified combo code, system and code are separated using a URL encoded | character i.e. %7c. The combo code is matched to theObservation.code and the Observation.component.code .

Note: Supports passing in a comma-separated list of values.


Sample Value: http://loinc.org|8302-2



Name:

status

optional

Type:

query

Data Type:

array

Description:

Filters the observations to those having the specified status value(s). Multiple statuses can be specified as comma separated values. Possible values are

  • registered
  • preliminary
  • final
  • amended
  • corrected
  • cancelled
  • entered-in-error
  • unknown

    Note:

  • if a status system is specified only http://hl7.org/fhir/observation-status can be used.
  • Supports passing in a comma-separated list of values.


Sample Value: final,registered



Name:

category

optional

Type:

query

Data Type:

array

Description:

Filters the observations to those that match the specified category. The category value consists of a coding system and a code separated using a URL encoded | character i.e. %7c.

Note: Supports passing in a comma-separated list of values.


Sample Value: http://terminology.hl7.org/CodeSystem/observation-category|laboratory



Name:

identifier

optional

Type:

query

Data Type:

array

Description:

Filters Observations by the identifier associated with this observation.

Note: The identifier can be a single item or a comma separated list of identifiers. Each identifier is defined by system and value , separated using a URL encoded | character i.e. %7c.


Sample Value: urn:oid:a.b.c.d|2345234234234, urn:text:sysA|af345



Name:

encounter

optional

Type:

query

Data Type:

array

Description:

Filters Observations by the referenced encounter, identified by the Observation.encounter reference.

Note: encounter can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: encounter.identifier=urn:text:OHCP%7cER20170530.1



Name:

specimen

optional

Type:

query

Data Type:

array

Description:

Filters Observations by the referenced specimen, identified by the Observation.specimen reference.

Note: specimen can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: specimen.type=http://snomed.info/sct|122555007



Name:

device

optional

Type:

query

Data Type:

array

Description:

Filters Observations by by the the device that generated the Observation data, identified by the Observation.device reference.

Note: device can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: device:Device.status=active,inactive & device:DeviceMetric.category=calculation



Name:

derived-from

optional

Type:

query

Data Type:

array

Description:

Filters Observations by elated measurements the Observation is made from. Identified by the Observation.derivedFrom reference.

Note: derived-from can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: derived-from:Media.created=gt2012-01-01& derivedFrom:Media.operator:Practitioner.identifier=SYS_A|123



Name:

performer

optional

Type:

query

Data Type:

array

Description:

Filters Observations by the observation performer. Identified by the Observation.performer reference.

Note: performer can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: performer:Practitioner.family=Smith&performer:Practitioner.given=Bob,Robert



Name:

part-of

optional

Type:

query

Data Type:

array

Description:

Filters Observations by the by the Observation part of referencer. Identified by the Observation.partOf reference.

Note: part-of can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: part-of:Procedure.code=http://snomed.info/sct|34068001



Name:

based-on

optional

Type:

query

Data Type:

array

Description:

Filters Observations by the Observation request reference. Identified by the Observation.baseOn reference.

Note: based-on can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: based-on:ServiceRequest.code=SYS_A|code1,SYS_B|code2



Name:

has-member

optional

Type:

query

Data Type:

array

Description:

Filters Observations by the related resource that belongs to the Observation group. Identified by the Observation.hasMember reference.

Note: has-member can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: has-Member:Observation.code=http://loinc.org/|22735-5,22702-5



Name:

method

optional

Type:

query

Data Type:

array

Description:

Filters the observations to those that match the specified method used for the observation. The method value consists of a coding system and a code separated using a URL encoded | character i.e. %7c.

Note: Supports passing in a comma-separated list of values.


Sample Value: method=http://snomed.info/sct|702668005



Name:

focus

optional

Type:

query

Data Type:

array

Description:

Filters Observations by the observation focus. Identified by the Observation.focus reference.

Note: focus can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: focus:Group.name=SmithFamily



Name:

-include-sources

optional

Type:

query

Data Type:

array

Description:

The -include-sources parameter defines which sources should be queried for the results.

Note: Either -include-sources or -exclude-sources parameter can be specified, not both. If -include-sources is specified, ONLY the specified sources will be searched. Note that the sources specified should be enabled.


Sample Value: -include-sources=Orion%20Health%E2%84%A2%20R4%20C-CDA%20Results%20Observations



Name:

-exclude-sources

optional

Type:

query

Data Type:

array

Description:

The -exclude-sources parameter defines which sources should NOT be queried for the results.

Note: Either -include-sources or -exclude-sources parameter can be specified, not both. If -exclude-sources is specified, the specified sources will NOT be searched. Note that the sources specified should be enabled.


Sample Value: -exclude-sources=Orion%20Health%E2%84%A2%20R4%20C-CDA%20Results%20Observations



Name:

_summary

optional

Type:

query

Data Type:

string

Description:

Instructs the server to return a subset of the resource, reducing the size of the reponse payload. Possible values are

  • true: return summaries only
  • false: return full resources
  • count: return the count of search matches
  • text: return only the text, id, meta, and top-level mandatory elements
  • data: remove the text element


Sample Value: true



Name:

_lastUpdated

optional

Type:

query

Data Type:

array

Description:

Filters based on when the resource version was last changed, before, or after a specific date, date-time, or date range. The supported prefixes are gt, ge, lt, le and eq. If no prefix is used, exact date or date-time matching is implied. Dates must be formatted according to ISO 8601 either as a date only (e.g. 1997-07-16) or as a date-time including the timezone (e.g. 1997-07-16T19:20:30+13:00). Ensure that special characters such as + are URL encoded i.e. %2B.

The format of the query is

  • _lastUpdated=gt{dateTimeValue}
  • _lastUpdated=ge{dateTimeValue}&_lastUpdated=le{dateTimeValue}


Sample Value: ge2012-01-01T01:00:00+13:00



Name:

_elements

optional

Type:

query

Data Type:

array

Description:

Request a specific set of elements be returned, or excluded as part of a resource in the search results. Use _elements for the elements to include and _elements:exclude for the elements to exclude.


Sample Value: _elements=code,category,status,_elements:exclude=*.extension,*.encounter



Name:

-cursor

optional

Type:

query

Data Type:

string

Description:

A server internal parameter to navigate different pages.

This parameter is returned by the server as part of the Bundle 'next' link of a paginated query. And is used to retrieve the next page




Name:

_count

optional

Type:

query

Data Type:

integer

Description:

Limit the number of match results to the specified _count. When _count is specified, the query will be paginated, and only _count or less results will be returned.

The returned bundle may contain a next link if more results could be available.


Sample Value: 30



Name:

_sort

optional

Type:

query

Data Type:

array

Description:

Request which order results should be returned in.

Supported _sort parameters are:

  • date to sort by Observation.effective ascending
  • -date to sort by Observation.effective descending
  • _lastUpdated to sort by Observation.Meta.lastUpdated ascending
  • -_lastUpdatedto sort by Observation.Meta.lastUpdated descending

You can use any combination of the parameters


Default Value: -date

Sample Value: _sort=-date,_sort=-date, -_lastUpdated



Name:

X-Request-Id

optional

Type:

header

Data Type:

string

Description:

Supply a request Id to track the request.


Sample Value: adUEctf6urd



Name:

Accept

optional

Type:

header

Data Type:

string

Description:

Media type of the response. Possible values are application/json and application/xml. If both _format and Accept are specified, _format takes precedence.


Default Value: application/json

Sample Value: application/json



Name:

Accept-Language

optional

Type:

header

Data Type:

string

Description:

Specifies the language that the results will be translated to. If not specified it will default to the server's locale. (e.g. fr-FR for french)


Sample Value: en-US



Name:

_format

optional

Type:

query

Data Type:

string

Description:

Media type of the response. It takes precedence over the Accept header. Possible values are json and xml.


Default Value: json

Sample Value: json



Name:

_pretty

optional

Type:

query

Data Type:

string

Description:

Ask for a pretty printed response for human convenience.


Default Value: true

Sample Value: true



Name:

CSRF-Token

required

Type:

header

Data Type:

string

Description:

This header is required for CSRF protection. The csrfToken from the OHP session must be included in this header.

System will validate the token and reject the request if the token is invalid or not present.

Note: Either CSRF-Token or X-Send-Open-API must be included in headers to do the CSRF protection.




Name:

X-Send-Open-API

required

Type:

header

Data Type:

string

Description:

This header is required for CSRF protection. This header is required to distinguish the api requests from known senders.

System will validate "X-Send-Open-API" request header is present or not. If it is not present, system will reject the request

Note: Either CSRF-Token or X-Send-Open-API must be included in headers to do the CSRF protection.



Responses


application/json+fhir

200

Returns a FHIR Bundle containing 0..* OperationOutcome resources and 0..* Observation resources


application/json+fhir

400

This response code is returned when the query is invalid e.g. an invalid parameter or a partial token in the search.

Sample Requests

Search for specific Patient Observations
curl -X GET "https://developer-solution/fhir/4.0/Observation?patient.identifier=ORION%7CAAA-00315-7&date=gt2000-01-01&code=http://loinc.org%7C8302-2&status=final,registered" \
-H 'Accept: application/json' \
-H 'Authorization: Basic bGV2ZWwxLnN5c19hOk9yaW9uc3k1IT8='

Retrieve Observations for a Patient

POST /fhir/4.0/Observation/_search

This method returns all observations for the patient identified by patient.identifier. Optionally additional filtering can be added. This is the secure alternative to the GET search.


Parameters

Name

Type

Data Type

Description


Name:

Content-Type

required

Type:

header

Data Type:

string

Description:

Specifies how to encode the form data. The Content-Type value must be application/x-www-form-urlencoded


Sample Value: application/x-www-form-urlencoded



Name:

patient.identifier

required

Type:

formData

Data Type:

string

Description:

The patient identifier consists of patient identifier namespace, also known as the system, and identifier, separated using a URL encoded | character i.e. %7c. The 'subject.identifier' variant of this parameter is also supported.

Note:

  • You must either define the patient.identifier or patient or subject.identifier or subject, not a combination of those parameters.
  • In addition to having the required patient.identifier, patient, subject.identifier or subject, you can defined chained patient or subject elements to define filters on the reference, each of the chained parameters can specify multiple comma separated values.

Sample format of the query is

  • patient.identifier={namespace}|{identifier}
  • patient.identifier={namespace}|{identifier} & patient.gender=male & patient.birthdate=2002-05-01


Sample Value: ORION|AAA-00315-7



Name:

patient

required

Type:

formData

Data Type:

string

Description:

The patient resource id. The 'subject' variant of this parameter is also supported.

Note:

  • You must either define the patient.identifier or patient or subject.identifier or subject, not a combination of those parameters.
  • In addition to having the required patient.identifier, patient, subject.identifier or subject, you can defined chained patient or subject elements to define filters on the reference, each of the chained parameters can specify multiple comma separated values.

    Sample format of the query is

    • patient={patient FHIRID}
    • patient={patient FHIRID} & patient.gender=male & patient.birthdate=2002-05-01


Sample Value: IFAUCQJNGAYTENBNHBAE6USJJ5HA



Name:

subject.identifier

required

Type:

formData

Data Type:

string

Description:

The subject identifier consists of subject identifier namespace, also known as the system, and identifier, separated using a URL encoded | character i.e. %7c. The 'patient.identifier' variant of this parameter is also supported.

Note:

  • You must either define the patient.identifier or patient or subject.identifier or subject, not a combination of those parameters.
  • In addition to having the required patient.identifier, patient, subject.identifier or subject, you can defined chained patient or subject elements to define filters on the reference, each of the chained parameters can specify multiple comma separated values.

Sample format of the query is

  • subject.identifier={namespace}|{identifier}
  • subject.identifier={namespace}|{identifier} & subject.gender=male & subject.birthdate=2002-05-01


Sample Value: ORION|AAA-00315-7



Name:

subject

required

Type:

formData

Data Type:

string

Description:

The subject resource id. The 'patient' variant of this parameter is also supported.

Note:

  • You must either define the patient.identifier or patient or subject.identifier or subject, not a combination of those parameters.
  • In addition to having the required patient.identifier, patient, subject.identifier or subject, you can defined chained patient or subject elements to define filters on the reference, each of the chained parameters can specify multiple comma separated values.

    Sample format of the query is

    • subject={patient FHIRID}
    • subject={patient FHIRID} & patient.gender=male & patient.birthdate=2002-05-01


Sample Value: IFAUCQJNGAYTENBNHBAE6USJJ5HA



Name:

date

optional

Type:

formData

Data Type:

array

Description:

Filters the observations to those with an effectiveDateTime or effectivePeriod on, before, or after a specific date, date-time, or date range. The supported prefixes are gt, ge, lt, le and eq. If no prefix is used, exact date or date-time matching is implied. Dates must be formatted according to ISO 8601 either as a date only (e.g. 1997-07-16) or as a date-time including the timezone (e.g. 1997-07-16T19:20:30+13:00). Ensure that special characters such as + are URL encoded i.e. %2B.

The format of the query is

  • date=gt{dateTimeValue}
  • date=ge{dateTimeValue}&date=le{dateTimeValue}


Sample Value: gt2000-01-01



Name:

code

optional

Type:

formData

Data Type:

array

Description:

Filters the observations to those that are of the specified code(s). For each specified code, system and code are separated using a URL encoded | character i.e. %7c. The code is matched to the Observation.code.

Note: Supports passing in a comma-separated list of values.


Sample Value: http://loinc.org|8302-2



Name:

component-code

optional

Type:

formData

Data Type:

array

Description:

Filters the observations to those that are of the specified component code(s). For each specified component code, system and code are separated using a URL encoded | character i.e. %7c. The component code is matched to the Observation.component.code .

Note: Supports passing in a comma-separated list of values.


Sample Value: http://loinc.org|8302-2



Name:

combo-code

optional

Type:

formData

Data Type:

array

Description:

Filters the observations to those that are of the specified combo code(s). For each specified combo code, system and code are separated using a URL encoded | character i.e. %7c. The combo code is matched to theObservation.code and the Observation.component.code .

Note: Supports passing in a comma-separated list of values.


Sample Value: http://loinc.org|8302-2



Name:

status

optional

Type:

formData

Data Type:

array

Description:

Filters the observations to those having the specified status value(s). Multiple statuses can be specified as comma separated values. Possible values are

  • registered
  • preliminary
  • final
  • amended
  • corrected
  • cancelled
  • entered-in-error
  • unknown

    Note: if a status system is specified only http://hl7.org/fhir/observation-status can be used.


Sample Value: final,registered



Name:

category

optional

Type:

formData

Data Type:

array

Description:

Filters the observations to those that match the specified category. The category value consists of a coding system and a code separated using a URL encoded | character i.e. %7c.

Note: Supports passing in a comma-separated list of values.


Sample Value: http://terminology.hl7.org/CodeSystem/observation-category|laboratory



Name:

identifier

optional

Type:

formData

Data Type:

array

Description:

Filters Observations by the identifier associated with this observation.

Note: The identifier can be a single item or a comma separated list of identifiers. Each identifier is defined by system and value , separated using a URL encoded | character i.e. %7c.


Sample Value: urn:oid:a.b.c.d|2345234234234, urn:text:sysA|af345



Name:

encounter

optional

Type:

formData

Data Type:

array

Description:

Filters Observations by the referenced encounter, identified by the Observation.encounter reference.

Note: encounter can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: encounter.identifier=urn:text:OHCP%7cER20170530.1



Name:

specimen

optional

Type:

formData

Data Type:

array

Description:

Filters Observations by the referenced specimen, identified by the Observation.specimen reference.

Note: specimen can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: specimen.type=http://snomed.info/sct|122555007



Name:

device

optional

Type:

formData

Data Type:

array

Description:

Filters Observations by by the the device that generated the Observation data, identified by the Observation.device reference.

Note: device can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: device:Device.status=active,inactive & device:DeviceMetric.category=calculation



Name:

derived-from

optional

Type:

formData

Data Type:

array

Description:

Filters Observations by elated measurements the Observation is made from. Identified by the Observation.derivedFrom reference.

Note: derived-from can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: derived-from:Media.created=gt2012-01-01& derivedFrom:Media.operator:Practitioner.identifier=SYS_A|123



Name:

performer

optional

Type:

formData

Data Type:

array

Description:

Filters Observations by the observation performer. Identified by the Observation.performer reference.

Note: performer can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: performer:Practitioner.family=Smith&performer:Practitioner.given=Bob,Robert



Name:

part-of

optional

Type:

formData

Data Type:

array

Description:

Filters Observations by the by the Observation part of referencer. Identified by the Observation.partOf reference.

Note: part-of can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: part-of:Procedure.code=http://snomed.info/sct|34068001



Name:

based-on

optional

Type:

formData

Data Type:

array

Description:

Filters Observations by the Observation request reference. Identified by the Observation.baseOn reference.

Note: based-on can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: based-on:ServiceRequest.code=SYS_A|code1,SYS_B|code2



Name:

has-member

optional

Type:

formData

Data Type:

array

Description:

Filters Observations by the related resource that belongs to the Observation group. Identified by the Observation.hasMember reference.

Note: has-member can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: has-Member:Observation.code=http://loinc.org/|22735-5,22702-5



Name:

method

optional

Type:

formData

Data Type:

array

Description:

Filters the observations to those that match the specified method used for the observation. The method value consists of a coding system and a code separated using a URL encoded | character i.e. %7c.

Note: Supports passing in a comma-separated list of values.


Sample Value: method=http://snomed.info/sct|702668005



Name:

focus

optional

Type:

formData

Data Type:

array

Description:

Filters Observations by the observation focus. Identified by the Observation.focus reference.

Note: focus can be chained to define filters on the reference, each of the chained parameters can specify multiple comma separated values.


Sample Value: focus:Group.name=SmithFamily



Name:

-include-sources

optional

Type:

formData

Data Type:

array

Description:

The -include-sources parameter defines which sources should be queried for the results.

Note: Either -include-sources or -exclude-sources parameter can be specified, not both. If -include-sources is specified, ONLY the specified sources will be searched. Note that the sources specified should be enabled.


Sample Value: -include-sources=Orion%20Health%E2%84%A2%20R4%20C-CDA%20Results%20Observations



Name:

-exclude-sources

optional

Type:

formData

Data Type:

array

Description:

The -exclude-sources parameter defines which sources should NOT be queried for the results.

Note: Either -include-sources or -exclude-sources parameter can be specified, not both. If -exclude-sources is specified, the specified sources will NOT be searched. Note that the sources specified should be enabled.


Sample Value: -exclude-sources=Orion%20Health%E2%84%A2%20R4%20C-CDA%20Results%20Observations



Name:

_summary

optional

Type:

formData

Data Type:

string

Description:

Instructs the server to return a subset of the resource, reducing the size of the reponse payload. Possible values are

  • true: return summaries only
  • false: return full resources
  • count: return the count of search matches
  • text: return only the text, id, meta, and top-level mandatory elements
  • data: remove the text element


Sample Value: true



Name:

_lastUpdated

optional

Type:

formData

Data Type:

array

Description:

Filters based on when the resource version was last changed, before, or after a specific date, date-time, or date range. The supported prefixes are gt, ge, lt, le and eq. If no prefix is used, exact date or date-time matching is implied. Dates must be formatted according to ISO 8601 either as a date only (e.g. 1997-07-16) or as a date-time including the timezone (e.g. 1997-07-16T19:20:30+13:00). Ensure that special characters such as + are URL encoded i.e. %2B.

The format of the query is

  • _lastUpdated=gt{dateTimeValue}
  • _lastUpdated=ge{dateTimeValue}&_lastUpdated=le{dateTimeValue}


Sample Value: ge2012-01-01T01:00:00+13:00



Name:

_elements

optional

Type:

formData

Data Type:

array

Description:

Request a specific set of elements be returned, or excluded as part of a resource in the search results. Use _elements for the elements to include and _elements:exclude for the elements to exclude.


Sample Value: _elements=code,category,status,_elements:exclude=*.extension,*.encounter



Name:

-cursor

optional

Type:

formData

Data Type:

string

Description:

A server internal parameter to navigate different pages.

This parameter is returned by the server as part of the Bundle 'next' link of a paginated query. And is used to retrieve the next page




Name:

_count

optional

Type:

formData

Data Type:

integer

Description:

Limit the number of match results to the specified _count. When _count is specified, the query will be paginated, and only _count or less results will be returned.

The returned bundle may contain a next link if more results could be available.


Sample Value: 30



Name:

_sort

optional

Type:

formData

Data Type:

array

Description:

Request which order results should be returned in.

Supported _sort parameters are:

  • date to sort by Observation.effective ascending
  • -date to sort by Observation.effective descending
  • _lastUpdated to sort by Observation.Meta.lastUpdated ascending
  • -_lastUpdatedto sort by Observation.Meta.lastUpdated descending

You can use any combination of the parameters


Default Value: -date

Sample Value: _sort=-date,_sort=-date, -_lastUpdated



Name:

X-Request-Id

optional

Type:

header

Data Type:

string

Description:

Supply a request Id to track the request.


Sample Value: adUEctf6urd



Name:

Accept

optional

Type:

header

Data Type:

string

Description:

Media type of the response. Possible values are application/json and application/xml. If both _format and Accept are specified, _format takes precedence.


Default Value: application/json

Sample Value: application/json



Name:

Accept-Language

optional

Type:

header

Data Type:

string

Description:

Specifies the language that the results will be translated to. If not specified it will default to the server's locale. (e.g. fr-FR for french)


Sample Value: en-US



Name:

_format

optional

Type:

formData

Data Type:

string

Description:

Media type of the response. It takes precedence over the Accept header. Possible values are json and xml.


Default Value: json

Sample Value: json



Name:

_pretty

optional

Type:

formData

Data Type:

string

Description:

Ask for a pretty printed response for human convenience.


Default Value: true

Sample Value: true



Name:

CSRF-Token

required

Type:

header

Data Type:

string

Description:

This header is required for CSRF protection. The csrfToken from the OHP session must be included in this header.

System will validate the token and reject the request if the token is invalid or not present.

Note: Either CSRF-Token or X-Send-Open-API must be included in headers to do the CSRF protection.




Name:

X-Send-Open-API

required

Type:

header

Data Type:

string

Description:

This header is required for CSRF protection. This header is required to distinguish the api requests from known senders.

System will validate "X-Send-Open-API" request header is present or not. If it is not present, system will reject the request

Note: Either CSRF-Token or X-Send-Open-API must be included in headers to do the CSRF protection.



Responses


application/json+fhir

200

Returns a FHIR Bundle containing 0..* OperationOutcome resources and 0..* Observation resources


application/json+fhir

400

This response code is returned when the query is invalid e.g. an invalid parameter or a partial token in the search.

Sample Requests

Search for specific Observations identified by subject ID
curl -X POST "https://developer-solution/fhir/4.0/Observation/_search" \
-H 'Accept: application/json' \
-H 'Authorization: Basic bGV2ZWwxLnN5c19hOk9yaW9uc3k1IT8=' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'subject=IFAUCQJNGAYTENBNHBAE6USJJ5HA' \
-d 'category=http://terminology.hl7.org/CodeSystem/observation-category%7Claboratory'

Retrieve a single Observation

GET /fhir/4.0/Observation/{id}

This method returns the Observation resource matching the requested resource ID.


Parameters

Name

Type

Data Type

Description


Name:

id

required

Type:

path

Data Type:

string

Description:

The id of the Observation resource


Sample Value: shaTWIQUXLR7RLNCR45AMPETZEQYJ6UDN6OV43CD6JCRJJZE3OX6IJQ



Name:

Accept-Language

optional

Type:

header

Data Type:

string

Description:

The language that the results will be translated to. If not specified it will default to the server's locale. (e.g. fr-FR for french)


Sample Value: en-US



Name:

X-Request-Id

optional

Type:

header

Data Type:

string

Description:

Supply a request Id to track the request.


Sample Value: adUEctf6urd



Name:

_elements

optional

Type:

query

Data Type:

array

Description:

Request a specific set of elements be returned, or excluded as part of a resource in the search results. Use _elements for the elements to include and _elements:exclude for the elements to exclude.


Sample Value: _elements=code,category,status,_elements:exclude=*.extension,*.encounter



Name:

_format

optional

Type:

query

Data Type:

string

Description:

Media type of the response. It takes precedence over the Accept header. Possible values are json and xml.


Default Value: json

Sample Value: json



Name:

_pretty

optional

Type:

query

Data Type:

string

Description:

Ask for a pretty printed response for human convenience.


Default Value: true

Sample Value: true



Name:

Accept

optional

Type:

header

Data Type:

string

Description:

Media type of the response. Possible values are application/json and application/xml. If both _format and Accept are specified, _format takes precedence.


Default Value: application/json

Sample Value: application/json



Name:

CSRF-Token

required

Type:

header

Data Type:

string

Description:

This header is required for CSRF protection. The csrfToken from the OHP session must be included in this header.

System will validate the token and reject the request if the token is invalid or not present.

Note: Either CSRF-Token or X-Send-Open-API must be included in headers to do the CSRF protection.




Name:

X-Send-Open-API

required

Type:

header

Data Type:

string

Description:

This header is required for CSRF protection. This header is required to distinguish the api requests from known senders.

System will validate "X-Send-Open-API" request header is present or not. If it is not present, system will reject the request

Note: Either CSRF-Token or X-Send-Open-API must be included in headers to do the CSRF protection.



Responses


application/json+fhir

200

Returns an Observation resource matching the the requested resource ID.


application/json+fhir

400

This code is returned when the FHIR ID is empty or not valid.


application/json+fhir

404

No Observation resource found with the requested resource ID.

Sample Requests

Search for specific Observation identified by resource ID
curl -X GET "https://developer-solution/fhir/4.0/Observation/shaTWIQUXLR7RLNCR45AMPETZEQYJ6UDN6OV43CD6JCRJJZE3OX6IJQ" \
-H 'Accept: application/json' \
-H 'Authorization: Basic bGV2ZWwxLnN5c19hOk9yaW9uc3k1IT8='

Retrieve an Observation's history

GET /fhir/4.0/Observation/{id}/_history

This method returns the change history for an observation resource matching the requested resource ID. Observation resources can be retrieved from multiple data sources, and not all sources are able to return history information. This operation will return an empty set of data if no versions of the specified observation can be found, which includes cases where:

  • The specified Observation resource cannot be found.
  • The data source for the Observation is unable to return history information.


Parameters

Name

Type

Data Type

Description


Name:

id

required

Type:

path

Data Type:

string

Description:

The id of the Observation resource


Sample Value: shaTZJPZBQMDLCHZG2ZFGLUSU2CUWV2JVI5ZUVHDTNJP6XQCVSJMKFA



Name:

Accept-Language

optional

Type:

header

Data Type:

string

Description:

The language that the results will be translated to. If not specified it will default to the server's locale. (e.g. fr-FR for french)


Sample Value: en-US



Name:

X-Request-Id

optional

Type:

header

Data Type:

string

Description:

Supply a request Id to track the request.


Sample Value: adUEctf6urd



Name:

_elements

optional

Type:

query

Data Type:

array

Description:

Request a specific set of elements be returned, or excluded as part of a resource in the search results. Use _elements for the elements to include and _elements:exclude for the elements to exclude.


Sample Value: _elements=code,category,status,_elements:exclude=*.extension,*.encounter



Name:

_format

optional

Type:

query

Data Type:

string

Description:

Media type of the response. It takes precedence over the Accept header. Possible values are json and xml.


Default Value: json

Sample Value: json



Name:

_pretty

optional

Type:

query

Data Type:

string

Description:

Ask for a pretty printed response for human convenience.


Default Value: true

Sample Value: true



Name:

Accept

optional

Type:

header

Data Type:

string

Description:

Media type of the response. Possible values are application/json and application/xml. If both _format and Accept are specified, _format takes precedence.


Default Value: application/json

Sample Value: application/json



Name:

CSRF-Token

required

Type:

header

Data Type:

string

Description:

This header is required for CSRF protection. The csrfToken from the OHP session must be included in this header.

System will validate the token and reject the request if the token is invalid or not present.

Note: Either CSRF-Token or X-Send-Open-API must be included in headers to do the CSRF protection.




Name:

X-Send-Open-API

required

Type:

header

Data Type:

string

Description:

This header is required for CSRF protection. This header is required to distinguish the api requests from known senders.

System will validate "X-Send-Open-API" request header is present or not. If it is not present, system will reject the request

Note: Either CSRF-Token or X-Send-Open-API must be included in headers to do the CSRF protection.



Responses


application/json+fhir

200

A FHIR Bundle containing 0..* Observation resources matching the requested resource ID.


application/json+fhir

400

  • The source providing the Observation resource is not capable of returning history of Observation resources.


application/json+fhir

404

  • No Observation resource found with the requested resource ID.

Sample Requests

Retrieve history of an observation resource identified by resource ID
curl -X GET "https://developer-solution/fhir/4.0/Observation/shaTZJPZBQMDLCHZG2ZFGLUSU2CUWV2JVI5ZUVHDTNJP6XQCVSJMKFA/_history" \
-H 'Accept: application/json' \
-H 'Authorization: Basic bGV2ZWwxLnN5c19hOk9yaW9uc3k1IT8='

Retrieve a specific version of an Observation resource

GET /fhir/4.0/Observation/{id}/_history/{versionid}

This method returns the specified version of an observation resource matching the requested resource ID. Observation resources can be retrieved from multiple data sources. This operation will return an empty set of data if no versions of the specified observation can be found, which includes cases where:

  • The specified Observation resource cannot be found.


Parameters

Name

Type

Data Type

Description


Name:

id

required

Type:

path

Data Type:

string

Description:

The id of the Observation resource


Sample Value: shaTZJPZBQMDLCHZG2ZFGLUSU2CUWV2JVI5ZUVHDTNJP6XQCVSJMKFA



Name:

versionid

required

Type:

path

Data Type:

string

Description:

The specific version to be retrieved.


Sample Value: 1



Name:

Accept-Language

optional

Type:

header

Data Type:

string

Description:

The language that the results will be translated to. If not specified it will default to the server's locale. (e.g. fr-FR for french)


Sample Value: en-US



Name:

X-Request-Id

optional

Type:

header

Data Type:

string

Description:

Supply a request Id to track the request.


Sample Value: adUEctf6urd



Name:

_elements

optional

Type:

query

Data Type:

array

Description:

Request a specific set of elements be returned, or excluded as part of a resource in the search results. Use _elements for the elements to include and _elements:exclude for the elements to exclude.


Sample Value: _elements=code,category,status,_elements:exclude=*.extension,*.encounter



Name:

_format

optional

Type:

query

Data Type:

string

Description:

Media type of the response. It takes precedence over the Accept header. Possible values are json and xml.


Default Value: json

Sample Value: json



Name:

_pretty

optional

Type:

query

Data Type:

string

Description:

Ask for a pretty printed response for human convenience.


Default Value: true

Sample Value: true



Name:

Accept

optional

Type:

header

Data Type:

string

Description:

Media type of the response. Possible values are application/json and application/xml. If both _format and Accept are specified, _format takes precedence.


Default Value: application/json

Sample Value: application/json



Name:

CSRF-Token

required

Type:

header

Data Type:

string

Description:

This header is required for CSRF protection. The csrfToken from the OHP session must be included in this header.

System will validate the token and reject the request if the token is invalid or not present.

Note: Either CSRF-Token or X-Send-Open-API must be included in headers to do the CSRF protection.




Name:

X-Send-Open-API

required

Type:

header

Data Type:

string

Description:

This header is required for CSRF protection. This header is required to distinguish the api requests from known senders.

System will validate "X-Send-Open-API" request header is present or not. If it is not present, system will reject the request

Note: Either CSRF-Token or X-Send-Open-API must be included in headers to do the CSRF protection.



Responses


application/json+fhir

200

Observation with given id was found in given version and it's returned in the response body. The returned resource may be a restricted summary of the full resource due to privacy restrictions, which happens when the Observation resource access level is evaluated to Sealed or Locked. In this case, the Privacy HATEOAS links are present in the response headers. Refer to the Privacy section for details on which fields are included in the restricted summary record.


application/json+fhir

400

  • The source providing the Observation resource is not capable of returning history of Observation resources.


application/json+fhir

404

Observation resource id is specified, but no corresponding resource is found. This response can also happen due to the following privacy restrictions:

  • Patient is protected by privacy rules and the access level is evaluated to No Access or Sealed or List More.
  • Observation is protected by privacy rules and its access level is evaluated to No Access or List More.

Sample Requests

Retrieve the version of Observation identified by a resource id and a version id
curl -X GET "https://developer-solution/fhir/4.0/Observation/shaTZJPZBQMDLCHZG2ZFGLUSU2CUWV2JVI5ZUVHDTNJP6XQCVSJMKFA/_history/1" \
-H 'Accept: application/json' \
-H 'Authorization: Basic bGV2ZWwxLnN5c19hOk9yaW9uc3k1IT8='