Observation
Uebersicht
Die Observation-Ressource repraesentiert Messungen und einfache Aussagen ueber einen Patienten. Dazu gehoeren Vitalzeichen (Herzfrequenz, Blutdruck, Temperatur), Laborergebnisse (Blutzucker) und geraeteerfasste Daten (SpO2, Gewicht).
API-Endpunkte
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | /api/monitoreds/{id}/observations/ | Beobachtungen eines Patienten auflisten |
| POST | /api/monitoreds/{id}/observations/ | Beobachtungen erstellen |
| GET | /api/observations/{id}/ | Beobachtungsdetails abrufen |
Datenmodell
| Feld | Typ | Beschreibung |
|---|---|---|
id | integer | Eindeutiger Identifikator |
observation_definition | object | Typ und Methode der Beobachtung |
category | string | Kategorie (z.B. physiological_data) |
value | string | Gemessener Wert |
value_type | string | Datentyp (float, int, etc.) |
value_unit | string | Masseinheit (bpm, celsius, mmHg, etc.) |
issued | datetime | Zeitpunkt der Ausgabe |
effective_datetime | datetime | Zeitpunkt der Messung |
source_id | integer | Quellgeraete-Identifikator |
Beispiel
{
"id": 810,
"observation_definition": {
"observation_name": "heart_rate",
"observation_method": "device"
},
"category": "physiological_data",
"value": "72",
"value_type": "int",
"value_unit": "bpm",
"issued": "2024-01-15T10:30:00Z",
"effective_datetime": "2024-01-15T10:30:00Z",
"source_id": 1
}
Beobachtungstypen
| Name | Einheit | Beschreibung |
|---|---|---|
heart_rate | bpm | Herzfrequenz |
blood_pressure_systolic | mmHg | Systolischer Blutdruck |
blood_pressure_diastolic | mmHg | Diastolischer Blutdruck |
temperature | celsius | Koerpertemperatur |
oxygen_saturation | percentage | SpO2 |
weight | kg | Koerpergewicht |
blood_glucose | mg/dL | Blutzuckerspiegel |
respiratory_rate | breaths/min | Atemfrequenz |
SDK v2 Typisierte Beobachtungen
Bei Verwendung des vitalera SDK v2 werden Beobachtungen als typisierte Klassen anstelle von generischem JSON zurueckgegeben. Dies bietet Kompilierzeitsicherheit und Auto-Vervollstaendigung in Ihrer IDE.
API observation_name | SDK v2 Typisierte Klasse | Schluesselfelder |
|---|---|---|
heart_rate | HeartRateObservation | heartRate (bpm) |
blood_pressure_systolic / blood_pressure_diastolic | BloodPressureObservation | systolic, diastolic (mmHg), pulseRate (bpm) |
temperature | TemperatureObservation | temperature (celsius) |
oxygen_saturation | OxygenSaturationObservation | spo2 (%) |
weight | WeightObservation | weight (kg) |
blood_glucose | BloodGlucoseObservation | glucose (mg/dL) |
respiratory_rate | RespiratoryRateObservation | respiratoryRate (breaths/min) |
Beispiel (Kotlin):
device.collect().collect { observation ->
when (observation) {
is BloodPressureObservation ->
println("BP: ${observation.systolic}/${observation.diastolic} mmHg")
is HeartRateObservation ->
println("HR: ${observation.heartRate} bpm")
is OxygenSaturationObservation ->
println("SpO2: ${observation.spo2}%")
}
}
Beispiel (Swift):
for try await observation in device.collect() {
if let bp = observation as? BloodPressureObservation {
print("BP: \(bp.systolic)/\(bp.diastolic) mmHg")
} else if let hr = observation as? HeartRateObservation {
print("HR: \(hr.heartRate) bpm")
} else if let spo2 = observation as? OxygenSaturationObservation {
print("SpO2: \(spo2.spo2)%")
}
}
Die vollstaendige Liste von 30+ typisierten Beobachtungsklassen finden Sie in der SDK-Uebersicht.