如何使用复杂的嵌套查询搜索FHIR

时间:2017-09-22 23:19:56

标签: hl7-fhir

在搜索FHIR资源时,我还没有真正找到关于复杂嵌套查询的示例或说明。

一些例子(伪代码):

  • (name = Mary AND gender = female)OR(address-city = Springfield AND address-state = NY)
  • ((姓名=玛丽和性别=女性)或 (address-city = Springfield& address-state = NY))AND active = true

这甚至可能吗?如果是,怎么样?

1 个答案:

答案 0 :(得分:0)

FHIR支持非常详细的搜索语法,但它不是查询语言。除非您有权访问服务器并且可以自己实现查询,否则无法在1中完成所需的搜索。

如果您具有访问/影响服务器端,则可以实现命名查询,然后使用_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

两者都会给你一堆结果。这两个Bundles将是您正在寻找的匹配资源的完整列表。

对于第二个示例查询,您需要为这两个GET提供&active=true