ObservationOxygenSaturationLite

Introduction

The ObservationOxygenSaturationLite profile represents the vital sign Oxygen Saturation and is a profile created from the resource Observation. The vital sign Oxygen Saturation holds a value of the blood saturation of the patient in percentage. It also contains a profile to state if the patient has received oxygen or not, and the flow rate of that potential oxygen (ObservationInspiredOxygenLite. The oxygen saturation profile is derived from the standard FHIR profile Vital Signs which makes the profile compliant with the FHIR standardized way of communicating vital sign data.

Intended Use

The ObservationOxygenSaturationLite is used for communicating the percentage of the patient blood saturation. The value is sent in the element observation.value.THe profile can also hold information if the patient has a known hypercapnic respiratory failure. If the patient has received supplemental oxygen it can be communicated by including the contained profile for Inspired Oxygen in Observation.hasMember. If the InspiredOxygen profile is included it should be interpreted as if the patient has received oxygen.

The API can be used to create and read patient oxygen saturation information from/to COSMIC.

Create Oxygen Saturation

Patient Generated

  • The patient generated data is ordered by a care giver and there should be a responsible unit sent together with the data.

Healthcare Professional

  • To create data using this API, the user should be a healthcare professional with a specified HSA ID. The healthcare professional should have their assignment, and be connected, to the specified care unit. The care unit should also be specified with a HSA ID.
  • The intended use is in first hand that the API is used within the same caregiver. The user and the specified care unit should exist in COSMIC as well as in the external system.

Read Oxygen Saturation

  • The intended use for reading data with this API is in first hand that the API is applied for direct access and should not be used to transfer data between caregivers. If it should be used for "data copying" between caregivers, patient consent must be handled outside the API.

Specific Rules and Limitations

Type Description
Rule This API should not be used to transfer data between caregivers.
Rule If the performer is Patient, the subject should be the same as given performer.
Rule The consumer of the API is responsible for making sure data retrieved is filtered in compliance with laws and regulations prior to presenting it to any end-users.
Rule For reading vital sign observations, the external system needs to be able to evaluate PDL. This means whether the information can be displayed for a healthcare professional with a specific assignment. PDL data needed (HSA care unit and HSA care provider) is retrieved by including the organization referenced from Observation.performer.organization (OrganizationSEVendorLite).
Rule POST: The data should not be patient initiated. If patient generated, it should be ordered by a care giver and belong to a specific unit.
Rule POST: It is not supported to create vital sign entries with statuses preliminary, entered-in-error or cancelled. Only status final is supported for POST.
Rule POST: dateTime cannot be 1st of the month with the time 00:00:00.000+01:00 (See error messages described below)
Rule POST: dateTime cannot be only date component, also time component will be needed (See error messages described below)
Rule If the patient has not received oxygen the element Observation.hasMember should not include the contained profile observationInspiredOxygenLite
Rule POST: COSMIC does not support displaying continuous values and hence the external product should not send values to COSMIC more often than every 15 minutes per patient. All values received in COSMIC will be saved and displayed but because it cannot be displayed in a proper way it should not be sent more often as standard

Profile Overview

ObservationOxygenSaturationLite

idΣ0..1string
id0..1string
extensionI0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceS Σ0..1uri
profileΣ1..1canonical(StructureDefinition)
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
saturation-hypercapnicRespiratoryFailureI0..1Extension(boolean)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
basedOnΣ I0..0Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
partOfΣ I0..0Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)
statusS Σ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
focusΣ I0..0Reference(Resource)
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
effectiveDateTimedateTime
issuedΣ0..0instant
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ1..1uriBindingFixed Value
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ1..1uriBindingFixed Value
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ1..1uriBindingFixed Value
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ1..1uriBindingFixed Value
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
id0..1string
extensionI0..*Extension
valueS Σ1..1decimal
comparatorΣ ?!0..1codeBinding
unitS Σ1..1stringFixed Value
systemS Σ I1..1uriFixed Value
codeS Σ1..1codeFixed Value
dataAbsentReasonS I0..0CodeableConceptBinding
interpretation0..0CodeableConceptBinding
note0..1Annotation
method0..1CodeableConcept
specimenI0..0Reference(Specimen)
deviceI0..0Reference(Device | DeviceMetric)
hasMemberΣ I0..1Reference(ObservationInspiredOxygenLite)
derivedFromΣ I0..0Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | MolecularSequence | Vital Signs Profile)

Extension Data type Description
HypercapnicRespiratoryFailure Boolean Communicates if the patient has a hypercapnic respiratory failure or not.

Statuses

FHIR status Status in COSMIC
preliminary unsigned
final signed, completedNonSignable
entered-in-error invalidated
cancelled removed

Terminology Bindings

The ObservationOxygenSaturationLite profile is bound with a SNOMED CT code sent in Observation.code. 103228002 | Hemoglobin saturation with oxygen (observable entity) |

Versions

COS version Profile version Required COSMIC version Date Description
3.0.0 1.1.0 R8.3.05 May 2022 Updates in target profile for performer.organization which makes it possible to retrieve PDL units
COS Feb 2021 1.0.0 R8.2.08 Feb 2021 Initial version, support for GET and POST.

Supported Operations

HTTP Methods

Method Description
GET Used to get or search for Oxygen Saturation entities
POST Used to create an Oxygen saturation entry. If successful, the operation will return id in response

Query Operations

Search Parameters

Parameter Format Mandatory Comment
date date (ddmmyy) Yes Obtained date/time. The date is always a range, i.e. two dates are used as search parameters.
status token No The status of the observation. See supported statuses in #Statuses
patient reference Yes The subject that the observation is about (if patient). The reference can be a literal reference ex: subject=1 or a Business identifier as well.ex: subject.identifier=urn:oid:1.2.752.129.2.1.3.1|20200109-6078
code token No SNOMED CT code of the observation type
profile string No search on the profile url.

Supported Queries

  1. GET [baseURL]/Observation/?search?patient= (Search)
  2. GET [baseURL]/Observation/?search?status= (Search)
  3. GET [baseURL]/Observation/?search?date=[gt_date]&date=[lt_date] (Search)
  4. GET [baseURL]/Observation/?search?code= (Search)
  5. GET [baseURL]/Observation/?search?profile= (Search)
  6. GET [baseURL]/Observation/?search?patient=&_include=Observation:performer (Search)
  7. GET [baseURL]/Observation/?search?status=[status]&_include=[] (Search)
  8. GET [baseURL]/Observation/?search?date=[gt_date]&date=[lt_date]&_include=[] (Search)
  9. GET [baseURL]/Observation/?search?code=[code]&_include=[] (Search)
  10. GET [baseURL]/Observation/?search?profile=[url]&_include=[] (Search)
  11. POST [baseURL]/Observation (Post)

Supported SearchInclude Operations

No supported parameters

Supported RevInclude Operations

No supported parameters

Error Codes

In the table below, a few error messages specific for Observation are listed.

Code Description Comment
400 "Subject and Performer Patient references does not match."
400 "The date time: < date > is invalid" the dateTime must contain a time component
400 "Server supports only FINAL status when posting Observations" Statuses preliminary, entered-in-error or cancelled. Only status final are not supported for POST.