Frage

Die Aufgabe besteht darin, ein XML-Objekt von Channel-A an Channel-B zu senden

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

Die Schritte der Kanalkommunikation:

  • Extrahieren Sie im Quelltransformator des Channel-B den HL7V2-Inhalt extrahieren
  • Überschreiben Sie das aktuelle MSG-Objekt in Channel-B mit dem extrahierten Inhalt
  • Fahren Sie in den anderen Kanal-B-Quelltransformatoren fort und erwarten Sie, dass sie referenzieren msg['PID']['PID.5'] wie normal.

Die gute Nachricht ist, dass ich die HL7V2 -Nutzlast in eine Variable extrahieren kann. Das Problem oder die Schwierigkeit besteht darin, die zurückzusetzen msg Objekt oder ein anderes Objekt, um die HL7 -Eigenschaften wie erwartet zu verweisen.

Wenn ich eine neue Variable mit dem erstelle SerializerFactory.getHL7Serializer, es wickelt sich mit den Tags ab <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 Link zum Vollbild

Frage: Haben Sie Vorschläge, wie Sie das MSG -Objekt überschreiben können?

Wie kann ich anfangen, die MSG als solche zu verweisen:

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

Momentane Bedingungen

  • Der Eingangstyp des Empfangskanals ist XML
  • Es ist erforderlich, alle Eigenschaften aus diesem XML -Objekt zu extrahieren. ID ist eine Datenbank PK, die später im Ziel verwendet werden soll.
War es hilfreich?

Lösung

Es tut mir leid, dass meine ursprüngliche Antwort mit den Besonderheiten meines eigenen Szenarios festgefahren war. Ich habe überarbeitet und getestet, um sicherzustellen, dass dies in Ihrem Szenario funktioniert.

Kanal senden - Wickelt den Roh -HL7 in Ihre XML -Struktur und leitet sie an einen Kanal namens RespeptXML weiter. Ich habe dies im Quelltransformator codiert, aber Sie sollten es codieren, wo es für Sie funktioniert.

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

router.routeMessage("ReceiveXML", wrappedHL7);

Empfangskanal - Extrahiert das HL7 aus dem XML, konvertiert ihn in XML und weist dem MSG -Objekt zurück. Ich habe dies im Quellfilter codiert - daher "Return True";

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

Andere Tipps

Alles, was Sie tun müssen, ist, Ihre eingehende XML -Nachricht in den Eingangsvorlagenbereich in Mirth in die MIRTH zu setzen und dann den Meldungsbaum zu verwenden, um die Informationen aus dem XML zu ziehen, die Sie für den JavaScript -Abschnitt des Anschlusses benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top