Domanda

Il compito è quello di inviare un oggetto XML da Canale-A a canale-B

<MyMessage>
<ID>42</ID>
<hl7v2>
    MSH|^~\&|LAB|....
    PID|1|....
</hl7v2>
</MyMessage>

Le fasi del canale di comunicazione:

  • trasformatore sorgente del canale-B, estrarre il contenuto HL7v2
  • sovrascrivere l'oggetto msg corrente a canale-B con i contenuti estratti
  • continua negli altri trasformatori sorgente del canale-B e in attesa di fare riferimento a msg['PID']['PID.5'] come normale.

La buona notizia è che posso estrarre l'HL7v2 'payload' in una variabile. Il problema o difficoltà è resettare l'oggetto msg, o qualsiasi altro oggetto per poter fare riferimento alle proprietà HL7 come previsto.

Quando creo una nuova variabile con il SerializerFactory.getHL7Serializer, avvolge con il tag <HL7Message>.

channelMap.put('MessageID', msg['ID']); //successful
channelMap.put('v2payload',msg['HL7v2']); //also looks good

var v2Msg = SerializerFactory.getHL7Serializer(false,false,true).toXML(msg['HL7v2']);

channelMap.put('v2Msg', v2Msg );

alt text collegamento immagine full size al

Domanda :? Avete qualche suggerimento su come sovrascrivere l'oggetto msg

Come posso iniziare riferimento alla msg in quanto tale:

msg['PID']['PID.5']

Condizioni attuali

  • tipo di ingresso del canale di ricezione è XML
  • la necessità è quella di prendere estrarre tutti i oggetti di tale oggetto XML; ID è un PK banca dati da utilizzare successivamente nella destinazione.
È stato utile?

Soluzione

Mi dispiace la mia risposta originale è stato impantanato con le peculiarità del mio scenario. Ho rielaborato e testato per garantire che questo funziona nel vostro scenario.

L'invio di Canale - avvolge l'HL7 grezzo in uno struttura XML, e in avanti ad un canale chiamato ReceiveXML. Ho codificato questo nel trasformatore di origine, ma si dovrebbe codificarlo in cui funziona per voi.

var wrappedHL7 = <MyMessage><ID>123</ID>
                      <hl7v2>{messageObject.getRawData()}</hl7v2>
                 </MyMessage>;

router.routeMessage("ReceiveXML", wrappedHL7);

Ricezione Canale - estrae il HL7 dal XML, lo converte in XML e assegna di nuovo all'oggetto msg. Ho codificato questo nel filtro di origine - da qui "return true;"

msg = new XML(SerializerFactory.getHL7Serializer(false,false,true).toXML(msg['hl7v2'].toString()));
return true;

Altri suggerimenti

Tutto quello che dovete fare è mettere il vostro messaggio XML in entrata nella zona modello in entrata nella gioia e quindi utilizzare l'albero messaggio di trascinare e rilasciare le informazioni dal XML che è necessario per la sezione javascript del connettore.

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