如何查询属于指定医院任意层级下属位置的活跃FHIR Encounter资源?
获取指定医院下属任意层级位置的活跃Encounter资源
以下是两种可行的查询方案,均以Encounter为焦点资源,支持叠加其他属性过滤(如活跃状态):
方案一:利用服务器支持的递归子位置搜索参数(推荐)
如果你的FHIR服务器支持location:below这类扩展搜索参数(部分主流服务器如HAPI FHIR、Microsoft FHIR Server支持),可以直接用单个查询精准过滤:
Encounter?status=active&location:below=Location/{{hospital-id}}
status=active:过滤出活跃状态的Encounterlocation:below=Location/{{hospital-id}}:匹配所有属于指定医院及其任意层级下属位置的Encounter
方案二:结合反向迭代包含与服务器端过滤
若服务器不支持location:below,可通过反向迭代拉取所有上级位置,再借助_has参数实现递归过滤:
Encounter?status=active&_has:Location:partof:iterate:_id={{hospital-id}}
_has:Location:partof:iterate:_id={{hospital-id}}:递归检查Encounter关联的Location是否属于指定医院的下属层级(任意深度)
备选:客户端辅助过滤(兼容所有服务器)
如果上述服务器端方案都不可行,可先获取关联位置及上级层级,再在客户端筛选:
Encounter?status=active&_include=Encounter:location&_revinclude:iterate=Location:partof
查询返回后,在客户端检查每个Encounter关联的Location的上级链中是否包含指定医院ID,保留符合条件的记录。
内容的提问来源于stack exchange,提问作者LeeCambl
相关产品推荐
相关产品推荐

