Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

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"'/>

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

FeedbackOpens in a new tab