基础概念
基础概念
先理解同一业务链路中的单据 ID 关系,以及处方和收费明细如何引用 ABC 商品,再进入具体对接场景。
单据之间如何关联
同一次业务中的挂号、门诊、收费和发药单据,patientOrderId 是相同的。它不是某张单据的外键,也不保证一定存在某类单据;零售开单也可能没有门诊单,未走挂号的业务也可能没有挂号单。具体单据操作仍必须使用单据自己的 ID,接口响应或事件里的泛化字段 id 需要结合所在对象解释。下图以门诊业务主链路为例。
同一次业务链路就诊单 ID
patientOrderId什么时候会有多张收费单?
患者完成一次收费后,医生又补开处方或收费项目时,可能再生成一张收费单。多次补开、多次结算后,同一个门诊单下就可能存在多张收费单。
如果补开时已有待收费单,新增项目通常会合并到这张待收费单中,不一定马上产生新收费单。排查收费项目归属时,可结合收费项目明细中的
chargeFormId。什么时候会有多张发药单?
一张收费单可能包含多个药房的药品或处方。收费后需要按药房分别发药,因此每个药房会生成一张发药单。
例如同一张收费单同时包含本地药房和代煎药房的项目,就会生成两张发药单。ABC 内部通过
pharmacyNo区分药房。
不要把同类字段当成同一个 ID
POST /outpatient 响应根字段 id 是 outpatientSheetId;收费事件里的 id 是 chargeSheetId;发药事件里的 id 才是 dispensingSheetId。
商品映射
第三方系统应把自身的商品编码与 ABC 的 productId、shortId 建立稳定映射,不要依赖商品名称或规格文本匹配。
| 字段 | 含义 | 来源 | 使用说明 |
|---|---|---|---|
productId | ABC 商品 ID | 商品列表和商品详情响应中的 id。 | 门诊处方、治疗项目、检查检验项目和收费明细都通过它引用具体商品。 |
productShortId | 请求中的商品编码 | 商品档案中的 shortId,提交商品时作为编码传入。 | 与 productId 二选一;不是所有接口都同时支持编码。 |
shortId | 响应中的商品编码 | 商品列表、商品详情响应中的业务编码。 | 用于展示、对码和第三方侧建立长期映射。 |
- 先通过商品列表或商品详情获取 ABC 商品的主键
id和业务编码shortId。 - 在本地保存“第三方商品编码 → ABC
productId/shortId”的映射,后续下单直接查表。 - 提交处方或收费明细时,
productId与productShortId二选一;如果使用商品编码,同一请求中的所有商品都必须使用编码。 - 不同接口支持的字段不完全一致。例如创建检查检验项只声明了
productId,进入具体接口页后以该接口参数为准。
商品编码优先规则只适用于支持两种传参方式的接口
接口同时提供 productId 和 productShortId 时,传了商品编码就以编码为准;没有声明 productShortId 的接口不能自行替换字段。