¡NUEVO!

Conversor HL7 v2 a FHIR

Convierte mensajes HL7 v2.x ADT, ORU y ORM a Bundle FHIR R4 JSON con tabla detallada de mapeo de campos. Gratuito, solo navegador, compatible con HIPAA.

Compatible con HIPAA por Diseño

Tus datos médicos nunca salen de tu dispositivo. Ningún dato PHI se transmite a ningún servidor.

Compatible con HIPAA Sin Transmisión de PHI Procesamiento Local

Suelta un archivo .hl7 o .txt aquí, o pega abajo

Ejemplos:

Toda la conversión ocurre localmente en tu navegador. Tus mensajes HL7 y PHI nunca salen de tu dispositivo. Compatible con HIPAA.

Palabras clave

convertidor hl7 v2 a fhirconversor hl7 fhir r4hl7 adt a fhirhl7 oru a fhir observationhl7 orm a fhir servicerequestmigración hl7 a fhirgenerador bundle fhir hl7 v2convertir mensaje hl7 v2 a fhir onlineherramienta hl7 a fhir gratis

¿Necesitas algo más?

Cómo usar

1

Pega tu mensaje HL7 v2 en el área de texto o arrastra y suelta un archivo .hl7. La herramienta soporta los tipos de mensaje ADT^A01/A03/A04/A08, ORU^R01 y ORM^O01.

2

Selecciona el tipo de Bundle FHIR — Colección (predeterminado) o Transacción — y la versión FHIR (R4 o R5). Haz clic en Convertir a FHIR.

3

Revisa el Bundle FHIR JSON en el panel de salida. El bundle contiene todos los recursos generados (Patient, Encounter, Observation, DiagnosticReport, ServiceRequest) como entradas.

4

Inspecciona la Tabla de Mapeo para ver cada campo HL7 mapeado, el recurso y ruta FHIR destino, el valor HL7 original y el valor FHIR resultante.

5

Haz clic en Copiar JSON para copiar el bundle, o en Descargar .json para guardar el archivo. Usa el panel de Advertencias para identificar campos no mapeados.

Características

Soporte Multi-Tipo de Mensaje

Convierte eventos ADT^A01/A03/A04/A06/A08 a Patient + Encounter; resultados ORU^R01 a DiagnosticReport + Observation; y órdenes ORM^O01 a ServiceRequest + Patient — todo desde la misma interfaz.

Tabla de Procedencia de Campos FHIR

Cada campo HL7 convertido aparece en una tabla de procedencia que muestra el segmento origen (PID-3), nombre del campo, recurso FHIR destino (Patient), ruta FHIR (Patient.identifier[0].value), el valor HL7 original y el valor FHIR mapeado. Ideal para documentación de integraciones.

Bundles de Transacción y Colección

Elige Colección para producir un bundle de solo lectura, o Transacción para añadir entradas de solicitud REST PUT (method + url) a cada recurso — listo para POST a un endpoint de servidor FHIR.

Advertencias para Segmentos No Mapeados

La herramienta emite advertencias para problemas comunes de calidad de datos — identificadores PID-3 faltantes, nombres de paciente vacíos, Z-segments, NK1, IN1, DG1 — que no se pueden mapear automáticamente, ayudándote a identificar brechas antes de la migración.

Mensajes de Ejemplo Curados

Cinco mensajes de muestra realistas que cubren admisión, alta, resultados de laboratorio, orden de laboratorio y actualización de paciente están disponibles en la barra de Ejemplos. Cada uno carga en la herramienta y convierte inmediatamente.

¿Por qué elegir esta herramienta?

Privado por Defecto — La PHI Nunca Sale de tu Navegador

Los mensajes HL7 v2 contienen habitualmente nombres de pacientes, MRN, diagnósticos y resultados de laboratorio — toda Información Sanitaria Protegida. Esta herramienta se convierte completamente en tu navegador mediante JavaScript. Ningún contenido del mensaje se envía a ningún servidor, se almacena en ninguna base de datos ni se registra. Las organizaciones sanitarias pueden usarla de forma segura con datos de producción.

Trazabilidad Completa a Nivel de Campo

A diferencia de los conversores de formato simples que producen JSON FHIR anónimo, esta herramienta genera una tabla completa de mapeo de campos para cada conversión. Puedes ver exactamente qué segmento y número de campo HL7 produjo cada valor FHIR, con el valor HL7 original y la representación FHIR resultante en paralelo.

Salida FHIR R4 Compatible con Estándares

Los bundles generados siguen las especificaciones de recursos FHIR R4. Los identificadores de paciente usan el sistema de códigos de tipo HL7 v2 (MR, AN), el género se mapea usando el conjunto de códigos de género administrativo FHIR, los códigos de clase de encuentro usan el vocabulario ActCode de HL7 v3, y los valores de observación distinguen entre cantidad (NM), texto (ST/TX/FT) y codificado (CWE/CE).

Soporta el Espectro Completo de ADT, ORU y ORM de HL7 v2.x

Se gestionan los eventos ADT A01 (admisión), A03 (alta), A04 (registro ambulatorio), A06 (traslado a hospitalización), A08 (actualización de datos), y A02/A11/A13. ORU^R01 soporta conjuntos de resultados multi-OBX. ORM^O01 lee tanto los segmentos ORC como OBR para rellenar el recurso ServiceRequest.

Migración de HL7 v2 a FHIR: Guía Práctica para Mapear Mensajes y Recursos

Por Qué Importa la Migración de HL7 v2 a FHIR

HL7 v2.x ha sido la columna vertebral de la interoperabilidad sanitaria desde finales de los años 1980. Cientos de miles de interfaces hospitalarias en todo el mundo siguen intercambiando mensajes ADT, ORU, ORM y MDM sobre conexiones MLLP. Sin embargo, la industria está migrando progresivamente a FHIR R4 — impulsada por las regulaciones federales de EE.UU. (reglas de interoperabilidad CMS y ONC), los ecosistemas de aplicaciones SMART on FHIR y las plataformas EHR en la nube que funcionan nativamente con REST + JSON.

El Desafío Central del Mapeo

HL7 v2 y FHIR representan la información clínica de formas muy diferentes. Un mensaje ADT^A01 v2 codifica una admisión de paciente en una estructura plana delimitada por tuberías, con relaciones a nivel de segmento (PID → datos del paciente, PV1 → datos de la visita, EVN → metadatos del evento). FHIR R4 representa el mismo evento como un grafo de recursos enlazados: un recurso Patient referenciado por un recurso Encounter. El mapeo es conceptualmente sencillo pero operativamente complejo — cada campo componente en un tipo de datos XPN, XCN, CX o PL debe descomponerse y reensamblarse en el tipo de datos FHIR correcto.

ADT a Patient y Encounter

La tarea de migración más común es convertir mensajes ADT^A01 (admisión) y ADT^A03 (alta). El segmento PID se mapea a un Patient FHIR: PID-3 (lista CX) se convierte en Patient.identifier, PID-5 (XPN) en Patient.name con componentes family y given, PID-8 en Patient.gender usando el vocabulario administrative-gender, y PID-11 (XAD) en Patient.address. El segmento PV1 se mapea a un Encounter FHIR: PV1-2 (Clase de Paciente) se mapea a Encounter.class usando el sistema ActCode v3, PV1-7 (XCN) a Encounter.participant (attender), PV1-19 a Encounter.identifier, y PV1-44/PV1-45 a Encounter.period.start y .end.

ORU a DiagnosticReport y Observations

Los mensajes ORU^R01 transportan resultados de laboratorio, radiología y observaciones clínicas. El segmento OBR se mapea a un DiagnosticReport FHIR: OBR-4 (ID de Servicio Universal, CWE) se convierte en DiagnosticReport.code, OBR-7 en effectiveDateTime, y OBR-14 en issued. Cada segmento OBX se mapea a un recurso Observation FHIR separado, con el conjunto de resultados agrupado bajo referencias DiagnosticReport.result. El campo tipo de valor OBX (OBX-2) determina el tipo de valor de la observación FHIR: NM (Numérico) se mapea a valueQuantity con OBX-6 como unidad, CE/CWE a valueCodeableConcept, y ST/TX/FT a valueString.

ORM a ServiceRequest

Los mensajes ORM^O01 representan órdenes. El segmento ORC proporciona el control de orden (ORC-1), número de orden del solicitante (ORC-2 → ServiceRequest.identifier), número de orden del ejecutor (ORC-3), estado de la orden (ORC-5 → ServiceRequest.status) y proveedor solicitante (ORC-12 → ServiceRequest.requester). El segmento OBR aporta el código de procedimiento (OBR-4 → ServiceRequest.code), fecha/hora solicitada (OBR-6 → ServiceRequest.occurrenceDateTime) y prioridad (OBR-5 → ServiceRequest.priority).

Consideraciones Clave en la Migración

  • Sistemas de identificadores: Los identificadores CX de HL7 v2 (PID-3, PV1-19) llevan una autoridad asignada. En FHIR, deben convertirse en URIs de Identifier.system — idealmente OIDs (urn:oid:...) o URLs canónicas de NamingSystem registradas en tu servidor FHIR.
  • Terminología: Los valores de tablas v2 (0001 para sexo, 0004 para clase de paciente) deben mapearse a sistemas de códigos definidos por FHIR. Muchas organizaciones necesitan un servicio de terminología o tabla de consulta para gestionar códigos locales en OBR-4 u OBX-3.
  • Z-segments: Los Z-segments personalizados (ZDG, ZPI, ZRX) no tienen equivalente FHIR y requieren extensiones o recursos contenidos, añadiendo complejidad al proyecto.
  • Versionado: HL7 v2.3.1, v2.4, v2.5 y v2.5.1 difieren en posiciones de campo y tipos de datos disponibles. Un mapeador robusto debe gestionar múltiples versiones con gracia.
  • Flujo bidireccional: Muchas arquitecturas de integración requieren tanto la traducción v2-a-FHIR como FHIR-a-v2. Diseña el esquema de mapeo para que sea reversible cuando sea posible.

Preguntas Frecuentes

¿Qué tipos de mensaje HL7 v2 son compatibles?

La herramienta soporta ADT^A01 (admisión), ADT^A03 (alta), ADT^A04 (registro ambulatorio), ADT^A06 (cambio de estado del paciente), ADT^A08 (actualización de datos), ADT^A02/A11/A13 (eventos de traslado/cancelación), ORU^R01 (resultados de observación) y ORM^O01 (orden general). Otros tipos de mensaje producen un bundle Patient parcial desde el segmento PID con una advertencia.

¿Qué recursos FHIR genera el conversor?

Los mensajes ADT producen un recurso Patient y un recurso Encounter. Los mensajes ORU^R01 producen un Patient, DiagnosticReport y un Observation por cada segmento OBX. Los mensajes ORM^O01 producen un Patient y un ServiceRequest. Todos los recursos se envuelven en un Bundle FHIR.

¿Es válida la salida FHIR R4?

La salida sigue las estructuras de recursos FHIR R4 para los campos compatibles. Para uso en producción, valida el bundle con un validador FHIR (por ejemplo, el Validador FHIR de HL7 o un perfil de guía de implementación). Las extensiones del paciente, los sistemas de códigos locales y los datos de segmentos no compatibles (Z-segments, IN1, DG1) no se representan en la salida.

¿Cuál es la diferencia entre bundles de Colección y Transacción?

Un bundle de Colección es un contenedor simple de recursos sin información de solicitud — adecuado para archivo o visualización. Un bundle de Transacción añade una entrada de solicitud (method: PUT, url: ResourceType/id) a cada recurso, haciéndolo listo para POST al endpoint de lote/transacción de un servidor FHIR para su persistencia.

¿Puedo usar esta herramienta con mensajes v2 que contienen códigos locales?

Sí. Los códigos locales y no estándar en OBX-3, OBR-4 y otros campos codificados se preservan tal como están en el campo coding.code de FHIR. El URI del sistema se genera a partir del ID de tabla HL7 (urn:oid:...). Es posible que necesites reasignar estos códigos a terminologías estándar (LOINC, SNOMED CT) en tu flujo de producción.

¿Qué ocurre con la PHI y el cumplimiento de HIPAA?

Todo el procesamiento se realiza localmente en tu navegador mediante JavaScript. Ningún contenido del mensaje HL7 se transmite a ningún servidor ni se almacena fuera de la sesión de tu navegador. La herramienta está diseñada para ser compatible con HIPAA en entornos sanitarios. Verifica siempre el cumplimiento con las políticas de seguridad de tu organización antes de usar cualquier herramienta con PHI de producción.

¿Cómo se gestionan los Z-segments?

Los Z-segments (segmentos personalizados que comienzan con Z) no se mapean a ningún recurso FHIR estándar. La herramienta emite una advertencia listando los nombres de Z-segments encontrados en el mensaje para que puedas abordarlos en tu capa de mapeo de extensiones personalizadas.

¿Puedo convertir múltiples mensajes a la vez?

Actualmente la herramienta convierte un mensaje HL7 por operación. Para conversión por lotes (múltiples mensajes en un archivo), separa tus mensajes y conviértelos individualmente. La herramienta acepta archivos mediante arrastrar y soltar.

¿Es compatible con FHIR R5?

Puedes seleccionar FHIR R5 en el selector de versión. La salida R5 usa las mismas estructuras de recursos que R4 para los campos compatibles — las principales diferencias entre R4 y R5 para Patient/Encounter/Observation están en los patrones de extensión y algunos elementos renombrados. Valida la salida R5 contra las guías de implementación R5 para cumplimiento completo.

¿Cómo interpreto los colores de estado en la tabla de mapeo?

Verde 'mapeado' significa que el campo fue completamente convertido a un equivalente FHIR. Ámbar 'parcial' significa que el campo fue mapeado parcialmente — por ejemplo, solo algunos componentes de un tipo de datos complejo (XAD, XCN) fueron traducidos. Rojo 'no mapeado' significa que el campo fue detectado pero no existe un mapeo FHIR estándar para él.

Saber más