基于JSP的病历管理系统开发与设计,源码下载

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT)、PYTHON、PHP、C#、安卓等多项技术。

今天将为大家分析一个病历管理系统(指出传统病案管理模式存在的问题,从新旧病案归档整理、电子病案的使用等方面介绍电子病案管理系统的实施,阐明实施电子病案管理的意义,包括节省存储空间,提高检索效率、病案质量与规范管理等。),该项目使用框架为SSM(MYECLIPSE),选用开发工具为MYECLIPSE。病历管理系统为一个 后台项目。

为了完成该系统,我们首先需要对该系统进行需求分析。一个病历管理系统应包含用户角色有管理员、病人、医生。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。

为了完成系统的功能需要为医生设置病历表,记录病历信息。在病历表中定义了两者的关联关系,其中病历的医生与医生的mingzi字段对应、病历的医生id与医生的id字段对应

总结得出该系统所有数据为:管理员(admin)、病人(bingren)、病历(bingli)、医生(yisheng)

管理员表

字段名 | 类型 | 属性 | 描述

id | int(11) | PRIMARY KEY | 管理员id

username | varchar(255) |  | 账号

password | varchar(255) |  | 密码

病人表

字段名 | 类型 | 属性 | 描述

id | int(11) | PRIMARY KEY | 病人id

username | varchar(255) |  | 账号

password | varchar(255) |  | 密码

mingzi | varchar(255) |  | 名字

病历表

字段名  | 类型 | 属性 | 描述

id INT(11PRIMARY KEY | 病历id

biaoti VARCHAR(255|  | 标题

neirong VARCHAR(255|  | 内容

shijian VARCHAR(255|  | 时间

yisheng VARCHAR(255|  | 医生

yishengid VARCHAR(255|  | 医生id

医生表

字段名  | 类型 | 属性 | 描述

id INT(11PRIMARY KEY | 医生id

mingzi VARCHAR(255|  | 名字

username VARCHAR(255|  | 账号

password VARCHAR(255|  | 密码

keshi VARCHAR(255|  | 科室

jianjie VARCHAR(255|  | 简介
 
 
SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- ----------------------------

-- Table structure for ggbingliguanli

-- ----------------------------

DROP TABLE IF EXISTS `t_admin`;

CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员';

-- ----------------------------

DROP TABLE IF EXISTS `t_bingren`;

CREATE TABLE `t_bingren` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '病人id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='病人';

-- ----------------------------

DROP TABLE IF EXISTS `t_bingli`;

CREATE TABLE `t_bingli` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '病历id',`biaoti` VARCHAR(255) DEFAULT NULL COMMENT '标题',`neirong` VARCHAR(5000) DEFAULT NULL COMMENT '内容',`shijian` VARCHAR(255) DEFAULT NULL COMMENT '时间',`yisheng` VARCHAR(255) DEFAULT NULL COMMENT '医生',`yishengid` INT(11) DEFAULT NULL COMMENT '医生id',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='病历';

-- ----------------------------

DROP TABLE IF EXISTS `t_yisheng`;

CREATE TABLE `t_yisheng` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '医生id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`keshi` VARCHAR(255) DEFAULT NULL COMMENT '科室',`jianjie` VARCHAR(5000) DEFAULT NULL COMMENT '简介',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='医生';
 
package org.mypro.front;

import java.io.File;

import java.io.IOException;

import java.math.BigDecimal;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Collections;

import java.util.Date;

import java.util.List;

import javax.jms.Session;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.StringUtils;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.mypro.dao.BingliMapper;

import org.mypro.entity.Bingli;

import org.mypro.entity.BingliExample;

import org.mypro.entity.Yisheng;

import org.mypro.entity.YishengExample;

import org.mypro.dao.YishengMapper;

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.RequestMethod;

import org.springframework.web.multipart.MultipartFile;

@Controller

@RequestMapping(value = "/")

public class BingliController {

private static final Log logger = LogFactory.getLog(BingliController.class);

@Autowired
private BingliMapper binglidao; // 定义yishengdao参数

@Autowired
private YishengMapper yishengdao;

//定义方法tianjiabingli,响应页面tianjiabingli请求

@RequestMapping(value = "tianjiabingli")

public String tianjiabingli(HttpServletRequest request, HttpServletResponse response,HttpSession session,String backurl) {

logger.debug("BingliController.tianjiabingli ......");

// 定义 example1为 YishengExample的实例

YishengExample example1 = new YishengExample();

List yishengall = yishengdao.selectByExample(example1);

request.setAttribute("yishengall", yishengall);

if(backurl != null && backurl.indexOf("tianjiabingli.action") == -1){

return "forward:/" + backurl; }

return "tianjiabingli";

}

@RequestMapping(value = "tianjiabingliact")

public String tianjiabingliact(HttpServletRequest request,HttpSession session, HttpServletResponse response,Bingli bingli,String backurl) throws IOException {

logger.debug("BingliController.tianjiabingliact ......");

binglidao.insert(bingli);

request.setAttribute("message", "添加病历成功");

if(backurl != null && backurl.indexOf("tianjiabingliact.action") == -1){

return "forward:/" + backurl; }

//返回tianjiabingli方法

return "forward:/tianjiabingli.action";

}

//定义bingliguanli方法响应页面请求

@RequestMapping(value = "bingliguanli")

public String bingliguanli(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {

logger.debug("BingliController.bingliguanli ......");

BingliExample example = new BingliExample();

List bingliall = binglidao.selectByExample(example);

request.setAttribute("bingliall", bingliall);

if(backurl != null && backurl.indexOf("bingliguanli.action") == -1){

return "forward:/" + backurl; }

return "bingliguanli";

}

// 定义 binglichakan方法

@RequestMapping(value = "binglichakan")

public String binglichakan(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {

logger.debug("BingliController.binglichakan ......");

BingliExample example = new BingliExample();

List bingliall = binglidao.selectByExample(example);

request.setAttribute("bingliall", bingliall);

if(backurl != null && backurl.indexOf("binglichakan.action") == -1){

return "forward:/" + backurl; }

return "binglichakan";

}

// 定义 xiugaibingli方法

@RequestMapping(value = "xiugaibingli")

public String xiugaibingli(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){

logger.debug("BingliController.xiugaibingli ......");

Bingli bingli = binglidao.selectByPrimaryKey(id);

// 定义 example1为 YishengExample的实例

YishengExample example1 = new YishengExample();

List yishengall = yishengdao.selectByExample(example1);

request.setAttribute("yishengall", yishengall);

request.setAttribute("bingli", bingli);

if(backurl != null && backurl.indexOf("xiugaibingli.action") == -1){

return "forward:/" + backurl; }

return "xiugaibingli";

}

// 定义xiugaibingliact处理病历修改

@RequestMapping(value = "xiugaibingliact")

public String xiugaibingliact(HttpServletRequest request, HttpServletResponse response,Bingli bingli,HttpSession session,String backurl) throws IOException {

logger.debug("BingliController.xiugaibingliact ......");

binglidao.updateByPrimaryKeySelective(bingli);

request.setAttribute("message", "修改病历信息成功");

if(backurl != null && backurl.indexOf("xiugaibingliact.action") == -1){

return "forward:/" + backurl; }

return "forward:/bingliguanli.action";

}

// 定义shanchubingli,处理删除病历

@RequestMapping(value = "shanchubingli")

public String shanchubingli(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){

logger.debug("BingliController.shanchubingli ......");

binglidao.deleteByPrimaryKey(id);

request.setAttribute("message", "删除病历成功");

if(backurl != null && backurl.indexOf("shanchubingli.action") == -1){

return "forward:/" + backurl; }

return "forward:/bingliguanli.action";

}

// 定义sousuobingli方法,处理搜索操作

@RequestMapping(value = "sousuobingli")

public String sousuobingli(HttpServletRequest request, HttpServletResponse response,HttpSession session,String search,String backurl) {logger.

debug("BingliController.sousuobingli ......");BingliExample example 

= new BingliExample();BingliExample.

Criteria criteria = example.createCriteria();

if(search != null){criteria.

andBiaotiLike("%" + search + "%");

}

List bingliall = binglidao.selectByExample(example);request.

setAttribute("bingliall", bingliall);

if(backurl != null && backurl.indexOf("sousuobingli.action") == -1){

return "forward:/" + backurl; }

return "sousuobingli";

}

// 定义BinglipinglunMapper@RequestMapping

(value = "binglixiangqing")

public String binglixiangqing(HttpServletRequest request,HttpSession session, HttpServletResponse response,int id,String backurl) {logger.

debug("BingliController.binglixiangqing ......");Bingli bingli 

= binglidao.selectByPrimaryKey(id);request.

setAttribute("bingli", bingli);

if(backurl != null && backurl.indexOf("binglixiangqing.action") == -1){

return "forward:/" + backurl; }

return "binglixiangqing";

}

// 上传文件图片等

public String uploadUtile(MultipartFile file, HttpServletRequest request) throws IOException {

// 根据当前时间生成时间字符串

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSS");

String res = sdf.format(new Date());

// uploads文件夹位置

String rootPath = request.getSession().getServletContext().getRealPath("resource/uploads/");

// 原始名称

String originalFileName = file.getOriginalFilename();

// 新文件名

String newFileName = "sliver" + res + originalFileName.substring(originalFileName.lastIndexOf("."));

// 创建年月文件夹

Calendar date = Calendar.getInstance();

File dateDirs = new File(date.get(Calendar.YEAR) + File.separator + (date.get(Calendar.MONTH)+1));

// 新文件

File newFile = new File(rootPath + File.separator + dateDirs + File.separator + newFileName);

// 判断目标文件所在目录是否存在

if( !newFile.getParentFile().exists()) {

// 如果目标文件所在的目录不存在,则创建父目录newFile.

getParentFile().mkdirs();

}

System.out.println(newFile);

// 将内存中的数据写入磁盘file.

transferTo(newFile);

// 完整的url

String fileUrl = date.get(Calendar.YEAR) + "/" + (date.get(Calendar.MONTH)+1) + "/" + newFileName;

return fileUrl;

}}

源码下载地址

猜你喜欢

转载自www.cnblogs.com/qwcx/p/11520810.html