Health Device Data Transfer
Version 1.0.0-rc2 - release

Specification of health data transfer from devices to DiGA (§ 374a SGB V)

MIV - Lung Function Testing

This chapter provides obligations and guidelines for manufacturers of Device Data Recorders for implementing a FHIR Resource Server for the Mandatory Interoperable Value (MIV) Lung Function Testing. For an overview of this MIV including typical use cases and key values, see the Lung Function Testing domain chapter.

This chapter builds on the HDDT Information Model, the HDDT Generic FHIR API, and the HDDT guide for retrieving device data. It constrains these guidelines with respect to the specific requirements for exposing lung function tests to DiGA, including:

Implementation Duties for Manufacturers of Device Data Recorders

Manufacturers of Device Data Recorders that support the MIV Lung Function Testing

  • MUST implement all requirements expressed through the RFC 2119 keywords defined in Conventions - Use of Keywords. These keywords (MUST, SHOULD, MAY, etc.) are used throughout the entire specification to indicate normative requirements.
  • MUST implement and operate a FHIR Resource Server as defined in this chapter,
  • MUST implement and operate an OAuth2 Authorization Server,
  • MUST register the Device Data Recorder with its FHIR Resource Server and OAuth2 Authorization Server at the BfARM HIIS-VZ (BfArM Device Registry),
  • MUST consider the HDDT requirements on security, privacy and operational service levels.

Further obligations MAY be defined by gematik and BfArM as part of the upcoming processes for conformance validation and registration.

FHIR Resource Server

The Device Data Recorder’s FHIR Resource Server gives DiGA access to measured data and related information about devices. A Device Data Recorder’s FHIR Resource Server that serves the MIV Lung Function Testing MUST implement the following endpoints and profiles:

The figure below shows the adaption of the HDDT Information Model for the MIV Lung Function Testing. Elements denoted as [1..1] or MS are mandatory for the MIV Lung Function Testing (see Use of HL7 FHIR).

HDDT FHIR Data Model (Measurements and Devices)Device Data Recorder ManufacturerMIV Definitions (ZTS)Repository for gematik FHIR IGsHIIS-VZ (Device Registry at BfArM)«FHIR Observation»Lung Function Testingstatus [1..1]: finalcode [1..1]: classification of the measured valueeffectiveDateTime [1..1]: date and time of the measurementvalueQuantity.value [1..1]: quantity value of the measurementvalueQuantity.system [1..1]: UCUMvalueQuantity.code [1..1]: L | L/min«FHIR Observation»Lung Function Reference Valuestatus [1..1]: finalcode [1..1]: classification of the reference valueeffectivePeriod [0..1]: date and time of the measurementvalueQuantity.value [1..1]: quantity value of the measurementvalueQuantity.system [1..1]: UCUMvalueQuantity.code [1..1]: L | L/minmethod [1..1]: method used to determine the reference valuemethod.coding.system [1..1]: https://../CS/hddt-lung-function-reference-value-method-codesmethod.coding.code [1..1]: code from the code system (e.g., GLI-2022)«FHIR Observation»Lung Function Testing Completestatus [1..1]: finalcode [1..1]: classification of the calculated value - measured/predictedeffectiveDateTime [1..1]: date and time of the measurementvalueQuantity.value [1..1]: quantity value of the measurementvalueQuantity.system [1..1]: UCUMvalueQuantity.code [1..1]: %derivedFrom [2..2]: references to the measurement and reference value observations«FHIR Device»Personal Health DevicedeviceName : product name [1..1]manufacturer : name of the manufacturer [0..1]serialNumber : serial number [1..1]expirationDate : end of life date [0..1]«FHIR ValueSet»VS MIV Lung Function Testingurl: https://gematik.de/fhir/hddt/ValueSet/hddt-miv-lung-function-testingversion: 1.0.0title: ValueSet MIV Lung Function Testingname: HddtMivLungFunctionTestingdescription: therapy mgmt and clinical decisionscompose.include.valueSet: hddt-lung-function-testing-valuescompose.include.valueSet: hddt-lung-function-reference-valuescompose.include.valueSet: hddt-lung-function-relative-values«FHIR ValueSet»VS Lung Function Testing Valuesurl: https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-testing-valuesname: HddtLungFunctionTestingValuescompose.include: 19935-6|LOINC (PEF)compose.include: 20150-9|LOINC (FEV1)«FHIR ValueSet»VS Lung Function Reference Valuesurl: https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-reference-valuesname: HddtLungFunctionReferenceValuescompose.include: 83368-1|LOINC (Personal best PEF)compose.include: 20149-1|LOINC (FEV1 predicted)«FHIR ValueSet»VS Lung Function Relative Valuesurl: https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-relative-valuesname: HddtLungFunctionRelativeValuescompose.include: PEF-measured/predicted|tempcompose.include: 20152-5|LOINC (FEV1 measured/predicted)«FHIR StructureDefinition»Observation - Lung Function Testingname = "HddtLungFunctionTesting"type = ObservationbaseDefinition = «FHIR Observation»derivation = constraint«FHIR StructureDefinition»Observation - Lung Function Reference Valuename = "HddtLungFunctionReferenceValue"type = ObservationbaseDefinition = «FHIR Observation»derivation = constraint«FHIR StructureDefinition»Observation - Lung Function Testing Completename = "HddtLungFunctionTestingComplete"type = ObservationbaseDefinition = «FHIR Observation»derivation = constraint«FHIR DeviceDefinition»Personal Health Device Definitiontype : kind of device «SCT code» [1..1]deviceName : product name [1..1]manufacturer : name of the manufacturer [0..1]derivedFromderivedFrom[1..1] devicedefinition [0..1]include.valueSetinclude.valueSetinclude.valueSetObservation.codeObservation.codeObservation.codedefinesdefinesdefines
Figure: Profiling of the HDDT Information Model for the MIV Lung Function Testing


All interactions on HDDT-specific endpoints require that the requestor presents a valid Access Token that was issued by the Device Data Recorder’s OAuth2 Authorization Server (see Pairing for details). The authorization of the request follows the principles defined for HDDT Smart Scopes. For the MIV Lung Function Testing only the following scopes MUST be set:

patient/Observation.rs?code:in=https://gematik.de/fhir/hddt/ValueSet/hddt-miv-lung-function-testing
patient/Device.rs
patient/DeviceMetric.rs

Observation Profiles

This section discusses the three Lung Function Testing profiles, which constrain the Observation resource for representing lung function testings, and all necessary supplementary information required for properly presenting and interpreting the results of lung function testings.

Observation Profile HDDT Lung Function Testing

The Observation profile HDDT Lung Function Testing represents a single measurement taken with a hand-held peak flow meter or spirometer. It records the raw measured value, either in liters (L) or liters per minute (L/min), depending whether the measured metric is the Peak Expiratory Flow (PEF) or the Forced Expiratory Volume in one second (FEV1).

For the full normative specification of this profile, see the respective StructureDefinition.

Snapshot View of the Profile

Profile: Observation – Lung Function Testing

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code Measurement status
Binding: ObservationStatus (required): Codes providing the status of an observation.
Fixed Value: final
... effective[x] Σ 1..1 dateTime Time of measurement
... value[x] SΣC 0..1 Quantity Measured lung function value
.... value Σ 1..1 decimal Numerical value (with implicit precision)
.... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
.... system ΣC 1..1 uri System that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... code Σ 1..1 code Coded form of the unit
Binding: UCUMCodes (required): Defines the unit of measurement using codes from the UCUM units ValueSet. The UCUM code MUST be compliant with the unit that is linked with the LOINC code given as Observation.code.
... device 1..1 Reference(Device – Personal Health Device | DeviceMetric – Sensor Type and Calibration Status) Reference to personal health device

doco Documentation for this format

Detailed description of differential elements

Guidance on how to interpret the contents of this table can be foundhere

0. Observation
2. Observation.status
Definition

The status of the measurements is fixed to 'final'. Only verified and complete measurements with a valid value are represented.

ShortMeasurement status
Fixed Valuefinal
4. Observation.code
ShortRaw measurement type for lung function
BindingThe codes SHALL be taken from Lung Function Testing Values from LOINC
(required to https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-testing-values)

Specifies the type of measurement using codes from the ValueSet for lung function testings. Constrained via invariant to either PEF or FEV1.

6. Observation.effective[x]
Definition

The time when the lung function testing was taken.

ShortTime of measurement
Control1..?
TypedateTime, Period, Timing, instant
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
8. Observation.value[x]
Definition

The quantitative lung function value, measured either in liters (L) for FEV1 or liters per minute (L/min) for PEF, represented as a UCUM Quantity.

ShortMeasured lung function value
TypeQuantity, dateTime, boolean, string, SampledData, Period, Ratio, integer, time, Range, CodeableConcept
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Must Supporttrue
10. Observation.value[x].value
Control1..?
12. Observation.value[x].system
Control1..?
Fixed Valuehttp://unitsofmeasure.org
14. Observation.value[x].code
Definition

The UCUM code representing the unit of the lung function testing. The UCUM code MUST be compliant with the example unit that is linked with the LOINC code given as Observation.code.

Control1..?
BindingThe codes SHALL be taken from UCUMCodes
(required to http://hl7.org/fhir/ValueSet/ucum-units)

Defines the unit of measurement using codes from the UCUM units ValueSet. The UCUM code MUST be compliant with the unit that is linked with the LOINC code given as Observation.code.

16. Observation.device
Definition

References a Device resource that describes the personal health device.

ShortReference to personal health device
Control1..?
TypeReference(Device – Personal Health Device, DeviceMetric – Sensor Type and Calibration Status)

For information on general constraints and terminology bindings see the full StructureDefinition for this profile.

Observation Profile HDDT Lung Function Reference Value

The Observation profile HDDT Lung Function Reference Value represents a value, used as a baseline when interpreting individual lung function tests of a patient (see section Reference Value).

For the full normative specification of this profile, see the respective StructureDefinition for this profile.

Snapshot View of the Profile

Profile: Observation – Lung Function Reference Value

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code Measurement status
Binding: ObservationStatus (required): Codes providing the status of an observation.
Fixed Value: final
... effective[x] Σ 0..1 Period Time period for which reference value is valid
... value[x] SΣC 0..1 Quantity Reference lung function value
.... value Σ 1..1 decimal Numerical value (with implicit precision)
.... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
.... system ΣC 1..1 uri System that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... code Σ 1..1 code Coded form of the unit
Binding: UCUMCodes (required): Defines the unit of measurement using codes from the UCUM units ValueSet. The UCUM code MUST be compliant with the unit that is linked with the LOINC code given as Observation.code.
... method S 0..1 CodeableConcept Method for determining the reference value
Binding: ObservationMethods (example): Methods for simple observations.
.... coding Σ 0..1 Coding Code defined by a terminology system
Binding: Lung Function Reference Value Method (required): Specifies the method used to determine the lung function reference value using codes from the Lung Function Reference Value Method ValueSet.
.... text Σ 0..1 string Plain text representation of the concept
... device 0..1 Reference(Device – Personal Health Device | DeviceMetric – Sensor Type and Calibration Status) Reference to personal health device

doco Documentation for this format

Detailed description of differential elements

Guidance on how to interpret the contents of this table can be foundhere

0. Observation
2. Observation.status
Definition

The status of the measurements is fixed to 'final'. Only verified and complete measurements with a valid value are represented.

ShortMeasurement status
Fixed Valuefinal
4. Observation.code
ShortReference measurement type for lung function
BindingThe codes SHALL be taken from Lung Function Reference Values from LOINC
(required to https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-reference-values)

Specifies for which measurement type the reference value is, using codes from the ValueSet for lung function testings. Constrained via invariant to either PEF or FEV1.

6. Observation.effective[x]
Definition

The time period for which the lung function reference value is valid. If the reference value is still active, then only the start of the period is provided.

ShortTime period for which reference value is valid
TypePeriod, dateTime, Timing, instant
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
8. Observation.value[x]
Definition

The quantitative reference value, measured either in liters (L) for FEV1 or liters per minute (L/min) for PEF, represented as a UCUM Quantity.

ShortReference lung function value
TypeQuantity, dateTime, boolean, string, SampledData, Period, Ratio, integer, time, Range, CodeableConcept
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Must Supporttrue
10. Observation.value[x].value
Control1..?
12. Observation.value[x].system
Control1..?
Fixed Valuehttp://unitsofmeasure.org
14. Observation.value[x].code
Definition

The UCUM code representing the unit of the lung function testing. The UCUM code MUST be compliant with the example unit that is linked with the LOINC code given as Observation.code.

Control1..?
BindingThe codes SHALL be taken from UCUMCodes
(required to http://hl7.org/fhir/ValueSet/ucum-units)

Defines the unit of measurement using codes from the UCUM units ValueSet. The UCUM code MUST be compliant with the unit that is linked with the LOINC code given as Observation.code.

16. Observation.method
Definition

The method used to determine the lung function reference value. Preferred is the usage of a code from the Lung Function Reference Value Method ValueSet, but as an alternative a text description of the used formula for calculating the reference value can be provided.

ShortMethod for determining the reference value
Must Supporttrue
18. Observation.method.coding
Control0..1
BindingThe codes SHALL be taken from Lung Function Reference Value Method
(required to https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-reference-value-method)

Specifies the method used to determine the lung function reference value using codes from the Lung Function Reference Value Method ValueSet.

20. Observation.method.text
Definition

In case no code is provided, specify whether the value is a personal best or predicted or calculated based on some formula.

22. Observation.device
Definition

References a Device resource that describes the personal health device.

ShortReference to personal health device
TypeReference(Device – Personal Health Device, DeviceMetric – Sensor Type and Calibration Status)

For information on general constraints and terminology bindings see the full StructureDefinition for this profile.

Observation Profile HDDT Complete Lung Function Testing

The Observation profile HDDT Complete Lung Function Testing represents a percentage-based value, calculated by dividing the individual lung function testing by the reference value.

For the full normative specification of this profile, see the respective StructureDefinition for this profile.

Snapshot View of the Profile

Profile: Observation – Complete Lung Function Testing

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code Measurement status
Binding: ObservationStatus (required): Codes providing the status of an observation.
Fixed Value: final
... effective[x] Σ 1..1 dateTime Time of measurement
... value[x] SΣC 0..1 Quantity Calculated lung function value as percentage of reference value
.... value Σ 1..1 decimal Numerical value (with implicit precision)
.... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
.... system ΣC 1..1 uri System that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... code Σ 1..1 code Coded form of the unit
Binding: UCUMCodes (required): Defines the unit of measurement using codes from the UCUM units ValueSet. The UCUM code MUST be compliant with the unit that is linked with the LOINC code given as Observation.code.
... device 1..1 Reference(Device – Personal Health Device | DeviceMetric – Sensor Type and Calibration Status) Reference to personal health device
... Slices for derivedFrom Σ 2..2 Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence) Related measurements the observation is made from
Slice: Unordered, Closed by profile:resolve()
.... derivedFrom:measurement Σ 1..1 Reference(Observation – Lung Function Testing) Reference to raw lung function testing
.... derivedFrom:referenceValue Σ 1..1 Reference(Observation – Lung Function Reference Value) Reference to lung function reference value

doco Documentation for this format

Detailed description of differential elements

Guidance on how to interpret the contents of this table can be foundhere

0. Observation
2. Observation.status
Definition

The status of the measurements is fixed to 'final'. Only verified and complete measurements with a valid value are represented.

ShortMeasurement status
Fixed Valuefinal
4. Observation.code
ShortPercentage measurement type for lung function
BindingThe codes SHALL be taken from Lung Function Relative Values from LOINC
(required to https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-relative-values)

Specifies the type of measurement using codes from the ValueSet for lung function testing as percentage of the reference value. Constrained via invariant to either PEF or FEV1.

6. Observation.effective[x]
Definition

The time when the lung function testing was taken.

ShortTime of measurement
Control1..?
TypedateTime, Period, Timing, instant
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
8. Observation.value[x]
Definition

The lung function value represented as percentage of the reference value

ShortCalculated lung function value as percentage of reference value
TypeQuantity, dateTime, boolean, string, SampledData, Period, Ratio, integer, time, Range, CodeableConcept
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Must Supporttrue
10. Observation.value[x].value
Control1..?
12. Observation.value[x].system
Control1..?
Fixed Valuehttp://unitsofmeasure.org
14. Observation.value[x].code
Definition

The UCUM code representing the unit of the lung function testing. The UCUM code MUST be compliant with the example unit that is linked with the LOINC code given as Observation.code.

Control1..?
BindingThe codes SHALL be taken from UCUMCodes
(required to http://hl7.org/fhir/ValueSet/ucum-units)

Defines the unit of measurement using codes from the UCUM units ValueSet. The UCUM code MUST be compliant with the unit that is linked with the LOINC code given as Observation.code.

16. Observation.device
Definition

References a Device resource that describes the personal health device.

ShortReference to personal health device
Control1..?
TypeReference(Device – Personal Health Device, DeviceMetric – Sensor Type and Calibration Status)
18. Observation.derivedFrom
Control2..2
SlicingThis element introduces a set of slices on Observation.derivedFrom. The slices areUnordered and Closed, and can be differentiated using the following discriminators:
  • profile @ resolve()
  • 20. Observation.derivedFrom:measurement
    Slice Namemeasurement
    Definition

    Reference to the lung function testing Observation that holds the actual measured value.

    ShortReference to raw lung function testing
    Control1..1
    TypeReference(Observation – Lung Function Testing)
    22. Observation.derivedFrom:referenceValue
    Slice NamereferenceValue
    Definition

    Reference to the Observation holding the reference range and information about the reference range determination method.

    ShortReference to lung function reference value
    Control1..1
    TypeReference(Observation – Lung Function Reference Value)

    For information on general constraints and terminology bindings see the full StructureDefinition for this profile.

    Conventions and Best Practice

    Reference Value

    The HDDT specification models the reference value as an Observation, because the PEF reference value is a “personal best”, and is thus a measurement that can change periodically. In certain contexts, a FEV1 reference value, measured as a “personal best” may also be applicable.

    Typically, the FEV1 reference value is calculated based on the patient’s demographical data, but the estimation approach varies. For example, the Global Lung Function Initiative (GLI) guidelines from 2012 state, that a patient’s race should be taken into account for the reference value calculation, while the more recent guidelines (GLI 2022) provide a race-neutral formula for the calculation.

    For the correct interpretation of the patient’s lung function measurement values, it is crucial for physicians to know how exactly the reference value was calculated. In the HDDT Lung Function Reference Value Observation profile, the manufacturer of the Device Data Recorder MUST specify a method, of how the reference value was created. The manufacturer SHOULD use a code from the HDDT Lung Function Reference Value Method Codes CodeSystem. Alternatively, the manufacturer MAY provide a plain text description of the method for calculating the reference value.

    Derived From Element

    The FHIR specification for the MIV Lung Function Testing consists of three separate FHIR profiles. The profile HDDT Complete Lung Function Testing depends on the other two (HDDT Lung Function Testing, and HDDT Lung Function Reference Value), as it is a calculation, displayed as a percentage, of an individual measurement, divided by the reference value.

    In order to properly model this information in the HDDT Complete Lung Function Testing FHIR profile, and provide it to the DiGA, the manufacturer of the Device Data Recorder MUST use the derivedFrom element to reference one of each HDDT Lung Function Testing and HDDT Lung Function Reference Value resource instances.

    Since the reference value is either a normal value for a population group and is calculated only once, or if it is a “personal best” it changes once every few weeks, multiple complete lung function tests SHOULD reference the same instance of the HDDT Lung Function Reference Value resource.

    Examples

    Full example

    The following object diagram shows the relationships between the FHIR resources involved in representing lung function testing according to the HDDT Information Model. Presented here is an instance of each HDDT Observation profile, representing an individual lung function measurement. For readability reasons, the relationship between profiles and resource instances, some connections to the Personal Health Device, and elements that are not mandatory or MS for the MIV Lung Function Testing (see Use of HL7 FHIR) have been omitted.

    HDDT Object Model Example (Lung Function Testing)Device Data Recorder ManufacturerMIV Definitions (ZTS)HIIS-VZ (Device Registry at BfArM)«FHIR Observation»Lung Function Testingstatus [1..1]: finalcode [1..1]: 20150-9 FEV1date [1..1]: 2025-08-08value [1..1]: 3.65 Ldevice [1..1]: reference to Personal Health Device«FHIR Observation»Lung Function Reference Valuestatus [1..1]: finalcode [1..1]: 20149-1 FEV1 Predicteddate [1..1]: 2025-08-01value [1..1]: 4.5Lmethod [1..1]: GLI-2022 - Reference Value calculated using GLI 2022device [1..1]: reference to Personal Health Device«FHIR Observation»Lung Function Complete Measurementstatus [1..1]: finalcode [1..1]: 20152-5 FEV1 measured/predicteddate [1..1]: 2025-08-08value [1..1]: 87 %device [1..1]: reference to Personal Health Device«FHIR Device»Personal Health Devicetype : 334990001 | SNOMED CTdeviceName : "SUPER Peak Flow"manufacturer : "SUPER - Medical Research"serialNumber : "SN1234567890"«FHIR ValueSet»VS MIV Lung Function Testingurl: https://gematik.de/fhir/hddt/ValueSet/hddt-miv-lung-function-testingversion: 1.0.0title: ValueSet MIV Lung Function Testingname: HddtMivLungFunctionTestingdescription: therapy mgmt and clinical decisionscompose.include: 19935-6|LOINC, 83368-1|LOINC, 20150-9|LOINC, ...«FHIR ValueSet»VS Lung Function Testing Valuesurl: https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-testing-valuesname: HddtLungFunctionTestingValuescompose.include: 19935-6|LOINC (PEF)compose.include: 20150-9|LOINC (FEV1)«FHIR ValueSet»VS Lung Function Reference Valuesurl: https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-reference-valuesname: HddtLungFunctionReferenceValuescompose.include: 83368-1|LOINC (Personal best PEF)compose.include: 20149-1|LOINC (FEV1 predicted)«FHIR ValueSet»VS Lung Function Relative Valuesurl: https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-relative-valuesname: HddtLungFunctionRelativeValuescompose.include: PEF-measured/predicted|tempcompose.include: 20152-5|LOINC (FEV1 measured/predicted)«FHIR DeviceDefinition»Personal Health Device Definitiontype : 334990001 | SNOMED CTdeviceName : "SUPER Peak Flow"manufacturer : "SUPER - Medical Research"derivedFromderivedFromdevice [1..1]definition [0..1]Observation.codeObservation.codeObservation.code
    Figure: HDDT Object Model Example (Lung Function Testing)


    The following code example shows the concrete JSON representation of the HDDT Lung Function Testing resource (FEV1) shown in the object diagram.

    {
      "resourceType" : "Observation",
      "id" : "example-fev1-single-measurement",
      "meta" : {
        "profile" : [
          🔗 "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-function-testing"
        ]
      },
      "status" : "final",
      "code" : {
        "coding" : [
          {
            "system" : "http://loinc.org",
            "code" : "20150-9",
            "display" : "FEV1"
          }
        ]
      },
      "effectiveDateTime" : "2025-12-28T08:00:00Z",
      "valueQuantity" : {
        "value" : 3.4,
        "unit" : "L",
        "system" : "http://unitsofmeasure.org",
        "code" : "L"
      },
      "device" : {
        🔗 "reference" : "Device/example-device-peak-flow-meter"
      }
    }

    The following code example shows the concrete JSON representation of the HDDT Lung Function Reference Value resource shown in the object diagram.

    {
      "resourceType" : "Observation",
      "id" : "example-fev1-reference-value",
      "meta" : {
        "profile" : [
          🔗 "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-reference-value"
        ]
      },
      "status" : "final",
      "code" : {
        "coding" : [
          {
            "system" : "http://loinc.org",
            "code" : "20149-1",
            "display" : "FEV1 predicted"
          }
        ]
      },
      "effectivePeriod" : {
        "start" : "2025-05-01"
      },
      "valueQuantity" : {
        "value" : 4.5,
        "unit" : "L",
        "system" : "http://unitsofmeasure.org",
        "code" : "L"
      },
      "method" : {
        "coding" : [
          {
            "system" : "https://gematik.de/fhir/hddt/CodeSystem/hddt-lung-function-reference-value-method-codes",
            "code" : "GLI-2022"
          }
        ]
      },
      "device" : {
        🔗 "reference" : "Device/example-device-peak-flow-meter"
      }
    }

    The following code example shows the concrete JSON representation of the HDDT Complete Lung Function Testing resource shown in the object diagram.

    {
      "resourceType" : "Observation",
      "id" : "example-fev1-relative-value",
      "meta" : {
        "profile" : [
          🔗 "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-function-testing-complete"
        ]
      },
      "status" : "final",
      "code" : {
        "coding" : [
          {
            "system" : "http://loinc.org",
            "code" : "20152-5",
            "display" : "FEV1 measured/predicted"
          }
        ]
      },
      "effectiveDateTime" : "2025-12-28T08:00:00Z",
      "valueQuantity" : {
        "value" : 75.5,
        "unit" : "%",
        "system" : "http://unitsofmeasure.org",
        "code" : "%"
      },
      "device" : {
        🔗 "reference" : "Device/example-device-peak-flow-meter"
      },
      "derivedFrom" : [
        {
          🔗 "reference" : "Observation/example-fev1-single-measurement"
        },
        {
          🔗 "reference" : "Observation/example-fev1-reference-value"
        }
      ]
    }

    Minimal Example

    The following object diagram shows a minimal representation of a lung function measurement, according to the HDDT Information Model taken with a peak flow meter. For readability reasons, the relationship between profiles and resource instances, some connections to the Personal Health Device, and elements that are not mandatory or MS for the MIV Lung Function Testing (see Use of HL7 FHIR) have been omitted.

    HDDT Object Model Example (Lung Function Testing)Device Data Recorder ManufacturerMIV Definitions (ZTS)HIIS-VZ (Device Registry at BfArM)«FHIR Observation»Lung Function Testingstatus [1..1]: finalcode [1..1]: 19935-6 Maximum expiratory gas flow Respiratory system airway by Peak flow meterdate [1..1]: 2025-12-28T08:00:00Zvalue [1..1]: 612 L/mindevice [1..1]: reference to Personal Health Device«FHIR Device»Personal Health Devicetype : 334990001 | SNOMED CTdeviceName : "Peak Flow Pro"manufacturer : "HealthTech GmbH"serialNumber : "PFM0011223344"modelNumber : "Smart 2"«FHIR ValueSet»VS MIV Lung Function Testingurl: https://gematik.de/fhir/hddt/ValueSet/hddt-miv-lung-function-testingversion: 1.0.0title: ValueSet MIV Lung Function Testingname: HddtMivLungFunctionTestingdescription: therapy mgmt and clinical decisionscompose.include: 19935-6|LOINC, 83368-1|LOINC, 20150-9|LOINC, ...«FHIR ValueSet»VS Lung Function Testing Valuesurl: https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-testing-valuesname: HddtLungFunctionTestingValuescompose.include: 19935-6|LOINC (PEF)compose.include: 20150-9|LOINC (FEV1)«FHIR DeviceDefinition»Personal Health Device Definitiontype : 334990001 | SNOMED CTidentifier : 21.24.01.2005deviceName : "Peak Flow Pro"manufacturer : "HealthTech GmbH"modelNumber : "Smart 2"capability[0] = 19935-6 | LOINCcapability[1] = 20150-9 | LOINCcapability[2] = 83368-1 | LOINCdevice [1..1]definition [0..1]Observation.code
    Figure: HDDT Object Model Minimal Example (Lung Function Testing)


    The following code example shows the concrete JSON representation of the HDDT Lung Function Testing resource (PEF) shown in the diagram.

    {
      "resourceType" : "Observation",
      "id" : "example-peak-flow-simple",
      "meta" : {
        "profile" : [
          🔗 "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-function-testing"
        ]
      },
      "status" : "final",
      "code" : {
        "coding" : [
          {
            "system" : "http://loinc.org",
            "code" : "19935-6",
            "display" : "Maximum expiratory gas flow Respiratory system airway by Peak flow meter"
          }
        ]
      },
      "effectiveDateTime" : "2025-12-28T08:00:00Z",
      "valueQuantity" : {
        "value" : 612,
        "unit" : "L/min",
        "system" : "http://unitsofmeasure.org",
        "code" : "L/min"
      },
      "device" : {
        🔗 "reference" : "Device/example-device-peak-flow-meter"
      }
    }

    MIV-specific Endpoints and Interactions

    Observation - READ

    Manufacturers of Device Data Recorders that support the MIV Lung Function Testing MUST implement a read interaction on the /Observation endpoint of the FHIR Resource Server. The implementation MUST conform to the HDDT Generic FHIR API. Observation resources shared through the read interaction MUST comply with the FHIR profiles listed in section FHIR Resource Server of this chapter.

    Manufacturers of Device Data Recorders that support the MIV Lung Function Testing MUST implement a search interaction on the /Observation endpoint of the FHIR Resource Server. The implementation MUST conform to the HDDT Generic FHIR API, and implement the search parameters listed on page FHIR Resource Server - Search Parameters. Observation resources shared through the search interaction MUST comply with the FHIR profiles listed in section FHIR Resource Server of this chapter.

    Example: FHIR-Search for relative values LOINC code

    Example: FHIR-READ

    Request: GET /Observation/example-fev1-reference-value

    Description: With FHIR-read interactions, a client can access a single resource instance by querying its internal ID. In this case it is suitable for obtaining the reference value of a FEV1 measurement, by querying the ID, in the derivedFrom of a complete Lung Function Testing. Restrictions by the OAuth scopes apply—if the client is not allowed to read this resource, a 404 error will be returned.

    Response: Returned object is a single Observation resource.

    {
      "resourceType" : "Observation",
      "id" : "example-fev1-reference-value",
      "meta" : {
        "profile" : [
          🔗 "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-reference-value"
        ]
      },
      "status" : "final",
      "code" : {
        "coding" : [
          {
            "system" : "http://loinc.org",
            "code" : "20149-1",
            "display" : "FEV1 predicted"
          }
        ]
      },
      "effectivePeriod" : {
        "start" : "2025-05-01"
      },
      "valueQuantity" : {
        "value" : 4.5,
        "unit" : "L",
        "system" : "http://unitsofmeasure.org",
        "code" : "L"
      },
      "method" : {
        "coding" : [
          {
            "system" : "https://gematik.de/fhir/hddt/CodeSystem/hddt-lung-function-reference-value-method-codes",
            "code" : "GLI-2022"
          }
        ]
      },
      "device" : {
        🔗 "reference" : "Device/example-device-peak-flow-meter"
      }
    }

    Example: FHIR-Search minimal

    Request: GET /Observation?code=19935-6&date=2025-12-15

    Description: Obtain all of the Observations where code is the LOINC code for peak expiratory flow measurements (PEF) on a specific date. OAuth scopes apply, and only Observations are returned that the client is allowed to access.

    Response: Returned object is a Bundle containing all Observation resource instances matching the search criteria.

    {
        "resourceType": "Bundle",
        "id": "8f3a5c2d-9b1e-4a7f-8c3d-2e6f9a1b4c5d",
        "type": "searchset",
        "entry": [
            {
                "fullUrl": "https://himi.example.com/fhir/Observation/example-peak-flow-measurement-1",
                "resource": {
                    "resourceType": "Observation",
                    "id": "example-peak-flow-measurement-1",
                    "meta": {
                        "profile": [
                            "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-function-testing"
                        ]
                    },
                    "status": "final",
                    "code": {
                        "coding": [
                            {
                                "code": "19935-6",
                                "system": "http://loinc.org",
                                "display": "Maximum expiratory gas flow Respiratory system airway by Peak flow meter"
                            }
                        ]
                    },
                    "effectiveDateTime": "2025-12-15T08:00:00+01:00",
                    "valueQuantity": {
                        "system": "http://unitsofmeasure.org",
                        "value": 580,
                        "code": "L/min",
                        "unit": "L/min"
                    },
                    "device": {
                        "reference": "Device/example-device-peak-flow-meter"
                    }
                },
                "search": {
                    "mode": "match"
                }
            },
            {
                "fullUrl": "https://himi.example.com/fhir/Observation/example-peak-flow-measurement-2",
                "resource": {
                    "resourceType": "Observation",
                    "id": "example-peak-flow-measurement-2",
                    "meta": {
                        "profile": [
                            "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-function-testing"
                        ]
                    },
                    "status": "final",
                    "code": {
                        "coding": [
                            {
                                "code": "19935-6",
                                "system": "http://loinc.org",
                                "display": "Maximum expiratory gas flow Respiratory system airway by Peak flow meter"
                            }
                        ]
                    },
                    "effectiveDateTime": "2025-12-15T20:30:00+01:00",
                    "valueQuantity": {
                        "system": "http://unitsofmeasure.org",
                        "value": 595,
                        "code": "L/min",
                        "unit": "L/min"
                    },
                    "device": {
                        "reference": "Device/example-device-peak-flow-meter"
                    }
                },
                "search": {
                    "mode": "match"
                }
            }
        ]
    }
    

    Example: FHIR-Search maximal

    Request: GET /Observation?date=2025-12-15&_include=Observation:device

    Description: Obtain all of the Observations made on a certain date (the code from the MIV Lung Function Testing is implicitly included). OAuth scopes apply, and only Observations are returned that the client is allowed to access.

    Response: Returned object is a Bundle containing all Observation resource instances matching the search criteria.

    {
        "resourceType": "Bundle",
        "id": "a7e4b9c2-3f1d-4e8a-9b2c-5d6f8a1e3c4b",
        "type": "searchset",
        "entry": [
            {
                "fullUrl": "https://himi.example.com/fhir/Observation/example-fev1-single-measurement",
                "resource": {
                    "resourceType": "Observation",
                    "id": "example-fev1-single-measurement",
                    "meta": {
                        "profile": [
                            "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-function-testing"
                        ]
                    },
                    "status": "final",
                    "code": {
                        "coding": [
                            {
                                "code": "20150-9",
                                "system": "http://loinc.org",
                                "display": "FEV1"
                            }
                        ]
                    },
                    "effectiveDateTime": "2025-12-28T08:00:00Z",
                    "valueQuantity": {
                        "system": "http://unitsofmeasure.org",
                        "value": 3.4,
                        "code": "L",
                        "unit": "L"
                    },
                    "device": {
                        "reference": "Device/example-device-peak-flow-meter"
                    }
                },
                "search": {
                    "mode": "match"
                }
            },
            {
                "fullUrl": "https://himi.example.com/fhir/Observation/example-fev1-reference-value",
                "resource": {
                    "resourceType": "Observation",
                    "id": "example-fev1-reference-value",
                    "meta": {
                        "profile": [
                            "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-reference-value"
                        ]
                    },
                    "status": "final",
                    "code": {
                        "coding": [
                            {
                                "code": "20149-1",
                                "system": "http://loinc.org",
                                "display": "FEV1 predicted"
                            }
                        ]
                    },
                    "effectivePeriod": {
                        "start": "2025-05-01"
                    },
                    "valueQuantity": {
                        "system": "http://unitsofmeasure.org",
                        "value": 4.5,
                        "code": "L",
                        "unit": "L"
                    },
                    "method": {
                        "coding": [
                            {
                                "code": "GLI-2022",
                                "system": "https://gematik.de/fhir/hddt/CodeSystem/hddt-lung-function-reference-value-method-codes"
                            }
                        ]
                    },
                    "device": {
                        "reference": "Device/example-device-peak-flow-meter"
                    }
                },
                "search": {
                    "mode": "match"
                }
            },
            {
                "fullUrl": "https://himi.example.com/fhir/Observation/example-fev1-relative-value",
                "resource": {
                    "resourceType": "Observation",
                    "id": "example-fev1-relative-value",
                    "meta": {
                        "profile": [
                            "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-function-testing-complete"
                        ]
                    },
                    "status": "final",
                    "code": {
                        "coding": [
                            {
                                "code": "20152-5",
                                "system": "http://loinc.org",
                                "display": "FEV1 measured/predicted"
                            }
                        ]
                    },
                    "effectiveDateTime": "2025-12-28T08:00:00Z",
                    "valueQuantity": {
                        "system": "http://unitsofmeasure.org",
                        "value": 75.5,
                        "code": "%",
                        "unit": "%"
                    },
                    "derivedFrom": [
                        {
                            "reference": "Observation/example-fev1-single-measurement"
                        },
                        {
                            "reference": "Observation/example-fev1-reference-value"
                        }
                    ],
                    "device": {
                        "reference": "Device/example-device-peak-flow-meter"
                    }
                },
                "search": {
                    "mode": "match"
                }
            },
            {
                "fullUrl": "https://himi.example.com/fhir/Device/example-device-peak-flow-meter",
                "resource": {
                    "resourceType": "Device",
                    "id": "example-device-peak-flow-meter",
                    "meta": {
                        "profile": [
                            "https://gematik.de/fhir/hddt/StructureDefinition/hddt-personal-health-device"
                        ]
                    },
                    "status": "active",
                    "type": {
                        "coding": [
                            {
                                "code": "334990001",
                                "system": "http://snomed.info/sct",
                                "version": "http://snomed.info/sct/11000274103/version/20251115",
                                "display": "Peak flow meter (physical object)"
                            }
                        ]
                    },
                    "definition": {
                        "reference": "DeviceDefinition/device-definition-peak-flow-001"
                    },
                    "deviceName": [
                        {
                            "name": "Peak Flow Pro",
                            "type": "user-friendly-name"
                        }
                    ],
                    "modelNumber": "Smart 2",
                    "manufacturer": "HealthTech GmbH",
                    "serialNumber": "PFM0011223344",
                    "expirationDate": "2027-12-15"
                },
                "search": {
                    "mode": "include"
                }
            }
        ]
    }