HL7 FHIR Implementation Guide: DK Core
2.2.0 - release
This page is part of the HL7 FHIR Implementation Guide: DK Core (v2.2.0: Release) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
The following example shows a real-life recording of a home monitoring blood pressure measurement. Due to the size and complexity of this example, a bit of background and guidance on the contents will be provided
In many situations citizens may use personal equipment (their own property or borrowed from a healthcare provider) to automatically capture and record medical observations. This class of equipment is known by the term “Personal Health Devices” (PHDs). A number of challenges arise from the complexity of dealing with diverse consumer-grade Internet-connected equipment used under no clinical supervision:
In order to deal with these challenges and coordinate the effort across many different standardization bodies, the Continua Design Guidelines (CDG) has been created, and the coordination effort continues under the IHE Personal Connected Health (PCH) program. In 2013, Denmark adopted the CDG as a reference architecture.
The CDG offers guidance to implementors of PHD equipment and related applications, providing a single data model that may be expressed and exchanged using (and translated back and forth between) many different container formats and transports:
With transports ranging from Bluetooth Low Energy, NFC, USB, Internet, to XDS.b and XDR exchange of PHMR documents
The example provided here is the data payload transferred from the home of the user over the Internet to a
central collection server at a tele-monitoring service provider. This bundle is a single self-contained
message, demonstrating how a blood pressure measurement is encoded using a FHIR Bundle compliant to both the
HL7 FHIR PHD IG and the DkCoreObservation
profiles.
The Bundle contains the following entries:
DkCorePatient
.DkCoreObservation
DkCoreObservation
You may also notice that the type of the Bundle is a transaction bundle and that all the entries in the bundle are conditional creates using a funny-looking identifier, which is actually the result of a calculated function that summarises the resource into a short form (hash), in order to prevent duplicates.
Bundle ContinuaBundleWithDevice of type transaction
Entry 1 - fullUrl = Patient/Poul
Request:
POST Patient If-None-Exist = identifier=urn:oid:1.2.208.176.1.2|3001749995
Resource Patient:
Poul Hansen null, DoB: ( National unique individual identifier: 3001749995)
Entry 2 - fullUrl = Device/Telma.FEEDDADADEADBEEF
Request:
POST Device If-None-Exist = identifier=urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680|FE-ED-DA-DA-DE-AD-BE-EF
Resource Device:
Resource Device "Telma.FEEDDADADEADBEEF"
Profile: PhgDevice
identifier: IEEE 11073 System Identifier: FE-ED-DA-DA-DE-AD-BE-EF
manufacturer: Trifork
modelNumber: Telma (Android)
type: MDC_MOC_VMS_MDS_AHD: Continua compliant gateway (ISO 11073-10101 Health informatics - Point-of-care#531981 "MDC_MOC_VMS_MDS_AHD")
version
type: MDC_REG_CERT_DATA_CONTINUA_VERSION: Continua version (ISO 11073-10101 Health informatics - Point-of-care#532352 "MDC_REG_CERT_DATA_CONTINUA_VERSION")
value: 7.0
version
type: MDC_ID_PROD_SPEC_HW: Hardware version (ISO 11073-10101 Health informatics - Point-of-care#531974 "MDC_ID_PROD_SPEC_HW")
value: Samsung Tab S7+ (SM-T970)
version
type: MDC_ID_PROD_SPEC_SW: Software version (ISO 11073-10101 Health informatics - Point-of-care#531975 "MDC_ID_PROD_SPEC_SW")
value: 1.2.0 (build 2662)
version
type: MDC_ID_PROD_SPEC_FW: Firmware version (ISO 11073-10101 Health informatics - Point-of-care#531976 "MDC_ID_PROD_SPEC_FW")
value: Android 12 (API 31)
property
type: MDC_REG_CERT_DATA_CONTINUA_CERT_DEV_LIST: Continua certified device list (ISO 11073-10101 Health informatics - Point-of-care#532353 "MDC_REG_CERT_DATA_CONTINUA_CERT_DEV_LIST")
property
type: MDC_REG_CERT_DATA_CONTINUA_AHD_CERT_LIST: Continua certified Health&Fitness interfaces list (ISO 11073-10101 Health informatics - Point-of-care#532355 "MDC_REG_CERT_DATA_CONTINUA_AHD_CERT_LIST")
property
type: MDC_TIME_SYNC_PROTOCOL: Time synchronization protocol (ISO 11073-10101 Health informatics - Point-of-care#68220 "MDC_TIME_SYNC_PROTOCOL")
property
type: regulation-status (ASN1ToHL7#532354.0)
Entry 3 - fullUrl = Device/BPMonitor.C4F312FFFE53F2C9
Request:
POST Device If-None-Exist = identifier=urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680|C4-F3-12-FF-FE-53-F2-C9
Resource Device:
Resource Device "BPMonitor.C4F312FFFE53F2C9"
Profile: PhdDevice
identifier: Ieee 11073 System Identifier: C4-F3-12-FF-FE-53-F2-C9, Bluetooth MAC address: C4-F3-12-53-F2-C9
manufacturer: A&D Medical
serialNumber: 5181000124
modelNumber: UA-651BLE
type: MDC_MOC_VMS_MDS_SIMP: Personal health device (ISO 11073-10101 Health informatics - Point-of-care#65573 "MDC_MOC_VMS_MDS_SIMP")
version
type: MDC_REG_CERT_DATA_CONTINUA_VERSION: Continua version (ISO 11073-10101 Health informatics - Point-of-care#532352 "MDC_REG_CERT_DATA_CONTINUA_VERSION")
value: 4.1
version
type: MDC_ID_PROD_SPEC_HW: Hardware version (ISO 11073-10101 Health informatics - Point-of-care#531974 "MDC_ID_PROD_SPEC_HW")
value: 0.00
version
type: MDC_ID_PROD_SPEC_SW: Software version (ISO 11073-10101 Health informatics - Point-of-care#531975 "MDC_ID_PROD_SPEC_SW")
value: 0.00
version
type: MDC_ID_PROD_SPEC_FW: Firmware version (ISO 11073-10101 Health informatics - Point-of-care#531976 "MDC_ID_PROD_SPEC_FW")
value: BLP009_02_005
property
type: MDC_REG_CERT_DATA_CONTINUA_CERT_DEV_LIST: Continua certified device list (ISO 11073-10101 Health informatics - Point-of-care#532353 "MDC_REG_CERT_DATA_CONTINUA_CERT_DEV_LIST")
property
type: MDC_TIME_SYNC_PROTOCOL: Time synchronization protocol (ISO 11073-10101 Health informatics - Point-of-care#68220 "MDC_TIME_SYNC_PROTOCOL")
property
type: regulation-status (ASN1ToHL7#532354.0)
property
type: mds-time-capab-real-time-clock (ASN1ToHL7#68219.0)
property
type: mds-time-capab-set-clock (ASN1ToHL7#68219.1)
Entry 4 - fullUrl = Observation/BatteryLevel.0944
Request:
POST Observation
Resource Observation:
Generated Narrative: Observation
Resource Observation "BatteryLevel.0944"
Profiles: Danish Core Observation Profiles, PhdNumericObservation
Gateway Device: See above (Device/Telma.FEEDDADADEADBEEF)
status: FINAL
code: MDC_ATTR_VAL_BATT_CHARGE: Battery level (ISO 11073-10101 Health informatics - Point-of-care#67996 "MDC_ATTR_VAL_BATT_CHARGE")
subject: See above (Patient/Poul)
effective: 2023-02-23 10:24:34+0100
performer: See above (Patient/Poul)
value: 95 % (Details: UCUM code % = '%')
Entry 5 - fullUrl = Observation/CoincidentTimeStamp.0222
Request:
POST Observation
Resource Observation:
Generated Narrative: Observation
Resource Observation "CoincidentTimeStamp.0222"
Profiles: Danish Core Observation Profiles, PhdCoincidentTimeStampObservation
Gateway Device: See above (Device/Telma.FEEDDADADEADBEEF)
status: FINAL
code: MDC_ATTR_TIME_ABS: Uses Absolute time clock (ISO 11073-10101 Health informatics - Point-of-care#67975 "MDC_ATTR_TIME_ABS")
subject: See above (Patient/Poul)
effective: 2023-02-23 10:24:34+0100
performer: See above (Patient/Poul)
value: 2023-02-23 10:24:25+0100
Entry 6 - fullUrl = Observation/BloodPressure.Poul.643992
Request:
POST Observation If-None-Exist = identifier=C4F312FFFE53F2C9-3001749995-urn:oid:1.2.208.176.1.2-150020-118-266016-87-266016-99-266016-20230223T102408.00
Resource Observation:
Generated Narrative: Observation
Resource Observation "BloodPressure.Poul.643992"
Profiles: Danish Core Observation Profiles, PhdCompoundNumericObservation, Vital Signs Profile, Observation Blood Pressure Profile
Gateway Device: See above (Device/Telma.FEEDDADADEADBEEF)
identifier: id: C4F312FFFE53F2C9-3001749995-urn:oid:1.2.208.176.1.2-150020-118-266016-87-266016-99-266016-20230223T102408.00
status: FINAL
category: Vital signs (Observation Category Codes#vital-signs)
code: MDC_PRESS_BLD_NONINV: Blood Pressure (LOINC#85354-9 "Blood pressure panel with all children optional"; ISO 11073-10101 Health informatics - Point-of-care#150020 "MDC_PRESS_BLD_NONINV"; unknown#ZZ3170 "Hjemmeblodtryksmåling udført af patienten")
subject: See above (Patient/Poul)
effective: 2023-02-23 10:24:08+0100
performer: See above (Patient/Poul)
device: See above (Device/BPMonitor.C4F312FFFE53F2C9)
derivedFrom: See above (Observation/CoincidentTimeStamp.0222)
component
code: MDC_PRESS_BLD_NONINV_SYS: Systolic Blood Pressure (LOINC#8480-6 "Systolic blood pressure"; ISO 11073-10101 Health informatics - Point-of-care#150021 "MDC_PRESS_BLD_NONINV_SYS"; observation-code#MCS88019 "Arm—Blodtryk(systolisk) hjemme; tryk = ? mmHg")
value: 118 mmHg (Details: UCUM code mm[Hg] = 'mm[Hg]')
component
code: MDC_PRESS_BLD_NONINV_DIA: Diastolic Blood Pressure (LOINC#8462-4 "Diastolic blood pressure"; ISO 11073-10101 Health informatics - Point-of-care#150022 "MDC_PRESS_BLD_NONINV_DIA"; observation-code#MCS88020 "Arm—Blodtryk(diastolisk) hjemme; tryk = ? mmHg")
value: 87 mmHg (Details: UCUM code mm[Hg] = 'mm[Hg]')
component
code: MDC_PRESS_BLD_NONINV_MEAN: Mean Blood Pressure (ISO 11073-10101 Health informatics - Point-of-care#150023 "MDC_PRESS_BLD_NONINV_MEAN")
value: 99 mmHg (Details: UCUM code mm[Hg] = 'mm[Hg]')
Entry 7 - fullUrl = Observation/HeartRate.Poul.1974654
Request:
POST Observation If-None-Exist = identifier=C4F312FFFE53F2C9-3001749995-urn:oid:1.2.208.176.1.2-149546-93-{beat}/min-20230223T102408.00
Resource Observation:
Generated Narrative: Observation
Resource Observation "HeartRate.Poul.1974654"
Profiles: Danish Core Observation Profiles, PhdNumericObservation, Vital Signs Profile, Observation Heart Rate Profile
Gateway Device: See above (Device/Telma.FEEDDADADEADBEEF)
identifier: id: C4F312FFFE53F2C9-3001749995-urn:oid:1.2.208.176.1.2-149546-93-{beat}/min-20230223T102408.00
status: FINAL
category: Vital signs (Observation Category Codes#vital-signs)
code: MDC_PULS_RATE_NON_INV: Heart rate (LOINC#8867-4 "Heart rate"; ISO 11073-10101 Health informatics - Point-of-care#149546 "MDC_PULS_RATE_NON_INV"; unknown#NPU21692 "Heart—Systole; frequency = ? × 1/min")
subject: See above (Patient/Poul)
effective: 2023-02-23 10:24:08+0100
performer: See above (Patient/Poul)
value: 93 bpm (Details: UCUM code /min = '/min')
device: See above (Device/BPMonitor.C4F312FFFE53F2C9)
derivedFrom: See above (Observation/CoincidentTimeStamp.0222)
Entry 8 - fullUrl = Observation/BloodPressureStatus.Poul.133527
Request:
POST Observation If-None-Exist = identifier=C4F312FFFE53F2C9-3001749995-urn:oid:1.2.208.176.1.2-8410608-8192-20230223T102408.00
Resource Observation:
Generated Narrative: Observation
Resource Observation "BloodPressureStatus.Poul.133527"
Profiles: Danish Core Observation Profiles, PhdBitsEnumerationObservation
Gateway Device: See above (Device/Telma.FEEDDADADEADBEEF)
identifier: id: C4F312FFFE53F2C9-3001749995-urn:oid:1.2.208.176.1.2-8410608-8192-20230223T102408.00
status: FINAL
code: MDC_BLOOD_PRESSURE_MEASUREMENT_STATUS: Blood Pressure measurement problem (ISO 11073-10101 Health informatics - Point-of-care#8410608 "MDC_BLOOD_PRESSURE_MEASUREMENT_STATUS")
subject: See above (Patient/Poul)
effective: 2023-02-23 10:24:08+0100
performer: See above (Patient/Poul)
device: See above (Device/BPMonitor.C4F312FFFE53F2C9)
derivedFrom:
Components
- Code Value[x] * irregular-pulse (ASN1ToHL7#8410608.2) Irregular pulse was detected (v2 Y/N Indicator#Y)