FHIR 資源參考資料

本頁面說明 Cloud Healthcare API 如何支援 FHIR 資源參照

總覽

FHIR 資源參照是從來源資源到目標資源的方向連結。FHIR 資源參照可用於連結資源。舉例來說,FHIR 資源類型 Observation 具有 Reference 類型的 subject 欄位,可用來連結 Patient 資源,做為觀察主題。

FHIR 資源參照資料也可能會循環引用。舉例來說,FHIR 資源類型 CarePlanreplaces 欄位,可指向另一個 CarePlan

FHIR 參考結構中最重要的元素是參考資料。其他元素 (例如 displayidentifier) 會以 Cloud Healthcare API 中的形式保留。

Cloud Healthcare API 支援的 Reference.reference 格式包括:

本機資源參照

資源參照定義為 RESOURCE_TYPE/RESOURCE_ID。Cloud Healthcare API 也支援在 RESOURCE_TYPE/RESOURCE_ID 前面加上完整的 FHIR 儲存庫名稱。例如:FHIR_STORE_NAME/RESOURCE_TYPE/RESOURCE_ID。如果您採用這種格式,存放區名稱必須與要求的 FHIR 存放區相符。否則,系統會因非本機參照而拒絕要求。

儲存庫設定選項 FhirStore.disableReferentialIntegrity 可控制本地參照驗證的參照完整性檢查,預設為啟用。如要進一步瞭解參考完整性檢查,請參閱「FHIR 參考完整性」。

版本化參照

Cloud Healthcare API 支援參照特定版本的目標資源。如要連結至特定版本的目標資源,請使用本機參照中 RESOURCE_ID/_history/VERSION_ID] 後方的格式。

啟用參照完整性檢查後,伺服器會驗證 FHIR 儲存庫中是否有歷史版本。Resource-purge 方法會移除歷來版本,無論是否已被參照。

條件式參照

除了明確指定目標資源 ID 之外,executeBundle 也接受針對目標資源的條件參照搜尋查詢,該查詢會在要求時解析為目標資源 ID。例如:Patient?identifier=abc

如果搜尋查詢未解析為目標資源,或解析為多個目標資源,無論是否已啟用參照完整性檢查,伺服器都會拒絕要求。

URI 開頭為 urn:uuidurn:oid

當您在交易套件中使用 executeBundle 方法時,可以使用通用唯一識別碼 (UUID) 或物件識別碼(OID) 參照,以解析在同一個套件中建立或更新的其他資源參照。詳情請參閱管理 FHIR 束合指南

完整外部網址

完整的外部網址 (例如 http://www.example.com/abc) 會儲存在參照欄位中,且不會經過修改。Cloud Healthcare API 不會解析網址或嘗試驗證其有效性。

如果完整的外部網址與要求的 FHIR 存放區完整網址相符,系統會將參照視為本機資源參照。

片段參照

片段參照會指向資源中內嵌的所含資源。舉例來說,如果觀察記錄提到一位一般醫師,但沒有受控的醫師目錄,就無法建立完整的醫師資源。全科醫師是觀察記錄中的內含資源。資源上的參照欄位可以使用 #[INLINE_RESOURCE_ID] 的形式,指向內嵌的資源。

在下列 FHIR R4 範例中,p1p2 是內嵌資源 ID,分別參照為 #p1#p2

{
  "resourceType": "Observation",
  "contained": [
    {
      "resourceType":"Patient",
      "id": "p1",
      "generalPractitioner": {"reference": "#p2"}
    },
    {
      "resourceType":"Practitioner",
      "id": "p2"
    }
  ],
  "status": "final",
  "subject": {"reference": "#p1"},
  "performer": [{"reference": "#p2"}]
}

[INLINE_RESOURCE_ID] 必須是資源內的內含資源,否則伺服器會拒絕要求。所含資源只能由其容器或同一容器內的其他所含資源參照。