Specification of health data transfer from devices to DiGA (§ 374a SGB V)
Seiteninhalt:
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:
Manufacturers of Device Data Recorders that support the MIV Lung Function Testing
Further obligations MAY be defined by gematik and BfArM as part of the upcoming processes for conformance validation and registration.
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:
/metadata endpoint.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).
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
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.
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.
Profile: Observation – Lung Function Testing
This structure is derived from Observation
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 1..1 | code | Measurement status Binding: ObservationStatus (required): Codes providing the status of an observation. Fixed Value: final |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Raw measurement type for lung function Binding: Lung Function Testing Values from LOINC (required): Specifies the type of measurement using codes from the ValueSet for lung function testings. Constrained via invariant to either PEF or FEV1. |
![]() ![]() |
Σ | 1..1 | dateTime | Time of measurement |
![]() ![]() |
SΣC | 0..1 | Quantity | Measured lung function value |
![]() ![]() ![]() |
Σ | 1..1 | decimal | Numerical value (with implicit precision) |
![]() ![]() ![]() |
?!Σ | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented. |
![]() ![]() ![]() |
ΣC | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
![]() ![]() ![]() |
Σ | 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. |
![]() ![]() |
1..1 | Reference(Device – Personal Health Device | DeviceMetric – Sensor Type and Calibration Status) | Reference to personal health device | |
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. |
| Short | Measurement status |
| Fixed Value | final |
| 4. Observation.code | |
| Short | Raw measurement type for lung function |
| Binding | The 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. |
| Short | Time of measurement |
| Control | 1..? |
| Type | dateTime, Period, Timing, instant |
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] |
| Primitive Value | This 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. |
| Short | Measured lung function value |
| Type | Quantity, dateTime, boolean, string, SampledData, Period, Ratio, integer, time, Range, CodeableConcept |
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] |
| Must Support | true |
| 10. Observation.value[x].value | |
| Control | 1..? |
| 12. Observation.value[x].system | |
| Control | 1..? |
| Fixed Value | http://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 |
| Control | 1..? |
| Binding | The 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 |
| 16. Observation.device | |
| Definition | References a Device resource that describes the personal health device. |
| Short | Reference to personal health device |
| Control | 1..? |
| Type | Reference(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.
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.
Profile: Observation – Lung Function Reference Value
This structure is derived from Observation
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 1..1 | code | Measurement status Binding: ObservationStatus (required): Codes providing the status of an observation. Fixed Value: final |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Reference measurement type for lung function Binding: Lung Function Reference Values from LOINC (required): 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. |
![]() ![]() |
Σ | 0..1 | Period | Time period for which reference value is valid |
![]() ![]() |
SΣC | 0..1 | Quantity | Reference lung function value |
![]() ![]() ![]() |
Σ | 1..1 | decimal | Numerical value (with implicit precision) |
![]() ![]() ![]() |
?!Σ | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented. |
![]() ![]() ![]() |
ΣC | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
![]() ![]() ![]() |
Σ | 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. |
![]() ![]() |
S | 0..1 | CodeableConcept | Method for determining the reference value Binding: ObservationMethods (example): Methods for simple observations. |
![]() ![]() ![]() |
Σ | 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. |
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() |
0..1 | Reference(Device – Personal Health Device | DeviceMetric – Sensor Type and Calibration Status) | Reference to personal health device | |
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. |
| Short | Measurement status |
| Fixed Value | final |
| 4. Observation.code | |
| Short | Reference measurement type for lung function |
| Binding | The 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. |
| Short | Time period for which reference value is valid |
| Type | Period, dateTime, Timing, instant |
| [x] Note | SeeChoice 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. |
| Short | Reference lung function value |
| Type | Quantity, dateTime, boolean, string, SampledData, Period, Ratio, integer, time, Range, CodeableConcept |
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] |
| Must Support | true |
| 10. Observation.value[x].value | |
| Control | 1..? |
| 12. Observation.value[x].system | |
| Control | 1..? |
| Fixed Value | http://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 |
| Control | 1..? |
| Binding | The 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 |
| 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. |
| Short | Method for determining the reference value |
| Must Support | true |
| 18. Observation.method.coding | |
| Control | 0..1 |
| Binding | The 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. |
| Short | Reference to personal health device |
| Type | Reference(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.
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.
Profile: Observation – Complete Lung Function Testing
This structure is derived from Observation
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 1..1 | code | Measurement status Binding: ObservationStatus (required): Codes providing the status of an observation. Fixed Value: final |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Percentage measurement type for lung function Binding: Lung Function Relative Values from LOINC (required): 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. |
![]() ![]() |
Σ | 1..1 | dateTime | Time of measurement |
![]() ![]() |
SΣC | 0..1 | Quantity | Calculated lung function value as percentage of reference value |
![]() ![]() ![]() |
Σ | 1..1 | decimal | Numerical value (with implicit precision) |
![]() ![]() ![]() |
?!Σ | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented. |
![]() ![]() ![]() |
ΣC | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
![]() ![]() ![]() |
Σ | 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. |
![]() ![]() |
1..1 | Reference(Device – Personal Health Device | DeviceMetric – Sensor Type and Calibration Status) | Reference to personal health device | |
![]() ![]() |
Σ | 2..2 | Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence) | Related measurements the observation is made from Slice: Unordered, Closed by profile:resolve() |
![]() ![]() ![]() |
Σ | 1..1 | Reference(Observation – Lung Function Testing) | Reference to raw lung function testing |
![]() ![]() ![]() |
Σ | 1..1 | Reference(Observation – Lung Function Reference Value) | Reference to lung function reference value |
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. |
| Short | Measurement status |
| Fixed Value | final |
| 4. Observation.code | |
| Short | Percentage measurement type for lung function |
| Binding | The 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. |
| Short | Time of measurement |
| Control | 1..? |
| Type | dateTime, Period, Timing, instant |
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] |
| Primitive Value | This 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 |
| Short | Calculated lung function value as percentage of reference value |
| Type | Quantity, dateTime, boolean, string, SampledData, Period, Ratio, integer, time, Range, CodeableConcept |
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] |
| Must Support | true |
| 10. Observation.value[x].value | |
| Control | 1..? |
| 12. Observation.value[x].system | |
| Control | 1..? |
| Fixed Value | http://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 |
| Control | 1..? |
| Binding | The 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 |
| 16. Observation.device | |
| Definition | References a Device resource that describes the personal health device. |
| Short | Reference to personal health device |
| Control | 1..? |
| Type | Reference(Device – Personal Health Device, DeviceMetric – Sensor Type and Calibration Status) |
| 18. Observation.derivedFrom | |
| Control | 2..2 |
| Slicing | This element introduces a set of slices on Observation.derivedFrom. The slices areUnordered and Closed, and can be differentiated using the following discriminators: |
| 20. Observation.derivedFrom:measurement | |
| Slice Name | measurement |
| Definition | Reference to the lung function testing Observation that holds the actual measured value. |
| Short | Reference to raw lung function testing |
| Control | 1..1 |
| Type | Reference(Observation – Lung Function Testing) |
| 22. Observation.derivedFrom:referenceValue | |
| Slice Name | referenceValue |
| Definition | Reference to the Observation holding the reference range and information about the reference range determination method. |
| Short | Reference to lung function reference value |
| Control | 1..1 |
| Type | Reference(Observation – Lung Function Reference Value) |
For information on general constraints and terminology bindings see the full StructureDefinition for this profile.
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.
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.
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.
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"
}
]
}
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.
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"
}
}
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.
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"
}
}
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"
}
}
]
}
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"
}
}
]
}