G HL7メッセージのバッチ処理

この付録では、Oracle SOA Suite for healthcare integrationでのHL7バッチ処理の実装について説明します。バッチ処理を行うと、ファイル・ヘッダーとバッチ・ヘッダーからなるエンベロープを使用して、メッセージのバッチ番号を1つのファイルで送信できます。たとえば、詳細財務トランザクション(DFT)のバッチを付随システム(実験室、放射線科、薬局など)から財務システムに送信する場合などです。

Healthcareコンソールを使用すると、「管理」タブの「設定」「ランタイム」「その他」にある「部分バッチ・コミット・サイズ」を使用して、1つのメッセージ交換に対して多数のビジネス・メッセージが存在する場合にコミットするレコード数を指定することもできます。

この付録の内容は次のとおりです。

G.1 HL7メッセージ・バッチ処理の概要

この項では、HL7メッセージをバッチ処理する方法をいくつか概説します。

HL7メッセージは、次の基準でバッチ処理できます。

  • ファイル・ヘッダー(FHS)によるバッチ処理

  • バッチ・ヘッダー(BHS)によるバッチ処理

  • FHSとBHSの両方によるバッチ処理

  • メッセージ・ヘッダー(MSH)のみによるバッチ処理

HL7メッセージは、次の2つの方法でバッチ処理できます。

  • 標準モード: HL7バッチ処理プロトコルを使用

  • カスタム・モード

G.1.1 ファイル・ヘッダー(FHS)によるバッチ処理

Oracle SOA Suite for healthcare integrationコンソールを使用して、デフォルトのFHSを構成できます。

デフォルトのFHSを構成するには:

  1. Oracle SOA Suite for healthcare integrationコンソールにログオンします。
  2. 「デザイナ」タブで「構成」タブをクリックし、「ドキュメント・プロトコル」「HL7」→「ドキュメント・バージョン」の順に開きます。
  3. 「ドキュメント・バージョン」をダブルクリックして、右側のペインに「ドキュメント・バージョン」ウィンドウを表示します。
  4. 「ファイル・ヘッダー」タブをクリックし、「ファイル・ヘッダーの作成」チェック・ボックスを選択します。
  5. 使用可能なフィールドに、必要なパラメータ値を入力します。

    「ファイル・ヘッダー」のパラメータの詳細は、HL7ドキュメント・バージョン・パラメータに関する注意事項表3-3を参照してください。

  6. 「適用」をクリックします。

    注意:

    Oracle Document Editorを使用して、カスタムのファイル・ヘッダーecsファイルを作成およびカスタマイズしたり、デフォルトのFHSを上書きできます。

G.1.2 バッチ・ヘッダー(BHS)によるバッチ処理

Oracle SOA Suite for healthcare integrationコンソールを使用して、デフォルトのBHSを構成できます。

デフォルトのBHSを構成するには:

  1. 「ファイル・ヘッダー(FHS)によるバッチ処理」のステップ1から3までを繰り返します。
  2. 「バッチ・ヘッダー」タブをクリックし、「バッチ・ヘッダーの作成」チェック・ボックスを選択します。
  3. 使用可能なフィールドに、必要なパラメータ値を入力します。

    「バッチ・ヘッダー」のパラメータの詳細は、HL7ドキュメント・バージョン・パラメータに関する注意事項表3-3を参照してください。

  4. 「適用」をクリックします。

注意:

Oracle Document Editorを使用して、カスタムのバッチ・ヘッダーecsファイルを作成およびカスタマイズしたり、デフォルトのFHSを上書きできます。

G.1.3 メッセージ・ヘッダー(MSH)によるバッチ処理

MSHをバッチ処理する場合、カスタム・デリミタで区切られたすべてのMSHをバッチ処理できます。このデリミタは、アウトバウンド・メッセージの場合はアウトバウンド・エンドポイントで構成し、インバウンド・メッセージの場合はリスニング・チャネルで構成します。

「メッセージ・ヘッダー」のパラメータの詳細は、HL7ドキュメント・バージョン・パラメータに関する注意事項表3-3を参照してください。

G.1.4 バッチ処理時の機能確認の送信

Oracle SOA Suite for healthcare integrationコンソールを使用してメッセージをバッチ処理する際は、次の方法で機能確認をエンドポイント・パートナに送信できます。

  • 複数のMSHを持つ単一ファイル

  • インバウンド・ビジネス・メッセージにつき1つの機能確認メッセージ(複数)

機能確認のオプションは、図G-1に示すように、「ドキュメント・バージョン」ウィンドウの「その他」タブにある「確認モード」リストを使用して指定できます。

図G-1 機能確認オプションの指定

図G-1の説明が続きます
「図G-1 機能確認オプションの指定」の説明

また、MSH 15要素に基づいて確認を送信することもできます。MSH 15には次のような値を指定できます。

  • AL - 常に

  • ER - エラーまたは拒否された条件のみ

  • NE - なし

  • SU - 正常完了のみ

注意:

バッチ処理されたメッセージはすべて、レスポンス・バッチで確認されます。確認バッチには、エラーのあるメッセージに対する確認メッセージのみが含まれることがあります。

注意:

  • 現在、HL7バッチ処理は、汎用ファイル・プロトコルおよび汎用FTPプロトコルを使用する単一ドキュメントに対してのみサポートされています。

  • メッセージ順序付けとバッチ処理を同時に実行することはできません。

G.1.5 バッチ処理の標準モード

HL7バッチ処理プロトコルは、バッチ処理の標準モードで使用します。

このモードでは、HL7標準バッチ・プロトコル(FHSおよびBHS)を使用して、複数のメッセージが単一のファイルに書き込まれます。一般的なHL7バッチ・ファイル構造を次に示します。

[FHS](file header segment)
{--- BATCH begin
[BHS](batch header segment)
 { [--- MESSAGE  begin
  MSH	(zero or more HL7 messages)
    ....
    ....--- messages may be of same type or different type
    ....
 ] }--- MESSAGE end
[BTS](batch trailer segment)
}--- Batch end
[FTS](file trailer segment)

G.1.6 バッチ処理のカスタム・モード

このモードでは、前述のHL7標準バッチ・プロトコル(FHSおよびBHS)を使用せず、次の例に示すような他のカスタム形式を使用して、複数のメッセージが単一のファイルに書き込まれます。

  MSH
    ....
    ....
## --- message separator
  MSH
    ....
    ....
## --- message separator
  MSH
    ....
    ....
    ....

カスタム・モードでは、メッセージ・セパレータに基づいてインバウンド・メッセージのバッチ処理が解除されます。インバウンド・カスタム・メッセージのメッセージ・セパレータは、着信メッセージそのものから導出されます。このため、追加の構成は必要ありません。

Oracle SOA Suite for healthcare integrationコンソールを使用して、バッチ処理の解除に使用するカスタム・デリミタを指定できます。

カスタム・デリミタを指定するには:

  1. Oracle SOA Suite for healthcare integrationコンソールにログオンします。
  2. 目的のエンドポイント(「File」または「FTP」)を開きます。
  3. 「トランスポートの詳細」ボタンをクリックして、「トランスポート・プロトコル・パラメータ」ダイアログ・ボックスを表示します。
  4. 図G-2に示すように、「形式」タブをクリックして、「メッセージ・スプリッタ」フィールドでカスタム・デリミタを指定した後、「OK」をクリックしてダイアログ・ボックスを閉じます。

    図G-2 カスタム・デリミタの指定

    図G-2の説明が続きます
    「図G-2 カスタム・デリミタの指定」の説明
  5. 「適用」をクリックして、エンドポイントに対する変更を保存します。

注意:

メッセージ・ペイロードにメッセージ・セパレータ文字列が存在すると、予期しないエラーが発生することがあるため、存在していないことを確認する必要があります。

G.1.7 バッチ処理のためのコマンド行ツール

この項では、バッチ処理に使用できるコマンド行ツールについて説明します。

表G-1に、バッチ処理コマンド行のパラメータを示します。

表G-1 バッチ処理コマンド行のパラメータ

パラメータ名 説明 ドメイン 必須

endpoint

エンドポイントの名前

[-]

はい

batchname

バッチの名前

[-]

はい

batchtime

バッチのトリガー時刻

cron文字、またはdd/MM/yyyy HH:mm AM/PM形式の日付

はい

document

ドキュメント・プロトコル名

値: HL7

はい

docrevision

ドキュメント・リビジョン番号

[-]

はい

doctype

文書型名

[-]

はい

isrepetitive

cron文字列を使用してバッチを作成する際の反復的なバッチ処理を有効にします。

true|false (デフォルト)

いいえ

mode

バッチ・モード

バッチを削除する場合は、deletebatchに設定します。

いいえ

例:

特定のcron文字列について反復モードで実行するADT_A01ドキュメントに対して、FileEndpointを使用してバッチ操作を作成するには、次のように指定します。

ant -f ant-hcfp-util.xml hcfpbatch -Dendpoint=FileEndpoint -Dbatchtime="0 4850 11 7 5 ? 2010"-Dbatchname=batch1234 -Ddocument=HL7 -Ddocrevision=2.3.1 -Ddoctype=ADT_A01 -Disrepetitive=true

複数のドキュメント・タイプに対するバッチを作成するには:

ant -f ant-hcfp-util.xml hcfbatch -Dendpoint=FileEndpoint -Dbatchtime="0 58 11 7 5 ? 2010"-Dbatchname=batch1234 -Ddocument=HL7 -Ddocrevision=2.3.1 -Ddoctype=ADT_A01

または

ant -f ant-hcfp-util.xml hcfpbatch -Dendpoint=FileEndpoint -Dbatchtime="07/05/2010 11:45 AM"-Dbatchname=batch1234 -Ddocument=HL7 -Ddocrevision=2.3.1 -Ddoctype=ADYT_A01

バッチ操作を削除するには:

ant -f ant-hcfp-util.xml hcfpbatch -Dmode=deletebatch -Dbatchname=batch1234 

batchtimeの値に*や#などの特殊文字が含まれる場合は、二重引用符を使用して文字をエスケープする必要があります。

ant -f ant-hcfp-util.xml hcfpbatch -Dendpoint=FileEndpoint -Dbatchtime='0 5,10,15,20,25,30,35,40,45,50,55,59"" "" "*" ? 2010' -Dbatchname=batch1234 -Ddocument=HL7 -Ddocrevision=2.3.1 -Ddoctype="ADT_A01" -Disrepetitive=true