HL7 ビジネス・サービスに関する設定
概要
HL7 ビジネス・サービスには次のような設定があります。
グループ | 設定 | 参照先 |
---|---|---|
基本設定 | [ターゲット構成名] | "プロダクション内での仮想ドキュメントの使用法" の "ビジネス・サービスに関する設定" |
基本設定 | [Ackターゲット構成名]、[メッセージ・スキーマ・カテゴリ] | このトピックの節 |
接続設定 | [構成] | このトピックの節 |
追加設定 | [テーブルクラス検索] | "プロダクション内での仮想ドキュメントの使用法" の "ビジネス・サービスに関する設定" |
追加設定 | Override Segment Terminator、ローカル・ファシリティ・アプリケーション、Ackモード、Ackコミットコード使用、インバウンドACKを無視、NACK ERR追加、NACKエラーコード、バッチハンドリング、デフォルト文字エンコーディング、DocTypeResolution、応答の保存 | このトピックの節 |
残りの設定は、すべてのビジネス・サービスに共通のものであるか、アダプタのタイプによって異なるものであるかのどちらかです。詳細は、以下を参照してください。
-
"プロダクション内でのファイル・アダプタの使用法" の "ファイル受信アダプタに関する設定"
-
"プロダクション内での HTTP アダプタの使用法" の "HTTP 受信アダプタの設定"
-
"プロダクション内での FTP アダプタの使用法" の "FTP 受信アダプタの設定"
EnsLib.HL7.Adapter.TCPInboundAdapterOpens in a new tab という特殊用途のアダプタの違いは、[JobPerConnection] が偽に設定されている点です。これは通常、HL7 に適しています。
HL7 に関する最も重要な設定は次のとおりです。
-
[プール・サイズ] — デフォルト値 1 では、FIFO (先入れ先出し) 処理をサポートできます。多くの場合、複数の患者基本情報の更新を順番に受信する必要があります。例えば、多くのアプリケーションでは、オーダー・メッセージを処理する前に ADT 登録メッセージを受信する必要があります。また、結果メッセージの前にオーダー・メッセージを受信する必要があります。
-
[カテゴリ] — このテキスト・ラベルにより、構成ダイアグラム内で構成項目をソートできます。
-
[タイムスタンプ追加] — (ファイルのみ) [アーカイブパス] のファイル名にタイム・スタンプを追加します。
-
[アーカイブパス] — (ファイルおよび FTP のみ) HL7 メッセージをアーカイブする場所を指定します。
-
[呼び出し間隔] — 新しい入力を確認するまで待機する秒数。デフォルトは 5 秒です。最小値は 0.1 秒です。
Ackモード
受信した HL7 メッセージへの応答として HL7 確認応答メッセージを発行する際の形式と規則を設定できます。ビジネス・サービスについては、次のテーブルに示されている値のいずれかを指定することができます。
Ackモード | 意味 |
---|---|
[なし] | ACK を返しません。 |
[即時] | 受信メッセージを受け取るとすぐに、コミット ACK 応答メッセージを返します。何も指定されていない場合は、これがデフォルトです。 |
[アプリケーション] | メッセージが検証に合格した場合、ターゲット・アプリケーションからの ACK 応答メッセージを待機し、ACK が到着すると、その ACK を返します。
呼び出し側が応答を要求しており、プロダクション・ルーティング・エンジンがそのターゲットからの応答を転送して返すように構成されていない場合、ACK または NACK オブジェクトを作成して呼び出し側に返します。検証に失敗し、[Ackモード] が [アプリケーション] である場合、ターゲット・アプリケーションと通信しません。代わりに、即時検証 NACK を呼び出し側に送信します。 |
[MSH により決定] | MSH ヘッダ・フィールド 15 および 16 で要求されたように ACK 応答メッセージを返します。どちらのフィールドにも、次の 4 つの制御コードのいずれかが含まれます。
|
[バイト]* | 受信メッセージを受け取るとすぐに、ACK メッセージの代わりに、シングル・バイトの ACK コードを返します。ASCII 6 は OK を意味し、ASCII 21 はエラーを意味します。このオプションは、組み込みの HL7 ビジネス・サービス (TCP、ファイル、HTTP など) で使用することはできませんが、[Ackモード] の設定をオーバーライドせずに、EnsLib.HL7.Service.StandardOpens in a new tab のサブクラスとなるカスタム・ビジネス・サービスを記述すると使用できます。 |
* ビジネス・オペレーションでは自動的に、シングル・バイトの ASCII 6 を AA コミット・コードの HL7 ACK として、ASCII 21 を AE コミット・コードの HL7 ACK としてそれぞれ処理します。
ACK 処理の全般的な説明は、"HL7 確認応答 (ACK) モード" を参照してください。
Ackターゲット構成名
(ファイルおよび FTP のみ) TCP ビジネス・サービスとは異なり、ファイルおよび FTP ビジネス・サービスには、HL7 確認応答メッセージ (ACK または NACK) を送信するための永続的な接続がありません。そのため、ファイルおよび FTP ビジネス・サービスのデフォルトの [Ackモード] は [なし] になっています。通常は、この設定が適切です。ただし、ファイルまたは FTP ビジネス・サービスから ACK を送信する場合は、[Ackターゲット構成名] 設定を使用して、ACK メッセージを受け取るルーティング・プロセスまたはビジネス・オペレーションを指定します。
詳細は、"Ackモード" を参照してください。ACK 処理の全般的な説明は、"HL7 確認応答 (ACK) モード" を参照してください。
NACK ERR追加
真の場合、NACK メッセージを生成する際に、インターシステムズのエラー・コードとエラー・テキストを含む ERR セグメントを追加します。それ以外の場合は、内部エラー状態情報を NACK メッセージに埋め込みません。
ACK 処理の全般的な説明は、"HL7 確認応答 (ACK) モード" を参照してください。
バッチハンドリング
受信したメッセージ・バッチの処理方法です。オプションは以下のとおりです。
-
[バッチ全体] — メッセージ・ドキュメントを個別に処理しません。累積してバッチ全体を 1 つの複合ドキュメントとして送信します。
-
[1 つのセッションのバッチ] — バッチ内のすべてのメッセージを 1 つのセッションでまとめて転送します。セッションには、バッチ・ヘッダ・セグメントとバッチ・トレーラ・セグメントを表すオブジェクトが含まれます。これがデフォルトです。
-
[複数のセッションのバッチ] — バッチ内の各メッセージを独自のセッションで転送します。各セッションには、バッチ・ヘッダ・セグメントとバッチ・トレーラ・セグメントを表すオブジェクトが含まれます。
-
[個別] — バッチ内の各子メッセージを独自のセッションで転送します。バッチ・ヘッダ・セグメントとバッチ・トレーラ・セグメントを表すオブジェクトは転送しません。
バッチ処理の詳細は、"HL7 バッチ・メッセージ" を参照してください。
デフォルト文字エンコーディング
受信 HL7 メッセージの文字エンコーディングです。文字は、自動的にこのエンコーディングから変換されます。
サポートされるエンコーディング値は、UTF-8、Latin1、および InterSystems IRIS サーバにインストールされているその他の NLS 定義です。値 Native は、InterSystems IRIS サーバのデフォルト・エンコーディングを使用することを意味します。インターシステムズの変換テーブルを直接使用することもできます。そのためには、値 @tablename を使用します。tablename はテーブルの名前です。
デフォルトでは、受信 HL7 メッセージの MSH:18 (文字セット) フィールドが空でない場合、この設定の代わりにその値が使用されます。MSH:18 を無視し、代わりにこの設定を使用するようインターシステムズ製品に強制するには、設定値の先頭に ! (感嘆符) を配置します。例えば、!UTF-8 のように指定します。
デフォルト値はアダプタによって異なります。
文字セットおよび変換テーブルの詳細は、"変換テーブル" を参照してください。
DocTypeResolution
MSH:9 のメッセージ・タイプに基づいて DocType を解決する方法を指定します。以下のいずれかを選択します。
-
[標準] — 有効な [メッセージ・スキーマ・カテゴリ] の値と、対応するスキーマ・カテゴリの MSH:9 メッセージ・タイプ値について検出されたメッセージ構造名を組み合わせます。これがデフォルトです。
-
[9.3 を無視] — [標準] と同様ですが、MSH:9 に 3 つ以上の成分がある場合、追加成分を無視します。一部のスキーマには 3 つの部分から成るタイプ名が含まれるため、標準の動作では、下位成分がない場合にタイプ名の一部として成分 3 が使用されます。
-
[9.3 を使用] — [標準] と同様ですが、MSH:9 に 3 つ以上の成分がある場合、該当するスキーマ・カテゴリ内のドキュメント構造のリテラル名として追加成分を使用します。選択したスキーマ・カテゴリに構造が存在しない MSH:9.3 値を持つメッセージが到着する可能性があるため、慎重に使用してください。
-
[リテラル] — 有効な [メッセージ・スキーマ・カテゴリ] の値と、メッセージ構造の名前として解釈されたリテラル MSH:9 メッセージ・タイプ値を組み合わせます。すべてのメッセージ・タイプに対応する構造定義があるカスタム・スキーマのみで使用してください。
Override Segment Terminator
(FTP のみ) セグメント終端文字として使用する ASCII 制御文字のコンマ区切りリスト。値は 10 進形式、または先頭に x を付けた 16 進形式にすることができます。例えば、改行文字をセグメント終端文字として指定するには、「10」または「x0A」を入力します。既定値はキャリッジ・リターンであり、その 10 進値は 13、16 進値は x0D です。
構成
HL7 ビジネス・サービスが受信 HL7 メッセージ・パケットを解釈する方法を制御します。使用する値がわからない場合は、HL7 ビジネス・サービスのデフォルトの [フレキシブル] フレーミングをそのまま使用してください。
次のテーブルは、この設定の有効な値のリストです。
フレーミング・タイプ | 受信/送信 | 意味 |
---|---|---|
フレキシブル | 受信 | 受信したデータの内容からフレーミング・スタイルを決定します。 |
Flexible! | 受信 | 受信した最初のメッセージのデータの内容からフレーミング・スタイルを決定します。また、後続のメッセージはこれと同じフレーミング・スタイルである必要があります。 |
なし | 両方 | フレーミングなし。文字列 MSH で始まる各行が新しいメッセージの先頭です。 |
MLLP | 両方 | Minimal Lower Level Protocol — ASCII 11 接頭語、および ASCII 28 とその後の ASCII 13 で構成される接尾語を付けて各 HL7 メッセージをフレーミングします。 |
MLLP[nn]/[mm] | 両方 | 非標準の ASCII 値を使用する MLLP。nn で指定した ASCII 文字値で構成される接頭語を付けて各 HL7 メッセージをフレーミングします。また、mm で指定した ASCII 文字値とその後の ASCII 13 (キャリッジ・リターン文字) で構成される接尾語も付けます。 |
AsciiLF | 両方 | ASCII 10 (改行文字) を使用してメッセージをフレーミングし、各メッセージと後続のメッセージを区切ります。 |
AsciiCR | 両方 | 追加の ASCII 13 (キャリッジ・リターン文字) を使用してメッセージをフレーミングし、各メッセージと後続のメッセージを区切ります。 |
Ascii[nn] | 両方 | 接尾語を付けてメッセージをフレーミングし、各メッセージと後続のメッセージを区切ります。この接尾語は、nn で指定した ASCII 文字値で構成されます。 |
Ascii[nn]/[mm] | 両方 | 各メッセージの前に接頭語を付けてメッセージをフレーミングします。この接頭語は、nn で指定した ASCII 文字値で構成されます。また、mm で指定した ASCII 文字値で構成される接尾語も付けます。ただし、末尾の ASCII 13 は含まれません。 |
LLP | 両方 | (廃止) Lower Level Protocol — 冗長チェックサム・ブロックで各 HL7 メッセージをフレーミングします。 |
MsgEnvelope | 送信 | メッセージの Envelope プロパティをそのまま使用します (存在する場合)。文字列 <!--HL72MSG--> がエンベロープに存在する場合、メッセージ・コンテンツに置き換えられます。それ以外の場合は、エンベロープ・テキストの後にメッセージが続きます。 |
MLLPMsgEnvelope | 送信 | [MsgEnvelope] と同じですが、さらにエンベロープ内で MLLP 接頭語と接尾語でメッセージを囲みます。 |
フレーミング・タイプが [MLLP] である場合、終了フレーミングより前にメッセージ内に出現する追加のキャリッジ・リターン (ASCII 13) が自動的に検出されます。これは、空白行がメッセージを区切るために使用されていないことを示すものであるため、空白行はメッセージ・コンテンツの一部であり、無視してもかまわないと見なされます。
HL7 標準では、セグメント終端文字はキャリッジ・リターン (CR) です。ただし、キャリッジ・リターン/改行 (CRLF) 文字も許可されています。
複数の文字を指定できます。例えば、メッセージの先頭に $Char(2)、メッセージの末尾に $Char(3,4) など、非標準のフレーミングが HL7 メッセージに必要な場合、[Ascii[nn]/[mm]] フレーミング・オプションを次のように使用できます。
Ascii2/3,4
[構成] フィールドに ASCII 値を入力する際には、数値として指定する必要があります。例えば、小文字 x を Ascii'x' としてではなく Ascii120 として入力します。
インバウンドACKを無視
真の場合、ACK フィードバック・ループが生成されないように、ビジネス・サービスは受信 ACK メッセージを無視します。
ACK 処理の全般的な説明は、"HL7 確認応答 (ACK) モード" を参照してください。
ローカル・ファシリティ・アプリケーション
このビジネス・サービスを介して HL7 メッセージを受け取る施設とアプリケーションを表す、コロンで区切られた LocalFacility:LocalApplication コード。このビジネス・サービスが独自の ACK を作成する場合、[ローカル・ファシリティ・アプリケーション] は ACK メッセージに SendingFacility:SendingApplication コードを提供します。それ以外の場合、この設定は無視されます。
メッセージ・スキーマ・カテゴリ
完全な DocType 仕様を生成するために受信メッセージ・タイプに適用するカテゴリ。ドキュメント・タイプの Name (MSH:9) と組み合わせて、指定された HL7 スキーマ・カテゴリの MessageTypes セクションにある MessageStructure/DocType を検索するために使用される MessageType 仕様を生成します。
この設定では、複数のタイプ名をカンマ区切りリストで指定することもできます。それぞれのタイプ名を含む HL7 メッセージに適用する DocTypeCategory の値または完全な DocType の値も、このリストでタイプ名の後に = で続けて指定できます。タイプ名の一部分を指定してその末尾にアスタリスク (*) を付けると、そのエントリで始まるすべてのタイプと一致します。
HL7 メッセージ・オブジェクトの DocType プロパティ
例 : MessageSchemaCategory='2.3.1, ADT_*=2.5, BAR_P10=2.4, ORM_O01_6=2.4:RDE_O01'
DocType 割り当ては、[検証] または [テーブルクラス検索] のインデックス付けに必要な場合があることに注意してください。
HL7 ビジネス・サービスのカスタム・スキーマ定義をまだ準備していない場合、この時点ではこのフィールドを空白にしておいてもかまいません。ただし、ルーティング・プロセスの検証も無効にする場合を除き、永久に空白にしないでください。空白のままにすると、検証エラーが自動的に発生します。"検証" を参照してください。
NACKエラーコード
受信メッセージの処理中にエラーが発生した場合にこのサービスが生成する NACK メッセージの MSA:1 のエラー・コードを制御します。既定は ContentE です。これは、メッセージ・コンテンツに関するエラーの場合はコード E を返し、メッセージの処理中に検出されたシステム・エラーの場合はコード R を返します。
システム・エラーが解決されてリモート・クライアントが後で再試行した場合にエラーが発生しないことがプロダクションで前提になりますが、メッセージ・コンテンツや検証のエラーは、ソースにおける修正が必要であり、同じ形で再試行しても効果がないと想定されています。そのため、この区別は重要です。一部のクライアント・システムでは異なるエラー動作が想定される場合や必要とされる場合があるため、インターシステムズ製品には、その他に 3 つの動作が用意されています。次のテーブルでは、4 つのオプションについて説明します。
コード | 意味 |
---|---|
ContentE | メッセージ・コンテンツ内のエラーを報告する場合は MSA エラー・コード E を使用し、(再試行可能な) システム・エラーが原因で拒否する場合はコード R を使用します。 |
ContentR* | コンテンツ・エラーの場合は R、システム・エラーの場合は E を返します。 |
AllE | コンテンツ・エラーとシステム・エラーすべてについて E を返します。 |
AllR | コンテンツ・エラーとシステム・エラーすべてについて R を返します。 |
ACK 処理の全般的な説明は、"HL7 確認応答 (ACK) モード" を参照してください。
応答の保存
リモート・システムに返された応答メッセージのコピーを保存するかどうかを指定します。また、オプションで、構成された検索テーブル・クラスがある場合にそれを使用してメッセージのインデックスを作成するかどうかを指定します。以下のいずれかを選択します。
-
[なし] — 応答メッセージの保存もインデックス作成も行いません。
-
[NotOKs] — 単純な OK ACK メッセージでない応答のみを保存します。例えば、エラー NACK およびクエリ応答を保存します。
-
[すべて] — リモート・システムに送信されたすべての応答メッセージのコピーを保存します。
-
[IndexNotOKs] — 単純な OK ACK メッセージでない応答を保存し、かつ、構成された検索テーブルを使用してインデックスを作成します。このクラスで IndexReplies、SaveOKACKs、または IndexACKs パラメータをオーバーライドしていない限り、これがデフォルトの動作です。IndexReplies、SaveOKACKs、および IndexACKs は非推奨になりました。
-
[IndexAll] — すべての応答メッセージのコピーを保存し、かつ、構成された検索テーブルを使用してインデックスを作成します。
Ackコミットコード使用
真または偽。真の場合、HL7 メッセージ・バージョン 2.3 以上の ACK メッセージを作成する際に、ビジネス・サービスは、いずれかの拡張モード ACK コミット・コードを MSA セグメントの AcknowledgmentCode フィールドに配置します。
HL7 ビジネス・サービスには、[メッセージ・スキーマ・カテゴリ] が 2.3 以上の場合に適用される [Ackコミットコード使用] 設定があります。これは真または偽に設定できます。真の場合、HL7 メッセージ・バージョン 2.3 以上の ACK メッセージを作成する際に、ビジネス・サービスは、いずれかの拡張モード ACK コミット・コードを MSA セグメントの AcknowledgmentCode フィールドに配置します。このコードは、次に示す 2 文字のシーケンスのいずれかです。
コード | 元のモードにおける意味 | 拡張モードにおける意味 |
---|---|---|
AA | アプリケーション承認 | アプリケーション確認応答 : 承認 |
AE | アプリケーション・エラー | アプリケーション確認応答 : エラー |
AR | アプリケーション拒否 | アプリケーション確認応答 : 拒否 |
CA | — | 承認確認応答 : コミット承認 |
CE | — | 承認確認応答 : コミット・エラー |
CR | — | 承認確認応答 : コミット拒否 |
ACK 処理の全般的な説明は、"HL7 確認応答 (ACK) モード" を参照してください。