使用Postman查询Hapi FHIR匹配指定患者identifier的Observation失败求助
HAPI FHIR R4 按患者identifier查询关联Observation解决方案
正确查询逻辑
Observation资源通过patient/subject字段关联Patient资源,要按患者的业务标识符(identifier)过滤,需使用FHIR链式查询语法,直接关联患者侧的identifier字段即可。
可用查询写法
基础写法(匹配患者identifier的系统+编码)
请求地址模板:
http://hapi.fhir.org/baseR4/Observation?patient.identifier={患者identifier的system字段值}|{患者identifier的value字段值}
示例:假设患者的identifier的系统为http://your-hospital.com/mrn,实际编号为1234,请求为:http://hapi.fhir.org/baseR4/Observation?patient.identifier=http://your-hospital.com/mrn|1234
限定identifier类型写法(匹配MR类型的患者编号)
如果需要指定只匹配类型为医疗记录号(MR)的identifier,使用:of-type修饰符,模板如下:
http://hapi.fhir.org/baseR4/Observation?patient.identifier:of-type={identifier.type.coding.system字段值}|MR|{患者identifier的value字段值}
示例:MR编码系统为HL7标准的http://terminology.hl7.org/CodeSystem/v2-0203时,请求为:http://hapi.fhir.org/baseR4/Observation?patient.identifier:of-type=http://terminology.hl7.org/CodeSystem/v2-0203|MR|1234
过往写法错误说明
?identifier:of-type=.../?identifier=...:匹配的是Observation资源自身的identifier,不是关联患者的identifier,自然无匹配结果?subject=1234:subject参数默认匹配的是Patient资源的逻辑ID,不是业务编号,1234为业务编号时无法匹配?_has:Observation:patient:identifier=1234:_has反向查询参数顺序错误,该场景无需使用反向查询,直接用链式查询更简洁- 直接在参数中写OR:HAPI FHIR默认不支持原生OR语法,需要使用
:expression修饰符,普通查询直接按规则拼接参数即可
注意事项
- URL中的
|符号如果在Postman中报错,可手动转义为%7C - 患者identifier的system字段必须和服务器上Patient资源存储的内容完全一致,包含http/https前缀、末尾斜杠都不能有出入
内容的提问来源于stack exchange,提问作者SRS
相关产品推荐
相关产品推荐

