如何从DocumentManifest文档列表中获取特定文档的DocumentReference?
看来你用了不正确的FHIR查询方式来关联DocumentManifest和目标DocumentReference,咱们来调整一下思路和请求方式:
为什么之前的请求失败?
_query=generate并不是FHIR标准的搜索参数,这种自定义参数大部分FHIR服务器都不支持;而且你直接通过BINARY的URI查询DocumentReference,没有建立它和DocumentManifest之间的关联逻辑,所以没法拿到你需要的结果。
正确的操作步骤
方法1:先定位目标DocumentManifest,再提取DocumentReference
如果知道目标文档对应的DocumentManifest的标识(比如ID、业务标识符),先获取这个Manifest:
GET [service-url]/DocumentManifest?identifier=DOCUMENT-1000125
(这里假设DOCUMENT-1000125是Manifest的业务标识符,如果是Manifest的逻辑ID,直接用GET [service-url]/DocumentManifest/[manifest-id]即可)
拿到DocumentManifest后,查看它的content字段——这个字段里的每个条目都是指向对应DocumentReference的引用,比如:
示例DocumentManifest的
content结构:"content": [ { "reference": "DocumentReference/doc-789", "display": "患者出院小结" } ]
这里的reference值就是你需要的DocumentReference的地址,直接发起请求GET [service-url]/DocumentReference/doc-789就能拿到目标资源。
方法2:通过BINARY的URI反向查找DocumentReference
如果你只知道BINARY的URI,不知道对应的DocumentManifest,可以先搜索关联该BINARY的DocumentReference:
GET [service-url]/DocumentReference?content.attachment.url=[service-url]/BINARY/DOCUMENT-1000125
这个请求会返回所有内容指向该BINARY的DocumentReference。如果还需要关联到对应的DocumentManifest,再用找到的DocumentReference ID搜索:
GET [service-url]/DocumentManifest?content=DocumentReference/[找到的-doc-ref-id]
注意事项
- 确保你的FHIR服务器支持
content.attachment.url这个搜索参数,部分服务器可能对嵌套参数的支持有限; - 如果URI中包含特殊字符(比如
/、=),需要对查询参数进行URL编码后再发起请求; - 部分服务器可能需要你添加
_format=json参数来指定返回格式,方便查看结果。
内容的提问来源于stack exchange,提问作者JackTheKnife

