寻求承载门诊可预约容量详情的FHIR资源建议
推荐的FHIR资源方案
针对你描述的门诊预约容量同步场景,我推荐结合使用Schedule和Slot资源,再配合Appointment资源追踪已预约记录,完全能匹配你的需求,具体说明如下:
1. Schedule:定义门诊的整体预约规则
Schedule资源专门用来描述服务提供者(比如你的门诊)的可用时间框架,刚好能承载你的容量设置:
- 用
actor字段关联到门诊对应的Location或Practitioner资源,明确是哪一家门诊的预约计划 - 在
availableTime数组里,针对每日的诊疗场次设置时间范围,同时用capacity字段填总可预约数(也就是你的12个,基础10+超约2) - 如果需要单独区分基础容量和超约容量,可以用FHIR的自定义
extension字段来补充这个业务细节,FHIR允许这类扩展来适配特定需求
2. Slot:追踪每个可预约名额的状态
Slot是Schedule的细分单元,用来表示具体的可预约时段/名额:
- 每个Slot都通过
schedule字段关联到对应的门诊Schedule - 用
status字段标记状态:free(可约)、occupied(已被预约)、busy(不可约)等 - 你可以给每日的12个名额创建12个Slot,已完成的3次预约对应3个
status为occupied的Slot,剩下9个保持free状态 - 终端系统发GET请求拿到这些Slot后,直接统计
free状态的数量就能得到剩余可预约数
3. Appointment:关联已预约的具体记录
已完成的3次预约可以用Appointment资源来记录,每个Appointment关联到对应的Slot,这样可以交叉验证已预约数,确保数据的一致性——比如统计Appointment的数量和occupied状态的Slot数量是否匹配
小建议
- 终端系统可以先GET目标门诊的Schedule,拿到总容量信息,再请求该Schedule下的所有Slot,统计状态得到已约和剩余数量
- 如果你想让终端直接拿到汇总后的剩余数,可以在Schedule里加个自定义扩展字段(比如
remainingCapacity),每次预约更新时同步更新这个字段,终端直接读这个值就行
这个方案完全符合FHIR的标准模型,能精准满足你传递门诊可预约容量详情的需求。
内容的提问来源于stack exchange,提问作者Pattabi
相关产品推荐
相关产品推荐

