FHIR 參考完整性

本頁面說明參照完整性概念,以及與 Cloud Healthcare API 中 FHIR 儲存庫中的資源相關的概念。

FHIR 儲存庫會針對同一個儲存庫內其他資源的參照,強制執行參照完整性:

  • 建立、更新或修補資源時,如果資源的產生內容包含對不存在的資源或資源版本的參照,作業就會失敗。
  • 刪除資源時,如果商店中有其他資源參照該資源,則該作業會失敗。

如要停用參照完整性,請在建立商店時設定 disableReferentialIntegrity 選項。

排除條款和限制

FHIR 規格允許各種形式的參照,其中有些不受參照完整性規範:

  • 透過網址指定的外部參照,不符合 FHIR 儲存庫的基本網址。
  • 由商家 ID 指定的邏輯參照。
  • 僅包含人類可讀的顯示字串參照。
  • 只有在 complexDataTypeReferenceParsing 設為 ENABLED 時,FHIR 擴充功能內的參照才會受到參考完整性規範。這是新 FHIR 儲存庫的預設值。

在某些情況下,特定 API 方法可能會導致違反參照完整性:

  • FHIR 允許參照使用 [resource type]/[resource ID]/_history/[version ID] 表單,指向資源的特定歷史版本。建立或更新這些參照時,系統會套用參照完整性,但使用 Resource-purge 方法移除資源的歷史版本時,系統不會檢查傳入的參照。
  • FHIR import 方法不會強制執行參照完整性。在不需要參照完整性,或已知輸入內容符合參照完整性的情況下,可以使用這項方法。在後一種情況下,每項資源成功匯入後,FHIR 儲存庫內的參照會達到最終一致性。
  • deidentify 方法可能會在作業期間暫時以不符合參照完整性的狀態建立 FHIR 儲存庫,如果使用篩選器選取資源子集,則會永久處於這種狀態。

如果系統正在強制執行完整性,但遭到上述任一情況違反,則會導致資源更新遭到拒絕,除非更新修正或移除所有無效的參照。這種狀態也可能會對使用商店的應用程式造成困擾,因為這些應用程式會假設商店的完整性。

包含的資源

FHIR 規格包含一項限制,即每個包含的資源都必須從其包含資源中的某處參照 (包括其他包含資源的參照),且每個包含資源的參照都必須有效。這項限制會與參照完整性分開強制執行,且無法停用,因為這項限制已在個別資源的 FHIRPath 不變量中定義。