基于JAVA的住院管理系统springboot.VUE--源码论文

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

⚠️文末联系方式获取完整资料⚠️

 

第4章 系统设计

用流程图和图片的方法直观的展示出系统的整体结构和流程的设计思路,并详细阐述出系统功能模块。数据库的构造是使用E-R图画出各个实体之间的关系,并确定各个数据表之间的关系。

4.1 系统功能模块设计

4.1.1 登录模块设计

住院管理系统根据不同的权限可划分为不同的角色,分别是管理员、用户、医生和财务。该系统已存在的用户,在登录系统时需要填写相应的账户信息,登录时应注意输入的账户密码,角色也要在登录时进行选择,登陆成功后会根据不同角色进入相对应的页面。

页面主要包含用户名和密码,都是必填项。如果某项为空并点击登录按钮,会提示请输入为空的项[13]。系统主要分为四个角色进行登录,通过不要通的角色选择输入不同的账号密码,输入正确则登陆成功,如果登录的用户名和角色与数据库内的数据不匹配则报错。

这个模块处理用户的登录请求,请求后会调用特定的方法,通过处理登录信息来实现登录业务。系统会将获取到的请求下发到逻辑层,逻辑层将数据封装成相应对象,然后调用响应层获取结果并将信息返回给页面[14]。

4.1.2 管理员管理模块设计

管理员是用户管理模块中权限最高的,管理员可以对用户信息进行操作、可以随意的添加用户信息、可以及时的更新用户信息、也可以直接新增用户和删除用户。

4.1.3 用户模块设计

用户功能模块由个人中心、入院登记管理、预交金额管理、每日清单管理、出院手续管理、出院结算管理等功能组成。能对自己的个人信息和密码进行修改,修改前需要先成功登录本系统。

4.1.4 医生模块设计

医生功能模块由个人中心、药品信息管理、检查项目管理、检验项目管理、床位信息管理、入院登记管理、每日清单管理、出院手续管理等功能组成。能对自己的个人信息和密码进行修改,修改前需要先成功登录本系统。

4.1.5 财务模块设计

财务功能模块由个人中心、入院登记管理、预交金额管理、每日清单管理、出院手续管理、出院结算管理等功能组成。能对自己的个人信息和密码进行修改,修改前需要先成功登录本系统。

4.2 系统总体设计

能够登录本系统的一共有四种角色,分别是管理员、用户、医生和财务。登录系统后,不同的角色可以对系统进行不同的操作,管理员拥有最大的权限。系统总体结构如图4-1所示。

图4-1系统总体结构图

4.3 数据库设计

该系统使用免费开源的MySQL数据库,这是一个功能齐全的关系数据库管理系统。系统使用Navicat管理数据库。系统数据库统一使用UTF-8,避免了中文的乱码问题。MYSQL数据库一直以来都是被广泛应用的存在,它能为系统带来简洁的SQL书写以及良好的存储环境,它对分库分区有很大的帮助以减轻单表数据太多带来的压力。根据系统的实体,分析数据库之间的关系,总结出E-R图如所示:

床位信息实体属性图如下所示:

图4-2床位信息实体属性图

药品信息实体属性图如下所示:

图4-3药品信息实体属性图

检查项目实体属性图如下所示:

图4-4检查项目实体属性图

检验项目实体属性图如下所示:

图4-5检验项目实体属性图

住院的管理中的数据由多个表组成,每个表都有对应的字段,操作该系统时,使用到的功能需要进行数据存储,这时数据将会在表中相应的字段里更新内容,并进行保存。该管理系统中共包含的表具体如下:

表名4-1:每日清单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

shenfenzheng

varchar

200

身份证

shouji

varchar

200

xingbie

varchar

200

性别

nianling

varchar

200

shebaoka

varchar

200

zhuyuanbianhao

varchar

200

住院编号

bingfanghao

varchar

200

病房号

chuangweihao

varchar

200

yishengzhanghao

varchar

200

yishengxingming

varchar

200

医生姓名

zhibanhushi

varchar

200

shiyongyaopin

varchar

200

yiliaoxiangmu

varchar

200

jianchabaogao

varchar

200

baogaoriqi

date

meiriqingdan

varchar

200

beizhu

varchar

200

caiwuzhanghao

varchar

200

caiwuxingming

varchar

200

表名4-2:检验项目

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xiangmubianhao

varchar

200

xiangmumingcheng

varchar

200

项目名称

xiangmuleixing

varchar

200

项目类型

xiangmutupian

varchar

200

项目图片

feiyong

int

费用

zhuyishixiang

varchar

200

注意事项

xiangmuxiangqing

longtext

4294967295

项目详情

表名4-3:检查项目

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xiangmubianhao

varchar

200

xiangmumingcheng

varchar

200

项目名称

xiangmuleixing

varchar

200

项目类型

xiangmutupian

varchar

200

项目图片

feiyong

int

费用

zhuyishixiang

varchar

200

注意事项

xiangmuxiangqing

longtext

4294967295

项目详情

表名4-4:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表名4-5:出院手续

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhuyuanbianhao

varchar

200

住院编号

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

shenfenzheng

varchar

200

身份证

shouji

varchar

200

xingbie

varchar

200

性别

nianling

varchar

200

shebaoka

varchar

200

bingfanghao

varchar

200

病房号

chuangweihao

varchar

200

yishengzhanghao

varchar

200

yishengxingming

varchar

200

医生姓名

chuyuanshijian

date

出院时间

chuyuanyuanyin

longtext

4294967295

出院原因

beizhu

varchar

200

yizhu

varchar

200

chuyuanyaopin

longtext

4294967295

fuyongshuoming

longtext

4294967295

表名4-6:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhanghao

varchar

200

账号

mima

varchar

200

密码

xingming

varchar

200

姓名

nianling

int

年龄

xingbie

varchar

200

性别

shouji

varchar

200

手机

touxiang

varchar

200

头像

shenfenzheng

varchar

200

shebaoka

int

表名4-7:出院结算

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

shouji

varchar

200

nianling

varchar

200

shenfenzheng

varchar

200

shebaoka

varchar

200

zhuyuanbianhao

varchar

200

住院编号

bingfanghao

varchar

200

chuangweihao

varchar

200

床位号

jianchafeiyong

float

检查费用

yaopinfeiyong

float

药品费用

zhuyuanfeiyong

float

住院费用

zongji

int

总计

chuyuanriqi

date

出院日期

caiwuzhanghao

varchar

200

财务账号

caiwuxingming

varchar

200

财务姓名

qingdan

varchar

200

ispay

varchar

200

是否支付

未支付

表名4-8:医生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yishengzhanghao

varchar

200

医生账号

mima

varchar

200

密码

yishengxingming

varchar

200

医生姓名

nianling

int

年龄

zhicheng

varchar

200

职称

xingbie

varchar

200

性别

lianxidianhua

varchar

200

联系电话

touxiang

varchar

200

头像

表名4-9:预交金额

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

shouji

varchar

200

nianling

varchar

200

shenfenzheng

varchar

200

shebaoka

varchar

200

zhuyuanbianhao

varchar

200

bingfanghao

varchar

200

chuangweihao

varchar

200

yujiaojine

float

预交金额

qingdan

varchar

200

jineshuoming

longtext

4294967295

金额说明

tongzhishijian

datetime

通知时间

caiwuzhanghao

varchar

200

caiwuxingming

varchar

200

ispay

varchar

200

是否支付

未支付

表名4-10:床位信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

bingfanghao

varchar

200

病房号

chuangweihao

varchar

200

床位号

bingfangleixing

varchar

200

louceng

varchar

200

楼层

zhuangtai

varchar

200

状态

feiyong

float

dengjiriqi

date

登记日期

beizhu

varchar

200

备注

weizhi

varchar

200

表名4-11:药品信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yaopinbianhao

varchar

200

药品编号

yaopinmingcheng

varchar

200

药品名称

leixing

varchar

200

类型

yaopinleibie

varchar

200

药品类别

picihao

varchar

200

批次号

shengchanriqi

date

生产日期

youxiaoqizhi

date

有效期至

shengchandanwei

varchar

200

生产单位

shengchandizhi

varchar

200

生产地址

yaopinjiage

float

yaopintupian

varchar

200

药品图片

shiyongshuoming

longtext

4294967295

使用说明

jinji

longtext

4294967295

禁忌

yaopinshuoming

longtext

4294967295

药品说明

表名4-12:财务

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

caiwuzhanghao

varchar

200

财务账号

mima

varchar

200

密码

caiwuxingming

varchar

200

财务姓名

xingbie

varchar

200

性别

shouji

varchar

200

手机

shenfenzheng

varchar

200

身份证

touxiang

varchar

200

头像

表名4-13:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表名4-14:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表名4-15:入院登记

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhuyuanbianhao

varchar

200

住院编号

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

shenfenzheng

varchar

200

身份证

shouji

varchar

200

xingbie

varchar

200

性别

nianling

varchar

200

shebaoka

varchar

200

hesuandengji

varchar

200

bingfanghao

varchar

200

病房号

chuangweihao

varchar

200

yishengzhanghao

varchar

200

yishengxingming

varchar

200

医生姓名

ruyuanshijian

date

入院时间

shiyongyaopin

longtext

4294967295

jianchaxiangmu

longtext

4294967295

jianyanxiangmu

longtext

4294967295

beizhu

varchar

200

4.4 本章小结

对系统的结构和流程设计完成后使其有一个框架,再对主要功能模块进行设计,并对功能描述、输入项、输出项和实现方法进行了详细描述。绘制出系统的E-R图,可以更直观地表达实体之间的关系。通过表字段之间的关系对数据库进行设计。系统的详细设计完成后,为下一章的操作做了很好的铺垫。

第5章 系统实现

在住院管理系统的生命周期中,经过了系统分析、系统设计等阶段之后,便开始了系统实施阶段。系统的实现主要对管理员、用户、医生和财务功能的实现,通过实现的过程对代码和逻辑进行相应的修改和完善。该模块也是直接面对使用者的,不仅功能要齐全,而且要做到页面美观。

5.1系统登录注册实现

系统登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,进入操作系统进行操作;如图5-1所示。                               

图5-1 系统登录界面

系统注册:在系统注册页面输入用户注册信息进行注册操作,系统注册页面如图5-2所示:

图5-2系统注册页面

5.2管理员模块实现

管理员进入主页面,主要功能包括对首页、个人中心、用户管理、医生管理、财务管理、药品信息管理、检查项目管理、检验项目管理、床位信息管理、入院登记管理、预交金额管理、每日清单管理、出院手续管理、出院结算管理等进行操作。管理员主页面如图5-3所示:

图5-3 管理员主界面

管理员点击用户管理。进入用户页面输入账号、姓名、社保卡可以查询,新增或删除用户详细信息,并进行查看详情,修改或删除操作。如图5-4所示:

图5-4用户管理界面

管理员点击医生管理。进入医生页面输入医生账号、医生姓名和选择职称可以查询,新增或删除医生详细信息,并进行查看详情,修改或删除操作。如图5-5所示:

图5-5医生管理界面

管理员点击财务管理。进入财务页面输入财务账号和财务姓名可以查询,新增或删除财务详细信息,并进行查看详情,修改或删除操作。如图5-6所示:

图5-6财务管理界面

管理员点击药品信息管理。进入药品信息页面输入药品名称、药品类型、批次号和选择类型可以查询,新增或删除药品详细信息,并进行查看详情,修改或删除操作。如图5-7所示:

图5-7药品信息管理界面

代码实现

package com.controller;
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中

👇下方有我的微信名片👇

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值