You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure FHIR Service R4多资源查询:based-on参数不通用报错咨询

问题解答:Azure FHIR Service跨资源搜索based-on参数报错处理

报错原因

虽然DeviceRequest和ServiceRequest各自都定义了based-on搜索参数,但Azure FHIR Service的多资源联合搜索(通过_type指定多个资源类型)要求使用的搜索参数必须是FHIR规范定义的公共搜索参数(比如_id、_lastUpdated这类跨所有资源通用的参数)。而based-on属于每个资源的专用搜索参数,并非公共参数,因此无法在一次联合搜索中同时用于两种资源类型。

解决方案

1. 分两次单独搜索

分别针对两种资源类型发起搜索请求,之后手动合并结果:

  • 搜索DeviceRequest:
{{fhirurl}}/DeviceRequest?based-on=CarePlan/91beb13f-340c-40a0-9f76-f4434b5fe6e4
  • 搜索ServiceRequest:
{{fhirurl}}/ServiceRequest?based-on=CarePlan/91beb13f-340c-40a0-9f76-f4434b5fe6e4

2. 使用批量操作(Bundle)一次请求完成

通过FHIR的$batch操作将两个搜索请求打包成一个请求发送,服务端会返回包含两个结果集的Bundle响应:

{
  "resourceType": "Bundle",
  "type": "batch",
  "entry": [
    {
      "request": {
        "method": "GET",
        "url": "DeviceRequest?based-on=CarePlan/91beb13f-340c-40a0-9f76-f4434b5fe6e4"
      }
    },
    {
      "request": {
        "method": "GET",
        "url": "ServiceRequest?based-on=CarePlan/91beb13f-340c-40a0-9f76-f4434b5fe6e4"
      }
    }
  ]
}

将以上内容作为POST请求体发送到{{fhirurl}}/$batch即可。

关于无法使用_revinclude的说明

由于目标CarePlan已被删除,确实无法通过_revinclude从该CarePlan反向关联查询相关资源(_revinclude需要以存在的资源为起点),因此上述两种方法是当前场景下的可行替代方案。

内容的提问来源于stack exchange,提问作者Alexandre Guimond

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:45:06