16 KiB
16 KiB
枚举类型定义
**本文档引用的文件** - [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)目录
简介
本文档提供了医院绩效管理系统中所有枚举类型的完整数据字典。系统采用平衡计分卡(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
图表来源
章节来源
性能考虑
枚举类型性能优化
-
数据库索引优化
- 科室类型:departments.dept_type
- 员工状态:staff.status
- 考核状态:assessments.status
- 指标类型:indicators.indicator_type
-
查询性能
- 使用枚举值进行精确匹配优于字符串模糊查询
- 合理利用数据库索引提高查询效率
- 避免在 WHERE 子句中进行枚举值转换
-
内存使用
- 枚举类型占用固定内存空间
- 避免频繁创建新的枚举实例
- 使用枚举缓存机制减少重复创建
故障排除指南
常见问题及解决方案
问题1:枚举值不一致
- 症状:数据库中存储的枚举值与代码定义不匹配
- 解决方案:检查 Alembic 迁移文件,确保数据库字段类型正确
问题2:状态流转异常
- 症状:考核状态无法正常转换
- 解决方案:验证状态转换规则,检查业务逻辑实现
问题3:模板应用错误
- 症状:指标模板不适用于特定科室类型
- 解决方案:检查 applicable_dept_types 字段配置
问题4:权限控制失效
- 症状:菜单权限不生效
- 解决方案:验证 MenuType 和权限标识配置
章节来源
结论
本系统通过标准化的枚举类型设计,实现了以下目标:
- 业务一致性:统一的枚举定义确保各模块间业务逻辑的一致性
- 可维护性:集中化的枚举管理便于后续扩展和维护
- 可扩展性:清晰的枚举层次结构支持业务需求变化
- 数据完整性:数据库层面的约束保证数据质量
建议在后续开发中:
- 定期审查和更新枚举定义
- 建立枚举变更的审批流程
- 完善枚举值的业务文档
- 加强枚举类型的单元测试