基于ssm医院预约挂号信息管理系统源码和论文

摘要随着互联网信息化技术的快速发展,诸多行业已实现高效的信息化管理。但目前很多医院门诊管理信息业务仍是通过人工管理的方式进行,需要在各个岗位投入大量的人力进行很多重复性工作,使得对人力物力造成诸多浪费,工作效率不高等情况。,实现实际业务需求, 提高管理水平和工作效率,具有十分重要的现实意义。

本医院预约挂号系统采用基于java三层架构和B/S模块进行开发。系统分为实体 类模块、数据库管理模块、后台管理模块和前台管理模块四个模块。主要面向管 理员用户和员工用户,在浏览器中实现进退药品管理、库存信息管理、采购信息 管理、药品信息管理和综合信息管理五大功能。系统对硬件环境要求不高,模块 清晰,界面设计友好美观,操作简单,方便实用,数据存储安全。

文中首先介绍开发的背景、国内外发展现状,引出研究目的和意义;然后分 析三层架构设计模式和ssm技术在系统中的使用;再从实际调研出发,对系统 进行需求和性能分析,得到系统的功能设计和数据库设计,并利用idea 开发平台、mysql数据库管理系统java开发语言、ssm等技术进行详细 设计与实现;最后经过初步测试,已经基本达到设计要求。

随着国家骨干高等院校和数字化社会的建设,依托现代和社会信息资源,建立了一个大型医院预约挂号系统。本系统目前在 已安全开发完成并且在运行中。今后还要进一步根 据药品实际业务需要,完善系统功能。

关键词:医院预约挂号系统;三层架构;信息管理。

【547】基于ssm医院预约挂号信息管理系统源码和论文

Design and implementation of Java-based drug management system

Abstract: With the rapid development of Internet information technology, many industries have achieved efficient information management. However, at present, many hospital outpatient management information businesses are still carried out through manual management, which requires a lot of manpower to be invested in various posts for a lot of repetitive work, resulting in a lot of waste of human and material resources and low work efficiency., It is of great practical significance to realize the actual business needs and improve the management level and work efficiency.

The drug management system is developed based on Java three-tier architecture and B / S module. The system is divided into four modules: entity module, database management module, background management module and foreground management module. Mainly for administrator users and staff users, in the browser to achieve advance and retreat drug commodity management, inventory information management, sales information management, drug commodity information management and comprehensive information management five functions. The system has low requirements for hardware environment, clear modules, friendly and beautiful interface design, simple operation, convenient and practical, and safe data storage.

This paper first introduces the development background, the development status at home and abroad, leads to the purpose and significance of the research; then analyzes the three-tier architecture design pattern and the use of ssm technology in the system; then from the actual research, analyzes the requirements and performance of the system, obtains the function design and database design of the system, and uses the idea Development platform, MySQL database management system, java development language, ssm and other technologies for detailed design and implementation; finally, after preliminary testing, it has basically reached the design requirements.

With the construction of national key universities and digital society, relying on modern and social information resources, a large-scale drug management system has been established. At present, the system has been developed safely and is running. In the future, we should further improve the system function according to the actual business needs of drugs.

Keywords: drug management system, three-tier architecture, information management

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
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.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.model.Doctor;
import com.model.Keshi;
import com.model.Torder;
import com.model.User;
import com.model.Yuyue;
import com.response.YuyueListResponse;
import com.service.DoctorService;
import com.service.KeshiService;
import com.service.UserService;
import com.service.YuyueService;
import com.util.Config;
import com.util.DuanVO;
import com.util.PageBean;
import com.util.YuyueVO;

/**
 * 预约Controller业务控制类
 */
@Controller
public class YuyueController {
	/**
	 * 注入Service
	 */
	@Autowired
	private YuyueService yuyueService;
	@Autowired
	private UserService userService;
	@Autowired
	private DoctorService doctorService;
	@Autowired
	private KeshiService keshiService;
	/**
	 * 进入列表页面
	 * 
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/yuyue_toList")
	public String toList(HttpServletRequest request) throws Exception {
		User user = new User();
		List<User> userList = userService.queryUserList(user, null);
		request.setAttribute("userList", userList);
		return "/admin/yuyue/yuyue_list.jsp";
	}
	
	/**
	 * 预约列表(用户)
	 * 
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/yuyue_list_user")
	@ResponseBody
	public YuyueListResponse list_user(HttpServletRequest request) throws Exception {
		YuyueListResponse res = new YuyueListResponse();
		/**
		 * 获取分页参数
		 */
		int page = 0; // 当前页数
		int limit = 0;// 每页显示的数量
		int offset = 0;
		try {
			page = Integer.parseInt(request.getParameter("page"));
			limit = Integer.parseInt(request.getParameter("limit"));
		} catch (Exception e) {
		}
		if (page > 0) {
			offset = (page - 1) * limit;
		}
		
		PageBean pages = new PageBean(offset);
		Yuyue yuyue = new Yuyue();
		User user = (User) request.getSession().getAttribute("user");
		yuyue.setUid(user.getId());
	
		String yydateStart = request.getParameter("yydateStart");
		String yydateEnd = request.getParameter("yydateEnd");
		yuyue.setYydateStart(yydateStart);
		yuyue.setYydateEnd(yydateEnd);
		request.setAttribute("yydateStart", yydateStart);
		request.setAttribute("yydateEnd", yydateEnd);
		String state = request.getParameter("state");
		yuyue.setState(state);
		request.setAttribute("state", state);
		
		// 查询记录总数
		int count = yuyueService.getCount(yuyue);
		// 获取当前页记录
		List<Yuyue> yuyueList = yuyueService.queryYuyueList(yuyue, pages);
		if(yuyueList!=null && yuyueList.size()>0){
			for (Yuyue yuyue2 : yuyueList) {
				Doctor doctorVO = doctorService.queryDoctorById(yuyue2.getDoctorid());
				if(doctorVO!=null){
					Keshi keshi = keshiService.queryKeshiById(doctorVO.getKsid());
					if(keshi!=null){
						doctorVO.setKeshiVO(keshi);
					}
					yuyue2.setDoctorVO(doctorVO);
				}
			}
		}
		
		res.setCode(0);
		res.setRows(yuyueList);
		res.setTotal(count);
		return res;
	}

	/**
	 * 预约列表(医生)
	 * 
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/yuyue_list")
	@ResponseBody
	public YuyueListResponse list(HttpServletRequest request) throws Exception {
		YuyueListResponse res = new YuyueListResponse();
		/**
		 * 获取分页参数
		 */
		int page = 0; // 当前页数
		int limit = 0;// 每页显示的数量
		int offset = 0;
		try {
			page = Integer.parseInt(request.getParameter("page"));
			limit = Integer.parseInt(request.getParameter("limit"));
		} catch (Exception e) {
		}
		if (page > 0) {
			offset = (page - 1) * limit;
		}
		int utype = Integer.parseInt(request.getSession().getAttribute("utype").toString());
		PageBean pages = new PageBean(offset);
		Yuyue yuyue = new Yuyue();
		if(utype==2){
			Doctor doctor = (Doctor) request.getSession().getAttribute("doctor");
			yuyue.setDoctorid(doctor.getId());
		}
		String username = request.getParameter("username");
		yuyue.setUsername(username);
		String yydateStart = request.getParameter("yydateStart");
		String yydateEnd = request.getParameter("yydateEnd");
		yuyue.setYydateStart(yydateStart);
		yuyue.setYydateEnd(yydateEnd);
		request.setAttribute("yydateStart", yydateStart);
		request.setAttribute("yydateEnd", yydateEnd);
		String state = request.getParameter("state");
		yuyue.setState(state);
		request.setAttribute("state", state);
		
		// 查询记录总数
		int count = yuyueService.getCount(yuyue);
		// 获取当前页记录
		List<Yuyue> yuyueList = yuyueService.queryYuyueList(yuyue, pages);
		if(yuyueList!=null && yuyueList.size()>0){
			for (Yuyue yuyue2 : yuyueList) {
				Doctor doctorVO = doctorService.queryDoctorById(yuyue2.getDoctorid());
				if(doctorVO!=null){
					Keshi keshi = keshiService.queryKeshiById(doctorVO.getKsid());
					if(keshi!=null){
						doctorVO.setKeshiVO(keshi);
					}
					yuyue2.setDoctorVO(doctorVO);
				}
				
				
			}
		}
		
		res.setCode(0);
		res.setRows(yuyueList);
		res.setTotal(count);
		return res;
	}

	/**
	 * 跳转到新增预约界面
	 * 
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/yuyue_toAdd")
	public String toAdd(HttpServletRequest request) throws Exception {
		User user = (User) request.getSession().getAttribute("user");
		int uid= user.getId();
		int doctorid = Integer.parseInt(request.getParameter("doctorid"));
		int zw = Integer.parseInt(request.getParameter("zw"));
		String yydate = request.getParameter("yydate");
		//查询当天预约的情况
		Yuyue yuyue = new Yuyue();
		yuyue.setTemp(1);
		yuyue.setDoctorid(doctorid);
		yuyue.setYydateStart(yydate);
		yuyue.setYydateEnd(yydate);
		List<Yuyue> yuyueList = yuyueService.queryYuyueList(yuyue, null);
		if(yuyueList!=null||yuyueList.size()>0){
			for (Yuyue yuyue2 : yuyueList) {
				if(yuyue2.getUid()==uid){
					request.setAttribute("message","您当前日期已预约过此医生,不能重复预约!");
					request.setAttribute("path","riqi_list.action");
					request.setAttribute("doctorid",doctorid);
					return "common/succeed1.jsp";
				}
			}
		}
		
		Doctor doctor = new Doctor();
		doctor.setId(doctorid);
		List<Doctor> list = doctorService.queryDoctorList(doctor, null);
		doctor = list.get(0);
		yuyue.setUid(uid);
		yuyue.setDoctorid(doctorid);
		yuyue.setYydate(yydate);
		yuyue.setTemp(zw);
		yuyue.setDoctorVO(doctor);
		request.setAttribute("yuyue", yuyue);
		List<DuanVO> duanList =null;
		if(zw==1){
			duanList = new ArrayList<DuanVO>(){{
			    add(new DuanVO(Config.TIME1,false));
			    add(new DuanVO(Config.TIME2,false));
			    add(new DuanVO(Config.TIME3,false));
			    add(new DuanVO(Config.TIME4,false));
			    add(new DuanVO(Config.TIME5,false));
			    add(new DuanVO(Config.TIME6,false));
			    add(new DuanVO(Config.TIME7,false));
			    add(new DuanVO(Config.TIME8,false));
			}};
		}else {
			duanList = new ArrayList<DuanVO>(){{
			    add(new DuanVO(Config.TIME9,false));
			    add(new DuanVO(Config.TIME10,false));
			    add(new DuanVO(Config.TIME11,false));
			    add(new DuanVO(Config.TIME12,false));
			    add(new DuanVO(Config.TIME13,false));
			    add(new DuanVO(Config.TIME14,false));
			    add(new DuanVO(Config.TIME15,false));
			    add(new DuanVO(Config.TIME16,false));
			}};
		}
		for (DuanVO duanVO : duanList) {
			isZy(duanVO,yuyueList);
		}
		request.setAttribute("duanList", duanList);
		
		
		return "/admin/yuyue/yuyue_add.jsp";
	}
	/**
	 * 是否已经预约过
	 * @param duan
	 * @param yuyueList
	 */
	private void isZy(DuanVO duan,List<Yuyue> yuyueList){
		if(yuyueList==null||yuyueList.size()==0){
			return;
		}
		//设置禁止
		for (Yuyue yuyue : yuyueList) {
			if(yuyue.getTdate().equals(duan.getYydate())){
				duan.setDisable(true);
				break;
			}
		}
	}

	/**
	 * 保存新增预约
	 * 
	 * @param yuyue
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/yuyue_add")
	public String add(Yuyue yuyue,HttpServletRequest request)
			throws Exception {
		User user = (User) request.getSession().getAttribute("user");
		yuyue.setUid(user.getId());
		String cdate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
		yuyue.setCdate(cdate);
		yuyue.setState("预约");
		yuyue.setBianhao("yy"+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
		
		// 保存到数据库
		yuyueService.insertYuyue(yuyue);
		return "redirect:admin/yuyue/yuyue_list_user.jsp";
	}

	/**
	 * 跳转到更新预约界面
	 * 
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/yuyue_toUpdate")
	public String toUpdate(HttpServletRequest request) throws Exception {
		int id = Integer.parseInt(request.getParameter("id"));
		// 根据ID查询出需要更新的记录
		Yuyue yuyue = yuyueService.queryYuyueById(id);
		request.setAttribute("yuyue", yuyue);
		User user = new User();
		List<User> userList = userService.queryUserList(user, null);
		request.setAttribute("userList", userList);
		return "/admin/yuyue/yuyue_update.jsp";
	}

	/**
	 * 更新预约
	 * 
	 * @param yuyue
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/yuyue_update")
	public String update( HttpServletRequest request)
			throws Exception {
		
		int id = Integer.parseInt(request.getParameter("id"));
		// 根据ID查询出需要更新的记录
		Yuyue yuyue = yuyueService.queryYuyueById(id);
		yuyue.setState("就诊");
		// 更新数据库
		yuyueService.updateYuyue(yuyue);
		return "redirect:admin/yuyue/yuyue_list.jsp";
	}

	/**
	 * 删除预约
	 * 
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/yuyue_delete")
	public String delete(HttpServletRequest request) throws Exception {
		// 根据id删除数据库记录
		int id = Integer.parseInt(request.getParameter("id"));
		yuyueService.deleteYuyue(id);
		return "redirect:admin/yuyue/yuyue_list.jsp";
	}
	
	/**
	 * 取消预约
	 * 
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/yuyue_delete_user")
	public String delete_user(HttpServletRequest request) throws Exception {
		// 根据id删除数据库记录
		int id = Integer.parseInt(request.getParameter("id"));
		yuyueService.deleteYuyue(id);
		return "redirect:admin/yuyue/yuyue_list_user.jsp";
	}

	/**
	 * 查看预约详情
	 * 
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/yuyue_toView")
	public String toView(HttpServletRequest request) throws Exception {
		int id = Integer.parseInt(request.getParameter("id"));
		// 根据ID查询出记录放到request中,到前台jsp界面显示
		Yuyue yuyue = new Yuyue();
		yuyue.setId(id);
		List<Yuyue> list = yuyueService.queryYuyueList(yuyue, null);
		yuyue = list.get(0);
		Doctor doctorVO = doctorService.queryDoctorById(yuyue.getDoctorid());
		if(doctorVO!=null){
			Keshi keshi = keshiService.queryKeshiById(doctorVO.getKsid());
			if(keshi!=null){
				doctorVO.setKeshiVO(keshi);
			}
			yuyue.setDoctorVO(doctorVO);
		}
		request.setAttribute("yuyue", yuyue);
		return "/admin/yuyue/yuyue_view.jsp";
	}
	
	/***
	 * 患者预约日期列表
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/riqi_list")
	public String riqi_list(HttpServletRequest request) throws Exception {
		int doctorid = Integer.parseInt(request.getParameter("doctorid"));
		//获得未来6天后的日期
		String edate = Config.getFetureDate(6) ;
		//获得当天日期
		String sdate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
		Yuyue yuyue = new Yuyue();
		yuyue.setTemp(1);
		yuyue.setDoctorid(doctorid);
		yuyue.setYydateStart(sdate);
		yuyue.setYydateEnd(edate);
		//查所有预约信息
		List<Yuyue> yuyueList = yuyueService.queryYuyueList(yuyue, null);
		List<YuyueVO> yuyueVOList = convertVO(doctorid,yuyueList,request);
		request.setAttribute("list", yuyueVOList);
		return "/admin/yuyue/riqi_list.jsp";
	}
	/**
	 * 一周预约表
	 * @param doctorid
	 * @param yuyueList
	 * @param request
	 * @return
	 */
	private  List<YuyueVO> convertVO(int doctorid,List<Yuyue> yuyueList,HttpServletRequest request){
		List<YuyueVO> yuyueVOList = new ArrayList<YuyueVO>();
		List<String> days = Config.getNear7Day(7);
		request.setAttribute("dayList", days);
			Map<String,Integer> map = new HashMap<String, Integer>();
			if(yuyueList!=null&&yuyueList.size()>0){
				for (Yuyue yy : yuyueList) {
					String duan = Config.moningAfter(yy.getTdate());
					String key = yy.getYydate()+duan;
					Integer num = map.get(key);
					if(num!=null){
						num =num+1;
					}else{
						num=1;
					}
					map.put(key, num);
				}
			}
			
			for (String d : days) {
				YuyueVO vo= new YuyueVO();
				vo.setYydate(d);
				//上午人数
				int mnum = map.get(d+"m")!=null?map.get(d+"m"):0;
				//下午人数
				int anum = map.get(d+"a")!=null?map.get(d+"a"):0;
				vo.setMnum(mnum);
				vo.setDoctorid(doctorid);
				vo.setAnum(anum);
				yuyueVOList.add(vo);
			}
		return yuyueVOList;
	}
	
}

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿毕业分享网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值