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

如何构造FHIR查询以排除含指定标签集合的Patient资源?

FHIR查询:排除含任意指定标签的Patient资源

要检索完全不包含abcd或efgh中任何一个标签的Patient资源,正确的构造方式是使用多个_tag:not参数,通过&连接(FHIR中多个搜索参数默认是AND逻辑):

GET [base]Patient?_tag:not=abcd&_tag:not=efgh

为什么之前的方法无效?

  1. _tag:not=abcd,efgh不生效的原因:
    FHIR中_tag参数的逗号分隔多值是OR逻辑,加上:not修饰符后,这个查询会被解析为“排除同时拥有abcd和efgh两个标签的资源”,而非排除拥有其中任意一个标签的资源,完全不符合需求。

  2. _filter=meta.tag+ne+abcd无效的原因:
    meta.tag是数组类型,ne操作符在这里的逻辑是“存在某个标签不等于abcd”,而非“不存在任何等于abcd的标签”。只要资源有其他标签,这个条件就会成立,所以会返回包含abcd标签的资源。如果要用_filter实现,需要明确检查标签的不存在性,示例如下(需补充标签的system,若未指定system可省略):

    GET [base]Patient?_filter=not(meta.tag.system='http://example.org/tags' and meta.tag.code='abcd')&_filter=not(meta.tag.system='http://example.org/tags' and meta.tag.code='efgh')
    

推荐方案

优先使用多个_tag:not参数的方式,既符合FHIR标准搜索参数的设计,又简洁易读,兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 05:24:55