HL7 データのフラット化

HL7 データは階層的に構成されています。多くのステージではフラット形式のデータが必要とされるので、下流のステージでの住所検証やジオコーディングなどで使用できるようにするためにデータをフラット化することが必要となる場合があります。

次の手順では、Splitter ステージを使用して HL7 データをフラット化する方法について説明します。

  1. Read from HL7 File ステージをデータ フローに追加して設定します。
  2. Splitter ステージを追加して Read from HL7 File に接続します。
  3. フラット化するセグメント、フィールド、またはコンポーネントごとに 1 つの Splitter ステージとなるように、必要に応じて Splitter ステージを追加します。
    注: 下流のステージで処理するデータのみをフラット化します。それ以外のデータは階層形式に残しておくことができます。例えば、住所データのみを処理する場合は、住所データのみをフラット化します。
  4. すべての Splitter ステージを接続します。

    データ フローは次のようになっているはずです。

  5. 最初の Splitter ステージをダブルクリックして、ステージのオプション を開きます。
  6. [分割位置] フィールドで、フラット化するセグメント、フィールド、またはコンポーネントを選択します。
  7. [OK] をクリックします。
  8. 追加の各 Splitter ステージを設定し、各 Splitter の[分割位置] フィールドで異なるセグメント、フィールド、またはコンポーネントを選択します。
  9. 必要に応じて、最後の Splitter の後にステージを追加してデータフローを完成させます。

次のような HL7 データがあり、PID セグメントに含まれる住所を検証します。

MSH|^~\&||.|||199908180016||RAS^O17|ADT.1.1698594|P|2.7
PID|1||000395122||SMITH^JOHN^D||19880517180606|M|||One Global View^^Troy^NY^12180||(630)123-4567|||S||12354768|87654321

このためには、Validate Address ステージで処理できるように、住所データをフラット データに変換する必要があります。したがって、次のように Splitter ステージに続けて Validate Address ステージを含むデータフローを作成します。

Splitter ステージは、PID/Patient_Address/Street_Address コンポーネントで分割するように設定され、それによって、このデータをフラット データに変換します。

Splitter ステージを Validate Address ステージに接続するチャネルは、フィールド名を Validate Address で必要となるフィールド名に変更します。つまり、Street_or_Mailing_Addres は AddressLine1 に、State_or_Province は StateProvince に、Zip_or_Postal_Code は PostalCode に変更されます。

この例では、出力は、次のデータを含む XML ファイルに書き込まれます。

<?xml version='1.0' encoding='UTF-8'?>
<XmlRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <PatientInformation>
        <Confidence>95</Confidence>
        <RecordType>Normal</RecordType>
        <CountryLevel>A</CountryLevel>
        <ProcessedBy>USA</ProcessedBy>
        <MatchScore>0</MatchScore>
        <AddressLine1>1 Global Vw</AddressLine1>
        <City>Troy</City>
        <StateProvince>NY</StateProvince>
        <PostalCode>12180-8371</PostalCode>
        <PostalCode.Base>12180</PostalCode.Base>
        <PostalCode.AddOn>8371</PostalCode.AddOn>
        <Country>United States Of America</Country>
        <Patient_Name>
            <Family_Name>
                <Surname>SMITH</Surname>
            </Family_Name>
            <Given_Name>JOHN</Given_Name>
            <Second_and_Further_Given_Names_or_Initials_Thereof>
             D
            </Second_and_Further_Given_Names_or_Initials_Thereof>
        </Patient_Name>
    </PatientInformation>
</XmlRoot>