Files
hospital_performance/.qoder/repowiki/zh/content/核心功能模块/基础数据管理/考核指标管理.md
2026-02-28 15:16:15 +08:00

17 KiB
Raw Blame History

考核指标管理

**本文档引用的文件** - [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)

目录

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

简介

本文档详细介绍医院绩效系统的考核指标管理功能。该系统实现了完整的指标管理体系,包括指标分类(财务、客户、内部流程、学习成长四个维度)、指标层级结构、指标权重配置和计算公式设置。系统提供了指标模板管理、指标值域范围设定、评分标准制定和数据来源配置等功能。

系统支持指标审核流程、版本控制、批量导入导出和指标关联关系的技术实现包含指标树形展示、动态计算、实时验证和历史记录追踪等功能。通过前后端分离架构采用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

图表来源

章节来源

核心组件

指标管理核心组件

系统的核心组件围绕指标管理展开,主要包括以下几个方面:

指标数据模型

系统定义了完整的指标数据模型,支持多种指标类型和维度配置:

  • 指标类型:质量指标、数量指标、效率指标、服务指标、成本指标
  • 平衡计分卡维度:财务、客户、内部流程、学习成长
  • 权重配置支持0.1-10的权重范围
  • 评分配置:最高分值、目标值、计量单位

模板管理组件

系统提供了灵活的模板管理功能:

  • 模板类型:通用模板、手术临床科室、非手术有病房科室、非手术无病房科室、医技科室、护理单元、行政科室、后勤科室
  • 维度权重支持BSC四个维度的权重配置
  • 评分方法:区间法、目标参照法、扣分法、加分法、一票否决

章节来源

架构概览

系统采用分层架构设计,确保了良好的可维护性和扩展性:

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

图表来源

系统架构的关键特点:

  1. 分层清晰:表现层、业务逻辑层、数据访问层职责明确
  2. 异步处理使用async/await模式提高并发性能
  3. ORM映射通过SQLAlchemy实现对象关系映射
  4. API设计遵循RESTful API规范提供标准化接口

章节来源

详细组件分析

指标管理组件

指标数据模型设计

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

图表来源

章节来源

模板管理组件

模板数据模型设计

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

图表来源

章节来源

数据库迁移和初始化

系统通过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

图表来源

章节来源

性能考虑

系统在设计时充分考虑了性能优化:

数据库性能优化

  • 索引策略:为常用查询字段建立索引,包括指标类型、模板类型、状态等
  • 查询优化:使用分页查询避免大量数据传输
  • 连接池:使用异步数据库连接池提高并发性能

前端性能优化

  • 懒加载:按需加载组件和数据
  • 缓存机制:合理使用浏览器缓存
  • 虚拟滚动:大数据量表格使用虚拟滚动技术

异步处理

  • 异步API调用避免阻塞UI线程
  • 并发请求:合理组织并发请求提高响应速度

故障排除指南

常见问题及解决方案

API请求失败

问题现象:前端无法获取指标数据 可能原因

  • 后端服务未启动
  • 网络连接问题
  • 认证失败

解决步骤

  1. 检查后端服务状态
  2. 验证API端点可用性
  3. 确认认证信息正确

数据库连接问题

问题现象:系统启动时报数据库连接错误 可能原因

  • 数据库文件损坏
  • 权限不足
  • 连接字符串错误

解决步骤

  1. 检查数据库文件完整性
  2. 验证文件权限设置
  3. 确认数据库配置正确

前端界面异常

问题现象:指标管理界面显示异常 可能原因

  • JavaScript错误
  • CSS样式冲突
  • 组件状态异常

解决步骤

  1. 检查浏览器控制台错误
  2. 清除浏览器缓存
  3. 验证组件依赖关系

章节来源

结论

医院绩效系统的考核指标管理功能实现了完整的指标管理体系,具有以下特点:

  1. 功能完整:涵盖了指标创建、编辑、删除、查询等完整生命周期管理
  2. 架构清晰:采用分层架构设计,职责明确,易于维护和扩展
  3. 用户体验良好:提供直观的图形界面和丰富的交互功能
  4. 技术先进采用现代Web技术栈支持异步处理和高性能响应
  5. 数据安全:完善的权限控制和数据验证机制

系统通过指标模板管理、BSC维度配置、权重设置等功能为医院绩效考核提供了强大的技术支持。未来可以进一步扩展功能如增加指标计算引擎、报表分析工具等以满足更复杂的绩效管理需求。