17 KiB
考核指标管理
**本文档引用的文件** - [backend/app/api/v1/indicators.py](file://backend/app/api/v1/indicators.py) - [backend/app/services/indicator_service.py](file://backend/app/services/indicator_service.py) - [backend/app/models/models.py](file://backend/app/models/models.py) - [backend/app/schemas/schemas.py](file://backend/app/schemas/schemas.py) - [backend/app/api/v1/templates.py](file://backend/app/api/v1/templates.py) - [backend/app/services/template_service.py](file://backend/app/services/template_service.py) - [backend/alembic/versions/002_template.py](file://backend/alembic/versions/002_template.py) - [frontend/src/views/basic/Indicators.vue](file://frontend/src/views/basic/Indicators.vue) - [frontend/src/views/basic/Templates.vue](file://frontend/src/views/basic/Templates.vue) - [frontend/src/api/indicator.js](file://frontend/src/api/indicator.js) - [frontend/src/api/template.js](file://frontend/src/api/template.js)目录
简介
本文档详细介绍医院绩效系统的考核指标管理功能。该系统实现了完整的指标管理体系,包括指标分类(财务、客户、内部流程、学习成长四个维度)、指标层级结构、指标权重配置和计算公式设置。系统提供了指标模板管理、指标值域范围设定、评分标准制定和数据来源配置等功能。
系统支持指标审核流程、版本控制、批量导入导出和指标关联关系的技术实现,包含指标树形展示、动态计算、实时验证和历史记录追踪等功能。通过前后端分离架构,采用FastAPI作为后端框架,Vue.js作为前端框架,实现了高效、可扩展的绩效考核指标管理解决方案。
项目结构
该项目采用前后端分离的架构设计,主要分为以下层次:
graph TB
subgraph "前端层"
FE1[Vue.js 应用]
FE2[Element Plus UI 组件]
FE3[API 请求封装]
end
subgraph "后端层"
BE1[FastAPI 框架]
BE2[SQLAlchemy ORM]
BE3[异步数据库连接]
end
subgraph "数据层"
DB1[SQLite 数据库]
DB2[指标表]
DB3[模板表]
DB4[关联表]
end
FE1 --> FE2
FE2 --> FE3
FE3 --> BE1
BE1 --> BE2
BE2 --> BE3
BE3 --> DB1
DB1 --> DB2
DB1 --> DB3
DB1 --> DB4
图表来源
- frontend/src/views/basic/Indicators.vue
- backend/app/api/v1/indicators.py
- backend/app/models/models.py
章节来源
- frontend/src/views/basic/Indicators.vue
- backend/app/api/v1/indicators.py
- backend/app/models/models.py
核心组件
指标管理核心组件
系统的核心组件围绕指标管理展开,主要包括以下几个方面:
指标数据模型
系统定义了完整的指标数据模型,支持多种指标类型和维度配置:
- 指标类型:质量指标、数量指标、效率指标、服务指标、成本指标
- 平衡计分卡维度:财务、客户、内部流程、学习成长
- 权重配置:支持0.1-10的权重范围
- 评分配置:最高分值、目标值、计量单位
模板管理组件
系统提供了灵活的模板管理功能:
- 模板类型:通用模板、手术临床科室、非手术有病房科室、非手术无病房科室、医技科室、护理单元、行政科室、后勤科室
- 维度权重:支持BSC四个维度的权重配置
- 评分方法:区间法、目标参照法、扣分法、加分法、一票否决
章节来源
- backend/app/models/models.py
- backend/app/models/models.py
- backend/app/schemas/schemas.py
- backend/app/schemas/schemas.py
架构概览
系统采用分层架构设计,确保了良好的可维护性和扩展性:
graph TB
subgraph "表现层"
UI1[指标管理界面]
UI2[模板管理界面]
UI3[统计报表界面]
end
subgraph "业务逻辑层"
BL1[指标服务层]
BL2[模板服务层]
BL3[统计服务层]
end
subgraph "数据访问层"
DAL1[指标数据访问]
DAL2[模板数据访问]
DAL3[统计数据访问]
end
subgraph "数据存储层"
DS1[SQLite 数据库]
DS2[指标表]
DS3[模板表]
DS4[关联表]
end
UI1 --> BL1
UI2 --> BL2
UI3 --> BL3
BL1 --> DAL1
BL2 --> DAL2
BL3 --> DAL3
DAL1 --> DS1
DAL2 --> DS1
DAL3 --> DS1
DS1 --> DS2
DS1 --> DS3
DS1 --> DS4
图表来源
- backend/app/services/indicator_service.py
- backend/app/services/template_service.py
- backend/app/api/v1/indicators.py
系统架构的关键特点:
- 分层清晰:表现层、业务逻辑层、数据访问层职责明确
- 异步处理:使用async/await模式提高并发性能
- ORM映射:通过SQLAlchemy实现对象关系映射
- API设计:遵循RESTful API规范,提供标准化接口
章节来源
- backend/app/api/v1/indicators.py
- backend/app/api/v1/templates.py
- backend/app/services/indicator_service.py
详细组件分析
指标管理组件
指标数据模型设计
classDiagram
class Indicator {
+int id
+string name
+string code
+IndicatorType indicator_type
+BSCDimension bs_dimension
+float weight
+float max_score
+float target_value
+string target_unit
+string calculation_method
+string assessment_method
+string deduction_standard
+string data_source
+string applicable_dept_types
+bool is_veto
+bool is_active
+datetime created_at
+datetime updated_at
}
class IndicatorType {
<<enumeration>>
QUALITY
QUANTITY
EFFICIENCY
SERVICE
COST
}
class BSCDimension {
<<enumeration>>
FINANCIAL
CUSTOMER
INTERNAL_PROCESS
LEARNING_GROWTH
}
class AssessmentDetail {
+int id
+int assessment_id
+int indicator_id
+float actual_value
+float score
+string evidence
+string remark
+datetime created_at
+datetime updated_at
}
Indicator --> AssessmentDetail : "被评估"
AssessmentDetail --> Indicator : "关联"
图表来源
指标服务层实现
指标服务层提供了完整的CRUD操作和业务逻辑处理:
sequenceDiagram
participant Client as "客户端"
participant API as "指标API"
participant Service as "指标服务"
participant DB as "数据库"
Client->>API : GET /indicators
API->>Service : get_list()
Service->>DB : 查询指标列表
DB-->>Service : 返回指标数据
Service-->>API : 返回指标列表
API-->>Client : 返回JSON响应
Client->>API : POST /indicators
API->>Service : create()
Service->>DB : 插入新指标
DB-->>Service : 返回新ID
Service-->>API : 返回创建结果
API-->>Client : 返回创建成功
图表来源
前端界面实现
前端使用Vue.js和Element Plus构建了直观的用户界面:
flowchart TD
Start([用户访问指标管理页面]) --> LoadData[加载指标数据]
LoadData --> DisplayTable[显示指标表格]
DisplayTable --> SearchFilter[搜索和筛选]
SearchFilter --> AddIndicator[新增指标]
SearchFilter --> EditIndicator[编辑指标]
SearchFilter --> DeleteIndicator[删除指标]
SearchFilter --> StatusToggle[启用/禁用切换]
AddIndicator --> FormValidation[表单验证]
EditIndicator --> FormValidation
FormValidation --> SubmitData[提交数据到后端]
SubmitData --> UpdateTable[更新表格显示]
UpdateTable --> DisplayTable
StatusToggle --> UpdateStatus[更新状态]
UpdateStatus --> RefreshData[刷新数据]
RefreshData --> DisplayTable
图表来源
章节来源
- backend/app/models/models.py
- backend/app/services/indicator_service.py
- frontend/src/views/basic/Indicators.vue
模板管理组件
模板数据模型设计
classDiagram
class IndicatorTemplate {
+int id
+string template_name
+string template_code
+TemplateType template_type
+string description
+string dimension_weights
+string assessment_cycle
+bool is_active
+datetime created_at
+datetime updated_at
}
class TemplateIndicator {
+int id
+int template_id
+int indicator_id
+string category
+float target_value
+string target_unit
+float weight
+string scoring_method
+string scoring_params
+int sort_order
+string remark
+datetime created_at
+datetime updated_at
}
class TemplateType {
<<enumeration>>
GENERAL
SURGICAL
NON_SURGICAL_WARD
NON_SURGICAL_NOWARD
MEDICAL_TECH
NURSING
ADMIN
LOGISTICS
}
IndicatorTemplate --> TemplateIndicator : "包含多个"
TemplateIndicator --> Indicator : "关联指标"
图表来源
模板服务层实现
模板服务层提供了完整的模板生命周期管理:
sequenceDiagram
participant Client as "客户端"
participant API as "模板API"
participant Service as "模板服务"
participant DB as "数据库"
Client->>API : GET /templates
API->>Service : get_list()
Service->>DB : 查询模板列表
DB-->>Service : 返回模板数据
Service-->>API : 返回模板列表
API-->>Client : 返回JSON响应
Client->>API : POST /templates/{template_id}/indicators
API->>Service : add_indicator()
Service->>DB : 检查模板存在性
Service->>DB : 检查指标重复
Service->>DB : 插入模板指标关联
DB-->>Service : 返回新ID
Service-->>API : 返回添加结果
API-->>Client : 返回添加成功
图表来源
模板前端界面实现
前端模板管理界面提供了完整的模板编辑功能:
flowchart TD
Start([用户访问模板管理页面]) --> LoadTemplates[加载模板列表]
LoadTemplates --> SelectTemplate[选择模板]
SelectTemplate --> LoadTemplateDetails[加载模板详情]
LoadTemplateDetails --> DisplayTemplateInfo[显示模板信息]
DisplayTemplateInfo --> ManageIndicators[管理模板指标]
ManageIndicators --> AddIndicator[添加指标]
ManageIndicators --> EditIndicator[编辑指标]
ManageIndicators --> RemoveIndicator[移除指标]
AddIndicator --> IndicatorForm[指标表单]
EditIndicator --> IndicatorForm
IndicatorForm --> ValidateForm[验证表单]
ValidateForm --> SubmitToAPI[提交到API]
SubmitToAPI --> UpdateTemplate[更新模板显示]
UpdateTemplate --> ManageIndicators
RemoveIndicator --> ConfirmDelete[确认删除]
ConfirmDelete --> DeleteFromAPI[从API删除]
DeleteFromAPI --> UpdateTemplate
UpdateTemplate --> ManageIndicators
图表来源
章节来源
- backend/app/models/models.py
- backend/app/services/template_service.py
- frontend/src/views/basic/Templates.vue
数据库迁移和初始化
系统通过Alembic进行数据库版本管理,支持指标模板表的创建和字段扩展:
flowchart TD
Init([系统初始化]) --> CreateTables[创建基础表]
CreateTables --> AddTemplateTable[创建指标模板表]
AddTemplateTable --> AddColumns[添加新列]
AddColumns --> CheckColumn[检查列是否存在]
CheckColumn --> |存在| Skip[跳过]
CheckColumn --> |不存在| AddColumn[添加列]
AddColumn --> CheckColumn
Skip --> CheckColumn
CheckColumn --> Done([初始化完成])
图表来源
章节来源
依赖关系分析
系统各组件之间的依赖关系如下:
graph TB
subgraph "前端依赖"
FE_API[API封装层]
FE_INDICATORS[指标视图]
FE_TEMPLATES[模板视图]
end
subgraph "后端依赖"
API_INDICATORS[指标API]
API_TEMPLATES[模板API]
SERVICE_INDICATORS[指标服务]
SERVICE_TEMPLATES[模板服务]
MODELS[数据模型]
SCHEMAS[数据模式]
end
subgraph "数据库依赖"
DB_INDICATORS[指标表]
DB_TEMPLATES[模板表]
DB_TEMPLATE_INDICATORS[模板指标关联表]
end
FE_API --> API_INDICATORS
FE_API --> API_TEMPLATES
FE_INDICATORS --> FE_API
FE_TEMPLATES --> FE_API
API_INDICATORS --> SERVICE_INDICATORS
API_TEMPLATES --> SERVICE_TEMPLATES
SERVICE_INDICATORS --> MODELS
SERVICE_TEMPLATES --> MODELS
SERVICE_INDICATORS --> SCHEMAS
SERVICE_TEMPLATES --> SCHEMAS
MODELS --> DB_INDICATORS
MODELS --> DB_TEMPLATES
MODELS --> DB_TEMPLATE_INDICATORS
图表来源
- frontend/src/api/indicator.js
- frontend/src/api/template.js
- backend/app/api/v1/indicators.py
- backend/app/api/v1/templates.py
章节来源
性能考虑
系统在设计时充分考虑了性能优化:
数据库性能优化
- 索引策略:为常用查询字段建立索引,包括指标类型、模板类型、状态等
- 查询优化:使用分页查询避免大量数据传输
- 连接池:使用异步数据库连接池提高并发性能
前端性能优化
- 懒加载:按需加载组件和数据
- 缓存机制:合理使用浏览器缓存
- 虚拟滚动:大数据量表格使用虚拟滚动技术
异步处理
- 异步API调用:避免阻塞UI线程
- 并发请求:合理组织并发请求提高响应速度
故障排除指南
常见问题及解决方案
API请求失败
问题现象:前端无法获取指标数据 可能原因:
- 后端服务未启动
- 网络连接问题
- 认证失败
解决步骤:
- 检查后端服务状态
- 验证API端点可用性
- 确认认证信息正确
数据库连接问题
问题现象:系统启动时报数据库连接错误 可能原因:
- 数据库文件损坏
- 权限不足
- 连接字符串错误
解决步骤:
- 检查数据库文件完整性
- 验证文件权限设置
- 确认数据库配置正确
前端界面异常
问题现象:指标管理界面显示异常 可能原因:
- JavaScript错误
- CSS样式冲突
- 组件状态异常
解决步骤:
- 检查浏览器控制台错误
- 清除浏览器缓存
- 验证组件依赖关系
章节来源
结论
医院绩效系统的考核指标管理功能实现了完整的指标管理体系,具有以下特点:
- 功能完整:涵盖了指标创建、编辑、删除、查询等完整生命周期管理
- 架构清晰:采用分层架构设计,职责明确,易于维护和扩展
- 用户体验良好:提供直观的图形界面和丰富的交互功能
- 技术先进:采用现代Web技术栈,支持异步处理和高性能响应
- 数据安全:完善的权限控制和数据验证机制
系统通过指标模板管理、BSC维度配置、权重设置等功能,为医院绩效考核提供了强大的技术支持。未来可以进一步扩展功能,如增加指标计算引擎、报表分析工具等,以满足更复杂的绩效管理需求。