データを Azure API for FHIR 用の FHIR に変換する
重要
Azure API for FHIR は、2026 年 9 月 30 日に廃止されます。 移行戦略に従って、その日までに Azure Health Data Services FHIR® サービスに切り替えてください。 Azure API for FHIR が廃止されたため、2025 年 4 月 1 日以降、新しいデプロイは許可されません。 Azure Health Data Services FHIR サービス は、お客様が他の Azure サービスへの統合を使用して、FHIR、DICOM、および MedTech サービスを管理できるようにする、進化したバージョンの Azure API for FHIR です。
FHIR® サービスの $convert-data
カスタム エンドポイントは、さまざまなデータ型から FHIR へのデータ変換を目的としています。 既定のテンプレートとして FHIR Converter プロジェクトのテンプレートと Liquid テンプレート エンジンが使用されます。 これらの変換テンプレートは必要に応じてカスタマイズすることができます。
現在、$convert-data
カスタム エンドポイントでは、次の 4 種類のデータ変換がサポートされています。
元のデータ形式 | 変換先データ形式 |
---|---|
C-CDA | FHIR |
HL7v2 | FHIR |
JSON | FHIR |
FHIR STU3 | FHIR R4 |
Note
$convert-data
エンドポイントは、未加工の医療データを従来の形式から FHIR 形式に変換するための抽出、変換、読み込み (ETL) パイプライン内のコンポーネントとして使用できます。 ただし、それ自体は ETL パイプラインではありません。 FHIR データを FHIR サーバーに永続化する準備での完全なワークフローには、Logic Apps や Azure Data Factory などの ETL エンジンを使用することをお勧めします。 ワークフローには、データの読み取りとインジェスト、データ検証、$convert-data
API 呼び出しの実行、データの前処理/後処理、データのエンリッチメント、データの重複除外が含まれる場合があります。
$convert-data エンドポイントを使用する
$convert-data
操作は FHIR サービスに統合され、サービスの一部として実行されます。 サーバーで $convert-data
を有効にすると、サーバーに対して API 呼び出しを行い、https://<<FHIR service base URL>>/$convert-data
を使用してデータを FHIR に変換できます。
パラメーター リソース
$convert-data
は、以下の表で説明されているように、要求本文で Parameter リソースを受け取ります。 API 呼び出し要求本文には、次のパラメーターを含めます。
パラメーター名 | 説明 | 指定可能な値 |
---|---|---|
inputData | 変換の対象となるデータ。 | Hl7v2 の場合: string Ccda の場合: XML Json の場合: JSON FHIR STU3 の場合: JSON |
inputDataType | 入力のデータ型。 | HL7v2 、Ccda 、Json , Fhir |
templateCollectionReference | Azure Container Registry (ACR) 上の OCI イメージ テンプレート コレクションへの参照。 これは、変換に使用する Liquid テンプレートを含むイメージです。 これは、既定のテンプレートまたは FHIR サービス内に登録されているカスタム テンプレート イメージへの参照にすることができます。 テンプレートのカスタマイズ、ACR でのホスティング、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": STU3 リソース (Name の例: "Patient"、"Observation"、"Organization")。 |
Note
FHIR STU3 から R4 へのテンプレートは "差分" の Liquid テンプレートであり、STU3 リソースと FHIR R4 標準における同等のリソースとの間のフィールドの違いのみのマッピングを提供します。 一部の STU3 リソースは、名前が変更されるか、R4 から削除されます。 STU3 から R4 への変換に関するリソースの違いと制約に関する記事を参照してください。
Note
JSON テンプレートは、使用するためのサンプル テンプレートであり、事前定義された JSON メッセージの種類に準拠する "既定の" テンプレートではありません。 HL7v2 メッセージや C-CDA ドキュメントとは異なり、JSON には標準化されたメッセージ型の種類はありません。 既定のテンプレートの代わりに、独自にカスタマイズしたテンプレートの開始ガイドとして使用できるサンプル テンプレートがいくつか用意されています。
警告
既定のテンプレートは MIT ライセンスに基づいてリリースされており、Microsoft サポートではサポートされていません。
既定のテンプレートは、単に作業を始めるときの支援として用意されています。 これらは、Azure API for FHIR のバージョンを更新するときに更新される可能性があります。 変換動作を確認し、Azure Container Registry で独自のテンプレートのコピーをホストし、API 呼び出しで使用できるように Azure API for FHIR にそれらを登録する必要があります。 これは、Azure API for FHIR のさまざまなバージョンで一貫性のあるデータ変換動作を行うために必要です。
サンプル要求
{
"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": "transaction",
"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"
}
}
]
}
テンプレートのカスタマイズ
テンプレートは、Visual Studio Code 用の FHIR Converter 拡張機能を使用して、必要に応じてカスタマイズすることができます。 この拡張機能は、対話型の編集エクスペリエンスを提供するものであり、Microsoft が公開しているテンプレートやサンプル データを簡単にダウンロードできるようになっています。 詳細については、拡張機能のドキュメントを参照してください。
Note
Visual Studio Code の FHIR Converter 拡張機能は、HL7v2、C-CDA、JSON Liquid テンプレートで使用できます。 FHIR STU3 から R4 の Liquid テンプレートは現在サポートされていません。
テンプレートをホストして使用する
独自のテンプレートのコピーを ACR でホストすることをお勧めします。 独自のテンプレートのコピーをホストし、それらを $convert-data
操作で使用するには、次の 4 つの手順が必要です。
- Azure Container Registry にテンプレートをプッシュします。
- Azure API for FHIR インスタンスでマネージド ID を有効にします。
- Azure API for FHIR マネージド ID に ACR のアクセス権を付与します。
- Azure API for FHIR に ACR サーバーを登録します。
- 必要に応じて、セキュリティで保護されたアクセス用に ACR ファイアウォールを構成します。
Azure Container Registry にテンプレートをプッシュする
ACR インスタンスを作成した後、FHIR Converter 拡張機能の FHIR Converter: Push Templates コマンドを使用して、カスタマイズされたテンプレートを ACR にプッシュします。 または、Template Management CLI ツールを使用できます。
Azure API for FHIR でマネージド ID を有効にする
Azure portal で Azure API for FHIR サービスのインスタンスにアクセスし、次に [ID] ブレードを選びます。 Azure API for FHIR でマネージド ID を有効にするには、状態を [オン] に変更します。
Azure API for FHIR に ACR のアクセス権を付与する
[アクセス制御 (IAM)] ブレードを参照します。
[追加] を選び、次に [ロールの割り当ての追加] を選び、[ロールの割り当ての追加] ページを開きます。
AcrPull ロールを割り当てます。
Azure portal でロールに割り当てる方法の詳細については Azure 組み込みロールに関するページを参照してください。
Azure API for FHIR に ACR サーバーを登録する
ACR サーバーは、Azure portal または CLI を使用して登録できます。
Azure portal を使用した ACR サーバーの登録
Azure API for FHIR インスタンスの [データ変換] の下にある [Artifacts] ブレードを参照します。 現在登録されている ACR サーバーの一覧が表示されます。 [追加] を選び、次にドロップダウン メニューからレジストリ サーバーを選びます。 登録を有効にするには、[保存] を選択する必要があります。 変更を適用してインスタンスを再起動するには、数分かかる場合があります。
CLI を使用した ACR サーバーの登録
Azure API for FHIR には、最大 20 台の ACR サーバーを登録することができます。
必要に応じて、Azure PowerShell から Azure Health Data Services CLI をインストールします。
az extension add -n healthcareapis
以下の例に従って、Azure API for FHIR に ACR サーバーを登録します。
1 台の ACR サーバーを登録する
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
複数台の ACR サーバーを登録する
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io fhiracr2020.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
ACR ファイアウォールを構成する
ポータルから Azure ストレージ アカウントの [ネットワーク] を選択します。
[選択されたネットワーク] を選択します。
[ファイアウォール] セクションの [アドレス範囲] ボックスに IP アドレスを指定します。 インターネットまたはオンプレミスのネットワークからのアクセスを許可する IP 範囲を追加します。
以下の表には、Azure API for FHIR サービスがプロビジョニングされている Azure リージョンの IP アドレスが示されています。
Azure リージョン | パブリック IP アドレス |
---|---|
オーストラリア東部 | 20.53.47.210 |
ブラジル南部 | 191.238.72.227 |
カナダ中部 | 20.48.197.161 |
インド中部 | 20.192.47.66 |
米国東部 | 20.62.134.242、20.62.134.244、20.62.134.245 |
米国東部 2 | 20.62.60.115、20.62.60.116、20.62.60.117 |
フランス中部 | 51.138.211.19 |
ドイツ北部 | 51.116.60.240 |
ドイツ中西部 | 20.52.88.224 |
東日本 | 20.191.167.146 |
西日本 | 20.189.228.225 |
韓国中部 | 20.194.75.193 |
米国中北部 | 52.162.111.130、20.51.0.209 |
北ヨーロッパ | 52.146.137.179 |
カタール中部 | 20.21.36.225 |
南アフリカ北部 | 102.133.220.199 |
米国中南部 | 20.65.134.83 |
東南アジア | 20.195.67.208 |
スウェーデン中部 | 51.12.28.100 |
スイス北部 | 51.107.247.97 |
英国南部 | 51.143.213.211 |
英国西部 | 51.140.210.86 |
米国中西部 | 13.71.199.119 |
西ヨーロッパ | 20.61.103.243、20.61.103.244 |
米国西部 2 | 20.51.13.80、20.51.13.84、20.51.13.85 |
米国西部 3 | 20.150.245.165 |
Note
上記の手順は、"FHIR データをエクスポートする方法" に関するドキュメントで説明されている構成手順に似ています。 詳細については、「Azure Storage へのセキュリティで保護されたエクスポート」を参照してください
確認
templateCollectionReference パラメーターにテンプレート参照を指定して $convert-data
API を呼び出します。
<RegistryServer>/<imageName>@<imageDigest>
次のステップ
この記事では、Azure API for FHIR のデータ変換について説明しました。 Azure API for FHIR に関連する GitHub プロジェクトの詳細については、次を参照してください
Note
FHIR® は HL7 の登録商標であり、HL7 の許可を得て使用しています。