基于Springboot+Jean推理机+Jsoup实现的个人健康监控管理系统
一、项目简介
1.1 背景分析
健康管理的思路和实践最初出现在美国。如同其他学科和行业一样,健康管理的兴起也是由于市场的需要和人类知识的积累。随着社会的发展,健康越来越成为社会公众关注的焦点和热点,也越来越成为幸福指数的关键指标。现代人要应付快节奏的学习、工作和生活,要面临越来越多的竞争和挑战,人们的生理和心理随时都有可能发生老化和病变;加上环境污染,慢性病发病率连年上升,亚健康人群与日俱增,心理问题更是屡见不鲜,这些都严重地威胁到了人类的健康。因此健康管理随之应运而生。
健康管理是一种对个人及人群的健康危险因素进行全面管理的过程,提供科学的健康指导、健康生活方式的干预,调动其自觉性和主动性,有效地利用有限的资源来达到最大的健康改善效果,保护和促进人类的健康,真正达到防治疾病的发生,提高生命质量、降低医疗费用的目的。
健康管理包括:健康体检、健康评估、健康促进和健康服务四大部分。具体来说健康管理就是由健康管理顾问根据个人的性别、年龄、身体状况、居住环境、医疗服务的使用情况以及职业特性等综合因素,制定一些饮食保健以及营养学的建议,实施特定的干预措施和心理暗示,人体的健康状况进行合理的调整与休息,有效地改善亚健康出现的疲劳、头痛、失眠等不适症状。同时,健康管理机构根据个人在疾病的潜在危险因素,从而有效地对潜在的疾病实行预防、治疗及控制。
1.2 功能模块
二、健康管理系统方案设计原则
在充分利用现有设施和资源的条件下,力求高起点的设计,既满足近期需求,又适应长远发展需要,以实现信息互通、资源共享、服务协同的建设目标。
2.1 顶层设计与统筹协调原则
建设按照总体部署和要求,结合实际情况进行信息资源统筹规划,遵循统一的建设规范、标准,明确信息化建设目标和任务,综合不同机制和措施,因地制宜、分类指导、分步推进,促进工作协调发展。
2.2 先进性与实用性原则
系统技术水平在保证其成熟性的前提下,充分考虑到其先进性。宜采用业界先进系统架构理念和技术,为方案升级和迁移打下扎实基础。平台各系统供应商应有能力进行该项产品的持续性开发,可以保证该项技术不断地更新并可顺利升级以维持系统的先进性。
在满足区域健康信息化系统整体性能的前提下,要充分利用已有的设备、软件和数据资源,采用最优化的方案,在硬件投资方面不追求超前,在软件投入方面必须满足需要,追求最佳性价比。
2.3 开放性与扩充性原则
项目建设是一个系统工程,除了与各类医疗健康机构内的有关信息系统互联互通外,有很多基础数据还需要从政府的其它信息系统如公安、社保、计生、民政、教育等信息系统中获取,与这些系统均需要保持双向的信息交互能力,因此系统设计必须保持开发性、具有良好的互连、互操作能力,必须遵循最新的国际标准、国家标准和行业标准,必须遵循开放的原则。
在平台实际使用过程中,用户的需求是会不断变化的,因此平台应当具有良好的可扩充性,便于用户根据自己的需要进行二次开发来满足用户不断变化的实际需要,使应用可以根据业务的发展和变化而平滑扩展。
2.4 可靠性和安全性原则
平台在设计时将充分考虑到系统的安全防护与冗余措施,提供较强的管理机制和控制手段,提供系统备份、数据恢复、事故监控和网络安全保密等技术措施。
应可实现7x24小时连续不间断安全运行,性能可靠,易于维护,防病毒的能力强。与外网连接采用防火墙+代理服务器方式,防止外部病毒入侵和外界恶意攻击。
平台必须在成本可以接受的条件下,从系统结构、设计方案、设备选型、厂商的技术服务与维护响应能力、备件供应能力等方面考虑,使得系统故障发生的可能性尽可能少,影响尽可能小,对各种可能出现的紧急情况有应急的工作方案和对策。
通过VPN等检测手段保证数据传输与交换的安全、可靠。遵循有关信息安全标准,具有切实可行的安全保护和保密措施,确保数据长久安全。系统应提供多方式、多层次、多渠道的安全保密措施,防止各种形式与途径的非法侵入和机密信息的泄露,保证系统中数据的安全。基础平台系统要从数据存储、传输,用户管理、认证,用户应用模块、数据使用权限分配等方面进行管理,确保业务系统能安全运行。
2.5 规范化和标准性原则
系统建设考虑其完整性和普适性,须在全面了解需求的前提下,进行整体规划,按照“统一规范、统一代码、统一接口”的要求,加强指导和组织协调,规范各领域信息化建设的基本功能、业务流程、数据模型和数据编码等标准,以满足信息化建设的需要。标准化是系统平台建设的基础保障,系统平台建设必须在安全方案和安全技术、信息表示和信息交换、网络协议、软件结构、软件平台等标准方面遵循IHE、XML、HL7、CDA等技术标准达到“互连、互通、互操作”要求,实现“信息交换、资源共享”。
2.6 信息全面与实时性原则
个人和医疗健康从业人员需要在治疗疾病和处理其它健康相关问题的过程中根据情况的变化做出决定,平台需提供给医疗服务机构和医务人员及时、完整和准确的信息,电子健康档案被视作权威和可靠的医疗保健信息源。因此,平台的体系架构必须是全面的,能覆盖业务流程、信息、系统服务和技术的所有范围。
三、健康管理系统服务流程
3.1 健康管理体检
健康管理体检是以人群的健康需求为基础,按照早发现,早干预的原则来选定体格检查的项目。检查的结果对后期的健康干预活动具有明确的指导意义。健康管理体检项目可以根据个人的年龄、性别、工作特点等进行调整。目前一般的体检服务所提供的信息应该可以满足这方面的要求。
3. 健康评估
通过分析个人健康史、家族史、生活方式和从精神压力等问卷获取的资料,可以为服务对象提供一系列的评估报告,其中包括用来反映各项检查指标状况的个人健康体检报告,个人总体健康评估报告,精神压力评估报告等。
3.3 健康管理咨询
在完成上述步骤后,个人可以得到不同层次的健康咨询服务。个人可以去健康管理服务中心接受咨询,也可以由健康管理师通过电话与个人进行沟通。内容可以包括以下几方面:解释个人健康信息及健康评估结果及其对健康的影响,制定健康管理计划,提供健康指导,制定随访跟踪计划等。
3.4 健康管理后续服务
健康管理的后续服务内容主要取决于被服务者(人群)的情况以及资源的多少,可以根据个人及人群的需求提供不同的服务。后续服务的形式可以是通过互联网查询个人健康信息和接受健康指导,定期寄送健康管理通讯和健康提示;以及提供个性化的健康改善行动计划。监督随访是后续服务的一个常用手段。随访的主要内容是检查健康管理计划的实现状况,并检查(必要时测量)主要危险因素的变化情况。健康教育课堂也是后续服务的重要措施,在营养改善、生活方式改变与疾病控制方面有很好的效果。
3.5 专项的健康及疾病管理服务
除了常规的健康管理服务外,还可根据具体情况为个体和群体提供专项的健康管理服务。这些服务的设计通常会按病人及健康人来划分。对已患有慢性病的个体,可选择针对特定疾病或疾病危险因素的服务,如糖尿病管理、心血管疾病及相关危险因素管理、精神压力缓解、戒烟、运动、营养及膳食咨询等。对没有慢性病的个体,可选择的服务也很多,如个人健康教育、生活方式改善咨询、疾病高危人群的教育及维护项目等。
四、数据库设计
4.1 表结构
t_disease
t_disease_recipe
t_fatigue_degree
t_individuation_recipe
t_sport_ability
t_sport_type
t_sports_intensity
t_sports_intensity_standard
t_standard_recipe
t_subhealthy
t_subject_feel
t_user
t_user_recipe
4.2 E-R图
五、项目实现
5.1 加密工具类
java
public class MD5Util {
private static String byteArrayToHexString(byte b[]) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++)
resultSb.append(byteToHexString(b[i]));
return resultSb.toString();
}
private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n += 256;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
/**
* 返回大写MD5
*/
private static String MD5Encode(String origin, String charsetname) {
String resultString = null;
try {
resultString = new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
if (charsetname == null || "".equals(charsetname))
resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
else
resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
} catch (Exception exception) {
}
return resultString.toUpperCase();
}
public static String MD5EncodeUtf8(String origin) {
// 获取盐值
origin = origin + PropertiesUtil.getProperty("password.salt", "");
return MD5Encode(origin, "utf-8");
}
private static final String hexDigits[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
}
5.2 文件上传功能
```Java / * 阿里云 oss 上传工具类(高依赖版) */ public class OSSBootUtil { private OSSBootUtil(){} / * oss 工具客户端 / private volatile static OSSClient ossClient = null; / * 上传文件至阿里云 OSS * 文件上传成功,返回文件完整访问路径 * 文件上传失败,返回 null * * @param ossConfig oss 配置信息 * @param file 待上传文件 * @param fileDir 文件保存目录 * @return oss 中的相对文件路径 / public static String upload(OSSConfig ossConfig, MultipartFile file, String fileDir){ initOSS(ossConfig); StringBuilder fileUrl = new StringBuilder(); try { String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.')); String fileName = System.currentTimeMillis() + "-" + UUID.randomUUID().toString().substring(0,18) + suffix; if (!fileDir.endsWith("/")) { fileDir = fileDir.concat("/"); } fileUrl = fileUrl.append(fileDir + fileName);
ossClient.putObject(ossConfig.getBucketName(), fileUrl.toString(), file.getInputStream());
} catch (IOException e) {
e.printStackTrace();
return null;
}
fileUrl = fileUrl.insert(0,ossConfig.getUrl());
return fileUrl.toString();
}
/**
* 初始化 oss 客户端
* @param ossConfig
* @return
*/
private static OSSClient initOSS(OSSConfig ossConfig) {
if (ossClient == null ) {
synchronized (OSSBootUtil.class) {
if (ossClient == null) {
ossClient = new OSSClient(ossConfig.getEndpoint(),
new DefaultCredentialProvider(ossConfig.getAccessKeyId(), ossConfig.getAccessKeySecret()),
new ClientConfiguration());
}
}
}
return ossClient;
}
} ```
5.3 主要功能
疾病等级的判断
```java @RestController @RequestMapping("/fatigueDegree/") @CrossOrigin(origins=" ",maxAge=3600) public class FatigueDegreeController { @Autowired FatigueDegreeServiceImpl fatigueDegreeService; / * 疲劳度等级的添加 / @RequestMapping(value = "addFatigueDegree.do", method = RequestMethod.POST) @Transactional(rollbackFor = FatigueDegreeException.class) public ServerResponse addFatigueDegree(FatigueDegree fatigueDegree){ return fatigueDegreeService.addFatigueDegree(fatigueDegree); } / * 疲劳度等级的查询 */ @RequestMapping(value = "selectFatigueDegree.do", method = RequestMethod.POST) @Transactional(rollbackFor = FatigueDegreeException.class) @ResponseBody public JSONArray selectFatigueDegree(FatigueDegree fatigueDegree){ JSONArray jsonArray=fatigueDegreeService.selectFatigueDegree(fatigueDegree); return jsonArray; } / * 疲劳度等级的删除 */ @RequestMapping(value = "deleteFatigueDegree.do", method = RequestMethod.POST) @Transactional(rollbackFor = FatigueDegreeException.class) @ResponseBody public String deleteFatigueDegree(FatigueDegree fatigueDegree){ return fatigueDegreeService.deleteFatigueDegree(fatigueDegree);
}
/**
* 疲劳度等级的修改
* 先查 后改
*/
@RequestMapping(value = "selectById.do", method = RequestMethod.POST)
@Transactional(rollbackFor = FatigueDegreeException.class)
@ResponseBody
public FatigueDegree selectById(FatigueDegree fatigueDegree)throws Exception{
FatigueDegree fatigueDegree1=fatigueDegreeService.selectById(fatigueDegree);
return fatigueDegree1;
}
@RequestMapping(value = "updateFatigueDegree.do",method = RequestMethod.POST)
@Transactional(rollbackFor = FatigueDegreeException.class)
public ServerResponse updateFatigueDegree(FatigueDegree fatigueDegree, HttpSession session)throws Exception{
ServerResponse<FatigueDegree> response =fatigueDegreeService.updateFatigueDegree(fatigueDegree);
return response;
}
} ```
获取每日健康数据
java
@RestController
@RequestMapping("/runData/")
@CrossOrigin(origins="*",maxAge=3600)
public class RunDataController {
@Autowired
RunDataServiceImpl runDataService;
/**
* 获取每天的心率 和速度曲线的数据
* @param jsonObject
* @return
* @throws Exception
*/
@RequestMapping(value = "getRunData.do", method = RequestMethod.POST)
@Transactional(rollbackFor = RunDataException.class)
public JSONArray getRunData (@RequestBody JSONObject jsonObject) throws Exception{
JSONArray jsonArray = runDataService.getRunData(jsonObject);
return jsonArray;
}
/**
* 根据时间查询 每天的
* @param jsonObject
* @return
* @throws Exception
*/
@RequestMapping(value = "getRunDataByTime.do", method = RequestMethod.POST)
@Transactional(rollbackFor = RunDataException.class)
public JSONArray getRunDataByTime (@RequestBody JSONObject jsonObject) throws Exception{
JSONArray jsonArray = runDataService.getRunDataByTime(jsonObject);
return jsonArray;
}
/**
* 获取周数据记录
* @param jsonObject
* @return
* @throws Exception
*/
@RequestMapping(value = "getWeekData.do", method = RequestMethod.POST)
@Transactional(rollbackFor = RunDataException.class)
public JSONArray getWeekData (@RequestBody JSONObject jsonObject) throws Exception{
JSONArray jsonArray = runDataService.getWeekData(jsonObject);
return jsonArray;
}
/**
* 按照时间范围查询数据 每周的数据
*/
@RequestMapping(value = "getWeekDataByTime.do", method = RequestMethod.POST)
@Transactional(rollbackFor = RunDataException.class)
public JSONArray getWeekDataByTime (@RequestBody JSONObject jsonObject) throws Exception{
JSONArray jsonArray = runDataService.getWeekDataByTime(jsonObject);
return jsonArray;
}
/**
* 获取月数据
* @param jsonObject
* @return
* @throws Exception
*/
@RequestMapping(value = "getMoonData.do", method = RequestMethod.POST)
@Transactional(rollbackFor = RunDataException.class)
public JSONArray getMoonData (@RequestBody JSONObject jsonObject) throws Exception{
JSONArray jsonArray = runDataService.getMoonData(jsonObject);
return jsonArray;
}
}
6、项目展示
主页
运动处方
每日自主运动
更换处方
运动场地
运动设备
服装
运动资讯
运动状态
身体状态
测评身体状态
背景切换
个人中心
参考文献
- 基于OAuth2.0协议的企业分布式授权系统设计与实现(华中科技大学·支猛)
- 基于触发器的数据库监控系统的设计与实现(南京大学·邓明)
- 基于SSH框架的健康生活平台的构建(复旦大学·范翔宇)
- 基于OAuth2.0协议的企业分布式授权系统设计与实现(华中科技大学·支猛)
- 基于微服务的政务机构服务系统的研究与设计(北京邮电大学·周博凯)
- 基于SSH框架的健康生活平台的构建(复旦大学·范翔宇)
- 基于Android的健康管理平台的设计与实现(天津科技大学·李承阔)
- 基于Android的健康管理平台的设计与实现(天津科技大学·李承阔)
- 基于JavaEE的健康管理系统的设计与实现(复旦大学·陈功锁)
- 基于微服务的政务机构服务系统的研究与设计(北京邮电大学·周博凯)
- 基于OAuth2.0协议的企业分布式授权系统设计与实现(华中科技大学·支猛)
- 基于Android的健康管理平台的设计与实现(天津科技大学·李承阔)
- 一种改进的权限管理框架的研究与应用(华中科技大学·杨靖)
- 基于SSH的个人健康管理系统的设计与实现(电子科技大学·孙蕾)
- 基于OAuth2.0协议的企业分布式授权系统设计与实现(华中科技大学·支猛)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设驿站 ,原文地址:https://bishedaima.com/yuanma/35486.html