Read From HL7 File

Read From HL7 File ステージは、データフローへの入力としてテキスト ファイルから Health Level Seven (HL7) データを読み取ります。HL7 は、保健医療業界向けのメッセージ標準で、システム間でのデータ交換に使用されます。HL7 の詳細については、www.hl7.org を参照してください。

HL7 メッセージング形式

HL7 メッセージ内のデータは、以下のように階層的に構成されています。

  • message
    • セグメント
      • field
        • コンポーネント
          • サブコンポーネント

HL7 メッセージの各行がセグメントです。セグメントとは、フィールドを論理的にグループ化したものです。セグメント内の先頭 3 文字はセグメント タイプを識別します。上記のメッセージには、MSH (メッセージ ヘッダ)、PID (患者 ID)、2 つの NK1 (近親者)、および IN1 (保険) の 5 つのセグメントがあります。

各セグメントはフィールドで構成されます。フィールドには、セグメントの用語に関する情報が含まれ、例えば、IN1 (保険) セグメントには保険会社の名前が含まれます。フィールドは、一般的には (常にではない) | 文字で区切られます。

フィールドは、コンポーネントに分割できます。コンポーネントは、一般的には ^ 文字によって示されます。上記の例では、PID (患者 ID) セグメントには、姓 (LEVERKUHN)、名 (ADRIAN)、およびミドルネームのイニシャル (C) の 3 つから成る LEVERKUHN^ADRIAN^C を含む患者名フィールドがあります。コンポーネントは、サブコンポーネントに分割できます。サブコンポーネントは、一般的には & 文字によって示されます。

HL7 メッセージの例を以下に示します。

MSH|^~\&||.|||199908180016||ADT^A04|ADT.1.1698593|P|2.7
PID|1||000395122||LEVERKUHN^ADRIAN^C||19880517180606|M|||6 66TH AVE NE^^WEIMAR^DL^98052||(157)983-3296|||S||12354768|87654321
NK1|1|TALLIS^THOMAS^C|GRANDFATHER|12914 SPEM ST^^ALIUM^IN^98052|(157)883-6176
NK1|2|WEBERN^ANTON|SON|12 STRASSE MUSIK^^VIENNA^AUS^11212|(123)456-7890
IN1|1|PRE2||LIFE PRUDENT BUYER|PO BOX 23523^WELLINGTON^ON^98111|||19601||||||||THOMAS^JAMES^M|F|||||||||||||||||||ZKA535529776
注: 与えられたサンプル テキストを使用して HL7 ファイルを作成するには、以下の手順を実行します。
  1. Notepad++ など、任意のテキスト編集ソフトウェアを使用して、サンプル テキストを新規ドキュメントにコピー アンド ペーストします。
  2. 内容を必要に応じて変更します。
  3. テキストの EOL (行末) を表示するように設定します。Notepad++ の場合は、[表示] > [制御文字の表示] > [改行文字を表示] を選択します。
  4. EOL (行末) 変換フォーマットを CR (復帰) に変更します。Notepad++ の場合は、[編集] > [改行コードを変更] > [Macフォーマット(CR)に変換] を選択します。
  5. フォーマットをこのように変更したら、HL7 ファイルを保存します。

[ファイル プロパティ] タブ

フィールド名

説明

サーバ名

入力として選択したファイルが Enterprise Designer を実行しているコンピュータ上にあるか、Spectrum™ Technology Platform サーバー上にあるかを示します。ローカル コンピュータ上のファイルを選択した場合、サーバー名はマイ コンピュータになります。サーバー上のファイルを選択した場合、サーバー名は Spectrum™ Technology Platform になります。

ファイル名

ファイルへのパスを指定します。省略記号ボタン (...) をクリックし、必要なファイルを参照して選択します。

注: なお、Spectrum™ Technology Platform サーバーを実行しているプラットフォームが Unix または Linux の場合、これらのプラットフォームでファイル名およびパスの大文字と小文字が区別されることに注意してください。

HL7 バージョン

指定したファイルで使用される HL7 標準のバージョン。例えば、"2.7" は、ファイルで HL7 バージョン 2.7 が使用されることを意味します。HL7 バージョンは、MSH セグメントの最後のフィールドに示されます。

文字エンコーディング

テキスト ファイルのエンコーディング。次のいずれかを選択します。

UTF-8
すべての Unicode 文字をサポートし、かつ ASCII との下位互換性があります。UTF の詳細については、unicode.org/faq/utf_bom.html を参照してください。
UTF-16
すべての Unicode 文字をサポートします。しかし、ASCII との下位互換性はありません。UTF の詳細については、unicode.org/faq/utf_bom.html を参照してください。
US-ASCII
英語のアルファベット順に従う文字エンコーディング。
UTF-16BE
ビッグエンディアン UTF-16 エンコーディング (下位アドレスが上位バイトとなるようにシリアル化)。
UTF-16LE
リトルエンディアン UTF-16 エンコーディング (下位アドレスが下位バイトとなるようにシリアル化)。
ISO-8859-1
主として西ヨーロッパの言語で使われる ASCII 文字エンコーディング。Latin-1 とも呼ばれます。
ISO-8859-3
主として南ヨーロッパの言語で使われる ASCII 文字エンコーディング。Latin-3 とも呼ばれます。
ISO-8859-9
主としてトルコ語で使われる ASCII 文字エンコーディング。Latin-5 とも呼ばれます。
CP850
西ヨーロッパの言語を書くための ASCII コード ページ。
CP500
西ヨーロッパの言語を書くための EBCDIC コード ページ。
Shift_JIS
日本語のための文字エンコーディング。
MS932
NEC 特殊文字、NEC 選定 IBM 拡張文字、IBM 拡張文字を含めた Microsoft の拡張版 Shift_JIS 文字コード。
CP1047
Latin-1 文字セット全体を含む EBCDIC コード ページ。

Validate

これらのオプションは、ファイルが HL7 2.7 標準に準拠していることを確認するかどうかを指定します。ファイル内の任意のメッセージが検証に失敗すると、そのメッセージは形式に誤りのあるレコードとして処理され、ジョブ (Enterprise Designer の [編集] > [ジョブ オプション] で) またはシステム (Management Console で) に指定されている形式に誤りのあるレコード オプションが有効になります。

必須フィールド
各セグメント、フィールド、コンポーネント、およびサブコンポーネントに HL7 2.7 標準の必須要素が含まれているかどうかを確認する場合は、このボックスをオンにします。
長さ
各要素が、HL7 2.7 標準に定義されている要素の最小および最大長要件を満たしているかどうかを確認する場合は、このボックスをオンにします。

例外を無視

想定される位置にないセグメント、フィールド、コンポーネント、およびサブコンポーネントをメッセージに含めることができるようにする場合は、これらのオプションを選択します。想定される位置は、HL7 標準に定義されています。カスタム メッセージ タイプの場合は、Enterprise Designer の HL7 スキーマ管理ツールで定義します。

例えば、以下のカスタム メッセージ スキーマがあるとします。

MSH
[PID]
{ZSS}
PV1
NK1
{[DG1]}

データは次のようになっています。

MSH|^~\&|Pharm|GenHosp|CIS|GenHosp|198807050000||RAS^O17|RAS1234|P|2.7
ZSS|100|abc
PID|1234||PATID1234^5^M11^ADT1^MR^GOOD HEALTH HOSPITAL~123456789^^^USSSA^SS|
PV1||O|O/R||||0148^ADDISON,JAMES|0148^ADDISON,JAMES
NK1|Son|John

この場合、セグメント PIDZSS セグメントの前にあるため、例外となります。

予期せぬ位置にある要素を含むメッセージは形式に誤りのあるレコードとして処理され、ジョブ (Enterprise Designer の [編集] > [ジョブ オプション] で) またはシステム (Management Console で) に指定されている、形式に誤りのあるレコード オプションが有効になります。

デフォルトでは、できるだけ多くのレコードが正しく処理されるように、すべての [例外を無視] オプションが有効になります。

セグメント
HL7 2.7 標準に定義されていないセグメントがメッセージに含まれることを許可する場合は、このボックスをオンにします。例外セグメントは無視され、メッセージ内のその他のセグメントが処理されます。
フィールド
HL7 2.7 標準に定義されていないフィールドがセグメントに含まれることを許可する場合は、このボックスをオンにします。例外フィールドは無視され、セグメント内のその他のフィールドが処理されます。
コンポーネント
HL7 2.7 標準に定義されていないコンポーネントがフィールドに含まれることを許可する場合は、このボックスをオンにします。例外コンポーネントは無視され、フィールド内のその他のコンポーネントが処理されます。
サブコンポーネント
HL7 2.7 標準に定義されていないサブコンポーネントがコンポーネントに含まれることを許可する場合は、このボックスをオンにします。コンポーネント内の例外サブコンポーネントは無視され、その他のサブコンポーネントが処理されます。

[フィールド] タブ

[フィールド] タブには、セグメント、フィールド、コンポーネント、およびサブコンポーネントが表示されます。[フィールド] タブを使用して、データフローに読み込むデータを選択します。

セグメント グループは、あるカテゴリのデータを含めるために一緒に使用されるセグメントのコレクションで、メッセージ スキーマにおけるそのグループの位置を示す番号付与体系を使用して表示されます。各セグメントには、"Group_n" というラベルが付与されます。"n" は、メッセージ スキーマにおけるグループの位置に対応する数字です。番号付与体系の仕組みを説明するため、次の例を考えてみましょう。



この例は、メッセージ RAS^017 のフィールド リストを示しています。このメッセージには、RAS_017_Group_1 と RAS_017_Group_2 という 2 つのセグメント グループがあります。"Group_1" セグメント グループは RAS^017 スキーマ内の最初のセグメント グループを指し、2 番目のグループ "Group_2" は RAS^017 スキーマ内に示される 2 番目のグループを指します。

"Group_1" および "Group_2" がどのセグメント グループを表しているかを判断するには、ドキュメント『HL7 バージョン 2.7 標準』のメッセージ RAS^017 についての説明を探してください。このドキュメントのコピーは、www.hl7.org からダウンロードできます。

メッセージの説明で、最初のグループ (RAS^017 の場合は PATIENT グループ) を探します。スキーマ内の 2 番目のグループは ORDER グループです。

1 つのセグメント グループの下にネストされているセグメント グループの場合は、グループ番号にさらに番号が付加されます。例えば、Group_21 は、2 番目のグループの下にネストされている最初のグループを表します。その下のサブグループには、Group_221 のように、さらに番号が付加されます。メッセージ RAS^017 の場合、これはセグメント グループ ORDER_DETAIL_SUPPLEMENT を表します。ネストされているグループの例を以下に示します。



[フィールド] タブにあるコントロールについては、以下の表に説明します。

表 1. [フィールド] タブ

オプション名

説明

再生成

このボタンをクリックすると、入力ファイルに含まれるメッセージ タイプのセグメント、フィールド、コンポーネント、およびサブコンポーネントが [フィールド] タブにすべて入力されます。入力ファイルにすべての要素が含まれているかどうかにかかわらず、HL7 スキーマに基づいてメッセージ タイプの要素がすべて表示されます。例えば、ファイルに RAS メッセージが含まれている場合、入力ファイルにセグメント、フィールド、コンポーネント、およびサブコンポーネントのすべてのデータが実際に含まれているかどうかに関係なく、RAS メッセージ全体のスキーマが表示されます。

Enterprise Designer の HL7 スキーマ管理ツールを使用してカスタム要素を定義した場合は、その要素も一覧表示されます。

すべて展開

フィールド タブのすべての要素を展開すると、ファイルに含まれるメッセージ タイプのセグメント、フィールド、コンポーネント、およびサブコンポーネントをすべて表示できます。

すべて折りたたむ

ビュー内のすべてのノードを閉じて、セグメントのみを表示します。これを使用すると、ファイル内のメッセージ タイプのセグメントを容易に表示できます。この後、個々のセグメントを展開すれば、セグメント内のフィールド、コンポーネント、およびサブコンポーネントを表示できます。

すべて選択

ファイルに含まれるすべてのメッセージ タイプについて、セグメント、フィールド、コンポーネント、およびサブコンポーネントのデータフロー フィールドをすべて作成する場合は、このボックスをオンにします。