You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从FHIR的_history恢复已删除资源并保留其原ID?

FHIR已删除资源恢复的最优方式

大多数FHIR服务器执行DELETE只是标记资源为删除状态而非物理删除,恢复这类资源的最优方案是保留原ID的PUT更新操作,而非创建副本:

  • 核心操作步骤:

    1. 通过GET Patient/1/_history/2获取已删除版本的完整资源内容,保留原资源的id(即1)和meta.versionId(即2),同时移除资源meta字段中的deleted标记(该标记是资源被标记为删除的关键标识)。
    2. 执行PUT /Patient/1请求,将修改后的资源内容提交给服务器。合规的FHIR服务器会识别这是对原ID资源的状态更新,移除删除标记、恢复资源的可用状态,同时生成新的版本号(比如3)。
  • 不推荐POST创建副本的原因:
    POST到/Patient会生成全新的资源ID,原资源的关联数据(比如关联的就诊记录、实验室结果、处方等引用的都是原ID)会全部断裂,后续需要手动更新所有关联资源的引用,在医疗数据场景中这会带来极高的维护成本和数据一致性风险。

  • 额外注意点:
    部分服务器可能要求操作账号具备资源恢复的特定权限,少数自定义服务器可能有额外参数要求,但PUT恢复原ID是FHIR标准明确支持的恢复方式,主流服务器(如HAPI FHIR、IBM FHIR Server)均实现了该功能。只有在服务器明确不支持PUT恢复的极端情况下,才考虑POST创建副本作为替代方案。

内容的提问来源于stack exchange,提问作者Henrik Joreteg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:12:09