2. 智慧医院业务全景与领域建模
智慧医院不是把HIS、LIS、PACS、EMR等系统简单堆叠在一起,而是围绕“患者就医旅程”和“医院运营闭环”两条主线,把业务拆成可治理、可复用、可演进的领域。业务全景回答“医院到底在做什么”,领域建模回答“这些事在软件里如何被稳定表达”。二者缺一不可:没有全景,领域边界容易拍脑袋;没有建模,全景只能停留在PPT上。
一、业务域划分:从就医旅程到运营闭环
门急诊域覆盖挂号、分诊、候诊、接诊、开单、缴费、取药、留观等环节,核心对象是患者、就诊、医嘱、处方、申请单。住院域围绕入院登记、床位分配、医嘱执行、护理记录、手术、出院结算展开,核心对象是住院就诊、床位、医嘱执行记录、护理计划。医技域承接检查、检验、影像、病理、心电等申请与报告,核心对象是申请单、标本、检查项目、报告。药事域管理处方审核、调配、发药、用药监护与库存,核心对象是处方、药品、批次、库存、用药事件。运营管理域覆盖财务、人事、物资、绩效、质控与决策分析,核心对象是成本、收入、资源、指标。
划分业务域时,建议同时看三个维度:业务能力(医院必须具备什么能力)、数据所有权(谁产生、谁维护、谁消费)、变更频率(哪些规则经常变、哪些相对稳定)。例如“处方审核”能力属于药事域,但审核规则会随药政政策频繁变化,适合做成可配置规则服务;而“患者主索引”属于全院共享基础能力,应由主数据域统一管理,避免各域各自维护患者信息。
二、业务能力地图:把“做什么”结构化
业务能力地图是业务全景的骨架,通常按“一级能力—二级能力—三级能力”展开。以门急诊为例:一级能力“患者接诊”,二级能力包括“分诊”“叫号”“接诊记录”,三级能力可细到“生命体征采集”“诊断录入”“医嘱开立”。能力地图不描述流程顺序,而描述医院具备哪些稳定能力,因此它比流程图更适合做系统规划与领域划分的输入。
绘制能力地图时,建议用“动词+名词”命名,避免用部门名称代替能力。例如“门诊药房发药”是能力,“门诊药房”是组织单元。能力地图还应标注能力成熟度与数字化程度,便于识别哪些能力需要优先建设。下表给出一个简化示例,用于说明能力地图的字段结构:
| 一级能力 | 二级能力 | 核心对象 | 主要数据所有者 | 典型系统 |
|---|---|---|---|---|
| 患者服务 | 挂号、分诊、缴费 | 患者、就诊、费用 | 患者主索引域 | HIS、自助机 |
| 临床诊疗 | 接诊、医嘱、病历 | 医嘱、诊断、病历 | 临床域 | EMR、CPOE |
| 医技执行 | 检查、检验、报告 | 申请单、标本、报告 | 医技域 | LIS、PACS、RIS |
| 药事管理 | 审方、调配、发药 | 处方、药品、库存 | 药事域 | 药房系统、审方系统 |
| 运营管理 | 结算、成本、绩效 | 收入、成本、指标 | 运营域 | HRP、BI |
三、领域驱动设计在医疗业务建模中的应用
领域驱动设计(DDD)强调用限界上下文划分业务边界,用聚合保证一致性,用领域事件驱动跨域协作。在医疗场景中,一个“就诊”在门急诊域是挂号就诊,在住院域是住院就诊,在医技域是检查申请,在药事域是处方。它们共享患者标识,但业务规则、生命周期和状态机完全不同,因此应划分为不同限界上下文,而不是强行做成一张大表。
以“开立处方”为例:医生在临床域开立处方,处方聚合根包含处方明细、用法用量、诊断关联;药事域接收处方后执行审核,审核通过生成“处方审核通过”领域事件;药房系统订阅该事件进行调配,生成“药品已调配”事件;护理域订阅后执行给药,生成“给药执行”事件。整个过程通过事件串联,各域只依赖事件契约,不直接读取对方数据库,从而降低耦合。
聚合设计要抓住一致性边界。例如“处方”与“处方明细”必须强一致,应放在同一聚合;“库存扣减”与“处方审核”可以最终一致,通过事件异步处理。医疗业务对一致性要求高,但并非所有操作都需要强事务。例如预约挂号需要强一致防止号源超卖,而报表统计可以接受分钟级延迟。
四、从业务全景到落地:一张可执行的领域关系图
下面这张图把门急诊、住院、医技、药事、运营五个业务域放在同一张全景中,并标出核心对象、主要事件流与共享主数据。图中实线表示同步调用或强一致关系,虚线表示领域事件驱动的异步协作,箭头方向表示数据或控制流向。该图可直接作为领域划分讨论的起点:如果某个箭头跨越了不该跨越的边界,就说明上下文划分需要调整。
从这张图可以读出三条落地原则。第一,主数据必须独立:患者主索引、药品字典、机构人员等由共享主数据域统一维护,各业务域只引用不复制,否则同一患者在门急诊和住院会出现两个ID。第二,跨域协作优先用事件:处方开立后,药事域不需要同步调用临床域接口,而是订阅“处方开立”事件,这样药事域升级不会影响临床域。第三,聚合边界要匹配业务一致性:处方与处方明细同聚合,库存扣减与处方审核分属不同聚合,通过事件最终一致。
五、建模落地时的常见判断
实际项目中,领域划分最容易出现两种偏差:一是按现有系统划分,把HIS当成一个域,导致边界过粗;二是按部门划分,把“门诊部”“住院部”当成域,导致组织变化时系统跟着大改。正确做法是回到业务能力和数据所有权:谁产生这个数据,谁就对它的生命周期负责;谁消费这个数据,谁就通过契约获取。
另一个关键判断是事件粒度。事件太粗,消费者拿不到足够信息;事件太细,系统间调用次数爆炸。建议事件携带“聚合根ID+关键状态+时间戳+版本号”,例如“处方审核通过”事件包含处方号、患者ID、审核结果、审核时间、处方版本。消费者根据版本号做幂等处理,避免重复消费导致重复发药。
总结来说,智慧医院业务全景提供“地图”,领域建模提供“坐标系”。先划分门急诊、住院、医技、药事、运营等业务域,再用能力地图把能力结构化,最后用DDD的限界上下文、聚合和领域事件把业务规则固化到软件边界中。这样建出来的平台,才能既支撑当前业务,又能在政策、流程和技术变化时保持稳定演进。