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