在 Azure API for FHIR 中儲存配置檔
重要
Azure API for FHIR 將於 2026 年 9 月 30 日淘汰。 請依照移轉策略,在該日期前轉換至 Azure 健康資料服務 FHIR® 服務。 由於 Azure API for FHIR 已淘汰,因此從 2025 年 4 月 1 日開始,將不允許新的部署。 Azure 健康資料服務 FHIR 服務是 Azure API for FHIR 的進化版本,可讓客戶透過與其他 Azure 服務整合來管理 FHIR、DICOM 和醫療技術服務。
HL7 Fast Healthcare 互操作性資源 (FHIR®) 定義儲存和交換醫療保健數據的標準和互通方式。 即使在基底 FHIR 規格內,根據 FHIR 正在使用的內容定義其他規則或延伸模組也很有説明。 對於 FHIR 這類內容特定用途, FHIR 配置檔 會用於額外一層規格。 FHIR 配置檔 可讓您使用條件約束和擴充功能縮小和自定義資源定義。
Azure API for FHIR 允許對設定檔驗證資源,以查看資源是否符合配置檔。 本文會引導您瞭解 FHIR 配置檔的基本概念,以及如何儲存它們。 如需本文外部 FHIR 配置檔的詳細資訊,請流覽 HL7.org。
FHIR 配置檔:基本概念
配置檔會在以 StructureDefinition
資源表示的資源上設定其他內容。 StructureDefinition
定義資源或數據類型內容的一組規則,例如資源擁有的專案,以及這些元素可以採用哪些值。
設定檔如何修改基底資源的一些範例如下:
- 限制基數:例如,您可以將元素上的基數上限設定為0,這表示專案在特定內容中排除。
- 將項目的內容限製為單一固定值。
- 定義資源的必要擴充功能。
StructureDefinition
由其標準 URL 識別:http://hl7.org/fhir/StructureDefinition/{profile}
。
以下列出一些範例。
http://hl7.org/fhir/StructureDefinition/patient-birthPlace
是需要患者出生登記地址資訊的基底配置檔。http://hl7.org/fhir/StructureDefinition/bmi
是另一個基底配置檔,定義如何代表主體質量指數(BMI)觀察。http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
是一個 US Core 配置檔,可設定與患者相關聯的資源最低預期AllergyIntolerance
,並識別必要欄位,例如延伸模組和值集。
當資源符合配置檔時,配置檔會在資源的 元素內 profile
指定。 以下是資源的開頭 Patient
範例,其具有 設定檔 http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient。
{
"resourceType" : "Patient",
"id" : "ExamplePatient1",
"meta" : {
"lastUpdated" : "2020-10-30T09:48:01.8512764-04:00",
"source" : "Organization/PayerOrganizationExample1",
"profile" : [
"http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient"
]
},
注意
配置文件必須建置在基底資源之上,且無法與基底資源衝突。 例如,如果元素的基數為1..1,則配置檔無法將其設為選擇性。
設定檔是由各種實作指南 (IG) 所指定。 以下是常見的 IG 清單。 如需詳細資訊,請造訪特定的 IG 網站,以深入瞭解 IG 及其內定義的配置檔。
注意
根據預設,Azure API for FHIR 不會從實作指南儲存任何配置檔。 您必須將它們載入 Azure API for FHIR。
存取設定檔和儲存配置檔
儲存配置檔
若要將設定檔儲存在 Azure API for FHIR 中,您可以使用PUT
StructureDefinition
要求主體中的設定檔內容。 更新或條件式更新都是在 FHIR 服務上儲存配置檔的好方法。 如果您不確定要使用哪一個條件式更新,請使用條件式更新。
標準 PUT
: PUT http://<your Azure API for FHIR base URL>/StructureDefinition/profile-id
or
條件式更新: PUT http://<your Azure API for FHIR base URL>/StructureDefinition?url=http://sample-profile-url
{
"resourceType" : "StructureDefinition",
"id" : "profile-id",
"url": "http://sample-profile-url"
…
}
例如,如果您想要儲存 us-core-allergyintolerance
配置檔,您會在身體中使用下列 rest 命令搭配 US Core 過敏不容忍配置檔。 我們在此範例中包含此配置檔的代碼段。
PUT https://myAzureAPIforFHIR.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
{
"resourceType" : "StructureDefinition",
"id" : "us-core-allergyintolerance",
"text" : {
"status" : "extensions"
},
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance",
"version" : "3.1.1",
"name" : "USCoreAllergyIntolerance",
"title" : "US Core AllergyIntolerance Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-06-29",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the AllergyIntolerance resource for the minimal set of data to query and retrieve allergy information.",
如需更多範例,請參閱 開放原始碼網站上的US Core 範例 REST 檔案 ,以逐步解說儲存US Core 設定檔。 若要取得最新的配置檔,您應該直接從 HL7 取得設定檔,以及定義這些配置檔的實作指南。
檢視配置檔
您可以使用要求來存取現有的自訂配置檔 GET
, GET http://<your Azure API for FHIR base URL>/StructureDefinition?url={canonicalUrl}
其中 {canonicalUrl}
是配置檔的正式 URL。
例如,如果您想要檢視US Core 目標資源配置檔,請使用下列專案。
GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal
這會傳 StructureDefinition
回US Core目標配置檔的資源,其開頭如下。
{
"resourceType" : "StructureDefinition",
"id" : "us-core-goal",
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal",
"version" : "3.1.1",
"name" : "USCoreGoalProfile",
"title" : "US Core Goal Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-07-21",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the Goal resource for the minimal set of data to query and retrieve a patient's goal(s).",
}
注意
您只會看到您已載入 Azure API for FHIR 的設定檔。
Azure API for FHIR 不會傳回 StructureDefinition
基底配置檔的實例,但可以在 HL7 網站中找到它們。
http://hl7.org/fhir/Observation.profile.json.html
http://hl7.org/fhir/Patient.profile.json.html
功能語句中的配置檔
列出 Capability Statement
Azure API for FHIR 的所有可能行為。 Azure API for FHIR 會更新功能語句,其中包含下列表單中預存設定檔的詳細數據。
CapabilityStatement.rest.resource.profile
CapabilityStatement.rest.resource.supportedProfile
例如,如果您儲存了US Core 病患配置檔,其開頭如下。
{
"resourceType": "StructureDefinition",
"id": "us-core-patient",
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient",
"version": "3.1.1",
"name": "USCorePatientProfile",
"title": "US Core Patient Profile",
"status": "active",
"experimental": false,
"date": "2020-06-27",
"publisher": "HL7 US Realm Steering Committee",
並傳送 GET
您的 metadata
要求:
GET http://<your Azure API for FHIR base URL>/metadata
系統會傳回 , CapabilityStatement
其中包含您上傳至 Azure API for FHIR 之 US Core 病患設定檔的下列資訊。
...
{
"type": "Patient",
"profile": "http://hl7.org/fhir/StructureDefinition/Patient",
"supportedProfile":[
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
],
配置檔中的系結
術語服務是一組函式,可在醫療「術語」上執行作業,例如驗證程式代碼、翻譯程式代碼、擴充值集和其他作業。
Azure API for FHIR 服務不支援術語服務。 如需支援作業的資訊($
)、資源類型和互動,請參閱服務的 CapabilityStatement
。 支援基本建立、讀取、更新和刪除 (CRUD) 作業和搜尋 (如 中所定義),以及系統用來使用$validate
的資源類型 。 ValueSet
CapabilityStatement
StructureDefinition
CodeSystem
ValueSets 可以包含一組複雜的規則和外部參考。 目前,服務只會考慮預先擴充的內嵌程序代碼。 客戶在使用作業之前 $validate
,必須先將支援的 ValueSets 上傳至 FHIR 伺服器。 資源ValueSet
必須使用 PUT 或條件式更新上傳至 FHIR 伺服器,如儲存配置檔一節中所述。
下一步
在本文中,您已瞭解 FHIR 配置檔。 接下來,您可以瞭解如何使用 $validate
來確保資源符合這些配置檔。
注意
FHIR® 是 HL7 的註冊商標,在 HL7 的許可下使用。