Specification of health data transfer from devices to DiGA (§ 374a SGB V)
Seiteninhalt:
This chapter provides obligations and hints for manufacturers of Device Data Recorders for implementing a FHIR Resource Server for the Mandatory Interoperable Value (MIV) Blood Pressure Monitoring. For an overview of this MIV including typical use cases and key values, see the Blood Pressure Monitoring domain chapter.
This chapter builds on the HDDT Information Model, the HDDT Generic FHIR API, and the HDDT guide for retrieving device data. It constraints these guidelines with respect to the specific requirements for exposing blood pressure monitoring to DiGA, including:
Manufacturers of Device Data Recorders that support the MIV Blood Pressure Monitoring
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 and device metrics. A Device Data Recorder’s FHIR Resource Server that serves the MIV Blood Pressure Monitoring MUST implement the following endpoints and profiles:
/metadata endpoint.The figure below shows the adaption of the HDDT Information Model for the MIV Blood Pressure Monitoring. Elements denoted as [1..1] are mandatory or MS for the MIV Blood Pressure Monitoring (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 Blood Pressure Monitoring only the following scopes MUST be set:
patient/Observation.rs?code:in=https://gematik.de/fhir/hddt/ValueSet/hddt-miv-blood-pressure-value
patient/Device.rs
This section discusses the HDDT Blood Pressure Monitoring profile, which constrains the FHIR Observation resource for representing blood pressure monitoring. For the full normative specification of this profile see the respective StructureDefinition.
Profile: Observation - HDDT Blood Pressure Value
This structure is derived from observation-bp
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | observation-bp | FHIR Blood Pressure Profile Constraints: obs-6, obs-7, vs-2 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!SΣ | 1..1 | code | Measurement status Binding: ObservationStatus (required) Fixed Value: final |
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:coding.code, value:coding.system Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
![]() ![]() ![]() ![]() |
SΣ | 1..* | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() ![]() |
SΣ | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category |
![]() ![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs |
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Type of blood pressure measurement Binding: VitalSigns (extensible): Specifies the type of blood pressure measurement using codes from the ValueSet for blood pressure measurements. |
![]() ![]() ![]() |
Σ | 1..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:code, value:system |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Binding: Blood Pressure Value from LOINC (required) |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 85354-9 |
![]() ![]() |
SΣ | 1..1 | Reference(Patient) | Patient reference in anonymized or pseudonymized form only |
![]() ![]() |
SΣC | 1..1 | Often just a dateTime for Vital Signs Constraints: vs-1 | |
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() |
SΣC | 0..1 | Quantity | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. Slice: Unordered, Closed by type:$this |
![]() ![]() |
SC | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
![]() ![]() |
S | 1..1 | Reference(Device – Personal Health Device) | Reference to the blood pressure measurement device |
![]() ![]() |
SΣC | 2..3 | BackboneElement | Used when reporting systolic and diastolic blood pressure. Slice: Unordered, Open by value:code.coding.code, value:code.coding.system Constraints: vs-3 |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: VitalSigns (extensible): This identifies the vital sign result type. |
![]() ![]() ![]() ![]() |
SΣC | 0..1 | Vital Sign Value recorded with UCUM Binding: VitalSignsUnits (extensible): Common UCUM units for recording Vital Signs. | |
![]() ![]() ![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() ![]() ![]() |
CodeableConcept | |||
![]() ![]() ![]() ![]() ![]() |
string | |||
![]() ![]() ![]() ![]() ![]() |
boolean | |||
![]() ![]() ![]() ![]() ![]() |
integer | |||
![]() ![]() ![]() ![]() ![]() |
Range | |||
![]() ![]() ![]() ![]() ![]() |
Ratio | |||
![]() ![]() ![]() ![]() ![]() |
SampledData | |||
![]() ![]() ![]() ![]() ![]() |
time | |||
![]() ![]() ![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() ![]() ![]() |
Period | |||
![]() ![]() ![]() ![]() |
SC | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
![]() ![]() ![]() |
SΣC | 1..1 | BackboneElement | Used when reporting systolic and diastolic blood pressure. Constraints: vs-3 |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: VitalSigns (extensible): This identifies the vital sign result type. |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Systolic Blood Pressure Slice: Unordered, Open by value:code, value:system |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Systolic Blood Pressure |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 8480-6 |
![]() ![]() ![]() ![]() |
SΣC | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: VitalSignsUnits (extensible): Common UCUM units for recording Vital Signs. |
![]() ![]() ![]() ![]() ![]() |
SΣ | 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. |
![]() ![]() ![]() ![]() ![]() |
SΣ | 1..1 | string | Unit representation |
![]() ![]() ![]() ![]() ![]() |
SΣC | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
![]() ![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | Coded responses from the common UCUM units for vital signs value set. Fixed Value: mm[Hg] |
![]() ![]() ![]() ![]() |
SC | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
![]() ![]() ![]() |
SΣC | 1..1 | BackboneElement | Used when reporting systolic and diastolic blood pressure. Constraints: vs-3 |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: VitalSigns (extensible): This identifies the vital sign result type. |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Diastolic Blood Pressure Slice: Unordered, Open by value:code, value:system |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Diastolic Blood Pressure |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 8462-4 |
![]() ![]() ![]() ![]() |
SΣC | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: VitalSignsUnits (extensible): Common UCUM units for recording Vital Signs. |
![]() ![]() ![]() ![]() ![]() |
SΣ | 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. |
![]() ![]() ![]() ![]() ![]() |
SΣ | 1..1 | string | Unit representation |
![]() ![]() ![]() ![]() ![]() |
SΣC | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
![]() ![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | Coded responses from the common UCUM units for vital signs value set. Fixed Value: mm[Hg] |
![]() ![]() ![]() ![]() |
SC | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
![]() ![]() ![]() |
SΣC | 0..1 | BackboneElement | Used when reporting systolic and diastolic blood pressure. Constraints: vs-3 |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: VitalSigns (extensible): This identifies the vital sign result type. |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 8478-0 |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system Fixed Value: Mean blood pressure |
![]() ![]() ![]() ![]() |
SΣC | 1..1 | Quantity | Vital Sign Value recorded with UCUM Binding: VitalSignsUnits (extensible): Common UCUM units for recording Vital Signs. |
![]() ![]() ![]() ![]() ![]() |
Σ | 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. |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | string | Unit representation |
![]() ![]() ![]() ![]() ![]() |
SΣC | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | Coded form of the unit Fixed Value: mm[Hg] |
![]() ![]() ![]() ![]() |
SC | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
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 | Type of blood pressure measurement |
| Binding | Unless not suitable, these codes SHALL be taken from VitalSigns (extensible to http://hl7.org/fhir/ValueSet/observation-vitalsignresult)Specifies the type of blood pressure measurement using codes from the ValueSet for blood pressure measurements. |
| 6. Observation.code.coding:BPCode | |
| Slice Name | BPCode |
| Binding | The codes SHALL be taken from Blood Pressure Value from LOINC (required to https://gematik.de/fhir/hddt/ValueSet/hddt-miv-blood-pressure-value) |
| 8. Observation.subject | |
| Definition | Reference to the patient. The patient MUST NOT be identified directly. Only anonymized or pseudonymized forms are permitted. |
| Short | Patient reference in anonymized or pseudonymized form only |
| 10. Observation.device | |
| Short | Reference to the blood pressure measurement device |
| Control | 1..? |
| Type | Reference(Device – Personal Health Device) |
| Must Support | true |
| 12. Observation.component | |
| Control | 0..3 |
| 14. Observation.component:SystolicBP | |
| Slice Name | SystolicBP |
| 16. Observation.component:SystolicBP.code | |
| 18. Observation.component:SystolicBP.code.coding | |
| Control | 1..1 |
| 20. Observation.component:DiastolicBP | |
| Slice Name | DiastolicBP |
| 22. Observation.component:DiastolicBP.code | |
| 24. Observation.component:DiastolicBP.code.coding | |
| Control | 1..1 |
| 26. Observation.component:MeanBP | |
| Slice Name | MeanBP |
| Control | 0..1 |
| 28. Observation.component:MeanBP.code | |
| 30. Observation.component:MeanBP.code.coding | |
| Control | 1..1 |
| 32. Observation.component:MeanBP.code.coding.system | |
| Control | 1..? |
| Fixed Value | http://loinc.org |
| 34. Observation.component:MeanBP.code.coding.code | |
| Control | 1..? |
| Fixed Value | 8478-0 |
| 36. Observation.component:MeanBP.code.coding.display | |
| Fixed Value | Mean blood pressure |
| 38. Observation.component:MeanBP.value[x] | |
| Control | 1..? |
| Type | Quantity |
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] |
| 40. Observation.component:MeanBP.value[x].value | |
| Control | 1..? |
| 42. Observation.component:MeanBP.value[x].unit | |
| Control | 1..? |
| 44. Observation.component:MeanBP.value[x].system | |
| Control | 1..? |
| Must Support | true |
| Fixed Value | http://unitsofmeasure.org |
| 46. Observation.component:MeanBP.value[x].code | |
| Fixed Value | mm[Hg] |
For information on general constraints and terminology bindings see the full StructureDefinition for this profile.
Blood pressure measurements MUST be represented using the LOINC panel code 85354-9 “Blood pressure panel with all children optional” as the main observation code. The actual measurement values (systolic, diastolic, and mean blood pressure) are captured as three mandatory components within the Observation resource. Each component MUST include a value in mmHg (millimeters of mercury) using the UCUM code mm[Hg].
For privacy and data protection, the subject reference MUST only use pseudonymized or anonymized identifiers. Direct patient identification is not permitted. The patient MUST NOT be identified directly through personally identifiable information such as name, insurance number, or other identifying attributes.
The following object diagram the relationships between the FHIR resources involved in representing Blood Pressure Monitorings according to the HDDT Information Model and the HDDT Blood Pressure Value profile instances of a blood pressure measurement. For readability reasons, some external references are only shown for the first measurement. Elements that are not mandatory or MS for the MIV Blood Pressure Monitoring (see Use of HL7 FHIR) have been omitted.
The following code example shows the concrete JSON representation of the HDDT Blood Pressure Value resource shown in the object diagram.
{
"resourceType" : "Observation",
"id" : "example-blood-pressure-value",
"meta" : {
"profile" : [
🔗 "https://gematik.de/fhir/hddt/StructureDefinition/hddt-blood-pressure-value"
]
},
"status" : "final",
"category" : [
{
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/observation-category",
"code" : "vital-signs"
}
]
}
],
"code" : {
"coding" : [
{
"system" : "http://loinc.org",
"code" : "85354-9",
"display" : "Blood pressure panel with all children optional"
}
]
},
"subject" : {
🔗 "reference" : "Patient/patientExample"
},
"effectiveDateTime" : "2025-10-23T09:15:00+02:00",
"interpretation" : [
{
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
"code" : "N",
"display" : "Normal"
}
]
}
],
"device" : {
🔗 "reference" : "Device/example-device-blood-pressure-cuff"
},
"component" : [
{
"code" : {
"coding" : [
{
"system" : "http://loinc.org",
"code" : "8480-6",
"display" : "Systolic blood pressure"
}
]
},
"valueQuantity" : {
"value" : 120,
"unit" : "mm[Hg]",
"system" : "http://unitsofmeasure.org",
"code" : "mm[Hg]"
}
},
{
"code" : {
"coding" : [
{
"system" : "http://loinc.org",
"code" : "8462-4",
"display" : "Diastolic blood pressure"
}
]
},
"valueQuantity" : {
"value" : 80,
"unit" : "mm[Hg]",
"system" : "http://unitsofmeasure.org",
"code" : "mm[Hg]"
}
},
{
"code" : {
"coding" : [
{
"system" : "http://loinc.org",
"code" : "8478-0",
"display" : "Mean blood pressure"
}
]
},
"valueQuantity" : {
"value" : 93,
"unit" : "mm[Hg]",
"system" : "http://unitsofmeasure.org",
"code" : "mm[Hg]"
}
}
]
}
Manufacturers of Device Data Recorders that support the MIV Blood Pressure Monitoring MUST implement a read interaction on the /Observation endpoint of the FHIR Resource Server. The implementation MUST conform to the HDDT Generic FHIR API. Observations shared through the read interaction MUST comply with the HDDT Blood Pressure Value profile.
Manufacturers of Device Data Recorders that support the MIV Blood Pressure Monitoring 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. Observations shared through the search interaction MUST comply with the HDDT Blood Pressure Value profile.
Blood pressure measurements use a panel code 85354-9 Blood pressure panel with all children optional as the main Observation.code, while the actual measurement values (8480-6 Systolic blood pressure, 8462-4 Diastolic blood pressure, 8478-0 Mean blood pressure) are captured in Observation.component elements. To search for specific component types (e.g., systolic blood pressure with LOINC code 8480-6), use the component-code search parameter. See the example below for details.
Request: GET /Observation/example-blood-pressure-value
Description: With FHIR-read interactions, a client can access a single resource instance by querying its internal ID. 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-blood-pressure-value",
"meta" : {
"profile" : [
🔗 "https://gematik.de/fhir/hddt/StructureDefinition/hddt-blood-pressure-value"
]
},
"status" : "final",
"category" : [
{
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/observation-category",
"code" : "vital-signs"
}
]
}
],
"code" : {
"coding" : [
{
"system" : "http://loinc.org",
"code" : "85354-9",
"display" : "Blood pressure panel with all children optional"
}
]
},
"subject" : {
🔗 "reference" : "Patient/patientExample"
},
"effectiveDateTime" : "2025-10-23T09:15:00+02:00",
"interpretation" : [
{
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
"code" : "N",
"display" : "Normal"
}
]
}
],
"device" : {
🔗 "reference" : "Device/example-device-blood-pressure-cuff"
},
"component" : [
{
"code" : {
"coding" : [
{
"system" : "http://loinc.org",
"code" : "8480-6",
"display" : "Systolic blood pressure"
}
]
},
"valueQuantity" : {
"value" : 120,
"unit" : "mm[Hg]",
"system" : "http://unitsofmeasure.org",
"code" : "mm[Hg]"
}
},
{
"code" : {
"coding" : [
{
"system" : "http://loinc.org",
"code" : "8462-4",
"display" : "Diastolic blood pressure"
}
]
},
"valueQuantity" : {
"value" : 80,
"unit" : "mm[Hg]",
"system" : "http://unitsofmeasure.org",
"code" : "mm[Hg]"
}
},
{
"code" : {
"coding" : [
{
"system" : "http://loinc.org",
"code" : "8478-0",
"display" : "Mean blood pressure"
}
]
},
"valueQuantity" : {
"value" : 93,
"unit" : "mm[Hg]",
"system" : "http://unitsofmeasure.org",
"code" : "mm[Hg]"
}
}
]
}
Request: GET /Observation?component-code=8480-6
Description: Obtain all Observations that contain a component with the LOINC code 8480-6 for Systolic blood pressure. 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": "7483defc-9e6c-5bca-bf7c-76ecc4941293",
"type": "searchset",
"entry": [
{
"fullUrl": "https://himi.example.com/fhir/Observation/example-blood-pressure-value",
"resource": {
"resourceType": "Observation",
"id": "example-blood-pressure-value",
"meta": {
"profile": [
"https://gematik.de/fhir/hddt/StructureDefinition/hddt-blood-pressure-value"
]
},
"status": "final",
"category": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "vital-signs"
}
]
}
],
"code": {
"coding": [
{
"code": "85354-9",
"system": "http://loinc.org",
"display": "Blood pressure panel with all children optional"
}
]
},
"subject": {
"reference": "Patient/patientExample"
},
"effectiveDateTime": "2025-10-23T09:15:00+02:00",
"device": {
"reference": "Device/example-device-blood-pressure-cuff"
},
"interpretation": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
"code": "N",
"display": "Normal"
}
]
}
],
"component": [
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8480-6",
"display": "Systolic blood pressure"
}
]
},
"valueQuantity": {
"value": 120,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8462-4",
"display": "Diastolic blood pressure"
}
]
},
"valueQuantity": {
"value": 80,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8478-0",
"display": "Mean blood pressure"
}
]
},
"valueQuantity": {
"value": 93,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
}
]
},
"search": {
"mode": "match"
}
}
]
}
Request: GET /Observation?component-code=8480-6&component-value-quantity=gt130
Description: Search for all blood pressure observations where the systolic blood pressure component (LOINC code 8480-6) AND any component value (which does not necessarily have to be systolic blood pressure) is greater than 130 mmHg.
Note: This query searches for observations that contain a component with the code for systolic blood pressure AND any component value greater than 130. However, these conditions are evaluated independently - the component with value >130 does not need to be the systolic blood pressure component. To search for observations where specifically the systolic blood pressure component has a value greater than 130, use the combined parameter: /Observation?component-code-value-quantity=http://loinc.org|8480-6$gt130
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": "a8f3c21d-4b9e-5fda-ab2c-98ecc5043487",
"type": "searchset",
"entry": [
{
"fullUrl": "https://himi.example.com/fhir/Observation/example-blood-pressure-value-1",
"resource": {
"resourceType": "Observation",
"id": "example-blood-pressure-value-1",
"meta": {
"profile": [
"https://gematik.de/fhir/hddt/StructureDefinition/hddt-blood-pressure-value"
]
},
"status": "final",
"category": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "vital-signs"
}
]
}
],
"code": {
"coding": [
{
"code": "85354-9",
"system": "http://loinc.org",
"display": "Blood pressure panel with all children optional"
}
]
},
"subject": {
"reference": "Patient/patientExample"
},
"effectiveDateTime": "2025-10-24T14:30:00+02:00",
"device": {
"reference": "Device/example-device-blood-pressure-cuff"
},
"interpretation": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
"code": "H",
"display": "High"
}
]
}
],
"component": [
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8480-6",
"display": "Systolic blood pressure"
}
]
},
"valueQuantity": {
"value": 145,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8462-4",
"display": "Diastolic blood pressure"
}
]
},
"valueQuantity": {
"value": 92,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8478-0",
"display": "Mean blood pressure"
}
]
},
"valueQuantity": {
"value": 109,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
}
]
},
"search": {
"mode": "match"
}
},
{
"fullUrl": "https://himi.example.com/fhir/Observation/example-blood-pressure-value-2",
"resource": {
"resourceType": "Observation",
"id": "example-blood-pressure-value-2",
"meta": {
"profile": [
"https://gematik.de/fhir/hddt/StructureDefinition/hddt-blood-pressure-value"
]
},
"status": "final",
"category": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "vital-signs"
}
]
}
],
"code": {
"coding": [
{
"code": "85354-9",
"system": "http://loinc.org",
"display": "Blood pressure panel with all children optional"
}
]
},
"subject": {
"reference": "Patient/patientExample"
},
"effectiveDateTime": "2025-10-25T08:45:00+02:00",
"device": {
"reference": "Device/example-device-blood-pressure-cuff"
},
"interpretation": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
"code": "H",
"display": "High"
}
]
}
],
"component": [
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8480-6",
"display": "Systolic blood pressure"
}
]
},
"valueQuantity": {
"value": 138,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8462-4",
"display": "Diastolic blood pressure"
}
]
},
"valueQuantity": {
"value": 88,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8478-0",
"display": "Mean blood pressure"
}
]
},
"valueQuantity": {
"value": 105,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
}
]
},
"search": {
"mode": "match"
}
}
]
}
Request: GET /Observation?date=ge2025-10-22&_include=Observation:device
Description: This query asks the server for all Observations since 2025-10-22, and also requests that the server include resource instances referenced by Observation.device.
Response: Returned object is a Bundle containing all Observation resource instances matching the search criteria, and all referenced Device resources.
{
"resourceType": "Bundle",
"id": "87dbf79c-fb81-5cda-ce8e-87fdd5052395",
"type": "searchset",
"entry": [
{
"fullUrl": "https://himi.example.com/fhir/Observation/example-blood-pressure-value",
"resource": {
"resourceType": "Observation",
"id": "example-blood-pressure-value",
"meta": {
"profile": [
"https://gematik.de/fhir/hddt/StructureDefinition/hddt-blood-pressure-value"
]
},
"status": "final",
"category": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "vital-signs"
}
]
}
],
"code": {
"coding": [
{
"code": "85354-9",
"system": "http://loinc.org",
"display": "Blood pressure panel with all children optional"
}
]
},
"subject": {
"reference": "Patient/patientExample"
},
"effectiveDateTime": "2025-10-23T09:15:00+02:00",
"device": {
"reference": "Device/example-device-blood-pressure-cuff"
},
"interpretation": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
"code": "N",
"display": "Normal"
}
]
}
],
"component": [
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8480-6",
"display": "Systolic blood pressure"
}
]
},
"valueQuantity": {
"value": 120,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8462-4",
"display": "Diastolic blood pressure"
}
]
},
"valueQuantity": {
"value": 80,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8478-0",
"display": "Mean blood pressure"
}
]
},
"valueQuantity": {
"value": 93,
"unit": "mm[Hg]",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
}
]
},
"search": {
"mode": "match"
}
},
{
"fullUrl": "https://himi.example.com/fhir/Device/example-device-blood-pressure-cuff",
"resource": {
"resourceType": "Device",
"id": "example-device-blood-pressure-cuff",
"meta": {
"profile": [
"https://gematik.de/fhir/hddt/StructureDefinition/hddt-personal-health-device"
]
},
"status": "active",
"type": {
"coding": [
{
"code": "528391",
"system": "urn:iso:std:iso:11073:10101",
"display": "MDC_DEV_SPEC_PROFILE_BP"
}
]
},
"definition": {
"reference": "DeviceDefinition/device-definition-blood-pressure-cuff-001"
},
"deviceName": [
{
"name": "BP Cuff Pro",
"type": "user-friendly-name"
}
],
"modelNumber": "Digital BT 2",
"manufacturer": "HealthTech GmbH",
"serialNumber": "BPC0011223345",
"expirationDate": "2027-12-15"
},
"search": {
"mode": "include"
}
}
]
}