FHIR预约API预占场景下actor字段无有效引用时的取值方案咨询
FHIR预约预留场景的Actor字段处理方案
针对你遇到的「预约预留阶段无有效Patient引用,但FHIR Appointment的participant.actor为必填」的问题,有几种实用的处理方案:
临时占位符方案
可以指定一个约定好的临时引用值,比如Patient/temp-reservation,display设为「临时预留用户」。中间件接收到请求后,不需要将这个占位符同步到源预约系统,仅作为流程标识使用;等用户完成登录或注册后,再通过更新请求把Appointment里的actor替换为真实的Patient引用。匿名临时Patient资源
如果你的FHIR服务器支持,可以创建一个临时的匿名Patient资源(比如设置active=false,只填最基础的必填字段),用这个资源的引用作为actor。后续用户完成身份验证后,再将这个匿名Patient和真实患者关联,或者直接替换Appointment中的actor引用。这种方式更贴合FHIR规范,但需要中间件能管理临时资源的生命周期。扩展字段传递回显值
要是希望UI指定的任意值只在响应里回显、不存入源系统,可以用FHIR的扩展机制。在Appointment里加一个自定义扩展,把UI的临时标识放在扩展中;同时actor用占位符,中间件处理时忽略actor的占位符,只把扩展里的值回给UI,源系统不存储这些临时数据。修改后的请求示例:
{ "resourceType": "Appointment", "status": "proposed", "slot": [ { "reference": "Slot/999" } ], "participant": [ { "required": "required", "status": "accepted", "actor": { "reference": "Patient/temp-placeholder", "display": "临时预留用户" } } ], "extension": [ { "url": "http://your-org.com/fhir/extensions/temporary-participant", "valueString": "UI传入的临时标识" } ] }
- 中间层映射处理
让中间件负责临时标识的映射。UI发送请求时,actor可以填任意自定义标识(比如Patient/ui-temp-67890),中间件收到后不把这个标识同步到源系统,而是在响应里把原标识回显给UI;等用户完成后续流程,再通过更新请求将actor替换为真实Patient引用。这种方式需要中间件维护临时标识和预约的对应关系,确保后续更新能正确关联。
内容的提问来源于stack exchange,提问作者jose
相关产品推荐
相关产品推荐

