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

如何查询Azure FHIR服务中存在无效引用的资源

查询Azure FHIR Service中存在无效引用的资源

针对单个资源类型的无效引用查询

以你提到的MedicationDispense引用不存在Patient的场景为例,可通过FHIR的_filter参数结合FHIRPath表达式直接查询:

  1. GET请求方式
    直接构造URL发起查询:

    GET /MedicationDispense?_filter=not exists(subject.resolve())
    

    该表达式的逻辑是:检查MedicationDispense的subject引用是否能解析到有效资源,若无法解析(即引用的Patient不存在),则返回该MedicationDispense资源。

  2. POST请求方式(适合复杂查询场景)
    若需要构造更复杂的查询条件,可使用POST请求提交查询Bundle:

    {
      "resourceType": "Bundle",
      "type": "search",
      "parameter": [
        {
          "name": "_filter",
          "value": "not exists(subject.resolve())"
        }
      ]
    }
    

    将上述Bundle内容POST到/MedicationDispense端点即可获取结果。

扩展到其他引用场景

如果需要检查其他类型的无效引用,只需修改_filter中的FHIRPath路径即可:

  • 检查MedicationDispense引用不存在的Medication资源:
    GET /MedicationDispense?_filter=not exists(medication.resolve())
    
  • 检查Encounter引用不存在的Practitioner资源:
    GET /Encounter?_filter=not exists(participant.individual.resolve())
    

注意事项

  • resolve()函数是FHIR标准中用于解析引用资源的函数,Azure FHIR Service默认支持该函数在_filter参数中的使用。
  • 若需要批量检查所有资源类型的无效引用,需针对每个资源类型及其常见引用字段逐一执行类似查询,目前FHIR暂不支持跨所有资源类型的通用无效引用查询。

内容的提问来源于stack exchange,提问作者Michiel Meulendijk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:47:07