En Mirth Connect, cada interfaz de integración se implementa a través de un canal. Inicialmente, la estructura de un canal (channel) y los tipos de conectores (connectors) pueden parecer algo complejos. En este artículo te lo explicamos de forma clara y sencilla.
Canales en Mirth Connect #
Un canal está compuesto por un conector de origen (source) y al menos un destino (destination), de modo que la salida del conector de origen está conectada a las entradas de los destinos. A través de los conectores de origen y destino, el canal recibe un mensaje de entrada en un formato determinado y genera uno o varios mensajes en otros formatos, tras aplicar las transformaciones incluidas en los conectores.
Además, el canal puede responder al sistema que envió el mensaje original al conector de origen, utilizando la salida de uno de sus conectores de destino, cerrando así el circuito. Esto se consigue utilizando la estructura de datos ResponseMap.
Además, un canal en Mirth Connect:
- Tiene una configuración global que permite almacenar mensajes encriptados en la base de datos y establecer el tipo o duración de su almacenamiento (por ejemplo: sólo mensajes con errores durante 30 días sin encriptar).
- Permite la ejecución de scripts JavaScript en momentos determinados. Por ejemplo, antes de que el origen reciba el mensaje original (preprocessor script) y justo después de que los destinos envíen los mensajes (postprocessor script).
- Posee estructuras de datos para almacenar variables dentro del ámbito de los conectores (ConnectorMap) o del propio canal (ChannelMap).

El funcionamiento de cada canal en Mirth Connect depende en gran medida del tipo de sus conectores. La gran variedad de tipos de conectores, tanto para los orígenes como para los destinos, es lo que hace que esta herramienta sea tan versátil.
Conectores en Mirth Connect #
Hay varios tipos de conectores en Mirth Connect, según el origen y el destino de los mensajes que se manejen. Sin embargo, independientemente de su tipo, todos los conectores comparten la misma estructura.
Estructura de un conector #
Un conector está formado por los siguientes componentes:
- Una Plantilla de Mensaje Entrante: Facilita la manipulación del mensaje entrante.
- Filtros: Definen las condiciones que controlan el paso de los mensajes.
- Transformadores: Manipulan los mensajes entrantes para producir los mensajes salientes deseados.
- Una plantilla de mensaje saliente: Define el formato o esquema del mensaje saliente.
- Transformadores de respuesta: Manipulan los mensajes salientes antes de entregarlos a su destino.
Tanto los filtros como los transformadores son componentes opcionales, pero su uso es crucial para la configuración y el funcionamiento del conector.

Además, los conectores utilizan tipos de datos como HL7 v2.x, HL7 v3.0, X12, EDI, XML, NCPDP o DICOM.
Plantilla de mensaje de entrada (Inbound Message Template) #
Mirth Connect permite utilizar una Plantilla de mensaje de entrada (Inbound Message Template) para facilitar el tratamiento del mensaje entrante, de acuerdo con la estructura y el tipo de datos establecidos para el mensaje entrante.
La plantilla de entrada es el esquema o formato utilizado para interpretar el mensaje entrante. Esta plantilla actúa como una guía para el conector, indicando cómo debe procesar y comprender los datos entrantes. Por ejemplo, si el mensaje entrante es un documento HL7, la plantilla de entrada definirá la estructura de los segmentos HL7 para su correcta interpretación.
Plantilla de mensaje de salida (Outbound Message Template) #
De forma análoga a la plantilla de entrada, Mirth Connect permite utilizar una plantilla de mensaje de salida (Outbound Message Template) para facilitar la construcción del mensaje de salida, de acuerdo con la estructura y el tipo de datos establecidos para el mensaje de salida.
La plantilla de salida define el formato o esquema del mensaje que enviará el conector. Es una representación del aspecto que tendrá el mensaje una vez aplicados todos los filtros y transformadores. Esta plantilla garantiza que el mensaje saliente sea coherente y tenga el formato correcto para el sistema o proceso receptor.
Filtros (Filters) #
Los filtros de un conector son reglas que determinan si el conector debe continuar su ejecución. Consisten en una serie de condiciones que debe cumplir el mensaje entrante para que el conector lo procese. Actúan como mecanismo de control, permitiendo que sólo se procesen los mensajes que cumplan determinados criterios (por ejemplo, valores específicos en determinados campos). Si un mensaje no cumple los filtros establecidos, se descarta o se redirige según la configuración del canal.
Normalmente, se utilizan expresiones como field operator value, aunque ofrecen otras posibilidades, como la ejecución de código JavaScript.
Transformadores (Transformers) #
Los transformadores se encargan de modificar, adaptar o convertir el mensaje entrante en el mensaje saliente deseado. Pueden realizar diversas funciones, como cambiar el formato de los datos, añadir o eliminar información, o realizar cálculos y validaciones. Los transformadores son esenciales para adaptar los mensajes entrantes a las necesidades específicas de los sistemas receptores.
Transformadores de respuesta (Response Transformers) #
Los transformadores de respuesta de Mirth Connect se utilizan para modificar o procesar las respuestas generadas por los conectores de destino antes de devolverlas al conector de origen o pasarlas al siguiente paso del flujo de datos. Esta función es especialmente útil en situaciones en las que la respuesta debe formatearse o modificarse en función de requisitos específicos del sistema receptor.
Tipos de conectores de origen (Source Connectors)) #
Los conectores de origen son capaces de obtener información de una gran variedad de fuentes. Sin embargo, existen dos tipos principales en función del método utilizado para obtener los datos:
- Readers: normalmente se ejecutan con una frecuencia determinada (polling frequency) para leer datos de una base de datos, archivos, otro canal de Mirth Connect, etc.
- Listeners: escuchan en un puerto y se basan en protocolos como DICOM, LLP o TCP.
| Tipo | Conector de origen | Descripción |
|---|---|---|
| Reader | Channel Reader | Lee información de otro canal de Mirth Connect. |
| Database Reader | Lee de una consulta de base de datos. | |
| File Reader | Lee de un archivo. | |
| JavaScript Reader | Ejecuta código JavaScript. | |
| JMS Reader | Lee del Servicio de Mensajería Java. | |
| Listener | HTTP Listener | Escucha en un endpoint HTTP. |
| DICOM Listener | Recibe a través de una conexión DICOM. | |
| LLP Listener | Recibe a través de una conexión LLP. | |
| TCP Listener | Recibe a través de una conexión TCP. | |
| Web Service Listener | Recibe a través de un servicio web. |
Tipos de conectores de destino (Destination Connector) #
De forma análoga a los conectores de origen, para los conectores de destino tenemos dos tipos en función de cómo proporcionen los datos de salida:
- Writers: escriben en una base de datos, en archivos, en otro canal de Mirth Connect, etc.
- Senders: envían información utilizando protocolos como DICOM, LLP o TCP.
La siguiente tabla muestra los tipos de conectores más utilizados:
| Tipo | Conector de destino | Descripción |
|---|---|---|
| Writer | Channel Writer | Escribe en el conector de entrada de otro canal Mirth Connect. |
| Database Writer | Escribe en una base de datos utilizando una consulta. | |
| File Writer | Escribe en el archivo. | |
| JavaScript Writer | Ejecuta código Javascript para proporcionar la salida. | |
| JMS Writer | Escribe en el Servicio de Mensajes Java. | |
| Sender | DICOM Sender | Envía utilizando DICOM. |
| HTTP Sender | Envía utilizando HTTP. | |
| LLP Sender | Envía utilizando LLP. | |
| TCP Sender | Envía utilizando TCP. | |
| Web Service Sender | Envía a un servicio web. |
Relación entre los conectores de entrada y salida #
Como habrás observado, existe una relación entre los conectores de entrada y los de salida, ya que cada conector de entrada tiene un conector de salida análogo y viceversa.
En la tabla siguiente puedes ver claramente cómo están organizados:
| Tipo de origen | Conector de origen | Conector de destino | Tipo de destino |
|---|---|---|---|
| Reader | Channel Reader | Channel Writer | Writer |
| Database Reader | Database Writer | ||
| File Reader | File Writer | ||
| JavaScript Reader | JavaScript Writer | ||
| JMS Reader | JMS Writer | ||
| Listener | DICOM Listener | DICOM Sender | Sender |
| HTTP Listener | HTTP Sender | ||
| LLP Listener | LLP Sender | ||
| TCP Listener | TCP Sender | ||
| Web Service Listener | Web Service Sender |
Conclusión #
La versatilidad y potencia de Mirth Connect se hacen evidentes cuando exploramos la flexibilidad y variedad de opciones que ofrecen sus canales y conectores. Al comprender cómo funcionan y cómo pueden combinarse eficazmente, los desarrolladores y los profesionales informáticos tienen a su disposición una herramienta formidable para crear soluciones de integración de datos sólidas y eficaces en el ámbito sanitario.
Mirth Connect destaca por su capacidad para adaptarse a una amplia gama de necesidades de integración, desde la simple manipulación de mensajes hasta complejos flujos de trabajo de integración. Esta flexibilidad se debe en gran medida a la arquitectura modular del sistema y a la variedad de conectores disponibles, que permiten a los usuarios recibir, transformar y enviar información en múltiples formatos y a través de distintos protocolos.
Al utilizar Mirth Connect, es importante recordar que una planificación y estructuración cuidadosas de los canales y conectores son fundamentales para el éxito de cualquier proyecto de integración. Un conocimiento profundo de las capacidades de cada tipo de conector y de cómo interactúan entre sí puede ayudar a los desarrolladores a evitar errores comunes y optimizar el rendimiento de sus interfaces de integración. En resumen, invertir tiempo en comprender y planificar adecuadamente tus integraciones con Mirth Connect es una inversión en la eficacia, sostenibilidad y calidad de tus sistemas sanitarios integrados.
También te puede interesar

