FHIR 服務中的$convert數據
注意
在 2024 年 5 月,我們發行了與 FHIR 服務分離的獨立 FHIR 轉換器 API,並封裝為 容器 (Docker) 映射 以供 預覽。 除了可讓您將數據從記錄來源轉換成 FHIR R4 套件組合之外,FHIR 轉換器還提供許多淨新功能,例如:
- 從記錄來源到 FHIR R4 套件組合和返回的雙向數據轉換。 例如,FHIR 轉換器可以將 FHIR R4 格式的數據轉換回 HL7v2 格式。
- 改善自定義預設 Liquid 範本的體驗。
- 示範如何使用 Azure Data Factory 建立 ETL(擷取、轉換、載入)管線的範例。
若要實作 FHIR 轉換器容器映像,請參閱 FHIR 轉換器 GitHub 專案。
$convert-data
FHIR® 服務中的作業可讓您將健康情況數據從各種格式轉換成 FHIR R4 資料。 $convert-data
作業會使用 FHIR 轉換器專案中的 Liquid 範本,進行 FHIR 資料轉換。 您可以視需要自訂這些轉換範本。
此 $convert-data
作業支援四種類型的資料轉換:
- HL7v2 至 FHIR R4
- C-CDA 至 FHIR R4
- JSON 至 FHIR R4 (用於自訂轉換對應)
- FHIR STU3 至 FHIR R4
使用 $convert 資料端點
使用 $convert-data
端點作為 ETL (擷取、轉換和載入) 管線內的元件,將健康情況數據從各種格式轉換(例如:HL7v2、CCDA、JSON 和 FHIR STU3)轉換成 FHIR 格式。 當您轉換健康情況數據時,為完整的工作流程建立 ETL 管線。 建議您使用以 Azure Logic Apps 或 Azure Data Factory 為基礎的 ETL 引擎。 例如,工作流程可能包含數據擷取、執行$convert-data
作業、驗證、數據前置和後置處理、數據擴充、重複數據刪除,以及載入 FHIR 服務中持續性的數據。
$convert-data
作業會整合到 FHIR 服務中成為 REST API 動作。 您可以呼叫 $convert-data
端點,如下所示:
POST {{fhirurl}}/$convert-data
轉換的健康資料會傳遞至 $convert-data
要求主體中的 FHIR 服務。 如果要求成功,FHIR 服務會傳回 FHIR 套件組合回應,其中包含轉換成 FHIR R4 的資料。
參數
$convert-data
作業呼叫會將要轉換的健康資料以 JSON 格式的參數封裝在要求主體中。 下表會說明這些參數:
參數名稱 | 描述 | 接受的值 |
---|---|---|
inputData | 要轉換成 FHIR 的資料承載。 | 若為 Hl7v2 :字串 若為 Ccda :XML 若為 Json :JSON 若為 FHIR STU3 :JSON |
inputDataType | 資料輸入的類型。 | Hl7v2 、 、 Ccda 、 Json Fhir |
templateCollectionReference | Azure Container Registry 中 OCI 映像範本集合的參考。 參考是指參照映像,其中含有要用於轉換的 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 範本是建置您自己的轉換對應時使用的範本範本。 它們不是遵守任何預先定義健康情況數據訊息類型的預設範本。 JSON 本身不會指定為健康情況數據格式,不像 HL7v2 或 C-CDA。 因此,我們不會提供預設 JSON 範本,而是提供一些範例 JSON 範本作為您自己的自定義對應起點。
警告
默認範本會在 MIT 授權下發行,Microsoft 不支援。
範本僅用於協助您入門資料轉換工作流程。 這些預設範本不適用於生產環境,而且可能會隨著 Microsoft 發行 FHIR 服務的更新而變更。 若要在不同版本的 FHIR 服務上保持一致的資料轉換行為,您必須執行下列動作:
- 在 Azure Container Registry 執行個體中裝載您自己的範本複本。
- 向 FHIR 服務註冊範本。
- 在 API 呼叫中使用已註冊的範本。
- 確認轉換行為符合您的需求。
如需裝載自己範本的詳細資訊,請參閱裝載您自己的範本
範例要求
{
"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 作業來執行一些後續處理。
下一步
注意
FHIR® 是 HL7 的註冊商標,在 HL7 的許可下使用。