4. 医院运营数据模型设计
医院运营数据平台能否支撑管理决策,关键不在数据量有多大,而在于数据是否被组织成“可分析、可复用、可解释”的结构。维度建模正是承担这一职责的核心方法:它把分散在 HIS、EMR、LIS、PACS、HRP、财务系统、物资系统里的原始记录,重新组织为面向运营主题的事实表与维度表,让“门诊量为什么下降”“某科室成本为何偏高”“床位周转慢在哪一环”这类问题能够被快速回答。
一、为什么运营主题需要维度模型
医院业务系统大多按流程建表:挂号表、收费明细表、医嘱表、发药表、核算表,各自服务单一业务。若直接在这些表上做运营分析,会面临三个问题:一是口径不统一,同一“门诊人次”在不同系统含义不同;二是关联复杂,一次运营分析往往要跨十几张表;三是性能差,明细表动辄上亿行,聚合查询响应慢。维度模型通过“事实表记录业务事件、维度表描述分析视角”的方式,把复杂关联预先梳理清楚,使分析人员只需按维度切片、按指标聚合即可。
面向运营主题的维度模型通常按主题域划分。结合医院实际,建议至少覆盖五个主题域:患者主题域(就诊、住院、随访)、医疗主题域(诊疗活动、手术、检查检验)、财务主题域(收入、成本、结算)、人力主题域(人员、排班、绩效)、物资主题域(药品、耗材、设备)。每个主题域内部由若干事实表与共享维度表构成,维度表尽量跨主题复用,避免重复建设。
二、事实表设计:先定粒度,再定度量
事实表是维度模型的核心,设计第一步是确定粒度。粒度决定了“一行事实代表什么业务事件”。例如就诊事实表,粒度可定为“一次挂号就诊”,一行记录一次就诊;住院事实表粒度可定为“一次住院”,一行记录一次住院全过程。粒度越细,分析灵活性越高,但数据量和查询成本也越大。运营分析通常建议采用“明细粒度 + 轻度汇总”双层结构:明细层保留最细事件,汇总层按天、科室、患者类型预聚合,兼顾灵活性与性能。
确定粒度后,再选择度量。度量必须是可加或半可加的数值,如收入金额、药品数量、住院天数、手术台次。不可直接相加的比率类指标(如药占比、床位使用率)不放入事实表,而由指标模型基于原子度量计算得出。事实表还应包含指向各维度表的外键,如时间键、科室键、患者键、医生键,通过这些外键与共享维度关联。
以就诊事实表为例,其结构可设计为:
就诊事实表 fact_visit
visit_id 就诊唯一标识
time_key 时间维度外键(精确到日)
dept_key 科室维度外键
patient_key 患者维度外键
doctor_key 医生维度外键
pay_type_key 支付方式维度外键
visit_type 门诊/急诊/住院标识
visit_count 就诊人次(度量,值=1)
total_fee 总费用(度量)
drug_fee 药品费用(度量)
exam_fee 检查费用(度量)
treat_fee 治疗费用(度量)
wait_minutes 候诊时长(度量)
其中 visit_count 恒为 1,是为了让“人次”可以直接 SUM 聚合;各费用字段均为可加度量,便于按任意维度汇总。wait_minutes 用于分析候诊效率,属于半可加度量,跨时间汇总时需注意口径。
三、维度表设计:描述分析视角
维度表回答“从哪个角度看数据”。医院运营中高频使用的维度包括:时间维度(年、季、月、周、日、工作日/节假日)、科室维度(临床科室、医技科室、职能科室、科室层级)、患者维度(年龄、性别、参保类型、地区)、人员维度(医生、护士、职称、所属科室)、收费项目维度(项目类别、医保类别、价格)、支付方式维度(自费、职工医保、居民医保、商保)。
维度表设计要处理两个关键问题。一是缓慢变化维:患者年龄会变、医生科室会调、科室名称会改。对需要保留历史口径的分析,应采用拉链式或版本式处理,保留生效时间与失效时间;对只关心当前状态的场景,可直接覆盖更新。二是一致性维度:同一“科室”在患者域、财务域、人力域必须使用同一套编码和层级,否则跨域分析会出现口径断裂。建议建立全院统一的科室主数据,维度表从主数据同步生成。
四、指标模型:从原子指标到复合指标
指标模型是维度模型面向管理语言的封装。它把事实表中的度量与维度组合,形成可被业务直接引用的指标。指标分三层:原子指标是不可再分的基础度量,如门诊人次、出院人数、收入金额;派生指标是原子指标加时间、维度限定后的结果,如“本月门诊人次”“某科室出院人数”“同比收入增长率”;复合指标由多个原子或派生指标运算得到,如床位周转率 = 出院人数 ÷ 平均开放床位数,药占比 = 药品收入 ÷ 医疗收入。
指标模型必须配套指标字典,明确每个指标的名称、口径、计算公式、数据来源、责任部门、更新频率。例如“床位周转率”需注明:分子为统计期内出院人数,分母为同期平均开放床位数,统计周期为月,数据来源为住院事实表与床位资源表。没有指标字典,维度模型再规范也无法保证全院口径一致。
五、落地要点与常见问题
实际建设中,建议按“主题域调研 → 确定粒度 → 设计事实表 → 抽取共享维度 → 定义指标 → 指标字典评审 → 物理建模与加载”的顺序推进。常见问题有三类:一是粒度定得过粗,导致无法下钻到科室或医生;二是维度不统一,财务和医疗各建一套科室编码;三是指标口径未评审就上线,导致同一指标在不同报表中数值不一致。规避方法是在建模阶段就让医务、财务、人事、信息部门共同参与口径确认,并把确认结果固化到指标字典和维度主数据中。