Escrito por

Sales Engineer at InterSystems Iberia
MOD
Artículo Luis Angel Pérez Ramos · mar 20 2m read

¿Problemas vinculando IRIS con modalidades DICOM?

Como ya conoceréis todos sobradamente, Health Connect / IRIS for Health soporta mensajería DICOM de forma nativa y muchos de vosotros lo habreis usado en vuestro día a día. Pues bien, recientemente descubrí una pequeña incidencia de lo más insidiosa y a la que nuestro querido @Alberto Fuentes me dio la solución.

A esta incidencia la denominaremos, el efecto Creosota (los que conocéis los Monty Python entenderéis la referencia, para el resto aquí podéis ver el sketch)

Why Monty Python's Mr Creosote is the ultimate gross-out icon - Yahoo  Movies UK

El señor Creosota es un voluminoso caballero habituado a opíparas comidas y tras haber ingerido el equivalente al producto interior bruto de Burkina Faso, es una fina chocolatina la que le hace finalmente explotar.

Pues bien, después de este circunloquio, vayamos a la incidencia.

Fallos vinculando modalidades con IRIS

En ocasiones, después de tener una integración DICOM funcionando perfectamente, al incluir una nueva modalidad a la que enviar o de la que recibir mensajes DICOM, esta no nos funciona, retornando un error tal que así:

ERROR <EnsDICOM>AbstractSyntaxNotAccepted: Abstract Syntax '1.2.840.10008.5.1.4.31' rejected between between peers 'IRIS' and 'ORTHANC'

En este ejemplo tenemos un PACS denominado ORTHANC y nuestra instancia de IRIS que intenta remitir una petición de Worklist mediante su correspondiente mensaje DICOM, como véis indica claramente que se está rechazando la conexión con el Abstract Syntax indicado.

Si vamos a nuestra configuración veremos que tenemos correctamente configurada la conexión entre IRIS y ORTHANC:

Y además en la opción de Presentation Context tenemos definido dicho Abstract Syntax:

Y bien, ¿por qué no detecta nuestra configuración? Pues bien, es el efecto Creosota, hemos añadido tantas Abstract Syntax a nuestra configuración que a la hora de hacer la búsqueda de la última que hemos añadido, IRIS es incapaz de encontrarla y estalla en el error que hemos mostrado anteriormente.

¿Cómo podemos evitar este error? Pues es muy sencillo, evitando sobrecargar de sintaxsis que no vamos a usar nuestra configuración del contexto de la asociación. En mi caso cree un nuevo nombre para mi IRIS llamado IRIS_WL:

Al que le añadí únicamente el Abstract Syntax correspondiente a la petición de la Worklist:

Y con eso fue suficiente para que nuevamente mi producción funcionara correctamente.

¡Espero que este consejo os resulte de ayuda!

Comments

Gracias @Luis Angel Pérez Ramos  por la explicación. Muy interesante la referencia a Monty Python 😄😄😄 (por cierto gracias por explicarla, porque no la conocía).

Leyéndote, no he podido evitar acordarme del libro: "Klara y el Sol". Klara (una "amiga artificial" [AA]) intenta entender el mundo con una lógica impecable, pero cuando hay demasiadas variables o patrones superpuestos, su interpretación empieza a volverse… "difusa" (por ejemplo, al ver que un mendigo y su perro parecían moribundos, y al ver que al día siguiente había un "sol radiante" y mendigo y perro se habían repuesto, interpretar que el Sol dispone de efectos curativos "especiales").

A nosotros nos ha pasado algo parecido: al definir 1 sintaxis abstracta con múltiples sintaxis de transferencia dentro, aunque en teoría todo está correcto (la abstracta coincide y la transferencia también), en la práctica parece que el sistema “no sabe por dónde mirar” y acaba rechazando la asociación (entre la Operación del ESB y el PACs). Es decir, que si se configura 1 abstracta con N de transferencia dentro, pese a que la abstracta y la de transferencia empleadas en el envío por el ESB estén configuradas para ese par AET Local y AET Remoto; el ESB, rechaza, dando la excepción que has puesto...

Es como si IRIS, igual que Klara, tuviera que elegir entre demasiadas posibilidades simultáneas y terminara fallando en la decisión más básica: aceptar la conexión. 🤖✨😄😄😄

0