問題は、インバウンド メッセージ テンプレートが、指定または操作したいタイプとは異なるタイプを想定していることです。要件は、SINGLE チャネルで HL7 v2 を v3 に変換し、Web サービスを呼び出してから、SOAP の結果の XML を変換し、それを HL7 v2.x に変換して元の呼び出し元に送り返すことです。これは非同期で行う必要があります。
セットアップ: 誕生チャネルの状況を考えてみましょう:
- ソースは LLP リスナーです。タイプは HL7 v2.x です。送信者は HCIS (Health Care Information System) です。
- ソース トランス、目前の問題とは関係ありません。
4 つの目的地 (順番に):
- Javascript Writer - コード テンプレートを呼び出してデータベース作業を行います。
- SOAP Sender - HL7 v3 を返す Web サービスを呼び出します。
- Javascript ライター - コード テンプレートを呼び出す少数の Transformers DB ライターが含まれています。問題はここにあります。
- Javascript Writer - 再びコード テンプレートを呼び出します。
PostProcessor はカスタム確認応答を生成して HCIS に送り返します。
問題: インバウンド メッセージ テンプレートは、ソースからデータ型を継承するため、HL7 v2.x を想定しています。HL7 v3 テンプレートをアウトバウンド メッセージ テンプレートにマップする必要があります。アウトバウンド テンプレートは何にもバインドされていないため、正常に機能しています。
tmp['PID']['PID.5']['PID.5.1'] = msg['controlActProcess']['subject']['target']['identifiedPerson']['name']['family'].toString();
受信データ型として HL7 v3 を使用して別のチャネルでこのセットアップをテストしましたが、完全に機能します。
質問: チャネルの受信データ型を継承する代わりに、Mirth に受信メッセージ テンプレートを HL7 v3 として認識させるにはどうすればよいですか?