# 项目概述 **本文引用的文件** - [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) ## 目录 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["前端应用
Vue 3 + Element Plus"] --> API["后端API
FastAPI + Uvicorn"] API --> DB["数据库
PostgreSQL 14+"] API --> AUTH["认证与安全
JWT + 权限控制"] API --> SVC["业务服务层
异步服务封装"] SVC --> MODELS["数据模型
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