基于SSM的医院医疗管理系统的设计与实现
创始人
2024-02-28 04:33:07
0

项目描述

临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基于SSM的医院医疗管理系统的设计与实现。

功能需求

通过分析和了解了目前社会医疗体系的整体状况和存在的问题,为了提高人们医疗救护效率,解决看病困难和医院的规范化管理问题,本文设计了医院医疗管理系统,该系统充分运用MIS(Management Information System,MIS)的总体思想[5],综合应用了JSP、HTML、MYSQL等技术,从整体设计软件结构,按业务划分系统模块菜单和用户角色以及各个模块之间的关系,从抽象的层面去理解和分析系统的目的和实现的价值并设计出模块功能和具体代码实现的思路方法,在这过程中充分地考虑到系统的开发成本以及后期系统维护和二次开发的便捷,注重系统的实用性和质量,达到医疗的高要求、高标准,实现了医院对药品、用户、病人体征数据等信息的在线管理等功能。

具备以下功能:

本医疗系统通过分析和确定系统的角色和功能划分,按照业务合理区分为不同的菜单功能模块。从求医患者和医院相关管理人员的角度出发,对每个功能的需求实现点进行人性化详细的构思,对每个功能的细节点进行分析设计整合完成整个医疗系统的设计[9]。
系统患者用户功能模块:即登录功能、结算中心、护理中心、修改密码、退出系统。
医生功能模块:药品发放管理、病人管理、护理中心模块、出入院管理及个人信息修改等。
医院前台功能模块:出入院管理、结算中心、药品管理、统计中心、修改信息等。
系统管理员功能模块:病人挂号入院、病房管理、结算中心、统计管理、药品管理、用户管理、医务人员管理以及系统配置等。

系统总体设计

在这里插入图片描述

部分效果图

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

数据库设计

系统中用到了21张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示
用户数据表
在这里插入图片描述
病房数据表
在这里插入图片描述
缴费信息表
在这里插入图片描述患者信息数据表
在这里插入图片描述药品信息数据表
在这里插入图片描述

部分代码
@RequestMapping(value = "/drugsSave.do", produces = "application/json;charset=utf-8")@ResponseBodypublic String drugsSave(HttpServletRequest request) throws ParseException {Drugs drugs = new Drugs();String drugsId = request.getParameter("drugsId");drugs.setDrugsid(drugsId);String name = request.getParameter("drugsName");drugs.setName(name);String creatTime = request.getParameter("inTime");drugs.setCreateTime(BaseUtils.toDate(creatTime));String manufacturer = request.getParameter("manufacturer");drugs.setManufacturer(manufacturer);Integer addNum = Integer.parseInt(request.getParameter("num"));drugs.setAddNum(addNum);Float price = Float.parseFloat(request.getParameter("price"));drugs.setPrice(price);String productionTime = request.getParameter("productionTime");drugs.setProduction_time(BaseUtils.toDate(productionTime));String supply = request.getParameter("supply");drugs.setSupply(supply);// 判断是否有空String years = request.getParameter("year");String days = request.getParameter("day");String mouths = request.getParameter("mouth");drugs.setValidityYear(BaseUtils.toIntegers(years));drugs.setValidityDay(BaseUtils.toIntegers(days));drugs.setValidityMouth(BaseUtils.toIntegers(mouths));// 根据保质期的年 月 日来计算出准确的到期日// 计算天数Integer addDays = drugs.getValidityYear() * 365 + drugs.getValidityMouth() * 30 + drugs.getValidityDay();// 得到到期日Date newDate = BaseUtils.toAddDate(drugs.getProduction_time(), addDays);drugs.setVilidityTime(newDate);// 执行增加操作drugsService.DrugsSave(drugs);// 增加其库存数量,判断库存中是否有这种药品Integer state = drugsService.drugsStockQueryById(drugs.getDrugsid());if (state == 1) {// 执行更新drugsService.drugsStockAdd(drugs);} else if (state == 0) {// 执行插入drugsService.drugsStockSave(drugs);log.info("药品" + drugs.getName() + "入库");}JSON json = JSONSerializer.toJSON(new JsonResult(drugs));return json.toString();}@RequestMapping(value = "/drugsFind.do", produces = "application/json;charset=utf-8")@ResponseBodypublic String drugsFind(HttpServletRequest request) throws ParseException {DrugsCode drugsCode = new DrugsCode();String id = BaseUtils.toString(request.getParameter("drugsId"));String name = BaseUtils.toString(request.getParameter("drugsName"));if (!(id == null || "".equals(id))) {drugsCode.setId(id);}if (!(name == null || "".equals(name))) {drugsCode.setName(name);}drugsCode.setRkStart(BaseUtils.toDate(request.getParameter("rkStartTime")));drugsCode.setRkEnd(BaseUtils.toDate(request.getParameter("rkEndTime")));drugsCode.setBzStart(BaseUtils.toDate(request.getParameter("bzStartTime")));drugsCode.setBzEnd(BaseUtils.toDate(request.getParameter("bzEndTime")));List list = drugsService.drugsFind(drugsCode);log.info("药品查询");JsonConfig jc = new JsonConfig();jc.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor("yyyy-MM-dd"));JSON json = JSONSerializer.toJSON(new JsonResult>(list), jc);return json.toString();}@RequestMapping(value = "/stockQuery.do", produces = "application/json;charset=utf-8")@ResponseBodypublic String stockQuery(HttpServletRequest request) {String drugId = BaseUtils.toString(request.getParameter("drugsId"));String name = BaseUtils.toString(request.getParameter("drugsName"));DrugsCode drugsCode = new DrugsCode();drugsCode.setId(drugId);drugsCode.setName(name);List list = drugsService.stockQuery(drugsCode);log.info("库存查询");JSON json = JSONSerializer.toJSON(new JsonResult>(list));return json.toString();}@RequestMapping(value = "/grantAdd.do", produces = "application/json;charset=utf-8")@ResponseBodypublic String grantAdd(HttpServletRequest request) throws UnsupportedEncodingException {Grant grant = new Grant();grant.setDrugId(BaseUtils.toString(request.getParameter("drugsId")));grant.setDrugName(BaseUtils.toString(request.getParameter("drugsName")));grant.setDrugPrice(BaseUtils.toFloat(request.getParameter("price")));grant.setDrugCount(BaseUtils.toInteger(request.getParameter("num")));grant.setPatientId(BaseUtils.toString(request.getParameter("patientId")));grant.setPatientName(BaseUtils.toString(request.getParameter("patientName")));grant.setGrantUserId(BaseUtils.getUser(request).getId());grant.setGrantUserName(BaseUtils.getUser(request).getName());// 存入发放表grantDrugdrugsService.grantAdd(grant);log.info("医生" + grant.getGrantUserName() + "为患者" + grant.getPatientName() + "发放了" + grant.getDrugName() + ",数量为"+ grant.getDrugCount());// 减少库存的量drugsService.stockUpdate(grant);log.info("更新库存");JSON json = JSONSerializer.toJSON(new JsonResult(grant));return json.toString();}@RequestMapping(value = "/grantQuery.do", produces = "application/json;charset=utf-8")@ResponseBodypublic String grantQuery(@Param("patientId") String patientId) {List list = drugsService.grantQuery(patientId);log.info("患者" + patientId + "查询了用药历史");JSON json = JSONSerializer.toJSON(new JsonResult>(list));return json.toString();}@RequestMapping(value = "/grantDrugsFindByPatienId.do", produces = "application/json;charset=utf-8")@ResponseBodypublic String grantDrugsFindByPatienId(HttpServletRequest request) throws ParseException {String patientId = BaseUtils.toString(request.getParameter("patientId"));List list = grantdrugsService.grantDrugsFindByPatienId(patientId);System.out.println("返回结果:" + list);JSON json = JSONSerializer.toJSON(new JsonResult>(list));return json.toString();}@RequestMapping(value = "/DrugWithdrawal.do", produces = "application/json;charset=utf-8")@ResponseBodypublic void DrugWithdrawal(@Param("patientId") String patientId, @Param("patientName") String patientName,@Param("count") Integer count, @Param("drugsId") String drugsId, @Param("reason") String reason,HttpServletRequest request) {WithdrawalDrug withdrawalDrug = new WithdrawalDrug();withdrawalDrug.setPatientId(patientId);withdrawalDrug.setPatientName(patientName);withdrawalDrug.setCount(count);withdrawalDrug.setReason(reason);withdrawalDrug.setDrugsId(drugsId);String userId = null;String userName = null;try {userId = BaseUtils.getUser(request).getId();userName = BaseUtils.getUser(request).getName();} catch (UnsupportedEncodingException e) {e.printStackTrace();}withdrawalDrug.setUserId(userId);withdrawalDrug.setUserName(userName);// 存入退药表中drugsService.DrugWithdrawal(withdrawalDrug);// 增加库存Grant grant = new Grant();grant.setDrugId(drugsId);grant.setDrugCount(-count);drugsService.stockUpdate(grant);}
安装部署需求

eclipse、idea运行启动

系统部署

系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
在IDEA中编辑进行打包;
下载并配置Tomcat8.0服务器,配置系统服务,上传项目打包文件

本项目用到的技术和框架

1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL
4.框架:jsp+SSM

本项目中的关键点

此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

环境工具

开发工具 Eclipse/IDEA
语言 JDK1.8 、jsp、CSS、SSM
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;
以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...