HL7 データのフラット化
HL7 データは階層的に構成されています。多くのステージではフラット形式のデータが必要とされるので、下流のステージでの住所検証やジオコーディングなどで使用できるようにするためにデータをフラット化することが必要となる場合があります。
次の手順では、Splitter ステージを使用して HL7 データをフラット化する方法について説明します。
例
次のような 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>