如何修改HAPI FHIR OpenAPI文档以在Watson Assistant获取完整响应?
解决Watson Assistant调用HAPI FHIR扩展只返回"success"的问题
一、修改OpenAPI文档的正确方式
你之前调整schema未生效,核心原因是没把包含status和body的外层响应结构正确定义到OpenAPI的200响应规则里。需要调整/CareTeam/{id}接口的get响应配置:
"/CareTeam/{id}": { "get": { // 保留原有tags、summary、parameters内容不变 "responses": { "200": { "description": "Success", "content": { "application/fhir+json": { "schema": { "type": "object", "properties": { "status": { "type": "integer", "example": 200 }, "body": { "$ref": "#/components/schemas/FHIR-JSON-RESOURCE" } }, "required": ["status", "body"] }, "example": { "status": 200, "body": { "resourceType": "CareTeam", "id": "va-team-visn6-vamc1-pc", "name": "Primary Care PACT" // 可补充完整的FHIR资源示例 } } }, // 保留application/fhir+xml的原有配置 } } } } }
关键是把原来直接引用FHIR schema的逻辑,改成先定义外层的status和body字段,再让body关联原有的FHIR资源schema。这样Watson Assistant就能识别完整的响应结构,返回所有字段而非仅"success"提示。
二、无需修改OpenAPI文档的方法
如果不想改动文档,Watson Assistant的上下文里其实已经存储了完整的原始响应数据,你可以直接通过变量提取:
- 假设你的扩展名称是
fhir-careteam,可通过$extensions.fhir-careteam.response.body获取FHIR资源的完整内容 - 具体变量路径可以在Watson Assistant的上下文检查器中确认:打开对话框的「上下文」面板,找到
extensions下对应扩展条目,展开即可看到完整的响应层级
比如在对话框回复中直接引用内容:
护理团队名称:
<? $extensions.fhir-careteam.response.body.name ?>
主治医师:<? $extensions.fhir-careteam.response.body.participant[0].member.display ?>
内容的提问来源于stack exchange,提问作者C Chen
相关产品推荐
相关产品推荐

