HL7 ビジネス・オペレーションに関する設定
HL7 ビジネス・オペレーションの設定に関する参照情報を提供します。
概要
HL7 ビジネス・オペレーションには次のような設定があります。
残りの設定は、すべてのビジネス・オペレーションに共通のものであるか、アダプタのタイプによって異なるものであるかのどちらかです。詳細は、以下を参照してください。
-
"プロダクションの構成" の “すべてのビジネス・オペレーションに含まれる設定”
-
"プロダクション内でのファイル・アダプタの使用法" の “ファイル送信アダプタに関する設定”
-
"プロダクション内での FTP アダプタの使用法" の “FTP 送信アダプタに関する設定”
-
"プロダクション内での HTTP アダプタの使用法" の “HTTP 送信アダプタの設定”
-
"プロダクション内での TCP アダプタの使用法" の “TCP 送信アダプタに関する設定”
EnsLib.HL7.Adapter.TCPOutboundAdapterOpens in a new tab には、HL7 用に適切に構成されている以下の設定が含まれています。
-
[準備完了] は真に設定されています。これは、ソケットからの応答メッセージを読み取るまで待機してから返すことを意味します。
-
[接続タイムアウト] の通常のデフォルト値は 5 秒ですが、最大値は 30,000 秒となります。
-
[応答タイムアウト] のデフォルト値は、通常の 15 秒ではなく 30 秒で、最大値は 30,000 秒となります。
HL7 ビジネス・オペレーションに関する最も重要な設定は次のとおりです。
-
[プール・サイズ] — [プール・サイズ] のデフォルト値 1 では、FIFO (先入れ先出し) 処理をサポートできます。受信アプリケーションで正しいデータを確保するには、FIFO 処理が重要です。複数の患者基本情報の更新を順番に受信する必要があります。そうしないと、古い不適切なデータが受信アプリケーションに表示される可能性があります。さらに、多くのアプリケーションでは、オーダー・メッセージを処理する前に ADT 登録メッセージを受信する必要があります。また、結果メッセージの前にオーダー・メッセージを受信する必要があります。
-
[再試行タイムアウト] — 再試行を実行できる秒数。HL7 ビジネス・オペレーションは、“タイムアウトが発生しないように” この値を自動的に -1 に設定して、HL7 メッセージがスキップされることがないようにします。
-
[カテゴリ] — このテキスト・ラベルにより、構成ダイアグラム内で構成項目をソートできます。
-
[再接続試行] — (TCP のみ) 接続を停止し、接続を再試行する回数です。値が 0 (ゼロ) の場合は、切断しません。デフォルトは 5 です。
-
[接続を維持] — 値がデフォルトの -1 の場合、アイドル・タイムでも常時接続になります。アダプタは起動時にはアイドルと見なされるため、StayConnected の値が –1 に設定されている場合にのみ自動接続されます。
親セグメント自動バッチ
(ファイルおよび FTP のみ) 真の場合、バッチの親を持つメッセージを書き込む際に、バッチ・ヘッダ、子ドキュメントの順に出力します。さらに、最後のバッチ・ヘッダ・メッセージまたはファイル名の変更によってトリガされると、バッチ・トレーラを出力します。偽の場合、ヘッダおよびトレーラは省略され、子ドキュメントのみが出力されます。デフォルトは偽です。
バッチ処理の詳細は、“HL7 バッチ・メッセージ” を参照してください。
デフォルト文字エンコーディング
送信 HL7 メッセージに適用する文字エンコーディングです。文字は、自動的にこのエンコーディングに変換されます。ビジネス・サービスの “デフォルト文字エンコーディング” を参照してください。
ファイル名
(ファイルおよび FTP のみ) ターゲット・ファイル名。[ファイル・パス] アダプタ設定はこのファイルのパスを決定しますが、[ファイル名] は名前を決定します。[ファイル名] には、タイム・スタンプ指定子を含めることができます。[ファイル名] を空白にしておくと、デフォルトで、%f_%Q というタイム・スタンプ指定子が使用されます。
デフォルトの %f_%Q の代わりに使用できる各種のコードを含む、タイム・スタンプの規則の詳細は、"プロダクションの構成" の “ファイル名に関するタイム・スタンプ指定” を参照してください。
構成
HL7 ビジネス・オペレーションが送信 HL7 メッセージ・パケットを作成する方法を制御します。フレーミング・オプションのリストは、“HL7 ビジネス・サービスに関する設定” の “構成” を参照してください。使用する値がわからない場合は、HL7 ビジネス・オペレーションのデフォルトの [MLLP] フレーミングをそのまま使用してください。
準備完了
(TCP ビジネス・オペレーションのみ) 真の場合、ビジネス・オペレーションは、ソケットからの ACK またはその他の応答メッセージを読み取るまで待機してから戻ります。また、定義されている [リプライコードアクション] を適用します。
ACK 処理の全般的な説明は、このドキュメントで前述した “HL7 確認応答 (ACK) モード” を参照してください。
切断中は失敗としない
(TCP のみ) 真の場合、TCP サーバから切断されている間、[再試行タイムアウト] までの秒数のカウントを中断します。[再試行タイムアウト] が -1 または [接続を維持] が 0 の場合は、この設定は適用されません。
リプライコードアクション
さまざまなタイプの ACK 応答メッセージを受信した際にビジネス・オペレーションが実行するアクションを指定するように、コードとアクションのペアのカンマ区切りリストを指定できます。リストの形式は以下のとおりです。
code=action,code=action, ... code=action
code (: で始まる) は、応答メッセージの MSA:1 (確認応答コード) フィールドで見つかったリテラル値、または次に示す特殊なコード値のいずれかを表します。
コード |
意味 |
:?A |
AA 値または CA 値 (承認) に相当します。 |
:?E |
AE 値または CE 値 (エラー) に相当します。 |
:?R |
AR 値または CR 値 (拒否) に相当します。 |
:_ |
空の MSA:1 フィールドを含む応答に相当します。空または空白のコード値は _ (アンダースコア) と同じです。 |
:* |
他の値と一致しない任意の MSA:1 値に相当します (既定値 = S)。 |
:~ |
MSA セグメントを含まない応答に相当します。 |
:I? |
応答の MSA:2 ControlId が元のメッセージの ControlId と一致しない場合に相当します。 |
:T? |
応答の MSH:9 タイプ名が、元のメッセージについてスキーマで宣言されている応答タイプと一致しない場合に相当します。 |
"プロダクションの構成" の参照セクションの “リプライコードアクション” に記載されている標準コードを使用することもできます。
action には次の値を単独で使用することも、値を組み合わせて文字列を形成することもできます。他に指定されていない場合は、F がデフォルトの action です。ただし、:?A のデフォルトのアクションは C です。
アクション |
意味 |
C |
メッセージを正常に完了したものとして処理します。 |
W |
警告をログに記録しますが、メッセージを正常に完了したものとして処理します。 |
R |
構成済みの RetryInterval と FailureTimeout に従ってメッセージを再試行します。別のアクションが指定されていない場合、最終的には失敗します。 |
S |
メッセージを中断し、エラーをログに記録して、次のメッセージに進みます。 |
D |
オペレーションを無効にし、エラーをログに記録して、オペレーションのキューの先頭に送信メッセージをリストアします。 |
F |
エラーにより失敗し、次のメッセージに進みます。 |
code=action,code=action, ... code=action
[リプライコードアクション] のデフォルト値は次のとおりです。
:?R=RF,:?E=S,:~=S,:?A=C,:*=S,:I?=W,:T?=C
この既定値は、確認応答コードが AR または CR のメッセージを再試行するよう指定します。コードが AE または CE のメッセージについては、現在のメッセージを中断し、エラーをログに記録して、次のメッセージに進みます。また、コードが AA または CA のメッセージを正常に完了したものとして処理し、リストされている他の応答コードと MSA:1 フィールドの値が一致しないメッセージを中断します。
Note:
再試行のデフォルトは ?R=RF です。ほとんどの場合、これはエラーの直後に失敗しますが、エラーが "エラー #5005 : ファイルを開くことができません。" である場合、オペレーションは、FailureTimeout に達するまで再試行を続行します。多くの場合、このエラーの原因は一時的な問題であり、再試行することで問題が解決しますが、ディレクトリが正しくない場合などは、オペレーションが繰り返し失敗することもあります。
バッチ ACK メッセージについては、バッチ内で見つかった最初の子 ACK に基づいて、適切な [リプライコードアクション] が決定されます。
ACK 処理の全般的な説明は、このドキュメントで前述した “HL7 確認応答 (ACK) モード” を参照してください。
再試行間隔
インターシステムズ製品外部の宛先への接続試行を待機する秒数。
セパレータ
送信メッセージで使用する HL7 区切り文字。このフィールドを空白のままにした場合、デフォルトは次のとおりです。
基本
HL7 メッセージでは、未加工のコンテンツを編成するために特殊文字が使用されます。これらの文字は、医療アプリケーションによって異なる場合があります。そのため、HL7 標準では、各 HL7 メッセージで区切り文字として使用されている 5 つの具体的な文字を MSH セグメントの先頭に左から右へ次の順にリストするよう規定されています。
-
フィールド区切り文字 (FS)
-
コンポーネント区切り文字 (CS)
-
繰り返し区切り文字 (RS)
-
エスケープ文字 (ESC)
-
サブコンポーネント区切り文字 (SS)
6 番目の文字であるセグメント終端文字は MSH では指定しません。特に指定がない場合、セグメント終端文字は、HL7 標準に従ってキャリッジ・リターン (CR) です。ただし、キャリッジ・リターン/改行 (CRLF) 文字もデフォルトで許可されています。
詳細
[セパレータ] には、前出のリストで説明したように、HL7 区切り文字に左から右へ FS、CS、RS、ESC、SS の順に割り当てられる文字列を指定する必要があります。
[セパレータ] 文字列の位置 1 ~ 5 以外に、追加の文字を指定して、デフォルトのセグメント終端文字であるキャリッジ・リターン (ASCII 13) をオーバーライドすることができます。位置 5 の後に、キャリッジ・リターン (ASCII 13) の場合は \r、改行 (ASCII 10) の場合は \n を使用します。
位置 6 以降にセグメント終端文字を指定する必要があるものの、出力メッセージで使用する区切り文字が 5 つより少ない場合は、位置 1 ~ 5 に \x を使用できます。位置 1 ~ 5 に \x で指定されている区切り文字は、使用されません。\x の目的は、単に区切り文字の列挙の長さを延長し、位置 6 が最初のセグメント終端文字として正しく解釈されるようにすることです。