Domanda

Sto cercando di utilizzare HAPI per analizzare HL7 messaggi (v2.3) generati da un esterno sistema. Questi messaggi includono segmenti Z personalizzati, tra cui il secondo segmento del messaggio (tra il MSH e EVN).

MSH
Z
EVN
...

Il problema è che per qualsiasi segmento analizzati dopo rilevare questo primo segmento Z, HAPI genererà la struttura del messaggio ma tutti i dati in tale struttura è nullo. Quindi, io sarò ancora avere un oggetto segmento EVN, ma non avrà alcun dato in esso.

Ho provato:

  • Niente, solo analizzare il messaggio con out-of-the-box HAPI, e ignorare questo segmento
  • L'estensione HAPI creando le mie classi di messaggi ADT (estendendo le classi di default) che collegano nel segmento Z con:
    • addNonstandardSegment ()
    • add () con un'implementazione personalizzata di AbstractSegment

La mia soluzione attuale è quella di pre-analizzare il messaggio prima di HAPI ottiene e ritagliare questo segmento, ma questo è sicuramente l'approccio sbagliato. Qualcuno ha idee su cosa dovrei fare?

È stato utile?

Soluzione

ottenuto. Si scopre che, a causa del fuori-luogo Z-segmento (più su questo più avanti), l'oggetto EVN veniva catalogato internamente come "EVN2" e un secondo vuoto EVN veniva aggiunto. Io non sono molto sicuro perché il codice si è comportato in questo modo, ma mi prendo che in un rapporto problema nel progetto HAPI.

La soluzione è quello di modificare l'estensione del messaggio ADT. Invece di estenderlo e aggiungendo la Z-segmento con this.add () nel mio costruttore sottoclasse, ho dovuto copiare la classe originale ADT_A * e modificare il suo metodo init () per aggiungere la classe segmento Z nell'ordine corretto come previsto messaggio.

A proposito, la soluzione precedente ho detto può essere fatto con un sottoclasse parser, che è valido per il fissaggio dei messaggi rotti -. solo non questo, poiché non è "spezzato" per se

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top