驗證作業:概觀
重要
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 和醫療技術服務。
在 Azure API for FHIR 的存放區設定檔一文中,您已逐步解說 FHIR 配置檔的基本概念,並加以儲存。 本文將引導您瞭解如何針對 $validate
配置文件驗證資源。 根據配置文件驗證資源表示檢查資源是否符合配置檔,包括或實作指南中 Resource.meta.profile
所列的規格。
$validate
是Fast Healthcare互操作性資源 (FHIR) 中的作業,可讓您確保 FHIR® 資源符合基底資源需求或指定的配置檔。 此作業可確保 Azure API for FHIR 中的數據具有預期的屬性和值。 如需驗證作業的相關信息,請造訪 HL7 FHIR 規格。 每個規格都可以使用 $validate
來指定Mode,例如建立和更新:
create
:Azure API for FHIR 會檢查配置檔內容是否與現有資源是唯一的,而且可接受建立為新資源。update
:檢查配置檔是否為針對所提名現有資源的更新(不會對不可變的欄位進行任何變更)。
有不同方式可供您驗證資源:
- 使用驗證作業驗證現有的資源。
- 使用驗證作業來驗證新的資源。
- 使用標頭驗證資源 CREATE/ UPDATE。
Azure API for FHIR 一律會傳回 OperationOutcome
作為$validate作業的驗證結果。 Azure API for FHIR 服務會執行兩個步驟驗證,一旦資源傳遞至$validate端點,第一個步驟是基本驗證,以確保可以剖析資源。 在資源剖析期間,必須先修正個別錯誤,再繼續進行下一個步驟。 成功剖析資源之後,會執行完整驗證作為第二個步驟。
注意
任何要用於驗證的值集都必須上傳至 FHIR 伺服器。 這包括屬於 FHIR 規格的任何 Valuesset,以及實作指南中定義的任何 ValueSet。 僅支援包含所有程式代碼完整清單的完整展開值集。 不支持參考外部來源的任何 ValueSet 定義。
驗證現有的資源
若要驗證現有的資源,請在 $validate
要求中使用 GET
:
GET http://<your Azure API for FHIR base URL>/{resource}/{resource ID}/$validate
例如:
GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/a6e11662-def8-4dde-9ebc-4429e68d130e/$validate
在此範例中,您會針對基底病患資源 a6e11662-def8-4dde-9ebc-4429e68d130e
驗證現有的病患資源。 如果有效,您會收到 OperationOutcome
如下列程式代碼範例所示的 :
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "information",
"code": "informational",
"diagnostics": "All OK"
}
]
}
如果資源無效,您會收到錯誤碼和錯誤訊息,其中包含資源無效原因的詳細數據。 OperationOutcome
範例會以錯誤訊息傳回,可能看起來像下列程式代碼範例:
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "error",
"code": "invalid",
"details": {
"coding": [
{
"system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
"code": "1028"
}
],
"text": "Instance count for 'Patient.identifier.value' is 0, which is not within the specified cardinality of 1..1"
},
"location": [
"Patient.identifier[1]"
]
},
{
"severity": "error",
"code": "invalid",
"details": {
"coding": [
{
"system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
"code": "1028"
}
],
"text": "Instance count for 'Patient.gender' is 0, which is not within the specified cardinality of 1..1"
},
"location": [
"Patient"
]
}
]
}
在此範例中,資源不符合提供的病患配置檔,該配置檔需要病患標識碼值和性別。
如果您想要將設定檔指定為參數,您可以指定要驗證的設定檔標準 URL,例如下列範例中的 HL7 基底設定檔 heartrate
:
GET https://myAzureAPIforFHIR.azurehealthcareapis.com/Observation/12345678/$validate?profile=http://hl7.org/fhir/StructureDefinition/heartrate
驗證新的資源
如果您想要驗證要上傳至 Azure API for FHIR 的新資源,您可以執行 POST
要求:伺服器一律會傳回 OperationOutcome 作為結果。
POST http://<your Azure API for FHIR base URL>/{Resource}/$validate
例如:
POST https://myAzureAPIforFHIR.azurehealthcareapis.com/Patient/$validate
此要求會驗證資源。 在 FHIR 服務中未建立驗證資源時,您必須傳送 POST 要求,而不需$validate來建立資源。
使用標頭驗證資源 CREATE/ UPDATE。
根據預設,Azure API for FHIR 會設定為退出資源 Create/Update
上的驗證。 這項功能允許使用 x-ms-profile-validation
標頭在 上Create/Update
驗證。 將 『x-ms-profile-validation』 設定為 true 以進行驗證。
注意
在開放原始碼 FHIR 服務中,您可以在 CoreFeatures 底下變更伺服器組態設定。
{
"FhirServer": {
"CoreFeatures": {
"ProfileValidationOnCreate": true,
"ProfileValidationOnUpdate": false
}
}
下一步
在本文中,您已瞭解如何使用 來驗證配置檔的資源 $validate
。 若要瞭解其他 Azure API for FHIR 支援的功能,請參閱
FHIR® 是 HL7 的註冊商標,在 HL7 的許可下使用。