Trabajar directamente con mensajes HL7 no es fácil. De entre todas las herramientas de este tipo disponibles en la red nosotros solemos utilizar 7Edit.
En este artículo hablaremos sobre los mensajes HL7 v2 (en adelante omitiremos la versión v2) y comprobaremos como usar una herramienta adecuada facilita su manipulación. HL7 V2 es uno de los estándares HL7 más importantes.
Mensajes HL7 y necesidad de una herramienta
Antes de hablar de la herramienta, resumamos en pocas líneas qué es un mensaje HL7 y cómo se estructura.
Un mensaje HL7 es una cadena de texto que puede ser expresada tanto en lenguaje XML (v2.x XML), como en la nomenclatura de pipes (‘I’), esta última es la forma más habitual y la que utilizaremos en el resto del artículo. Ambas opciones son equivalentes y es posible la conversión en ambos sentidos.
Un mensaje HL7 tiene una estructura en función del tipo de mensaje y del evento disparador del mismo. A su vez, esta estructura se compone de segmentos.
Cada tipo de mensaje se explica en un capítulo específico del estándar HL7. La versión 2.6 de HL7 se compone de 17 capítulos y los tipos de mensajes o segmentos soportados los podemos consultar en este apéndice.
Segmentos
Las características de estos segmentos (obligatoriedad, cardinalidad, etc.) son las que definen la estructura del mensaje mediante lo que conocemos como mensaje abstracto. A continuación se muestra un ejemplo:
Campos
Asimismo, los segmentos a su vez se componen de campos, con sus propias características de obligatoriedad, cardinalidad, etc. Estos campos, a su vez, se componen de componentes y subcomponentes. Continuando con el ejemplo anterior, un posible mensaje que cumple la estructura es:
Componentes y subcomponentes
Los componentes y subcomponentes de cada campo dependen del tipo de dato utilizado para representarlo. En HL7 existen muchos tipo de datos que están en continua evolución a lo largo de sus versiones. Los más habituales son:
Todo esto está muy bien explicado en la sección de recursos de HL7Spain de donde hemos obtenido las ilustraciones anteriores.
Según lo anterior, es fácil comprobar que es muy difícil trabajar con este tipo de mensajes sin una herramienta que nos facilite su manipulación. Ya que cometeríamos muchos errores fácilmente evitables y perderíamos mucho tiempo (¡y por lo tanto dinero!).
En nuestro caso esta herramienta se llama 7Edit.
7Edit y sus características
7Edit es un software privativo con un tipo de licencia de uso por usuario, pero que realmente resulta rentable a poco que lo utilicemos.
Advertencia: no estamos afiliados ni asociados de ningún modo con 7Edit o sus creadores Real Seven LLC.
Aunque en su web ya se describen sus características, nosotros vamos a mencionar las que nos resultan más interesantes desde un punto de vista práctico:
Navegación y edición de mensajes HL7
La navegación y edición de mensajes HL7 es la característica fundamental y más importante de la herramienta. Nos proporciona una ventana con un navegador en forma de árbol, para explorar y editar el mensaje HL7 de forma rápida y sencilla según la estructura del mensaje (segmentos, campos, tipos de datos, repeticiones, componentes, subcomponentes, etc.). Esta ventana se encuentra sincronizada con la ventana principal de la aplicación donde tenemos el texto del mensaje HL7.
Validación de mensajes HL7
Esta característica nos permite validar y en muchos casos corregir de manera automática los mensajes HL7 en base a perfiles de validación configurables por los usuarios. Estos perfiles nos permiten ser más o menos restrictivos a la hora de manipular mensajes y son configurables a nivel de mensajes, segmentos, campos y definiciones.
Esto es muy útil, por ejemplo, a la hora de contrastar la mensajería real con la documentación proporcionada por el proveedor cuando consumimos mensajería HL7, ya que en muchos casos no hay una correspondencia estricta.
Por otro lado, también es útil para comprobar que la mensajería que nuestra aplicación está generando cumple las especificaciones establecidas.
Envío y recepción de mensajes HL7
7Edit nos permite configurar perfiles de envío y de recepción para conexiones TCP/IP, serial, MLLP, etc. Esto es muy útil para realizar pruebas sobre la marcha a la vez que vamos trabajando con los mensajes.
Por ejemplo, si nuestra aplicación genera y devuelve mensajes de tipo ACK con tipos de errores específicos, resulta muy sencillo forzar errores mediante un perfil de validación. Enviaríamos los mensajes mediante un perfil de envío y recibiríamos los ACK mediante un perfil de recepción para su posterior análisis en la propia aplicación.
Otras características
Además de todo lo anterior, la herramienta nos ofrece otras muchas características muy útiles como:
- personalización de definiciones y tablas,
- construcción de segmentos Z (para los casos en que el estándar HL7 no define la información a intercambiar),
- exportación e importación entre la versión XML y la nomenclatura de pipes,
- comparación de mensajes, etc.
En su web podemos acceder a un vídeo donde en 5 minutos se da una introducción a los mensajes HL7 y se ilustra la potencia de esta herramienta.
En resumen, 7Edit es una herramienta que nos facilita mucho la vida a la hora de trabajar con mensajes HL7. De entre las muchas herramientas analizadas y probadas es la que nosotros hemos elegido y recomendamos.
Aclaramos que no estamos afiliados ni relacionados con 7Edit de ningún modo más allá de ser usuarios.
Próximamente, publicaremos una serie de artículos sobre Mirth Connect, la herramienta de motor de integración de referencia sobre la que basamos nuestros desarrollos.
Deja una respuesta