Saltar al contenido
educa

educa · formación abierta

El sistema sanitario por dentro

Curso gratuito y de nivel experto sobre cómo funciona el sistema sanitario: Cataluña a fondo, España como marco, y de la concertación al HIS.

  • Índice y progresoRetoma la lección donde la dejaste, en el móvil o en el ordenador.
  • Siglas explicadasCada sigla del texto se explica al pasar por encima o al tocarla.
  • Tarjetas de repasoRepaso espaciado de los conceptos de cada lección leída.
17
módulos
88
lecciones
322
fuentes

Accede a los cursos

Con tu cuenta de Google. Solo la usamos para guardar tu progreso.

Privacidad

Módulo 13 · Lección 2 de 6

HL7 v2: admisiones, peticiones y resultados

Cómo se construye un mensaje HL7 v2, qué eventos ADT avisan de ingresos y altas, y cómo viajan peticiones y resultados con ORM, OML y ORU.

  • 30 min
  • 6 fuentes
  • 9 tarjetas
  • Actualizada el 26 de octubre de 2026

HL7 v2 es la lengua franca de los hospitales: mensajes de texto, línea a línea, que salen cuando ocurre algo. Un ingreso dispara un mensaje ADT; una petición de analítica, un OML u ORM; un resultado validado, un ORU. Entender su anatomía (segmentos, campos y delimitadores) y sus eventos permite leer casi cualquier interfaz hospitalaria. Su gran debilidad es la variación: cada implementación lo interpreta a su manera.

Un estándar nacido de los eventos

HL7 v2 fue el primer estándar de intercambio de HL7 y es uno de los más adoptados, sobre todo en el ámbito hospitalario 5. La versión 2.9 del estándar data de 2019 1.

Su idea central es el evento disparador. El estándar parte de que un hecho real crea la necesidad de que los datos fluyan: «a patient is admitted» o que el resultado de una observación esté disponible 1. Cuando el sistema que registra el hecho envía la información por su cuenta, el intercambio se llama actualización no solicitada 1. El receptor responde con un acuse.

Cada mensaje tiene un tipo (ADT, ORU…) y un evento (A01, R01…). Un tipo puede ir con muchos eventos, pero un evento pertenece a un solo tipo 1. La lista oficial de eventos es la tabla HL7 0003 2.

Anatomía de un mensaje

Un mensaje es texto. Cada línea es un segmento, que empieza por un identificador de tres caracteres y termina con un retorno de carro 1. Dentro del segmento, los campos se separan con delimitadores declarados en la propia cabecera 1:

CarácterFunción
|Separa campos, y el identificador del segmento de su primer campo
^Separa componentes dentro de un campo (apellido^nombre)
~Separa repeticiones de un campo (varios identificadores)
\Carácter de escape
&Separa subcomponentes

Son los valores recomendados por HL7; el campo de cabecera «Encoding Characters» declara los que usa cada mensaje 1. Los segmentos más frecuentes son estos 3:

SegmentoNombreQué lleva
MSHMessage HeaderEmisor, receptor, fecha, tipo y evento, identificador del mensaje, versión
EVNEvent TypeDatos del evento: cuándo ocurrió y quién lo registró
PIDPatient IdentificationIdentificadores, nombre, fecha de nacimiento, sexo, domicilio
PV1Patient VisitEpisodio: clase (ingresado, ambulatorio), ubicación, médico responsable
ORCCommon OrderDatos comunes de la petición: números de orden, estado, peticionario
OBRObservation RequestQué prueba se pide o se informa
OBXObservation/ResultUn resultado: código, valor, unidad, rango, estado
MSAMessage AcknowledgmentRespuesta al mensaje recibido
MRGMerge Patient InformationIdentificador antiguo en una fusión de pacientes

ADT: el pulso del hospital

Los mensajes ADT (admission, discharge, transfer) avisan de todo lo que le pasa al paciente en el centro. Son los que más circulan: casi todos los sistemas necesitan saber quién está ingresado y dónde. Estos son los eventos más habituales, con su nombre oficial 2:

EventoNombre en la tabla 0003Cuándo se dispara
A01Admit/visit notificationIngreso hospitalario
A02Transfer a patientCambio de unidad o de cama
A03Discharge/end visitAlta o fin de visita
A04Register a patientRegistro de un paciente ambulatorio o de urgencias
A08Update patient informationCambio de datos del paciente o del episodio
A11 / A13Cancel admit / Cancel dischargeAnulación de un ingreso o de un alta registrados por error
A28 / A31Add / Update person informationAlta o cambio de la persona, sin episodio
A40Merge patient - patient identifier listFusión de dos historias de la misma persona

Un ingreso, inventado y simplificado, se vería así:

MSH|^~\&|ADMISION|HOSP01|LAB|HOSP01|20261026083000||ADT^A01^ADT_A01|MSG000123|P|2.5
EVN|A01|20261026082500
PID|1||123456^^^HOSP01^MR~XXXX000000000000^^^SNS^JHN||APELLIDO^NOMBRE||19440312|F
PV1|1|I|MEDINT^305^B|||||||||||||||EPI778899

Se lee así: el sistema de admisión avisa al laboratorio de un ingreso (ADT^A01). La paciente tiene dos identificadores: su número de historia del centro y uno de ámbito sanitario, separados por ~. Está ingresada (I) en medicina interna, habitación 305, cama B, con el episodio EPI778899. Los datos son ficticios.

Los eventos de anulación y de fusión son los más delicados. Si un sistema recibe el A01 pero se pierde el A11 que lo anula, tendrá un paciente fantasma ingresado. Si no procesa un A40, los resultados quedarán repartidos entre dos historias.

Peticiones: ORM y OML

Pedir una prueba también es un evento. La tabla 0003 recoge dos familias 2:

  • ORM^O01, «Order message»: la petición general, válida para muchos tipos de servicio.
  • OML^O21, «Laboratory order», y OML^O33, para varias peticiones sobre una misma muestra: los mensajes específicos de laboratorio.

Ambos están en la guía oficial que traduce v2 a FHIR, como «General Order Message» y «Laboratory order» 4. En una petición, el segmento ORC lleva los datos comunes de la orden y OBR la prueba concreta; en laboratorio, el segmento SPM describe la muestra 3.

La clave de una petición son sus dos números: el del peticionario (placer), que asigna quien pide, y el del ejecutor (filler), que asigna el departamento que la realiza. Ambos viajan en el mensaje y permiten casar después el resultado con lo que se pidió. Cómo se reparten esos papeles en radiología lo fija el perfil IHE que se ve en la lección de DICOM.

Resultados: ORU

Cuando el resultado está listo, el sistema departamental lo envía con ORU^R01, «Unsolicited transmission of an observation message» 2. Un OBR identifica la prueba y le siguen tantos OBX como valores tenga:

MSH|^~\&|LAB|HOSP01|HCE|HOSP01|20261026113000||ORU^R01^ORU_R01|MSG000456|P|2.5
PID|1||123456^^^HOSP01^MR||APELLIDO^NOMBRE||19440312|F
OBR|1|PET-5521|LAB-99812|GLU^Glucosa^L|||20261026090000|||||||||||||||||F
OBX|1|NM|GLU^Glucosa^L||132|mg/dL|70-110|H|||F

El OBX dice: valor numérico (NM), 132 mg/dL, rango de referencia 70-110, marcado como alto (H) y final (F). Fíjese en el código de la prueba: GLU con el sufijo L, de «local». Es el código interno del laboratorio. Otro centro no sabría qué significa sin una tabla de equivalencias o sin un código estándar como los de LOINC, que se ven en la última lección.

ORU sirve para mucho más que el laboratorio: la misma estructura transporta constantes vitales de monitores, informes de anatomía patológica o resultados de microbiología.

Acuses, transporte y dialectos

Cada mensaje recibe un acuse (ACK). En el modo original del estándar, el campo MSA-1 vale AA si el receptor procesó bien el mensaje, AE si encontró un error en su contenido y AR si lo rechazó por motivos ajenos al contenido, como un sistema caído 1. El emisor debe decidir si reintenta 1.

Para el transporte por red se usa habitualmente el protocolo mínimo de capa inferior, MLLP, que los perfiles IHE de dispositivos dan por defecto 6.

Y aquí llega el problema. HL7 v2 permite extensiones mediante segmentos Z, cuyo significado es opaco sin una explicación previa del emisor 5. Muchos elementos son opcionales y se usan solo en circunstancias limitadas 5. Por eso HL7 reconoce que uno de los mayores retos de v2 es la variación de implementación 5. En la práctica, cada interfaz necesita su especificación pactada: qué eventos, qué campos y con qué códigos.

Caso práctico

En admisión se registra por error el ingreso de un paciente en la cama equivocada y, a los cinco minutos, se corrige con un traslado. Mientras tanto, la farmacia ya ha preparado la medicación para la cama original.

El sistema de admisión emitió un A01 y después un A02 2. Si el motor de integración entregó ambos en orden, la farmacia ve el traslado y redirige la medicación. Si el A02 se quedó en una cola porque el sistema de farmacia rechazó el mensaje con AR 1, la unidad original recibirá una medicación que no le toca.

Por eso los hospitales vigilan las colas de mensajes ADT como un indicador de seguridad del paciente, y no solo como un asunto técnico.

Qué implica para los sistemas

MensajeQuién lo emiteQuién lo consumeDato crítico
ADT (A01-A40)Gestión de pacientes del HISLaboratorio, imagen, farmacia, dietética, facturación, historia clínicaIdentificadores del paciente y número de episodio
ORM / OMLPetición electrónica de la historia clínicaSistema departamental (laboratorio, imagen)Número del peticionario, prueba pedida, prioridad
ORUSistema departamental o pasarela de equiposHistoria clínica, sistemas de alertas, repositoriosCódigo de la prueba, valor, unidad, estado final o preliminar
ACKCada receptorEl emisor o el motorAceptación o error, para reintentar o alertar

Tarjetas de esta lección (9)
HL7 v2
Estándar de mensajería de HL7 basado en eventos: un hecho asistencial dispara un mensaje de texto, formado por segmentos y campos separados por delimitadores, hacia los sistemas interesados.
Evento disparador
Hecho real (un ingreso, un resultado disponible) que crea la necesidad de enviar datos a otros sistemas. En HL7 v2 se codifica en la tabla 0003, por ejemplo A01 o R01.
Segmento
Línea de un mensaje HL7 v2 que agrupa datos de un tema, identificada por tres caracteres: MSH (cabecera), PID (paciente), PV1 (visita), OBX (resultado).
ADT
Admission, discharge and transfer: familia de mensajes HL7 v2 que comunica ingresos, altas, traslados, registros y cambios de datos del paciente.
ORU
Mensaje HL7 v2 de observaciones no solicitadas: el sistema que produce un resultado lo envía sin que se lo pidan (evento R01).
OML
Mensaje HL7 v2 específico para peticiones de laboratorio (eventos O21 y O33, entre otros).
ORM
Mensaje HL7 v2 de petición general (evento O01), usado históricamente para pedir pruebas y servicios a otros departamentos.
ACK
Mensaje de acuse de recibo de HL7 v2. Su segmento MSA dice si el receptor aceptó (AA), encontró un error (AE) o rechazó (AR) el mensaje.
Segmento Z
Segmento propio que una implementación añade a HL7 v2 para datos no previstos por el estándar. Su significado solo lo conoce quien lo pactó.

Fuentes

  1. HL7 International — HL7 Version 2+ (sitio de demostración, contenido de ANSI/HL7 V2.9-2019), capítulo 2 «Control» · consultada el 26 de octubre de 2026
  2. HL7 International — HL7 Terminology (THO) v7.4.0: tabla HL7 0003 «Event type» · consultada el 26 de octubre de 2026
  3. HL7 International — HL7 Version 2 to FHIR Implementation Guide 1.0.0 (STU 1): mapas de segmentos · consultada el 26 de octubre de 2026
  4. HL7 International — HL7 Version 2 to FHIR Implementation Guide 1.0.0 (STU 1): mapas de mensajes · consultada el 26 de octubre de 2026
  5. HL7 International — FHIR Release 5: comparación con HL7 v2 (Comparison-v2) · consultada el 26 de octubre de 2026
  6. IHE International — IHE Devices (DEV) Technical Framework, vol. 1, rev. 10.0 (2024): opciones de transporte del perfil DEC · consultada el 26 de octubre de 2026