GenericHL7Output ノードを使用して、宛先アプリケーションへのメッセージを準備します。
DFDL メッセージ・モデルには以下のメリットがあるため、可能であれば新規および更新するアプリケーションには HL7DFDLOutput ノードを使用することをお勧めします。
HL7DFDLOutput ノードについて詳しくは、HL7DFDLOutput ノードを参照してください。
GenericHL7Output ノードは、HL7 メッセージを MRM ドメインで受信し、TCP/IP ポート上で listen している宛先アプリケーションへの接続を開きます。 接続が確立されると、HL7 メッセージを送信します。これには、レコードの終わりとして「末尾の MLLP バイト」プロパティーに設定された区切り文字が付き、そのデフォルト値は 1C0D です。ノードの「データ・レコード送信タイムアウト (秒)」プロパティーによって指定された時間制限内に正常にデータが送信されなかった場合、メッセージは Failure ターミナルに渡されます。
正常にメッセージを送信した後、GenericHL7Output ノードは宛先アプリケーションからの肯定応答 (ACK) を待機します。 HL7 肯定応答は MLLP バイトを除去して構文解析され、戻りコードが検査されます。 GenericHL7Output ノードでエラーが生じると、メッセージは Log Retry ターミナルか Failure ターミナルに渡されます。
送達が成功し、肯定応答で AR コードが返されると、再試行限度を超えていなければ、メッセージは Log Retry ターミナルに渡されます。
メッセージが送信され、肯定応答で AE コードが返された場合、または有効な肯定応答が受信されなかった場合、メッセージは Failure ターミナルに渡されます。
メッセージが送達されず、宛先が使用不可であることが想定される場合、再試行限度を超えていなければ、メッセージは Log Retry ターミナルに渡されます。
Log Retry ターミナルが接続されていないか、パスが成功で終わっている場合、送達は再試行されます。 Log Retry ターミナルが接続されており、例外が下流にスローされる場合、メッセージは再試行されずに、Failure ターミナルに渡されます。
Failure ターミナルが接続されていない場合には、例外がスローされます。
HL7については、Health Level Seven Internationalを参照してください。
GenericHL7Output ノードはメッセージ・フローのノード・パレットの「Healthcare」ドロワーに含まれ、IBM Integration Toolkit では、次のアイコンで表されます。
GenericHL7Output ノードの使用方法の例が、パターン・エクスプローラー」ビューの「Healthcare」カテゴリーの Healthcare: HL7 から HL7 組み込みパターンに示されています。
GenericHL7Output ノードがメッセージ・フローで使用される場合、HL7v25P メッセージ・セットの HL7 メッセージに対して構文解析された MRM ツリーにメッセージが見つかることをノードは想定します。 GenericHL7Output ノードに渡すメッセージが正しいかどうかが確かでない場合は、「検証」プロパティーを設定して、処理開始前に強制的に構文解析することができます。構成された宛先にメッセージが正常に送信されて、宛先から処理成功の肯定応答が送り返された場合、肯定応答はノードの Out ターミナルに渡されます。
失敗の後で再びノードにメッセージ送信を試行させるには、ノードがメッセージ送信を試みる回数を「再試行限界」プロパティーの値に設定する必要があります。 すべての再試行をログに記録する場合、「再試行をログに記録」プロパティーを選択する必要があります。 「再試行をログに記録」プロパティーを選択すると、試行のたびにメッセージが Log Retry ターミナルに渡されます。環境には、ログ・メッセージで使用できる値が保持されます。以下に挙げる環境の表を参照してください。
Log Retry ターミナルを接続する場合、メッセージ・フロー・スレッドは正常に終了し、その後も再試行が行われます。 キャッチされていない例外がこのスレッドにスローされる場合、再試行は続行されません。
メッセージが Failure ターミナルに渡されると、メッセージ・フローはエラー処理手順に従って動作します。エラーがログに記録され、データの保存または例外のスロー、あるいはその両方が実行されるように、Failure ターミナルを接続する必要があります。 Failure ターミナルが接続されていない場合、エラーはサイレント障害を引き起こし、例外はスローされず、イベントはイベント・ログに記録されません。 エラー処理で使用できるエラー・コードとその他の情報については、以下に挙げるエラーの表を参照してください。
GenericHL7Output ノードで障害が発生した場合、メッセージが Failure ターミナルに渡されます。 LocalEnvironment.HL7 には、以下に挙げる環境の表に示したフィールドがあります。これらのフィールドは、否定応答 (NACK) またはエラー・メッセージの作成に使用される情報を提供します。
フィールド | 説明 |
---|---|
FlowMilestoneReached | エラーが発生した場所を示します |
Retry | このアクションを再試行できるかどうかが示されます |
ErrorCondition | エラーのテキスト形式の説明を示します |
Attempt | 再試行ループでエラーが発生した場合に、この変数に次のテキストが格納されます。 「Attempt <i> of <n>」 |
RetryCount | 現在の再試行を示します |
RetryLimit | 許可される再試行回数を示します |
生じる可能性のあるエラー・コードを以下のエラーの表に示します。
エラー | ターミナル | 再試行 | コード | エラー・テキスト |
---|---|---|---|---|
ノードは HL7v25P メッセージ・セットおよび HL7 メッセージ形式を使用して着信メッセージを構文解析することに失敗しました。 | Failure | いいえ | BADHL7 MESSAGE | 着信 HL7 メッセージを構文解析できません。 |
ノードは構成された宛先へのメッセージの送信に失敗しました。 | Log Retry | はい | SENDHL7 | TCP/IP エラー。HL7 メッセージが送信されませんでした。 |
ノードは肯定応答の構文解析に失敗しました。 | Failure | いいえ | ACKPARSE ERROR | ACK メッセージの構文解析中の MSH エラー。 |
肯定応答を受信しましたが、肯定応答コードが存在しません。 | Failure | いいえ | ACKERROR | MSA 構文解析または妥当性検査エラー: MSA 1。 肯定応答コードが NULL です。 ACK には次のエラー・メッセージが格納されました: error_message |
肯定応答を受信しましたが、メッセージ制御 ID が存在しません。 | Failure | いいえ | ACKERROR | MSA 構文解析または妥当性検査エラー: MSA 2。 MessageControlID が NULL です。 ACK は次のエラー・メッセージを送信しました: error_message |
タイムアウト期間に肯定応答を受信しませんでした。 | Failure | いいえ | TIMEOUT | ノードは指定されたタイムアウト内に ACK メッセージを受信するのに失敗しました。 |
ノードは肯定応答の受信に失敗しました。 | Failure | いいえ | RECEIVE ACK | TCPIP エラー。ノードは ACK メッセージの受信に失敗しました。 |
ノードはメッセージの送達を試行しましたが、構成された再試行限界に達しました。 | Failure | いいえ | SENDHL7 TOOMANY REPEATS | ノードは ACK メッセージの受信に失敗しました。 |
ノードは AR 肯定応答を受信しましたが、構成された再試行限界に達しました。 | Failure | いいえ | ACKAR TOOMANY REPEATS | ノードはメッセージの送信を再試行しましたが、メッセージを正常に送信できません。 |
GenericHL7Output ノードのインスタンスをメッセージ・フローに追加すると、そのノードを構成することができます。
値を入力する必要のあるすべての必須プロパティー (デフォルト値が定義されていないプロパティー) には、アスタリスクで印が付けられています。
ターミナル | 説明 |
---|---|
In | ノードが処理する HL7 メッセージを受け入れる入力ターミナル。 |
Failure | ノードがメッセージの正常な送信に失敗した場合、また正常な処理の肯定応答の受信に失敗した場合に、メッセージがルーティングされる出力ターミナル。 |
Out | メッセージが宛先に正常に送信され、正常な処理の肯定応答を受信した場合に、肯定応答がルーティングされる出力ターミナル。 |
Log Retry | ノードがメッセージの正常送信か、処理成功の肯定応答の受信のいずれかに失敗し、かつ再試行カウントが超過していない場合に、メッセージがルーティングされる出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 「M」の見出しの列は、プロパティーが必須 (デフォルトが定義されていない場合に値の入力が必要なときは、アスタリスクで印が付けられている) かどうかを示します。「C」の見出しの列は、プロパティーが構成可能 (ブローカー・アーカイブ (BAR) ファイルにメッセージ・フローを追加してデプロイするときに、値を変更できる) かどうかを示します。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | GenericHL7Output | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
接続の詳細 | はい | はい | localhost:2222 | hostname:port という形式の宛先アプリケーションの TCP/IP 接続 |
データ・レコード送信タイムアウト (秒) | はい | はい | 60 | データの送信または肯定応答の受信の再試行をノードが待機する時間 (秒単位)。 |
先頭の MLLP バイト | はい | はい | 0B | 先行 MLLP バイト。 これは、発信 HL7 レコードに追加され、着信肯定応答から削除されます。 |
再試行限界 | はい | はい | 5 | ノードが宛先アプリケーションへの HL7 メッセージの送信を試行する最大回数。 |
再試行をログに記録 | はい | はい | 選択されている | メッセージ送信の毎回の試行を Log Retry に渡してログ記録できるようにするかどうかを指定します。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
区切り文字 | いいえ | いいえ | カスタム区切り文字 | このプロパティーは編集できません。 |
末尾の MLLP バイト | はい | はい | 1C0D | HL7 レコード区切り文字として使用される末尾 MLLP バイト。 これらの末尾 MLLP バイトは、TCPIPClientOutput ノードによって追加されます。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
区切り文字 | いいえ | いいえ | カスタム区切り文字 | このプロパティーは編集できません。 |
末尾の MLLP バイト (肯定応答) | はい | いいえ | 1C0D | 着信肯定応答の末尾を検出するために使用される HL7 区切り文字。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
妥当性検査 | いいえ | はい | なし | このプロパティーは、MRM ドメインでの着信 HL7 メッセージの妥当性検査のレベルを決定します。
有効な値は以下のとおりです。
|