Share via


FHIR サービスの $convert-data

Note

2024 年 5 月に、FHIR サービスから分離され、プレビュー用のコンテナー (Docker) イメージとしてパッケージ化されたスタンドアロンの FHIR コンバーター API をリリースしました。 FHIR コンバーターは、レコードのソースから FHIR R4 バンドルへのデータ変換を可能にするだけでなく、次のような多くの新しい機能を備えています。

  • レコードのソースと FHIR R4 バンドルの間の双方向データ変換。 FHIR コンバーターは、たとえば、FHIR R4 形式のデータを元の HL7v2 形式に戻す変換を行うことができます。
  • 既定の Liquid テンプレートのカスタマイズに関するエクスペリエンスの向上。
  • Azure Data Factory (ADF) を使用して ETL (抽出、変換、読み込み) パイプラインを作成する方法を示すサンプル。

FHIR コンバーターのコンテナー イメージを実装するには、 「FHIR コンバーターの GitHub プロジェクト」を参照してください。

FHIR® サービスの $convert-data 操作を使用すると、さまざまな形式の健康データを FHIR R4 データに変換することができます。 $convert-data 操作では、FHIR Converter プロジェクトの Liquid テンプレートを FHIR データ変換に使用します。 これらの変換テンプレートは必要に応じてカスタマイズすることができます。

$convert-data 操作では、次の 4 種類のデータ変換がサポートされています。

  • HL7v2 から FHIR R4
  • C-CDA から FHIR R4
  • JSON から FHIR R4 (カスタム変換マッピング用)
  • FHIR STU3 から FHIR R4

$convert-data エンドポイントを使用する

$convert-data エンドポイントを ETL (抽出、変換、読み込み) パイプライン内のコンポーネントとして使用して、さまざまな形式 (HL7v2、CCDA、JSON、FHIR STU3 など) から FHIR 形式に健康データを変換します。 健康データを変換するときは、完全なワークフローの ETL パイプラインを作成します。 Azure Logic Apps または Azure Data Factory に基づく ETL エンジンを使用することをお勧めします。 たとえば、ワークフローには、データ インジェスト、 $convert-data 操作の実行、検証、データの前処理および後処理、データ エンリッチメント、データ重複除去、FHIR サービスで永続化するためのデータの読み込みが含まれます。

$convert-data 操作は、REST API アクションとして FHIR サービスに統合されます。 次のように $convert-data エンドポイントを呼び出すことができます。

POST {{fhirurl}}/$convert-data

変換用の健康データは、$convert-data 要求の本文で FHIR サービスに配信されます。 要求が成功すると、FHIR サービスは、FHIR R4 に変換されたデータを FHIR バンドル応答で返します。

パラメーター

$convert-data 操作呼び出しでは、要求の本文に含まれる JSON 形式のパラメーター内に変換用の健康データをパッケージ化します。 パラメーターについては次の表で説明します。

パラメーター名 説明 指定可能な値
inputData FHIR に変換されるデータ ペイロード。 Hl7v2 の場合: string
Ccda の場合: XML
Json の場合: JSON
FHIR STU3 の場合: JSON
inputDataType データ入力の種類。 Hl7v2CcdaJson, Fhir
templateCollectionReference Azure Container RegistryOCI イメージ テンプレート コレクションへの参照。 参照先は、変換に使用する Liquid テンプレートを含むイメージです。 既定のテンプレートまたは FHIR サービス内に登録されたカスタム テンプレート イメージのどちらかを参照できます。 次以降のセクションでは、テンプレートのカスタマイズ、Azure Container Registry でのテンプレートのホスト、FHIR サービスへの登録について説明します。 既定/サンプル テンプレートの場合:
HL7v2 テンプレート:
microsofthealth/fhirconverter:default
microsofthealth/hl7v2templates:default
C-CDA テンプレート:
microsofthealth/ccdatemplates:default
JSON テンプレート:
microsofthealth/jsontemplates:default
FHIR STU3 テンプレート:
microsofthealth/stu3tor4templates:default

カスタム テンプレートの場合:
<RegistryServer>/<imageName>@<imageDigest><RegistryServer>/<imageName>:<imageTag>
rootTemplate データの変換中に使用するルート テンプレート。 HL7v2 の場合:
ADT_A01、ADT_A02、ADT_A03、ADT_A04、ADT_A05、ADT_A08、ADT_A11、ADT_A13、ADT_A14、ADT_A15、ADT_A16、ADT_A25、ADT_A26、ADT_A27、ADT_A28、ADT_A29、ADT_A31、ADT_A47、ADT_A60、OML_O21、ORU_R01、ORM_O01、VXU_V04、SIU_S12、SIU_S13、SIU_S14、SIU_S15、SIU_S16、SIU_S17、SIU_S26、MDM_T01、MDM_T02

C-CDA の場合:
CCD、ConsultationNote、DischargeSummary、HistoryandPhysical、OperativeNote、ProcedureNote、ProgressNote、ReferralNote、TransferSummary

JSON の場合:
ExamplePatient、Stu3ChargeItem

FHIR STU3 の場合:
FHIR STU3 リソース名 (例: Patient、Observation、Organization)

考慮事項

  • FHIR STU3 から FHIR R4 へのテンプレートは Liquid テンプレートであり、FHIR STU3 リソースと FHIR R4 仕様における同等のリソースとの間のフィールドの違いのみのマッピングを提供します。 一部の FHIR STU3 リソースは、名前が変更されるか、FHIR R4 から削除されます。 FHIR STU3 から FHIR R4 への変換のリソースの違いと制約の詳細については、「FHIR STU3 から FHIR R4 への変換のリソースの相違点と制約」を参照してください。

  • JSON テンプレートは、独自の変換マッピングを構築する際に使用するサンプル テンプレートです。 これらは、定義済みの健康データ メッセージの種類に準拠する既定のテンプレートではありません。 HL7v2 や C-CDA と異なり、JSON 自体は健康データ形式として指定されていません。 そのため、当社では既定の JSON テンプレートを提供する代わりに、ユーザー独自のカスタマイズされたマッピングの開始点として、いくつかのサンプル JSON テンプレートを提供します。

警告

既定のテンプレートは MIT ライセンスに基づいてリリースされており、Microsoft ではサポートされていません。

既定のテンプレートは、データ変換ワークフローの開始を補助するためにのみ用意されています。 これらの既定のテンプレートは運用環境向けではなく、Microsoft が FHIR サービスの更新プログラムをリリースするときに変更される可能性があります。 FHIR サービスの異なるバージョン間で一貫したデータ変換動作を行うには、次の操作を行う必要があります。

  1. Azure Container Registry インスタンスでテンプレートの独自のコピーをホストします。
  2. テンプレートを FHIR サービスに登録します。
  3. 登録したテンプレートを API 呼び出しで使用します。
  4. 変換動作が要件を満たしていることを確認します。

独自のテンプレートをホストする方法の詳細については、「独自のテンプレートをホストする」を参照してください。

要求のサンプル

{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "inputData",
            "valueString": "MSH|^~\\&|SIMHOSP|SFAC|RAPP|RFAC|20200508131015||ADT^A01|517|T|2.3|||AL||44|ASCII\nEVN|A01|20200508131015|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|\nPID|1|3735064194^^^SIMULATOR MRN^MRN|3735064194^^^SIMULATOR MRN^MRN~2021051528^^^NHSNBR^NHSNMBR||Kinmonth^Joanna^Chelsea^^Ms^^D||19870624000000|F|||89 Transaction House^Handmaiden Street^Wembley^^FV75 4GJ^GBR^HOME||020 3614 5541^PRN|||||||||C^White - Other^^^||||||||\nPD1|||FAMILY PRACTICE^^12345|\nPV1|1|I|OtherWard^MainRoom^Bed 183^Simulated Hospital^^BED^Main Building^4|28b|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|||CAR|||||||||16094728916771313876^^^^visitid||||||||||||||||||||||ARRIVED|||20200508131015||"
        },
        {
            "name": "inputDataType",
            "valueString": "Hl7v2"
        },
        {
            "name": "templateCollectionReference",
            "valueString": "microsofthealth/fhirconverter:default"
        },
        {
            "name": "rootTemplate",
            "valueString": "ADT_A01"
        }
    ]
}

応答のサンプル

{
    "resourceType": "Bundle",
    "type": "batch",
    "entry": [
        {
            "fullUrl": "urn:uuid:9d697ec3-48c3-3e17-db6a-29a1765e22c6",
            "resource": {
                "resourceType": "Patient",
                "id": "9d697ec3-48c3-3e17-db6a-29a1765e22c6",
          ...
          ...
            },
            "request": {
                "method": "PUT",
                "url": "Location/50becdb5-ff56-56c6-40a1-6d554dca80f0"
            }
        }
    ]
}

FHIR 変換の結果は、バッチとしての FHIR バンドルです。

  • FHIR バンドルは、FHIR R4 仕様 - バンドル - FHIR v4.0.1 の期待に沿ったものである必要があります。
  • 特定のプロファイルに対して検証を行う場合は、FHIR $validate 操作を使用して後処理を行う必要があります。

次のステップ

Azure portal を使用して $convert-data の設定を構成する

$convert-data のトラブルシューティング

$convert-dataに関する FAQ

Note

FHIR® は HL7 の登録商標であり、HL7 の許可を得て使用しています。