基于java+ssm+jsp的中小型医院管理系统

项目介绍

随着医院工作压力越来越大,使用办公软件的医院越来越多。现在大多数医院采用各种挂号软件、叫号软件、问诊软件进行协助办公。这些软件可以有效的提高医院的办公效率,实现分流,使患者减少排队提高看病的效率。然后这些软件大多都针对医院的办公人员使用,患者只能挂号,不能查询更多的信息。目前,网络发展成熟,各类网站平台层出不穷,如果可以有专业的系统提供更多服务,则可以帮助患者解决需求。

本中小型医院管理系统采用SSM框架进行设计,语言采用Java,数据库为Mysql。在技术中加入Jsp,使界面更加丰富、友好。本系统针对医院办公而开发,使用角色为管理员和用户、医生。用户可以通过注册登录,在界面里浏览门诊进行挂号,可以查询处方信息和门诊项目信息以及进行住院登记和查询出院信息。管理员可以管理用户信息、门诊信息、科室信息、挂号信息、药品信息、门诊项目信息等。医生可以管理挂号信息和进行开处方、查询药品等。在本系统中,用户可以在线支付,灵活性强,实现线上挂号,节省时间。

4.1系统功能结构设计
本系统的功能界面设计为四个,前台界面、用户中心界面和管理员中心界面、医生中心界面。根据不同用户的不同需求分开设计功能。前台界面的功能为公告、门诊信息、个人中心和后台管理,用户中心界面的功能为个人资料、挂号信息管理、住院登记等,管理员中心界面的功能为系统用户、门诊信息等,医生中心界面的功能为挂号管理、处方信息管理等。本系统的功能结构图如下图4.1所示:
在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序/vue/爬虫/c#/asp.net

系统实现

5.1前台界面的实现
在前台里所有的信息都是共享的,注册用户、非注册用户、游客都可以浏览。包括公告信息、门诊信息、个人中心和后台管理等。
5.1.1首页界面的实现
本功能设计的目的是帮助用户一键返回首页,在首页里的元素包括图片、列表框、文字、按钮等。在首页的上半部分是粉底白字的系统名称,系统名称下面是导航栏,接着就是图片,图片下面是门诊信息。首页界面的实现界面如下图5.1所示:
在这里插入图片描述

图5.1首页界面的实现效果

5.1.2门诊功能的实现界面
在门诊功能里可以看到坐诊的科室和医生等信息。门诊功能的实现界面如下图5.2所示:
在这里插入图片描述

图5.2门诊功能的实现界面

科室的实现界面如下图5.3所示:
在这里插入图片描述

图5.3科室的实现界面

5.1.3个人中心功能的实现界面
用户登录后在个人中心里可以管理自己的注册信息,实现界面如下图5.4所示:
在这里插入图片描述

图5.4用户中心的功能实现界面

5.1.4公告功能的实现界面
在本功能模块里展示公告标题,想要看具体的公告详情需要点击公告标题进入公告详情页。公告信息功能的实现界面如下图5.5所示:
在这里插入图片描述

图5.5系统公告信息功能的实现界面

5.2用户角色功能的界面实现
5.2.1挂号功能的实现界面
用户在门诊信息里可以挂号,挂号成功后可以管理挂号信息和在线支付费用。挂号功能的实现界面如下图5.6所示:
在这里插入图片描述

图5.6挂号功能的实现界面

5.2.2处方信息管理功能的实现界面
用户可以查询医生开出的处方,并进行费用的支付。处方信息功能的实现界面如下图5.7所示:
在这里插入图片描述

图5.7处方信息功能的实现界面

5.2.3门诊项目功能的实现界面
用户可以查询门诊项目。门诊项目功能的实现界面如下图5.8所示:
在这里插入图片描述

图5.8辨认项目功能的实现界面

5.2.4住院登记功能的实现界面
用户可以查询住院的详情。住院登记功能的实现界面如下图5.9所示:
在这里插入图片描述

图5.9住院登记功能的实现界面

5.2.5出院信息功能的实现界面
用户可以查询出院信息以及进行费用的结算。实现界面如下图5.10所示:
在这里插入图片描述

图5.10出院信息功能的实现界面

5.2管理员功能的实现界面
管理员的功能为管理前台信息和审核医生管理的功能以及管理用户信息。管理的前台信息包括公告信息、门诊信息、项目信息、类型信息等。管理员功能的实现界面如下图5.11所示:
在这里插入图片描述

图5.11管理员功能的实现界面

5.3医生功能的实现界面
医生的功能为管理个人资料和管理挂号信息、为用户开处方,登记用户的住院信息和处理用户的出院信息、查询药品等。医生功能的实现界面如下图5.12所示:
在这里插入图片描述

图5.12医生功能的实现界面

核心代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.MenzhenxinxiEntity;
import com.entity.view.MenzhenxinxiView;

import com.service.MenzhenxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;

/**
 * 门诊信息
 * 后端接口
 * @author 
 * @email 
 * @date 
 */
@RestController
@RequestMapping("/menzhenxinxi")
public class MenzhenxinxiController {
    @Autowired
    private MenzhenxinxiService menzhenxinxiService;



    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,MenzhenxinxiEntity menzhenxinxi, 
		HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yisheng")) {
			menzhenxinxi.setYishengzhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<MenzhenxinxiEntity> ew = new EntityWrapper<MenzhenxinxiEntity>();
    	PageUtils page = menzhenxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, menzhenxinxi), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,MenzhenxinxiEntity menzhenxinxi, 
		HttpServletRequest request){
        EntityWrapper<MenzhenxinxiEntity> ew = new EntityWrapper<MenzhenxinxiEntity>();
    	PageUtils page = menzhenxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, menzhenxinxi), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( MenzhenxinxiEntity menzhenxinxi){
       	EntityWrapper<MenzhenxinxiEntity> ew = new EntityWrapper<MenzhenxinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( menzhenxinxi, "menzhenxinxi")); 
        return R.ok().put("data", menzhenxinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(MenzhenxinxiEntity menzhenxinxi){
        EntityWrapper< MenzhenxinxiEntity> ew = new EntityWrapper< MenzhenxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( menzhenxinxi, "menzhenxinxi")); 
		MenzhenxinxiView menzhenxinxiView =  menzhenxinxiService.selectView(ew);
		return R.ok("查询门诊信息成功").put("data", menzhenxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        MenzhenxinxiEntity menzhenxinxi = menzhenxinxiService.selectById(id);
        return R.ok().put("data", menzhenxinxi);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        MenzhenxinxiEntity menzhenxinxi = menzhenxinxiService.selectById(id);
        return R.ok().put("data", menzhenxinxi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody MenzhenxinxiEntity menzhenxinxi, HttpServletRequest request){
    	menzhenxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(menzhenxinxi);

        menzhenxinxiService.insert(menzhenxinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody MenzhenxinxiEntity menzhenxinxi, HttpServletRequest request){
    	menzhenxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(menzhenxinxi);

        menzhenxinxiService.insert(menzhenxinxi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody MenzhenxinxiEntity menzhenxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(menzhenxinxi);
        menzhenxinxiService.updateById(menzhenxinxi);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        menzhenxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<MenzhenxinxiEntity> wrapper = new EntityWrapper<MenzhenxinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yisheng")) {
			wrapper.eq("yishengzhanghao", (String)request.getSession().getAttribute("username"));
		}

		int count = menzhenxinxiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	





}

论文参考

在这里插入图片描述

目 录
摘 要 1
Abstract 2
第1章 绪论 5
1.1课题研究背景和来源 5
1.2课题研究现状 5
1.3课题开发的目的和意义 5
1.4课题开发内容 6
1.5论文结构安排 6
第2章 系统开发关键技术介绍 7
2.1系统开发使用的关键技术 7
2.2 Jsp技术介绍 7
2.3 Idea介绍 7
2.4 Mysql数据库介绍 8
第3章 系统分析 9
3.1系统需求分析 9
3.2系统可行性分析 9
3.2.1技术可行性 9
3.2.2经济可行性 10
3.2.3运行可行性分析 10
3.2.4法律可行性 10
3.3系统功能分析 10
3.4系统性能分析 13
3.5业务流程分析 13
第4章 系统设计 15
4.1系统功能结构设计 15
4.2系统数据库设计 15
4.2.1数据库ER图设计 15
4.2.2数据库表设计 18
第5章 系统实现 28
5.1前台界面的实现 28
5.1.1首页界面的实现 28
5.1.2门诊功能的实现界面 28
5.1.3个人中心功能的实现界面 29
5.1.4公告功能的实现界面 30
5.2用户角色功能的界面实现 31
5.2.1挂号功能的实现界面 31
5.2.2处方信息管理功能的实现界面 31
5.2.3门诊项目功能的实现界面 31
5.2.4住院登记功能的实现界面 32
5.2.5出院信息功能的实现界面 32
5.2管理员功能的实现界面 33
5.3医生功能的实现界面 33
第6章 系统测试 35
6.1系统测试的目的 35
6.2系统测试的重要性和方法 35
6.3系统的测试步骤 35
6.4系统的测试用例 36
6.5测试总结 37
总结 38
致 谢 39
参考文献 40

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值