正式目录发布后,如果HIS只认识项目码,库存系统只认识物料码,产品订单只保存加工单,财务又按旧套餐科目记账,规则仍停留在文档里。技耗分离要求同一诊疗路径中的服务、耗材和产品各自有身份、数量和完成状态,同时又能归到同一患者和治疗计划。

联调重点不是“接口返回成功”,而是从医嘱到费用清单的业务含义没有丢失、重复或提前。

教学路径:一颗种植牙跨五个系统

汇康口腔医院选择单颗常规种植作为首条联调路径:

  1. 医生在HIS建立治疗计划和牙位;
  2. 手术日完成种植体植入;
  3. 库存扫描一套种植体系统;
  4. 愈合后建立一颗牙冠产品订单并最终交付;
  5. 收费系统生成诊查检查、植入服务、种植体系统、牙冠置入和牙冠产品;
  6. 财务分别进入医疗服务、耗材和产品核算。

旧接口的问题是:库存扫码立即收费,牙冠加工单到院即收费,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

接口校验单位是否与主数据一致、对象是否允许收费、治疗是否存在。缺字段进入异常队列,不用默认值补齐。

产品交付事件还要携带订单、企业、牙位、有效交付件数和作废件关系。财务接口携带对象类型和会计映射,不能只传总金额。

收费引擎只生成候选

业务系统传来的事实不直接成为已收费。收费引擎依次:

  1. 验证患者、机构和规则版本;
  2. 验证服务/使用/交付状态;
  3. 验证单位与数量;
  4. 检查包含、互斥和前置;
  5. 读取批准价格;
  6. 生成候选费用和证据链;
  7. 由结算流程确认并形成账单。

规则不完整的对象显示“阻断原因”,不允许用户换一个相近码绕过。

基本物耗怎样流转

镍钛锉、印模材和粘接剂仍从库存传递使用事实,但主数据身份为基本物耗,收费引擎结果为“不生成患者费用,进入成本”。这样保留质量和成本信息,又不会因接口存在就收费。

基本物耗被错误改成可收费属于高风险主数据变更,需要双人审批并触发回归测试。

财务怎样接收

最终账单按对象类型分开:

  • 医疗服务收入;
  • 可收费耗材;
  • 患者匹配产品;
  • 药品;
  • 预收和退款。

会计科目由财务批准映射。产品采购成本和服务基本物耗成本也分别归集,为医疗服务成本模型提供数据。财务不能为了科目方便把产品重新并入“治疗费”。

预收款在服务完成前保持负债或相应财务状态,不因收费候选生成自动确认收入。具体会计处理按制度执行。

权限与人工例外

医生只能记录临床事实,不能改价格;库管记录领退,不能改变收费身份;收费员可处理已批准候选,不能创建任意项目;价格管理员维护规则,不能改临床完成事实;信息管理员部署版本,不决定业务结论。

必要人工例外通过工单:

  • 原候选ID;
  • 阻断原因;
  • 补充证据;
  • 申请人与审核人;
  • 临时或永久处理;
  • 受影响账单;
  • 到期时间。

禁止共享“超级账号”直接放行。

异常队列

异常 自动处理 责任人
单位不一致 阻断 主数据管理员
患者关联缺失 阻断 临床/库房
产品到院未交付 等待 产品岗位
同牙同服务重复 阻断并比对历史 价格管理
价格版本过期 阻断 价格管理
财务科目缺失 不过账 财务
接口重复消息 幂等去重 信息部门

异常有处理时限和升级,不让一线在收费窗口临时解释。

幂等与重复消息

接口可能重发同一事件。每个事件有唯一ID,系统已处理后再次收到只返回原结果,不生成第二笔费用。

患者两次真正不同的服务则有不同完成事件和临床证据。技术去重不能误杀临床新事件,所以唯一键应包含事件ID和业务对象,不只用患者+日期。

端到端测试脚本

至少测试:

  1. 正常单颗种植完整路径;
  2. 领用两套、使用一套、退库一套;
  3. 植入计划取消;
  4. 牙冠两次返厂、最终一件交付;
  5. 患者中途转院,牙冠未在本院交付;
  6. 价格版本跨生效日;
  7. 接口消息重复三次;
  8. 财务接口失败后重试;
  9. 基本物耗领用;
  10. 人工试图用旧码绕过。

每个脚本预先写预期服务、耗材、产品数量和金额,测试者不以系统当前输出为答案。

对账规则

每日对账:

  • 完成服务数与收费候选数;
  • 实际使用可收费耗材与结算数;
  • 有效产品交付与产品收费数;
  • 退库、作废和冲销;
  • 收费总额与财务过账;
  • 异常队列余额。

数量差异比总金额更早发现问题。金额相等可能是漏一笔和多一笔互相抵消。

发布与回退

系统发布包包括代码、配置、目录版本、接口映射和数据库脚本。回退不是只回代码,还要恢复目录、规则和接口版本,并处理发布后已经产生的业务事件。

演练要求:在测试环境发布、生成三条账单、执行回退、验证旧系统可继续且新事件不丢失。回退过程和耗时由项目负责人签字。

停止条件与岗位责任

统一对象ID缺失、事件状态不完整、接口默认补关键字段、基本物耗自动收费、财务无法分对象、权限可绕过、端到端测试或回退失败时,不得上线。

信息部门负责技术实现;各业务负责人定义事件和预期;价格管理维护规则;财务维护科目;安全或内控审核权限;项目负责人批准联调通过。

管理依据

政策核验日期:2026-07-27。接口字段、状态和测试为教学设计,实际实现应符合机构安全、隐私和信息化规范。