# zuoye **Repository Path**: jackzhangjw/zuoye ## Basic Information - **Project Name**: zuoye - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-18 - **Last Updated**: 2025-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🏥 医院管理系统 一个功能完整的医院管理系统,基于 Python + PyQt5 + MySQL 开发,提供患者管理、预约管理和医疗记录管理功能。 ## ✨ 功能特点 ### 1. 👤 患者管理模块 - ✅ 注册新患者(姓名、性别、年龄、联系方式等) - ✅ 按姓名/电话搜索患者 - ✅ 查看患者详细信息 - ✅ 修改患者信息 - ✅ 删除患者记录(级联删除相关预约和病历) ### 2. 📅 预约管理模块 - ✅ 创建新预约(患者、医生、时间、科室) - ✅ 检查医生可用性(避免时间冲突) - ✅ 按日期/患者/医生查询预约 - ✅ 重新安排预约时间 - ✅ 取消预约 - ✅ 标记预约完成 ### 3. 📋 医疗记录模块 - ✅ 添加就诊病历(症状、诊断、治疗方案、处方) - ✅ 查看患者历史病历 - ✅ 修改病历信息 - ✅ 归档旧病历 - ✅ 按患者搜索病历 ## 🗄️ 数据库设计 ### 数据库表结构 **1. patients (患者表)** ```sql - patient_id (主键) - name (姓名) - gender (性别) - age (年龄) - phone (联系电话) - id_card (身份证号) - address (地址) - emergency_contact (紧急联系人) - emergency_phone (紧急联系电话) - created_at, updated_at (时间戳) ``` **2. doctors (医生表)** ```sql - doctor_id (主键) - name (姓名) - gender (性别) - department (科室) - title (职称) - phone (电话) - email (邮箱) - schedule (排班信息) - created_at (时间戳) ``` **3. appointments (预约表)** ```sql - appointment_id (主键) - patient_id (外键 → patients) - doctor_id (外键 → doctors) - appointment_date (预约日期) - appointment_time (预约时间) - department (科室) - status (状态:已预约/已完成/已取消) - remarks (备注) - created_at, updated_at (时间戳) ``` **4. medical_records (医疗记录表)** ```sql - record_id (主键) - patient_id (外键 → patients) - doctor_id (外键 → doctors) - appointment_id (外键 → appointments,可选) - visit_date (就诊日期) - symptoms (症状) - diagnosis (诊断) - treatment (治疗方案) - prescription (处方) - notes (备注) - status (状态:正常/已归档) - created_at, updated_at (时间戳) ``` ## 🚀 安装和运行 ### 1. 环境要求 - Python 3.7+ - MySQL 5.7+ 或 MariaDB - Windows / Linux / macOS ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` 或者手动安装: ```bash pip install PyQt5==5.15.9 pip install pymysql==1.1.0 ``` ### 3. 配置数据库 #### 启动 MySQL 服务 **Windows:** ```bash net start MySQL ``` **Linux/macOS:** ```bash sudo systemctl start mysql # 或 sudo service mysql start ``` #### 创建数据库 登录 MySQL: ```bash mysql -u root -p ``` 创建数据库: ```sql CREATE DATABASE `yiyuan-manage` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` #### 配置数据库连接 编辑 `database.py` 文件,修改数据库连接参数(如果需要): ```python def __init__(self, host='localhost', user='root', password='123456', database='yiyuan-manage', port=3306): ``` ### 4. 运行系统 ```bash python main.py ``` ### 5. 登录系统 **演示账号:** - 用户名:`admin` - 密码:`123456` ## 📦 项目结构 ``` pyqt5项目/ ├── main.py # 主程序入口 ├── login.py # 登录模块 ├── database.py # 数据库连接和操作 ├── patient_manager.py # 患者管理模块 ├── appointment_manager.py # 预约管理模块 ├── medical_record_manager.py # 医疗记录管理模块 ├── requirements.txt # 依赖包列表 ├── README.md # 项目说明文档 └── .gitignore # Git 忽略文件 ``` ## 🎨 界面设计 系统采用简洁现代的设计风格: - **配色方案:** - 患者管理:绿色主题 (#4CAF50) - 预约管理:蓝色主题 (#2196F3) - 医疗记录:橙色主题 (#FF9800) - **UI 特点:** - 清爽的白色背景 - 圆角边框设计 - 悬停效果 - 表格行交替颜色 - 状态颜色标识 ## 🔧 使用说明 ### 患者管理 1. **添加患者:** 点击"➕ 添加患者"按钮,填写患者信息 2. **搜索患者:** 在搜索框输入姓名或电话,点击"搜索" 3. **编辑患者:** 选择患者记录,点击"✏️ 编辑患者" 4. **删除患者:** 选择患者记录,点击"🗑️ 删除患者"(会级联删除相关预约和病历) ### 预约管理 1. **创建预约:** 点击"➕ 创建预约",选择患者、医生和时间 2. **搜索预约:** 输入患者或医生姓名搜索 3. **按日期筛选:** 选择日期,点击"按日期筛选" 4. **编辑预约:** 选择预约记录,点击"✏️ 编辑预约" 5. **取消预约:** 选择预约记录,点击"❌ 取消预约" 6. **标记完成:** 选择预约记录,点击"✅ 标记完成" ### 医疗记录 1. **添加病历:** 点击"➕ 添加病历",填写诊断信息 2. **搜索病历:** 输入患者姓名搜索 3. **查看详情:** 选择病历记录,点击"👁️ 查看详情" 4. **编辑病历:** 选择病历记录,点击"✏️ 编辑病历" 5. **归档病历:** 选择病历记录,点击"📦 归档病历" 6. **显示归档:** 勾选"显示归档"按钮查看已归档的病历 ## 🔐 安全特性 - ✅ 用户登录验证 - ✅ SQL注入防护(使用参数化查询) - ✅ 级联删除保护(删除患者时提示警告) - ✅ 唯一性约束(防止重复预约) - ✅ 外键约束(确保数据完整性) ## 📊 数据库特性 - ✅ 自动创建表结构 - ✅ 自动插入示例医生数据 - ✅ 级联删除(患者删除时自动删除相关记录) - ✅ 唯一性约束(医生同一时间不能有多个预约) - ✅ 索引优化(提升查询性能) ## 🐛 常见问题 ### 1. 无法连接数据库 **解决方法:** - 检查 MySQL 服务是否启动 - 确认数据库名称是否正确:`yiyuan-manage` - 检查用户名和密码:默认 `root/123456` - 确认端口号:默认 `3306` ### 2. 导入错误 **解决方法:** ```bash pip install --upgrade PyQt5 pymysql ``` ### 3. 数据库表不存在 **解决方法:** - 程序会自动创建表结构 - 如果失败,请手动执行 `database.py` 中的建表语句 ## 🔮 后续扩展 - [ ] 用户权限管理(管理员/医生/前台) - [ ] 数据导出功能(Excel/PDF) - [ ] 统计报表功能 - [ ] 费用管理模块 - [ ] 药品库存管理 - [ ] 消息提醒功能 - [ ] 数据备份和恢复 - [ ] 日志记录功能 ## 📝 开发说明 ### 代码规范 - 遵循 PEP 8 编码规范 - 使用类型注释 - 详细的函数文档字符串 - 清晰的变量命名 ### 数据库操作 - 使用上下文管理器确保事务安全 - 参数化查询防止SQL注入 - 异常处理和错误提示 ## 📄 许可证 MIT License ## 👥 贡献 欢迎提交 Issue 和 Pull Request! ## 📧 联系方式 如有问题或建议,请通过以下方式联系: - Gitee: https://gitee.com/jackZhangjw/zuoye - Email: 在Issue中提问 --- **开发时间:** 2024年 **技术栈:** Python 3.x | PyQt5 | MySQL | pymysql