MIRTH:XMLオブジェクトのコンテンツでMSGオブジェクトを上書きする
質問
タスクは、チャンネルAからチャンネル-BにXMLオブジェクトを送信することです
<MyMessage>
<ID>42</ID>
<hl7v2>
MSH|^~\&|LAB|....
PID|1|....
</hl7v2>
</MyMessage>
チャネル通信の手順:
- チャネルBのソーストランスでは、HL7v2コンテンツを抽出します
- 抽出された内容でチャネルBの現在のMSGオブジェクトを上書きします
- 他のチャネルBソーストランスを続け、参照することを期待しています
msg['PID']['PID.5']
普段通り。
良いニュースは、HL7v2「ペイロード」を変数に抽出できることです。問題や難しさは、のリセットです msg
オブジェクト、または予想どおりHL7プロパティを参照できる他のオブジェクト。
で新しい変数を作成するとき SerializerFactory.getHL7Serializer
, 、タグでラップします <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 );
質問: :MSGオブジェクトを上書きする方法について何か提案はありますか?
MSGの参照を開始するにはどうすればよいですか:
msg['PID']['PID.5']
現在の状況
- 受信チャネルの入力タイプはXMLです
- 必要なのは、そのXMLオブジェクトからすべてのプロパティを抽出することです。 IDは、宛先の後半で使用されるデータベースPKです。
解決
申し訳ありませんが、私の元の答えは、私自身のシナリオの特性に悩まされていました。これがあなたのシナリオで機能することを確認するために、私は作り直してテストしました。
送信チャネル - 生のHL7をXML構造にラップし、ReceiveXMLと呼ばれるチャネルに転送します。私はこれをソーストランスでコーディングしましたが、それがあなたのために働く場所でそれをコーディングする必要があります。
var wrappedHL7 = <MyMessage><ID>123</ID>
<hl7v2>{messageObject.getRawData()}</hl7v2>
</MyMessage>;
router.routeMessage("ReceiveXML", wrappedHL7);
受信チャネル - XMLからHL7を抽出し、XMLに変換し、MSGオブジェクトに割り当てます。私はこれをソースフィルターでコーディングしました - したがって、「trueを返します;」
msg = new XML(SerializerFactory.getHL7Serializer(false,false,true).toXML(msg['hl7v2'].toString()));
return true;
他のヒント
あなたがしなければならないのは、入っているXMLメッセージをMirthのインバウンドテンプレート領域に入れてから、メッセージツリーを使用して、必要なXMLからコネクタのJavaScriptセクションに情報をドラッグアンドドロップすることです。
所属していません StackOverflow