この付録では、Oracle SOA Suite for healthcare integrationでのHL7バッチ処理の実装について説明します。バッチ処理を行うと、ファイル・ヘッダーとバッチ・ヘッダーからなるエンベロープを使用して、メッセージのバッチ番号を1つのファイルで送信できます。たとえば、詳細財務トランザクション(DFT)のバッチを付随システム(実験室、放射線科、薬局など)から財務システムに送信する場合などです。
Healthcareコンソールを使用すると、「管理」タブの「設定」→「ランタイム」→「その他」にある「部分バッチ・コミット・サイズ」を使用して、1つのメッセージ交換に対して多数のビジネス・メッセージが存在する場合にコミットするレコード数を指定することもできます。
この付録の内容は次のトピックを含みます:
HL7メッセージは、次の基準でバッチ処理できます。
ファイル・ヘッダー(FHS)によるバッチ処理
バッチ・ヘッダー(BHS)によるバッチ処理
FHSとBHSの両方によるバッチ処理
メッセージ・ヘッダー(MSH)のみによるバッチ処理
HL7メッセージは、次の2つの方法でバッチ処理できます。
標準モード: HL7バッチ処理プロトコルを使用
カスタム・モード
Oracle SOA Suite for healthcare integrationコンソールを使用して、デフォルトのFHSを構成できます。
デフォルトのFHSを構成するには:
Oracle SOA Suite for healthcare integrationコンソールにログオンします。
「デザイナ」タブで「構成」タブをクリックし、「ドキュメント・プロトコル」→「HL7」→「ドキュメント・バージョン」の順に開きます。
「ドキュメント・バージョン」をダブルクリックして、右側のペインに「ドキュメント・バージョン」ウィンドウを表示します。
「ファイル・ヘッダー」タブをクリックし、「ファイル・ヘッダーの作成」チェック・ボックスを選択します。
使用可能なフィールドに、必要なパラメータ値を入力します。
「ファイル・ヘッダー」のパラメータの詳細は、3.3.1項「HL7ドキュメント・バージョン・パラメータに関する注意事項」の表3-2を参照してください。
「適用」をクリックします。
注意: Oracle Document Editorを使用して、カスタムのファイル・ヘッダーecsファイルを作成およびカスタマイズしたり、デフォルトのFHSを上書きできます。 |
Oracle SOA Suite for healthcare integrationコンソールを使用して、デフォルトのBHSを構成できます。
デフォルトのBHSを構成するには:
E.1.1項「ファイル・ヘッダー(FHS)によるバッチ処理」の手順1から3までを繰り返します。
「バッチ・ヘッダー」タブをクリックし、「バッチ・ヘッダーの作成」チェック・ボックスを選択します。
使用可能なフィールドに、必要なパラメータ値を入力します。
「バッチ・ヘッダー」のパラメータの詳細は、3.3.1項「HL7ドキュメント・バージョン・パラメータに関する注意事項」の表3-2を参照してください。
「適用」をクリックします。
注意: Oracle Document Editorを使用して、カスタムのバッチ・ヘッダーecsファイルを作成およびカスタマイズしたり、デフォルトのFHSを上書きできます。 |
MSHをバッチ処理する場合、カスタム・デリミタで区切られたすべてのMSHをバッチ処理できます。このデリミタは、アウトバウンド・メッセージの場合はアウトバウンド・エンドポイントで構成し、インバウンド・メッセージの場合はリスニング・チャネルで構成します。
「メッセージ・ヘッダー」のパラメータの詳細は、3.3.1項「HL7ドキュメント・バージョン・パラメータに関する注意事項」の表3-2を参照してください。
Oracle SOA Suite for healthcare integrationコンソールを使用してメッセージをバッチ処理する際は、次の方法で機能確認をエンドポイント・パートナに送信できます。
単一メッセージ(単一)
インバウンド・ビジネス・メッセージにつき1つの機能確認メッセージ(複数)
機能確認のオプションは、図E-1に示すように、「ドキュメント・バージョン」ウィンドウの「その他」タブにある「確認モード」リストを使用して指定できます。
また、MSH 15要素に基づいて確認を送信することもできます。MSH 15には次のような値を指定できます。
AL - 常に
ER - エラーまたは拒否された条件のみ
NE - なし
SU - 正常完了のみ
注意: バッチ処理されたメッセージはすべて、レスポンス・バッチで確認されます。確認バッチには、エラーのあるメッセージに対する確認メッセージのみが含まれることがあります。 |
注意:
|
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)
このモードでは、前述のHL7標準バッチ・プロトコル(FHSおよびBHS)を使用せず、次に示すような他のカスタム形式を使用して、複数のメッセージが単一のファイルに書き込まれます。
MSH .... .... ## --- message separator MSH .... .... ## --- message separator MSH .... .... ....
カスタム・モードでは、メッセージ・セパレータに基づいてインバウンド・メッセージのバッチ処理が解除されます。インバウンド・カスタム・メッセージのメッセージ・セパレータは、着信メッセージそのものから導出されます。このため、追加の構成は必要ありません。
Oracle SOA Suite for healthcare integrationコンソールを使用して、バッチ処理の解除に使用するカスタム・デリミタを指定できます。
カスタム・デリミタを指定するには:
Oracle SOA Suite for healthcare integrationコンソールにログオンします。
目的のエンドポイント(「File」または「FTP」)を開きます。
「トランスポートの詳細」ボタンをクリックして、「トランスポート・プロトコル・パラメータ」ダイアログ・ボックスを表示します。
図E-2に示すように、「形式」タブをクリックして、「メッセージ・スプリッタ」フィールドでカスタム・デリミタを指定した後、「OK」をクリックしてダイアログ・ボックスを閉じます。
「適用」をクリックして、エンドポイントに対する変更を保存します。
注意: メッセージ・ペイロードにメッセージ・セパレータ文字列が存在すると、予期しないエラーが発生することがあるため、存在していないことを確認する必要があります。 |
この項では、バッチ処理に使用できるコマンドライン・ツールについて説明します。
表E-1に、バッチ処理コマンドラインのパラメータを示します。
表E-1 バッチ処理コマンドラインのパラメータ
パラメータ名 | 説明 | ドメイン | 必須 |
---|---|---|---|
endpoint |
エンドポイントの名前 |
- |
はい |
batchname |
バッチの名前 |
- |
はい |
batchtime |
バッチのトリガー時刻 |
cron文字、または |
はい |
document |
ドキュメント・プロトコル名 |
有効な値:EDI_EDIFACT、EDI_X12 |
はい |
docrevision |
ドキュメント・リビジョン番号 |
- |
はい |
doctype |
ドキュメント・タイプ名 |
- |
はい |
isrepetitive |
cron文字列を使用してバッチを作成する際の反復的なバッチ処理を有効にします。 |
|
いいえ |
mode |
バッチ・モード |
バッチを削除する場合は、 |
いいえ |
例:
特定の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