AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

API für Laborergebnisse: HL7 v2, FHIR und LOINC

Wie Laborergebnisse als HL7 v2 und FHIR R4 Daten reisen, was ein Ergebnis tragen muss und wie man Laborberichte in eine FHIR-Akte erhält, mit einem realen Beispiel.

Eine API für Laborergebnisse liefert Laborergebnisse als strukturierte Daten – Testcode, Wert, Einheit, Referenzbereich, Status und Zeit – anstelle eines PDFs, damit Software sie speichern, vergleichen, grafisch darstellen und teilen kann. Heute werden diese Daten in drei Formen übertragen: HL7 v2 ORU^R01-Nachrichten (immer noch das Rückgrat zwischen Laboren und Krankenhäusern), HL7 FHIR R4 Observation und DiagnosticReport-Ressourcen (das Format moderner APIs) sowie labs-spezifische CSV-, JSON- oder PDF-Exporte. Diese Seite erklärt, wie die Teile zusammenpassen, was eine gute Laborergebnis-API enthalten muss und wie Labordaten mit Anpheros in den FHIR-Datensatz eines Patienten aufgenommen werden.

Wer tauscht Laborergebnisse aus und in welchem Format

Von → Nach Übliches Format heute Anmerkungen
Labor → Krankenhaus- oder Kliniksystem HL7 v2 ORU^R01 (in den USA oft gemäß dem HL7 v2.5.1 Laboratory Results Interface guide) Bestellungen gehen in die andere Richtung als ORM/OML-Nachrichten
Labor → Gesundheitsamt HL7 v2 elektronische Laborberichterstattung, zunehmend FHIR Nur meldepflichtige Erkrankungen
Kliniksystem → Patienten-App FHIR R4 über eine Patientenzugriffs-API In den USA stellen zertifizierte EHRs Laborergebnisse als FHIR (US Core) bereit; in der EU listet der European Health Data Space Laborergebnisse unter seinen priorisierten Datenkategorien auf
Labor → Patient PDF-Bericht, Portal, manchmal CSV Das Format, das die meisten Patienten tatsächlich erhalten
App → KI-Modell Strukturierter Kontext, aufgebaut aus Observations Benötigt Codes und Einheiten, um zuverlässig zu sein

Die Richtung ist wichtig: Ein Laborinformationssystem (LIS) ist die Quelle der Wahrheit für ein Ergebnis, und jedes nachgelagerte System behält eine Kopie. Was die Kopien vertrauenswürdig macht, ist, dass jede den Code, die Einheit, den Bereich und den Ursprung des Wertes beibehält.

Was ein Laborergebnis mitführen muss

Ein Ergebnis, das nur "Glukose 126" besagt, kann nicht sicher interpretiert werden. Ein vollständiges Ergebnis enthält:

In FHIR R4 ist jedes Ergebnis eine Observation mit category = laboratory, und der Bericht, der sie gruppiert, ist ein DiagnosticReport, der die Observations in result auflistet. Gültige Beispiele für beide, mit den Fehlern, die Validatoren am häufigsten melden, finden Sie in den FHIR R4 JSON-Beispielen — siehe auch das DiagnosticReport-Beispiel.

HL7 v2 und FHIR nebeneinander

Dasselbe Lipidpanel-Ergebnis, wie es die meisten Labore heute senden und wie eine API es speichern sollte:

OBX|1|NM|2093-3^Cholesterol^LN||212|mg/dL|<200|H|||F|||20261002074500
HL7 v2 Feld Bedeutung FHIR R4 Observation Element
OBX-3 2093-3^Cholesterol^LN Test, kodiert in LOINC code.coding (System http://loinc.org)
OBX-5 212, OBX-2 NM Numerischer Wert valueQuantity.value
OBX-6 mg/dL Einheit valueQuantity.unit
OBX-7 <200 Referenzbereich referenceRange.high
OBX-8 H Auffälligkeitskennzeichen interpretation
OBX-11 F Endergebnis status = final
OBX-14 Beobachtungszeitpunkt effectiveDateTime

Die Konvertierung zwischen den beiden ist hauptsächlich eine Feldzuordnung. Die schwierigen Teile liegen woanders: Labore, die ihre eigenen Codes anstelle von LOINC senden, Zahlen, die als Text geschrieben sind ("6,4", "<5"), Bereiche in verschiedenen Notationen und Berichte, die nach einem Timeout erneut gesendet werden. Wie man medizinische Daten normalisiert behandelt diese im Detail.

Empfangen von Laborergebnissen in einen FHIR-Datensatz mit Anpheros

Anpheros speichert den Datensatz jedes Patienten als HL7 FHIR R4 und verfügt über einen Labor-Konnektor: Eine Anfrage nimmt einen gesamten Bericht als HL7 v2, CSV oder JSON entgegen und gibt Laborbeobachtungen (Observations) mit LOINC-Codes, Referenzbereichen, Interpretationen und Herkunftsinformationen zurück.

curl -s -X POST "https://platform.anpheros.com/v1/patients/$PID/labs/import" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: x-application/hl7-v2+er7" \
  -H "X-Anpheros-Source-System: springfield-lis" \
  --data-binary @lipid-panel.hl7

Für ein dreizeiliges Lipidpanel (Cholesterin, HDL, Triglyceride) lautet die Antwort einer lokalen Ausführung der Plattform:

{
  "created": 3, "skipped": 0, "unmapped": [], "warnings": [],
  "observations": [
    {"id": "26ed9219-…", "marker": "Cholesterol", "code": "2093-3", "system": "http://loinc.org",
     "value": 212.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"},
    {"id": "2633d1d4-…", "marker": "HDL cholesterol", "code": "2085-9", "system": "http://loinc.org",
     "value": 48.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"},
    {"id": "a02520bb-…", "marker": "Triglyceride", "code": "2571-8", "system": "http://loinc.org",
     "value": 165.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"}
  ]
}

Jedes gespeicherte Ergebnis ist eine Standard-FHIR R4 Observation, die von jedem FHIR-Client gelesen werden kann:

{
  "resourceType": "Observation",
  "status": "final",
  "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "laboratory"}]}],
  "code": {"coding": [{"system": "http://loinc.org", "code": "2093-3",
                        "display": "Cholesterol [Mass/volume] in Serum or Plasma"}], "text": "Cholesterol"},
  "subject": {"reference": "Patient/4c3062d9-…"},
  "effectiveDateTime": "2026-10-02T07:45:00Z",
  "valueQuantity": {"value": 212.0, "unit": "mg/dL"},
  "interpretation": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", "code": "H"}]}],
  "referenceRange": [{"high": {"value": 200.0, "unit": "mg/dL"}}]
}

Das erneute Senden derselben Nachricht erstellt nichts Neues ("created": 0, "skipped": 3): Jede Zeile erhält eine stabile Kennung aus der Berichts-ID, dem Code, dem Datum und dem Wert. Marker, die die Plattform nicht auf LOINC abbilden kann, behalten den Code des Labors und werden in unmapped zurückgegeben, sodass Sie die Zuordnung an der Quelle korrigieren können.

Das Zurücklesen von Ergebnissen ist eine Standard-FHIR-Suche:

curl -s "https://platform.anpheros.com/fhir/R4/Observation?patient=$PID&category=laboratory&code=http://loinc.org|2093-3" \
  -H "Authorization: Bearer $KEY"

Andere Wege für den Ein- und Ausstieg derselben Daten:

Der vollständige Leitfaden mit einem CSV-Bericht, einer HL7 v2-Nachricht, nicht zugeordneten Markern und erneut gesendeten Berichten für einen synthetischen Patienten ist das Tutorial How to import laboratory results into a FHIR record.

Ergebnisse prüfen, bevor Sie sie senden

Der kostenlose FHIR R4 Validator prüft die Struktur einer Observation und die erforderlichen Wertesätze. Mit dem eu-lab Profil prüft er außerdem, was ein Laborergebnis enthalten sollte: die laboratory Kategorie, einen LOINC-Code, ein Subjekt, einen finalen Status, eine Zeit, einen Wert, eine UCUM-Einheit und einen Referenzbereich. Dieselben Prüfungen werden auf der Plattform über POST /fhir/R4/Observation/$validate?profile=eu-lab durchgeführt.

Auswahl einer API für Laborergebnisse: Eine Checkliste

Was Anpheros nicht tut

Anpheros ist kein Laborinformationssystem und nicht mit kommerziellen Labornetzwerken verbunden: Das Labor, die Klinik oder die App des Patienten sendet den Bericht. Es leitet keine Laboraufträge weiter, liest keine PDF-Berichte über diese API (die Anpheros Daily App extrahiert Ergebnisse von Fotos und PDFs auf der Patientenseite) und interpretiert keine Ergebnisse klinisch. Einheiten werden so gespeichert, wie das Labor sie sendet; die Umwandlung in UCUM-Codes obliegt dem Absender, wie in Wie medizinische Daten normalisiert werden beschrieben.

Häufig gestellte Fragen

Was ist eine Lab Results API?

Eine Schnittstelle, die es Software ermöglicht, Laborergebnisse als strukturierte Daten zu senden oder zu empfangen – ein kodierter Test, ein Wert mit einer Einheit, ein Referenzbereich, ein Status und eine Zeit – anstatt als Dokument. Moderne Lab Results APIs verwenden HL7 FHIR R4 Observation und DiagnosticReport Ressourcen; die meisten Labore geben immer noch HL7 v2 ORU^R01 Nachrichten aus.

Welches Codesystem identifiziert Labortests?

LOINC. Jeder LOINC-Code benennt das Analyten, die Probe und oft die Methode, sodass 2345-7 (Glukose in Serum oder Plasma) und 2339-0 (Glukose in Vollblut) unterschiedliche Ergebnisse sind. Einheiten werden am besten in UCUM ausgedrückt.

Was ist der Unterschied zwischen einem Observation und einem DiagnosticReport?

Ein Observation ist ein einzelnes Ergebnis, z. B. Cholesterin 212 mg/dL. Ein DiagnosticReport ist der Bericht als Ganzes – das bestellte Panel, wer es ausgestellt hat und wann – und listet seine Observations in result auf.

Kann ich HL7 v2 Lab-Nachrichten in einen FHIR-Server importieren?

Ja. Jedes OBX-Segment wird einem Observation zugeordnet (OBX-3 zu code, OBX-5 und OBX-6 zu valueQuantity, OBX-7 zu referenceRange, OBX-8 zu interpretation). Der Anpheros Lab Connector erledigt dies in einer Anfrage und speichert die Berichts-ID des Labors in Provenance.

Wie vermeide ich doppelte Laborergebnisse, wenn ein Bericht erneut gesendet wird?

Geben Sie jedem Ergebnis eine stabile Kennung, die sich aus dem Bericht, dem Test, der Zeit und dem Wert ableitet, und überspringen Sie Zeilen, deren Kennung bereits vorhanden ist. Der Anpheros Lab Connector tut dies automatisch und meldet die Anzahl als skipped.

Verwandte Themen

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy