博主介绍全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作

主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。

🍅文末获取源码联系🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

 

一、 前言介绍:

随着信息时代的发展,计算机迅速普及,传统的医院病历管理方式显得不够快捷,这时我们就需要创造更加便利的管理方法,对医院病历信息进行统计,便于医院病历信息进行统一管理。将管理方式转变为信息化、智能化显得尤为重要,医院病历管理系统可以在短时间内完成大量的数据处理、帮助用户快速的查找医院病历相关信息,实现的效益更加直观。医院病历管理系统中采用JAVA技术和mysql数据库。主要包括管理员、病人和医生三大部分,主要功能是实现对个人中心、病人管理、医生管理、住院信息管理、出院信息管理、病历信息管理、科室管理等功能进行解析,使管理变得方便快捷。相对于管理者而言,本系统可以减少工作人员的工作量,从而提高工作效率。经过对本系统的全面测试,表明了本系统具有良好的可行性。

关键词: 医院病历;JAVA;mysql数据库

二 、功能设计:

4.1.1 登录模块设计

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

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

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

4.1.2 管理员管理模块设计

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

4.1.3 医生模块设计

医生功能模块由个人中心、病人管理、住院信息管理、出院信息管理、病历信息管理等功能组成。能对自己的个人信息和密码进行修改,修改前需要先成功登录本系统。

4.1.4 病人模块设计

病人功能模块由个人中心、住院信息管理、出院信息管理、病历信息管理等功能组成。能对自己的个人信息和密码进行修改,修改前需要先成功登录本系统。

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

图4-1系统总体结构图

 

三、功能实现:

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

系统登录实现

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

图5-1 系统登录界面

管理员模块实现

管理员进入主页面,主要功能包括对系统首页、个人中心、病人管理、医生管理、住院信息管理、出院信息管理、病历信息管理、科室管理等进行操作。管理员主页面如图5-2所示:

图5-2 管理员主界面

管理员点击病人管理。在病人页面输入病人账号进行查询、新增或删除病人列表,并根据需要对病人详情信息进行详情、修改或删除操作;如图5-3所示:

图5-3病人管理界面

管理员点击医生管理。在医生页面输入医生工号、医生姓名、选择科室和职称进行查询、新增或删除医生列表,并根据需要对医生详情信息进行详情、修改或删除操作;如图5-4所示:

图5-4医生管理界面

管理员点击住院信息管理。在住院信息页面输入病人姓名和选择出院状态进行查询、新增或删除住院信息列表,并根据需要对住院详情信息进行详情、修改或删除操作;如图5-5所示:

图5-5住院信息管理界面

病人管理实现

病人进入系统可以对个人中心、住院信息管理、出院信息管理、病历信息管理等功能进行操作。病人主页面如图5-6所示:

图5-6病人主界面

医生管理实现

医生进入系统可以对个人中心、病人管理、住院信息管理、出院信息管理、病历信息管理等功能进行操作。医生主页面如图5-7所示:

图5-7 医生主界面

医生点击住院信息管理。在住院信息页面输入病人姓名和选择出院状态进行查询、新增或删除住院信息列表,并根据需要对住院详情信息进行详情、出院登记、病历登记、修改或删除操作;如图5-8所示:

图5-8住院信息管理界面

四、库表设计:

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

病历信息实体属性图如下所示:

图4-2病历信息实体属性图

住院信息实体属性图如下所示:

图4-3住院信息实体属性图

五、关键代码:

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UsersController{
	
	@Autowired
	private UsersService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@RequestMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().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 UsersEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UsersEntity>().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){
    	UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().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,UsersEntity user){
        EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
    	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( UsersEntity user){
       	EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UsersEntity 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");
        UsersEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UsersEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UsersEntity user){
//        ValidatorUtils.validateEntity(user);
    	UsersEntity u = userService.selectOne(new EntityWrapper<UsersEntity>().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();
    }
}

 

六、论文参考:

七、其他案例: 

 

 

八、推荐项目:

基于微信小程序+Springboot线上租房平台设计和实现-三端

2022-2024年最全的计算机软件毕业设计选题大全

基于Java+SpringBoot+Vue前后端分离手机销售商城系统设计和实现

基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现

基于SpringBoot+uniapp微信小程序校园点餐平台详细设计和实现

基于Java+SpringBoot+Vue+echarts健身房管理系统设计和实现

基于JavaSpringBoot+Vue+uniapp微信小程序实现鲜花商城购物系统

基于Java+SpringBoot+Vue前后端分离摄影分享网站平台系统 

基于Java+SpringBoot+Vue前后端分离餐厅点餐管理系统设计和实现

基于Python热门旅游景点数据分析系统设计与实现

九、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

 精彩专栏推荐订阅下方专栏👇🏻

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

Logo

前往低代码交流专区

更多推荐