基于java的ssm医院住院管理系统源码和论文

本文介绍了使用Java和SSM框架开发的医院住院管理系统,包括系统功能、数据库连接、API设计,如医嘱管理、级联查询和字典数据转换,旨在提升医院信息管理效率和患者体验。
摘要由CSDN通过智能技术生成

基于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();
    }



}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序猿毕业分享网

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

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

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

打赏作者

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

抵扣说明:

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

余额充值