Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
FHIR vs HL7 v2: differenze pratiche
Messaggi HL7 v2 e risorse FHIR a confronto per sviluppatori: formato, trasporto, lo stesso risultato di laboratorio in entrambi, insidie di traduzione e dove Anpheros accetta v2.
HL7 v2 è il formato di messaggi che i sistemi ospedalieri si scambiano dalla fine degli anni '80 — eventi delimitati da pipe come "paziente ammesso" o "risultato di laboratorio pronto" inviati tra sistemi tramite una connessione di rete — mentre HL7 FHIR è uno standard API web in cui le applicazioni leggono e scrivono risorse come Patient e Observation tramite HTTPS in JSON. Non sono alternative che si scelgono una volta per tutte: la maggior parte degli ospedali funziona ancora internamente con v2, le nuove applicazioni e le API rivolte ai pazienti utilizzano FHIR, e il lavoro di integrazione spesso consiste nel tradurre l'uno nell'altro. Questa pagina li confronta sui punti che contano quando si scrive codice, mostra gli stessi dati in entrambi e spiega dove Anpheros accetta v2.
Affiancamento
| HL7 v2 | HL7 FHIR R4 | |
|---|---|---|
| Stile | Messaggi attivati da eventi (ammissione, ordine, risultato) | Risorse che crei, leggi, aggiorni, cerchi |
| Formato | Segmenti di testo separati da interruzioni di riga, campi da \|, componenti da ^ |
JSON (o XML) |
| Trasporto | Solitamente MLLP su TCP all'interno della rete ospedaliera | HTTPS REST |
| Query | Limitata; i sistemi principalmente inviano dati | Parametri di ricerca, _include, cronologia |
| Sicurezza | Livello di rete (VPN, collegamenti privati) | OAuth 2.0 / SMART on FHIR, TLS, scope |
| Flessibilità | Molti campi opzionali e segmenti Z locali; ogni interfaccia viene negoziata | Risorse di base più profili (US Core, IPS, IG europei) |
| Utenti tipici | Sistemi EHR, di laboratorio, di radiologia, di fatturazione all'interno di un ospedale | App, API di accesso per pazienti, scambio inter-organizzativo, AI |
I messaggi v2 più comuni:
| Messaggio | Significato | Risorse FHIR più vicine |
|---|---|---|
| ADT^A01, A03, A08 | Ammissione, dimissione, aggiornamento paziente | Patient, Encounter |
| ORM / OML | Ordinare un test | ServiceRequest |
| ORU^R01 | Risultato pronto | Observation, DiagnosticReport |
| SIU | Pianificazione | Appointment |
| MDM | Documento | DocumentReference |
Lo stesso risultato di laboratorio in entrambi
Una riga di risultato ORU^R01 (segmento OBX):
OBX|1|NM|2093-3^Cholesterol^LN||212|mg/dL|<200|H|||F|||20261002074500
Lo stesso risultato come Observation HL7 FHIR R4, come Anpheros lo memorizza dopo aver importato quel messaggio:
{
"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"},
"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"}}]
}
Campo per campo: OBX-3 diventa code, OBX-5 e OBX-6 diventano valueQuantity, OBX-7 referenceRange, OBX-8 interpretation, OBX-11 status, OBX-14 effectiveDateTime. HL7 pubblica una guida all'implementazione HL7 Version 2 to FHIR ufficiale con mappature per segmenti, tipi di dati e vocabolari.
Dove le traduzioni vanno storte
- Fusi orari. I timestamp v2 come
20261002074500spesso non riportano alcun offset; è necessario conoscere il fuso orario del mittente. FHIR richiede un fuso orario ogni volta che è presente un'ora. (Anpheros legge un'ora v2 senza fuso orario come UTC; inviare l'offset se disponibile.) - Codici locali. Molti laboratori inseriscono i propri codici in OBX-3 invece di LOINC. Una buona traduzione mantiene il codice locale e lo mappa a LOINC quando possibile, invece di scartarlo.
- Invii ripetuti. I mittenti v2 ritrasmettono in caso di timeout. Senza un identificatore stabile per ogni risultato, un archivio FHIR si riempie di duplicati.
- Tutto opzionale. Lo stesso campo può essere vuoto, ripetuto o utilizzato in modo diverso da due mittenti. Validare il lato FHIR; il validatore FHIR R4 mostra cosa manca in una risorsa tradotta.
- Correzioni. Lo stato del risultato v2
C(corretto) dovrebbe aggiornare l'Observation esistente e mantenerne la cronologia, non crearne una seconda.
Quando usare cosa
- All'interno di un ospedale, tra sistemi esistenti: v2 è solitamente ciò che i sistemi utilizzano. Un integration engine instrada e trasforma i messaggi.
- Costruzione di un'app, un API di accesso per il paziente o qualsiasi cosa che attraversi le organizzazioni: FHIR, con OAuth e consenso.
- Alimentazione di AI o analytics: FHIR, perché è interrogabile, codificato e versionato.
- Entrambi: il pattern comune nel mondo reale — ricevere v2 dal laboratorio o dall'EHR, memorizzare FHIR, servire FHIR alle applicazioni.
Dove si inserisce Anpheros
Anpheros memorizza le cartelle cliniche come FHIR R4 e accetta un tipo di messaggio HL7 v2: ORU^R01 risultati di laboratorio, inviato tramite HTTPS al connettore di laboratorio (POST /v1/patients/{id}/labs/import con Content-Type: x-application/hl7-v2+er7). Ogni OBX diventa un'Osservazione di laboratorio con codice LOINC, intervallo di riferimento e interpretazione; l'ID del report viene conservato nella provenienza e i report inviati nuovamente vengono saltati. Un risultato corretto (OBX-11 = C) con un nuovo valore viene memorizzato come nuova Osservazione con stato amended; l'originale rimane invariato, quindi se la tua sorgente invia correzioni, contrassegna l'Osservazione precedente entered-in-error o aggiornala tramite l'API FHIR. Un esempio pratico è Lab results API.
Non accetta altri messaggi v2 (ADT, ordini, pianificazione), non ascolta su MLLP e non invia v2. Per questi, un motore di integrazione davanti ad Anpheros traduce in FHIR e scrive tramite l'API.
Domande frequenti
FHIR sta sostituendo HL7 v2?
Non a breve. v2 rimane la spina dorsale della maggior parte degli ospedali perché funziona ed è integrato nei sistemi esistenti. FHIR sta crescendo attorno ad esso — nelle app, nell'accesso ai pazienti e nello scambio tra organizzazioni — e i due coesistono, spesso con traduzione tra di loro.
Cos'è MLLP?
Minimal Lower Layer Protocol: un modo semplice per incapsulare messaggi v2 su una connessione TCP, con caratteri di inizio e fine attorno a ciascun messaggio e un acknowledgement (ACK) di ritorno. FHIR utilizza invece HTTPS.
Posso convertire automaticamente i messaggi HL7 v2 in FHIR?
Per lo più. La guida all'implementazione v2-to-FHIR di HL7 fornisce mappature standard e i motori di integrazione le implementano. Aspettati lavoro manuale per codici locali, segmenti Z, fusi orari e come ciascun mittente utilizza i campi opzionali.
Anpheros accetta HL7 v2?
Sì, per i risultati di laboratorio: i messaggi ORU^R01 inviati tramite HTTPS al connettore di laboratorio diventano FHIR Observations. Altri tipi di messaggi v2 e connessioni MLLP non sono supportati.
Correlati
- Mappatura da HL7 v2 a FHIR: mappatura di segmenti e campi, e un convertitore
- API per risultati di laboratorio: HL7 v2, FHIR e LOINC
- Come importare risultati di laboratorio in un record FHIR
- Interoperabilità dei dati sanitari
- DICOM vs FHIR: dati di imaging e dati clinici
- Piattaforma FHIR
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card