医院管理系统 (Hospital Management System)
项目简介
这是一个基于Java Web技术的医院管理系统,采用传统的MVC架构模式,实现了医院内部多角色用户管理、患者挂号、医生诊疗、药品管理、收费等功能。系统支持管理员、医生、患者三种角色的权限管理。
技术栈
- 后端框架: Java Servlet + JSP
- 数据库: MySQL 8.0
- 架构模式: MVC (Model-View-Controller)
- 前端技术: Bootstrap 3.3.7 + jQuery + HTML/CSS/JavaScript
- 服务器: Tomcat 9.0
- 开发工具: Maven
- Java版本: JDK 7
系统功能模块
1. 用户管理模块
- 管理员管理: 系统管理员的增删改查功能
- 医生管理: 医生信息的完整管理,包括医生档案、职称级别、所属科室
- 患者管理: 患者注册、信息维护、就诊记录管理
2. 医院基础数据管理
- 科室管理 (Room): 医院的科室信息管理
- 级别管理 (Level): 医生的职称级别和挂号费用管理
- 药房管理 (Chemit): 药房基础信息维护
- 药品管理 (Drug): 药品信息、价格、库存管理
3. 预约挂号系统
- 预约管理 (Reserve): 患者在线预约挂号功能
- 医生排班: 医生工作时间安排
- 挂号费用计算: 根据医生级别自动计算挂号费
4. 诊疗管理系统
- 病历管理 (History): 患者就诊病历记录
- 处方开具 (Bill): 医生开具处方单功能
- 就诊记录 (Record): 患者就诊流程记录
5. 收费管理系统
- 药单收费 (Bill): 处方药品费用计算和收取
- 挂号费收取 (Rpay): 挂号费用结算
- 费用统计: 医院收入统计和分析
数据库设计
主要数据表结构
用户相关表
user
: 管理员用户表 (uid, uname, pwd, cardid, udesc, uflag)doctor
: 医生信息表 (doctorId, doctorName, doctorPwd, doctorSex, doctorAge, doctorSal, doctorFlag, doctorDesc, level, room)patient
: 患者信息表 (patientId, patientName, patientPwd, patientSex, patientAge, patientIdcard, patientPhone, patientFlag)
医院基础信息表
room
: 科室表 (rid, rname, rplace, rflag)level
: 医生级别表 (lid, lname, lmoney, lflag, lcount)chemit
: 药房表 (chemitId, chemitName, chemitDesc, chemitFlag)drug
: 药品表 (drugId, drugName, drugSellers, drugMoney, drugType, drugDesc, drugFlag)
业务数据表
reserve
: 预约表 (rid, rtime, patientid, doctorid)history
: 病历表 (historyId, historyTime, historyDesc, patient, doctor, historyFlag)bill
: 处方单表 (billId, billNum, billCount, billTime, billDesc, billMoney, patient, doctor, drug, billFlag)record
: 就诊记录表 (recordId, recordTime, patient, doctor)rpay
: 挂号费表 (rpayId, rpayMoney, rpayTime, reserve)bpay
: 药费表 (bpayId, bpayMoney, bpayTime, bill, bpayFlag)
系统架构
目录结构
bash
src/
├── main/
│ ├── java/com/ambow/
│ │ ├── dao/ # 数据访问层
│ │ │ ├── BaseDao.java # 数据库连接基类
│ │ │ ├── DoctorDao.java # 医生数据访问
│ │ │ ├── PatientDao.java # 患者数据访问
│ │ │ └── ...
│ │ ├── model/ # 实体模型层
│ │ │ ├── Doctor.java # 医生实体类
│ │ │ ├── Patient.java # 患者实体类
│ │ │ ├── Bill.java # 处方单实体类
│ │ │ └── ...
│ │ ├── service/ # 业务逻辑层
│ │ │ ├── DoctorService.java # 医生业务逻辑
│ │ │ ├── PatientService.java # 患者业务逻辑
│ │ │ └── ...
│ │ └── servlet/ # 控制层
│ │ ├── DoctorServlet.java # 医生相关请求处理
│ │ ├── PatientServlet.java # 患者相关请求处理
│ │ └── ...
│ └── webapp/ # Web资源目录
│ ├── WEB-INF/
│ │ └── web.xml # Web应用配置
│ ├── *.jsp # JSP页面
│ ├── css/ # 样式文件
│ ├── js/ # JavaScript文件
│ └── images/ # 图片资源
MVC架构说明
- Model (模型层) :
model/dao/service
包,负责数据操作和业务逻辑 - View (视图层): JSP页面,负责用户界面展示
- Controller (控制层): Servlet类,负责请求处理和页面跳转
用户角色与权限
1. 系统管理员 (Admin)
- 登录页面 :
loginUser.html
- 主界面 :
index.jsp
- 主要功能 :
- 医院基础数据管理 (医生、科室、药品、药房)
- 患者信息管理
- 管理员账户管理
- 系统数据统计
2. 医生 (Doctor)
- 登录页面 :
loginDoctor.html
- 主界面 :
indexDoctor.jsp
- 主要功能 :
- 患者预约查询和安排
- 病历记录管理
- 处方开具
- 个人信息维护
3. 患者 (Patient)
- 登录页面 :
loginPatient.html
- 主界面 :
indexPatient.jsp
- 功能特点 :
- 在线注册和登录
- 医生预约挂号
- 病历和药单查看
- 个人就诊记录查询
核心业务流程
1. 患者挂号流程
- 患者登录系统
- 查看医生列表和科室信息
- 选择合适的医生进行预约
- 提交预约申请并支付挂号费
- 获得预约确认号
2. 医生诊疗流程
- 医生登录系统查看预约患者
- 接待患者并记录病历
- 根据病情开具处方
- 确认诊疗记录
3. 药品收费流程
- 系统根据处方自动计算药费
- 患者确认收费明细
- 完成支付和取药
主要技术特点
1. 数据库设计
- 使用MySQL数据库存储系统数据
- 采用外键关联建立表间关系
- 支持事务处理和数据一致性
2. 会话管理
- 基于HttpSession的用户状态管理
- 不同角色用户登录状态维护
- 安全的用户权限控制
3. 页面技术
- 响应式Web设计,支持多终端访问
- Bootstrap框架提供美观的界面
- AJAX技术提升用户体验
4. 系统安全
- 密码安全存储和验证
- 用户输入数据验证和过滤
- 跨站脚本攻击(XSS)防护
安装部署
环境要求
- JDK 7+
- Tomcat 9.0+
- MySQL 8.0+
- Maven 3.0+
部署步骤
-
数据库准备
- 创建MySQL数据库
hospital
- 导入相关数据表结构
- 配置数据库连接参数 (BaseDao.java)
- 创建MySQL数据库
-
项目编译
bashmvn clean compile package
-
部署到Tomcat
- 将生成的
hospital_group_six.war
文件部署到tomcat的webapps目录 - 启动Tomcat服务器
- 将生成的
-
配置修改
- 修改
BaseDao.java
中的数据库连接配置 - 确保数据库服务正常运行
- 修改
-
访问系统
- 管理后台:
http://localhost:8080/hospital_group_six/index.jsp
- 医生端:
http://localhost:8080/hospital_group_six/loginDoctor.html
- 患者端:
http://localhost:8080/hospital_group_six/loginPatient.html
- 管理后台:
系统截图
登录界面
- 支持三种角色的分别登录入口
- 使用Bootstrap设计的现代化登录界面
- 响应式设计,适配多种屏幕尺寸
后台管理界面
- 左侧导航栏,功能模块清晰分类
- 数据统计图表展示系统概况
- 表格形式展示各类业务数据
开发计划
已完成功能
- 用户角色管理和权限控制
- 医院基础数据管理
- 患者预约挂号系统
- 病历和处方管理
- 收费结算功能
- 基础统计功能
待优化功能
- 数据统计分析模块优化
- 移动端适配优化
- 系统性能优化
- 安全性增强
- 部署文档完善























