Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

HL7 エスケープ・シーケンス

HL7 エスケープ・シーケンスの参照情報を提供します。

詳細

HL7 メッセージのデータ・コンテンツ内に区切り文字を表示する必要がある場合、HL7 には、区切り文字を置き換えるエスケープ・シーケンスが用意されています。

この機能で最も必要と考えられる文字は & (アンパサンド) 文字です。これは HL7 区切り文字としてよく使用されます。同時に、& は、HL7 ドキュメント・データにおいても、雇用者の正式名称内 (Parker & Sons) または治療指示 (XR CHEST PA&LAT) の省略表現として使用されます。

したがって、HL7 データ・ストリーム内では、以下の例の \T\ のように、& 文字がエスケープ・シーケンスに置き換えられている場合がよくあります。

Parker \T\ Sons
XR CHEST PA\T\LAT

以下のテーブルは、標準 HL7 エスケープ・シーケンスとその意味を示しています。HL7 エスケープ・シーケンスは、MSH セグメントで定義されているように、エスケープ文字で開始および終了します。HL7 エスケープ・シーケンスでは大文字と小文字が区別され、これらのエスケープ・シーケンスは、テーブルに示す特殊文字 F R S T E.brX0A、および X0D を使用します。示されている例では、\ (円記号) がエスケープ文字です。

文字シーケンス HL7 データ内で見つかった場合の意味
\.br\* 復改  
\F\ フィールド区切り文字 |
\R\ 繰り返し区切り文字 ~
\S\ コンポーネント区切り文字 ^
\T\ サブコンポーネント区切り文字 &
\E\ エスケープ文字 \
\X0A\ 行フィード  
\X0D\ 復改  

* エスケープされていない形に戻す場合にのみ使用します。

DTL を使用してリテラル文字列をターゲット・フィールドに <assign> するときに、その文字列に区切り文字またはリテラル文字として HL7 区切り文字を含める必要が場合は、特殊な処理が必要になります。その手順は以下のとおりです。

以下の MSH セグメントに示されているように、^\、および & が区切り文字となっているソース・メッセージがあるとします。

MSH|^~\&

特定の医療ソースから受信したすべての ADT_A01 メッセージに対し、DTL データ変換でリテラル値を InsuranceCompanyName フィールドに割り当てる必要があると仮定します。正しい値については、Pierre DuRhône & Cie という名前の保険会社をはじめとするすべての関係者の合意が得られています。この値は、HL7 データ・ストリーム内で以下のように表示されます。

Pierre DuRho^ne & Cie

この場合、HL7 エスケープ・シーケンスではデータ内の ^ および & を以下のように置き換える必要があります。

<assign
 property='target.{PIDgrp.IN1grp(1).IN1:InsuranceCompanyName.organizationname}'
 value='"Pierre DuRho\S\ne \T\ Cie"'/>

区切り文字について考慮する必要のあるもう 1 つのケースは、データを Ensemble HL7 仮想ドキュメントへ、または Ensemble HL7 仮想ドキュメントから移行する場合で、HL7 から HL7 へのデータ変換を使用しない場合です。例えば、XML から HL7 へ変換する場合または変換をまったく使用しない場合は、明示的に区切り文字に対処する必要があります。EnsLib.HL7.SegmentOpens in a new tab クラスは明示的な Escape() メソッドと Unescape() メソッドを備えています。これらを呼び出すことで、DTL データ変換によって自動的に実行される HL7 メッセージのエスケープ・シーケンスの解除および適用処理を手動で実行できます。また、replace() メソッドもあります。

FeedbackOpens in a new tab