我们可以根据患者 ID 更新任何 fhir 资源吗?

Can we update any fhir resource on the basis of patient id?

我正在尝试根据患者 ID 更新 Encounter 资源,但它只是创建了一个新的 Encounter 记录,而不是更新现有记录。但是如果我尝试根据标识符更新 Encounter,即代表 Encounter 资源的唯一值,那么它就能够更新它。

这是为什么?谁能解释一下?

一个病人可能会遇到很多(甚至数百)次。更新始终由资源本身的记录驱动 - 每个资源(患者、遭遇、观察、护理计划等)都有一个 'id' 元素,代表该资源在该特定服务器上的标识符 - 有点像首要的关键。通过将新记录 RESTful PUT 到包含相同标识符的 URL 来执行更新。

即必须始终使用以下形式的 URL 执行遭遇更新:

PUT [somebaseurl]/Encounter/[serverEncounterId]

与遭遇相关的患者将从 RESTful 调用主体中的 Encounter 对象中引用,但不会出现在 URL。

如您所见,某些 FHIR 服务器将允许 'conditional update':

PUT [somebaseurl]/Encounter?search_key=search_value&...

您将需要添加搜索参数来过滤所有遭遇并生成一个唯一的遭遇,然后将对其进行更新。由于正如 Lloyd 还指出的那样,一个 Patient 可以有多个关联的 Encounters,因此 Patient id 不是条件更新的合适参数。您的 Encounter 标识符足够独特,因此更新成功。