MIRTH:XMLオブジェクトのコンテンツでMSGオブジェクトを上書きする

StackOverflow https://stackoverflow.com/questions/1916798

  •  20-09-2019
  •  | 
  •  

質問

タスクは、チャンネル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 );

alt text フルサイズの画像へのリンク

質問: :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セクションに情報をドラッグアンドドロップすることです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top