HL7 FHIR Implementation Guide: DK Core
3.3.0 - ci-build
HL7 FHIR Implementation Guide: DK Core, published by HL7 Denmark. This guide is not an authorized publication; it is the continuous build for version 3.3.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7dk/dk-core/ and changes regularly. 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.
Generated Narrative: Bundle ContinuaBundleWithDevice
Bundle ContinuaBundleWithDevice of type transaction
Entry 1 - fullUrl = http://hl7.dk/fhir/core/Patient/Poul
Resource Patient:
Generated Narrative: Patient Poul
Poul Hansen (no stated gender), DoB Unknown ( National unique individual identifier)
Request:
POST Patient If-None-Exist = identifier=urn:oid:1.2.208.176.1.2|3001749995
Entry 2 - fullUrl = http://hl7.dk/fhir/core/Device/Telma.FEEDDADADEADBEEF
Resource Device:
Generated Narrative: Device Telma.FEEDDADADEADBEEF
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
version
type: MDC_REG_CERT_DATA_CONTINUA_VERSION: Continua version
value: 7.0
version
type: MDC_ID_PROD_SPEC_HW: Hardware version
value: Samsung Tab S7+ (SM-T970)
version
type: MDC_ID_PROD_SPEC_SW: Software version
value: 1.2.0 (build 2662)
version
type: MDC_ID_PROD_SPEC_FW: Firmware version
value: Android 12 (API 31)
property
type: MDC_REG_CERT_DATA_CONTINUA_CERT_DEV_LIST: Continua certified device list
valueCode: BluetoothLE: Weighing scale, BluetoothLE: Blood pressure monitor, BluetoothLE: Pulse oximeter
property
type: MDC_REG_CERT_DATA_CONTINUA_AHD_CERT_LIST: Continua certified Health&Fitness interfaces list
valueCode: observation-upload-fhir: FHIR resource upload
property
type: MDC_TIME_SYNC_PROTOCOL: Time synchronization protocol
valueCode: MDC_TIME_SYNC_NTPV4: NTPV4 time synchronization
property
type: regulation-status
valueCode: Device is NOT regulated
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
Entry 3 - fullUrl = http://hl7.dk/fhir/core/Device/BPMonitor.C4F312FFFE53F2C9
Resource Device:
Generated Narrative: Device BPMonitor.C4F312FFFE53F2C9
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
Specializations
SystemType Version MDC_DEV_SPEC_PROFILE_BP: Blood Pressure meter 1 version
type: MDC_REG_CERT_DATA_CONTINUA_VERSION: Continua version
value: 4.1
version
type: MDC_ID_PROD_SPEC_HW: Hardware version
value: 0.00
version
type: MDC_ID_PROD_SPEC_SW: Software version
value: 0.00
version
type: MDC_ID_PROD_SPEC_FW: Firmware version
value: BLP009_02_005
property
type: MDC_REG_CERT_DATA_CONTINUA_CERT_DEV_LIST: Continua certified device list
valueCode: BluetoothLE: Blood pressure monitor
property
type: MDC_TIME_SYNC_PROTOCOL: Time synchronization protocol
valueCode: MDC_TIME_SYNC_NONE: No time synchronization
property
type: regulation-status
valueCode: Device is regulated
property
type: mds-time-capab-real-time-clock
valueCode: Real time clock is supported
property
type: mds-time-capab-set-clock
valueCode: Setting the real time clock is supported
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
Entry 4 - fullUrl = http://hl7.dk/fhir/core/Observation/BatteryLevel.0944
Resource Observation:
Generated Narrative: Observation BatteryLevel.0944
Observation Gateway Device: Device: identifier = IEEE 11073 System Identifier: FE-ED-DA-DA-DE-AD-BE-EF; manufacturer = Trifork; modelNumber = Telma (Android); type = MDC_MOC_VMS_MDS_AHD
status: Final
code: MDC_ATTR_VAL_BATT_CHARGE: Battery level
subject: Poul Hansen (no stated gender), DoB Unknown ( National unique individual identifier)
effective: 2023-02-23 10:24:34+0100
performer: Poul Hansen (no stated gender), DoB Unknown ( National unique individual identifier)
value: 95 % (Details: UCUM code% = '%')
Request:
POST Observation
Entry 5 - fullUrl = http://hl7.dk/fhir/core/Observation/CoincidentTimeStamp.0222
Resource Observation:
Generated Narrative: Observation CoincidentTimeStamp.0222
Observation Gateway Device: Device: identifier = IEEE 11073 System Identifier: FE-ED-DA-DA-DE-AD-BE-EF; manufacturer = Trifork; modelNumber = Telma (Android); type = MDC_MOC_VMS_MDS_AHD
status: Final
code: MDC_ATTR_TIME_ABS: Uses Absolute time clock
subject: Poul Hansen (no stated gender), DoB Unknown ( National unique individual identifier)
effective: 2023-02-23 10:24:34+0100
performer: Poul Hansen (no stated gender), DoB Unknown ( National unique individual identifier)
value: 2023-02-23 10:24:25+0100
Request:
POST Observation
Entry 6 - fullUrl = http://hl7.dk/fhir/core/Observation/BloodPressure.Poul.643992
Resource Observation:
Generated Narrative: Observation BloodPressure.Poul.643992
Observation Gateway Device: Device: identifier = IEEE 11073 System Identifier: FE-ED-DA-DA-DE-AD-BE-EF; manufacturer = Trifork; modelNumber = Telma (Android); type = MDC_MOC_VMS_MDS_AHD
identifier: C4F312FFFE53F2C9-3001749995-urn:oid:1.2.208.176.1.2-150020-118-266016-87-266016-99-266016-20230223T102408.00
status: Final
category: Vital signs
code: MDC_PRESS_BLD_NONINV: Blood Pressure
subject: Poul Hansen (no stated gender), DoB Unknown ( National unique individual identifier)
effective: 2023-02-23 10:24:08+0100
performer: Poul Hansen (no stated gender), DoB Unknown ( National unique individual identifier)
derivedFrom: Observation MDC_ATTR_TIME_ABS
component
code: MDC_PRESS_BLD_NONINV_SYS: Systolic Blood Pressure
value: 118 mmHg (Details: UCUM codemm[Hg] = 'mm[Hg]')
component
code: MDC_PRESS_BLD_NONINV_DIA: Diastolic Blood Pressure
value: 87 mmHg (Details: UCUM codemm[Hg] = 'mm[Hg]')
component
code: MDC_PRESS_BLD_NONINV_MEAN: Mean Blood Pressure
value: 99 mmHg (Details: UCUM codemm[Hg] = 'mm[Hg]')
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
Entry 7 - fullUrl = http://hl7.dk/fhir/core/Observation/HeartRate.Poul.1974654
Resource Observation:
Generated Narrative: Observation HeartRate.Poul.1974654
Observation Gateway Device: Device: identifier = IEEE 11073 System Identifier: FE-ED-DA-DA-DE-AD-BE-EF; manufacturer = Trifork; modelNumber = Telma (Android); type = MDC_MOC_VMS_MDS_AHD
identifier: C4F312FFFE53F2C9-3001749995-urn:oid:1.2.208.176.1.2-149546-93-{beat}/min-20230223T102408.00
status: Final
category: Vital signs
code: MDC_PULS_RATE_NON_INV: Heart rate
subject: Poul Hansen (no stated gender), DoB Unknown ( National unique individual identifier)
effective: 2023-02-23 10:24:08+0100
performer: Poul Hansen (no stated gender), DoB Unknown ( National unique individual identifier)
value: 93 bpm (Details: UCUM code/min = '/min')
derivedFrom: Observation MDC_ATTR_TIME_ABS
Request:
POST Observation If-None-Exist = identifier=C4F312FFFE53F2C9-3001749995-urn:oid:1.2.208.176.1.2-149546-93-{beat}/min-20230223T102408.00
Entry 8 - fullUrl = http://hl7.dk/fhir/core/Observation/BloodPressureStatus.Poul.133527
Resource Observation:
Generated Narrative: Observation BloodPressureStatus.Poul.133527
Observation Gateway Device: Device: identifier = IEEE 11073 System Identifier: FE-ED-DA-DA-DE-AD-BE-EF; manufacturer = Trifork; modelNumber = Telma (Android); type = MDC_MOC_VMS_MDS_AHD
identifier: 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
subject: Poul Hansen (no stated gender), DoB Unknown ( National unique individual identifier)
effective: 2023-02-23 10:24:08+0100
performer: Poul Hansen (no stated gender), DoB Unknown ( National unique individual identifier)
derivedFrom:
Components
Code Value[x] irregular-pulse Irregular pulse was detected
Request:
POST Observation If-None-Exist = identifier=C4F312FFFE53F2C9-3001749995-urn:oid:1.2.208.176.1.2-8410608-8192-20230223T102408.00