Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Connecteur de laboratoire
Envoyez un rapport de laboratoire complet en CSV, HL7 v2 ORU^R01 ou JSON et obtenez des Observations de laboratoire avec des codes LOINC et des plages de référence.
Un laboratoire (ou toute personne détenant un rapport de laboratoire) envoie le rapport complet en une seule requête et la
plateforme transforme chaque résultat en un Observation de laboratoire du patient :
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)
Formats
CSV avec une ligne d'en-tête ; séparateurs , ; ou tabulation, virgule décimale acceptée, dates ISO,
DD.MM.YYYY ou DD/MM/YYYY. Colonnes reconnues (roumaines ou anglaises) : marqueur
(analiza, test, marker, name) — ou seulement une colonne LOINC code, auquel cas le nom LOINC devient le marqueur —
valeur (rezultat, valoare, value, result), unité (um, unitate, unit),
plage de référence (interval, referinta : 70-100, <5, >3.5) ou ref_low/ref_high,
date (data, recoltare), LOINC optionnel (loinc, code), note.
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 (texte ER7, segments séparés par CR ou LF) : identifiant OBX-3 (code^text^LN
est LOINC ; un code local (^L, ^99zzz) ou tout autre système de codage est conservé comme code propre du laboratoire sous
urn:anpheros:lab-code), OBX-5 valeur (NM, SN, ou texte),
OBX-6 unité, OBX-7 plage de référence, OBX-8 indicateur d'anomalie → interpretation, OBX-11 statut,
date OBX-14 ou OBR-7 ; OBR-3/MSH-10 deviennent l'identifiant du rapport dans Provenance.
Le laboratoire. Chaque résultat nomme qui l'a produit dans performer, comme l'exige HL7 Europe Laboratory Report 2.1.0 :
l'organisation pour laquelle vous agissez (X-Anpheros-Acting-As), sinon MSH-4 (établissement expéditeur) pour HL7, ou
laboratory en JSON (niveau supérieur ou par élément). Un CSV ne porte pas de laboratoire ; de tels résultats sont validés avec un
exécutant manquant, ce qui est la vérité.
Rapports textuels, documents et dates manquantes. Un rapport textuel envoyé ligne par ligne par OBX (TX/FT, même OBX-3)
devient un résultat avec les lignes jointes. Un document entier en OBX-5 (ED, ou toute valeur encodée Base64) n'est pas
stocké comme résultat ; la réponse avertit et le document appartient à /documents. Sans OBR-7, les résultats sont datés par
OBR-14 (spécimen reçu), avec un avertissement.
Heures et fuseaux horaires. Une heure v2 sans fuseau horaire est l'heure locale de l'expéditeur, pas l'UTC. Le décalage envoyé avec
OBX-14/OBR-7 (20260901081000+0300) est conservé (2026-09-01T08:10:00+03:00). Sans celui-ci, le décalage de MSH-7 est
utilisé et un avertissement l'indique ; sans décalage nulle part, le résultat ne conserve que sa date, également avec un avertissement. Les heures CSV
(01.09.2026 08:10) ne portent pas de fuseau horaire, elles sont donc stockées comme dates uniquement. Jusqu'au 17 octobre 2026, ces heures étaient
étiquetées UTC ; les résultats importés alors conservent leurs identifiants et sont toujours reconnus lorsqu'un rapport est renvoyé.
Les résultats HL7 qui sont encore en attente (OBX-11 I), non obtenus (X), supprimés (D) ou erronés (W), et les segments OBX
sans valeur, ne deviennent pas des Observations ; chacun est nommé dans 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 primești î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"}]}
- Marcatorii sunt mapați la LOINC atunci când raportul oferă un cod LOINC sau numele corespunde terminologiei 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ă glicată, Colesterol HDL, LDL-C). Un nume care corespunde mai multor 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ă: o simplă "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 raport, 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 recoltare, 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 raport. Fără un ID raport (CSV), o astfel de potrivire este raportată înwarnings; trimiteți un ID 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 ce să căutaț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