如何使用复杂的嵌套查询在 FHIR 上进行搜索
How to search on FHIR using complex nested queries
我还没有真正找到有关搜索 FHIR 资源时复杂嵌套查询应该是什么样子的示例或说明。
一些例子(伪代码):
- (name=Mary AND gender=female) OR (address-city=Springfield AND
地址状态=纽约)
- ((姓名=玛丽 AND 性别=女) 或
(address-city=Springfield & address-state=NY)) AND active=true
这可能吗?如果是,如何?
FHIR 支持相当复杂的搜索语法,但它不是一种查询语言。您想要的搜索无法通过此方式一次性完成,除非您可以访问服务器并且可以自己执行查询。
如果您有 access/influence 服务器端,您可以实施命名查询,然后使用 _query 搜索参数执行该查询(参见 http://www.hl7.org/fhir/search.html#query)。
如果您没有该访问权限,则可以通过几个步骤执行查询。例如,您的第一个查询需要 2 个查询:
GET [fhir endpoint]/Patient?name=Mary&gender=female
GET [fhir endpoint]/Patient?address-city=Springfield&address-state=NY
两者都会给你一堆结果。这两个捆绑包将是您要查找的匹配资源的完整列表。
对于第二个示例查询,您需要为两个 GET 提供 &active=true
。
我还没有真正找到有关搜索 FHIR 资源时复杂嵌套查询应该是什么样子的示例或说明。
一些例子(伪代码):
- (name=Mary AND gender=female) OR (address-city=Springfield AND 地址状态=纽约)
- ((姓名=玛丽 AND 性别=女) 或 (address-city=Springfield & address-state=NY)) AND active=true
这可能吗?如果是,如何?
FHIR 支持相当复杂的搜索语法,但它不是一种查询语言。您想要的搜索无法通过此方式一次性完成,除非您可以访问服务器并且可以自己执行查询。
如果您有 access/influence 服务器端,您可以实施命名查询,然后使用 _query 搜索参数执行该查询(参见 http://www.hl7.org/fhir/search.html#query)。
如果您没有该访问权限,则可以通过几个步骤执行查询。例如,您的第一个查询需要 2 个查询:
GET [fhir endpoint]/Patient?name=Mary&gender=female
GET [fhir endpoint]/Patient?address-city=Springfield&address-state=NY
两者都会给你一堆结果。这两个捆绑包将是您要查找的匹配资源的完整列表。
对于第二个示例查询,您需要为两个 GET 提供 &active=true
。