Files
2026-02-28 15:16:15 +08:00

16 KiB
Raw Permalink Blame History

枚举类型定义

**本文档引用的文件** - [models.py](file://backend/app/models/models.py) - [schemas.py](file://backend/app/schemas/schemas.py) - [templates.py](file://backend/app/api/v1/templates.py) - [init_templates.py](file://backend/app/scripts/init_templates.py) - [template_service.py](file://backend/app/services/template_service.py) - [002_template.py](file://backend/alembic/versions/002_template.py) - [001_initial.py](file://backend/alembic/versions/001_initial.py) - [database.md](file://docs/database.md)

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构概览
  5. 详细组件分析
  6. 依赖分析
  7. 性能考虑
  8. 故障排除指南
  9. 结论

简介

本文档提供了医院绩效管理系统中所有枚举类型的完整数据字典。系统采用平衡计分卡BSC理论框架通过标准化的枚举类型确保业务逻辑的一致性和可维护性。

该系统涵盖了从基础科室管理到复杂绩效考核的完整业务流程,所有关键业务状态和分类都通过精心设计的枚举类型来实现。

项目结构

系统采用分层架构设计,枚举类型分布在多个层次中:

graph TB
subgraph "数据模型层"
A[models.py<br/>数据库模型枚举]
end
subgraph "API层"
B[templates.py<br/>模板管理API]
C[departments.py<br/>科室管理API]
D[menus.py<br/>菜单管理API]
end
subgraph "服务层"
E[template_service.py<br/>模板服务]
F[department_service.py<br/>科室服务]
G[menu_service.py<br/>菜单服务]
end
subgraph "脚本层"
H[init_templates.py<br/>模板初始化]
end
A --> B
A --> C
A --> D
B --> E
C --> F
D --> G
H --> A

图表来源

核心组件

系统定义了以下主要枚举类型:

科室类型 (DeptType)

用于标识医院各类科室的标准化分类体系。

平衡计分卡维度 (BSCDimension)

基于财务、客户、内部流程、学习成长四个维度的绩效评估框架。

员工状态 (StaffStatus)

员工在组织中的生命周期状态管理。

考核状态 (AssessmentStatus)

绩效考核流程中的状态流转控制。

指标类型 (IndicatorType)

不同类型绩效指标的分类标准。

计划状态 (PlanStatus)

绩效计划执行过程中的状态管理。

菜单类型 (MenuType)

系统菜单结构的类型区分。

模板类型 (TemplateType)

绩效指标模板的分类体系。

章节来源

架构概览

系统采用统一的枚举类型管理策略,确保跨层一致性:

classDiagram
class DeptType {
+CLINICAL_SURGICAL
+CLINICAL_NONSURGICAL_WARD
+CLINICAL_NONSURGICAL_NOWARD
+MEDICAL_TECH
+MEDICAL_AUXILIARY
+NURSING
+ADMIN
+FINANCE
+LOGISTICS
}
class BSCDimension {
+FINANCIAL
+CUSTOMER
+INTERNAL_PROCESS
+LEARNING_GROWTH
}
class StaffStatus {
+ACTIVE
+LEAVE
+RESIGNED
+RETIRED
}
class AssessmentStatus {
+DRAFT
+SUBMITTED
+REVIEWED
+FINALIZED
+REJECTED
}
class IndicatorType {
+QUALITY
+QUANTITY
+EFFICIENCY
+SERVICE
+COST
}
class PlanStatus {
+DRAFT
+PENDING
+APPROVED
+REJECTED
+ACTIVE
+COMPLETED
+CANCELLED
}
class MenuType {
+MENU
+BUTTON
}
class TemplateType {
+GENERAL
+SURGICAL
+NON_SURGICAL_WARD
+NON_SURGICAL_NOWARD
+MEDICAL_TECH
+NURSING
+ADMIN
+LOGISTICS
}
DeptType --> BSCDimension : "影响"
IndicatorType --> BSCDimension : "映射"
TemplateType --> DeptType : "适用"

图表来源

详细组件分析

科室类型 (DeptType) 数据字典

枚举值 业务含义 适用科室 使用场景 约束条件
clinical_surgical 手术临床科室 外科、骨科、胸外科等 手术量、手术质量评估 DRG/ RBRVS 计费
clinical_nonsurgical_ward 非手术有病房科室 内科、儿科、神经科等 住院患者管理、病床使用率 床位周转率评估
clinical_nonsurgical_noward 非手术无病房科室 急诊科、观察室等 急诊处理能力、观察患者管理 急诊周转时间
medical_tech 医技科室 检验科、放射科、超声科等 检查报告质量、服务效率 报告准确率、及时性
medical_auxiliary 医辅科室 病理科、药剂科等 辅助诊断支持、药品管理 质量控制标准
nursing 护理单元 各病区护理单元 护理质量、患者满意度 护理技术操作规范
admin 行政科室 院办、党办、财务科等 管理效能、服务支持 内部客户满意度
finance 财务科室 财务科 财务核算、成本控制 会计准则遵循
logistics 后勤保障科室 总务科、设备科等 后勤保障、设备维护 设备完好率

使用场景示例

  • 指标模板选择:不同科室类型适用不同的指标模板
  • 数据筛选:按科室类型过滤统计数据
  • 权限控制:特定功能对特定科室类型开放

章节来源

平衡计分卡维度 (BSCDimension) 数据字典

维度值 业务含义 权重范围 关键指标示例 适用场景
financial 财务维度 30%-40% 收支结余率、成本控制、资产效率 财务绩效评估
customer 顾客维度 25%-35% 患者满意度、服务可及性、投诉管理 服务质量评估
internal_process 内部流程维度 20%-30% 医疗质量、医疗安全、院感控制 运营效率评估
learning_growth 学习成长维度 5%-15% 科研教学、人才培养、业务学习 能力发展评估

权重配置原则

  • 通用模板财务40%客户30%内部流程25%学习成长5%
  • 手术科室财务35%客户20%内部流程30%学习成长15%
  • 医技科室财务20%客户30%内部流程40%学习成长10%

章节来源

员工状态 (StaffStatus) 数据字典

状态值 业务含义 系统行为 统计影响 权限控制
active 在职 可参与考核、享受绩效 计入在岗人员统计 完整权限
leave 休假 不参与考核、暂停绩效 不计入在岗统计 有限权限
resigned 离职 不参与考核、结算薪酬 不再统计 无权限
retired 退休 不参与考核、结算薪酬 不再统计 无权限

状态流转图

stateDiagram-v2
[*] --> active
active --> leave : 请假/调休
leave --> active : 返回工作
active --> resigned : 离职办理
active --> retired : 退休办理
resigned --> [*]
retired --> [*]

章节来源

考核状态 (AssessmentStatus) 数据字典

状态值 业务含义 系统权限 数据处理 流程控制
draft 草稿 创建/编辑 临时保存 初始状态
submitted 已提交 审核查看 待审核状态 提交流程
reviewed 已审核 确认审批 审核中 审核流程
finalized 已确认 工资核算 生效状态 结束状态
rejected 已驳回 重新编辑 退回修改 异常流程

状态流转流程

sequenceDiagram
participant U as 用户
participant S as 系统
participant A as 审核人
participant P as 系统
U->>S : 创建/编辑考核
S->>S : 状态=draft
U->>S : 提交考核
S->>S : 状态=submitted
A->>S : 审核通过
S->>S : 状态=reviewed
A->>S : 确认生效
S->>S : 状态=finalized
S->>P : 生成工资记录

章节来源

指标类型 (IndicatorType) 数据字典

类型值 业务含义 计算方法 评估标准 示例指标
quality 质量指标 定性/定量评估 百分比/分数制 甲级病历率、满意度
quantity 数量指标 绝对数值统计 完成率/达标率 手术台次、门诊量
efficiency 效率指标 比较/比率分析 时间/成本效率 住院日、周转率
service 服务指标 客户满意度 星级/评分制 服务态度、及时性
cost 成本指标 成本效益分析 成本控制效果 材料消耗、成本率

评估方法分类

  • 区间法:设定目标区间,按比例扣分
  • 目标参照法:与目标值对比,超耗扣分
  • 加分法:超额完成给予奖励分
  • 扣分法:违规事件直接扣分
  • 一票否决:重大事故直接无效

章节来源

计划状态 (PlanStatus) 数据字典

状态值 业务含义 审批流程 统计作用 系统控制
draft 草稿 无需审批 临时保存 创建/修改
pending 待审批 上级审批 待执行 提交申请
approved 已批准 审批通过 执行准备 正式生效
rejected 已驳回 审批拒绝 修改调整 退回修改
active 执行中 开始执行 实际执行 进行中
completed 已完成 执行结束 归档统计 结束状态
cancelled 已取消 主动取消 终止执行 异常终止

计划层级

  • hospital医院级计划全局性目标
  • department科室级计划部门目标
  • individual个人级计划员工目标

章节来源

菜单类型 (MenuType) 数据字典

类型值 业务含义 界面表现 权限控制 使用场景
menu 菜单 可展开的导航项 路由访问权限 主要功能入口
button 按钮 可点击的操作按钮 功能操作权限 具体业务操作

菜单结构

  • 一级菜单:工作台、科室管理、员工管理等
  • 二级菜单:具体的业务功能页面
  • 按钮权限:新增、编辑、删除、查看等操作

章节来源

模板类型 (TemplateType) 数据字典

类型值 业务含义 适用范围 权重配置 特殊要求
general 通用模板 全院各科室 4维均衡 基础通用指标
surgical 手术临床科室 外科、妇科、眼科等 财务35% DRG/RBRVS导向
nonsurgical_ward 非手术有病房科室 内科、儿科等 4维均衡 住院管理重点
nonsurgical_noward 非手术无病房科室 急诊、观察室等 4维均衡 急诊效率评估
medical_tech 医技科室 检验、放射、超声等 内部流程40% 质量效率双核心
nursing 护理单元 各病区护理单元 顾客30% 护理质量优先
admin 行政科室 院办、党办、财务等 顾客40% 服务支持导向
logistics 后勤科室 总务、设备、基建等 内部流程40% 保障效率优先

模板特点

  • 通用模板:平衡四维度,适合大多数科室
  • 手术模板:强调财务效率,体现技术价值
  • 医技模板:注重质量与效率并重
  • 行政模板:突出服务支持能力
  • 后勤模板:重视保障及时性

章节来源

依赖分析

数据库迁移依赖

系统通过 Alembic 迁移管理枚举类型的数据库存储:

flowchart TD
A[初始版本] --> B[添加指标维度字段]
B --> C[模板类型定义]
C --> D[枚举类型持久化]
E[DeptType] --> F[departments表]
G[BSCDimension] --> H[indicators表]
I[AssessmentStatus] --> J[assessments表]
K[TemplateType] --> L[indicator_templates表]
F --> M[SQL约束]
H --> M
J --> M
L --> M

图表来源

业务流程依赖

graph LR
subgraph "业务流程"
A[科室类型] --> B[指标模板]
B --> C[绩效考核]
C --> D[工资核算]
end
subgraph "状态管理"
E[员工状态] --> F[考核状态]
F --> G[计划状态]
end
subgraph "系统集成"
H[菜单类型] --> I[权限控制]
I --> J[界面展示]
end
B --> F
C --> G
D --> G

图表来源

章节来源

性能考虑

枚举类型性能优化

  1. 数据库索引优化

    • 科室类型departments.dept_type
    • 员工状态staff.status
    • 考核状态assessments.status
    • 指标类型indicators.indicator_type
  2. 查询性能

    • 使用枚举值进行精确匹配优于字符串模糊查询
    • 合理利用数据库索引提高查询效率
    • 避免在 WHERE 子句中进行枚举值转换
  3. 内存使用

    • 枚举类型占用固定内存空间
    • 避免频繁创建新的枚举实例
    • 使用枚举缓存机制减少重复创建

故障排除指南

常见问题及解决方案

问题1枚举值不一致

  • 症状:数据库中存储的枚举值与代码定义不匹配
  • 解决方案:检查 Alembic 迁移文件,确保数据库字段类型正确

问题2状态流转异常

  • 症状:考核状态无法正常转换
  • 解决方案:验证状态转换规则,检查业务逻辑实现

问题3模板应用错误

  • 症状:指标模板不适用于特定科室类型
  • 解决方案:检查 applicable_dept_types 字段配置

问题4权限控制失效

  • 症状:菜单权限不生效
  • 解决方案:验证 MenuType 和权限标识配置

章节来源

结论

本系统通过标准化的枚举类型设计,实现了以下目标:

  1. 业务一致性:统一的枚举定义确保各模块间业务逻辑的一致性
  2. 可维护性:集中化的枚举管理便于后续扩展和维护
  3. 可扩展性:清晰的枚举层次结构支持业务需求变化
  4. 数据完整性:数据库层面的约束保证数据质量

建议在后续开发中:

  • 定期审查和更新枚举定义
  • 建立枚举变更的审批流程
  • 完善枚举值的业务文档
  • 加强枚举类型的单元测试