基于JavaWeb的健康管理平台(源码+论文)

1.1 设计背景

紧张的工作节奏、教学和科研的压力、个人不良的工作生活习惯、以及伴随工作压力而来的家庭关系、人际关系紧张等因素使得高校群体成为慢性病的高发群体[1]。学生入学的定期体检,教职工人入职体检,以及所有学生和教职工的定期体检工作,甚至个人自愿定期进行身体健康检查等都离不开医院的体检。人们对体检工作越来越重视,目前,传统的体检一直延用手工管理的方式,对健康信息的可视化平台需求迫切。
实现对健康信息分析的可视化,根据高危人群的日常行为,建立由此引发的发病概率预测模型,对高危人群做出相应的行为干预。健康管理平台不仅包含对个体健康曲线的可视化,同时包含对某群体健康曲线的可视化及预测,并以此为基础对个体日常行为的干预显示,以此为背景我选择设计健康管理平台

1.2 设计目的和意义

健康管理既是一个概念,也是一种方法,更是一套完善、周密的服务程序,其目的在于使病人以及健康人更好地拥有健康、恢复健康、促进健康并尽量节约经费开支,有效降低医疗支出。健康管理有如下几大作用:一是可以了解居民的身体年龄,判断疾病指向;二是可以根据日常行为判断发病概率,以此为基础由医生提供降低慢性病发生危险性的行为干预方案;三是可以长期(终生)跟踪高危人群的健康,最大限度减少重大疾病的发生;四是可以节省维护健康的时间和金钱,提高保健效率[2]。
建立面向教师的健康管理平台的目的,对于个人,是如何利用健康体检系统中的信息为人们的健康保驾护航。而健康信息信息管理系统的管理和利用,不仅需要具备基础医学知识、临床医学知识、流行病学知识、计算机技术、数学统计知识等综合素质的专业人员,同时需要有庞大的保健医学、预防医学、临床医学、康复医学等专业的资深专家团队的支持,才能够为个人提供一系列的健康管理服务。
当今世界,信息管理数字化非计算机莫属,只有利用计算机技术,使用我国各个高校统一标准的健康体检系统表格,开发高校健康体检系统的系统软件,设置教师健康体检系统的计算机编号,制作教师的健康体检档案,并详细记录其本次体检程中所发现的健康问题和处理情况等,实现用户的健康体检系统信息在学校范围内的网络信息交换和共享,利用计算机技术,对用户的健康体检系统实现连续的动态管理。健康信息管理系统以计算机为工具,通过对用户体检所得的数据进行信息管理,把管理人员从繁琐的数据计算处理中解脱出来,为更好的帮组用户身体健康监督检查,从而全面提高质量。具体通过本系统可以对用户的基本健康状况进行各种必要的统计和分析[3]。
本项目将针对高校群体研发多模态的健康数据采集系统,对历年体检数据、就诊数据、膳食结构、生活习惯等健康相关信息建立统一管理系统,并在此基础上采用数据挖掘方法对诸如心血管疾病、高血压、糖尿病等慢性病进行有效建模与评估,对高校群体内广泛存在的亚健康状态进行综合客观评价和风险预测,最终实现针对高校群体慢性病患者及其高危人群的动态跟踪健康管理与干预。

1.3 国内外研究现状

健康管理的概念最早见于美国,早在1929年美国洛杉矶水利局就成立了最早的健康维护组织。早在20世纪70年代的美国,由于健康保险的发展以及医疗服务模式的改变,要求医生能更好地指导病人进行疾病预防以及更加节省医疗费用。健康服务组织通过对人群的健康状况进行评价和疾病的风险评估,科学预测疾病的危险因素,制定具体的、有针对性的预防和保健措施。通过健康管理美国的医疗费比以前节省了大约10%,同时避免了疾病的发生,提高了生活质量。资料显示,通过健康管理计划,在1978-1983年,美国人的胆固醇水平下降了2%;高血压水平下降了4%;冠心病发病率下降了16%。美国密执安大学健康管理研究中心主任第·艾鼎敦博士(Dee.W.Edington)曾经提出美国20多年的研究得出了9:1定律结论,即90%的人通过健康管理后,医疗费用降到了原来的10%;10%的人未做健康管理,医疗费用比原来上升了90%。通过经济学分析发现,在健康管理方面投入1元钱,相当于减少3-6元医疗费用的开销。如果加上由此产生的劳动生产率提高的回报,实际效益达到投入的8倍[4]。
健康管理在中国刚刚起步,是一个朝阳的产业。目前在中国大陆地区仅有少数专业的健康管理机构,大部分为医院及体检中心的附属部门。健康管理的从业人数没有准确的数据,估计全国在10万人以上,也就是说我国享受科学、专业的健康管理服务的人数只占人口总数的万分之二,这一比例与美国70%居民能够在健康管理公司或企业接受完善的服务相去甚远。而且目前健康管理仍然主要依赖于简单的单次体检或就诊数据由医生提供一些生活习惯的建议和意见,并没有把个人的历史病历以及日常行为对个人慢性病的影响考虑进去。此外,目前的健康管理也主要是针对已患病的患者,还未做到“早筛选、早预防、早发现、早诊断”的动态追踪的健康管理模式。

2 系统需求分析

2.1 系统目标

健康管理平台的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的教师健康管理平台。
具体的要求如下:

  1. 教师可以方便的使用五大基本功能;
  2. 独立于具体的数据库平台。对于与数据库交互的部分充分考虑兼容性;
  3. 容易在原先基础上进行二次开发;
  4. 中间基础平台的无型性。尽量采用开放的标准技术,达到跨平台运行的效果。
    为了达到以上的开发目的,健康管理平台应遵循一定的设计和开发与原则:
  5. 模块接口定义清晰;
  6. 基础类库和接口设计合理,尽量建立叮扩展的接口和抽象类;
  7. 数据库操作使用标准SQL语句,如果一定要使用有差别的SQL语句,则尽量集中在一起,以减少将来维护和移植的难度;
  8. 采用开放的标准和工具等。

2.2 系统的功能要求

2.2.1 前台功能

在前台的功能实现上,可以分为以下几个部分:
1.教师饮食管理:根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。
2.教师健康日志:用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压,体重等情况。
3.教师体检管理:教师可通过该平台查询每次的体检结果,显示部分项目随时间变化的曲线。
4.疾病预测评估:针对糖尿病和高血压两种疾病,利用数学线性回归的方法,模拟计算出教师患病概率。

2.2.2 后台功能

后台主要有四个功能:
1.管理员用户登录功能:通过编号登录系统。
2.管理员管理教师功能:可以增删改查教师基本信息。
3.管理员管理体检结果:可以增删改查教师体检记录。
4.管理员管理健康新闻:可以发布或删除新闻。

2.3 系统的性能需求

健康管理平台的特性要求网站系统需要具备以下几个主要特性:

  1. 多样性:健康管理平台在设计时必须遵循的一个重要原则,就是以用户为系统设计的中心。网络的发展大大降低了信息咨询的成本,用户面临更多的选择,所以,健康管理平台除了降低成本以外,还必须在外观,功能的多样性上下工夫,才能够得到用户的认可。具体来说,应用系统应能实现用户特定的需求,操作界面友好、方便,功能设置符合用户的习惯和要求。
  2. 易维护:管理员能够简单方便地管理系统,定义新的应用,并对系统进行日常维护;随着健康管理平台信息的变更或增加、数据规模的增大,系统升级、维护应易于操作;各子系统、功能模块的设计应具有良好的灵活性,保证在健康管理平台系统建设过程中后期系统功能的实现不影响前期已投入使用的系统功能。
  3. 安全性:系统应充分考虑信息、设备、运行和管理的安全性,建立完善的多层次的安全保障体系,保证用户的个人信息等资料的数据安全。
  4. 可扩展:健康管理平台的用户从事着各种行业,他们的需求各不相同,系统在设计时应充分考虑到用户需求不断变化的需要,降低系统在扩展新的业务功能时的复杂度[5]。

2.4 系统的数据要求

2.4.1 数据的性质

  1. 数据录入和处理的准确性和实时性。
    数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是用户的手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对用户操作进行实时的跟踪和错误提示。
    在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。
  2. 数据的一致性与完整性。
    由于网站的数据是共享的,所以如何保证这些数据的一致性,是网站必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。
    对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,网站应该拒绝该数据。
  3. 数据的共享与独立性。
    整个健康管理平台的数据是共享的。然而,从网站开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。

2.4.2 数据字典

健康管理平台主要涉及到真实姓名数据字典,如表2.1所示:
表2.1 真实姓名数据字典

用户注册界面涉及到电话的数据字典,如表2.2所示:
表2.2 电话数据字典

用户注册界面涉及到邮箱的数据字典,如表2.3所示:
表2.3 邮箱数据字典

2.4.3 实体联系图
健康管理平台主要涉及的实体联系图有六个,实体有Teacher、Manager、Food、
Notice、Exam、Dairy。

图2.1 教师E-R图

图2.2 食物E-R图

图2.3 新闻E-R图

图2.4 体检 E-R图

图2.5 管理员 E-R图

图2.6 日志 E-R图

3 系统设计

3.1 开发工具介绍

3.1.1 My Eclipse 介绍

My Eclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称My Eclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和Java EE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的Java EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,SQL,Javascript,Spring,Hibernate。
My Eclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,My Eclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。My Eclipse目前支持Java Servlet , AJAX, JSP, JSF, Struts, Spring, Hibernate, EJB3,JDBC数据库链接工具等多项功能。My Eclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具[6]。
My Eclipse 2013支持HTML5、JQuery 和主流的JavaScript 库。随着My Eclipse 2013支持Html5,可以添加音频、视频和API元素到项目,从而为移动设备创建复杂的Web应用程序。甚至还可以通过HTML5 可视化设计器设计令人难以置信的用户界面。同时,随着My Eclipse 2013支持JQuery,可以通过插件提升性能,并添加动画效果到设计中。

3.1.2 Oracle 介绍

Oracle数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如Silver Stream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c成为私有云和公有云部署的理想平台[7]。
3.2 开发技术介绍
3.2.1 Struts2
Struts是 Apache软件基金会(ASF)赞助的一个开源项目。它最初是 Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用 Java Servlet/JSP 技术,实现了基于Java EE的Web应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
在Struts 中,已经由一个名为ActionServle的 Servlet 充当控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的struts-config.xml的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。在 MVC 的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应 Struts 里的ActionForm与Action两个需要继承实现超类。在这里,Struts 可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB),JDBC与JNDI。在Struts的视图(View) 端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如 Velocity Templates,XSLT 等。通过应用 Struts 的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与 映射关系的配置文件(struts-config.xml)中。
在Java EE的Web应用发展的初期,除了使用Servlet技术以外,普遍是在JavaServer Pages(JSP)的源代码中,采用HTML与Java代码混合的方式进行开发。因为这两种方式不可避免的要把表现与业务逻辑代码混合在一起,都给前期开发与后期维护带来巨大的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,Craig McClanahan采用了MVC的设计模式开发Struts。后来该框架产品一度被认为是最广泛、最流行JAVA的WEB应用框架。2006年,WebWork与Struts这两个优秀的Java EE Web框架(Web Framework〕的团体,决定合作共同开发一个新的,整合了WebWork与Struts优点,并且更加优雅、扩展性更强的框架,命名为“Struts 2”,原Struts的1.x 版本产品称为“Struts 1”。
其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
3.2.2 Spring 介绍
2002 年wrox 出版了《Expert one on one J2EE design and development》一书。该书的作者是Rod Johnson。在书中, Johnson 对传统的J2EE 架构提出深层次的思考和质疑。并提出J2EE 的实用主义思想。2003 年, J2EE 领域出现一个新的框架: Spring ,该框架同样出自Johnson 之手。事实上, Spring 框架是《Expert one on one J2EE design and development》一书中思想的全面体现和完善, Spring 对实用主义J2EE 思想进一步改造和扩充,使其发展成更开放、清晰、全面及高效的开发框架。一经推出,就得到众多开发者的拥戴。传统J2EE 应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE 的应用并没有真正实现Write Once 及Run Anywhere 的承诺。Spring 作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。Spring 致力于J2EE 应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring 是企业应用开发的"一站式"选择,并贯穿表现层、业务层及持久层。然而,Spring 并不想取代那些已有的框架,而与它们无缝地整合[8]。总结起来, Spring 有如下优点:
1.低侵入式设计,代码污染极低。
2.独立于各种应用服务器,可以真正实现Write Once, Run Anywhere 的承诺。
3.Spring 的DI 机制降低了业务对象替换的复杂性。
4.Spring 并不完全依赖于Spring ,开发者可自由选用Spring 框架的部分或全部。
3.2.3 Hibernate 介绍
Hibernate 是目前最流行的ORM 框架,其采用非常优雅的方式将SQL 操作完全包装成对象化的操作。其作者Gavin King 在持久层设计上极富经验,采用非常少的代码实现了整个框架,同时完全开放源代码,即使偶尔遇到无法理解的情况,也可以参照源代码来理解其在持久层上灵巧而智能的设计。下面通过对比来了解Hibernate 和传统JDBC 操作数据库持久层之间的差异[9]。
3.2.4 JSP 介绍
JSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(.htm,.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大 大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。
JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
3.2.5 Jquery(JavaScript) 介绍
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML(标准通用标记语言的子集)网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。JavaScript是Sun公司(已被oracle收购)的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。
jQuery是一个兼容多浏览器的javascript框架,核心理念是write less,do more(写得更少,做得更多)。jQuery是免费、开源的,使用MIT许可协议。jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。除此以外,jQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。
3.2.6 DWR(Ajax)介绍
AJAX 指异步JavaScript及XML(AsynchronousJavascript+XML)。核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面;可使因特网应用程序更小、更快,更友好;是一种独立于 Web 服务器软件的浏览器技术。DWR它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容。DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码。这样WEB开发人员就可以在JavaScript里使用Java代码,就像它们是浏览器的本地代码一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源。
3.3 系统架构设计
本系统采用严格的J2EE 应用结构,主要有如下几个分层。

  1. 表现层:由JSP 页面组成。
  2. MVC 层:使用Struts框架。
  3. 业务逻辑层:主要由Spring loc 容器管理的业务逻辑组件组成。
  4. DAO 层:由 DAO 组件组成,实现类必须继承Spring提供的Hibernate Dao Support。
  5. Hibernate 持久层:由 PO 组成,并在Hibernate Session 管理下,完成数据库访问。
  6. 数据库服务层:使用Oracle 数据库存储持久化数据。
    系统的具体分层如图3.1所示:

图3.1 系统结构图
在图3.1黑色大方框内的MVC 控制层、Service 层及DAO 组件层的组件,都由Spring IOC 容器负责生成,并管理组件的实例。
本系统不仅严格按MVC 模式设计,还按J2EE分层设计,将中间层严格分成业务逻辑层、DAO 层及数据持久层等。MVC 层的控制器绝对禁止持久层访问,甚至不参与业务逻辑的实现。表现层采用传统JSP 技术。
本系统采用的是典型的J2EE 三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。JSP广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层采用的是流行的Spring + Hibernate ,为了将控制层与业务逻辑层分离,又细分为以下几种:
Web 层,就是MVC 模式里面的C,负责逻辑层和表现层的交互。调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC采用Struts框架。
Service 层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO 层为基础,通过对DAO 组件的正面模式包装,完完成系统所要求的业务逻辑。
DAO 层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。
PO ,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate 作为ORM 框架。Spring 的作用贯穿了整个中间层,将Web 层、Service 层、DAO 层及PO 无缝整合,其数据服务层用来存放数据。

 

你可能感兴趣的:(计算机毕业设计项目)