基于SSM的医院医疗管理系统的设计与实现

news2025/1/12 17:58:56

项目描述

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

功能需求

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

具备以下功能:

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

系统总体设计

在这里插入图片描述

部分效果图

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

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

数据库设计

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

部分代码
@RequestMapping(value = "/drugsSave.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public 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>(drugs));
		return json.toString();
	}

	@RequestMapping(value = "/drugsFind.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public 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<Drugs> 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<Drugs>>(list), jc);
		return json.toString();
	}

	@RequestMapping(value = "/stockQuery.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public 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<Stock> list = drugsService.stockQuery(drugsCode);
		log.info("库存查询");
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Stock>>(list));
		return json.toString();
	}

	@RequestMapping(value = "/grantAdd.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public 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());
		// 存入发放表grantDrug
		drugsService.grantAdd(grant);
		log.info("医生" + grant.getGrantUserName() + "为患者" + grant.getPatientName() + "发放了" + grant.getDrugName() + ",数量为"
				+ grant.getDrugCount());
		// 减少库存的量
		drugsService.stockUpdate(grant);
		log.info("更新库存");
		JSON json = JSONSerializer.toJSON(new JsonResult<Grant>(grant));
		return json.toString();
	}

	@RequestMapping(value = "/grantQuery.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String grantQuery(@Param("patientId") String patientId) {
		List<Stock> list = drugsService.grantQuery(patientId);
		log.info("患者" + patientId + "查询了用药历史");
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Stock>>(list));
		return json.toString();
	}

	@RequestMapping(value = "/grantDrugsFindByPatienId.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String grantDrugsFindByPatienId(HttpServletRequest request) throws ParseException {
		String patientId = BaseUtils.toString(request.getParameter("patientId"));
		List<grantDrugs> list = grantdrugsService.grantDrugsFindByPatienId(patientId);
		System.out.println("返回结果:" + list);
		JSON json = JSONSerializer.toJSON(new JsonResult<List<grantDrugs>>(list));
		return json.toString();
	}

	@RequestMapping(value = "/DrugWithdrawal.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public 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;
其它软件:截图工具、常用浏览器;
以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【毕业设计】23-基于单片机的自动避障机器人设计(原理图+源代码+仿真+论文+答辩PPT)

【毕业设计】23-基于单片机的自动避障机器人设计&#xff08;原理图源代码仿真论文答辩PPT&#xff09; 文章目录【毕业设计】23-基于单片机的自动避障机器人设计&#xff08;原理图源代码仿真论文答辩PPT&#xff09;任务书设计说明书摘要设计框架架构设计说明书及设计文件源码…

mysql基础知识篇(一)

1. 什么是内连接、外连接、交叉连接、笛卡尔积呢&#xff1f; 内连接&#xff08;inner join&#xff09;&#xff1a;取得两张表中满足存在连接匹配关系的记录。 外连接&#xff08;outer join&#xff09;&#xff1a;不只取得两张表中满足存在连接匹配关系的记录&#xff0…

httplib库的安装以及使用

目录 安装httplib库 认识httplib库 httplib请求类 httplib响应类 httplib中的Server类 httplib的client类 httplib库搭建简单的服务器 httplib库搭建简单的客户端 安装httplib库 1.进入github,搜索httplib库 2.下载库 3.下载完毕将库的压缩包传输到linux系统下 4…

软件测试概念

目录 基础概念 1、软件测试的概念 2、软件测试的目的 3、基本要求 4、测试的工作流程 5、开发模型 1、瀑布模型 2、增量模型 3、快速模型 4、螺旋开发模型 5、迭代开发模型 6、敏捷开发模型 6、测试模型 1、V模型 2、W模型 7、软件测试的分类 1、测试开发的阶…

css设置渐变边框色

如上图所示&#xff0c;需设置渐变边框色&#xff0c;左右边框颜色固定&#xff0c;上边框从左到右开始渐变&#xff0c;下边框从右到左开始渐变。 思考了很久&#xff0c;如果看作是一个div&#xff0c;则需要用到 border-image属性设置渐变色。也可以看作是两个div&#xff0…

PS不能完成命令,因为没有足够内存(RAM)

PS无疑是一款非常好用的图像编辑软件&#xff0c;对于电脑小白来说操作非常困难&#xff0c;比如提示“不能完成命令&#xff0c;因为没有足够内存&#xff08;RAM&#xff09;”要怎么办呢&#xff1f;下面就来看看小编为大家提供的解决办法吧。 一、解决没有足够内存RAM的问题…

c++特殊类

目录 1.实现一个只能在堆上创建对象的类&#xff08;了解思想&#xff09; 2.实现一个只能在栈上创建对象的类&#xff08;同样思想最重要&#xff09; 3.单例模式&#xff08;有实际应用价值&#xff09; 1.实现一个只能在堆上创建对象的类&#xff08;了解思想&#xff09;…

MOAT: ALTERNATING MOBILE CONVOLUTION AND ATTENTION BRINGS STRONG VISION MODELS

MOAT: ALTERNATING MOBILE CONVOLUTION AND ATTENTION BRINGS STRONG VISION MODELS一、引言二、实现细节(一)、MBConv block(二)、Transformer block(三)、Comparing MBConv and Transformer blocks(四)、MOAT block(五)、Macro-level network design三、实验部分(一)、ImageN…

传奇GOM引擎登录器配置教程

登录器教程大分类目录引导说明 &#xff08;01&#xff09;&#xff1a; 解压配置器文件包后&#xff0c;打开KEY文件夹然后选择KEY &#xff08;02&#xff09;&#xff1a; 战盟官方提供5种不同功能KEY&#xff0c;请打开KEY文件夹里面有载图说明功能&#xff0c;选择你需要…

[附源码]Python计算机毕业设计Django打印助手平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

PG::SunsetDecoy

nmap -Pn -p- -T4 --min-rate1000 192.168.133.85 nmap -Pn -p 22,80 -sCV 192.168.133.85 查看80端口的页面&#xff0c;是一个压缩包 下载压缩包后尝试打开&#xff0c;需要密码&#xff0c;所以直接尝试爆破 得到解压密码 manuel 在/etc/shadow中找到了可以利用的地方 …

终于成功把家里的灯光换掉了

这个周末做过最有意义的事情莫过于把家里的客厅和餐厅的两个黄色吊灯都换上白色灯光的了。为什么说最有意义&#xff0c;因为这件事我已经拖了一年多了&#xff0c;这个黄色的灯光我就一直觉得不舒服&#xff0c;想换掉&#xff0c;可是我不会换&#xff0c;也不知道灯要买什么…

内存取证——ABC包

1、获取数据包的镜像信息 2、获取主机名字 3、 列出文件中曾使用的进程信息 题目要求我们去查看管理员的信息 使用命令查找列出有关管理员的信息继续操作(这里发现管理员注册表) 这个文件里存放着管理员的一些基本信息 已发现此的虚拟地址 打开查看 4、获取管理员用户密码

RationalDMIS 2020 轮廓度评价注意事项2021

用偏差算轮廊度值的常用方法 常见的检测设备都使用ISO和美标来评价轮廓,两者有点差异,ISO标准相对美标要更加严格。在评价轮廊度是有只管控形状和管控形状位置两种,用偏差来计算轮廊度的算法不一样。 ASMEY14.5轮廊度计算规律: (1)当最大值和最小值均三0时,轮廓度测定…

报名即将结束!11 大云原生领域开源技术干货一场拿下

距离 12 月 03 日上海站微服务x容器开源开发者 Meetup 活动正式开幕还有不到一周时间&#xff0c;线下席位即将约满。请感兴趣的同学抓紧报名哦&#xff01; 本次活动由阿里云云原生应用平台与飞天 Club 共同打造&#xff0c;整体内容聚焦容器 & 微服务方向。活动将围绕云…

位深度/像素/分辨率/图像大小的计算/帧率/刷新率

有关图像的基本名词解释&#xff1a; 位深度&#xff1a; 在记录数字图像的颜色时&#xff0c;计算机实际上是用每个像素需要的位深度来表示的。黑白二色的图像是数字图像中最简单的一种&#xff0c;它只有黑、白两种颜色&#xff0c;也就是说它的每个像素只有1位颜色&#x…

[附源码]Python计算机毕业设计Django的低碳生活记录网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

MacBook Pro完整卸载及安装激活VMware Fusion13.0.0教程

目录一、MacBook Pro 卸载原有的VMware Fusion二、MacBook Pro下载并安装激活VMware Fusion2.1 下载并安装于Ventura 13.0.1系统2.1.1 下载地址2.1.2 安装2.1.3 激活 VMware Fusion 13.0.0一、MacBook Pro 卸载原有的VMware Fusion 具体操作过程可以详见&#xff1a; mac完整卸…

使用PyTorch实现简单的AlphaZero的算法(3):神经网络架构和自学习

神经网络架构和训练、自学习、棋盘对称性、Playout Cap Randomization&#xff0c;结果可视化 从我们之前的文章中&#xff0c;介绍了蒙特卡洛树搜索 (MCTS) 的工作原理以及如何使用它来获得给定棋盘状态的输出策略。我们也理解神经网络在 MCTS 中的两个主要作用&#xff1b;通…

程序员真的有必要把GC算法好好过一遍,因为它是进大厂必备的

GC算法概述 最早的GC算法可以追溯到20世纪60年代&#xff0c;但到目前为止&#xff0c;GC的基本算法没有太多的创新&#xff0c;可以分为复制算法&#xff08;Copying GC&#xff09;、标记清除&#xff08;MarkSweep GC&#xff09;和标记压缩&#xff08;Mark-Compact GC&am…