互联网医院对接
互联网医院把处方推送到 ABC,由 ABC 统一管理库存、记账和发药;需要快递时,发药后把快递信息回传给互联网医院。
业务背景
互联网医院负责在线复诊、开方和收款,但处方最终要落到一家真实的机构完成审方、配药和发药。不少互联网医院没有自己的药房,或者不希望再维护一套库存,于是把处方流转给合作的诊所、连锁或药房,由机构在 ABC 中完成履约。
在这条链路里,互联网医院把处方推给 ABC,ABC 生成门诊单;随后 ABC 生成收费单,互联网医院完成支付。收费完成后,ABC 生成发药单并扣减对应批次的库存,诊所员工在 ABC 中发药;需要快递时,员工填写快递单号,ABC 再把发药和快递信息回传给互联网医院。
这样库存、收费和发药始终留在机构自己的账上,互联网医院不需要维护第二套库存;患者也能在互联网医院侧看到处方是否已发药、是否已寄出。
典型参与方:互联网医院负责开方和支付;落地机构提供库存和药师,完成发药;ABC 承载门诊单、收费单和发药单,负责库存扣减与事件推送。
参与方与主流程
- 互联网医院推送处方
POST /outpatient返回 patientOrderId - ABC生成收费单随后推送事件 108 创建收费单携带:id(chargeSheetId) · patientOrderId
- 互联网医院完成支付
PUT /charge/{chargeSheetId}/pay随后推送事件 101 收费完成携带:id(chargeSheetId) - ABC生成发药单随后推送事件 500 创建发药单携带:id(dispensingSheetId) · sourceSheetId(chargeSheetId)
- 诊所员工员工发药在 ABC 操作
- ABC更新发药单随后推送事件 503 发药携带:id(dispensingSheetId)
- 诊所员工填写快递信息在 ABC 填写快递单号
- ABC更新发药单信息随后推送事件 501 更新发药单信息携带:id(dispensingSheetId)结束
常见问题
收费单如何关联门诊单?
创建门诊单时会返回 patientOrderId;事件 108 也携带 patientOrderId,同时用 id 表示 chargeSheetId。按 patientOrderId 匹配,就能把同一次就诊的收费单关联到门诊单。
发药单如何关联收费单?
订阅事件 500 时,事件 id 是 dispensingSheetId,sourceSheetId 是来源收费单的 chargeSheetId。保存这组关系后,后续按发药单 ID 处理即可。
后续发药事件如何复用同一个 dispensingSheetId?
事件 500、501、503 中的 id 都是同一张发药单的 dispensingSheetId。收到 500 时持久化这个 ID,处理 501 和 503 时直接按 id 匹配已有发药单。
处方商品如何选择 productId 或 productShortId?
接口同时支持两者时二选一;如果使用商品编码,同一请求内所有商品都必须传 productShortId。创建检查检验项等只声明 productId 的接口,按该接口参数传值。