
目录1.项目介绍 11.1设计背景 11.2 设计目的和意义 11.3 国内外研究现状 21.4软件架构 32 系统需求分析 32.1 系统目标 32.2 系统的功能要求 32.2.1 前台功能 32.2.2 后台功能 42.3 系统的性能需求 42.4 系统的数据要求 42.4.1 数据的性质 42.4.2 数据字典 52.4.3 实体联系图 93.项目实现 94.项目展示 23登录页 234.1医生用户 23首页 23健康建议 24健康阅读 24添加文章 25健康档案管理 25查看档案 26修改密码 264.2普通用户 27主页 27个人信息 28查看个人档案 28健康阅读 284.3管理员用户 29主页 29角色管理 29新增角色 30用户管理 30权限管理 315.系统测试 325.1 编写测试用例 32登陆测试用例 32注册测试用例 325.2 单元测试 325.3 系统和集成测试 336 结论 331.项目介绍大学生健康档案管理系统通过电子健康档案管理系统这个平台可以实现人员健康情况的信息化、网络化、系统化、规范化管理从繁杂的数据查询和统计中解脱出来更好的掌握人员健康状况。系统的主要功能包括人员档案管理、体检管理与疾病信息管理。本系统前台主要使用Vue作为开发语言后台使用mysql作为数据库管理系统开发环境是Idea开发出的一个基于Web技术的C/S结构的电子健康档案管理系统。本系统最大的特点是使用操作简单、友好的提示信息。本系统将实现以下基本功能1系统具有简洁大方的页面使用简便友好的错误操作提示2管理员用户具有人员档案管理、健康体检管理、疾病信息管理、系统管理功能3具有较强的安全性避免用户的恶意操作1.1设计背景紧张的工作节奏、教学和科研的压力、个人不良的工作生活习惯、以及伴随工作压力而来的家庭关系、人际关系紧张等因素使得高校群体成为慢性病的高发群体。学生入学的定期体检教职工人入职体检以及所有学生和教职工的定期体检工作甚至个人自愿定期进行身体健康检查等都离不开医院的体检。人们对体检工作越来越重视目前传统的体检一直延用手工管理的方式对健康信息的可视化平台需求迫切。实现对健康信息分析的可视化根据高危人群的日常行为建立由此引发的发病概率预测模型对高危人群做出相应的行为干预。健康管理平台不仅包含对个体健康曲线的可视化同时包含对某群体健康曲线的可视化及预测并以此为基础对个体日常行为的干预显示以此为背景我选择设计健康管理平台。1.2 设计目的和意义健康管理既是一个概念也是一种方法更是一套完善、周密的服务程序其目的在于使病人以及健康人更好地拥有健康、恢复健康、促进健康并尽量节约经费开支有效降低医疗支出。健康管理有如下几大作用一是可以了解居民的身体年龄判断疾病指向二是可以根据日常行为判断发病概率以此为基础由医生提供降低慢性病发生危险性的行为干预方案三是可以长期终生跟踪高危人群的健康最大限度减少重大疾病的发生四是可以节省维护健康的时间和金钱提高保健效率。建立面向大学生的健康管理平台的目的对于个人是如何利用健康体检系统中的信息为人们的健康保驾护航。而健康信息信息管理系统的管理和利用不仅需要具备基础医学知识、临床医学知识、流行病学知识、计算机技术、数学统计知识等综合素质的专业人员同时需要有庞大的保健医学、预防医学、临床医学、康复医学等专业的资深专家团队的支持才能够为个人提供一系列的健康管理服务。当今世界信息管理数字化非计算机莫属只有利用计算机技术使用我国各个高校统一标准的健康体检系统表格开发高校健康体检系统的系统软件设置大学生健康体检系统的计算机编号制作大学生的健康体检档案并详细记录其本次体检程中所发现的健康问题和处理情况等实现用户的健康体检系统信息在学校范围内的网络信息交换和共享利用计算机技术对用户的健康体检系统实现连续的动态管理。本文转载自http://www.biyezuopin.vip/onews.asp?id14684健康信息管理系统以计算机为工具通过对用户体检所得的数据进行信息管理把管理人员从繁琐的数据计算处理中解脱出来为更好的帮组用户身体健康监督检查从而全面提高质量。具体通过本系统可以对用户的基本健康状况进行各种必要的统计和分析。本项目将针对高校群体研发多模态的健康数据采集系统对历年体检数据、就诊数据、膳食结构、生活习惯等健康相关信息建立统一管理系统并在此基础上采用数据挖掘方法对诸如心血管疾病、高血压、糖尿病等慢性病进行有效建模与评估对高校群体内广泛存在的亚健康状态进行综合客观评价和风险预测最终实现针对高校群体慢性病患者及其高危人群的动态跟踪健康管理与干预。3.项目实现 3.1项目说明 项目是采用SpringBoot Mybatis Shiro 的搭建的单体后台服务。同时通过引入通用mapper减少代码量已达到重点关注业务 的开发。 dependency groupIdtk.mybatis/groupId artifactIdmapper-spring-boot-starter/artifactId version${mapper-starter-version}/version exclusions exclusion groupIdjavax.persistence/groupId artifactIdpersistence-api/artifactId /exclusion /exclusions /dependency 实体 在创建实体时首先定义了一个BaseEntity的类所有的实体均集成该类同时该类需要加上MappedSuperclass注解。BaseEntity里面 包含了所有实体的公共字段如id、createTime、updateTime。这样做是为了减少代码的冗余。 实体上配置了Table注解以及实体字段配置了 Column注解是为了搭配jpa的自动建表已达到添加字段时重新运行项目数据库表字段也会自动添加。 但是存在缺点: 更改字段类型或删除字段数据库表不能自动修改或删除字段需要手动去变更。 Dao层 再创建相关的dao层接口时需要接口继承自定义的BaseDao接口该接口集成了通用mapper相关的接口和注解便于我们自定义一些通用接口。 Service层 所有的service接口需要继承自定义的BaseService接口该接口定义了一些常用到的接口例如增、删、改、查等等。 package com.cqjtu.studentdocument.service; import com.cqjtu.studentdocument.utils.dto.Condition; import com.github.pagehelper.PageInfo; import tk.mybatis.mapper.entity.Example; import java.io.Serializable; import java.util.List; /** * author pengyangyan */ public interface BaseServiceT { /** * 查询所有数据 * return 结果List */ ListT selectAll(); /** * 主键查询 * * param key 主键 * return T */ T selectByKey(Serializable key); /** * 插入数据 * param entity 传入实体 * return 受影响行数 */ int insert(T entity); /** * 主键删除 * param key 主键 * return 受影响行数 */ int deleteByKey(Serializable key); /** * 批量删除 * return 受影响行数 */ int deletes(ListString keys); /** * 删除数据 * * param entity 实体 * return 受影响行数 */ int delete(T entity); /** * 更新数据 * * param entity 实体 * return 受影响行数 */ int update(T entity); /** * mapper Example原生查询方式 * * param example example * return 结果List */ ListT selectByExample(Example example); /** * 条件排序查询 * 1.查询条件clauses和排序条件sortMap都可以为空 * 2.如果查询条件和排序map都为空则返回所有数据 * 3.pageSize和pageNum该方法无效 * 4.clauses定义查询条件 * 5.sortMap定义排序条件key为属性字段valueDESC 为倒序valueASC为正序。 * * param condition 条件 * return 结果List */ ListT select(Condition condition); /** * 条件分页排序查询 * 1.查询条件clauses和排序条件sortMap都可以为空 * 2.如果查询条件和排序map都为空则返回所有数据 * 3.clauses定义匹查询条件 * 4.sortMap定义排序条件key为属性字段valueDESC 为倒序valueASC为正序。 * * param condition 条件 * return 结果List */ PageInfoT selectPage(Condition condition); } 同时创建接口实现类时需要继承自定义的BaseServiceImpl类该类实现了BaseService接口的所有方法这样可以达到不用书写这些接口就可在需要的时候 调用如果需要自定义某个方法时只需要实通过Override重写某个方法即可。