2

ソース コネクタ タイプは HL7 ファイルを読み取る「ファイル リーダー」、宛先コネクタ タイプは「データベース ライター」です。私のデータベース テーブルには 2 つの列があります

  1. 参加者情報
  2. SPR_情報

1 つの HL7 ファイルを、Participant_Information 列用と SPR_Information 列用の 2 つの XML ファイルに変換し、両方を 1 つのレコードとしてデータベース テーブルに挿入する必要があります。

一度に 1 つの XML を挿入することはできますが、両方の XML を単一のレコードとしてデータベース テーブルに挿入する方法を見つけることができません。

どんな助けでも本当に大歓迎です!

4

1 に答える 1

4

この回答は、質問とコメントでの私への回答の両方に基づいています。

私の側では、Mirth のバージョン 1.8.2 を参照していることに注意してください。より新しいものを使用している場合は、ここで説明する手法がまだ有効であると確信していますが、ユーザー インターフェイスが私の指示から逸脱している可能性があります。

ここでは、この問題を解決するための 2 つの手法を紹介します。個人的にはテクニック 1 に傾倒しますが、Javascript と E4X に慣れていない場合は、テクニック 2 が優先される可能性があります。

テクニック 1.

Message Builder の代わりに Javascript トランスフォーマーを使用します。メッセージビルダーを使用する際の課題は、入力メッセージを受け取り、それを単一の出力メッセージに変換することです。Javascript はより強力ですが、それは言語を知っている場合に限られます。

を。

1 つの Javascript トランスフォーマーを使用して、メッセージの 2 つのコピーを作成します。必要に応じて Javascript E4X 表記を使用して各変数を変換し、両方を channelMap に格納します。

// init local message variables
var messageParticipant= msg;
var messageSPR= msg.copy();

// messageParticipant transformations using E4X notation: example
messageParticipant['PID']['PID.5']['PID.5.1'][0] = 'Blah';


// messageSPR transformations using E4X notation: example
messageSPR['PID']['PID.5']['PID.5.1'][0] = 'Hey There';


// stick messages in channel map so they can be accessed in your SQL script
channelMap.put('messageParticipant', messageParticipant);
channelMap.put('messageSPR',messageSPR);

b.

SQL コードで 2 つの channelMap 変数を参照します。

INSERT INTO report_queue (PARTICIPANT_IDENTIFICATION, SPR_Information)
VALUES (${'messageParticipant'}, ${'messageSPR'})

テクニック 2.

変換に Javascript を使用することに慣れていない場合は、この手法の方が少し簡単だと思うかもしれませんが、説明するのは少し難しいと思います。

基本的に、3 つの宛先があり、それらを強制的に順番に実行します。最初の宛先は PARTICIPANT_IDENTIFICATION の XML を構築し、2 番目の宛先は SPR_Information の XML を構築します。最初の 2 つの宛先は、実際には channelMap 以外の場所にメッセージを送信しません。3 番目の宛先は、最初の 2 つの結果を利用して、SQL コードを実行します。

を。

概要タブで、[チャネルを同期] がオンになっていることを確認します。これにより、3 つの宛先が順番に実行されます。

b.

送信先タブで、既存のデータベース ライターに加えて、2 つの Javascript ライターを作成します。次の順序で表示される 3 つの目的地を整理します。

Destination           Connector Type
---------------------------------------
Build Participant     JavaScript Writer
Build SPR             JavaScript Writer
SQL                   Database Writer

c.

宛先「Build Participant」を選択し、Javascript テキスト領域に次のように入力します。

channelMap.put('messageParticipant', messageObject.getTransformedData());

d.

宛先の [Build SPR] を選択し、Javascript テキスト エリアに次のように入力します。

 channelMap.put('messageSPR', messageObject.getTransformedData());

e.

Sql の宛先では、手法 1 と同じ SQL コードを使用します。

INSERT INTO report_queue (PARTICIPANT_IDENTIFICATION, SPR_Information)
VALUES (${'messageParticipant'}, ${'messageSPR'})

f.

2 つの Javascript 宛先のそれぞれについて: i. [トランスフォーマーの編集] をクリックします。[メッセージ テンプレート] タブをクリックします。 iii. [送信メッセージ テンプレート] セクションで、データ型が XML に設定されていることを確認します。 、Participant XML に適用可能な変換ステップを追加します (宛先ビルド SPR についても同様です)。

g.

SQL 宛先にはトランスフォーマーを含めないでください。もしそうなら、それらは出力に何の影響も与えません。

幸運を

于 2012-10-06T05:54:12.163 に答える