在 FHIR 服務中儲存配置檔
HL7 Fast Healthcare 互操作性資源 (FHIR®) 定義儲存和交換醫療保健數據的標準和互通方式。 即使在基底 FHIR 規格內,根據使用 FHIR 的內容定義其他規則或擴充功能也很有説明。 針對 FHIR 的內容特定用途, FHIR 配置檔 會用於額外一層規格。 FHIR 配置檔 可讓您使用條件約束和擴充功能縮小和自定義資源定義。
Azure Health Data Services 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
指定。 您可以在下列範例中看到具有配置檔的「病患」資源 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 及其內定義的配置檔。
注意
根據預設,FHIR 服務不會從實作指南儲存任何配置檔。 您必須將它們載入 FHIR 服務。
存取設定檔和儲存配置檔
儲存配置檔
若要將設定檔儲存在 FHIR 服務中,您可以使用PUT
StructureDefinition
要求主體中的配置檔內容。 標準 PUT
或條件式更新都是在 FHIR 服務上儲存配置檔的好方法。 如果您不確定要使用哪一個條件式更新,請使用條件式更新。
標準 PUT
: PUT http://<your FHIR service base URL>/StructureDefinition/profile-id
or
條件式更新: PUT http://<your FHIR service 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://<your FHIR service base URL>/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 FHIR service base URL>/StructureDefinition?url={canonicalUrl}
其中 {canonicalUrl}
是配置檔的正式 URL。
例如,如果您想要檢視US Core 目標資源設定檔:
GET https://<your FHIR service base URL>/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal
這會傳 StructureDefinition
回美國核心目標配置檔的資源,其開頭如下。
{
"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).",
}
注意
您只會看到您已載入 FHIR 服務的設定檔。
FHIR 服務不會傳回 StructureDefinition
基底配置檔的實例,但可以輕鬆地在 HL7 網站上找到它們,例如下列專案。
http://hl7.org/fhir/Observation.profile.json.html
http://hl7.org/fhir/Patient.profile.json.html
功能語句中的配置檔
列出 Capability Statement
FHIR 服務的所有可能行為。 FHIR 服務會更新功能語句,其中包含下列格式的預存配置檔詳細數據。
CapabilityStatement.rest.resource.profile
CapabilityStatement.rest.resource.supportedProfile
例如,如果您是 POST
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 FHIR service base URL>/metadata
CapabilityStatement
會傳回 ,其中包含您上傳至 FHIR 伺服器之 US Core 病患設定檔的下列資訊。
...
{
"type": "Patient",
"profile": "http://hl7.org/fhir/StructureDefinition/Patient",
"supportedProfile":[
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
],
配置檔中的系結
術語服務是一組函式,可在醫療「術語」上執行作業,例如驗證程式代碼、翻譯程式代碼和擴充值集。 FHIR 服務不支援術語服務。 您可以在服務的 CapabilityStatement 中找到支援作業 ($)、資源類型和互動的資訊。 基本 CRUD 作業和搜尋支援 Resource Types ValueSet、StructureDefinition 和 CodeSystem(如 CapabilityStatement 中所定義),以及系統用來$validate。
ValueSets 可以包含一組複雜的規則和外部參考。 目前,服務只會考慮預先展開的內嵌程序代碼。 客戶必須先將支援的 ValueSets 上傳至 FHIR 伺服器,才能使用$validate作業。 ValueSet 資源必須使用上述的 Storing Profiles 一節中所述的 PUT 或條件式更新,上傳至 FHIR 伺服器。
下一步
在本文中,您已瞭解 FHIR 配置檔。 接下來,您將瞭解如何使用$validate來確保資源符合這些配置檔。
注意
FHIR® 是 HL7 的註冊商標,在 HL7 的許可下使用。