本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
刪除 FHIR 資源
FHIR delete互動會從 HealthLake 資料存放區移除現有的 FHIR 資源。如需詳細資訊,請參閱 FHIR R4 RESTful API 文件delete
刪除 FHIR 資源
-
收集 HealthLake
region和datastoreId值。如需詳細資訊,請參閱取得資料存放區屬性。 -
決定
Resource要刪除的 FHIR 類型,並收集相關聯的id值。如需詳細資訊,請參閱資源類型。 -
使用 HealthLake
region和 的收集值來建構請求的 URLdatastoreId。同時包含 FHIRResource類型及其相關聯的id。若要在下列範例中檢視整個 URL 路徑,請捲動至複製按鈕。DELETE https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Resource/id -
傳送 請求。FHIR
delete互動使用具有AWS 簽章第 4 版或 FHIR 授權上的 SMART 的DELETE請求。下列curl範例會從 HealthLake 資料存放區移除現有的 FHIRPatient資源。若要檢視整個範例,請捲動至複製按鈕。
根據條件刪除 FHIR 資源
當您不知道特定 FHIR 資源 ID,但具有您要刪除之資源的其他識別資訊時,條件式刪除特別有用。
條件式刪除可讓您根據搜尋條件而非邏輯 FHIR ID 刪除現有資源。當伺服器處理刪除請求時,它會使用資源類型的標準搜尋功能執行搜尋,以解析請求的單一邏輯 ID。
條件式刪除的運作方式
伺服器的動作取決於找到多少相符項目:
-
沒有相符項目:伺服器嘗試一般刪除並適當回應 (404 找不到不存在的資源,204 找不到已刪除資源的內容)
-
一個相符項目:伺服器會對相符的資源執行一般刪除
-
多個相符項目:傳回 412 先決條件失敗錯誤,指出用戶端的條件不夠選擇性
回應案例
AWS HealthLake 使用以下回應模式處理條件式刪除操作:
成功的操作
-
當您的搜尋條件成功識別單一作用中資源時,系統會在完成刪除後傳回 204 無內容,就像標準刪除操作一樣。
以 ID 為基礎的條件式刪除
根據 id 和其他參數 (createdAt、 tag或 _lastUpdated) 執行條件式刪除時:
-
204 無內容:資源已刪除
-
找不到 404:資源不存在
-
409 衝突:ID 相符,但其他參數不相符
Non-ID-Based條件式刪除
id 未提供 或使用 createdAt、 tag或 以外的參數時_lastUpdated:
-
找不到 404:找不到相符項目
衝突情況
數個案例會產生 412 先決條件失敗回應:
-
多個資源符合您的搜尋條件 (條件不夠具體)
-
搭配 使用 ETag 標頭時的版本衝突
If-Match -
在搜尋和刪除操作之間發生資源更新
成功條件式刪除的範例
下列範例會根據特定條件刪除病患資源:
DELETE https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?name=peter&birthdate=2000-01-01&phone=1234567890
此請求會刪除病患資源,其中:
名稱為「peter」
出生日期是 2000 年 1 月 1 日
電話號碼為 1234567890
最佳實務
-
使用特定的搜尋條件來避免多個相符項目,並防止 412 錯誤。
-
需要處理並行修改時,請考慮使用版本控制的 ETag 標頭。
-
適當地處理錯誤回應:
對於 404:精簡您的搜尋條件
對於 412:讓條件更具體或解決版本衝突
-
準備在高並行環境中的時間衝突,其中可能會在搜尋和刪除操作之間修改資源。