# HL7 v2 și FHIR pentru tablouri de bord clinice

> De la un mesaj HL7 v2 ORU^R01 de laborator la o secțiune de tabloul de bord: Observații FHIR cu intervale și indicatori, webhook-uri semnate, fără duplicate — și de ce acesta nu este monitorizare la patul bolnavului.

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

**Un tablou de bord clinic necesită rezultate sub formă de date structurate și codificate în momentul în care sunt raportate — test, valoare, unitate, interval de referință și indicator — nu PDF-uri pe care trebuie să le citească.** Laboratoarele încă trimit majoritatea rezultatelor ca mesaje HL7 v2 ORU^R01, în timp ce tablourile de bord sunt cel mai ușor de construit pe baza Observațiilor FHIR R4. Anpheros se află între cele două: un sistem de laborator publică mesajul HL7 v2 (sau un raport CSV sau JSON) prin HTTPS, fiecare rezultat devine o Observație FHIR cu codul său (LOINC atunci când laboratorul îl trimite), valoarea și intervalul de referință, iar un webhook semnat anunță tabloul de bord că au sosit rezultate noi.

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

## Ce primește tabloul de bord

Fiecare segment OBX al mesajului devine o observație de laborator:

| Câmp HL7 v2 OBX | FHIR R4 Observation | Pe tabloul de bord |
|---|---|---|
| Codul testului OBX-3 | `code` (LOINC când laboratorul îl trimite; un cod local este păstrat ca și codul laboratorului) | Numele testului; LOINC îl face comparabil între laboratoare |
| Valoarea OBX-5, unitatea OBX-6 | `valueQuantity` (unitate UCUM) | Numărul și unitatea sa |
| Intervalul de referință OBX-7 | `referenceRange` | Banda normală |
| Semnul anormal OBX-8 | `interpretation` (H, L, …) | Semnul roșu sau albastru |
| Timpul OBX-14 | `effectiveDateTime` | Când a fost prelevată proba |

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

## Importă un mesaj și reacționează la el

Trimite mesajul pentru un pacient pe care l-ai creat (sau pentru care deții o autorizație):

```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
```

Apoi, lasă platforma să apeleze backend-ul dashboard-ului tău în loc să-l interogheze (polling):

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

Fiecare livrare este semnată (verifică-o cu `verifyWebhookSignature` din SDK) și reîncercată dacă serverul tău nu răspunde. Evenimentul transportă tipul resursei, id-ul și pacientul; citește noile Observații și reîmprospătează țiglă. Rapoartele retrimise sunt omise, astfel încât un laborator care retransmite la un timeout nu creează rânduri duplicate pe ecran.

## Alegerea HL7 v2 sau FHIR pentru fiecare legătură

| Legătură | Utilizare | De ce |
|---|---|---|
| Laborator → strat de date | HL7 v2 ORU^R01 (sau CSV/JSON) | Ce emit deja sistemele de laborator; nicio modificare din partea lor |
| Strat de date → tablou de bord | FHIR R4 Observation + webhooks | JSON codificat, versionat, pe care interfața dvs. front-end îl poate citi direct |
| Tablou de bord → alte aplicații | FHIR R4, sub consimțământul pacientului | Un standard pentru fiecare consumator |

## Ce nu este

- **Nu este un flux de monitorizare la patul bolnavului.** Anpheros acceptă rapoarte de laborator prin HTTPS. Nu primește forme de undă continue sau fluxuri de dispozitive de la monitoarele de terapie intensivă și nu este un sistem de alarmă: alertele care afectează îngrijirea necesită un sistem clinic certificat.
- **Nu este un motor de interfață MLLP.** Mesajele sosesc prin HTTPS; dacă laboratorul dvs. vorbește doar MLLP peste TCP, un motor de interfață în față le redirecționează.
- **Un singur tip de mesaj HL7 v2.** Sunt acceptate rezultatele de laborator ORU^R01; comenzile (ORM/OML) și mesajele ADT nu sunt.

## Întrebări frecvente

### Poate un dashboard să citească direct rezultatele de laborator HL7 v2?
Poate, dar fiecare dashboard are apoi nevoie de propriul parser HL7 v2, mapare de coduri și deduplicare. Conversia o singură dată în FHIR R4 Observations cu coduri LOINC oferă fiecărui ecran aceleași date curate.

### Cât de repede ajung rezultatele importate la dashboard?
Cererea de import se returnează atunci când Observations sunt stocate, iar un webhook `resource.created` este pus în coadă pentru fiecare dintre ele în același timp. Livrarea este reîncercată dacă endpoint-ul dvs. nu este disponibil.

### Cum sunt marcate rezultatele anormale?
OBX-8 devine `interpretation` (de exemplu, H sau L) al Observation, iar OBX-7 devine `referenceRange`, astfel încât dashboard-ul să poată afișa atât marcajul, cât și intervalul normal.

### Suportă Anpheros monitorizarea în UTI?
Nu. Acesta stochează rezultatele de laborator și clinice și notifică sistemele dvs. despre date noi; monitorizarea continuă la patul pacientului și alertele clinice rămân la dispozitivele medicale certificate.

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

## Conexe

- [API pentru rezultate de laborator: HL7 v2, FHIR și LOINC](https://developers.anpheros.com/ro/guides/lab-results-api)
- [Cum se importă rezultatele de laborator într-un înregistrare FHIR](https://developers.anpheros.com/ro/guides/import-lab-results-fhir)
- [Conector de laborator](https://developers.anpheros.com/ro/guides/lab-connector): referința endpoint-ului
- [FHIR vs HL7 v2: diferențe practice](https://developers.anpheros.com/ro/guides/fhir-vs-hl7-v2)
- [Monitorizarea pacienților la distanță cu FHIR](https://developers.anpheros.com/ro/guides/remote-patient-monitoring-fhir)
- [Webhooks](https://developers.anpheros.com/ro/guides/webhooks)
