• Vue.js+SpringBoot开发个人健康管理系统


    在这里插入图片描述



    一、摘要

    1.1 项目介绍

    基于JAVA+Vue+SpringBoot+MySQL的个人健康管理系统,包含了健康档案模块、体检档案模块、健康咨询模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,个人健康管理系统基于角色的访问控制,给普通用户、健康管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

    1.2 项目录屏


    二、功能模块

    个人健康管理系统,包含了健康档案模块、体检档案模块、健康咨询模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示。

    2.1 健康档案模块

    健康档案模块可以记录个人的基本信息、病史、过敏情况、药物使用、疫苗接种等健康相关信息。这些记录可以提供给医疗服务提供者,帮助他们更好地了解个体的健康状态,为个体提供更加个性化的医疗服务。

    健康档案模块可以记录个体的健康监测数据,如体重、血压、血糖、心率等。这些数据可以帮助个人了解自己的健康状况,及时发现问题并采取相应的措施。

    健康档案模块可以记录个体的疾病诊断和治疗信息,包括疾病的类型、治疗方案、用药情况等。这些信息有助于个体管理自己的疾病,并为医疗服务提供者提供参考,以便为个体提供更加精确的治疗建议。

    2.2 体检档案模块

    体检档案模块可以记录个人的体检数据,如身高、体重、血压、血糖、胆固醇等指标。这些数据可以提供给医疗服务提供者,帮助他们了解个体的健康状况,评估个体的健康风险和潜在疾病

    体检档案模块可以追踪个人的体检历史,记录个体每次体检的结果和变化趋势。通过对比不同时间段的体检数据,可以及时发现个体的健康变化,提前预防和干预潜在的健康问题。

    基于个人的体检数据和健康档案信息,体检档案模块可以提供针对个体的健康建议和指导。根据个体的体检结果和健康状况,系统可以生成个性化的健康改善方案,并提供相关的健康知识和建议,帮助个体更好地管理和改善自己的健康。

    2.3 健康咨询模块

    个人健康管理系统需要健康咨询模块是因为健康咨询是个体获取健康信息和专业指导的重要途径,健康咨询模块可以通过提供健康知识和教育资料,帮助个体了解健康问题和预防方法。通过解答常见的健康问题和提供权威的健康指导,个人可以更好地了解如何保持健康、预防疾病,并做出正确的健康决策。健康咨询模块可以根据个体的健康状况和需求,提供个性化的健康指导和建议。通过分析个体的健康档案和体检数据,系统可以针对个体的特定情况给出相应的健康咨询,如饮食建议、运动方案、心理健康指导等。这样,个人可以根据自己的实际情况进行健康管理,并更好地控制和改善自己的健康。


    三、系统展示

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


    四、核心代码

    4.1 查询健康档案

    @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
    @ApiOperation(value = "查询健康档案")
    public Result<IPage<HealthArchives>> getByPage(@ModelAttribute HealthArchives healthArchives ,@ModelAttribute PageVo page){
        QueryWrapper<HealthArchives> qw = new QueryWrapper<>();
        User currUser = securityUtil.getCurrUser();
        QueryWrapper<User> userQw = new QueryWrapper<>();
        userQw.eq("id",currUser.getId());
        userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1536606659751841799'");
        if(iUserService.count(userQw) < 1L) {
            qw.eq("user_id",currUser.getId());
        }
        if(!ZwzNullUtils.isNull(healthArchives.getUserName())) {
            qw.like("user_name",healthArchives.getUserName());
        }
        if(!ZwzNullUtils.isNull(healthArchives.getContent1())) {
            qw.like("content1",healthArchives.getContent1());
        }
        IPage<HealthArchives> data = iHealthArchivesService.page(PageUtil.initMpPage(page),qw);
        return new ResultUtil<IPage<HealthArchives>>().setData(data);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    4.2 新增健康档案

    @RequestMapping(value = "/insert", method = RequestMethod.POST)
    @ApiOperation(value = "新增健康档案")
    public Result<HealthArchives> insert(HealthArchives healthArchives){
        User user = iUserService.getById(healthArchives.getUserId());
        if(user == null) {
            return ResultUtil.error("人员不存在");
        }
        healthArchives.setDate(DateUtil.today());
        healthArchives.setUserName(user.getNickname());
        healthArchives.setMobile(user.getMobile());
        iHealthArchivesService.saveOrUpdate(healthArchives);
        return new ResultUtil<HealthArchives>().setData(healthArchives);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    4.3 查询体检档案

    @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
    @ApiOperation(value = "查询体检档案")
    public Result<IPage<CheckArchives>> getByPage(@ModelAttribute CheckArchives checkArchives ,@ModelAttribute PageVo page){
        QueryWrapper<CheckArchives> qw = new QueryWrapper<>();
        User currUser = securityUtil.getCurrUser();
        QueryWrapper<User> userQw = new QueryWrapper<>();
        userQw.eq("id",currUser.getId());
        userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1536606659751841799'");
        if(iUserService.count(userQw) < 1L) {
            qw.eq("user_id",currUser.getId());
        }
        if(!ZwzNullUtils.isNull(checkArchives.getUserName())) {
            qw.like("user_name",checkArchives.getUserName());
        }
        if(!ZwzNullUtils.isNull(checkArchives.getMobile())) {
            qw.like("mobile",checkArchives.getMobile());
        }
        if(!ZwzNullUtils.isNull(checkArchives.getResult())) {
            qw.like("result",checkArchives.getResult());
        }
        IPage<CheckArchives> data = iCheckArchivesService.page(PageUtil.initMpPage(page),qw);
        return new ResultUtil<IPage<CheckArchives>>().setData(data);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    4.4 新增体检档案

    @RequestMapping(value = "/insert", method = RequestMethod.POST)
    @ApiOperation(value = "新增体检档案")
    public Result<CheckArchives> insert(CheckArchives checkArchives){
        User user = iUserService.getById(checkArchives.getUserId());
        if(user == null) {
            return ResultUtil.error("人员不存在");
        }
        checkArchives.setUserName(user.getNickname());
        checkArchives.setMobile(user.getMobile());
        checkArchives.setDate(DateUtil.today());
        iCheckArchivesService.saveOrUpdate(checkArchives);
        return new ResultUtil<CheckArchives>().setData(checkArchives);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    4.5 新增健康咨询

    @RequestMapping(value = "/insert", method = RequestMethod.POST)
    @ApiOperation(value = "新增健康咨询")
    public Result<HealthMessage> insert(HealthMessage healthMessage){
        User currUser = securityUtil.getCurrUser();
        healthMessage.setUserId(currUser.getId());
        healthMessage.setUserName(currUser.getNickname());
        healthMessage.setTime(DateUtil.now());
        healthMessage.setReplyContent("");
        healthMessage.setReplyUser("");
        healthMessage.setReplyTime("");
        iHealthMessageService.saveOrUpdate(healthMessage);
        return new ResultUtil<HealthMessage>().setData(healthMessage);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    五、免责说明

    • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
    • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
    • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

    下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

    1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
    2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
    3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
    4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

    在这里插入图片描述

  • 相关阅读:
    Nacos集群搭建
    ElementUI自定义主题
    读书笔记:《海龟交易法则》
    Ubuntu20.04安装 mysql8.0.32
    opencv创建窗口—cv.namedWindow()
    英语语法 — 引语
    PFL-MoE:基于混合专家的个性联邦学习
    C#知识|上位机UI设计-详情窗体设计思路及流程(实例)
    前端vue中箭头函数省略return的写法之详细讲解
    JQ css操作 动画
  • 原文地址:https://blog.csdn.net/customer08/article/details/136751253