Observation Profiles

Scope and Usage

These Observation profiles are part of the Point-of-Care Device General Implementation Guide. Observation resources report the actual measured or calculated values, status, or settings of a medical device.

Other profiles may apply as well, e. g. the Vital Signs Profile from FHIR Core specification.

A compliant device shall report physiological measurements, calculations, status, and settings as Observation resources according to the Numeric, Compound Numeric, Enumeration, and Sample Array Observation profiles. The profiles define the following rules:

  • Observation.code and, for compound metrics, Observation.component.code shall have a coding from the ISO/IEEE 11073 MDC metrics nomenclature. The Rosetta Terminology Mapping Management System (RTMMS) lists available codes. Depending on the type of measurement, the Vital Signs profiles may require an additional LOINC code.
  • Observation.subject shall be present and refer to a Patient resource or PoC Device resource.
  • The Measurement Status extension provides more detailed status information about observed values. It gets a code from the Measurement Status value set.
  • Numeric Observation resources represent simple numerical measurements, calculations, or settings:
    • Either Observation.valueQuantity or Observation.valueRatio or, if there is no value, Observation.dataAbsentReason shall be present. Values shall have a UCUM unit code.
    • Observation.device shall be present and refer to the Numeric DeviceMetric resource where this observation belongs to.
  • Compound Numeric Observation resources represent numerical measurements, calculations, or settings with multiple components:
    • Observation.value[x] must not be there.
    • Observation.device shall be present and refer to the Numeric DeviceMetric resource where this observation belongs to.
    • One or more Observation.component shall be present.
    • For each component, Observation.component.valueQuantity or, if there is no value, Observation.component.dataAbsentReason shall be present. Values shall have a UCUM unit code.
  • Enumeration Observation resources represent status or annotation information as codes or text:
    • Either Observation.valueCodeableConcept or Observation.valueString or, if there is no value, Observation.dataAbsentReason shall be present.
    • Observation.device shall be present and refer to the Enumeration DeviceMetric resource where this observation belongs to.
  • Sample Array Observation resources represent real-time waveforms or wave snippets:
    • (to be completed)

Content

StructureDefinition Description Example
Numeric Observation Profile Actual value of a numerical measurement, calculation, or setting Heart Rate Numeric Observation
Compound Numeric Observation Profile Actual value of a numerical measurement, calculation, or setting with multiple components NBP Compound Numeric Observation
Enumeration Observation Profile Actual value of status or annotation information as codes or text Rhythm Status Enumeration Observation
Sample Array Observation Profile (to be completed) Actual value (wave samples) of a real-time waveform or wave snippet
Extension Description Example
Measurement Status Extension Status information about the observed value SpO2 Numeric Observation

Numeric Observation Profile

Canonical URL

http://devices.fhir.org/StructureDefinition/NumericObservation

Profile Definition

measurementStatus0..*Extension(code)
identifierΣ0..*Identifier
basedOnΣ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ProcedureRequest | ReferralRequest)
statusΣ ?!1..1codeBinding
category0..*CodeableConceptBinding
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
subjectΣ1..1Reference(Patient | PoC Device Profile)
context0..1Reference(Encounter | EpisodeOfCare)
effectiveDateTimedateTime
effectivePeriodPeriod
issuedΣ0..1instant
performerΣ0..*Reference(Practitioner | Organization | Patient | RelatedPerson)
valueΣ1..1decimal
comparatorΣ ?!0..1codeBinding
unitΣ0..1string
systemΣ0..1uriFixed Value
codeΣ0..1code
valueΣ1..1decimal
comparatorΣ ?!0..1codeBinding
unitΣ0..1string
systemΣ0..1uriFixed Value
codeΣ0..1code
valueΣ1..1decimal
comparatorΣ ?!0..1codeBinding
unitΣ0..1string
systemΣ0..1uriFixed Value
codeΣ0..1code
dataAbsentReason0..1CodeableConceptBinding
interpretation0..1CodeableConceptBinding
comment0..1string
bodySite0..1CodeableConcept
method0..1CodeableConcept
specimen0..1Reference(Specimen)
device1..1Reference(Numeric DeviceMetric Profile)
low0..1SimpleQuantity
high0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
age0..1Range
text0..1string
type0..1codeBinding
target1..1Reference(Observation | QuestionnaireResponse | Sequence)
codeΣ1..1CodeableConcept
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueAttachmentAttachment
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReason0..1CodeableConceptBinding
interpretation0..1CodeableConceptBinding
referenceRange0..*see (referenceRange)

Example (XML view)

Example of a Heart Rate Numeric Observation

<Observation xmlns="http://hl7.org/fhir">
    <id value="622" />
    <meta>
        <profile value="http://devices.fhir.org/StructureDefinition/NumericObservation" />
    </meta>
    <status value="final" />
    <category>
        <coding>
            <system value="http://hl7.org/fhir/observation-category" />
            <code value="vital-signs" />
            <display value="Vital Signs" />
        </coding>
    </category>
    <code>
        <coding>
            <system value="http://loinc.org" />
            <code value="8867-4" />
            <display value="Heart rate" />
        </coding>
        <coding>
            <system value="urn:iso:std:iso:11073:10101" />
            <code value="147842" />
            <display value="MDC_ECG_CARD_BEAT_RATE" />
        </coding>
    </code>
    <subject>
        <reference value="Patient/371" />
    </subject>
    <effectiveDateTime value="2017-06-02T11:04:46+02:00" />
    <valueQuantity>
        <value value="60" />
        <unit value="bpm" />
        <system value="http://unitsofmeasure.org" />
        <code value="/min" />
    </valueQuantity>
    <device>
        <reference value="DeviceMetric/215" />
    </device>
</Observation>

Example (JSON view)

Example of a Heart Rate Numeric Observation

{
    "resourceType": "Observation",
    "id": "622",
    "meta": {
        "profile":  [
            "http://devices.fhir.org/StructureDefinition/NumericObservation"
        ]
    },
    "status": "final",
    "category":  [
        {
            "coding":  [
                {
                    "system": "http://hl7.org/fhir/observation-category",
                    "code": "vital-signs",
                    "display": "Vital Signs"
                }
            ]
        }
    ],
    "code": {
        "coding":  [
            {
                "system": "http://loinc.org",
                "code": "8867-4",
                "display": "Heart rate"
            },
            {
                "system": "urn:iso:std:iso:11073:10101",
                "code": "147842",
                "display": "MDC_ECG_CARD_BEAT_RATE"
            }
        ]
    },
    "subject": {
        "reference": "Patient/371"
    },
    "effectiveDateTime": "2017-06-02T11:04:46+02:00",
    "valueQuantity": {
        "value": 60,
        "unit": "bpm",
        "system": "http://unitsofmeasure.org",
        "code": "/min"
    },
    "device": {
        "reference": "DeviceMetric/215"
    }
}

Compound Numeric Observation Profile

Canonical URL

http://devices.fhir.org/StructureDefinition/CompoundNumericObservation

Profile Definition

identifierΣ0..*Identifier
basedOnΣ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ProcedureRequest | ReferralRequest)
statusΣ ?!1..1codeBinding
category0..*CodeableConceptBinding
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
subjectΣ1..1Reference(Patient | PoC Device Profile)
context0..1Reference(Encounter | EpisodeOfCare)
effectiveDateTimedateTime
effectivePeriodPeriod
issuedΣ0..1instant
performerΣ0..*Reference(Practitioner | Organization | Patient | RelatedPerson)
value[x]Σ0..0
dataAbsentReason0..1CodeableConceptBinding
interpretation0..1CodeableConceptBinding
comment0..1string
bodySite0..1CodeableConcept
method0..1CodeableConcept
specimen0..1Reference(Specimen)
device1..1Reference(Numeric DeviceMetric Profile)
low0..1SimpleQuantity
high0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
age0..1Range
text0..1string
type0..1codeBinding
target1..1Reference(Observation | QuestionnaireResponse | Sequence)
measurementStatus0..*Extension(code)
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
valueΣ1..1decimal
comparatorΣ ?!0..1codeBinding
unitΣ0..1string
systemΣ0..1uriFixed Value
codeΣ0..1code
dataAbsentReason0..1CodeableConceptBinding
interpretation0..1CodeableConceptBinding
referenceRange0..*see (referenceRange)

Example (XML view)

Example of a NBP Compound Numeric Observation

<Observation xmlns="http://hl7.org/fhir">
    <id value="623" />
    <meta>
        <profile value="http://devices.fhir.org/StructureDefinition/CompoundNumericObservation" />
    </meta>
    <status value="final" />
    <category>
        <coding>
            <system value="http://hl7.org/fhir/observation-category" />
            <code value="vital-signs" />
            <display value="Vital Signs" />
        </coding>
    </category>
    <code>
        <coding>
            <system value="http://loinc.org" />
            <code value="85354-9" />
            <display value="Blood pressure panel with all children optional" />
        </coding>
        <coding>
            <system value="urn:iso:std:iso:11073:10101" />
            <code value="150020" />
            <display value="MDC_PRESS_BLD_NONINV" />
        </coding>
    </code>
    <subject>
        <reference value="Patient/371" />
    </subject>
    <effectiveDateTime value="2017-06-02T11:00:59+02:00" />
    <device>
        <reference value="DeviceMetric/216" />
    </device>
    <component>
        <code>
            <coding>
                <system value="http://loinc.org" />
                <code value="8480-6" />
                <display value="Systolic blood pressure" />
            </coding>
            <coding>
                <system value="urn:iso:std:iso:11073:10101" />
                <code value="150021" />
                <display value="MDC_PRESS_BLD_NONINV_SYS" />
            </coding>
        </code>
        <valueQuantity>
            <value value="120" />
            <unit value="mmHg" />
            <system value="http://unitsofmeasure.org" />
            <code value="mm[Hg]" />
        </valueQuantity>
    </component>
    <component>
        <code>
            <coding>
                <system value="http://loinc.org" />
                <code value="8462-4" />
                <display value="Diastolic blood pressure" />
            </coding>
            <coding>
                <system value="urn:iso:std:iso:11073:10101" />
                <code value="150022" />
                <display value="MDC_PRESS_BLD_NONINV_DIA" />
            </coding>
        </code>
        <valueQuantity>
            <value value="80" />
            <unit value="mmHg" />
            <system value="http://unitsofmeasure.org" />
            <code value="mm[Hg]" />
        </valueQuantity>
    </component>
    <component>
        <code>
            <coding>
                <system value="http://loinc.org" />
                <code value="8478-0" />
                <display value="Mean blood pressure" />
            </coding>
            <coding>
                <system value="urn:iso:std:iso:11073:10101" />
                <code value="150023" />
                <display value="MDC_PRESS_BLD_NONINV_MEAN" />
            </coding>
        </code>
        <valueQuantity>
            <value value="90" />
            <unit value="mmHg" />
            <system value="http://unitsofmeasure.org" />
            <code value="mm[Hg]" />
        </valueQuantity>
    </component>
</Observation>

Example (JSON view)

Example of a NBP Compound Numeric Observation

{
    "resourceType": "Observation",
    "id": "623",
    "meta": {
        "profile":  [
            "http://devices.fhir.org/StructureDefinition/CompoundNumericObservation"
        ]
    },
    "status": "final",
    "category":  [
        {
            "coding":  [
                {
                    "system": "http://hl7.org/fhir/observation-category",
                    "code": "vital-signs",
                    "display": "Vital Signs"
                }
            ]
        }
    ],
    "code": {
        "coding":  [
            {
                "system": "http://loinc.org",
                "code": "85354-9",
                "display": "Blood pressure panel with all children optional"
            },
            {
                "system": "urn:iso:std:iso:11073:10101",
                "code": "150020",
                "display": "MDC_PRESS_BLD_NONINV"
            }
        ]
    },
    "subject": {
        "reference": "Patient/371"
    },
    "effectiveDateTime": "2017-06-02T11:00:59+02:00",
    "device": {
        "reference": "DeviceMetric/216"
    },
    "component":  [
        {
            "code": {
                "coding":  [
                    {
                        "system": "http://loinc.org",
                        "code": "8480-6",
                        "display": "Systolic blood pressure"
                    },
                    {
                        "system": "urn:iso:std:iso:11073:10101",
                        "code": "150021",
                        "display": "MDC_PRESS_BLD_NONINV_SYS"
                    }
                ]
            },
            "valueQuantity": {
                "value": 120,
                "unit": "mmHg",
                "system": "http://unitsofmeasure.org",
                "code": "mm[Hg]"
            }
        },
        {
            "code": {
                "coding":  [
                    {
                        "system": "http://loinc.org",
                        "code": "8462-4",
                        "display": "Diastolic blood pressure"
                    },
                    {
                        "system": "urn:iso:std:iso:11073:10101",
                        "code": "150022",
                        "display": "MDC_PRESS_BLD_NONINV_DIA"
                    }
                ]
            },
            "valueQuantity": {
                "value": 80,
                "unit": "mmHg",
                "system": "http://unitsofmeasure.org",
                "code": "mm[Hg]"
            }
        },
        {
            "code": {
                "coding":  [
                    {
                        "system": "http://loinc.org",
                        "code": "8478-0",
                        "display": "Mean blood pressure"
                    },
                    {
                        "system": "urn:iso:std:iso:11073:10101",
                        "code": "150023",
                        "display": "MDC_PRESS_BLD_NONINV_MEAN"
                    }
                ]
            },
            "valueQuantity": {
                "value": 90,
                "unit": "mmHg",
                "system": "http://unitsofmeasure.org",
                "code": "mm[Hg]"
            }
        }
    ]
}

Enumeration Observation Profile

Canonical URL

http://devices.fhir.org/StructureDefinition/EnumerationObservation

Profile Definition

measurementStatus0..*Extension(code)
identifierΣ0..*Identifier
basedOnΣ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ProcedureRequest | ReferralRequest)
statusΣ ?!1..1codeBinding
category0..*CodeableConceptBinding
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
subjectΣ1..1Reference(Patient | PoC Device Profile)
context0..1Reference(Encounter | EpisodeOfCare)
effectiveDateTimedateTime
effectivePeriodPeriod
issuedΣ0..1instant
performerΣ0..*Reference(Practitioner | Organization | Patient | RelatedPerson)
valueCodeableConceptCodeableConcept
valueStringstring
dataAbsentReason0..1CodeableConceptBinding
interpretation0..1CodeableConceptBinding
comment0..1string
bodySite0..1CodeableConcept
method0..1CodeableConcept
specimen0..1Reference(Specimen)
device1..1Reference(Enumeration DeviceMetric Profile)
low0..1SimpleQuantity
high0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
age0..1Range
text0..1string
type0..1codeBinding
target1..1Reference(Observation | QuestionnaireResponse | Sequence)
codeΣ1..1CodeableConcept
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueAttachmentAttachment
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReason0..1CodeableConceptBinding
interpretation0..1CodeableConceptBinding
referenceRange0..*see (referenceRange)

Example (XML view)

Example of a Rhythm Status Enumeration Observation

<Observation xmlns="http://hl7.org/fhir">
    <id value="631" />
    <meta>
        <profile value="http://devices.fhir.org/StructureDefinition/EnumerationObservation" />
    </meta>
    <status value="final" />
    <code>
        <coding>
            <system value="urn:iso:std:iso:11073:10101" />
            <code value="184327" />
            <display value="MDC_ECG_STAT_RHY" />
        </coding>
    </code>
    <subject>
        <reference value="Patient/371" />
    </subject>
    <effectiveDateTime value="2017-06-02T11:04:44+02:00" />
    <valueCodeableConcept>
        <coding>
            <system value="urn:iso:std:iso:11073:10101" />
            <code value="147474" />
            <display value="MDC_ECG_SINUS_RHY" />
        </coding>
        <text value="Sinus rhythm" />
    </valueCodeableConcept>
    <device>
        <reference value="DeviceMetric/221" />
    </device>
</Observation>

Example (JSON view)

Example of a Rhythm Status Enumeration Observation

{
    "resourceType": "Observation",
    "id": "631",
    "meta": {
        "profile":  [
            "http://devices.fhir.org/StructureDefinition/EnumerationObservation"
        ]
    },
    "status": "final",
    "code": {
        "coding":  [
            {
                "system": "urn:iso:std:iso:11073:10101",
                "code": "184327",
                "display": "MDC_ECG_STAT_RHY"
            }
        ]
    },
    "subject": {
        "reference": "Patient/371"
    },
    "effectiveDateTime": "2017-06-02T11:04:44+02:00",
    "valueCodeableConcept": {
        "coding":  [
            {
                "system": "urn:iso:std:iso:11073:10101",
                "code": "147474",
                "display": "MDC_ECG_SINUS_RHY"
            }
        ],
        "text": "Sinus rhythm"
    },
    "device": {
        "reference": "DeviceMetric/221"
    }
}

Sample Array Observation Profile

(to be completed)

Measurement Status Extension

Canonical URL

http://devices.fhir.org/StructureDefinition/observation-measurement-status

Extension Definition

url1..1uriFixed Value
valueCode0..1codeBinding

Example (XML view)

Example of a SpO2 Numeric Observation

<Observation xmlns="http://hl7.org/fhir">
    <id value="632" />
    <meta>
        <profile value="http://devices.fhir.org/StructureDefinition/NumericObservation" />
        <profile value="http://hl7.org/fhir/StructureDefinition/oxygensat" />
    </meta>
    <extension url="http://devices.fhir.org/StructureDefinition/observation-measurement-status">
        <valueCode value="questionable" />
    </extension>
    <extension url="http://devices.fhir.org/StructureDefinition/observation-measurement-status">
        <valueCode value="msmt-state-in-alarm" />
    </extension>
    <status value="final" />
    <category>
        <coding>
            <system value="http://hl7.org/fhir/observation-category" />
            <code value="vital-signs" />
            <display value="Vital Signs" />
        </coding>
    </category>
    <code>
        <coding>
            <system value="http://loinc.org" />
            <code value="59408-5" />
            <display value="Oxygen saturation in Arterial blood by Pulse oximetry" />
        </coding>
        <coding>
            <system value="urn:iso:std:iso:11073:10101" />
            <code value="150456" />
            <display value="MDC_PULS_OXIM_SAT_O2" />
        </coding>
    </code>
    <subject>
        <reference value="Patient/371" />
    </subject>
    <effectiveDateTime value="2017-06-02T11:04:48+02:00" />
    <valueQuantity>
        <value value="88" />
        <unit value="%" />
        <system value="http://unitsofmeasure.org" />
        <code value="%" />
    </valueQuantity>
    <device>
        <reference value="DeviceMetric/222" />
    </device>
</Observation>

Example (JSON view)

Example of a SpO2 Numeric Observation

{
    "resourceType": "Observation",
    "id": "632",
    "meta": {
        "profile":  [
            "http://devices.fhir.org/StructureDefinition/NumericObservation",
            "http://hl7.org/fhir/StructureDefinition/oxygensat"
        ]
    },
    "extension":  [
        {
            "url": "http://devices.fhir.org/StructureDefinition/observation-measurement-status",
            "valueCode": "questionable"
        },
        {
            "url": "http://devices.fhir.org/StructureDefinition/observation-measurement-status",
            "valueCode": "msmt-state-in-alarm"
        }
    ],
    "status": "final",
    "category":  [
        {
            "coding":  [
                {
                    "system": "http://hl7.org/fhir/observation-category",
                    "code": "vital-signs",
                    "display": "Vital Signs"
                }
            ]
        }
    ],
    "code": {
        "coding":  [
            {
                "system": "http://loinc.org",
                "code": "59408-5",
                "display": "Oxygen saturation in Arterial blood by Pulse oximetry"
            },
            {
                "system": "urn:iso:std:iso:11073:10101",
                "code": "150456",
                "display": "MDC_PULS_OXIM_SAT_O2"
            }
        ]
    },
    "subject": {
        "reference": "Patient/371"
    },
    "effectiveDateTime": "2017-06-02T11:04:48+02:00",
    "valueQuantity": {
        "value": 88,
        "unit": "%",
        "system": "http://unitsofmeasure.org",
        "code": "%"
    },
    "device": {
        "reference": "DeviceMetric/222"
    }
}