{
"description": "Profile for capturing the relative lung function testings (i.e. an individual measurement divided by the corresponding reference value) \\nas FHIR Observation resources.\\n\\nThis profile defines the exchange of a single relative value for the Mandatory Interoperable Value (MIV) \\\\\\\"Lung Function Testing\\\\\\\" which is technically defined \\nby the ValueSet _hddt-miv-lung-function-testing_. This MIV is e.g. implemented by peak flow meter that can connect to \\na Personal Health Gateway (e.g. a mobile app for tracking lung function values) through wireless or wired communication.\\n\\n**Obligations and Conventions:**\\n\\nEach Lung Function Testing MAY either hold a reference to a _Sensor Type And Calibration Status_ [DeviceMetric](https://hl7.org/fhir/R4/devicemetric.html) resource or to a \\n_Personal Health Device_ [Device](https://hl7.org/fhir/R4/device.html) resource (eXclusive OR). Typically the reference will be \\nto a [Device](https://hl7.org/fhir/R4/device.html) resource, but the option to reference a [DeviceMetric](https://hl7.org/fhir/R4/devicemetric.html) \\nresource is provided for compatibility with the overarching HDDT specification.\\n\\nEach instance of this Observation MUST reference the Observations holding the corresponding raw measurement and reference value via the `derivedFrom` element.\\n\\n**Constraints applied:** \\n- `status` is restricted to _final_\\n- `code` is constrained to a subset of the _MIV Lung Function Relative Values_ ValueSet, defined by the _HddtLungFunctionRelativeValues_ ValueSet.\\n- `effective[x]` is restricted to `effectiveDateTime` and constrained as mandatory.\\n- `value[x]` is restricted to `valueQuantity`. The elements `valueQuantity.value`, `valueQuantity.system`, and `valueQuantity.code` are constrained in a way that a value MUST be provided and that UCUM MUST be used for encoding the unit of measurement. `Observation.valueQuantity` MAY only be omitted in case of an error that accured with the measurement. In this case, `Observation.dataAbsentReason` MUST be provided.\\n- `derivedFrom` is constrained to require exactly two references: one to the raw lung function testing Observation and one to the lung function reference value Observation.",
"_filename": "StructureDefinition-hddt-lung-function-testing-complete.json",
"package_name": "de.gematik.hddt",
"date": "2026-03-04",
"derivation": "constraint",
"publisher": "gematik GmbH",
"fhirVersion": "4.0.1",
"name": "HddtLungFunctionTestingComplete",
"abstract": false,
"copyright": "Copyright (c) 2026 gematik GmbH",
"type": "Observation",
"experimental": null,
"resourceType": "StructureDefinition",
"title": "Observation – Complete Lung Function Testing",
"package_version": "1.0.0-rc2",
"status": "active",
"id": "dddc9e7e-e55b-4527-958c-a4a16c67611a",
"kind": "resource",
"url": "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-function-testing-complete",
"version": "1.0.0-rc2",
"differential": {
"element": [ {
"id": "Observation.status",
"path": "Observation.status",
"short": "Measurement status",
"fixedCode": "final",
"definition": "The status of the measurements is fixed to 'final'. Only verified and complete measurements with a valid value are represented."
}, {
"id": "Observation.code",
"path": "Observation.code",
"short": "Percentage measurement type for lung function",
"binding": {
"strength": "required",
"valueSet": "https://gematik.de/fhir/hddt/ValueSet/hddt-lung-function-relative-values",
"description": "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."
}
}, {
"id": "Observation.effective[x]",
"min": 1,
"path": "Observation.effective[x]",
"type": [ {
"code": "dateTime"
} ],
"short": "Time of measurement",
"definition": "The time when the lung function testing was taken."
}, {
"id": "Observation.value[x]",
"path": "Observation.value[x]",
"type": [ {
"code": "Quantity"
} ],
"short": "Calculated lung function value as percentage of reference value",
"definition": "The lung function value represented as percentage of the reference value",
"mustSupport": true
}, {
"id": "Observation.value[x].value",
"min": 1,
"path": "Observation.value[x].value"
}, {
"id": "Observation.value[x].system",
"min": 1,
"path": "Observation.value[x].system",
"fixedUri": "http://unitsofmeasure.org"
}, {
"id": "Observation.value[x].code",
"min": 1,
"path": "Observation.value[x].code",
"binding": {
"strength": "required",
"valueSet": "http://hl7.org/fhir/ValueSet/ucum-units",
"description": "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`."
},
"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`."
}, {
"id": "Observation.device",
"min": 1,
"path": "Observation.device",
"type": [ {
"code": "Reference",
"targetProfile": [ "https://gematik.de/fhir/hddt/StructureDefinition/hddt-personal-health-device", "https://gematik.de/fhir/hddt/StructureDefinition/hddt-sensor-type-and-calibration-status" ]
} ],
"short": "Reference to personal health device",
"definition": "References a Device resource that describes the personal health device."
}, {
"id": "Observation.derivedFrom",
"max": "2",
"min": 2,
"path": "Observation.derivedFrom",
"slicing": {
"rules": "closed",
"description": "Slice to require one reference to a measurement and one to a reference value",
"discriminator": [ {
"path": "resolve()",
"type": "profile"
} ]
}
}, {
"id": "Observation.derivedFrom:measurement",
"max": "1",
"min": 1,
"path": "Observation.derivedFrom",
"type": [ {
"code": "Reference",
"targetProfile": [ "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-function-testing" ]
} ],
"short": "Reference to raw lung function testing",
"sliceName": "measurement",
"definition": "Reference to the lung function testing Observation that holds the actual measured value."
}, {
"id": "Observation.derivedFrom:referenceValue",
"max": "1",
"min": 1,
"path": "Observation.derivedFrom",
"type": [ {
"code": "Reference",
"targetProfile": [ "https://gematik.de/fhir/hddt/StructureDefinition/hddt-lung-reference-value" ]
} ],
"short": "Reference to lung function reference value",
"sliceName": "referenceValue",
"definition": "Reference to the Observation holding the reference range and information about the reference range determination method."
} ]
},
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation"
}