This page is part of the Vital Signs FHIR IG (v0.1.0: STU 1 Ballot 1) based on FHIR R4. The current version which supercedes 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 |
---|---|---|---|---|
Observation | 0..* | observation-vitalsigns | SPO2 | |
SensorDescriptionExt | 0..1 | CodeableConcept | Sensor Description URL: http://hl7.org/fhir/us/vitals/StructureDefinition/SensorDescriptionExt Binding: Sensor Description value set (preferred) | |
MeasurementSettingExt | 0..1 | CodeableConcept | Measurement setting URL: http://hl7.org/fhir/us/vitals/StructureDefinition/MeasurementSettingExt Binding: Measurement Setting value set (preferred) | |
ExerciseAssociationExt | S | 0..1 | CodeableConcept | Exercise Association URL: http://hl7.org/fhir/us/vitals/StructureDefinition/ExerciseAssociationExt Binding: Exertion Phase value set (preferred) |
status | S | 1..1 | code | registered | preliminary | final | amended + |
code:OxygenSatCode | S | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Required Pattern: At least the following |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 59408-5 | |
display | 1..1 | string | Representation defined by the system Fixed Value: Oxygen saturation in Arterial blood by Pulse oximetry | |
subject | S | 1..1 | Reference(US Core Patient Profile) | Who and/or what the observation is about |
valueQuantity | 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. |
value | S | 1..1 | decimal | Numerical value (with implicit precision) |
unit | S | 1..1 | string | Unit representation |
system | S | 1..1 | uri | Primitive Type uri Fixed Value: http://unitsofmeasure.org |
code | S | 1..1 | code | Primitive Type code Fixed Value: % |
dataAbsentReason | S | 0..1 | CodeableConcept | Why the result is missing |
interpretation | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Abnormal Interpretation Numeric Nominal value set (preferred) | |
bodySite | 0..1 | CodeableConcept | Observed body part Binding: Oxygen Saturation Body Location value set (preferred) | |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | observation-vitalsigns | SPO2 |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | ΣI | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
language | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | I | 0..* | Extension | Extension Slice: Unordered, Open by value:url |
SensorDescriptionExt | I | 0..1 | CodeableConcept | Sensor Description URL: http://hl7.org/fhir/us/vitals/StructureDefinition/SensorDescriptionExt |
MeasurementSettingExt | I | 0..1 | CodeableConcept | Measurement setting URL: http://hl7.org/fhir/us/vitals/StructureDefinition/MeasurementSettingExt |
ExerciseAssociationExt | SI | 0..1 | CodeableConcept | Exercise Association URL: http://hl7.org/fhir/us/vitals/StructureDefinition/ExerciseAssociationExt |
modifierExtension | ?!I | 0..* | Extension | Extensions that cannot be ignored |
identifier | ΣI | 0..* | Identifier | Business Identifier for observation |
basedOn | ΣI | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order |
partOf | ΣI | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event |
status | ?!SΣI | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
category | SI | 1..* | (Slice Definition) | Classification of type of observation Slice: Unordered, Open by value:coding.code, value:coding.system Binding: ObservationCategoryCodes (preferred) |
category:VSCat | SI | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred) |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
coding | SΣI | 1..* | Coding | Code defined by a terminology system |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
system | SΣI | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category |
version | ΣI | 0..1 | string | Version of the system - if relevant |
code | SΣI | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs |
display | ΣI | 0..1 | string | Representation defined by the system |
userSelected | ΣI | 0..1 | boolean | If this coding was chosen directly by the user |
text | ΣI | 0..1 | string | Plain text representation of the concept |
code:OxygenSatCode | SΣI | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: VitalSigns (extensible) Required Pattern: At least the following |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
version | 0..1 | string | Version of the system - if relevant | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 59408-5 | |
display | 1..1 | string | Representation defined by the system Fixed Value: Oxygen saturation in Arterial blood by Pulse oximetry | |
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |
text | 0..1 | string | Plain text representation of the concept | |
subject | SΣI | 1..1 | Reference(US Core Patient Profile) | Who and/or what the observation is about |
focus | ΣI | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record |
encounter | ΣI | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made |
effective[x] | 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 | |
effectiveDateTime | dateTime | |||
effectivePeriod | Period | |||
issued | ΣI | 0..1 | instant | Date/Time this version was made available |
performer | ΣI | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation |
value[x] | 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 |
value[x]:valueQuantity | 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. |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
value | SΣI | 1..1 | decimal | Numerical value (with implicit precision) |
comparator | ?!ΣI | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | SΣI | 1..1 | string | Unit representation |
system | SI | 1..1 | uri | Primitive Type uri Fixed Value: http://unitsofmeasure.org |
code | SI | 1..1 | code | Primitive Type code Fixed Value: % |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible) |
interpretation | I | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Abnormal Interpretation Numeric Nominal value set (preferred) |
note | I | 0..* | Annotation | Comments about the observation |
bodySite | I | 0..1 | CodeableConcept | Observed body part Binding: Oxygen Saturation Body Location value set (preferred) |
method | I | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example) |
specimen | I | 0..1 | Reference(Specimen) | Specimen used for this observation |
device | I | 0..1 | Reference(Device | DeviceMetric) | (Measurement) Device |
referenceRange | I | 0..* | BackboneElement | Provides guide for interpretation obs-3: Must have at least a low or a high or text |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
low | I | 0..1 | SimpleQuantity | Low Range, if relevant |
high | I | 0..1 | SimpleQuantity | High Range, if relevant |
type | I | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred) |
appliesTo | I | 0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example) |
age | I | 0..1 | Range | Applicable age range, if relevant |
text | I | 0..1 | string | Text based reference range in an observation |
hasMember | ΣI | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components |
derivedFrom | ΣI | 0..* | Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related measurements the observation is made from |
component | 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 |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | SΣI | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: VitalSigns (extensible) |
value[x] | SΣI | 0..1 | Vital Sign Value recorded with UCUM Binding: VitalSignsUnits (required) | |
valueQuantity | Quantity | |||
valueCodeableConcept | CodeableConcept | |||
valueString | string | |||
valueBoolean | boolean | |||
valueInteger | integer | |||
valueRange | Range | |||
valueRatio | Ratio | |||
valueSampledData | SampledData | |||
valueTime | time | |||
valueDateTime | dateTime | |||
valuePeriod | Period | |||
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible) |
interpretation | I | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible) |
referenceRange | I | 0..* | See referenceRange | Provides guide for interpretation of component result |
Documentation for this format |
Differential View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | 0..* | observation-vitalsigns | SPO2 | |
SensorDescriptionExt | 0..1 | CodeableConcept | Sensor Description URL: http://hl7.org/fhir/us/vitals/StructureDefinition/SensorDescriptionExt Binding: Sensor Description value set (preferred) | |
MeasurementSettingExt | 0..1 | CodeableConcept | Measurement setting URL: http://hl7.org/fhir/us/vitals/StructureDefinition/MeasurementSettingExt Binding: Measurement Setting value set (preferred) | |
ExerciseAssociationExt | S | 0..1 | CodeableConcept | Exercise Association URL: http://hl7.org/fhir/us/vitals/StructureDefinition/ExerciseAssociationExt Binding: Exertion Phase value set (preferred) |
status | S | 1..1 | code | registered | preliminary | final | amended + |
code:OxygenSatCode | S | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Required Pattern: At least the following |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 59408-5 | |
display | 1..1 | string | Representation defined by the system Fixed Value: Oxygen saturation in Arterial blood by Pulse oximetry | |
subject | S | 1..1 | Reference(US Core Patient Profile) | Who and/or what the observation is about |
valueQuantity | 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. |
value | S | 1..1 | decimal | Numerical value (with implicit precision) |
unit | S | 1..1 | string | Unit representation |
system | S | 1..1 | uri | Primitive Type uri Fixed Value: http://unitsofmeasure.org |
code | S | 1..1 | code | Primitive Type code Fixed Value: % |
dataAbsentReason | S | 0..1 | CodeableConcept | Why the result is missing |
interpretation | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Abnormal Interpretation Numeric Nominal value set (preferred) | |
bodySite | 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 |
---|---|---|---|---|
Observation | I | 0..* | observation-vitalsigns | SPO2 |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | ΣI | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
language | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | I | 0..* | Extension | Extension Slice: Unordered, Open by value:url |
SensorDescriptionExt | I | 0..1 | CodeableConcept | Sensor Description URL: http://hl7.org/fhir/us/vitals/StructureDefinition/SensorDescriptionExt |
MeasurementSettingExt | I | 0..1 | CodeableConcept | Measurement setting URL: http://hl7.org/fhir/us/vitals/StructureDefinition/MeasurementSettingExt |
ExerciseAssociationExt | SI | 0..1 | CodeableConcept | Exercise Association URL: http://hl7.org/fhir/us/vitals/StructureDefinition/ExerciseAssociationExt |
modifierExtension | ?!I | 0..* | Extension | Extensions that cannot be ignored |
identifier | ΣI | 0..* | Identifier | Business Identifier for observation |
basedOn | ΣI | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order |
partOf | ΣI | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event |
status | ?!SΣI | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
category | SI | 1..* | (Slice Definition) | Classification of type of observation Slice: Unordered, Open by value:coding.code, value:coding.system Binding: ObservationCategoryCodes (preferred) |
category:VSCat | SI | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred) |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
coding | SΣI | 1..* | Coding | Code defined by a terminology system |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
system | SΣI | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category |
version | ΣI | 0..1 | string | Version of the system - if relevant |
code | SΣI | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs |
display | ΣI | 0..1 | string | Representation defined by the system |
userSelected | ΣI | 0..1 | boolean | If this coding was chosen directly by the user |
text | ΣI | 0..1 | string | Plain text representation of the concept |
code:OxygenSatCode | SΣI | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: VitalSigns (extensible) Required Pattern: At least the following |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
coding | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex) | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
version | 0..1 | string | Version of the system - if relevant | |
code | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 59408-5 | |
display | 1..1 | string | Representation defined by the system Fixed Value: Oxygen saturation in Arterial blood by Pulse oximetry | |
userSelected | 0..1 | boolean | If this coding was chosen directly by the user | |
text | 0..1 | string | Plain text representation of the concept | |
subject | SΣI | 1..1 | Reference(US Core Patient Profile) | Who and/or what the observation is about |
focus | ΣI | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record |
encounter | ΣI | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made |
effective[x] | 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 | |
effectiveDateTime | dateTime | |||
effectivePeriod | Period | |||
issued | ΣI | 0..1 | instant | Date/Time this version was made available |
performer | ΣI | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation |
value[x] | 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 |
value[x]:valueQuantity | 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. |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url |
value | SΣI | 1..1 | decimal | Numerical value (with implicit precision) |
comparator | ?!ΣI | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | SΣI | 1..1 | string | Unit representation |
system | SI | 1..1 | uri | Primitive Type uri Fixed Value: http://unitsofmeasure.org |
code | SI | 1..1 | code | Primitive Type code Fixed Value: % |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible) |
interpretation | I | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Abnormal Interpretation Numeric Nominal value set (preferred) |
note | I | 0..* | Annotation | Comments about the observation |
bodySite | I | 0..1 | CodeableConcept | Observed body part Binding: Oxygen Saturation Body Location value set (preferred) |
method | I | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example) |
specimen | I | 0..1 | Reference(Specimen) | Specimen used for this observation |
device | I | 0..1 | Reference(Device | DeviceMetric) | (Measurement) Device |
referenceRange | I | 0..* | BackboneElement | Provides guide for interpretation obs-3: Must have at least a low or a high or text |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
low | I | 0..1 | SimpleQuantity | Low Range, if relevant |
high | I | 0..1 | SimpleQuantity | High Range, if relevant |
type | I | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred) |
appliesTo | I | 0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example) |
age | I | 0..1 | Range | Applicable age range, if relevant |
text | I | 0..1 | string | Text based reference range in an observation |
hasMember | ΣI | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components |
derivedFrom | ΣI | 0..* | Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related measurements the observation is made from |
component | 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 |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | SΣI | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: VitalSigns (extensible) |
value[x] | SΣI | 0..1 | Vital Sign Value recorded with UCUM Binding: VitalSignsUnits (required) | |
valueQuantity | Quantity | |||
valueCodeableConcept | CodeableConcept | |||
valueString | string | |||
valueBoolean | boolean | |||
valueInteger | integer | |||
valueRange | Range | |||
valueRatio | Ratio | |||
valueSampledData | SampledData | |||
valueTime | time | |||
valueDateTime | dateTime | |||
valuePeriod | Period | |||
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible) |
interpretation | I | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible) |
referenceRange | 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()) |