Pregunta

Estoy tratando de utilizar HAPI para analizar HL7 (v2.3) Los mensajes generados por un externo sistema. Estos mensajes incluyen segmentos Z personalizados, incluyendo el segundo segmento del mensaje (entre MSH y EVN).

MSH
Z
EVN
...

El problema es que para cualquiera de los segmentos analizados después de encontrarse con este primer segmento Z, HAPI va a generar la estructura del mensaje, pero todos los datos en que la estructura es nulo. Por lo tanto, voy a tener un objeto aún segmento de EVN, pero no va a tener ningún dato en ella.

he intentado:

  • Nada, sólo analizar el mensaje con HAPI fuera de la caja, e ignorar este segmento
  • Extendiendo HAPI mediante la creación de mis propias clases de mensajes ADT (que se extiende a las clases predeterminadas) que conecta en el segmento de Z con:
    • addNonstandardSegment ()
    • add () con una implementación personalizada de AbstractSegment

Mi solución actual es comprobar la validez de analizar el mensaje antes de HAPI lo consigue y cortar este segmento, pero este es definitivamente el enfoque equivocado. ¿Alguien tiene ideas sobre lo que debería hacer?

¿Fue útil?

Solución

Lo tengo. Resulta que, debido a la Z-segmento fuera de lugar (más sobre esto más adelante), el objeto EVN se está catalogando internamente como "EVN2" y un segundo espacio en blanco EVN se estaba añadiendo. Estoy muy seguro por qué el código se comportó de esta manera, pero me quedo hasta que en un informe de problemas en el proyecto de HAPI.

La solución consiste en alterar la extensión del mensaje ADT. En vez de extenderlo y añadiendo el Z-segmento con this.add () en mi constructor de la subclase, tuve que copiar el ADT_A originales * clase y modificar su método init () para añadir la clase Z segmento en el orden correcto como se esperaba mensaje.

Por cierto, la solución anterior he mencionado se puede hacer con un subclase analizador , que es válido para la fijación de los mensajes rotos -. simplemente no éste, ya que no está "roto" por sí mismo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top