Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Mapeo de HL7 v2 a FHIR
Mapeo de segmento a recurso y de campo OBX a campo de HL7 v2 ORU^R01 a FHIR R4, las trampas que rompen las integraciones y un conversor al que se llama por HTTPS.
Mapear HL7 v2 a FHIR significa convertir cada segmento de un mensaje v2 delimitado por tuberías en recursos FHIR R4: PID en un Paciente, OBR en un DiagnosticReport (o ServiceRequest), cada OBX en una Observation, con códigos, unidades, rangos y tiempos transferidos campo por campo. HL7 publica una guía de implementación V2-a-FHIR oficial con mapas de conceptos para los segmentos comunes. Esta página ofrece el mapeo práctico para resultados de laboratorio (ORU^R01), las trampas que rompen las integraciones reales y un convertidor al que puede llamar a través de HTTPS: el conector de laboratorio Anpheros.
- MSHSeparators, message type, message id → MessageHeader or provenance
- PIDPatient identity → Patient (or, in Anpheros, the patient in the URL)
- OBRThe order and report → DiagnosticReport, report id and date
- OBXOne result each → Observation with LOINC, value, range, flag
- FHIR recordCoded, versioned resources your apps can read
Segment to resource
| HL7 v2 segment | Qué transporta | FHIR R4 resource | En el conector de laboratorio Anpheros |
|---|---|---|---|
| MSH | Separadores, sistema emisor, tipo de mensaje, ID de mensaje | MessageHeader (o provenance) |
Separadores leídos de MSH; tipo verificado para ORU^R01; ID de mensaje conservado para trazabilidad |
| PID | Identificadores del paciente, nombre, fecha de nacimiento, sexo | Patient |
No se usa: el paciente es el de la URL de la solicitud, por lo que un mensaje no puede escribir en el registro incorrecto |
| PV1 | Visita | Encounter |
No se usa |
| ORC / OBR | Orden y reporte: ID del relleno/colocador, fecha | ServiceRequest, DiagnosticReport |
OBR-3 (o OBR-2) es el ID del reporte, OBR-7 la fecha por defecto |
| OBX | Un resultado | Observation |
Una Observation de laboratorio por OBX |
| NTE | Nota de texto libre | Observation.note |
No se usa |
Campo OBX campo por campo
| Campo OBX | Elemento FHIR Observation | Notas |
|---|---|---|
| OBX-2 tipo de valor (NM, SN, ST, CWE) | choice of value[x] |
NM y SN se convierten en valueQuantity; el texto permanece como texto |
OBX-3 identificador code^text^system |
code.coding |
LN en OBX-3.3 significa LOINC; otros sistemas son el código local del laboratorio |
| OBX-5 valor, OBX-6 unidad | valueQuantity.value, .unit / .code (UCUM) |
<5 y 6,4 deben ser analizados deliberadamente |
| OBX-7 rango de referencia | referenceRange.low / .high |
3.5-5.1, <200, >40 |
| OBX-8 indicador de anormalidad | interpretation |
H, L, HH, LL, A, N |
| OBX-11 estado del resultado | status |
F → final, C → modificado, P → preliminar, I → registrado |
| OBX-14 hora de la observación | effectiveDateTime |
las horas v2 a menudo carecen de zona horaria; FHIR requiere una |
Convertir un mensaje con una solicitud
curl -X POST "https://platform.anpheros.com/v1/patients/$PID/labs/import" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: x-application/hl7-v2+er7" \
-H "Idempotency-Key: $(uuidgen)" \
--data-binary @oru_r01.hl7
La respuesta lista cuántas Observations se crearon, cuántas se omitieron por ya haber sido importadas, qué marcadores no pudieron ser mapeados y las nuevas Observations con sus códigos. Cada una recibe un identificador estable derivado del informe, la prueba, la hora y el valor, de modo que un laboratorio que reenvía el mismo mensaje no crea duplicados.
Trampas que rompen integraciones reales
- Zonas horarias.
20261002074500no tiene desplazamiento; decida explícitamente la zona del remitente. - Códigos locales. Conserve el código propio del laboratorio cuando no haya LOINC; nunca lo omita.
- Reenvíos. Sin un identificador estable por resultado, los reintentos se convierten en duplicados.
- Correcciones. OBX-11
Ces una corrección; decida si reemplaza o añade, y marque el resultado antiguo. - Valores no numéricos.
positive,<5,6,4necesitan reglas explícitas, no una suposición.
Lo que el conector no hace
Acepta resultados de laboratorio ORU^R01 sobre HTTPS. No recibe mensajes ADT ni de órdenes, no habla MLLP sobre TCP (un motor de interfaz delante puede reenviar), no crea un DiagnosticReport y no empareja pacientes desde PID.
Preguntas frecuentes
¿Cómo se mapea HL7 v2 a FHIR?
Segmento por segmento: PID a Patient, PV1 a Encounter, ORC/OBR a ServiceRequest y DiagnosticReport, OBX a Observation, NTE a notes. La guía de implementación de HL7 V2 a FHIR define los mapeos de conceptos a nivel de campo.
¿Existe un conversor de HL7 v2 a FHIR?
Sí. Los motores de interfaz y las bibliotecas de código abierto convierten mensajes; para los resultados de laboratorio, el conector de laboratorio Anpheros convierte un mensaje ORU^R01 en FHIR R4 Observations en una sola solicitud HTTPS y los almacena en el registro del paciente.
¿Qué tipos de mensajes HL7 v2 acepta Anpheros?
ORU^R01 resultados de laboratorio. Un mensaje de otro tipo recibe una advertencia y solo se leen sus segmentos OBX; ADT, pedidos y otros mensajes no son compatibles.
¿Cómo se representan las banderas anormales de HL7 v2 en FHIR?
OBX-8 se convierte en Observation.interpretation utilizando los códigos HL7 ObservationInterpretation (H, L, HH, LL, A, N).
Relacionado
- API de resultados de laboratorio: HL7 v2, FHIR y LOINC
- FHIR vs HL7 v2: diferencias prácticas
- Cómo importar resultados de laboratorio en un registro FHIR
- HL7 v2 y FHIR para paneles clínicos
- Conector de laboratorio
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card