IBM Watson Assistant自定义扩展变量赋值:提取FHIR API返回数据
解决Watson Assistant中FHIR API响应提取与变量赋值问题
核心问题1:变量赋值的步骤选择
必须在API扩展调用成功、获取到完整响应数据之后的步骤进行赋值:
- 不能在调用扩展的步骤(步骤1)赋值:此时API还未返回数据,无法提取字段值
- 不能等到返回信息给用户的步骤(步骤3)才处理:临时提取不利于变量复用,也无法提前处理API响应异常
- 正确做法:在步骤1(调用扩展)之后,步骤3(返回信息)之前,新增一个专门的**「设置变量」动作步骤**,用于解析响应并赋值。
核心问题2:提取display字段赋值给careTeamMD
步骤1:确保API响应存入上下文变量
在Watson Assistant的动作中,找到调用FHIR扩展的步骤:
- 勾选「将响应保存到上下文变量」选项,指定一个变量名(例如
careTeamResponse) - 完成后,API返回的完整JSON响应会被存入
$careTeamResponse上下文变量中
步骤2:添加「设置变量」步骤提取字段
新增一个动作步骤,类型选择「设置变量」:
- 变量名填写
careTeamMD - 变量值使用Watson Assistant的JSON路径语法填写:
路径解释:$careTeamResponse.body.participant[0].member.displaybody:对应API返回的顶层body字段participant[0]:取participant数组的第一个元素(因为你的响应中只有一个医生条目)member.display:提取该元素下member对象中的display字段值(即Dr. Francis)
解决「仅能看到Ran successfully变量」的问题
出现这个情况是因为你没有开启「将响应保存到上下文变量」的配置,或者扩展没有把完整响应传递回Watson Assistant:
- 检查扩展配置,确保API的完整响应(而非仅成功状态)被返回给Watson Assistant
- 在调用扩展的动作步骤中,务必启用「将响应保存到上下文变量」,这样才能在后续步骤中访问响应里的所有字段
内容的提问来源于stack exchange,提问作者C Chen
相关产品推荐
相关产品推荐

