Vue+SpringBoot打造个人健康管理系统

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 健康档案模块
    • 2.2 体检档案模块
    • 2.3 健康咨询模块
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询健康档案
    • 4.2 新增健康档案
    • 4.3 查询体检档案
    • 4.4 新增体检档案
    • 4.5 新增健康咨询
  • 五、免责说明


一、摘要

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);
}

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);
}

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);
}

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);
}

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);
}

五、免责说明

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

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/735311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【周总结周末日常】

周总结 完成任务开发并且与前端联调通过 完成已开发功能的冒烟测试 修复测试中出现的一些数据显示问题 2024/3/10 晴 温度适宜 这周天气比上周好多了&#xff0c;最起码见到好几次太阳 周六在世纪公园溜达一会儿&#xff0c;偶尔呼吸下大自然&#xff0c;挺棒的…

[2023年]-hadoop面试真题(二)

[2023年]-hadoop面试真题(一) &#xff08;北京&#xff09; Maptask的个数由什么决定?&#xff08;北京&#xff09; 如何判定一个job的map和reduce的数量 ?&#xff08;北京&#xff09; MR中Shuffle过程 ?&#xff08;北京&#xff09; MR中处理数据流程 ?&#xff08;…

c++深拷贝和浅拷贝的区别

在 C 中&#xff0c;深拷贝&#xff08;deep copy&#xff09;和浅拷贝&#xff08;shallow copy&#xff09;是与对象拷贝相关的概念 浅拷贝&#xff08;Shallow Copy&#xff09;&#xff1a; 浅拷贝是指将一个对象的值复制到另一个对象&#xff0c;但如果对象中包含指针成…

【QT】创建第一个QT程序

下面的前7个可以先不看&#xff0c;直接从8开始看 1. 创建Qt程序 一个Qt程序的组成部分&#xff1a;应用程序类&#xff0c;窗口类应用程序类个数&#xff1a;有且只有一个QApplication a;如何查看类对应的模块&#xff1a;光标移动到类上&#xff0c;F1qmake模块的名字 2. …

Redis的主从、哨兵、集群模式的概念及搭建步骤

主从复制 主从模式也叫主从复制&#xff0c;主是主服务器&#xff0c;从是从服务器&#xff0c;主服务器&#xff08;master &#xff09;的数据如果更新了 也会同步到从服务器&#xff08;slave&#xff09;&#xff0c;一个主服务器可以搭配很多个从服务器&#xff0c;主服务…

【设计模式】(四)设计模式之工厂模式

1. 工厂模式介绍 工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 工厂模式有三种实现方式&#xff1a; 简单工厂模式工厂方法模式抽象工厂模式 2. 工厂方…

前后端分离项目,如何解决跨域问题?

跨域问题是前后端分离项目中非常常见的一个问题&#xff0c;举例来说&#xff0c;编程猫学习网站的前端服务跑在 8080 端口下&#xff0c;后端服务跑在 9002 端口下&#xff0c;那么前端在请求后端接口的时候就会出现跨域问题。 403 Forbidden 是HTTP协议中的一个状态码&#x…

华容道问题求解_详细设计(五)之hash值和回放功能

&#xff08;续上文&#xff09; 布局的hash 值计算 笔者也参考了之前的一些文章&#xff0c;很多文章提到了怎么节省存贮空间来查找最优解&#xff0c;这不是笔者的目的。笔者的目的比较单一&#xff0c;就是找到最优解就行了。因此并没有在存贮上面进行过多的优化&#xff…

Linux系统adb调试小米手机调试不成功出现Exception occurred while executing ‘put‘:问题解决

参考文章&#xff1a;执行android settings命令报错原因Exception occurred while executing put: java.lang.SecurityException: Pe... - 简书 (jianshu.com) 解决Android U无法通过adb安装应用(Caller has no access to session -1)的问题_performing streamed install-CSDN…

P3405 [USACO16DEC] Cities and States S题解

题目 Farmer John有若干头奶牛。为了训练奶牛们的智力&#xff0c;Farmer John在谷仓的墙上放了一张美国地图。地图上表明了每个城市及其所在州的代码&#xff08;前两位大写字母&#xff09;。 由于奶牛在谷仓里花了很多时间看这张地图&#xff0c;他们开始注意到一些奇怪的…

消息队列 MQ

文章目录 1. MQ 相关概念1.1 什么是 MQ1.2 为什么要用 MQ1.3 MQ 分类1.4 MQ 的选择 1. MQ 相关概念 1.1 什么是 MQ MQ(message queue)&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO 先入先出&#xff0c;只不过队列中存放的内容是 message 而已&#x…

【 React 】state和props有什么区别?

1. state 一个组件的显示形态可以由数据状态和外部参数所决定&#xff0c;而数据状态就是state&#xff0c;一般在constructor中初始化 当需要修改里面的值的状态需要通过调用setState来改变&#xff0c;从而达到更新组件内部数据的作用&#xff0c;并且重新调用组件render方法…

阿里云DSW做AI绘画时的显卡选择A10?V100?

V100是Volta架构&#xff0c;A10是Ampere架构&#xff0c;架构上讲A10先进点&#xff0c;其实只是制程区别&#xff0c;用起来没区别。 V100是HBM的内存读取&#xff0c;带宽大&#xff0c;但是DDR5的。 二块卡都是全精度为主的算力卡&#xff0c;半精度优势不明显。 需要用…

uniapp 开发app,如何使用模拟器

1、开发app &#xff0c;设置模拟器 &#xff08;uniapp 如何设置模拟器&#xff09; https://blog.csdn.net/sweetsoft/article/details/130727169 2、运行到模拟器 注意&#xff1a;1、模拟器所在的位置&#xff1a;“D:\Program Files\Nox\bin”&#xff0c;在该文件夹下找…

FPN(Feature Pyramid Network)

参考&#xff1a; 【目标检测】FPN(Feature Pyramid Network) - 知乎 Feature pyramid network是CVPR2017年的一篇文章&#xff0c;它在目标检测中融入了特征金字塔&#xff0c;提高了目标检测的准确率&#xff0c;尤其体现在小物体的检测上。 1. 动机(Motivation) 识别不同…

【三两波折】char *foo[]和char(*foo)[]有何不同?

1、先谈优先级 最高级别 —— 有四个&#xff0c;他们并不像运算符&#xff1a; []数组下标左到右结合()用于&#xff08;表达式&#xff09; or 函数名(形参表)左到右结合.读取结构体成员左到右结合->读取结构体成员&#xff08;通过指针&#xff09;左到右结合 第二级别…

【读书笔记】针对ICS的ATTCK矩阵详解(一)

Techniques - ICS | MITRE ATT&CKhttps://attack.mitre.org/techniques/ics/ 一、初始访问&#xff08;Initial Access&#xff09; 该阶段&#xff1a;攻击者正在尝试进入ICS环境。 初始访问包括攻击者可能用作入口向量&#xff0c;从而可以在 ICS 环境中获得初始立足点的…

pytorch实现分割模型TransUNet

TransUNet是一个非常经典的图像分割模型。该模型出现在Transformer引入图像领域的早期&#xff0c;所以结构比较简单&#xff0c;但是实际上效果却比很多后续花哨的模型更好。所以有必要捋一遍pytorch实现TransUNet的整体流程。 首先&#xff0c;按照惯例&#xff0c;先看一下…

逼疯快递员的送货上门,谁来背锅?

快递上门的问题近几年来一直争论不休。 最近&#xff0c;随着新修订的《快递市场管理办法》正式实施&#xff0c;这个话题又成为了焦点。 消费者希望快递能够送上门省去麻烦&#xff0c;快递员希望统一送到代收点提高效率。 是消费者要求太高&#xff1f;快递员太过怠慢&…

LightDB24.1插件oracle_fdw需要支持oracle.date和oracle.varchar2类型

背景介绍 oracle.date和oracle.varchar2是LightDB中新增的类型&#xff0c;对应于Oracle数据库的date和varchar2类型。oracle_fdw是第三方插件&#xff0c;所以不支持oracle.date和oracle.varchar2类型。从LightDB24.1版本开始&#xff0c;oracle_fdw插件开始支持oracle.date和…