479482e10c7ad214aa5f6e55828ee239d0da53e3
医院绩效考核管理系统
一个为县级中医院设计的绩效考核管理系统,支持科室管理、员工管理、考核指标管理、绩效考核流程、数据分析报表和绩效工资核算。
技术栈
后端
- FastAPI - 高性能异步 Web 框架
- SQLAlchemy 2.0 - 异步 ORM
- PostgreSQL - 数据库(端口:15432)
- Alembic - 数据库迁移
- Pydantic v2 - 数据验证
- asyncpg - PostgreSQL 异步驱动
前端
- Vue 3 - 渐进式 JavaScript 框架(Composition API)
- Element Plus - UI 组件库
- Pinia - 状态管理
- ECharts - 图表库
- Vite - 构建工具
项目结构
hospital-performance/
├── backend/ # 后端服务
│ ├── app/
│ │ ├── core/ # 核心配置
│ │ ├── models/ # 数据模型
│ │ ├── schemas/ # Pydantic模式
│ │ ├── api/ # API路由
│ │ ├── services/ # 业务逻辑
│ │ └── utils/ # 工具函数
│ ├── alembic/ # 数据库迁移
│ └── requirements.txt
├── frontend/ # 前端应用
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ ├── components/ # 通用组件
│ │ ├── api/ # API调用
│ │ ├── stores/ # 状态管理
│ │ └── router/ # 路由配置
│ └── package.json
└── README.md
功能模块
graph TD
A[医院绩效考核系统] --> B[基础数据管理]
A --> C[绩效考核流程]
A --> D[数据分析报表]
A --> E[绩效工资核算]
B --> B1[科室管理]
B --> B2[员工管理]
B --> B3[考核指标库]
B --> B4[模板管理]
C --> C1[考核计划]
C --> C2[指标分配]
C --> C3[考核提交]
C --> C4[多级审核]
C --> C5[批量考核]
D --> D1[科室统计]
D --> D2[员工排名]
D --> D3[趋势分析]
D --> D4[分布分析]
E --> E1[自动计算]
E --> E2[公式配置]
E --> E3[批量生成]
E --> E4[发放确认]
1. 基础数据管理
- 科室信息管理(支持树形结构,含临床、医技、行政等类别)
- 员工信息管理(工号、岗位、职称、入职时间等)
- 考核指标管理(KPI 指标库、平衡计分卡维度)
- 模板管理(考核表模板、指标分配方案)
2. 绩效考核流程
- 考核计划制定(月度、季度、年度)
- 考核记录创建与编辑
- 考核提交与多级审核流程
- 批量创建考核
- 绩效反馈与申诉
3. 数据分析报表
- 科室绩效统计(工作量、质量、满意度等)
- 员工绩效排名与分析
- 趋势分析图表(同比、环比)
- 绩效分布分析(按科室、岗位、职称)
- 平衡计分卡四维分析
4. 绩效工资核算
- 根据考核结果自动计算工资
- 绩效工资公式配置
- 批量生成工资记录
- 工资确认与发放
- 工资条导出
快速开始
环境要求
- Python 3.10+
- Node.js 18+
- PostgreSQL 14+
后端启动
# 进入后端目录
cd backend
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# Windows PowerShell
.\venv\Scripts\Activate.ps1
# 或 CMD
venv\Scripts\activate.bat
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件配置数据库连接(默认使用 PostgreSQL:15432)
# 运行数据库迁移
alembic upgrade head
# 初始化测试数据(可选)
python init_db.py
# 启动服务
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
前端启动
# 进入前端目录
cd frontend
# 安装依赖
npm install
# 启动开发服务器(自动代理到后端 http://localhost:8000)
npm run dev
# 构建生产版本
npm run build
# 预览生产构建
npm run preview
访问系统
- 前端地址: http://localhost:5173
- API文档: http://localhost:8000/api/v1/docs
API文档
启动后端服务后,访问以下地址查看API文档:
- Swagger UI: http://localhost:8000/api/v1/docs
- ReDoc: http://localhost:8000/api/v1/redoc
默认账号
- 用户名: admin
- 密码: admin123
数据库设计
主要表结构
departments- 科室信息表(含树形结构支持)staff- 员工信息表(关联科室、岗位、职称)indicators- 考核指标表(KPI、平衡计分卡维度)indicator_templates- 指标模板表assessments- 考核记录表assessment_details- 考核明细表(多维度评分)performance_plans- 绩效计划表salary_records- 工资核算表users- 系统用户表menus- 菜单权限表
核心业务模型
- DeptType: 科室类型枚举(临床手术/非手术、医技、行政等)
- BSCDimension: 平衡计分卡四维度(财务、客户、内部流程、学习成长)
- IndicatorType: 指标类型(数量、质量、成本、满意度等)
项目截图
更多截图请查看 docs/screenshots 目录
开发规范
代码风格
- 后端: Python PEP 8,使用 type hints
- 前端: ESLint + Prettier(待配置)
- Git: 遵循 conventional commits 规范
分支管理
main: 主分支,仅接受合并请求develop: 开发分支(待创建)feature/*: 功能分支
提交规范
feat: 新功能
fix: 修复 bug
docs: 文档更新
style: 代码格式调整
refactor: 重构
test: 测试相关
chore: 构建/工具链相关
性能优化
-
数据库层面
- 合理的索引设计
- 连接池配置(asyncpg)
- 异步查询
- 批量操作优化
-
应用层面
- FastAPI 异步 IO 处理
- 分页查询
- 响应缓存策略
- 后台任务队列(待实现)
-
前端层面
- 路由懒加载
- 组件按需加载
- ECharts 图表数据缓存
- API 请求防抖
可维护性设计
-
代码规范
- 模块化设计(按业务领域划分)
- 分层架构(API -> Service -> Model)
- 类型注解(Python type hints)
- 统一的错误处理
-
文档完善
- API 自动文档(Swagger/OpenAPI)
- 代码注释(Google Style)
- README 文档
- 开发者指南(docs/目录)
-
测试覆盖
- 单元测试(pytest)
- 集成测试
- API 测试
- E2E 测试(待实现)
常见问题
Q: 数据库连接失败?
A: 检查 PostgreSQL 是否运行在 15432 端口,确认 .env 文件中 DATABASE_URL 配置正确。
Q: 前端无法访问后端 API?
A: Vite 开发服务器已配置代理,确保后端运行在 http://localhost:8000。
Q: 如何重置数据库?
A: 删除所有表后重新运行 alembic upgrade head,或使用 backend/create_database.py 脚本。
贡献指南
欢迎提交 Issue 和 Pull Request!
License
MIT
Description
Languages
Python
69.8%
Vue
23.1%
Shell
3.5%
JavaScript
2.6%
HTML
0.6%
Other
0.4%









