jsp+servlet做的医院挂号看诊管理系统

医院管理系统 (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. 患者挂号流程

  1. 患者登录系统
  2. 查看医生列表和科室信息
  3. 选择合适的医生进行预约
  4. 提交预约申请并支付挂号费
  5. 获得预约确认号

2. 医生诊疗流程

  1. 医生登录系统查看预约患者
  2. 接待患者并记录病历
  3. 根据病情开具处方
  4. 确认诊疗记录

3. 药品收费流程

  1. 系统根据处方自动计算药费
  2. 患者确认收费明细
  3. 完成支付和取药

主要技术特点

1. 数据库设计

  • 使用MySQL数据库存储系统数据
  • 采用外键关联建立表间关系
  • 支持事务处理和数据一致性

2. 会话管理

  • 基于HttpSession的用户状态管理
  • 不同角色用户登录状态维护
  • 安全的用户权限控制

3. 页面技术

  • 响应式Web设计,支持多终端访问
  • Bootstrap框架提供美观的界面
  • AJAX技术提升用户体验

4. 系统安全

  • 密码安全存储和验证
  • 用户输入数据验证和过滤
  • 跨站脚本攻击(XSS)防护

安装部署

环境要求

  • JDK 7+
  • Tomcat 9.0+
  • MySQL 8.0+
  • Maven 3.0+

部署步骤

  1. 数据库准备

    • 创建MySQL数据库 hospital
    • 导入相关数据表结构
    • 配置数据库连接参数 (BaseDao.java)
  2. 项目编译

    bash 复制代码
    mvn clean compile package
  3. 部署到Tomcat

    • 将生成的 hospital_group_six.war 文件部署到tomcat的webapps目录
    • 启动Tomcat服务器
  4. 配置修改

    • 修改 BaseDao.java 中的数据库连接配置
    • 确保数据库服务正常运行
  5. 访问系统

    • 管理后台: 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设计的现代化登录界面
  • 响应式设计,适配多种屏幕尺寸

后台管理界面

  • 左侧导航栏,功能模块清晰分类
  • 数据统计图表展示系统概况
  • 表格形式展示各类业务数据

开发计划

已完成功能

  • 用户角色管理和权限控制
  • 医院基础数据管理
  • 患者预约挂号系统
  • 病历和处方管理
  • 收费结算功能
  • 基础统计功能

待优化功能

  • 数据统计分析模块优化
  • 移动端适配优化
  • 系统性能优化
  • 安全性增强
  • 部署文档完善
相关推荐
€8112 小时前
Java入门级教程21——Java 缓存技术、RMI远程方法调用、多线程分割大文件
java·开发语言·java缓存代理模式的实现·java rmi远程方法调用·多线程分割大文件
渣哥2 小时前
Java线程池那些坑:我与线程池的恩怨情仇
java
Dxy12393102162 小时前
Python对图片进行加密,js前端进行解密
前端·javascript·python
hour_go2 小时前
BPEL:企业流程自动化的幕后指挥家
java·运维·自动化
江城开朗的豌豆2 小时前
路由对决:Vue Router vs React Router,谁是你的菜?
前端·javascript·react.js
建群新人小猿2 小时前
客户标签自动管理:标签自动化运营,画像持久保鲜
android·java·大数据·前端·git
Zuckjet_2 小时前
第 5 篇:WebGL 从 2D 到 3D - 坐标系、透视与相机
前端·javascript·3d·webgl
江城开朗的豌豆2 小时前
Redux工作流大揭秘:数据管理的"三重奏"
前端·javascript·react.js
龙茶清欢3 小时前
3、推荐统一使用 ResponseEntity<T> 作为控制器返回类型
java·spring boot·spring cloud