如何通过FHIR Location ID查询指定层级及下属所有Appointment?
解决方案:单个请求覆盖当前位置及所有下属层级的预约查询
要实现同时查询指定Location本身及其所有下属层级的Appointment,你可以利用FHIR的搜索参数修饰符和逻辑组合完成,无需拆分多个请求。
具体搜索请求格式
最简洁且通用的写法:
/Appointment?location=LOCATION_ID&location.partOf:recursive=LOCATION_ID
若服务器需要显式声明OR逻辑,可使用_filter参数:
/Appointment?_filter=location%3D%22LOCATION_ID%22%20or%20location.partOf:recursive%3D%22LOCATION_ID%22
参数说明
location=LOCATION_ID:匹配直接关联该Location的Appointment(即当前层级的预约)location.partOf:recursive=LOCATION_ID:通过:recursive修饰符,自动递归匹配所有以该Location为祖先的下属Location关联的Appointment(覆盖大楼、诊所、检查室等任意深度的子层级预约)
兼容旧服务器的备选方案
如果你的FHIR服务器不支持:recursive修饰符(部分旧版本存在限制),可以用多层链式参数模拟,但这种方式需要提前预估层级深度,灵活性较差:
/Appointment?location=LOCATION_ID&location.partOf=LOCATION_ID&location.partOf.partOf=LOCATION_ID&location.partOf.partOf.partOf=LOCATION_ID
内容的提问来源于stack exchange,提问作者Henrik Joreteg
相关产品推荐
相关产品推荐

