AnpherosAnpheros PlatformDevelopers

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

API rezultate de laborator: HL7 v2, FHIR și LOINC

Cum circulă rezultatele de laborator ca date HL7 v2 și FHIR R4, ce trebuie să conțină un rezultat și cum să primiți rapoarte de laborator într-un dosar FHIR, cu un exemplu real.

O API pentru rezultate de laborator livrează rezultatele de laborator ca date structurate — codul testului, valoarea, unitatea, intervalul de referință, starea și timpul — în loc de un PDF, astfel încât software-ul să le poată stoca, compara, grafice și partaja. Astăzi, aceste date circulă sub trei forme: mesaje HL7 v2 ORU^R01 (încă baza de comunicație între laboratoare și spitale), resurse HL7 FHIR R4 Observation și DiagnosticReport (formatul API-urilor moderne) și exporturi specifice laboratorului CSV, JSON sau PDF. Această pagină explică cum se potrivesc piesele, ce trebuie să conțină o API bună pentru rezultate de laborator și cum să primiți date de laborator într-un dosar FHIR al pacientului cu Anpheros.

Cine schimbă rezultatele de laborator și în ce format

De la → către Format uzual astăzi Note
Laborator → sistem spitalicesc sau clinic HL7 v2 ORU^R01 (în SUA, adesea conform ghidului HL7 v2.5.1 Laboratory Results Interface) Comenzile merg în direcția opusă ca mesaje ORM/OML
Laborator → agenție de sănătate publică Raportare electronică de laborator HL7 v2, din ce în ce mai mult FHIR Doar condiții raportabile
Sistem clinic → aplicație pacient FHIR R4 printr-un API de acces pentru pacienți În SUA, EHR-urile certificate expun rezultatele de laborator ca FHIR (US Core); în UE, European Health Data Space listează rezultatele de laborator printre categoriile sale prioritare de date
Laborator → pacient Raport PDF, portal, uneori CSV Formatul pe care majoritatea pacienților îl primesc de fapt
Aplicație → model AI Context structurat construit din Observații Necesită coduri și unități pentru a fi fiabil

Direcția contează: un sistem informațional de laborator (LIS) este sursa de adevăr pentru un rezultat, iar fiecare sistem ulterior păstrează o copie. Ceea ce face copiile de încredere este faptul că fiecare dintre ele păstrează codul, unitatea, intervalul și originea valorii.

Ce trebuie să conțină un rezultat de laborator

Un rezultat care spune doar „Glucoză 126” nu poate fi interpretat în siguranță. Un rezultat complet are:

În FHIR R4, fiecare rezultat este un Observation cu category = laboratory, iar raportul care le grupează este un DiagnosticReport care listează Observațiile în result. Exemple valide ale ambelor, cu greșelile pe care validatorii le raportează cel mai des, se găsesc în Exemple JSON FHIR R4 — vezi și exemplul DiagnosticReport.

HL7 v2 și FHIR unul lângă altul

Același rezultat al panelului lipidic, așa cum îl trimit majoritatea laboratoarelor astăzi și cum ar trebui să îl stocheze un API:

OBX|1|NM|2093-3^Cholesterol^LN||212|mg/dL|<200|H|||F|||20261002074500
Câmp HL7 v2 Semnificație Element FHIR R4 Observation
OBX-3 2093-3^Cholesterol^LN Test, codificat în LOINC code.coding (sistem http://loinc.org)
OBX-5 212, OBX-2 NM Valoare numerică valueQuantity.value
OBX-6 mg/dL Unitate valueQuantity.unit
OBX-7 <200 Interval de referință referenceRange.high
OBX-8 H Flag de anomalie interpretation
OBX-11 F Rezultat final status = final
OBX-14 Timpul observației effectiveDateTime

Conversia între cele două implică în mare parte maparea câmpurilor. Părțile dificile sunt în altă parte: laboratoare care trimit propriile coduri în loc de LOINC, numere scrise ca text ("6,4", "<5"), intervale în mai multe notații și rapoarte care sunt trimise din nou după un timeout. Cum să normalizați datele medicale acoperă aceste aspecte în detaliu.

Primirea rezultatelor de laborator într-un fișier FHIR cu Anpheros

Anpheros stochează fișierul fiecărui pacient ca HL7 FHIR R4 și are un conector de laborator: o singură cerere preia un raport complet ca HL7 v2, CSV sau JSON și returnează Observații de laborator cu coduri LOINC, intervale de referință, interpretare și proveniență.

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

Pentru un panou lipidic de trei linii (colesterol, HDL, trigliceride), răspunsul, dintr-o rulare locală a platformei, este:

{
  "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"}
  ]
}

Fiecare rezultat stocat este o Observație FHIR R4 standard, citibilă de orice client FHIR:

{
  "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"}}]
}

Trimiterea aceluiași mesaj din nou nu creează nimic nou ("created": 0, "skipped": 3): fiecare rând primește un identificator stabil din ID-ul raportului, codul, data și valoarea. Marcajele pe care platforma nu le poate mapa la LOINC păstrează codul laboratorului și revin în unmapped, astfel încât să puteți corecta maparea la sursă.

Citirea rezultatelor înapoi este o căutare FHIR standard:

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

Alte modalități de intrare și ieșire din aceleași date:

Parcurgerea completă, cu un raport CSV, un mesaj HL7 v2, marcaje nemapate și rapoarte retrimise pe un pacient sintetic, este tutorialul Cum să importați rezultatele de laborator într-un fișier FHIR.

Verificați rezultatele înainte de a le trimite

Validatul gratuit FHIR R4 validator verifică structura unei observații și seturile de valori necesare, iar cu profilul eu-lab verifică, de asemenea, ce ar trebui să conțină un rezultat de laborator: categoria laboratory, un cod LOINC, un subiect, un status final (final-type), un timp, o valoare, o unitate UCUM și un interval de referință. Aceleași verificări rulează pe platformă prin POST /fhir/R4/Observation/$validate?profile=eu-lab.

Alegerea unui API pentru rezultate de laborator: o listă de verificare

Ce nu face Anpheros

Anpheros nu este un sistem informatic de laborator și nu este conectat la rețele comerciale de laboratoare: laboratorul, clinica sau aplicația pacientului trimite raportul. Nu direcționează comenzi de laborator, nu citește rapoarte PDF prin acest API (aplicația Anpheros Daily extrage rezultatele din fotografii și PDF-uri din partea pacientului) și nu interpretează rezultatele clinic. Unitățile sunt stocate așa cum le trimite laboratorul; conversia lor în coduri UCUM revine expeditorului, așa cum este descris în Cum să normalizați datele medicale.

Întrebări frecvente

Ce este un API pentru rezultate de laborator?

O interfață care permite software-ului să trimită sau să primească rezultate de laborator ca date structurate — un test codificat, o valoare cu o unitate, un interval de referință, un status și un timp — mai degrabă decât ca un document. API-urile moderne pentru rezultate de laborator utilizează resursele Observation și DiagnosticReport din HL7 FHIR R4; majoritatea laboratoarelor emit în continuare mesaje HL7 v2 ORU^R01.

Ce sistem de codificare identifică testele de laborator?

LOINC. Fiecare cod LOINC numește analitul, specimenul și adesea metoda, astfel încât 2345-7 (glucoză în ser sau plasmă) și 2339-0 (glucoză în sânge integral) sunt rezultate diferite. Unitățile sunt cel mai bine exprimate în UCUM.

Care este diferența dintre un Observation și un DiagnosticReport?

Un Observation este un singur rezultat, cum ar fi colesterolul 212 mg/dL. Un DiagnosticReport este raportul în ansamblul său — panelul care a fost comandat, cine l-a emis și când — și listează Observation-urile sale în result.

Pot importa mesaje HL7 v2 de laborator într-un server FHIR?

Da. Fiecare segment OBX se mapează la un Observation (OBX-3 la code, OBX-5 și OBX-6 la valueQuantity, OBX-7 la referenceRange, OBX-8 la interpretation). Conectorul de laborator Anpheros face acest lucru într-o singură cerere și păstrează ID-ul raportului de laborator în Provenance.

Cum evit rezultatele duplicate de laborator atunci când un raport este retrimis?

Acordați fiecărui rezultat un identificator stabil derivat din raport, test, timp și valoare, și omiteți rândurile al căror identificator există deja. Conectorul de laborator Anpheros face acest lucru automat și raportează numărul ca skipped.

Conexe

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