# HL7 v2 und FHIR für klinische Dashboards

> Von einer HL7 v2 ORU^R01 Labornachricht zu einem Dashboard-Tile: FHIR Observations mit Bereichen und Flags, signierte Webhooks, keine Duplikate – und warum dies kein Bedside Monitoring ist.

Source: https://developers.anpheros.com/de/guides/clinical-dashboard-hl7-fhir

**Ein klinisches Dashboard benötigt Ergebnisse als strukturierte, kodierte Daten in dem Moment, in dem sie gemeldet werden – Test, Wert, Einheit, Referenzbereich und Flag – nicht PDFs, die es lesen muss.** Labore senden die meisten Ergebnisse immer noch als HL7 v2 ORU^R01 Nachrichten, während Dashboards am einfachsten auf FHIR R4 Observations basieren. Anpheros sitzt dazwischen: Ein Laborsystem postet die HL7 v2 Nachricht (oder einen CSV- oder JSON-Bericht) über HTTPS, jedes Ergebnis wird zu einer FHIR Observation mit seinem Code (LOINC, wenn das Labor es sendet), Wert und Referenzbereich, und ein signierter Webhook teilt Ihrem Dashboard mit, dass neue Ergebnisse eingetroffen sind.

<!-- visual:dashboard-pipeline -->

## Was das Dashboard empfängt

Jedes OBX-Segment der Nachricht wird zu einer Labor-Observation:

| HL7 v2 OBX-Feld | FHIR R4 Observation | Auf dem Dashboard |
|---|---|---|
| OBX-3 Testcode | `code` (LOINC, wenn das Labor es sendet; ein lokaler Code wird als Code des Labors beibehalten) | Testname; LOINC macht ihn vergleichbar über Labore hinweg |
| OBX-5 Wert, OBX-6 Einheit | `valueQuantity` (UCUM-Einheit) | Die Zahl und ihre Einheit |
| OBX-7 Referenzbereich | `referenceRange` | Der Normalbereich |
| OBX-8 Abnormalitäts-Flag | `interpretation` (H, L, …) | Die rote oder blaue Markierung |
| OBX-14 Zeit | `effectiveDateTime` | Wann die Probe entnommen wurde |

<!-- visual:dashboard-mock -->

## Nachricht importieren und darauf reagieren

Senden Sie die Nachricht für einen Patienten, den Sie erstellt haben (oder für den Sie eine Berechtigung besitzen):

```ts
import { readFile } from 'node:fs/promises';
import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });   // a sandbox key, sk_test_…
const message = await readFile('oru_r01.hl7', 'utf8');
const result = await anpheros.labs.importHl7(patientId, message, { sourceSystem: 'lab-lis' });
console.log(result);   // created, skipped and unmapped counts
```

Lassen Sie die Plattform dann Ihr Dashboard-Backend aufrufen, anstatt es abzufragen:

```ts
await anpheros.webhooks.create('https://dashboard.example.org/anpheros/hook', { events: ['resource.created'] });
```

Jede Zustellung ist signiert (verifizieren Sie sie mit `verifyWebhookSignature` aus dem SDK) und wird wiederholt, wenn Ihr Server nicht antwortet. Das Ereignis trägt den Ressourcentyp, die ID und den Patienten; lesen Sie die neuen Observations und aktualisieren Sie die Kachel. Wiederholte Übertragungen werden übersprungen, sodass ein Labor, das bei einem Timeout erneut überträgt, keine doppelten Zeilen auf dem Bildschirm erzeugt.

## Auswahl von HL7 v2 oder FHIR für jeden Link

| Link | Verwendung | Warum |
|---|---|---|
| Labor → Datenschicht | HL7 v2 ORU^R01 (oder CSV/JSON) | Was Laborsysteme bereits ausgeben; keine Änderung auf deren Seite |
| Datenschicht → Dashboard | FHIR R4 Observation + Webhooks | Kodiertes, versioniertes JSON, das Ihr Frontend direkt lesen kann |
| Dashboard → andere Apps | FHIR R4, unter Zustimmung des Patienten | Ein Standard für jeden Konsumenten |

## Was dies nicht ist

- **Kein Feed von einem Patientenmonitor.** Anpheros akzeptiert Laborberichte über HTTPS. Es empfängt keine kontinuierlichen Wellenformen oder Gerätestreams von Intensivstationsmonitoren und ist kein Alarmsystem: Alarme, die die Versorgung beeinflussen, benötigen ein zertifiziertes klinisches System.
- **Keine MLLP-Interface-Engine.** Nachrichten kommen über HTTPS an; wenn Ihr Labor nur MLLP über TCP spricht, leitet eine vorgeschaltete Interface-Engine diese weiter.
- **Ein HL7 v2 Nachrichtentyp.** ORU^R01 Laborergebnisse werden akzeptiert; Bestellungen (ORM/OML) und ADT-Nachrichten nicht.

## Häufig gestellte Fragen

### Kann ein Dashboard HL7 v2-Laborergebnisse direkt lesen?
Das ist möglich, aber jedes Dashboard benötigt dann seinen eigenen HL7 v2-Parser, Code-Mapping und Deduplizierung. Eine einmalige Konvertierung in FHIR R4 Observations mit LOINC-Codes liefert jedem Bildschirm die gleichen sauberen Daten.

### Wie schnell erreichen importierte Ergebnisse das Dashboard?
Die Importanfrage wird zurückgegeben, wenn die Observations gespeichert sind, und gleichzeitig wird ein `resource.created` Webhook für jede von ihnen in die Warteschlange gestellt. Die Zustellung wird wiederholt, falls Ihr Endpunkt nicht verfügbar ist.

### Wie werden abnormale Ergebnisse gekennzeichnet?
OBX-8 wird zum `interpretation` der Observation (z. B. H oder L) und OBX-7 zu ihrem `referenceRange`, sodass das Dashboard sowohl die Kennzeichnung als auch den Normalbereich anzeigen kann.

### Unterstützt Anpheros die ICU-Überwachung?
Nein. Es speichert Labor- und klinische Ergebnisse und benachrichtigt Ihre Systeme über neue Daten; die kontinuierliche Patientenüberwachung am Bett und klinische Alarme bleiben bei zertifizierten medizinischen Geräten.

<!-- visual:cta-dashboard -->

## Verwandte Themen

- [Lab results API: HL7 v2, FHIR und LOINC](https://developers.anpheros.com/de/guides/lab-results-api)
- [Importieren von Laborergebnissen in einen FHIR-Datensatz](https://developers.anpheros.com/de/guides/import-lab-results-fhir)
- [Lab-Konnektor](https://developers.anpheros.com/de/guides/lab-connector): die Endpunktreferenz
- [FHIR vs. HL7 v2: Praktische Unterschiede](https://developers.anpheros.com/de/guides/fhir-vs-hl7-v2)
- [Remote Patient Monitoring mit FHIR](https://developers.anpheros.com/de/guides/remote-patient-monitoring-fhir)
- [Webhooks](https://developers.anpheros.com/de/guides/webhooks)
