提交文件
This commit is contained in:
347
.qoder/repowiki/zh/content/项目概述/项目概述.md
Normal file
347
.qoder/repowiki/zh/content/项目概述/项目概述.md
Normal file
@@ -0,0 +1,347 @@
|
||||
# 项目概述
|
||||
|
||||
<cite>
|
||||
**本文引用的文件**
|
||||
- [README.md](file://README.md)
|
||||
- [docs/index.md](file://docs/index.md)
|
||||
- [docs/详细设计.md](file://docs/详细设计.md)
|
||||
- [backend/app/main.py](file://backend/app/main.py)
|
||||
- [backend/app/api/v1/__init__.py](file://backend/app/api/v1/__init__.py)
|
||||
- [backend/app/core/config.py](file://backend/app/core/config.py)
|
||||
- [backend/app/models/models.py](file://backend/app/models/models.py)
|
||||
- [backend/app/api/v1/assessments.py](file://backend/app/api/v1/assessments.py)
|
||||
- [backend/app/services/assessment_service.py](file://backend/app/services/assessment_service.py)
|
||||
- [backend/app/api/v1/performance_plans.py](file://backend/app/api/v1/performance_plans.py)
|
||||
- [backend/app/services/indicator_service.py](file://backend/app/services/indicator_service.py)
|
||||
- [frontend/src/main.js](file://frontend/src/main.js)
|
||||
- [frontend/package.json](file://frontend/package.json)
|
||||
</cite>
|
||||
|
||||
## 目录
|
||||
1. [简介](#简介)
|
||||
2. [项目结构](#项目结构)
|
||||
3. [核心组件](#核心组件)
|
||||
4. [架构总览](#架构总览)
|
||||
5. [详细组件分析](#详细组件分析)
|
||||
6. [依赖分析](#依赖分析)
|
||||
7. [性能考虑](#性能考虑)
|
||||
8. [故障排查指南](#故障排查指南)
|
||||
9. [结论](#结论)
|
||||
10. [附录](#附录)
|
||||
|
||||
## 简介
|
||||
本项目为县级中医院打造的“医院绩效管理系统”,围绕平衡计分卡(BSC)理论,构建覆盖财务、客户、内部流程、学习与成长四个维度的绩效管理体系。系统支持指标模板化、计划与考核流程化、工资核算自动化以及多维度统计分析,旨在将医院战略目标逐级分解到科室与个人,形成“目标—执行—考核—改进”的闭环管理,提升运营效率、医疗质量与服务水平。
|
||||
|
||||
- 适用场景:县级及以上公立中医院的全院级绩效管理,涵盖临床、医技、护理、行政、后勤等多科室类型。
|
||||
- 核心用户:院级管理者、科室主任、普通员工、绩效管理员、财务与人事相关人员。
|
||||
- 预期收益:统一指标口径、降低人工干预、提高考核透明度与效率、支撑绩效工资与晋升评优等结果应用。
|
||||
|
||||
章节来源
|
||||
- file://docs/index.md#L16-L26
|
||||
- file://docs/详细设计.md#L3-L17
|
||||
|
||||
## 项目结构
|
||||
系统采用前后端分离架构,后端基于 FastAPI + SQLAlchemy 2.0 异步 ORM,前端基于 Vue 3 + Element Plus,数据库采用 PostgreSQL,具备良好的扩展性与工程化能力。
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
FE["前端应用<br/>Vue 3 + Element Plus"] --> API["后端API<br/>FastAPI + Uvicorn"]
|
||||
API --> DB["数据库<br/>PostgreSQL 14+"]
|
||||
API --> AUTH["认证与安全<br/>JWT + 权限控制"]
|
||||
API --> SVC["业务服务层<br/>异步服务封装"]
|
||||
SVC --> MODELS["数据模型<br/>SQLAlchemy ORM"]
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [backend/app/main.py](file://backend/app/main.py#L19-L39)
|
||||
- [backend/app/core/config.py](file://backend/app/core/config.py#L18-L21)
|
||||
- [frontend/src/main.js](file://frontend/src/main.js#L1-L24)
|
||||
|
||||
章节来源
|
||||
- file://docs/index.md#L27-L40
|
||||
- file://backend/app/main.py#L1-L92
|
||||
- file://backend/app/core/config.py#L1-L47
|
||||
- file://frontend/package.json#L11-L26
|
||||
|
||||
## 核心组件
|
||||
- 系统入口与路由聚合
|
||||
- 后端应用通过主程序创建 FastAPI 实例,注册跨域中间件与全局异常处理,并挂载 v1 版本 API 路由器。
|
||||
- API 路由器集中包含认证、部门、员工、指标、考核、工资、统计、财务、计划、菜单、模板等模块。
|
||||
- 数据模型与枚举
|
||||
- 定义了平衡计分卡维度枚举、科室类型、员工状态、考核状态、指标类型等,支撑多维度指标与流程控制。
|
||||
- 业务服务层
|
||||
- 提供指标、考核、绩效计划等核心业务的查询、创建、更新、流程推进等服务方法,保证数据一致性与事务边界。
|
||||
- 前端应用
|
||||
- 使用 Vue 3 Composition API、Element Plus UI、Pinia 状态管理、Vite 构建,提供登录、导航、视图与交互组件。
|
||||
|
||||
章节来源
|
||||
- file://backend/app/main.py#L15-L78
|
||||
- file://backend/app/api/v1/__init__.py#L1-L17
|
||||
- file://backend/app/models/models.py#L29-L61
|
||||
- file://frontend/src/main.js#L1-L24
|
||||
|
||||
## 架构总览
|
||||
系统采用分层架构:表现层负责用户交互;应用层承载业务流程;服务层封装数据访问与领域逻辑;数据层持久化与外部系统集成。API 层统一对外提供 REST 接口,支持分页、过滤与鉴权。
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "表现层"
|
||||
UI["Web门户/管理界面"]
|
||||
end
|
||||
subgraph "应用层"
|
||||
AUTHM["认证模块"]
|
||||
PLANM["计划管理模块"]
|
||||
ASSESSM["考核管理模块"]
|
||||
SALARYM["工资核算模块"]
|
||||
STATSM["统计分析模块"]
|
||||
end
|
||||
subgraph "服务层"
|
||||
SVCA["指标服务"]
|
||||
SVCB["考核服务"]
|
||||
SVCC["计划服务"]
|
||||
end
|
||||
subgraph "数据层"
|
||||
MODELS["数据模型/ORM"]
|
||||
DB["PostgreSQL"]
|
||||
end
|
||||
UI --> AUTHM
|
||||
UI --> PLANM
|
||||
UI --> ASSESSM
|
||||
UI --> SALARYM
|
||||
UI --> STATSM
|
||||
AUTHM --> SVCA
|
||||
PLANM --> SVCC
|
||||
ASSESSM --> SVCB
|
||||
SALARYM --> SVCB
|
||||
STATSM --> SVCA
|
||||
STATSM --> SVCB
|
||||
STATSM --> SVCC
|
||||
SVCA --> MODELS
|
||||
SVCB --> MODELS
|
||||
SVCC --> MODELS
|
||||
MODELS --> DB
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [backend/app/api/v1/performance_plans.py](file://backend/app/api/v1/performance_plans.py#L1-L200)
|
||||
- [backend/app/api/v1/assessments.py](file://backend/app/api/v1/assessments.py#L1-L166)
|
||||
- [backend/app/services/assessment_service.py](file://backend/app/services/assessment_service.py#L1-L200)
|
||||
- [backend/app/models/models.py](file://backend/app/models/models.py#L117-L147)
|
||||
|
||||
## 详细组件分析
|
||||
|
||||
### 平衡计分卡(BSC)维度与指标体系
|
||||
- 四个维度映射
|
||||
- 财务维度:关注收入、成本、结余等财务指标,支撑资源投入与回报评估。
|
||||
- 客户维度:聚焦患者满意度、服务效率、医疗质量等,体现外部客户价值。
|
||||
- 内部流程维度:强调诊疗流程、院感控制、药品耗材管理等内部运营效率。
|
||||
- 学习与成长维度:关注人员培训、信息系统能力、科研教学等可持续发展能力。
|
||||
- 指标类型与模板
|
||||
- 指标类型包括质量、数量、效率、服务、成本等;系统内置多科室类型的指标模板,支持按模板导入与覆盖。
|
||||
- 指标包含维度、权重、目标值、计算方法、适用科室类型等元数据,支撑差异化考核。
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class Indicator {
|
||||
+名称
|
||||
+编码
|
||||
+指标类型
|
||||
+平衡计分卡维度
|
||||
+权重
|
||||
+最高分值
|
||||
+目标值
|
||||
+计算方法
|
||||
+适用科室类型
|
||||
+是否一票否决
|
||||
}
|
||||
class IndicatorTemplate {
|
||||
+模板名称
|
||||
+模板编码
|
||||
+模板类型
|
||||
+维度权重
|
||||
+考核周期
|
||||
}
|
||||
class TemplateIndicator {
|
||||
+目标值
|
||||
+权重
|
||||
+评分方法
|
||||
+排序
|
||||
}
|
||||
IndicatorTemplate "1" o-- "many" TemplateIndicator : "包含"
|
||||
TemplateIndicator "many" --> "1" Indicator : "关联"
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [backend/app/models/models.py](file://backend/app/models/models.py#L117-L147)
|
||||
- [backend/app/models/models.py](file://backend/app/models/models.py#L387-L438)
|
||||
- [backend/app/services/indicator_service.py](file://backend/app/services/indicator_service.py#L106-L154)
|
||||
|
||||
章节来源
|
||||
- file://backend/app/models/models.py#L29-L61
|
||||
- file://backend/app/models/models.py#L117-L147
|
||||
- file://backend/app/models/models.py#L387-L438
|
||||
- file://backend/app/services/indicator_service.py#L157-L197
|
||||
|
||||
### 绩效计划管理(从战略到执行)
|
||||
- 功能要点
|
||||
- 支持医院级、科室级、个人级三层计划,明确年度/月度目标、关键举措与责任人。
|
||||
- 提供计划树形结构、统计信息、审批流程与版本管理。
|
||||
- 关键流程
|
||||
- 制定 → 上报 → 审批 → 发布 → 执行 → 跟踪 → 评估 → 调整。
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant Admin as "管理员"
|
||||
participant PlanAPI as "计划API"
|
||||
participant PlanSvc as "计划服务"
|
||||
participant DB as "数据库"
|
||||
Admin->>PlanAPI : 创建/更新/提交计划
|
||||
PlanAPI->>PlanSvc : 调用业务方法
|
||||
PlanSvc->>DB : 写入计划与关联指标
|
||||
DB-->>PlanSvc : 返回结果
|
||||
PlanSvc-->>PlanAPI : 返回响应
|
||||
PlanAPI-->>Admin : 成功/失败提示
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [backend/app/api/v1/performance_plans.py](file://backend/app/api/v1/performance_plans.py#L161-L200)
|
||||
- [backend/app/api/v1/performance_plans.py](file://backend/app/api/v1/performance_plans.py#L98-L158)
|
||||
|
||||
章节来源
|
||||
- file://docs/详细设计.md#L59-L68
|
||||
- file://backend/app/api/v1/performance_plans.py#L21-L96
|
||||
|
||||
### 绩效考核流程(草稿→提交→审核→确认)
|
||||
- 流程节点
|
||||
- 草稿:允许修改与保存。
|
||||
- 已提交:进入审核环节。
|
||||
- 已审核:等待最终确认。
|
||||
- 已确认:流程结束,可进入工资核算。
|
||||
- 关键接口
|
||||
- 列表查询、详情查看、创建、更新、提交、审核、确认、批量创建等。
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> 草稿
|
||||
草稿 --> 已提交 : "提交"
|
||||
已提交 --> 已审核 : "审核通过"
|
||||
已提交 --> 已驳回 : "审核驳回"
|
||||
已审核 --> 已确认 : "确认"
|
||||
已确认 --> [*]
|
||||
已驳回 --> 草稿 : "修改后重新提交"
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [backend/app/models/models.py](file://backend/app/models/models.py#L45-L52)
|
||||
- [backend/app/api/v1/assessments.py](file://backend/app/api/v1/assessments.py#L105-L146)
|
||||
|
||||
章节来源
|
||||
- file://docs/详细设计.md#L111-L121
|
||||
- file://backend/app/api/v1/assessments.py#L20-L166
|
||||
- file://backend/app/services/assessment_service.py#L158-L200
|
||||
|
||||
### 薪酬核算与结果应用
|
||||
- 核算依据
|
||||
- 基于考核结果与绩效系数,结合基本工资、绩效得分、奖惩与补贴等要素,自动生成绩效工资。
|
||||
- 应用联动
|
||||
- 考核结果与职称晋升、评优评先、培训发展、岗位调整等人力资源决策联动。
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Start(["开始"]) --> LoadAssess["加载考核结果"]
|
||||
LoadAssess --> CalcScore["计算绩效得分与加权分"]
|
||||
CalcScore --> FetchRules["读取薪酬规则"]
|
||||
FetchRules --> Compute["计算绩效奖金/扣款"]
|
||||
Compute --> Approve["审批/确认"]
|
||||
Approve --> Publish["发布工资记录"]
|
||||
Publish --> End(["结束"])
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [backend/app/models/models.py](file://backend/app/models/models.py#L205-L231)
|
||||
- [backend/app/services/assessment_service.py](file://backend/app/services/assessment_service.py#L71-L108)
|
||||
|
||||
章节来源
|
||||
- file://docs/详细设计.md#L132-L144
|
||||
- file://backend/app/models/models.py#L205-L231
|
||||
|
||||
### 前端交互与用户体验
|
||||
- 技术栈
|
||||
- Vue 3 + Composition API、Element Plus UI 组件库、Pinia 状态管理、Axios 请求、Vite 构建。
|
||||
- 能力
|
||||
- 登录认证、路由导航、视图组件化、图表展示(ECharts)、国际化与主题样式。
|
||||
|
||||
章节来源
|
||||
- file://frontend/src/main.js#L1-L24
|
||||
- file://frontend/package.json#L11-L26
|
||||
|
||||
## 依赖分析
|
||||
- 后端依赖
|
||||
- FastAPI + Uvicorn:高性能异步 Web 框架与 ASGI 服务器。
|
||||
- SQLAlchemy 2.0(async):异步 ORM,支持 PostgreSQL。
|
||||
- Pydantic v2:数据验证与序列化。
|
||||
- JWT:用户认证与权限控制。
|
||||
- 前端依赖
|
||||
- Vue 3、Element Plus、Pinia、ECharts、Day.js、Axios、Vite。
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
Backend["后端依赖"] --> FastAPI["FastAPI"]
|
||||
Backend --> SQLA["SQLAlchemy 2.0(async)"]
|
||||
Backend --> Postgres["PostgreSQL"]
|
||||
Backend --> JWT["Pydantic/JWT"]
|
||||
Frontend["前端依赖"] --> Vue["Vue 3"]
|
||||
Frontend --> EP["Element Plus"]
|
||||
Frontend --> Pinia["Pinia"]
|
||||
Frontend --> ECharts["ECharts"]
|
||||
Frontend --> Axios["Axios"]
|
||||
Frontend --> Vite["Vite"]
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [docs/index.md](file://docs/index.md#L27-L40)
|
||||
- [backend/app/core/config.py](file://backend/app/core/config.py#L18-L26)
|
||||
- [frontend/package.json](file://frontend/package.json#L11-L26)
|
||||
|
||||
章节来源
|
||||
- file://docs/index.md#L27-L40
|
||||
- file://backend/app/core/config.py#L18-L26
|
||||
- file://frontend/package.json#L11-L26
|
||||
|
||||
## 性能考虑
|
||||
- 异步 I/O 与连接池
|
||||
- 使用异步 SQLAlchemy 与数据库连接池,提升并发与吞吐。
|
||||
- 查询优化
|
||||
- 模型层建立索引(如科室类型、状态、时间范围等),服务层使用分页与条件过滤,避免全表扫描。
|
||||
- 缓存与计算
|
||||
- 对高频指标与统计结果可引入 Redis 缓存,减少重复计算。
|
||||
- 前端性能
|
||||
- 组件懒加载、按需引入 UI 组件、图表按需渲染,降低首屏压力。
|
||||
|
||||
## 故障排查指南
|
||||
- 常见问题定位
|
||||
- API 异常:检查全局异常处理器日志,定位请求 URL、状态码与错误堆栈。
|
||||
- 数据库连接:确认数据库地址、端口、凭据与连接池配置。
|
||||
- 权限与认证:核对 JWT 密钥、过期时间与前端 Token 存储。
|
||||
- 日志与健康检查
|
||||
- 后端提供健康检查接口,前端可访问 API 文档与调试页面。
|
||||
- 查看应用日志与错误日志,定位业务异常与参数校验失败。
|
||||
|
||||
章节来源
|
||||
- file://backend/app/main.py#L58-L76
|
||||
- file://backend/app/core/config.py#L18-L33
|
||||
- file://docs/index.md#L48-L71
|
||||
|
||||
## 结论
|
||||
本系统以平衡计分卡为核心理念,结合指标模板化、计划与考核流程化、薪酬自动化与多维分析,构建了覆盖全院的绩效管理体系。通过前后端分离与现代化技术栈,系统具备良好的可扩展性与工程化能力,能够有效支撑医院的战略落地与持续改进。
|
||||
|
||||
## 附录
|
||||
- 快速启动
|
||||
- 后端:安装依赖、复制环境变量示例、迁移数据库、启动服务。
|
||||
- 前端:安装依赖、启动开发服务器。
|
||||
- 访问地址
|
||||
- 前端:本地开发端口
|
||||
- API 文档:Swagger UI
|
||||
|
||||
章节来源
|
||||
- file://docs/index.md#L41-L71
|
||||
Reference in New Issue
Block a user