Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Conector de laborator
Trimite un raport complet de laborator ca CSV, HL7 v2 ORU^R01 sau JSON și primește observații de laborator cu coduri LOINC și intervale de referință.
Un laborator (sau oricine deține un raport de laborator) trimite întregul raport într-o singură cerere, iar
platforma transformă fiecare rezultat într-o Observation de laborator a pacientului:
POST /v1/patients/{patient_id}/labs/import
Authorization: Bearer <project key>
Content-Type: text/csv | x-application/hl7-v2+er7 | application/json
X-Anpheros-Source-System: labx (optional; recorded in Provenance)
Idempotency-Key: <report id> (optional; a retry returns the same answer)
Formate
CSV cu un rând de antet; separatori , ; sau tabulator, virgulă zecimală acceptată, date ISO,
DD.MM.YYYY sau DD/MM/YYYY. Coloane recunoscute (română sau engleză): marker
(analiza, test, marker, name) — sau doar o coloană LOINC code, caz în care numele LOINC devine markerul —
valoare (rezultat, valoare, value, result), unitate (um, unitate, unit),
interval de referință (interval, referinta: 70-100, <5, >3.5) sau ref_low/ref_high,
dată (data, recoltare), LOINC opțional (loinc, code), notă.
Analiza;Rezultat;UM;Interval de referinta;Data
Hemoglobina glicozilata (HbA1c);6,4;%;4,0-5,6;01.09.2026
TSH;2,1;mUI/L;0,4-4,0;01.09.2026
HL7 v2 ORU^R01 (text ER7, segmente separate prin CR sau LF): OBX-3 identificator (code^text^LN
este LOINC; un cod local (^L, ^99zzz) sau orice alt sistem de codificare este păstrat ca propriul cod al laboratorului sub
urn:anpheros:lab-code), OBX-5 valoare (NM, SN, sau text),
OBX-6 unitate, OBX-7 interval de referință, OBX-8 flag anormal → interpretation, OBX-11 status,
OBX-14 sau OBR-7 dată; OBR-3/MSH-10 devin ID-ul raportului în Provenance.
Laboratorul. Fiecare rezultat numește cine l-a produs în performer, așa cum cere HL7 Europe Laboratory Report 2.1.0:
organizația pentru care acționați (X-Anpheros-Acting-As), altfel MSH-4 (unitate de expediere) pentru HL7, sau
laboratory în JSON (nivel superior sau per element). Un CSV nu poartă laborator; astfel de rezultate se validează cu un
furnizor lipsă, ceea ce este adevărul.
Rapoarte text, documente și date lipsă. Un raport text trimis o linie per OBX (TX/FT, același OBX-3)
devine un rezultat cu liniile unite. Un document întreg în OBX-5 (ED, sau orice valoare codificată Base64) nu este
stocat ca rezultat; răspunsul avertizează și documentul aparține /documents. Fără OBR-7, rezultatele sunt datate de
OBR-14 (specimen primit), cu un avertisment.
Ore și fusuri orare. O oră v2 fără fus orar este ora locală a expeditorului, nu UTC. Offset-ul trimis cu
OBX-14/OBR-7 (20260901081000+0300) este păstrat (2026-09-01T08:10:00+03:00). Fără unul, se folosește offset-ul de MSH-7
și un avertisment anunță acest lucru; fără offset nicăieri, rezultatul păstrează doar data sa, tot cu un avertisment. Orele CSV
(01.09.2026 08:10) nu poartă fus orar, deci sunt stocate doar ca date. Până la 17 octombrie 2026 astfel de ore au fost
etichetate UTC; rezultatele importate atunci își păstrează identificatorii și sunt recunoscute în continuare când un raport este trimis din nou.
Rezultatele HL7 care sunt încă în așteptare (OBX-11 I), indisponibile (X), șterse (D) sau greșite (W), și segmentele OBX
fără valoare, nu devin Observații; fiecare este numit în warnings.
JSON: {"date": "2026-09-01", "origin": "report-77", "laboratory": "Synevo", "items": [{"marker": "TSH", "value": 2.1, "unit": "mUI/L", "ref_low": 0.4, "ref_high": 4.0, "date": "2026-09-01", "code": "3016-3"}]}.
Ce primiți înapoi
{"created": 3, "skipped": 0, "unmapped": ["Marker foarte rar"], "warnings": [],
"observations": [{"id": "…", "marker": "TSH", "code": "3016-3", "system": "http://loinc.org", "value": 2.1, "unit": "mUI/L", "date": "2026-09-01"}]}
- Markerii sunt mapați la LOINC atunci când raportul oferă un cod LOINC sau numele se potrivește cu terminologia platformei (nume românești și englezești și aliasuri comune). Alții păstrează codul laboratorului sub
urn:anpheros:lab-codecu textul exact din raport și sunt listați înunmappedpentru a putea îmbunătăți maparea din partea dumneavoastră. Un cod propriu al laboratorului este unic doar împreună cu laboratorul său: sistemul sursă este înregistrat în Provenanța fiecărei Observații (X-Anpheros-Source-System). - Numele sunt comparate cu numele și sinonimele LOINC (de exemplu, Hemoglobin A1c, Hemoglobină glicozilată, Colesterol HDL, LDL-C). Un nume care se potrivește cu mai multe concepte sau care poartă un calificativ pe care conceptul nu îl are (urină, non-HDL, liber, raport…), nu este ghicit: păstrează codul laboratorului și este listat în
unmapped. Trimiteți coduri LOINC ori de câte ori sistemul dumneavoastră le are. - Ureea și azotul ureic (BUN) sunt măsurători diferite: Uree / Urea se mapează la uree (LOINC
3091-6, sau22664-7în mmol/L), BUN / Azot ureic / Urea nitrogen la azot ureic (3094-0, sau14937-7în mmol/L). Valorile nu sunt niciodată convertite. - Colesterol LDL: un nume fără metodă se mapează la
2089-1; calculat / calculated / Friedewald la LDL calculat (13457-7); direct la testul direct (18262-6). Metoda este un calificativ, precum direct în Bilirubina directa, care nu este bilirubină totală și păstrează codul laboratorului. - Glucoză: un simplu "Glicemie" / "Glucose" pe un raport de laborator este mapat la ser sau plasmă (LOINC
2345-7); un nume care indică capilar, înțepătură în deget sau sânge integral ("capilar", "sânge integral") la sânge integral (2339-0). Un cod LOINC din raport are întotdeauna prioritate. - Fiecare rând primește un identificator stabil (
urn:anpheros:lab-import:v2) construit din ceea ce spune raportul — ID-ul raportului, numele și codul din raport, data, valoarea și unitatea — niciodată din codul LOINC ales de platformă, astfel încât re-trimiterea aceluiași raport omite rândurile deja importate (skipped), chiar și după îmbunătățirea mapării. Rândurile care diferă în oricare dintre acestea (alt raport, altă dată de colectare, altă valoare) sunt păstrate separat. Rezultatele importate înainte de 14 octombrie 2026 își păstrează identificatorul original și sunt recunoscute după nume, dată, valoare, unitate și ID-ul raportului. Fără un ID de raport (CSV), o astfel de potrivire este raportată înwarnings; trimiteți un ID de raport (HL7OBR-3/MSH-10, JSONorigin) pentru a păstra rapoartele separate. - Fiecare Observație poartă Provenanța cu
author_type = import, sistemul dumneavoastră sursă și ID-ul raportului; webhooks declanșeazăresource.createdper Observație; pacientul vede rezultatele în aplicația sa și orice aplicație la care a consimțit le poate citi. - Până la 500 de rânduri per cerere.
Ambele SDK-uri: labs.importCsv, labs.importHl7, labs.importItems.
Un exemplu practic dintr-un raport CSV și HL7 v2 către Observații FHIR, cu markeri nemapați și rapoarte retrimise: Cum să importați rezultatele de laborator într-un dosar FHIR.
Cum circulă datele de laborator între laboratoare, clinici, aplicații și AI, și la ce să fiți atenți într-un API de rezultate de laborator: API pentru rezultate de laborator.
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card