基于JAVA+SpringBoot+Vue的前后端分离的大学健康档案管理系统

一、项目背景介绍:

随着社会的发展和科技的进步,人们越来越重视健康问题。大学作为培养人才的摇篮,学生的健康状况直接影响到国家的未来。然而,传统的大学健康档案管理方式存在诸多问题,如信息不透明、数据分散、更新不及时等。为了解决这些问题,我们提出了一种基于JAVA+SpringBoot+Vue的前后端分离的大学健康档案管理系统。

该系统采用前后端分离的架构设计,前端使用Vue.js框架进行开发,后端使用Java语言和SpringBoot框架进行开发。通过这种架构设计,我们可以实现前后端的数据交互和业务逻辑处理,提高系统的可维护性和扩展性。

在功能方面,该系统主要包括以下几个模块:

用户管理模块:实现用户的注册、登录、修改个人信息等功能。

健康档案管理模块:用户可以查看和管理自己的健康档案,包括体检记录、疫苗接种记录、疾病史等信息。

健康资讯模块:提供健康相关的资讯和文章,帮助用户了解健康知识,提高自我保健意识。

系统管理模块:管理员可以对系统进行配置和管理,包括用户管理、权限管理等功能。

通过这个系统,我们可以实现大学健康档案的集中管理,提高档案信息的透明度和准确性。同时,学生和教职工可以方便地查询和管理自己的健康档案,及时了解自己的健康状况。此外,该系统还可以为学校提供有关学生健康状况的数据支持,有助于学校制定更加科学合理的健康教育政策。

二、项目技术简介:
  1. JAVA:Java是一门 面向对象编程语言 ,不仅 吸收了C++语言的各种优点 ,还摒弃了C++里难以理解的 多继承、指针 等概念,因此Java语言具有 功能强大和简单易用 两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。 Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。
  3. Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
  4. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来 简化 新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  5. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。

三、系统功能模块介绍:

四、数据库设计:

1:check_info(check_info)

字段名

类型

默认值

列注释

id

int

NULL

create_datetime

timestamp

NULL

update_datetime

timestamp

NULL

all_legs

varchar

NULL

四肢

arthrosis

varchar

NULL

关节

assay_check

varchar

NULL

birth

datetime

NULL

blood_pressure

int

NULL

check_result

varchar

NULL

check_time

datetime

NULL

chest_check

varchar

NULL

college

varchar

NULL

color_or_code

varchar

NULL

彩色图案及编码

correct_left_view

double

NULL

correct_right_view

double

NULL

culture_level

varchar

NULL

ear_sick

varchar

NULL

耳疾

foot

varchar

NULL

平足

glandula_thyroidea

varchar

NULL

甲状腺

grade

varchar

NULL

growth

varchar

NULL

发育营养

heart

varchar

NULL

心脏及血管

height

double

NULL

history_check

varchar

NULL

既往医史

hypodontia

varchar

NULL

缺齿

left_audition

double

NULL

left_view

double

NULL

liver

varchar

NULL

lung

varchar

NULL

肺及呼吸道

lymph

varchar

NULL

淋巴

major

varchar

NULL

mind

varchar

NULL

神经及精神

name

varchar

NULL

nation

varchar

NULL

native_place

varchar

NULL

occupation

varchar

NULL

other_check

varchar

NULL

other_eyes_sick

varchar

NULL

其他眼疾

other_internal_sick

varchar

NULL

其他内科疾病

other_sense_sick

varchar

NULL

其他五官疾病

other_surgery_sick

varchar

NULL

其他外科疾病

paranasal_sinus

varchar

NULL

鼻窦

photo

longtext

NULL

present_address

varchar

NULL

pulse

int

NULL

real_age

int

NULL

remark

varchar

NULL

right_audition

double

NULL

right_view

double

NULL

sealer

varchar

NULL

sex

varchar

NULL

sign_for_assay

varchar

NULL

sign_for_chest

varchar

NULL

sign_for_ear

varchar

NULL

sign_for_eyes

varchar

NULL

sign_for_internal

varchar

NULL

sign_for_mouth

varchar

NULL

sign_for_result

varchar

NULL

sign_for_surgery

varchar

NULL

single_color_judge

varchar

NULL

单色识别

skin

varchar

NULL

皮肤

smell

varchar

NULL

嗅觉

spine_backbone

varchar

NULL

脊柱

spleen

varchar

NULL

stammer

varchar

NULL

口吃

stu_no

varchar

NULL

suggest_for_check

varchar

NULL

throat

varchar

NULL

咽喉

tooth_place

varchar

NULL

齿槽

tooth_sick

varchar

NULL

龋齿

user_id

int

NULL

waistline

double

NULL

weight

double

NULL

work_place

varchar

NULL

check_year

varchar

NULL

2:health_document(health_document)

字段名

类型

默认值

列注释

id

int

NULL

create_datetime

timestamp

NULL

update_datetime

timestamp

NULL

author

varchar

NULL

book

varchar

NULL

content

longtext

NULL

description

text

NULL

is_published

int

NULL

publish_data

datetime

NULL

visit_num

varchar

NULL

3:resources(resources)

字段名

类型

默认值

列注释

id

int

NULL

create_datetime

timestamp

NULL

update_datetime

timestamp

NULL

icon

varchar

NULL

name

varchar

NULL

parent_id

int

NULL

permission

varchar

NULL

sort

int

NULL

type

int

NULL

url

varchar

NULL

4:role(role)

字段名

类型

默认值

列注释

id

int

NULL

create_datetime

timestamp

NULL

update_datetime

timestamp

NULL

remark

varchar

NULL

role_name

varchar

NULL

5:role_resource_bind(role_resource_bind)

字段名

类型

默认值

列注释

id

int

NULL

create_datetime

timestamp

NULL

update_datetime

timestamp

NULL

resource_id

int

NULL

role_id

int

NULL

6:suggestion(suggestion)

字段名

类型

默认值

列注释

id

int

NULL

create_datetime

timestamp

NULL

update_datetime

timestamp

NULL

check_info_id

int

NULL

content

varchar

NULL

doctor_id

int

NULL

is_read

int

NULL

office

varchar

NULL

user_id

int

NULL

7:system_info(system_info)

字段名

类型

默认值

列注释

id

int

NULL

create_datetime

timestamp

NULL

update_datetime

timestamp

NULL

notice

varchar

NULL

system_name

varchar

NULL

version

varchar

NULL

8:user(user)

字段名

类型

默认值

列注释

id

int

NULL

create_datetime

timestamp

NULL

update_datetime

timestamp

NULL

birth

datetime

NULL

college

varchar

NULL

grade

varchar

NULL

major

varchar

NULL

name

varchar

NULL

password

varchar

NULL

role_id

int

NULL

sex

varchar

NULL

stu_no

varchar

NULL

username

varchar

NULL

culture_level

varchar

NULL

nation

varchar

NULL

native_place

varchar

NULL

occupation

varchar

NULL

present_address

varchar

NULL

work_place

varchar

NULL

photo

longtext

NULL

real_age

int

NULL

teacher_id

int

NULL

五、功能模块:
  1. 系统登录注册:

  1. 个人信息:身高体重分析,基本信息

  1. 个人健康档案:不同学年的健康档案统计

  1. 档案详情:主要包含基本信息,以及健康信息

  1. 健康建议:医生角色给其他用户的健康建议

  1. 健康知识阅读:

  1. 系统权限管理:

六、代码示例:
 @GetMapping("/getCurrentCheckInfo/{userId}")
    ResponseEntity<CheckInfo> getCurrentCheckInfo(@PathVariable("userId") Integer userId) {
        return checkInfoService.getCurrentCheckInfo(userId);
    }

    @GetMapping("/getBim")
    ResponseEntity judgeIsHealth(Double height, Double weight) {
        String suggestion;
        if (height == null || weight == null) {
            throw new MyException(ExceptionEnums.NO_WEIGHT_HEIGHT);
        }
        Double result = weight / ((height / 100) * (height / 100));
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(2);
        nf.setRoundingMode(RoundingMode.UP);
        result = Double.valueOf(nf.format(result));
        if (result < 19) {
            suggestion = "体重偏低";
        } else if (result < 25) {
            suggestion = "健康体重";
        } else if (result < 30) {
            suggestion = "超重";
        } else if (result < 39) {
            suggestion = "严重超重";
        } else {
            suggestion = "极度超重";
        }
        return ResponseEntity.ok(new HealthDTO().setBim(result).setSuggestion(suggestion));
    }

    @GetMapping("/getDataAnalysis/{userId}")
    ResponseEntity getDataAnalysis(@PathVariable("userId") Integer userId) {
        List<CheckInfo> analysis = checkInfoService.getDataAnalysis(userId);
        if (analysis == null) {
            throw new MyException(ExceptionEnums.NO_CHECK_INFO);
        } else {
            List<String> label = new ArrayList<>();
            List<Double> height = new ArrayList<>();
            List<Double> weight = new ArrayList<>();
            analysis.forEach(v -> {
                label.add(v.getCheckYear());
                height.add(v.getHeight());
                weight.add(v.getWeight());
            });
            return ResponseEntity.ok(new AnalysisData().setLabel(label).setHeight(height).setWeight(weight));
        }
    }

    @ApiOperation(value = "基础接口: 分页返回数据")
    @PostMapping(value = "page")
    public ResponseEntity<Page<CheckInfo>> page(@RequestBody Condition condition) {
        //log.info();
        return ResponseEntity.ok(checkInfoService.selectPage(condition));
    }

    /**
     * 判断体检表是否存在
     *
     * @param userId    用户id
     * @param checkYear 检查年份
     * @return 是否存在
     */
    @GetMapping("/judgeCheckIsExist")
    ResponseEntity judgeCheckIsExist(Integer userId, String checkYear) {
        boolean aBoolean = checkInfoService.CheckIsExist(userId, checkYear);
        return ResponseEntity.ok(aBoolean);
    }

    @ApiOperation(value = "基础接口: 新增操作")
    @PostMapping(value = "add")
    @RequiresPermissions("checkInfo:add")
    public ResponseEntity<CheckInfo> save(@RequestBody CheckInfo checkInfo) {
        checkInfo.setCreateDatetime(new Date());
        checkInfo.setUpdateDatetime(new Date());
        LambdaQueryWrapper<CheckInfo> checkInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
        checkInfoLambdaQueryWrapper.eq(CheckInfo::getCheckYear, checkInfo.getCheckYear());
        checkInfoLambdaQueryWrapper.eq(CheckInfo::getStuNo, checkInfo.getStuNo());

        CheckInfo check = checkInfoService.getOne(checkInfoLambdaQueryWrapper);
        if (null == check && checkInfo.getCheckYear() != null) {
            boolean save = checkInfoService.save(checkInfo);
            if (save) {
                return ResponseEntity.ok(checkInfo);
            }
        }
        throw new MyException(ExceptionEnums.ADD_ERROR);
    }

    @ApiOperation(value = "基础接口: 返回指定ID的数据")
    @GetMapping(value = "get/{id}")
    public ResponseEntity<CheckInfo> get(@PathVariable("id") Integer id) {
        CheckInfo checkInfo = checkInfoService.getById(id);
        if (checkInfo != null) {
            return ResponseEntity.ok(checkInfo);
        }
        throw new MyException(ExceptionEnums.GET_ITEM);
    }

七、项目总结:

通过对基于JAVA+SpringBoot+Vue的前后端分离的大学健康档案管理系统的开发,让我深刻明白开发一个程序软件需要经历的流程,当确定要开发一个基于JAVA+SpringBoot+Vue的前后端分离的大学健康档案管理系统的程序时,

我在开发期间,对其功能进行合理的需求分析,然后才是程序软件的功能的框架设计,数据库的实体与数据表设计,

程序软件的功能详细界面实现,以及程序的功能测试等进行全方位的细致考虑,虽然在此过程中,各个环节都遇到了大大小小的困难,但是通过对这些问题进行反复的分析,深入的思考,

借助各种相关文献资料提供的方法与解决思路成功解决面临的各个问题,最后成功的让我开发的基于JAVA+SpringBoot+Vue的前后端分离的大学健康档案管理系统得以正常运行。

基于JAVA+SpringBoot+Vue的前后端分离的大学健康档案管理系统在功能上面是基本可以满足用户对系统的操作,但是这个程序软件也有许多方面是不足的,因此,在下一个时间阶段,有几点需要改进的地方需要提出来,它们分别是:

(1)操作页面可以满足用户简易操作的要求,但是在页面多样化设计层面上需要把一些比较丰富的设计结构考虑进来。

(2)程序软件的总体安全性能需要优化,例如程序的退出安全性,以及程序的并发性等问题都需要进行安全性升级,让开发的基于JAVA+SpringBoot+Vue的前后端分离的大学健康档案管理系统中的相关网站更贴合。

(3)需要对程序的数据结构方面,程序的代码方面等进行优化,让运行起来的程序可以保持稳定运行,也让程序能够保证短时间内处理相关事务,节省处理事务的时间,提高事务处理的效率,

同时对服务器上资源占用的比例进行降低。

基于JAVA+SpringBoot+Vue的前后端分离的大学健康档案管理系统的开发一方面是对自身专业知识技能进行最终考核,另一方面也是让自己学会独立解决程序开发过程中所遇到的问题,掌握将理论知识运用于程序开发实践的方法。

基于JAVA+SpringBoot+Vue的前后端分离的大学健康档案管理系统的开发最终目标就是让系统更具人性化,同时在逻辑设计上,让系统能够更加的严谨。

八、源码获取:

 此源码非开源,若需要此源码可扫码添加微信进行咨询!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL数据库 | 第二十二篇】深入了解MySQL锁

前言&#xff1a; MySQL作为世界上最流行的关系型数据库管理系统之一&#xff0c;广泛应用于各种规模和类型的应用程序中。在处理高并发和大规模数据操作时&#xff0c;确保数据的一致性和完整性是至关重要的。而MySQL的锁机制正是在这样的背景下发挥着重要作用。 MySQL锁机制…

LeetCode 热题 100 | 贪心算法

目录 1 121. 买卖股票的最佳时机 2 55. 跳跃游戏 3 45. 跳跃游戏 II 4 763. 划分字母区间 菜鸟做题&#xff0c;语言是 C 1 121. 买卖股票的最佳时机 解题思路&#xff1a; 维护一个变量 max_pricemax_price 用于存储排在 i 天之后的股票最高价格第 i 天的最高利润 …

地质地貌卫星影像集锦(三 矿产资源篇)

1. 元古代沉积岩的抬升 这个地区位于Leigh Creek中部&#xff0c;距离澳大利亚南部的阿德莱德约500km&#xff0c;弗林德斯山脉的北面是Gawler克拉通。弗林德斯山脉是由元古代沉积岩抬升后形成的块体&#xff0c;在其之下的是寒武纪的岩石&#xff0c;它座落在距阿德莱德北…

唐刘:关于产品质量的思考 - 我的基本认知

我在文章《 TiDB in 2023 - 一次简单的回顾 》 中提到了一个我一直以来面临的问题&#xff1a;每次 TiDB 发布新版本后&#xff0c;我如何能够非常自信地告诉客户&#xff0c;这个版本的质量很好&#xff0c;大家可以放心使用呢&#xff1f; 坦白地说&#xff0c; 这个问题并不…

[HackMyVM]靶场Deeper

难度:Easy kali:192.168.56.104 靶机:192.168.56.148 端口扫描 ┌──(root㉿kali2)-[~/Desktop] └─# nmap 192.168.56.148 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-05 19:55 CST Nmap scan report for 192.168.56.148 Host is up (0.00013s latency). N…

数据结构:详解【树和二叉树】

1. 树的概念及结构&#xff08;了解&#xff09; 1.1 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝…

智慧公厕升级为多功能城市智慧驿站,助力智慧城市发展

在现代城市的建设中&#xff0c;公共厕所作为基础必备的民生设施&#xff0c;一直是城市管理的重要组成部分。随着科技的不断发展&#xff0c;智慧公厕应运而生&#xff0c;成为了公共厕所信息化、数字化、智慧化的应用解决方案。而近年来&#xff0c;智慧公厕也进行了升级发展…

20240309web前端_第三周作业_教务系统页面

作业&#xff1a;教务系统页面 成果展示&#xff1a; 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1…

拥塞控制算法系列之:Swift-谷歌2020年SIGCOM-包级别端到端TIMELY拥塞控制算法

核心要点&#xff1a; 谷歌 2020 SIGCOM基于delay的AIMD拥塞拆分EC和FC&#xff0c;时延敏感场景优势分别计算EC和FC的wnd&#xff08;最核心&#xff09;保障吞吐和低延迟。Swift 因利用延迟的简单性和有效性而闻名包级别的论文&#xff1a;https://dl.acm.org/doi/pdf/10.11…

【保姆级讲解如何计算机视觉入门】

&#x1f308;个人主页:程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

江协STM32:对射式红外传感器计次和旋转编码器计次

对射式红外传感器计次 还是复制粘贴之前的文件 创建外部中断文件 然后写初始化函数 外部中断函数创建 这里写外部中断函数 看着这个图来配置 具体步骤就是&#xff1a; 第一步&#xff0c;配置RCC&#xff0c;把我们这里涉及的外设的时钟都打开&#xff0c;不打开时钟&#…

深入浅出 -- 系统架构之微服务中OpenFeign最佳实践

前面我们讲了一下 Ribbon 和 RestTemplate 实现服务端通信的方法&#xff0c;Ribbon 提供了客户端负载均衡&#xff0c;而 RestTemplate 则对 http 进行封装&#xff0c;简化了发送请求的流程&#xff0c;两者互相配合&#xff0c;构建了服务间的高可用通信。 但在使用后也会发…

c++的学习之路:12、vector(1)

这章主要是根据cplusplus中的文档进行使用Vector&#xff0c;文章末附上测试代码。 目录 一、什么是vector 二、vector的简单使用 三、代码 一、什么是vector 下图是cplusplus的简介&#xff0c;上面一共有六点&#xff0c;如下&#xff1a; 1、vector是表示可变大小数组…

Leetcode 216.组合总和III

题目 思路 题目说只使用数字1-9&#xff0c;是k个数的和 树的宽度是1-9&#xff0c;树的深度是k 1.确定递归函数的返回值及参数&#xff1a; 返回值是void,参数这里还是先设定两个全局变量。一个是path存放符合条件单一结果。如&#xff1a;&#xff08;1&#xff0c;2&…

VSCODE EIDE使用debug记录

用上vscode之后就感觉之前的keil不太爽了&#xff0c;找什么东西搜索都很麻烦&#xff0c;之前有写过eide的文章&#xff0c;想着能不能在eide里面就把debug也做了&#xff0c;发现真的可以&#xff0c;下面记录一下&#xff0c;主要是参考这个大佬的文章&#xff0c;非常感谢。…

微电网优化:基于肝癌算法(Liver Cancer algorithm, LCA)的微电网优化(提供MATLAB代码)

一、微电网优化模型 微电网是一个相对独立的本地化电力单元&#xff0c;用户现场的分布式发电可以支持用电需求。为此&#xff0c;您的微电网将接入、监控、预测和控制您本地的分布式能源系统&#xff0c;同时强化供电系统的弹性&#xff0c;保障您的用电更经济。您可以在连接…

离线数仓(十)【ADS 层开发】

前言 剩下的 ADS 层主要就是写 SQL 了&#xff0c;就像我们之前练习的 HQL 题一样&#xff0c;不同的是这里的数据从哪张表读取&#xff08;DWD 还是 ADS 甚至个别表需要从 DIM 层读取&#xff09;需要我们自己来分析。 ADS 的建表语句和 MySQL 是对应的&#xff0c;我们到时候…

网络协议——HTTP协议

目录 ​编辑 一&#xff0c;HTTP协议基本认识 二&#xff0c;认识URL 三&#xff0c;http协议的格式 1&#xff0c;发送格式 2&#xff0c;回应格式 四&#xff0c;服务端代码 五&#xff0c;http报文细节 1&#xff0c;Post与Get方法 2&#xff0c;Content_lenth 3&…

OpenCV-python安装教程

先安装opencv-contrib-python pip install opencv-contrib-python 再换源安装opencv-python pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 如果出现 使用这个&#xff0c;3.6环境下不能安装opencv的最新版本 pip install opencv-python4.5.5.62…

ST表(Segment Tree)

目录 1.概述 2.引入 3.ST表对引入的优化 1.概述 ST表是一种基于树形结构的数据结构&#xff0c;用于处理区间查询和更新操作。它通过预处理的方式将原始数据存储在树状结构中&#xff0c;以支持高效的区间查询。ST表的构建时间复杂度为O(nlogn)&#xff0c;其中n为原始数据…