正式目录发布后,如果HIS只认识项目码,库存系统只认识物料码,产品订单只保存加工单,财务又按旧套餐科目记账,规则仍停留在文档里。技耗分离要求同一诊疗路径中的服务、耗材和产品各自有身份、数量和完成状态,同时又能归到同一患者和治疗计划。
联调重点不是“接口返回成功”,而是从医嘱到费用清单的业务含义没有丢失、重复或提前。
教学路径:一颗种植牙跨五个系统
汇康口腔医院选择单颗常规种植作为首条联调路径:
- 医生在HIS建立治疗计划和牙位;
- 手术日完成种植体植入;
- 库存扫描一套种植体系统;
- 愈合后建立一颗牙冠产品订单并最终交付;
- 收费系统生成诊查检查、植入服务、种植体系统、牙冠置入和牙冠产品;
- 财务分别进入医疗服务、耗材和产品核算。
旧接口的问题是:库存扫码立即收费,牙冠加工单到院即收费,HIS每次复诊又自动生成植入服务。单系统都“有数据”,合并后重复且提前。
先统一对象标识
至少需要:
- 患者ID;
- 就诊或疗程ID;
- 治疗计划ID;
- 牙位/部位;
- 医疗服务对象ID;
- 物品/产品对象ID;
- 产品订单ID;
- 规则和价格版本;
- 费用候选ID;
- 最终账单ID。
内部编码可不同,但接口必须携带统一映射。仅传名称会因简称、改名和同名对象失效。
用状态事件而不是覆盖字段
服务状态事件:
计划 → 已开立 → 进行中 → 已完成 → 已结算
还包括取消、中止、责任返工和冲销。产品状态:
下单 → 生产 → 到院 → 试戴 → 交付 → 退换/保修
耗材状态:
预留 → 领用 → 患者关联 → 实际使用 → 退库/报损 → 结算
每次变化生成带时间、操作者和原因的事件,不覆盖一个“完成=是”。收费引擎只在规则要求的状态达到时生成候选。
单颗种植的触发规则
| 对象 | 来源事件 | 生成条件 | 阻断 |
|---|---|---|---|
| 植入服务 | HIS临床完成 | 牙位、服务产出、完成记录齐备 | 仅开医嘱或重复复诊 |
| 种植体系统 | 库存实际使用 | 一套扫码、患者关联、价格有效 | 预领、退库、无追溯 |
| 牙冠置入服务 | HIS最终交付 | 安装调改完成 | 仅取模或试戴 |
| 牙冠产品 | 产品订单交付 | 有效交付件数1、价格版本有效 | 到院未交付、返厂件 |
检查项目按实际完成,不由“种植计划”一次性触发。
接口契约写业务字段
例如库存向收费发送:
event_type=consumable_used
patient_id=P1008
treatment_id=T773
item_id=C-IMPLANT-01
quantity=1
unit=套
tooth=46
lot_or_serial=...
used_at=...
rule_version=V2026.06
接口校验单位是否与主数据一致、对象是否允许收费、治疗是否存在。缺字段进入异常队列,不用默认值补齐。
产品交付事件还要携带订单、企业、牙位、有效交付件数和作废件关系。财务接口携带对象类型和会计映射,不能只传总金额。
收费引擎只生成候选
业务系统传来的事实不直接成为已收费。收费引擎依次:
- 验证患者、机构和规则版本;
- 验证服务/使用/交付状态;
- 验证单位与数量;
- 检查包含、互斥和前置;
- 读取批准价格;
- 生成候选费用和证据链;
- 由结算流程确认并形成账单。
规则不完整的对象显示“阻断原因”,不允许用户换一个相近码绕过。
基本物耗怎样流转
镍钛锉、印模材和粘接剂仍从库存传递使用事实,但主数据身份为基本物耗,收费引擎结果为“不生成患者费用,进入成本”。这样保留质量和成本信息,又不会因接口存在就收费。
基本物耗被错误改成可收费属于高风险主数据变更,需要双人审批并触发回归测试。
财务怎样接收
最终账单按对象类型分开:
- 医疗服务收入;
- 可收费耗材;
- 患者匹配产品;
- 药品;
- 预收和退款。
会计科目由财务批准映射。产品采购成本和服务基本物耗成本也分别归集,为医疗服务成本模型提供数据。财务不能为了科目方便把产品重新并入“治疗费”。
预收款在服务完成前保持负债或相应财务状态,不因收费候选生成自动确认收入。具体会计处理按制度执行。
权限与人工例外
医生只能记录临床事实,不能改价格;库管记录领退,不能改变收费身份;收费员可处理已批准候选,不能创建任意项目;价格管理员维护规则,不能改临床完成事实;信息管理员部署版本,不决定业务结论。
必要人工例外通过工单:
- 原候选ID;
- 阻断原因;
- 补充证据;
- 申请人与审核人;
- 临时或永久处理;
- 受影响账单;
- 到期时间。
禁止共享“超级账号”直接放行。
异常队列
| 异常 | 自动处理 | 责任人 |
|---|---|---|
| 单位不一致 | 阻断 | 主数据管理员 |
| 患者关联缺失 | 阻断 | 临床/库房 |
| 产品到院未交付 | 等待 | 产品岗位 |
| 同牙同服务重复 | 阻断并比对历史 | 价格管理 |
| 价格版本过期 | 阻断 | 价格管理 |
| 财务科目缺失 | 不过账 | 财务 |
| 接口重复消息 | 幂等去重 | 信息部门 |
异常有处理时限和升级,不让一线在收费窗口临时解释。
幂等与重复消息
接口可能重发同一事件。每个事件有唯一ID,系统已处理后再次收到只返回原结果,不生成第二笔费用。
患者两次真正不同的服务则有不同完成事件和临床证据。技术去重不能误杀临床新事件,所以唯一键应包含事件ID和业务对象,不只用患者+日期。
端到端测试脚本
至少测试:
- 正常单颗种植完整路径;
- 领用两套、使用一套、退库一套;
- 植入计划取消;
- 牙冠两次返厂、最终一件交付;
- 患者中途转院,牙冠未在本院交付;
- 价格版本跨生效日;
- 接口消息重复三次;
- 财务接口失败后重试;
- 基本物耗领用;
- 人工试图用旧码绕过。
每个脚本预先写预期服务、耗材、产品数量和金额,测试者不以系统当前输出为答案。
对账规则
每日对账:
- 完成服务数与收费候选数;
- 实际使用可收费耗材与结算数;
- 有效产品交付与产品收费数;
- 退库、作废和冲销;
- 收费总额与财务过账;
- 异常队列余额。
数量差异比总金额更早发现问题。金额相等可能是漏一笔和多一笔互相抵消。
发布与回退
系统发布包包括代码、配置、目录版本、接口映射和数据库脚本。回退不是只回代码,还要恢复目录、规则和接口版本,并处理发布后已经产生的业务事件。
演练要求:在测试环境发布、生成三条账单、执行回退、验证旧系统可继续且新事件不丢失。回退过程和耗时由项目负责人签字。
停止条件与岗位责任
统一对象ID缺失、事件状态不完整、接口默认补关键字段、基本物耗自动收费、财务无法分对象、权限可绕过、端到端测试或回退失败时,不得上线。
信息部门负责技术实现;各业务负责人定义事件和预期;价格管理维护规则;财务维护科目;安全或内控审核权限;项目负责人批准联调通过。
管理依据
- 医疗机构内部价格行为管理规定,用于价格信息化、收费审核和岗位管理。
- 医疗机构医疗保障定点管理暂行办法,用于真实服务、费用清单和不得重复、分解收费。
- 立项指南解读辅导第1期,用于项目七要素、单位和规则关系。
政策核验日期:2026-07-27。接口字段、状态和测试为教学设计,实际实现应符合机构安全、隐私和信息化规范。