当前位置: 首页 > article >正文

基于Java SpringBoot和Vue社区医院诊所医疗挂号管理系统设计

摘要

本文旨在设计并实现一个基于Java SpringBoot和Vue的社区医院管理系统,以解决当前社区医院管理中存在的效率低下、数据安全性差等问题。通过采用前后端分离架构,系统实现了用户信息管理、挂号管理、医生管理等功能模块,有效提升了医院的管理效率和服务质量。在技术实现上,后端使用SpringBoot框架简化了开发过程,提高了应用的可维护性和扩展性;前端采用Vue框架,使用户界面简洁直观,操作便捷。数据库方面,选用MySQL进行数据存储,确保了数据的可靠性和查询效率。此外,系统还注重用户体验设计,提供了多种便捷的功能,如在线挂号预约、就诊记录查询等。本系统的设计与实现不仅为社区医院提供了一个高效、便捷的管理工具,也为计算机相关专业的学生提供了一个实践现代Web应用开发的优质案例。

功能介绍

管理员、医生和普通用户三种用户角色;

管理员:个人中心、管理员管理、用户管理、医生管理、挂号管理、防范指南管理、基础数据管理、论坛管理、社区公告管理、留言管理、轮播图管理等;

医生:个人中心、医生管理、用户咨询管理、挂号管理、论坛管理、防范指南管理、社区公告管理等;

普通用户:个人中心、首页、论坛交流、留言、挂号预约、公告信息查看、防范指南查看等。

技术介绍

后端:Java语言的Spring Boot框架、MySQL数据库、Maven依赖管理等;

前端:Vue、element-ui、axios等。

部分代码展示

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(false)
            return R.error(511,"永不会进入");
        else if("用户".equals(role))
            params.put("yonghuId",request.getSession().getAttribute("userId"));
        else if("医生".equals(role))
            params.put("yishengId",request.getSession().getAttribute("userId"));
        CommonUtil.checkMap(params);
        PageUtils page = newsService.queryPage(params);

        //字典表数据转换
        List<NewsView> list =(List<NewsView>)page.getList();
        for(NewsView c:list){
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(c, request);
        }
        return R.ok().put("data", page);
    }

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        NewsEntity news = newsService.selectById(id);
        if(news !=null){
            //entity转view
            NewsView view = new NewsView();
            BeanUtils.copyProperties( news , view );//把实体数据重构到view中
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody NewsEntity news, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,news:{}",this.getClass().getName(),news.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");

        Wrapper<NewsEntity> queryWrapper = new EntityWrapper<NewsEntity>()
            .eq("news_name", news.getNewsName())
            .eq("news_types", news.getNewsTypes())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        NewsEntity newsEntity = newsService.selectOne(queryWrapper);
        if(newsEntity==null){
            news.setInsertTime(new Date());
            news.setCreateTime(new Date());
            newsService.insert(news);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody NewsEntity news, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        logger.debug("update方法:,,Controller:{},,news:{}",this.getClass().getName(),news.toString());
        NewsEntity oldNewsEntity = newsService.selectById(news.getId());//查询原先数据

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if("".equals(news.getNewsPhoto()) || "null".equals(news.getNewsPhoto())){
                news.setNewsPhoto(null);
        }

            newsService.updateById(news);//根据id更新
            return R.ok();
    }

演示视频

Java SpringBoot和Vue社区医院诊所挂号系统


http://www.kler.cn/news/366900.html

相关文章:

  • ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点
  • 01 springboot-整合日志(logback-config.xml)
  • 找不到包的老版本???scikit-learn,numpy,scipy等等!!
  • 创建型模式-----建造者模式
  • 机器学习与神经网络的当下与未来
  • 学习threejs,利用THREE.ExtrudeGeometry拉伸几何体实现svg的拉伸
  • 【超大数据】数字的拆分——int128数据类型的使用方法
  • Spring Cloud微服务:构建现代应用的新基石
  • 【笔记】软件测试09——接口测试
  • 图文深入理解Oracle Total Recall
  • Ubuntu虚拟机无法启动,无U盘拯救
  • GoogleChrome和Edge浏览器闪屏问题
  • 图片懒加载
  • MATLAB工具箱使用案例详解
  • Vuejs设计与实现 — 编译层面的优化
  • Walrus + Sui:如何充分发挥Web3的潜力
  • vue中$nextTick的作用是什么,什么时候使用
  • docker-minio启动参数
  • vue3嵌套路由二级跳转三级路由时,如何阻止走二级的生命周期
  • Vulnhub打靶-DC-2
  • python批量漏洞检测工具编写
  • KUKA机器人选定程序时提示“选择非法”的处理方法
  • JSON语法学习分析
  • 【每日一题】LeetCode - 盛最多水的容器
  • PHP模拟多继承的方式:traits
  • 安全见闻(6)