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

如何通过EPIC/FHIR API在指定日期范围获取Encounters(无需患者ID)

解决方法

1. 直接调用Encounter搜索API(不需要患者ID)

Epic的FHIR Encounter接口支持不带患者ID的范围查询,核心用这两个参数就够:

  • _lastUpdated:按资源最后更新时间筛选,刚好适合每日增量获取。比如每晚跑任务时,指定_lastUpdated=gt{前一天的23:59:59},比如_lastUpdated=gt2024-05-20T23:59:59Z,就能拿到当天新增或更新的就诊记录
  • date:按就诊实际发生日期过滤,支持范围写法(比如date=ge2024-05-20),但如果是要抓新增/更新的记录,_lastUpdated更准确
  • 还可以加status=finished这类参数缩小范围,只拿已完成的就诊

Spring Boot里可以用RestTemplate或者WebClient实现请求,示例请求格式:

GET /Encounter?_lastUpdated=gt2024-05-20T23:59:59Z&_count=100

_count是用来分页的,避免单次返回数据太多,Epic支持这个参数。

2. 先确认Epic服务器的支持能力

如果发现参数不生效,先调用元数据接口查清楚Encounter支持哪些搜索参数:

GET /metadata

返回的CapabilityStatement里找Encounter资源的searchParam节点,确认_lastUpdated、date这些参数是被支持的。

3. 处理分页和增量同步

  • 用Spring Boot的@Scheduled做每日定时任务,每次请求后记下返回结果里最大的_lastUpdated时间,作为下一次请求的起始条件
  • 如果返回结果里有link节点(rel="next"),要遍历所有分页把数据拿全

补充:为啥会觉得必须要患者ID?

Epic的部分文档示例可能会带患者ID,但这不是强制要求——FHIR标准本身允许对Encounter做无患者约束的搜索,Epic的实现也支持这个功能。

内容的提问来源于stack exchange,提问作者David Brown

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:31:08