HL7DFDLInput ノード

MLLP over TCP/IP プロトコルを使用して統合ノード (integration node)に接続するクライアントからのメッセージを受信するには、HL7DFDLInput ノードを使用します。

目的

HL7DFDLInput ノードは、ポート上で listen します。またクライアント・ソケットがポートに接続する際には、サーバー・ソケットはクライアント用に接続を作成します。 接続が開くとデータのレコードが受信されます。構成可能な区切り文字の存在により、レコードの終わりが検出されます。データ読み取り中にデータ待機のタイムアウトや完全レコードの待機中の接続のクローズなどのエラーが発生すると、データは Failure ターミナルに送信されます。Failure ターミナルが接続されていない場合には、例外がスローされます。ノードの「再試行のメカニズム」プロパティーが「失敗」に設定されていない場合は、データが正常に取り出されるまで、あるいは「再試行のしきい値」プロパティーに定義された試行回数を超えるまで、ノードは再接続を試みます。

HL7DFDLInput ノードでは、メッセージが MLLP over TCP/IP プロトコルを使用することが必要です。MLLP 先頭バイトがないと、メッセージは Failure ターミナルに送信されます。

HL7DFDLInput ノードは、DFDL ドメインで定義されているメッセージを処理します。メッセージの構文解析には、DFDL メッセージ・モデルHL7 メッセージ形式が使用されます。構文解析エラーが発生した場合、または必須の MSH フィールドがない場合、メッセージは Failure ターミナルに渡されます。メッセージ・モデルについては、メッセージ・モデル (IBM® Integration Bus 製品資料内) を参照してください。

重複していないか検査するように HL7DFDLInput ノードを構成できます。 各着信 HL7 メッセージの MSH ヘッダー・セグメントには MessageControlID フィールドが入っており、これによってレコードが識別されます。「重複をチェック」プロパティーが選択されている場合、送信側に返された肯定応答 (ACK) とともにすべての ID が重複キューに保管されます。着信メッセージの ID は保存済みの ID と照合されて、重複していないか判別されます。重複が検出されると処理は行われませんが、最初のメッセージと一緒に送信された同一の肯定応答が送信側に返されます。重複キューはノードのプロパティーとして指定されます。

ID は、「重複期間」プロパティーに定義されている期間にわたり、重複キューに保管されます。 この期間が経過した後、ID は削除され、同じ ID のメッセージが重複として扱われることはなくなります。重複キューのサイズは、設定した期間に予期されるピーク数のメッセージ ID が収まるものでなければなりません。

着信メッセージが重複してはいない場合、メッセージはさらに処理を加えるため HL7DFDLInput ノードの Out ターミナルに渡されます。重複が検出された場合、HL7DFDLInput ノードは ACK を要求側に返します。 重複の報告が選択されている場合に重複が検出されると、メッセージは Failure ターミナルに渡されます。

メッセージの処理はトランザクション制御下で行われます。メッセージ・フローがロールバックされると、重複 ID キューに追加された重複 ID は削除されます。したがって、このメッセージが再発信されると、重複と識別されずに、新規メッセージとして処理されます。

HL7 については、Health Level Seven International を参照してください。

HL7DFDLInput ノードはメッセージ・フローのノード・パレットの「Healthcare」ドロワーに含まれ、IBM Integration Toolkit では、次のアイコンで表されます。

GenericHL7DFDLInput ノード・アイコン

メッセージ・フロー内でのこのノードの使用

メッセージ・フローで HL7DFDLInput ノードが使用される場合、Out ターミナルに渡されるメッセージには、先頭と末尾の MLLP バイトが削除された、構文解析済みの HL7 メッセージが収められています。メッセージ・ツリーには MQMD および MQRFH2 ヘッダーが収められているため、メッセージは必要に応じてキューに直接書き込むことができます。メッセージの本体には、DFDL ドメインの HL7 メッセージが入ります。メッセージ・フローが、肯定応答 (ACK) を要求側に返します。

HL7DFDLInput ノードで障害が発生した場合、メッセージは Failure ターミナルに渡されます。 LocalEnvironment.HL7 には、以下に挙げる環境の表に示したフィールドが収められます。これらのフィールドは、否定応答 (NACK) またはエラー・メッセージの作成に使用される情報を提供します。

フィールド 説明
FlowMilestoneReached エラーが発生したときに実行されるアクションを示します。
SendNACK 否定応答 (NACK) を送信します。
EndConnection YES: 接続を閉じます。

NO: 接続を閉じません。

HL7RC HL7 戻りコード。
ErrorCondition NACK に含めるエラー・テキスト。
「SendNACK」フィールドが YES に設定されている場合、NACK が要求側に返されます。 以下の条件のいずれかが生じると、「SendNACK」フィールドは NO に設定されます。
  • 着信メッセージに正しい MLLP 区切り文字が含まれていなかったため、MLLP プロトコルがサポートされていないと見なされる。
  • メッセージが重複しており、HL7DFDLInput ノードによって NACK が返された。

「EndConnection」YES に設定されている場合、接続を閉じる必要があります。 着信メッセージに正しい MLLP 区切り文字が含まれていなかったために MLLP プロトコルがサポートされていないと見なされる場合、このアクションが実行されます。

「HL7RC」 (HL7 戻りコード) および「ErrorCondition」フィールドは、要求側に返す NACK で情報を提供するために使用できます。

生じる可能性のあるエラー・コードを以下のエラーの表に示します。
到達したフロー・マイルストーン 戻りコード エラー・テキスト
DETECTDUPLICATE AR 重複の検査中にエラーが発生しました
PARSE AE DFDL 構文解析エラー・メッセージが示されます。メッセージに問題の要約が示されます。
BUILDACK AR ACK メッセージの作成中にエラーが発生しました。

(このエラーは、重複メッセージであるために ACK が返される場合に発生します)。

SENDACK AR ACK メッセージの作成中にエラーが発生しました

(このエラーは、重複メッセージであるために ACK が返される場合に発生します)。

DUPLICATEERROR AR 重複検出の際の障害。重複キューが満杯です。

重複検出の際の障害。メッセージ処理が失敗しました。

SAVINGDUPDATA AR 重複データの保存中にエラーが発生しました
DUPLICATE RECORD AR 重複レコードが検出されました

HL7DFDLInput ノードはトランザクション処理されます。 そのノードで使用されたメッセージ・フローが正常終了すると、トランザクション下で書き込まれたすべてのメッセージがコミットされます。キャッチされなかった例外がある状態でメッセージが終了した場合、そのトランザクション下で書き込まれたすべてのメッセージ (そのメッセージ自体も含む) はロールバックされます。このアクションには、重複検出用の ID を保存するキューに入るメッセージも含まれます。 このような状況でロールバックする必要のあるメッセージを見極め、他のメッセージ (エラー・メッセージなど) がトランザクション下で書き込まれないようにする必要があります。

HL7DFDLInput ノードの構成

HL7DFDLInput ノードのインスタンスをメッセージ・フローに追加すると、そのノードを構成することができます。

値を入力する必要のあるすべての必須プロパティー (デフォルト値が定義されていないプロパティー) には、アスタリスクで印が付けられています。

ターミナルおよびプロパティー

HL7DFDLInput ノードのターミナルについては、次の表に説明されています。
ターミナル 説明
Failure エラーが発生した場合にメッセージがルーティングされる出力ターミナル。
Out 外部リソースからメッセージが正常に取り出された場合に、メッセージがルーティングされる出力ターミナル。
Catch 例外がダウンストリームでスローされ、ノードによってキャッチされた場合に、メッセージがルーティングされる出力ターミナル。 例外がキャッチされるのは、このターミナルが接続されている場合のみです。

以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。

HL7DFDLInput ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー M C デフォルト 説明
ノード名 はい いいえ HL7DFDLInput ノードの名前。
簡略説明 いいえ いいえ   ノードの簡単な説明
詳細説明 いいえ いいえ   メッセージ・フロー内のノードの目的を説明するテキスト
HL7DFDLInput ノードの「HL7 処理」プロパティーについては、次の表に説明されています。
プロパティー M C デフォルト 説明
重複をチェック いいえ いいえ 選択されている HL7 MSH ヘッダーの固有メッセージ ID によって判別される重複メッセージを検出するかどうかを決定します。
重複が検出された場合、以下のアクションが実行されます。
  • タイムアウト期間内にメッセージを受信した場合、メッセージは処理されませんが、元のメッセージに対して送信された同じ ACK が送信側に返されます。
  • タイムアウト期間が満了すると、重複メッセージを受信しても通常どおり処理されます。
重複を報告 いいえ はい 選択されている 指定した時間内に到達した重複メッセージによってエラー通知メッセージを生成するかどうかを決定します。
重複期間 いいえ はい 86400 有効期限が切れるまで ID メッセージを保持する長さを定義します (秒単位)。 この期間が経過した後、重複は認識されなくなり、通常どおり処理されるようになります。デフォルト (86400) は 24 時間に相当します。

このプロパティーは、「重複をチェック」を選択した場合は必須です。

重複 ID キュー いいえ いいえ   現在の重複 ID のリストを保持するキューを定義します。着信メッセージはこのリストに対して照合されます。

このプロパティーは、「重複をチェック」を選択した場合は必須です。

先頭の MLLP バイト はい いいえ 0B MLLP プロトコルの一部である先頭バイトを定義します。 これは、メッセージが構文解析され、処理される前に除去されます。
重複の確認 いいえ はい 選択されている 重複メッセージが検出されたときに、肯定応答メッセージを送信するかどうかを決定します。
汎用モデルの使用 いいえ いいえ 選択されている ノードから送信されるメッセージ・ツリーの構造を判別します。
  • このオプションが選択解除されている場合、ツリーの構造は着信メッセージ内の MSH.9.MessageType フィールドの内容によって判別されます。ツリーの最上位エレメントは ADT_A01 になります。このエレメントには、各 HL7 セグメントの子エレメント (例えば、MSHPIDPV1) が含まれます。
    ADT_A01
      MSH
      EVN
      PID
      PV1
  • このオプションを選択した場合、ツリーの最上位エレメントは HL7 になります。このエレメントには、子エレメント MSH と、anyHL7Segment という各 HL7 セグメントの子エレメントが含まれます。 anyHL7Segment の各インスタンスには、HL7 セグメントの名前を持つ子エレメント (例えば、EVNPID) が含まれます。
    HL7
      MSH
      anyHL7Segment
        EVN
      anyHL7Segment
        PID
      anyHL7Segment
        PV1
HL7DFDLInput ノードの基本プロパティーについては、次の表に説明されています。
プロパティー M C デフォルト 説明
接続の詳細 はい はい 1111 hostname:port という形式の送信元アプリケーションの TCP/IP 接続
データ・レコード待機タイムアウト (秒) はい はい 60 データの先頭バイトの到達後に、接続上でノードがさらにデータを listen する時間の長さ。秒単位の任意の時間の長さを指定できます。デフォルトは 60 秒です。指定時間を超過すると、使用可能なデータがすべて Failure ターミナルに送信されます。
HL7DFDLInput ノードの「レコード検出」プロパティーについては、次の表に説明されています。
プロパティー M C デフォルト 説明
区切り文字 はい いいえ カスタム区切り文字 このプロパティーは編集できません。
末尾の MLLP バイト はい はい 1C0D HL7 レコード区切り文字として使用される末尾 MLLP バイト。 これらの末尾の MLLP バイトは、HL7DFDLInput ノードによって削除されます。
HL7DFDLInput ノードの「再試行」プロパティーについては、次の表に説明されています。
プロパティー M C デフォルト 説明
再試行メカニズム はい いいえ 短い再試行間隔 (秒) ノードがフローの障害をどのように処理するかを示します。 有効なオプションは、以下のとおりです。
  • 失敗
  • 短い再試行間隔 (秒)
  • 短い再試行と長い再試行
短い再試行間隔 (秒) はい はい 0 「再試行しきい値」がゼロでない場合の各再試行間の秒単位の間隔。
再試行しきい値 はい はい 0 「再試行メカニズム」「短い再試行間隔 (秒)」である場合に、フロー・トランザクションを再試行する回数。
長い再試行間隔 (秒) はい はい 300 「再試行メカニズム」「短い再試行と長い再試行」で、再試行しきい値に達した場合の、再試行間の間隔。
HL7DFDLInput ノードの「構文解析」プロパティーについては、次の表に説明されています。
プロパティー M C デフォルト 説明
妥当性検査 はい はい なし このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は以下のとおりです。
  • なし
  • 内容と値
構文解析のタイミング はい いいえ 要求時 このプロパティーは、入力メッセージを構文解析する時を制御します。 有効な値は以下のとおりです。
  • 要求時
  • 即時
  • 完了

このプロパティーに関する詳しい説明については、要求時の構文解析を参照してください。

メッセージ・コード化文字セット ID はい いいえ 1208 読み取られるデータを解釈するのに使用されるコード化文字セットの ID。
Copyright IBM Corporation 2011, 2015Copyright IBM Corporation 2011, 2015.

        
        最終更新
        
        最終更新 : 2015-06-23 08:46:05


参照トピック参照トピック | バージョン 4.0.0.0 | ha05110