分享方式:


FHIR 服務中的 $convert-data

注意

在 2024 年 5 月,我們發行了自外於 FHIR 服務的獨立 FHIR® 轉換器 API,並封裝成容器 (Docker) 映像 (英文) 以供預覽。 除可讓您將資料從記錄來源轉換成 FHIR R4 套件組合之外,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 轉換器專案中的 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 AppsAzure 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 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 入口網站設定 $convert-data

針對 $convert-data 進行疑難排解

常見問題集 - $convert 資料

注意

FHIR® 是 HL7 的註冊商標,在 HL7 的許可下使用。