HL7 ビジネス・オペレーションの設定
概要
HL7 ビジネス・オペレーションには次のような設定があります。
グループ | 設定 | 参照先 |
---|---|---|
基本設定 | [ファイル名] | このトピックの節 |
接続設定 | [準備完了]、[Framing] | このトピックの節 |
追加設定 | [検索テーブル・クラス] | "Ensemble 仮想ドキュメント" の “ビジネス・オペレーションに関する設定” |
[親セグメント自動バッチ]、[セパレータ]、[デフォルト文字エンコーディング]、[リプライコードアクション]、[切断中は失敗としない]、[再試行間隔] | このトピックの節 |
残りの設定は、すべてのビジネス・オペレーションに共通のものであるか、アダプタのタイプによって異なるものであるかのどちらかです。詳細は、以下を参照してください。
-
"Ensemble プロダクションの構成" の “すべてのビジネス・オペレーションに含まれる設定”
-
"Ensemble でのファイル・アダプタの使用法" の “ファイル送信アダプタの設定”
-
"Ensemble での FTP アダプタの使用法" の “FTP 送信アダプタに関する設定”
-
"Ensemble での HTTP アダプタの使用法" の “HTTP 送信アダプタの設定”
-
"Ensemble での 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 に設定されている場合にのみ自動接続されます。
[親セグメント自動バッチ]
([File] および [FTP] のみ) 真の場合、バッチの親を持つメッセージを記述する際、バッチ・ヘッダ、子ドキュメントの順に出力され、最後のバッチ・ヘッダ・メッセージまたはファイル名の変更によりトリガされるとさらにバッチ・トレーラが出力されます。偽の場合、ヘッダおよびトレーラは省略され、子ドキュメントのみが出力されます。デフォルトは偽です。
詳細は、“HL7 バッチ・メッセージ” を参照してください。
[デフォルト文字エンコーディング]
送信 HL7 メッセージに適用する文字エンコード。Ensemble は、自動的に、文字をこのエンコードに変換します。ビジネス・サービスについては、“デフォルト文字エンコーディング” を参照してください。
[ファイル名]
([File] および [FTP] のみ) ターゲット・ファイル名。[ファイル・パス] アダプタ設定はこのファイルのパスを決定しますが、[ファイル名] は名前を決定します。[ファイル名] には、Ensemble のタイム・スタンプ指定子を含めることができます。[ファイル名] を空白にしておくと、デフォルトで、%f_%Q というタイム・スタンプ指定子が使用されます。
-
%f は、データ・ソースの名前 (この場合は入力ファイル名) を表します。
-
_ は、リテラルのアンダースコア文字で、出力ファイル名に表示されます。
-
%Q は、ODBC 形式の日付と時刻を表します。
デフォルトの %f_%Q の代わりに使用できる各種のコードを含む、タイム・スタンプの規則の詳細は、"Ensemble プロダクションの構成" の “ファイル名に関するタイム・スタンプ指定” を参照してください。
[Framing]
HL7 ビジネス・オペレーションによる送信 HL7 メッセージ・パケットの作成方法を制御します。フレーミング・オプションのリストについては、“HL7 ビジネス・サービスの設定” の “Framing” を参照してください。使用する値が不明な場合、デフォルトの 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 フィールドが空の応答に対応します。空または空白コードの値は _ (アンダースコア) と同じです。 |
:* | それ以外は一致しない NSA:1 の値に対応します (デフォルトは F)。 |
:~ | MSA セグメントを含まない応答に対応します。 |
:I? | 応答 MSA:2 ControlId が元のメッセージの ControlId と一致しない場合に対応します。 |
:T? | 応答 MSA:9 タイプ名がスキーマで宣言された元のメッセージの応答タイプと一致しない場合に対応します。 |
"Ensemble プロダクションの構成" のリファレンスにある [リプライコードアクション] で説明している標準コードを使用することもできます。
action に対して以下の値が単独または組み合わせて使用され、文字列を形成します。他に指定されていない場合、F がデフォルトの action となります。ただし、:?A の場合、デフォルトのアクションは C となります。
アクション | 意味 |
---|---|
C | 正常終了としてメッセージを取り扱います。 |
W | 警告をログに記録しますが、正常終了としてメッセージを取り扱います。 |
R | 設定された RetryInterval および FailureTimeout (他にアクションが指定されていない場合、最終的には Fail) に従ってメッセージを再試行します。 |
S | メッセージを中断し、エラーをログに記録し、次のメッセージに進みます。 |
D | オペレーションを無効にし、エラーをログに記録して、送信メッセージをオペレーションのキューの先頭にリストアします。 |
F | エラーにより失敗し、次のメッセージに進みます。 |
code=action,code=action, ...code=action
[リプライコードアクション] のデフォルト値は、以下のとおりです。
:?R=RF,:?E=S,:~=S,:?A=C,:*=S,:I?=W,:T?=C
このデフォルトの動作では、確認応答コード AR または CR を持つメッセージを Ensemble が再試行します。コード AE または CE を持つメッセージの場合、Ensemble は、現在のメッセージを一時停止し、エラーをログに記録して、次のメッセージに進みます。また、このデフォルトの動作では、コード AA または CA を持つ任意のメッセージを完了 OK として処理し、リストされた他のどの応答コードとも一致しない値がフィールド MSA:1 にあるメッセージを一時停止します。
再試行のデフォルトは ?R=RF です。ほとんどの場合、これはエラーの直後に失敗しますが、エラーが "ERROR #5005: Cannot open file" (ファイルを開くことができません) であると、オペレーションは [FailureTimeout:] の設定値に達するまで再試行を続行します。多くの場合、このエラーの原因は一時的な問題であり、この問題は再試行によって修正されますが、ディレクトリが間違っているなど、場合によってはオペレーションは繰り返し失敗します。
ACK メッセージがバッチとなっている場合、ビジネス・オペレーションでは、このバッチで最初に検出した子 ACK に基づいて、正しい [リプライコードアクション] を判断します。
ACK 処理の概要は、前述した “HL7 確認応答 (ACK) モード” を参照してください。
[再試行間隔]
Ensemble 外部の宛先への接続試行を待機する秒数。
[区切り文字]
送信メッセージで使用する HL7 区切り文字。このフィールドを空白のままにする場合、デフォルトは以下のとおりです。
|^~\&
基本設定
HL7 メッセージでは、生のコンテンツを編成するために特殊文字を使用します。これらの文字は、医療アプリケーションによって異なる場合があります。このため、HL7 標準では、各 HL7 メッセージの MSH セグメントの最初に区切り文字として使用している 5 つの特殊文字を左から右に列挙することを要求しています。
-
フィールド区切り文字 (FS)
-
コンポーネント区切り文字 (CS)
-
繰り返し区切り文字 (RS)
-
エスケープ文字 (ESC)
-
サブコンポーネント区切り文字 (SS)
6 番目の文字であるセグメント終端文字は、MSH では指定されず、一般には復帰 (ASCII 13) と見なされます。
詳細
[区切り文字] には、Ensemble が 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 が最初のセグメント終端文字として正しく解釈されるようにすることです。