基于java的ssm医院住院管理系统源码和论文188
开发工具:idea 或eclipse
数据库mysql5.7+
数据库链接工具:navcat,小海豚等
技术:ssm
1.选题目的和意义:
数字化医院是正在发展中的新生事物,概念一直没有明确的涵义。2001年,有关权威人士提出:数字化医院是以网络管理为基本模式,以信息为医院发展的基本功能,以信息技术为依托,增强医院的技术实力,以信息文化改变着人们教育、工作方式和思想观念的新兴群体形态,以信息化建设为医院发展的新增长点。医院系统无时无刻不在产生并处理着大量的信息。并且这些信息需要在门诊、医技、科室、住院病房和行政管理等多个部门和工作人员之间共享。据研究表明,每个临床医生需要约两百万条信息来管理一个病人,30%的重病症患者正是因为信息获取不充分而未得到有效治疗,80%的医疗差错也是因为信息获取不充分而造成的。
同时,由于医疗领域科技的复杂性及持续高速发展,在过去的十年内,新的医疗技术、药物、治疗方案成五倍增长临床路径也在不断完善,医生使用高科技信息化手段进行疾病的判断已成为常态。医院住院管理系统的建立,一方面是实现了医院在病人信息数据上的共享和管理上的安全性、高效性、自动化、电子化、无纸化,摆脱了手工进行操作的费力不讨好之后,带来的是工作上效率的提高,患者时间与精力的节约,患者满意度的提高。同时方便了信息的收集与整理,无论是患者基本信息,还是就诊信息、医嘱信息、药品信息、费用信息等更加透明,一目了然,可查询可追溯,不会由于人工登记的失误造成数据的损失和医疗风险,保证了患者的就诊用药安全。信息的增删改查等都有了一定的依托,不需要去翻查纸质的记录,通过信息化手段,通过信息的流转达到目的。另一方面可以加强医院的管理,使用信息化手段推动精细化管理,节省医院工作人员的时间和精力,提高工作效率,也给患者带来极大的方便,免去很多繁琐的流程。数据形成结构,方便管理,随时统计住院量、收入等信息,为医院的下一步发展规划提供依据。
package com.controller;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.StringUtil;
import java.lang.reflect.InvocationTargetException;
import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.YizhuEntity;
import com.service.YizhuService;
import com.entity.view.YizhuView;
import com.service.BingrenService;
import com.entity.BingrenEntity;
import com.service.YishengService;
import com.entity.YishengEntity;
import com.service.YonghuService;
import com.entity.YonghuEntity;
import com.utils.PageUtils;
import com.utils.R;
/**
* 医嘱
* 后端接口
* @author
* @email
* @date 2021-04-08
*/
@RestController
@Controller
@RequestMapping("/yizhu")
public class YizhuController {
private static final Logger logger = LoggerFactory.getLogger(YizhuController.class);
@Autowired
private YizhuService yizhuService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
//级联表service
@Autowired
private BingrenService bingrenService;
@Autowired
private YishengService yishengService;
@Autowired
private YonghuService yonghuService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
params.put("orderBy","id");
PageUtils page = yizhuService.queryPage(params);
//字典表数据转换
List<YizhuView> list =(List<YizhuView>)page.getList();
for(YizhuView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
YizhuEntity yizhu = yizhuService.selectById(id);
if(yizhu !=null){
//entity转view
YizhuView view = new YizhuView();
BeanUtils.copyProperties( yizhu , view );//把实体数据重构到view中
//级联表
BingrenEntity bingren = bingrenService.selectById(yizhu.getBingrenId());
if(bingren != null){
BeanUtils.copyProperties( bingren , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setBingrenId(bingren.getId());
}
//级联表
YishengEntity yisheng = yishengService.selectById(yizhu.getYishengId());
if(yisheng != null){
BeanUtils.copyProperties( yisheng , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setYishengId(yisheng.getId());
}
//级联表
YonghuEntity yonghu = yonghuService.selectById(yizhu.getYonghuId());
if(yonghu != null){
BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setYonghuId(yonghu.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody YizhuEntity yizhu, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,yizhu:{}",this.getClass().getName(),yizhu.toString());
Wrapper<YizhuEntity> queryWrapper = new EntityWrapper<YizhuEntity>()
.eq("yisheng_id", yizhu.getYishengId())
.eq("bingren_id", yizhu.getBingrenId())
.eq("yonghu_id", yizhu.getYonghuId())
.eq("yizhu_types", yizhu.getYizhuTypes())
.eq("zhuyuanfeiyong_money", yizhu.getZhuyuanfeiyongMoney())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
YizhuEntity yizhuEntity = yizhuService.selectOne(queryWrapper);
if(yizhuEntity==null){
yizhu.setInsertTime(new Date());
yizhu.setCreateTime(new Date());
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// yizhu.set
// }
yizhuService.insert(yizhu);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody YizhuEntity yizhu, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,yizhu:{}",this.getClass().getName(),yizhu.toString());
//根据字段查询是否有相同数据
Wrapper<YizhuEntity> queryWrapper = new EntityWrapper<YizhuEntity>()
.notIn("id",yizhu.getId())
.andNew()
.eq("yisheng_id", yizhu.getYishengId())
.eq("bingren_id", yizhu.getBingrenId())
.eq("yonghu_id", yizhu.getYonghuId())
.eq("yizhu_types", yizhu.getYizhuTypes())
.eq("zhuyuanfeiyong_money", yizhu.getZhuyuanfeiyongMoney())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
YizhuEntity yizhuEntity = yizhuService.selectOne(queryWrapper);
if(yizhuEntity==null){
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// yizhu.set
// }
yizhuService.updateById(yizhu);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 删除
*/
@RequestMapping("/zhixing")
public R zhixing(Integer ids, HttpServletRequest request){
YizhuEntity yizhu = yizhuService.selectById(ids);
if(yizhu == null){
return R.error();
}
if(!request.getSession().getAttribute("role").equals("护士")){
return R.error("只有护士能执行医嘱");
}
yizhu.setYonghuId((Integer) request.getSession().getAttribute("userId"));
boolean b = yizhuService.updateById(yizhu);
if(b){
return R.ok();
}
return R.error();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
yizhuService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
package com.controller;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import com.entity.ZhuyuanEntity;
import com.service.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.utils.StringUtil;
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.XiaofeijiluEntity;
import com.entity.view.XiaofeijiluView;
import com.entity.BingrenEntity;
import com.utils.PageUtils;
import com.utils.R;
/**
* 住院消费
* 后端接口
* @author
* @email
* @date 2021-04-08
*/
@RestController
@Controller
@RequestMapping("/xiaofeijilu")
public class XiaofeijiluController {
private static final Logger logger = LoggerFactory.getLogger(XiaofeijiluController.class);
@Autowired
private XiaofeijiluService xiaofeijiluService;
@Autowired
private ZhuyuanService zhuyuanService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
//级联表service
@Autowired
private BingrenService bingrenService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isNotEmpty(role) && "医生".equals(role)){
params.put("yishengId",request.getSession().getAttribute("userId"));
}
if(StringUtil.isNotEmpty(role) && "护士".equals(role)){
params.put("yonghuId",request.getSession().getAttribute("userId"));
}
params.put("orderBy","id");
PageUtils page = xiaofeijiluService.queryPage(params);
//字典表数据转换
List<XiaofeijiluView> list =(List<XiaofeijiluView>)page.getList();
for(XiaofeijiluView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
XiaofeijiluEntity xiaofeijilu = xiaofeijiluService.selectById(id);
if(xiaofeijilu !=null){
//entity转view
XiaofeijiluView view = new XiaofeijiluView();
BeanUtils.copyProperties( xiaofeijilu , view );//把实体数据重构到view中
//级联表
BingrenEntity bingren = bingrenService.selectById(xiaofeijilu.getBingrenId());
if(bingren != null){
BeanUtils.copyProperties( bingren , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setBingrenId(bingren.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody XiaofeijiluEntity xiaofeijilu, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,xiaofeijilu:{}",this.getClass().getName(),xiaofeijilu.toString());
Wrapper<XiaofeijiluEntity> queryWrapper = new EntityWrapper<XiaofeijiluEntity>()
.eq("bingren_id", xiaofeijilu.getBingrenId())
.eq("xiaofeijilu_money", xiaofeijilu.getXiaofeijiluMoney())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
ZhuyuanEntity zhuyuanEntity = zhuyuanService.selectOne(
new EntityWrapper<ZhuyuanEntity>().eq("bingren_id", xiaofeijilu.getBingrenId())
.eq("zhuyuan_types", 0));
if(zhuyuanEntity == null){
return R.error("住院后才可以添加住院消费信息");
}
if(zhuyuanEntity.getZhuyuanTypes() != 0){
return R.error("这个病人已经出院了");
}
XiaofeijiluEntity xiaofeijiluEntity = xiaofeijiluService.selectOne(queryWrapper);
if(xiaofeijiluEntity==null){
xiaofeijilu.setInsertTime(new Date());
xiaofeijilu.setCreateTime(new Date());
xiaofeijiluService.insert(xiaofeijilu);
zhuyuanEntity.setZhuyuanMoney(zhuyuanEntity.getZhuyuanMoney()+xiaofeijilu.getXiaofeijiluMoney());
zhuyuanService.updateById(zhuyuanEntity);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody XiaofeijiluEntity xiaofeijilu, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,xiaofeijilu:{}",this.getClass().getName(),xiaofeijilu.toString());
//根据字段查询是否有相同数据
Wrapper<XiaofeijiluEntity> queryWrapper = new EntityWrapper<XiaofeijiluEntity>()
.notIn("id",xiaofeijilu.getId())
.andNew()
.eq("bingren_id", xiaofeijilu.getBingrenId())
.eq("xiaofeijilu_money", xiaofeijilu.getXiaofeijiluMoney())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
XiaofeijiluEntity xiaofeijiluEntity = xiaofeijiluService.selectOne(queryWrapper);
if(xiaofeijiluEntity==null){
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// xiaofeijilu.set
// }
xiaofeijiluService.updateById(xiaofeijilu);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
xiaofeijiluService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}