如何通过FHIR API获取Azure FHIR服务特定时长内的所有事件?
解决Azure FHIR服务事件查询问题
你之前调用的https://management.azure.com/subscriptions/<subscription_id>/$events是Azure资源管理API的地址,不是FHIR服务本身的API端点,所以会返回404错误。要获取FHIR服务上的操作事件,得直接调用FHIR服务自己的API接口,具体方法如下:
方法1:通过FHIR API查询AuditEvent资源
Azure FHIR服务会自动把CRUD等操作记录成AuditEvent资源,你可以通过FHIR的搜索接口筛选过去5小时的事件:
- 先确认你的FHIR服务端点,格式一般是
https://<你的FHIR服务名称>.azurehealthcareapis.com - 构造查询请求时,用
_since参数指定起始时间(时间格式必须是ISO 8601,比如当前时间减5小时的时间戳) - 请求示例:
GET https://<你的FHIR服务名称>.azurehealthcareapis.com/AuditEvent?_since=2024-05-20T10:00:00Z&_sort=-recorded
_since:筛选记录时间晚于指定时间的所有AuditEvent_sort=-recorded:按记录时间倒序排列,最新事件排在最前面
如果需要更精准的时间区间,也可以用recorded参数配合范围操作符:
GET https://<你的FHIR服务名称>.azurehealthcareapis.com/AuditEvent?recorded=ge2024-05-20T10:00:00Z&recorded=le2024-05-20T15:00:00Z&_sort=-recorded
ge代表大于等于,le代表小于等于,替换成你需要的时间范围即可
方法2:确认AuditEvent记录是否启用
如果查询不到结果,先检查FHIR服务的审核日志是否开启:
- 登录Azure门户,找到你的FHIR服务实例
- 进入「诊断设置」页面,确认已启用「审核日志」的收集(即使只需要通过FHIR API查询,也需要服务端开启AuditEvent记录功能)
内容的提问来源于stack exchange,提问作者Hema Mounika
相关产品推荐
相关产品推荐

