This page is part of the Vital Signs FHIR IG (v0.1.0: STU 1 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 1.0.0. For a full list of available versions, see the Directory of published versions
StructureDefinition-OxygenSaturationArterialBloodPulseOx
Examples
The following examples are provided to illustrate conformant resource content to this profile.
Scope and Usage
Use Cases
1. Oxygen saturation measured with pulse oximeter probe.
| FHIR resource path | Text Description | Code | Terminology |
|---|---|---|---|
| Observation.code | Oxygen saturation in Arterial blood | 59408-5 | LOINC |
| Sensor Description extension bindings | |||
| Observation.extension(sensorDescriptionExt) reference set | Sensor Description reference set (foundation metadata concept) | need code | SNOMED CT Solor extension |
| Sensor Description reference set | 2.16.840.1.113762.1.4.1181.24 | VSAC | |
| Observation.extension(sensorDescriptionExt).value | Pulse oximeter (physical object) | 448703006 | SNOMED CT |
Value sets:
| Value Set | Purpose | VSAC OID |
|---|---|---|
| Oxygen saturation sensor type reference set | This reference set contains the instrument used when an oxygen saturation is measured in arterial blood by pulse oximetry, referencing the LOINC term "Oxygen Saturation Sensor Type" 73803-9 | 2.16.840.1.113762.1.4.1181.24 |
| Oxygen Saturation Body Location value set | This reference set contains a constrained list body location values used to record the site where an oximeter was placed, and capillary oxygen saturation measured. | 2.16.840.1.113762.1.4.1181.27 |
Formal Views of Profile Content
Description of Profiles, Differentials, and Snapshots.
The official URL for this profile is: http://hl7.org/fhir/us/vitals/StructureDefinition/OxygenSaturationArterialBloodPulseOx
Published on Wed May 29 00:00:00 UTC 2019 as a draft by HSPC.
This profile builds on observation-vitalsigns
| Name | Flags | Card. | Type | Description & Constraints![]() |
|---|---|---|---|---|
![]() | 0..* | observation-vitalsigns | SPO2 | |
![]() ![]() | 0..1 | CodeableConcept | Sensor Description URL: http://hl7.org/fhir/us/vitals/StructureDefinition/SensorDescriptionExt Binding: Sensor Description value set (preferred) | |
![]() ![]() | 0..1 | CodeableConcept | Measurement setting URL: http://hl7.org/fhir/us/vitals/StructureDefinition/MeasurementSettingExt Binding: Measurement Setting value set (preferred) | |
![]() ![]() | S | 0..1 | CodeableConcept | Exercise Association URL: http://hl7.org/fhir/us/vitals/StructureDefinition/ExerciseAssociationExt Binding: Exertion Phase value set (preferred) |
![]() ![]() | S | 1..1 | code | registered | preliminary | final | amended + |
![]() ![]() | S | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Required Pattern: At least the following |
![]() ![]() ![]() | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
![]() ![]() ![]() ![]() | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
![]() ![]() ![]() ![]() | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 59408-5 | |
![]() ![]() ![]() ![]() | 1..1 | string | Representation defined by the system Fixed Value: Oxygen saturation in Arterial blood by Pulse oximetry | |
![]() ![]() | S | 1..1 | Reference(US Core Patient Profile) | Who and/or what the observation is about |
![]() ![]() | S | 0..1 | Quantity | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. |
![]() ![]() ![]() | S | 1..1 | decimal | Numerical value (with implicit precision) |
![]() ![]() ![]() | S | 1..1 | string | Unit representation |
![]() ![]() ![]() | S | 1..1 | uri | Primitive Type uri Fixed Value: http://unitsofmeasure.org |
![]() ![]() ![]() | S | 1..1 | code | Primitive Type code Fixed Value: % |
![]() ![]() | S | 0..1 | CodeableConcept | Why the result is missing |
![]() ![]() | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Abnormal Interpretation Numeric Nominal value set (preferred) | |
![]() ![]() | 0..1 | CodeableConcept | Observed body part Binding: Oxygen Saturation Body Location value set (preferred) | |
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints![]() |
|---|---|---|---|---|
![]() | I | 0..* | observation-vitalsigns | SPO2 |
![]() ![]() | Σ | 0..1 | string | Logical id of this artifact |
![]() ![]() | ΣI | 0..1 | Meta | Metadata about the resource |
![]() ![]() | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
![]() ![]() | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
![]() ![]() | 0..* | Resource | Contained, inline Resources | |
![]() ![]() | I | 0..* | Extension | Extension Slice: Unordered, Open by value:url |
![]() ![]() | I | 0..1 | CodeableConcept | Sensor Description URL: http://hl7.org/fhir/us/vitals/StructureDefinition/SensorDescriptionExt |
![]() ![]() | I | 0..1 | CodeableConcept | Measurement setting URL: http://hl7.org/fhir/us/vitals/StructureDefinition/MeasurementSettingExt |
![]() ![]() | SI | 0..1 | CodeableConcept | Exercise Association URL: http://hl7.org/fhir/us/vitals/StructureDefinition/ExerciseAssociationExt |
![]() ![]() | ?!I | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() | ΣI | 0..* | Identifier | Business Identifier for observation |
![]() ![]() | ΣI | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order |
![]() ![]() | ΣI | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event |
![]() ![]() | ?!SΣI | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
![]() ![]() | SI | 1..* | (Slice Definition) | Classification of type of observation Slice: Unordered, Open by value:coding.code, value:coding.system Binding: ObservationCategoryCodes (preferred) |
![]() ![]() ![]() | SI | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred) |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
![]() ![]() ![]() ![]() | SΣI | 1..* | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
![]() ![]() ![]() ![]() ![]() | SΣI | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category |
![]() ![]() ![]() ![]() ![]() | ΣI | 0..1 | string | Version of the system - if relevant |
![]() ![]() ![]() ![]() ![]() | SΣI | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs |
![]() ![]() ![]() ![]() ![]() | ΣI | 0..1 | string | Representation defined by the system |
![]() ![]() ![]() ![]() ![]() | ΣI | 0..1 | boolean | If this coding was chosen directly by the user |
![]() ![]() ![]() ![]() | ΣI | 0..1 | string | Plain text representation of the concept |
![]() ![]() ![]() | SΣI | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: VitalSigns (extensible) Required Pattern: At least the following |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() ![]() | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() ![]() | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 59408-5 | |
![]() ![]() ![]() ![]() ![]() | 1..1 | string | Representation defined by the system Fixed Value: Oxygen saturation in Arterial blood by Pulse oximetry | |
![]() ![]() ![]() ![]() ![]() | 0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() ![]() | 0..1 | string | Plain text representation of the concept | |
![]() ![]() | SΣI | 1..1 | Reference(US Core Patient Profile) | Who and/or what the observation is about |
![]() ![]() | ΣI | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record |
![]() ![]() | ΣI | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made |
![]() ![]() | SΣI | 1..1 | Often just a dateTime for Vital Signs vs-1: if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day | |
![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() | Period | |||
![]() ![]() | ΣI | 0..1 | instant | Date/Time this version was made available |
![]() ![]() | ΣI | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation |
![]() ![]() | SΣI | 0..1 | (Slice Definition) | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. Slice: Unordered, Closed by type:$this |
![]() ![]() ![]() | SΣI | 0..1 | Quantity | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
![]() ![]() ![]() ![]() | SΣI | 1..1 | decimal | Numerical value (with implicit precision) |
![]() ![]() ![]() ![]() | ?!ΣI | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
![]() ![]() ![]() ![]() | SΣI | 1..1 | string | Unit representation |
![]() ![]() ![]() ![]() | SI | 1..1 | uri | Primitive Type uri Fixed Value: http://unitsofmeasure.org |
![]() ![]() ![]() ![]() | SI | 1..1 | code | Primitive Type code Fixed Value: % |
![]() ![]() | SI | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible) |
![]() ![]() | I | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Abnormal Interpretation Numeric Nominal value set (preferred) |
![]() ![]() | I | 0..* | Annotation | Comments about the observation |
![]() ![]() | I | 0..1 | CodeableConcept | Observed body part Binding: Oxygen Saturation Body Location value set (preferred) |
![]() ![]() | I | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example) |
![]() ![]() | I | 0..1 | Reference(Specimen) | Specimen used for this observation |
![]() ![]() | I | 0..1 | Reference(Device | DeviceMetric) | (Measurement) Device |
![]() ![]() | I | 0..* | BackboneElement | Provides guide for interpretation obs-3: Must have at least a low or a high or text |
![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() | I | 0..* | Extension | Additional content defined by implementations |
![]() ![]() ![]() | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() | I | 0..1 | SimpleQuantity | Low Range, if relevant |
![]() ![]() ![]() | I | 0..1 | SimpleQuantity | High Range, if relevant |
![]() ![]() ![]() | I | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred) |
![]() ![]() ![]() | I | 0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example) |
![]() ![]() ![]() | I | 0..1 | Range | Applicable age range, if relevant |
![]() ![]() ![]() | I | 0..1 | string | Text based reference range in an observation |
![]() ![]() | ΣI | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components |
![]() ![]() | ΣI | 0..* | Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related measurements the observation is made from |
![]() ![]() | SΣI | 0..* | BackboneElement | Used when reporting systolic and diastolic blood pressure. vs-3: If there is no a value a data absent reason must be present |
![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() | I | 0..* | Extension | Additional content defined by implementations |
![]() ![]() ![]() | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() | SΣI | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: VitalSigns (extensible) |
![]() ![]() ![]() | SΣI | 0..1 | Vital Sign Value recorded with UCUM Binding: VitalSignsUnits (required) | |
![]() ![]() ![]() ![]() | Quantity | |||
![]() ![]() ![]() ![]() | CodeableConcept | |||
![]() ![]() ![]() ![]() | string | |||
![]() ![]() ![]() ![]() | boolean | |||
![]() ![]() ![]() ![]() | integer | |||
![]() ![]() ![]() ![]() | Range | |||
![]() ![]() ![]() ![]() | Ratio | |||
![]() ![]() ![]() ![]() | SampledData | |||
![]() ![]() ![]() ![]() | time | |||
![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() | Period | |||
![]() ![]() ![]() | SI | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible) |
![]() ![]() ![]() | I | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible) |
![]() ![]() ![]() | I | 0..* | See referenceRange | Provides guide for interpretation of component result |
Documentation for this format | ||||
Differential View
| Name | Flags | Card. | Type | Description & Constraints![]() |
|---|---|---|---|---|
![]() | 0..* | observation-vitalsigns | SPO2 | |
![]() ![]() | 0..1 | CodeableConcept | Sensor Description URL: http://hl7.org/fhir/us/vitals/StructureDefinition/SensorDescriptionExt Binding: Sensor Description value set (preferred) | |
![]() ![]() | 0..1 | CodeableConcept | Measurement setting URL: http://hl7.org/fhir/us/vitals/StructureDefinition/MeasurementSettingExt Binding: Measurement Setting value set (preferred) | |
![]() ![]() | S | 0..1 | CodeableConcept | Exercise Association URL: http://hl7.org/fhir/us/vitals/StructureDefinition/ExerciseAssociationExt Binding: Exertion Phase value set (preferred) |
![]() ![]() | S | 1..1 | code | registered | preliminary | final | amended + |
![]() ![]() | S | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Required Pattern: At least the following |
![]() ![]() ![]() | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
![]() ![]() ![]() ![]() | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
![]() ![]() ![]() ![]() | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 59408-5 | |
![]() ![]() ![]() ![]() | 1..1 | string | Representation defined by the system Fixed Value: Oxygen saturation in Arterial blood by Pulse oximetry | |
![]() ![]() | S | 1..1 | Reference(US Core Patient Profile) | Who and/or what the observation is about |
![]() ![]() | S | 0..1 | Quantity | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. |
![]() ![]() ![]() | S | 1..1 | decimal | Numerical value (with implicit precision) |
![]() ![]() ![]() | S | 1..1 | string | Unit representation |
![]() ![]() ![]() | S | 1..1 | uri | Primitive Type uri Fixed Value: http://unitsofmeasure.org |
![]() ![]() ![]() | S | 1..1 | code | Primitive Type code Fixed Value: % |
![]() ![]() | S | 0..1 | CodeableConcept | Why the result is missing |
![]() ![]() | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Abnormal Interpretation Numeric Nominal value set (preferred) | |
![]() ![]() | 0..1 | CodeableConcept | Observed body part Binding: Oxygen Saturation Body Location value set (preferred) | |
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints![]() |
|---|---|---|---|---|
![]() | I | 0..* | observation-vitalsigns | SPO2 |
![]() ![]() | Σ | 0..1 | string | Logical id of this artifact |
![]() ![]() | ΣI | 0..1 | Meta | Metadata about the resource |
![]() ![]() | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
![]() ![]() | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
![]() ![]() | 0..* | Resource | Contained, inline Resources | |
![]() ![]() | I | 0..* | Extension | Extension Slice: Unordered, Open by value:url |
![]() ![]() | I | 0..1 | CodeableConcept | Sensor Description URL: http://hl7.org/fhir/us/vitals/StructureDefinition/SensorDescriptionExt |
![]() ![]() | I | 0..1 | CodeableConcept | Measurement setting URL: http://hl7.org/fhir/us/vitals/StructureDefinition/MeasurementSettingExt |
![]() ![]() | SI | 0..1 | CodeableConcept | Exercise Association URL: http://hl7.org/fhir/us/vitals/StructureDefinition/ExerciseAssociationExt |
![]() ![]() | ?!I | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() | ΣI | 0..* | Identifier | Business Identifier for observation |
![]() ![]() | ΣI | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order |
![]() ![]() | ΣI | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event |
![]() ![]() | ?!SΣI | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
![]() ![]() | SI | 1..* | (Slice Definition) | Classification of type of observation Slice: Unordered, Open by value:coding.code, value:coding.system Binding: ObservationCategoryCodes (preferred) |
![]() ![]() ![]() | SI | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred) |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
![]() ![]() ![]() ![]() | SΣI | 1..* | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
![]() ![]() ![]() ![]() ![]() | SΣI | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category |
![]() ![]() ![]() ![]() ![]() | ΣI | 0..1 | string | Version of the system - if relevant |
![]() ![]() ![]() ![]() ![]() | SΣI | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs |
![]() ![]() ![]() ![]() ![]() | ΣI | 0..1 | string | Representation defined by the system |
![]() ![]() ![]() ![]() ![]() | ΣI | 0..1 | boolean | If this coding was chosen directly by the user |
![]() ![]() ![]() ![]() | ΣI | 0..1 | string | Plain text representation of the concept |
![]() ![]() ![]() | SΣI | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: VitalSigns (extensible) Required Pattern: At least the following |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() ![]() | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() ![]() | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 59408-5 | |
![]() ![]() ![]() ![]() ![]() | 1..1 | string | Representation defined by the system Fixed Value: Oxygen saturation in Arterial blood by Pulse oximetry | |
![]() ![]() ![]() ![]() ![]() | 0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() ![]() | 0..1 | string | Plain text representation of the concept | |
![]() ![]() | SΣI | 1..1 | Reference(US Core Patient Profile) | Who and/or what the observation is about |
![]() ![]() | ΣI | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record |
![]() ![]() | ΣI | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made |
![]() ![]() | SΣI | 1..1 | Often just a dateTime for Vital Signs vs-1: if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day | |
![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() | Period | |||
![]() ![]() | ΣI | 0..1 | instant | Date/Time this version was made available |
![]() ![]() | ΣI | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation |
![]() ![]() | SΣI | 0..1 | (Slice Definition) | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. Slice: Unordered, Closed by type:$this |
![]() ![]() ![]() | SΣI | 0..1 | Quantity | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
![]() ![]() ![]() ![]() | SΣI | 1..1 | decimal | Numerical value (with implicit precision) |
![]() ![]() ![]() ![]() | ?!ΣI | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
![]() ![]() ![]() ![]() | SΣI | 1..1 | string | Unit representation |
![]() ![]() ![]() ![]() | SI | 1..1 | uri | Primitive Type uri Fixed Value: http://unitsofmeasure.org |
![]() ![]() ![]() ![]() | SI | 1..1 | code | Primitive Type code Fixed Value: % |
![]() ![]() | SI | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible) |
![]() ![]() | I | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Abnormal Interpretation Numeric Nominal value set (preferred) |
![]() ![]() | I | 0..* | Annotation | Comments about the observation |
![]() ![]() | I | 0..1 | CodeableConcept | Observed body part Binding: Oxygen Saturation Body Location value set (preferred) |
![]() ![]() | I | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example) |
![]() ![]() | I | 0..1 | Reference(Specimen) | Specimen used for this observation |
![]() ![]() | I | 0..1 | Reference(Device | DeviceMetric) | (Measurement) Device |
![]() ![]() | I | 0..* | BackboneElement | Provides guide for interpretation obs-3: Must have at least a low or a high or text |
![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() | I | 0..* | Extension | Additional content defined by implementations |
![]() ![]() ![]() | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() | I | 0..1 | SimpleQuantity | Low Range, if relevant |
![]() ![]() ![]() | I | 0..1 | SimpleQuantity | High Range, if relevant |
![]() ![]() ![]() | I | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred) |
![]() ![]() ![]() | I | 0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example) |
![]() ![]() ![]() | I | 0..1 | Range | Applicable age range, if relevant |
![]() ![]() ![]() | I | 0..1 | string | Text based reference range in an observation |
![]() ![]() | ΣI | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components |
![]() ![]() | ΣI | 0..* | Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related measurements the observation is made from |
![]() ![]() | SΣI | 0..* | BackboneElement | Used when reporting systolic and diastolic blood pressure. vs-3: If there is no a value a data absent reason must be present |
![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() | I | 0..* | Extension | Additional content defined by implementations |
![]() ![]() ![]() | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() | SΣI | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: VitalSigns (extensible) |
![]() ![]() ![]() | SΣI | 0..1 | Vital Sign Value recorded with UCUM Binding: VitalSignsUnits (required) | |
![]() ![]() ![]() ![]() | Quantity | |||
![]() ![]() ![]() ![]() | CodeableConcept | |||
![]() ![]() ![]() ![]() | string | |||
![]() ![]() ![]() ![]() | boolean | |||
![]() ![]() ![]() ![]() | integer | |||
![]() ![]() ![]() ![]() | Range | |||
![]() ![]() ![]() ![]() | Ratio | |||
![]() ![]() ![]() ![]() | SampledData | |||
![]() ![]() ![]() ![]() | time | |||
![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() | Period | |||
![]() ![]() ![]() | SI | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible) |
![]() ![]() ![]() | I | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible) |
![]() ![]() ![]() | I | 0..* | See referenceRange | Provides guide for interpretation of component result |
Documentation for this format | ||||
Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron
Terminology Bindings
| Path | Conformance | ValueSet / Code |
| Observation.language | preferred | CommonLanguages Max Binding: AllLanguages |
| Observation.status | required | ObservationStatus |
| Observation.category | preferred | ObservationCategoryCodes |
| Observation.category:VSCat | preferred | ObservationCategoryCodes |
| Observation.code:OxygenSatCode | extensible | Pattern: LOINC code 59408-5("Oxygen saturation in Arterial blood by Pulse oximetry") |
| Observation.value[x]:valueQuantity.comparator | required | QuantityComparator |
| Observation.dataAbsentReason | extensible | DataAbsentReason |
| Observation.interpretation | preferred | AbnormalInterpretationNumericNom |
| Observation.bodySite | preferred | OxygenSaturationBodyLocationvalueset |
| Observation.method | example | ObservationMethods |
| Observation.referenceRange.type | preferred | ObservationReferenceRangeMeaningCodes |
| Observation.referenceRange.appliesTo | example | ObservationReferenceRangeAppliesToCodes |
| Observation.component.code | extensible | VitalSigns |
| Observation.component.value[x] | required | VitalSignsUnits |
| Observation.component.dataAbsentReason | extensible | DataAbsentReason |
| Observation.component.interpretation | extensible | ObservationInterpretationCodes |
Constraints
| Id | Path | Details | Requirements |
| dom-2 | Observation | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
| dom-3 | Observation | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
| dom-4 | Observation | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
| dom-5 | Observation | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
| dom-6 | Observation | A resource should have narrative for robust management : text.`div`.exists() | |
| obs-6 | Observation | dataAbsentReason SHALL only be present if Observation.value[x] is not present : dataAbsentReason.empty() or value.empty() | |
| obs-7 | Observation | If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present : value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty() | |
| vs-2 | Observation | If there is no component or hasMember element then either a value[x] or a data absent reason must be present. : (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists()) | |
| ele-1 | Observation.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.extension:sensorDescription | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.extension:sensorDescription | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.extension:MeasurementSetting | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.extension:MeasurementSetting | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.extension:exerciseAssociation | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.extension:exerciseAssociation | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.basedOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.partOf | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.category | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.category:VSCat | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.category:VSCat.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.category:VSCat.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.category:VSCat.coding | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.category:VSCat.coding.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.category:VSCat.coding.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.category:VSCat.coding.system | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.category:VSCat.coding.version | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.category:VSCat.coding.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.category:VSCat.coding.display | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.category:VSCat.coding.userSelected | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.category:VSCat.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.code:OxygenSatCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.focus | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.effective[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| vs-1 | Observation.effective[x] | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day : ($this as dateTime).toString().length() >= 8 | |
| ele-1 | Observation.issued | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.performer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.value[x]:valueQuantity | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.value[x]:valueQuantity.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.value[x]:valueQuantity.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.value[x]:valueQuantity.value | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.value[x]:valueQuantity.comparator | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.value[x]:valueQuantity.unit | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.value[x]:valueQuantity.system | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.value[x]:valueQuantity.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.dataAbsentReason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.interpretation | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.note | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.bodySite | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.method | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.specimen | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.device | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.referenceRange | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| obs-3 | Observation.referenceRange | Must have at least a low or a high or text : low.exists() or high.exists() or text.exists() | |
| ele-1 | Observation.referenceRange.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.referenceRange.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.referenceRange.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.referenceRange.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.referenceRange.low | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.referenceRange.high | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.referenceRange.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.referenceRange.appliesTo | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.referenceRange.age | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.referenceRange.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.hasMember | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.derivedFrom | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.component | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| vs-3 | Observation.component | If there is no a value a data absent reason must be present : value.exists() or dataAbsentReason.exists() | |
| ele-1 | Observation.component.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.component.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.component.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ext-1 | Observation.component.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
| ele-1 | Observation.component.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.component.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.component.dataAbsentReason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.component.interpretation | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
| ele-1 | Observation.component.referenceRange | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |













