个人健康信息管理平台的设计与实现_第1页
个人健康信息管理平台的设计与实现_第2页
个人健康信息管理平台的设计与实现_第3页
个人健康信息管理平台的设计与实现_第4页
个人健康信息管理平台的设计与实现_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中北大学2014届毕业设计说明书第Ⅰ页共Ⅲ页第一章引言1.1绪论工作节奏加快所带来的压力的增大、环境恶化所带来的呼吸系统的感染、个人不良的生活习惯所带来的各式各样的生活疾病、以及复杂的人际关系紧张等因素使得慢性疾病病变得越来越普遍[1]。所以健康生活观念应该被人们重视,人们不仅需要及时了解对自身疾病的治疗和预防,注重对自己的生活状态,自身健康水平,以及养生技巧等的需求,追求更加长寿快乐的生活,此外社会各部门例如学校,各种单位以及公司都免费为人们增加体检的活动,且学校还要求学生参加定期的体侧活动。甚至许多个人都会自愿去定期进行身体健康检查等。以上这些如果使用一个复杂的健康管理系统,且开展并完善健康管理服务,可以让节约医疗资源得以充分利用,对提高社会人民的健康生活习惯和加强社会生活质量具有积极的作用。再是就是由于软件,网络的越来越多的出现在大众视野,计算机应用技术,软件工程技术已经出现在生活的各个角落。个人健康信息管理作为一个新颖的网络化医疗信息管理模式逐渐出现在人们的视野中,它提供给人们实现自己想要的健康管理。由此可见健康管理不仅仅是一个纸上谈兵的概念模型,还是一种有条不紊的制度,更是一套周全,全方位的服务程序,每个国家和部门都致力于让其与计算机应用技术相结合,从而提高大众就医效率和健康水平。而且计算机技术可大量的节约经济成本,和个人时间,这在医疗方面起着非常重要的作用。健康信息管理系统以计算机为工具,网络信息技术为根本,体现了人性化,可视化,及时,便利,和互动的特性,方便用户实时获取有效信息,根据高危人群的日常行为,并建立由此引发的发病概率预测模型,对高危人群做出相应的行为干预,帮助用户养成自我健康管理的习惯,使病人以及健康人更好地拥有健康、恢复健康、促进健康。用户可以在去医院检查之前就已经对自身的情况有个详细的了解,从而更加明确的向医生表明自身的情况,使医生可以快速的诊断,并尽量节约经费开支,有效降低医疗支出。1.2国内外研究现状通过对国内外研究此方案状态的调查发现,中国的人均医疗卫生支出水平低于世界平均水平。比如医疗费用的告支出,疾病的多样化,慢性疾病的病例增加等。虽然在我国各种健康管理平台大约有一千多家仍然存在着不成熟,不全面,低效率等各方面的问题。比如有的一些app就只是存粹的实现对自身锻炼的监控,有的医疗门户网站只是单单对用户的疾病进行回复,还有的一些养生论谈就是将各种各样的养生技巧公布于网上,让用户难以确信。而且目前健康管理仍然主要依赖于简单的单次体检或就诊数据由医生提供一些生活习惯的建议和意见,并没有把个人的历史病历以及日常行为对个人慢性病的影响考虑进去。此外,目前的健康管理也主要是针对已患病的患者,还未做到“早筛选、早预防、早发现、早诊断”的动态追踪的健康管理模式。通过这些情况就可以看出,开发一套集个人健康信息管理,个人锻炼实时监控,医生建议以及养生技巧于一体的全方位平台显得尤为重要。用有限的资源最大程度的保证全体人民的健康和健康公平是我国医疗卫生体制改革必须面对的挑战。现在中国人越来越关注健康,但是很少有人可以按照医嘱做到科学的自我管理和生活限制。在国外,由于时间优先于我们,所以优秀的健康管理方式和人民的自我保健能力已经在社会人民生活的各个角落与方面中站稳脚跟,从而帮助人们预防疾病,调整生活方式,提高整体健康水平。德国的健康管理有一大特点,就是与预防紧密结合。近100年来,德国人增寿25岁,医疗费用支出得到控制,“预防”功不可没,具体包括五大方面。1.重视体检;2.全民健身;3.从企业抓起;4.提倡营养健康;5.建立健康数据库。在日本从中央到地方都有实施健康管理的组织和机构,不论大小医院,都设有健康管理部,实施当地的健康管理工作。而且日本非常重视对国人关于健康知识的宣传,其中健康讲座的盛行以及与健康相关的书籍杂志和电视节目的普遍增多,这些都起到了很好的知识宣传作用。而其他国家因为有着各式各样的方略,比如:美国,重广度,每个年龄都有指标;芬兰,重慢病,利用邻里相互影响,等。而我国的这种服务至今仍然处于起步状态。从国内外具体情况上看我国的健康资源与需求的冲突非常的巨大,利用有限的资源更好的服务于大众不仅需要要借鉴国外的经营工作方式,还要符合我国国情,我国人民的习惯。但是国外的健康管理机构有时候更显得国家化商业化,不能以友好的界面,有趣的方式更好的与用户实时交流。所以通过信息化手段,在健康,生活与医疗服务过程中融合健康信息服务理念,以创新的服务方式为人民实时开发一套让大众乐于使用,并且让人们可以积极配合的低资源高效率网站项目尤为重要。第二章系统需求分析2.1系统概述本课题通过把用户信息,用户健康信息,管理员信息,医疗服务信息等互相连通,互相配合,采用B/S风格的分层架构设计系统并按照分析、设计,实现,维护的过程进行工作。为了可以在在软件生命周期中的各项任务和工作能够有序地合理地规范地按照步骤进行,为了系统后期的维护,故采用传统的带“反馈环”的瀑布模型,运用springboot框架,Vue.js框架,以JAVA为系统开发语言,完成一个基于windows平台的资源分配与管理系统,实现对健康信息平台的可视化,使用户可以更方便的实施操作。再是通过把用户体检所得的数据进行有效的管理组合加工,运用复杂的算法把后台管理人员从复杂的数据计算处理中解脱出来。为了更好的帮组让用户自己对自身身体健康监督检查,以便全面提高生活质量,用户也可以在网站上建立个人电子档案,编写个人健康日志,录入生活习惯等,以方便系统通过各种算法计算出合理的生活方式以促进对疾病的预防和治疗。2.2系统目标健康管理平台的总目标是:在计算机网络,数据库和windows10平台上,利用现有的eclipse,oracle,Dreamweaver,tomcat等软件和平台,配置好所需的硬件和软件的开发环境,致力于开发一个拥有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的个人健康管理平台。具体的要求如下:1)个人用户可以方便的使用主界面四大基本功能,管理员可以方便使用后台的基本功能。2)可在具体的数据库平台oracle中充分发挥自身的价值。硬件与软件的数据可以与数据库交互的同时充分考虑数据库的兼容性,数据的可靠性等。其中数据库操作使用标准SQL语句。3)容易在原先基础上进行二次开发。4)每个模块的定义清楚明了,各模块之间思路清晰;基础类库和其接口设计合理,相互配合。5)采用hibernate技术,用户,数据,信息之间的一对多,多对多之间的数据的配合。6)要求拥有创意,有趣,方便,美观的操作界面,使用户更容易掌握操作从而能够快速地录入和查询各种信息。7)具有报表功能,即可以生成个性化人性化清楚明了的个人健康报告,并且通过Highcharts技术将体检数据以时间的顺序通过曲线图表现出来。8)系统响应时间通常不超过10s。2.3可行性分析软件工程研究的目标是“以较少的投资获取高质量的软件”,故在系统开发之前必须有一定的研究分析工作,该阶段必须要回答的问题是“要解决的问题是什么”,目的就是利用有限的人力物力资源且用尽可能短的时间内分析出系统项目的所需。(1)问题可行性:问题可行性研究的目的不仅是要解决相关技术,资源问题,更是要确定此问题是否值得去解决。通过前期的调研工作,已经明确了大众对健康管理系统的迫切需求,以及用户所要求的一些基本功能。(2)技术可行性:通过现有的技术例如,Java,c++,pathon,通过设计出实现目标系统的几种可能的方案例如springMVC,SpringBoot,大型分布式框架,Django框架等,并在充分权衡利弊的基础上选择一个性价比高,效率高效的技术。通过分析,确定了目标系统主要实现健康信息采集,健康状态监测,预防性检查提醒等功能,还确定了运用springboot框架,Vue.js框架,以JAVA为系统开发语言,完成一个基于windows平台的资源分配与管理系统的分析、设计与实现。(3)操作可行性:系统的详细设计采用模块化的设计方法,通过系统分析,功能设计,数据库设计,详细设计以及代码编写,实现了数据库的连接,系统的运行,整个系统的实现具有非常好的操作性,(4)经济可行性:本项目为个人项目开发,无需大量资金投入。(5)风险因素可行性:此次开发的主要风险在于代码是否高效,目标系统的功能是否全面。2.4系统的功能需求通过长时间的调研与各种人群的深刻交谈,且了解对人们对什么样的疾病最为担心,什么样的生活方式最为健康,什么样的平台最受喜欢,分析总结出各种功能需求,其中主要分为以下几大功能:2.4.1前台功能在前台的功能实现上,可以分为以下几个部分:1.个人饮食管理:通过用户输入的饮食情况以及运动情况,通过算法计算出每天所最低要求的热量,从而系统自动给出一周的推荐食谱。2.个人健康日志:用户可以在自己的健康日记书写自己的今日心情,运动的坚持,每日的动态等,记录每一天的睡眠,饮酒,吸烟,血压,体重等情况。3.个人体检信息查看:用户查看自己的体检信息变化曲线4.疾病预测评估:针对糖尿病和高血压两种疾病,利用数学线性回归的方法,模拟计算出用户患病概率。2.4.2后台功能后台主要有四个功能:1.管理员用户登录功能:通过编号登录系统。2.管理员管理用户功能:可以增删改查用户基本信息。3.管理员管理体检结果:可以增删改查用户体检记录。4.管理员管理健康新闻:可以发布或删除新闻。根据设计得出的总体设计用例图如下:图2.1总体设计用例图个人信息管理是前台和后台即管理员和用户的一对多的对应关系。用户可通过个人信息管理模块修改和查询个人信息比如密码,电话,邮箱等。管理员又可以通过管理用户信息模块进行用户的注销,和查询等操作。但是管理员信息只可以通过后台管理功能的管理用户信息模块进行添加和删除管理员信息。具体用例图如图2.2所示:图2.2个人信息管理用例图个人健康日志是本网站的一大亮点与特色所在。用户可以记录每一天自己的身体情况例如睡了多少时间,吃了什么食物,血压怎么样等。用户可以通过此功能了解自己的生活方式并且使其变得更好。并且用户可通过日志文本书写出自己的心情,是否坚持等情况等,使得用户可以更加积极并且享受此网站。具体用例图如图2.3所示:图2.3个人健康日志用例图管理员通过将自己的用户体检报告内容例如舒张压,体重,尿酸,肌酐,胆固醇等身体指标信息手动输入到系统中,同时系统绘画出相应的血压曲线走势图,从而方便用户可以随时随地的了解自身身体状况。管理员同时可以对体检信息进行修改,删除等。具体用例图如图2.4所示:图2.4体检信息用例图在个人饮食管理界面中用户可以通过填写个人的基本信息以及一日的活动量,通过系统的算法可以查看出一天要需要多少的能量,从而系统给出相应的推荐套餐以供用户参考,帮助用户合理膳食。这些当然是少不了管理员在后台对食品信息的管理,通过录入食品的蛋白质,卡路里,碳水化合物等信息,让系统给出带有相应能量的所组合的膳食套餐。具体用例图如图2.5所示:图2.5饮食管理用例图主页面的新闻信息的处理与体检功能相似,都是有管理员在后台录入与修改以方便用户的浏览。管理员在新闻录入界面进行新闻的书写与修改,在新闻管理页面进行新闻的删除和编辑。此外管理员还可以将其他门户网站进行超链接,以供用户参考。具体用例图如图2.6所示:图2.6新闻管理用例图管理员登录系统包含管理员登录,管理员添加,管理员修改。即只有已经存在的管理员才可以确定是否增加或删除其他管理员,以此保证了后台的安全。具体用例图如图2.7所示:图2.7管理员登录系统用例图2.5系统的性能需求性能需求分析指的是在系统功能已经完备,系统已经可以运转的前提下,看看主要在运行过程中系统的性能是否能够达到相应的标准。所以对于一个完美的网站而言,性能需求分析就显得格外重要。健康管理平台采用分布式结构中的特性要求网站系统需要具备以下几个主要特性:1)多样性:个人健康管理平台在进行设计时以用户为核心进行系统的一些设计。在用户的要求和系统的安全的基础上还要更加的加以人性化个性化的处理。所以,健康管理平台除了降低成本以外,还必须在外观,功能的多样性上下工夫,才能够得到用户的认可。怎样让界面更易于且乐于操作,怎样让用户更加信任此平台,怎样让用户在此平台上更好的交流,怎样实现实时监控,等都可以为此平台增添色彩。2)易维护性:系统管理员可以快捷高效地修改系统,设定新的功能,操作和方法,并每天都可以对系统进行一些必要的维护;随着健康管理平台信息的变更或增加、用户量的增大导致数据规模的增大,系统升级、维护更应该是重中之重。开发人员必须要求各系统与子系统、功能模块与操作的设计应具有非常好的效率,且易于操作,以便保证在健康管理平台系统开发过程中后期系统功能的实现与维护不影响前期已投入使用的系统功能。3)安全性:管理员应充分考虑到无论是网页,设备,环境还是运行,系统的操作,模块与数据的管理和维护都应该在风险可接受的范围内即让其有安全感,无失效,无故障。应该保证整个系统对社会无危害,无意义。4)可伸缩:健康管理平台的用户业务各不相同,年龄各不相同,需求各不相同,所以存在着数据的庞大和伸缩。提高系统的吞吐量,完善各种算法,剖析各个模块之间的关系,加强数据的一致性使得系统无论在设计时,维护时,还是在使用时都能保证网站的顺利运行5)最后,对性能需求的描述,需要做到准确无歧义,不能使用主观用语。目前一般操作响应时间要求为2、5、10,2秒内优秀、5秒内良好、10秒内可接受。上传下载等可依据用户体验情况,酌情考虑性能的指标要求。2.6系统的数据需求数据的需求分析是在用户调查的基础上,以安全为中心通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。通常有以下几点:1.数据录入和处理的准确性和实时性。系统在进行数据处理之前必须考虑用户输入数据所具有的多样性,易错行,不合理性,输入数据不正确会导致系统无法正常的进行用户更无法实现自己的操作,使得系统的工作还未开始就已经失去意义。数据的输入来源是用户自己输入必要信息,手工输入要求所通过系统界面上的录入系统(UI)具有较好的容错性,并且对用户操作进行实时的跟踪和错误提示。而且数据源本地在有备份的情况下,对于传输异常的时候,可以支持重试,存储端需要支持去重。在系统中,数据的输入是大量的多样的复杂的,用户往往不知道数据的输入格式又或者即使知道也有可能输入错误,因此系统要统一标准,要有强大的数据处理能力,还要有来自系统的提示,以保证用户可以快速且正确的迅速的输入数据,并且系统也可以快速的顺利进行。2.数据的规范性与完整性。网站要给数据统一的规范,这不仅提高了系统进行数据处理的效率还解决了用户在信息填写时的繁琐。所以就要要有一定的人员制定相应的数据规范,在数据录入前台界面加以系统的提示且系统后台需要控制数据的流向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,网站应该拒绝该数据。具体的数据规范如下表2.3所示:健康管理平台主要涉及到真实姓名的数据规范,如表2.3所示:表2.3真实姓名数据规范名称:真实姓名名称:真实姓名别名:realname描述:用户注册时需要输入自己的真实姓名,需与体检表中的名字统一。定义:真实姓名=[{字}2|{字}3|{字}4]位置:用户注册界面用户注册界面涉及到电话的数据规范,如表2.4所示:名称:电话别名:phone名称:电话别名:phone描述:用户注册时需要输入自己的手机联系方式,需与体检表中的名字统一。定义:电话=^1[34578]\d{9}$位置:用户注册界面用户注册界面涉及到邮箱的数据规范,如表2.5所示:表2.5邮箱数据规范名称:邮箱名称:邮箱别名:email描述:用户注册时需要输入自己的邮箱。定义:邮箱=^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$位置:用户注册界面用户注册界面涉及到邮箱的数据规范,如表2.5所示:表2.5邮箱数据规范名称:密码名称:密码别名:password描述:必须包含大小写字母和数字的组合,长度在6-14之间定义:密码=^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$位置:用户注册界面3.数据的共享与独立性。个人健康管理平台无论是前台访问后台还是后台访问前台都需要数据的互通与共享,但是有时候为了安全,又必须保持每个用户或者管理员等的信息的独立性。从网站的开发和所使用软件(oracle)角度上看,无论是硬件,软件还是环境的配置上,共享都会给设计和调试带来困难。因此,应该合理的运用hibernate技术,SQL语言等,使各个分系统能够独立运行,且又可以实现一对多多对多等的数据的连通,由此通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。第三章系统主要开发工具及技术3.1开发工具介绍3.1.1MyEclipse介绍Eclipse是一个免费开源跨操作系统的IDE,它本身的功能非常有限,需要靠插件来扩展功能,以应对实际的开发需要。随着越来越多的人使用,人们感觉有学多的插件使用时需要环境配置,而eclipse环境配置又非常的繁琐,故人们把最有用的一些插件优化整理打包形成一个插件集,这就是MyEclipse,一个商业收费的Eclipse插件集,之后人们又把Eclipse和MyEclipse插件集捆绑到一起打包下载,形成现在MyEclipse,一个完整强大的IDE。3.1.2Oracle介绍OracleDatabase,简称Oracle。是在数据库领域一直处于领先地位的一款开发软件。毫不夸装的表述就是Oracle数据库是目前全球内无论是企业国家还是个人开发都常常使用的数据库开发,管理与维护系统,oracle工具有很强的健壮性,移植性,稳定性、使用方便、功能强大,适用于各种大、中、小、微型系统。它是一种高效率性、高可靠性、高开源,高吞吐量的数据库开发平台。使用oracle具有以下特点:Oracle数据库具有完整的数据库管理功能、完备关系的产品以及具有分布式处理能力的数据库。它对数据的可靠性、大量性、持久性、共享性提供了一套可靠的解决方案、而且可以轻松支持多用户、大事务量的事务处理。它的优点就是可用性强、可扩展性强、数据安全性强、稳定性高,以及现阶段12C支持分布式数据处理。它提供了一套严禁的逻辑结构、文件结构、相关恢复技术的解释和实现。3.2开发技术介绍3.2.1Struts2其实,Struts核心就三部分,FilterDispatcher中央控制器、Action类、struts.xml配置文件。实际上,Struts就做了一件事,就是将客户端的请求和后端的控制器处理分离开,使用一个中央控制器和一个配置文件找到要执行的xxxAction。Action里面有个execute()方法,执行成功根据配置文件跳转到相应的jsp或者servlet。3.2.2Spring介绍Spring是一个开源的轻量级的开发框架具有许多的分层结构。人们创建它不仅是为了降低在编写代码带来的繁琐性,更是为了让企业在应用开发的时候降低人力,时间,物质成本,降低整个开发过程的复杂性,改善公司开发的效率。spring框架的区别于其他框架的主要优势之一就是他的主要优点是它的分层体系结构,它允许用户选择,同时为J2EE应用开发综合框架要使用的部件。简而言之spring的核心是控制反转。总结起来,Spring有如下优点:1.低侵入式设计,代码污染极低。2.独立于各种应用服务器,可以真正实现WriteOnce,RunAnywhere的承诺。3.Spring的DI机制降低了业务对象替换的复杂性。4.Spring并不完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。3.2.3Hibernate介绍Hibernate是目前从小到学校的学校,团队到大的国家,企业的产品开发,都是使用最普遍,最令大众喜爱的ORM框架。之前在开发java导入数据库的时候通常采取JDBC技术来进行数据库的操作,通过单独编写独立的lavabean来实行一对一,一对多,多对多的等映射关系,不仅如此还需要进行对创建连接,关闭连接的编写,非常的繁琐。而使用Hibernate就直接将这些操作同意封装起来,通过编写xml文件来完成对这些操作的映射关系,使系统自己完成。hibernate采用非常清晰明了直白的方式将虽数据库操作和数据的操作完全包装成对象化的操作,方便自己的后期维护和数据显示。Hibernate优势有以下几点:(1)Hibernate使用XML文件来处理映射Java(2)类别到数据库表格中,并且不用编写任何代码。(3)为在数据库中直接储存和检索Java对象提供简单的APIs。(4)如果在数据库中或任何其它表格中出现变化,那么仅需要改变XML文件属性。(5)抽象不熟悉的SQL类型,并为我们提供工作中所熟悉的Java对象。(6)Hibernate不需要应用程序服务器来操作。(7)操控你数据库中对象复杂的关联。(8)最小化与访问数据库的智能提取策略。(9)提供简单的数据询问。3.2.4JSP介绍网站之中最重要的就是网页,而网页无论是界面的美观和后台的数据交互都需要一种可独立于两者之间的技术,所以jsp技术华丽的出现在人们眼前。Jsp属于动态网页开发技术(当然也有静态网页技术),它是一个Javaservlet,它主要是用来实现JavaWeb应用程序的用户界面部分。前端程序员可通过Dreamweaver软件,再利用js,html5,css等技术制作出一个符合大众需求的审美,设用于大众操作的界面。再利用ajax框架把前端和后端进行合理的整合,明确数据,用户的请求在网页之间的转换。Jsp有以下几大功能:1)跨平台由于JSP是基于Java语言的,因而它可以使用Java的API,所以也是跨平台的,可以应用在Windows、Linux、Mac和Solaris。2)业务代码分离3)组件重用JSP中,可以使用JavaBean编写业务组件,也就是使用一个JavaBean封装业务处理代码或者作为一个数据处理模型,这个JavaBean可以重复使用,也可以应用到其他应用程序中。4)继承Javaservlet功能。JSP的本质是servlet,因此说JSP拥有servlet的所有功能。5)预编译用户首次通过浏览器访问JSP页面时,服务器对JSP页面代码进行编译,并且仅执行一次编译,编译后被保存,下次访问时直接执行编译过的代码,节约了服务器资源,提升了客户端访问速度。3.2.5数据结构与算法程序来源于数据计算,而数据计算就需要各种各样的算法,而各式各样的算法又必须要求高效的时间复杂度和空间复杂度。所以在程序开发过程中数据结构就成为了很好的算法参考对象。其中不乏有顺序表,链表,树,图,排序,查找等的算法,每种算法都有各自的意义,并且除此之外仍然有许多厉害的算法在不断衍生。而逻辑学的主要目的是要探索出一套完整的规则,按照这些规则可以确定任何特定的论证是否有效。高效的算法可以帮助系统快速而稳定的运行,而一些不好的算法则让系统出现异常的卡顿甚至是崩溃。所以在网站编辑中一个操作的过程例如本设计的计算热量,疾病预测评估算法等必须选择高效的算法,才能完成一些系统要求。第四章系统设计4.1设计原则在进行软件系统开发的最初环节,一般都需要进行系统的选型,即根据系统功能的实际需求,选择合适的开发工具及软件架构。其次是对目标系统的设计步骤的研究,以便对日后的编码于单元测试阶段以及维护阶段打下可靠坚实的基础。(1)将目标程序模块化,设计程序的体系结构,也就是确定程序由哪些模块组成。通过研究发现,可将目标系统大致分为前端设计(表现层),数据库设计(数据访问层),以及核心的业务逻辑层。其中业务逻辑层又可分为于前端数据库端的交互以及封装,POJO与数据库表的映射关系,用户与信息交换之间操作的逻辑算法等。(2)确定模块之间的关系。采用MVC架构的思想,弄清楚处理器映射器,前端控制器,处理器设配器,视图解析器之间的关系。并对一些模型代码进行封装,对一些逻辑代码进行编写,从而可以进行更高效的编写,和维护工作。(3)在设计该系统时,考虑到网站需要前段后端的数据互通与共享,以及各个网页之间相互传递信息,所以应该采取譬如jsp,js等的动态扩展语言,且由于系统是分层配合完成整个功能,所以整个网站采用主流B/S设计,以便开发时的设计与编码和开发后的维护。系统会在运行时进行很多与安全相关的检查,且在数据需求分析时会出现难以理解的异常错误,所以摒弃了相对繁琐的c++采用具有动态安全的java语言。(4)通过前期的调研,考察用户的需求得知用户在使用一个网站时对一个网站的安全性,稳定性,高效性要求比较高,尤其是对系统界面的要求是对整个网站的第一直观映像。所以综上考虑前台开发语言采取js,html5,css等语言,dreamweave为前端基础开发工具。4.2软件架构设计4.2.1运行架构软件的架构是系统开发的核心,所以在进行系统的详细设计之前首先要对系统进行从上至下,从易到难,从粗到精的分析,以确定软件,网站对系统或者是硬件的综合要求,分析系统的数据要求,导出系统的逻辑模型。其次再对系统分析后所确立下来的确定的系统的目标系统和功能模块,对每个模块和系统进行仔细的研究,这也是该系统的一个主要解决的地方。本系统包括了用户,管理员等很多信息,所以对该系统要建立数据库。管理系统是基于WEB的,所以需要一定的网页支持以及与数据库的连接。该系统主要是以JSP技术为主来开发的,所以要对该技术进行了解,学习。除此之外采用的技术和环境要求如下:数据库访问:oracle数据库服务器访问:Tomcat系列服务器网页编程技术:DIV+CSS、JAVASCRIPT、AJAX等后台处理技术:Struts2+Hibernate+Spring硬件需求:PIII/512M/10G及以上配置操作系统:Windows7及以上操作系统基于B/S结构的健康管理平台,应由终端(用户主机/浏览器)、WEB服务器、数据服务器构成。健康管理平台的核心是中间的接入服务器和应用服务器部分。健康管理平台的总体结构图如图4.1所示:WEB服务器(webServer)WEB服务器(webServer)数据用服务器PC图4.2.1健康管理平台总体结构通过前期的需求分析与设计原则,个人健康管理系统采用严格的分层架构设计,主要有如下几个分层。表现层:由JSP页面组成,负责与用户交互,把相应的请求传给业务逻辑层,并显示结果。包括接受用户输入个人用户信息,健康信息,管理员信息等,以及根据业务规则进行计算后得到的体检信息,饮食建议,热量信息等结果的显示。MVC层:使用Struts框架。业务逻辑层:主要由Springloc容器管理的业务逻辑组件组成例如计算热量算法,预测疾病算法,活动系数表等。DAO层:由DAO组件组成,实现类必须继承Spring提供的HibernateDaoSupport。Hibernate持久层:由PO组成,并在HibernateSession管理下,完成数据库访问由,此建立用户对管理员,管理员对此新闻管理等的各种对应关系。数据库服务层:使用MySQL数据库存储持久化数据。系统的具体分层如图4.2.2所示:用户注册,登录等界面负责业务数据的收集和显示通过实体关系映射O-RMapping由数据库得来的对象数据访问对象与持久化用户注册,登录等界面负责业务数据的收集和显示通过实体关系映射O-RMapping由数据库得来的对象数据访问对象与持久化对象交互业务逻辑实现层MVC架构的控制层控制业务逻辑层与表现出的交互存放数据存放数据DAODataAccessObjectService层DAODataAccessObjectService层(业务逻辑层)Hibernate持久层视图层(JSP)Web层(Struts)数据库服务(Oracle)数据库服务(Oracle)图4.2.2系统架构图在图4.2.2大方框内的MVC控制层、Service层及DAO组件层的组件,都由SpringIOC容器负责生成,并管理组件的实例。本系统如果只是严格按springMVC模式设计,系统并不能完成前端和后端的相互配合,因此还需要通过J2EE的分层体系结构,将中间层严格分成业务逻辑层、DAO层及数据持久层等。此外,MVC层的控制器应该严禁持久层的访问,甚至都不能参与业务逻辑的实现。表现层的界面需要前端设计师通过html5,css,js,jquery,等前端开发语言来对网页进行修饰,使得网页更适合大众的要求,让人们喜爱对本系统的操作。并且采用传统JSP技术,可以制作出使得前端和后端的数据和指令还有用户的需求可以无缝连接的动态网页该系统用的是一个老生常谈的J2EE的三层层次结构,其被分成表示层,中间层(商业逻辑层)和数据服务层。这样的三次系统结构使运行过程,组织规则,数据逻辑,数据访问和合法性验证到中间层。客户端即网站不会直接与数据库Oracle进行交互,而是通过组件例如映射文件或者编写的javabean来建立与中间层的连接,然后将中间层与数据库进行交互。JSP的使用情况宽泛,性能稳定且强大,再加上一些jquery,Ajax,css等的修饰,使得表现层高效,简洁欸,明了。中间层采用时下流行的Spring+Hibernate的技术。为了从业务逻辑层中的控制层分开,它被细分为以下几种类型:Web层,就是MVC模式里面的C,负责逻辑层和表现层的交互。调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC采用Struts框架。Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。PO层,持久化对象。4.2.2Hibernate持久化通过使用Hibernate持久层,避免了使用传统的JDBC操作数据库和包装JDBC接近以面向对象的方式更好地操纵数据库。整个软件开发过程是保证在一个面向对象的方式,即面向对象的分析,设计和编程。上通过HibernatePO对象持久化操作,而不管插入或查询的,是通过PO。Hibernate持久层之上,可使用DAO组件再次封装数据库操作,而每个DAO组件可对一个数据库表完成最基本的增删改查等操作。那到底要持久化干嘛?增加Hibernate持久层有什么作用?这是个非常好的问题。因为在数据库增删改查或者是其他的一些操作的时候是一个很耗费算法时间和cpu资源的操作,如果大量用户带着大量的数据同一个时间直接访问数据库,效率将非常低,再加上系统的优化比较差很有可能会导致系统崩溃。增加Hibernate持久层提高了开发的效率,使软件的体系结构更加清晰,在代码编写和系统维护方面变得更容易。特别是在大型的应用里边,会更有利。同时,持久化层作为单独的一层,人们可以为这一层独立的开发一个软件包,让其实现将各种应用数据的持久化,并为上层提供服务。从而使得各个企业里做应用开发的开发人员,不必再来做数据持久化的底层实现工作,而是可以直接调用持久化层提供的API。DAO模式的实现至少需要如下三个部分: 1.DAO工厂类。2.DAO接口。3.DAO接口的实现类。DAO模式是一种更符合软件工程的开发方式,使用DAO模式有如下来由:DAO模式笼统地表现出数据的访问修改的方法,业务逻辑模块根本不需要理会数据库底层访问,而只是专注于对业务逻辑模块的实现和加工。DAO将数据的访问与修改等都集中在独立的一个层次,所有的数据访问都由DAO对象完成,这层独立的DAO分离了数据访问的实现与其他业务逻辑,使得系统更具可维护性。DAO还可以帮助提升系统的可移植可扩展的能力。相对独立的DAO层让整个网站的网页。系统的功能和数据可以在不同的数据库之间,数据表之间来回切换,数据库在底层的运行实现对于业务逻辑层组件是明了的。数据库在移动改变融合的时候只是影响了DAO层,且不同数据库数据表的切换不会影响业务逻辑组件,因此提高了系统的可复用性。对于不同的持久层技术,Spring的DAO提供一个DAO模板,将通用的操作放在模板里完成,而对于特定的操作,则通过回调接口完成。4.2.3Service层Service类里面的方法相较于dao类中的方法进行了一层包装,例如通过time查找日历,通过id查找用户或者管理员,都是在基础的CRUD操作上增加了一层额外包装的,这个包装就是利用service实现的,这是个相对高级技术的操作。由此可以看见,利用这样的分层,访问数据库和进行service之间流程分工明确。如果我需要对service的需求修改,无需改变dao层的代码,只要在实现上改变即可,如果我有访问数据库的新需求,那我也只要在dao层的代码中增添即可。4.3网站功能设计由于个人健康管理系统的体系结构,网站有前台客户端和后台客户端两个部分。每个客户端又有不同的功能与模块,其中每个模块之间有互相协作完成系统的主要功能。前台客户端,后台客户端与数据库管理结合在一起,再加上相应的算法结构,共同完成了整个个人健康管理系统的有效运行。要流畅且高效的完成每个模块以及功能,需要制定严谨的过程。即每个步骤之间精密相连,每个开发软件相互配合,以及前台和后台数据相互协调,无论是哪一部出错都将导致某个模块或者功能失常。经过分析构成网站前台功能结构图如图4.3.1所示:图4.3.1前台功能结构图网站后台功能结构图如图4.3.2所示:图4.3.2后台功能结构图除去一般网站都具有的登录,注册,个人信息管理基础功能,本网站的前端四大核心功能,后端三大核心功能里应外合,数据互通,信息共享,过程互相嵌套,这才共同构成一个高效健壮的个人健康信息管理平台。4.3.1系统设计流程图网站的整个流程是基于安全,简便的考虑,一步一步的操作可以让用户可以快速的使用和了解此网站的运行结构和功能,方便自己的操作和管理。要想进入此网站并使用此网站的功能,前提是必须登入网站(如果没有账户可以选择注册)。系统会根据用户的选择跳转至相应的界面,以便用户使用。其总体设计流程图和部分功能流程图如以下图所示:图4.3.3总体设计流程图用户登录系统是进入主页面且可以正常使用网站功能的必须渠道,其流程图如图4.3.4所示:图4.3.4用户登录流程图而用户注册系统保证了每一位用户信息的合法性,规范性,以及保证用户的安全性。其流程图如图4.3.3所示:图4.3.3用户注册流程图管理员登陆系统包含了管理员登陆,管理员的添加和删除功能。其操作权只允许当前已存在的管理员进行操作,保证了整个系统的安全,稳定。其流程图如图4.3.4所示:图4.3.4管理员登陆系统流程图图4.3.5个人饮食管理流程图图4.3.6个人健康日志流程图图4.3.7疾病预测评估流程图图4.3.8用户信息管理流程图图4.3.9用户体检信息管理流程图4.3.2算法设计用户通过录入自身实际信息根据热量计算算法计算用户所需标准热量,并且显示推荐配餐以及健康膳食金字塔,以保证用户可以合理的搭配自己的食物表。其中算法流程图如图4.3.5所示:图4.3.5计算热量值流程图用户饮食管理功能中,主要是根据用户身高,体重,年龄,性别,活动量来计算其每天所需热量,给出一周的推荐菜单。用到的计算式是[11]:人体基础代谢的需要的基本热量(REE)精确算法如表4.3.6所示:表4.3.6基本热量精确算法表女子18-30岁14.6x体重(公斤)+45031-60岁8.6x体重(公斤)+83060岁以上10.4x体重(公斤)+600男子18-30岁15.2x体重(公斤)+68031-60岁11.5x体重(公斤)+8360岁以上13.4x体重(公斤)+490每天所需的热量=REE×活动系数=(大卡)表4.3.7活动系数表活动内容活动系数卧床(全天)1.2轻活动生活模式(多坐或缓步)1.3一般活动度1.5-1.75活动量大的生活模式2.0疾病预测评估功能设计主要是针对糖尿病和高血压两种疾病,根据用户的体检相关项以及数据库近十年同类人患病情况,分析出致病的危险因素,利用数学线性回归的方法,建立预测模型,未来体检者可输入相关体检项来模拟计算出用户患病概率,预测模型如图4.3.8所示:图4.3.8疾病预测模型图4.4数据库设计4.4.1概念设计数据库设计是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程.如果一个数据库没有进行一个良好的设计,那么这个数据库完成之后他的缺点是:1.效率会很低2更新和检索数据时会出现很多问题,反之,一个数据库被尽心策划了一番,具有良好的设计,那他的优点是:1.效率会很高.2.便于进一步扩展.3.使得网站的开发,维护,运行变得更容易,健壮概念模型应反映了在日常生活中对各种医疗服务,医疗信息的结构、资金流动情况、信息间的互相制约关系以及各进程对信息,数据储存、查询和加工的要求等。对用户要求描述的现实世界所需的一些服务个功能(例如一个用户、一张饮食单或者一张体检表),通过又对其中在进行细微的分类、收集和总结,建立抽象的概念数据模型(主要是实体联系图)。E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世进行医疗服务的概念模型,可清晰观察到数据库实体间的三种关联关系:一对一,一对多,多对多。健康管理系统的各个数据表之间的关系用E-R图表示如图4.4.1.图4.4.1其中的各个实体又包含了各种各样的属性。健康管理平台主要涉及的实体联系图有六个,实体有user、Manager、Food、Notice、Exam、Dairy。图4.4.2用户E-R图图4.4.3食物E-R图图4.4.4新闻E-R图图4.4.5体检E-R图图4.4.6管理员E-R图图4.4.7日志E-R图4.4.2逻辑设计数据项和数据结构如下:1.管理员表(Manager):管理员编号,管理员名字,管理员密码;2.新闻表(Notice):新闻编号,新闻标题,新闻内容,发布时间,图片路径,发布者;3.食物表(Food):食物编号,食物名字,食物热量,食物类型,食物碳水化合物,纤维素,脂肪,蛋白质;4.体检表(Exam):收缩压,舒张压,体重指数,腰臀比,尿素,尿酸,肌酐,甘油三酯,胆固醇,高密度脂蛋白胆固醇,低密度脂蛋白胆固醇,葡萄糖,同型半膀胱氨酸,微量白蛋白,微量白蛋白/尿肌酐;5.用户表(Teacher):用户编号,用户昵称,用户密码,用户年龄,用户性别,用户邮箱,找回密码问题,找回密码答案,用户真实名字;6.日志表(Dairy):日志内容,日志时间,睡眠时间,心情,抽烟,体重,压力,高压,低压,心率;7.日志食物表(Dairy-food):日志编号,食物编号。数据库逻辑结构设计汇总表,如表4.4.8所示:表4.4.8汇总表表名功能说明Manager管理员表Notice新闻表Food食物表Exam体检表User用户表Dairy日志表Dairy-food日志食物表其次,逻辑结构是独立于任何数据模型。在实际应用中,一般的数据库环境已经给出。由于本系统数据库基本上是一个关系数据库中,首先需要对实体关系图转换成关系模型,然后根据特定的数据库的特性和限制转换成由指定的数据库管理系统所支持的数据模型管理体系,并最终优化。根据用户的处理和安全注意事项的要求,必要的视图(查看)是建立基本表,形成数据的基础上。4.4.5数据表设计数据库中共涉及到七张表,分别是管理员表,新闻表,食物表,日志表,日志食物表,体检表以及用户表。表4.4.10管理员表字段名称字段含义数据类型长度NULL注释idIDNumber10NO主键name用户名Varchar220NOpassword密码String20NO表4.4.11新闻表字段名称字段含义数据类型长度NULL注释idIDNumber10NO主键title用户名Varchar250NOcontent密码Varchar22000NOdatetime发布时间Timestamp6NOimagepath图片路径Varchar230NOmanager_id发布者Number10YES表4.4.12食物表字段名称字段含义数据类型长度NULL注释idIDNumber10NO主键name食物名Float20NOheat热量Float126YEScarbohydrate碳水化合物Float126YESfat脂肪Float126YESfiber纤维素Float126YESprotein蛋白质Float126YEStype类型Number10NO表4.4.13日志表字段名称字段含义数据类型长度NULL注释datetimeIDVarchar220NO主键text日志Varchar22000YESsleephour睡眠Float126YESmood心情Varchar2255YEScigrette抽烟Number10YESweight体重Float126YESpressure压力Varchar2255YESbphigh高压Float126YESbplow低压Float126YESbs心率Float126YESuser_id用户号Number10YES表4.4.14日志食物表字段名称字段含义数据类型长度NULL注释dairy_id日志IDVarchar220NO主键food_id食物IDNumber10NO主键表4.4.15体检表字段名称字段含义数据类型长度NULL注释idIDNumber10NO主键datetime体检时间Varchar26NOsbp收缩压Float255YESdbp舒张压Float255YESbmi体重指数Float255YESwhr腰臀比Float255YESbun胆固醇Float255YESua尿素Float255YEScrea尿酸Float255YEStg肌酐Float255YESchol甘油三酯Float255YESglu葡萄糖Float255YEShcy同型半膀胱氨酸Float255YESm_alb微量白蛋白Float255YESm_alb_crea微量白蛋白/尿肌酐Float255YESuser_id用户IDNumber10YES表4.4.16用户表字段名称字段含义数据类型长度NULL注释idIDNumber10NO主键name用户名Varchar220NOpassword密码Varchar220NOage年龄Number10NOsex性别Varchar210NOemail邮箱Varchar230NOquestion找回密码问题Varchar250NOanswer找回密码答案Varchar250NOphone电话Varchar211NOrealname真实名字Varchar220NO4.4信息安全设计网络技术的全面开放,导致任何团体和个人通过不同渠道获取他们想要的信息资源。因此,污染和所面临的网络安全环境的攻击是多方面的,比如攻击软件环境或者它是硬件环境的破坏。网络的国际化和开放性也意味着网络攻击不仅来自本地网络用户,它可能会从互联网上的任何电子设备,以及攻击可能在世界任何地方的节点。因此网络环境的安全与健康所面临的是一个全球化,全方位,多样性的困难挑战。设计信息安全系统保证了用户体验网页的保障性,稳定性,高效率。而信息安全设计主要包括以下五方面的内容,即需保证信息的保密性、真实性、完整性、未授权拷贝和所寄生系统的安全性。健康管理平台的用户个人基础信息与个人健康信息的安全与隐私问题是非常重要的,制定务实有效可行的安全策略和实施有力的预防措施是非常必要的。系统的安全体系由下述结构组成,如下图4.4所示:环境安全环境安全物理安全物理安全网络安全网络安全主机系统安全人员管理安全主机系统安全人员管理安全操作安全规则安全策略图4.4系统的安全体系结构第五章系统实现5.2前台功能设计5.2.1前台主页面设计健康管理平台的主页面主要有用户登陆系统,注册系统,后台界面的入口即后台登陆系统,以及四项主要功能的入口和简单介绍,健康新闻的展示,风景的动态展示以及相关部门的网站链接,此界面在实现登录时采用DWR异步刷新。具体界面如图5.2所示:图5.2健康管理平台主界面5.2.2用户饮食管理功能界面图5.3用户饮食管理功能界面5.2.3用户健康日志功能设计健康日志功能界面具体如图5.4所示:图5.4健康日志功能界面5.2.4用户体检管理功能设计体检管理功能具体界面如图5.5所示:图5.5用户体检管理功能界面疾病预测评估界面具体如图5.7所示:图5.7疾病预测功能界面5.2.6注册功能界面新用户可以按提示进行注册,每一项都用具体的正则表达式进行表单验证,确保信息有效可用,注册界面具体如图5.8所示:图5.8注册功能界面5.3后台界面5.3.1管理员登录功能管理员使用用户名密码登陆系统后台,登陆界面如图5.9所示:图5.9管理员后台登录界面管理员登陆后台后进入欢迎界面,此界面显示后台主要功能菜单以及登录时间,欢迎界面图5.10所示:图5.10后台欢迎界面5.3.2管理管理员界面对管理员管理主要有查询、删除和添加操作,其中查询出来的管理员采用分页显示,调用的是HibernateTemplate中的excutefind方法,此方法中的参数为一个回调函数,查询及删除管理员具体界面如图5.11所示:图5.11管理员查询及删除界面添加管理员中分别对用户名密码进行验证添加,管理员添加界面如图5.12所示:图5.12管理员添加界面5.3.3管理员管理体检结果界面用户体检结果管理可显示所有用户体检结果并可以删除不需要的记录,体检结果采用分页显示,每页默认显示10条记录,体检结果显示及删除具体界面如图5.13所示:图5.13管理员管理体检结果界面用户体检结果的添加使用POI读取Excel表格,POI是apache的子项目,目标是处理ole2对象。目前比较成熟的是HSSF接口,处理Excel对象。它不仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel对象,可以控制一些属性如sheet,cell等[13]。体检结果添加具体界面如图5.14所示:图5.14体检结果添加界面5.3.4管理员管理健康新闻界面健康新闻管理中可以添加,修改以及删除新闻,修改和删除具体界面如图5.15所示:图5.15健康新闻修改删除界面健康新闻的添加功能中,图片的上传采用struts处理文件上传,具体界面如图5.16所示:图5.16健康新闻添加界面5.3.5管理员管理用户功能界面用户个人信息管理中有查看及删除用户信息功能,具体界面如图5.17所示:图5.17用户管理界面第六章系统测试6.1编写测试用例表6.1登陆测试用例字段名称描述标识符UC001测试项用户登录功能测试测试环境要求1.用户user为有效登陆用户,用户user1为无效登录用户;2.浏览器的cookie为被禁用输入标准用户输入正确的用户名和密码,单击登陆按钮输入错误的用户名密码,单击登陆按钮不输入用户名密码,单击登陆输入正确的用户名不输入密码,单击登陆输出标准1.数据库中存在的用户可以正确登陆2.显示错误提示界面3.提示“请输入用户名”4.提示“请输入密码”表6.2注册测试用例字段名称描述标识符UC002测试项用户注册功能测试测试环境要求输入标准1.用户输入真实名字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论