摘要

随当前,我国人均消费水平不断提高,人们在追求美好生活的同时也更加注重自身的保养,健康问题成为人们能不能享受美好生活的关键。人们日常的活动就围绕着自己所在的社区,而社区医院作为人们日常问诊、检查的首要选择,承担起了社区居民的日常保健这一任务,也负担起了相应的责任。

本系统是利用JAVA技术和MySQL技术来实现的,作为医生和患者之间联系的桥梁,该系统基于社区内居民就诊情况设计的社区健康管理平台分为三类用户角色,分别是平台管理员、医生和患者,其中医生和患者需要注册方可登录使用该系统,而平台管理员直接用管理员账号登录即可。医生和患者都需要录入自己的基本信息来进行诊断或问诊,其中患者需要录入自己的身体情况,也可以上传自己每天的健康日志,包括饮食、用药状况等。医生可以上传自己的资历、就诊类别等信息,也可以上传健康文献。平台管理员则负责管理医生和患者的相关信息,审核健康日志等功能。

关键词  社区医院健康管理平台电子健康档案JAVA

毕业设计说明书(论文)外文摘要

Title      Java Based Community Health Management Platform                           

                                                   

Abstract

At present, China ’s per capita consumption level is constantly increasing, and people are paying more attention to their own maintenance while pursuing a better life. Health issues have become the key to whether people can enjoy a better life. People's daily activities revolve around their communities, and community hospitals, as the first choice for people's daily consultations and inspections, take on the task of daily health care of community residents and bear corresponding responsibilities.

This system is implemented using JAVA technology and MySQL technology as a bridge between doctors and patients. The community health management platform designed based on the visits of residents in the community is divided into three types of user roles: platform administrator, Doctors and patients, in which doctors and patients need to be registered to log in to use the system, and the platform administrator can log in directly with the administrator account. Both doctors and patients need to enter their basic information for diagnosis or consultation. Among them, patients need to enter their own physical conditions, and they can also upload their daily health logs, including diet and medication status. Doctors can upload information such as their qualifications, types of visits, and health documents. The platform administrator is responsible for managing doctor and patient related information, auditing health logs and other functions.

Keywords  community hospita,health management platform,health file,java

目  录

1 绪论

1.1 研究背景

1.2 研究意义

1.3 研究现状

1.4 研究内容

2 系统开发工具与主要技术简介

2.1 Java技术

2.2 系统框架

2.3 JavaScript

2.4 本章小结

3 系统需求分析

3.1 可行性研究

3.1.1经济可行性

3.1.2技术可行性

3.1.3操作可行性

3.2 功能需求分析

3.3 功能描述和用例分析

3.3.1健康日志用例管理

3.3.2健康资料管理

3.3.3平台用户管理

4 系统总体结构设计

4.1 系统架构设计

4.2 系统功能流程设计

4.3 数据库设计

5 网站的具体实现

5.1 数据库连接

5.2 患者端实现

5.3 医生端实现

5.4 管理员端实现

5.5 本章小结

6 网站运行与测试

6.1 健康文档上传模块测试

6.2 人员健康模块测试

6.3 在线咨询测试

6.4 公告展示测试

结  论

致  谢

参 考 文 献

1 绪论

1.1 研究背景

随着生活水平的提高和社会的飞速发展,人们越来越重视个人健康问题,“有病去医院”的思想也深入人心,这也就使得社区医院内的病人病历以及与之相关的医生诊断种类繁多,而对于健康档案的保存[1],采用纸质保存的方式较为常见,但采用纸质保存这一方式需要人力和大量的存储空间,既费时又费力,并且通过观察我国医疗系统目前的状况可以得出,我国整体的医疗系统还存在着诸如管理制度不合理、管理方式不规范等问题,医疗改革势在必行[2],而医疗改革的重点就放在社区健康管理平台的建设上。所以为了解决上述问题,逐渐开发出了社区健康管理平台,方便对前来就诊的社区居民的就诊信息进行管理,也方便医生对该社区居民就诊后的恢复情况做进一步的点评交流。

1.2 研究意义

社区健康管理平台的推广使用既防止了社区居民就诊信息的丢失,也使这些信息的查找变得更加简单、便捷,同时,负责管理社区健康档案的工作人员也能更直观的对患者信息进行管理,工作效率得到了大幅度的提升[3]。除此之外,患者在回家之后的饮食情况、用药情况以及身体情况信息等,通过该平台都可以的到医生及时的反馈,对患者的病情恢复也起到了重要作用。而患者可以选择自己想要就诊的医生,查看该医生的资历等信息,也使患者在就诊前对医生有一些了解[4]。健康日志的录入也使得患者对于自身的状况有了一个大概的掌控。医生和平台管理员通过上传健康文献,还可以向患者科普一些健康小常识。总的来说,社区健康管理平台的使用既有利于提高工作人员的工作效率,也有利于对社区居民的相关就诊信息进行查询。

1.3 研究现状

健康管理源自美国“健康管理”模式,管理信息系统兴起于20世纪60年代末。1968 年,美国计算机界就发表了若干篇论文,介绍了基于计算机技术的信息系统和信息管理的应用前景。虽然美国有记录的健康管理研究只有20多年的历史,但健康管理的思想和实践却可追溯到70多年前。美国蓝十字和蓝盾保险公司在1929年进行了健康管理的实践探索。1978年,美国密执安大学成立了健康管理研究中心。

再观国外,像日本、新西兰、澳大利亚对于患者电子健康档案的投入使用和管理较早,这些国家现在已经具备了一套较为完整的社区健康管理体系,而美国相较于其他国家来说,投入使用比率较低,但相较于之前,总体的投入使用比例也有所提高。可以说,社区健康管理体系的投入和总体发展趋势是上升的。

事实上,我国已经开展了一些健康管理方面的实践探索,如有的医院设有健康咨询门诊,重点为白领阶层提供健康指导服务;“送医下乡”为农民健康体检并建立健康档案等。随着信息科技时代的快速发展,人们对于健康服务有了更多的期待与要求。我国对于社区健康管理平台的研究、开发以及投入使用总体来说起步略晚,第一个投入设计使用的社区健康管理平台是在上海市闸北区,这个平台的使用为以后的研发奠定了基础。

再观如今,国内的计算机发展水平已经达到了一个新的高度,而且国内对于社区居民的健康档案问题十分重视。在上海、浙江等沿海地区的某些社区推广使用社区健康管理平台之后,已经取得了显著成效,这就使得其他地区的社区健康管理平台也逐渐推广开来,在全国范围内对于社区健康管理平台的使用范围也在不断地扩大。可以预测,将来会有更多的社区使用社区健康管理平台,其功能也会愈发完善[5]。

但是,通过查找各类资料显示,目前我国很少健康服务网站能够做到让用户自主的管理自身的健康信息和实时的得到医生的健康指导。虽然有些地方已开始将个人健康咨询问诊信息下沉到社区,同时也建立了越来越多的社区医院,但是各个社区医院所使用的系统却比较散乱。并且,现有系统均采用Java或者PHP来编写,其使用时间接近甚至超过10年,优化起来的难度确实比较大,各项功能参差不齐,也更为繁琐。目前,迪爱斯公司研发的通用社区医院管理系统,功能相对比较全面,且包含了很多的求诊情况、各个科室的信息和一些诊断信息。

在现有参考文献的研究报道中,“蚁师导医”APP通过PHP语言设计了一款社区门诊系统,主要包括医生和管理员两种用户,为医生提供在线问诊的登记录入等一系列功能;并且,通过SSH框架还可以帮助医院实现开具处方、记录病人病历等功能。其优势在于,医师可以在线问诊咨询,但缺点是只定位到专家,而非所有的医生可以通用,尚不能全面推广使用。“塞上仁医”APP是一款健康医疗服务软件,通过JSP技术实现了社区挂号系统,能实现社区的挂号以及挂号审批、体检预约功能,优势在于可以远程在线挂号、预约挂号、在线问诊、就医指南、智能导诊、零元复诊等线上问诊流程,线下实体医院预约挂号功能,在线查看处方单、检验单、检查单,在线缴费等。但缺点是不能对患者数据进行查询,患者不能自己查询所有的诊断情况,相对体验较差,没有形成合理的闭环数据。“蚁师导医”APP通过C++技术实现了客户端的在线医患咨询项目,主要实现了医生在线问诊以及患者求医登记、以及患者健康状况查询等功能。其优点在于满足了基本的在线求医需求,但却需要客户端安装部署到每一台电脑,对平台的集成依赖太大。

综上所述,现有的社区在线健康服务平台系统仍存在一定不足或功能缺失之处。例如,患者不能填写平时的健康状况,尚无法形成大数据下的病情分析等。因此,对功能更加完备的社区在线健康服务平台进行研究是非常必要的,使之既可以记录患者的平时健康状况并进行简要数据分析,又可以达到在线服务的效果,从而为打造线上的医疗系统、将健康数据进行回归和汇总等后续数据分析奠定基础。

1.4 研究内容

本系统主要分为医生、患者、平台管理员这三种用户角色,主要包括医生上传健康文献供平台管理员审核后,并供患者和医生进行查看。患者上传个人的健康日志需要录入自己的身体情况,包括饮食、用药状况、身体相关指数等,根据身体信息指数可以生成折线统计图,便于观察身体的每日的变化。医生可以上传自己的行医资历、就诊类别等信息,也可以上传有关自己所负责的疾病类型等相关文献,也可上传关于的个人的行医经历,同时可查看选择就诊于自己的病患的所有身体信息并可提出自己的建议。本系统主要是为了更加便于管理该社区内的社区居民的健康档案而设计实现的,就此来说,在下文中将会集中于对该系统进行需求分析以明确各个模块的主要功能,进行数据库的设计以明确数据库中所需要的角色性质,以及对该系统的技术实现、关键代码、关键模块、创新性功能进行分析,全方位的对社区健康管理平台进行阐释。

2 系统开发工具与主要技术简介

2.1 Java技术

Java是近几年比较流行的开发语言,Java的思想是基于面向对象开发,可以把对象看成是一个个类,类中可以对属性和方法,类与类之间可以包含也可以进行调用,Java是通过JDK环境进行程序开发,通过JVM进行编译,在运行程序的时候需要Jar包[6],Java是开源语言,是基于C++简化并且有所提高设计的语言,Java是分布式语言,支持多线程和分布式开发,可以进行socket网络开发,Java有多种基础类型,可以对数据进行定义,Java语言开发是比较稳定安全的,它没有指针因此没有复杂的链式设计,Java的可塑性比较高,最大的特点就是可以跨平台开发,耦合度较低,而Java语言是健硕的,是强容错机制,且具有异常处理与自动回收机制。

2.2 系统框架

SpringMVC:Springmvc是在struts之后又一大控制层框架,主要处理DispatcherServlet请求后的动态处理,它基于MVC三层架构设计,对页面代码和后台处理代码进行解耦,对代码架构进行分层,在代码中通过@Controller注释进行注入,通过视图解析对代码的页面的前缀后后缀格式以及路径进行定义,通过requestmapping对请求路径UrL进行定义,通过对controller类中的总定义或者是方法上定义,它基于result接口开发[7],可以对url路径进行动态定义和拼接定义,且前端传输数据后台可以通过类进行接受,或者是通过method对请求方法进行设置,提升了API接口的安全性,在file文件上传时也可以通过springmvc对文件大小及传输进行定义设置,通过@PathVariable对路径上的参数进行提取,而action是通过form表单进行封装然后通过set和get方法对参数进行提取,springmvc整体来说对servlet层进行了功能简化,让请求定义到某个方法使得代码更加明确[8]。

Spring:Spring是一个轻量级的容器框架,通过spring中的注释依赖注入使得代码层定义更为简单,spring作为一个容器功能可以对很多的bean定义生命周期,以及定义bean与bean之间的关联,而在spring注入的bean可以直接进行调用,无需重新定义,因为在spring中通过控制反转模式,对容器中的对象进行动态代理,将容器中的类进行动态生成,通过单例模式对类进行定义,spring还有一个特点就是切面编程,基于java的面向对象模式,由点到面,对同一类的对象进行监控和管理,可以对service中的数据库交互事务进行拦截处理,使得业务达到完整性原子性[9],可以对登陆进行拦截,也可以对日志进行拦截操作spring可以集成很多的orm容器框架,集成后都可以通过注解方式进行注入处理。

Mybatis:在最初的数据库交互处理层都是通过JDBC进行处理,通过手动建立连接机制对PreparedStatement进行定义和资源释放,而后慢慢出现数据库连接池对数据库资源实行自动管理,利用c3p0或者其他数据库连接自动控制,mybatis一般由xml文件和mapper类组合而成,xml文件输入resource资源文件,一般放在根目录下,mybatis一般分为三层,首层为API层,通过对外界提供mapper的API接口可以负责外界处理业务调用,二层为数据处理层,主要负责sql的执行以及查询数据的返回,可以对数据进行批量执行,通过resultmap对返回数据字段以及类型进行定义[10]。底层为数据库连接管理以及缓存机制和事务处理,作为mybatis的核心组件为上层处理提供支撑,mybatis的核心机制是冬天语句功能,可以对sql进行自定义动态切割和拼接,可以在xml通过if判断语句对数据进行设置和判断,大大提升了业务逻辑能力。

2.3 JavaScript

JS是存在与页面前端的一类嵌入式开发的编程用语,跟java语言一样的是js也是跨平台编程语言,也是面向对象机制,可以定义数据类型,目前比较火热的node.js,可以直接对数据进行处理后后台交互,js通过对前端页面提供文档对象模型,对前端语言进行扩展,可以动态对样式或者是页面数据等进行控制,js是一门弱语言,即有错误时不一一定会影响代码运行,且js语言没必须定义方法,对象或者是类,没有接口,继承等,无需处理返回数据的格式类型等,js的作用主要是调节页面跟servlet的数据交互以及动态页面的数据展示,对前端起到一个调节和融合作用。

2.4 本章小结

本章主要介绍此系统在设计过程中才涉及的技术,本系统采用MVC的三层设计思想,采用Jsp作为页面设计,采用SSM框架作为Java后台设计,数据库存储采用Mysql。

3 系统需求分析

3.1 可行性研究

3.1.1经济可行性

为了使得社区人们可以对自己的健康进行自定义的网络在线管理,社区需要建立一款管理社区人员健康的平台,可以对社区的健康信息建立大数据平台分析数据搜索,而建立一款社区健康管理平台消耗的资金不多,后期投入也不会很多,平台就是作为一个健康咨询和管理的桥梁,没有必要投入很多的财力和人力。

3.1.2技术可行性

技术可行性:在开发工具中选择IntelliJ IDEA,它开发更为简单快速,且快捷键更容易操作,在项目的管理方面和插件的自定义集成方面更合理,使用Maven作为项目管理工具和Jar包管理工具,可以自定义引入开发包,且可以直接避免包之间版本的冲突问题,可以对项目定义资源包和系统包,以及开发JDK版本,开发语言采用Java,基于面向对象让程序更为健硕,采用SSM框架集成,采用Mybatis作为底层数据交互,采用拼接的Sql语言自动集成效果更好。

3.1.3操作可行性

在操作完成度以及操作使用度方面,本系统主要为三种用户角色,且主要为社区人员或者可以定义成社区的患者以及一些社区的老年人,因此系统的使用要功能一目了然且操作非常简单,基本对数据除了特殊校验不做大的调整限制,对系统菜单以及按钮都直接明朗,不会有任何奇异,且无需操作者过多的跳转三级深入页面,使用更为简单。

3.2 功能需求分析

基于前期的社区健康市场调研分析以及目前的文献法对系统的认知,系统开发主要分为三种角色,即所谓的社区老年患者、社区问诊医生、社区管理员,此系统主要基于社区进行健康管理,主要分为以下几大模块,健康日志记录模块,社区人员可以对自己的每天的一些吃饭以及用药、身体情况等或者自己的疾病编号等情况进行记录,可以按照日期进行导出,可以在线咨询医生,可以下载平台的一些健康知识文献,可以查询可视化身体情况分析,医生可以查询所有的健康文档,可以对关注问诊自己的患者查询他们的健康信息以及对问诊进行在线回复留言,管理员可以对平台的社区老人和社区医生进行账户管理,可以对平台健康公告以及健康知识文献进行发布。

根据需求梳理,模块功能总图如下:

图3-1系统模块结构图

根据各个用户角色之间的权限功能以及模块关联,系统功能按照角色分为以下几大模块,各个模块之间的关联可以交叉数据交互。

社区人员也就是患者端功能,社区人员登陆后首先需要对自己的健康日记进行管理登记,健康日记包括自己的基本每天的饮食记录以及用药记录或者特殊疾病的备注情况,以及对自己的血压、血糖、体温进行汇总登记,可以对注册的医生进行查询和在线问诊咨询,可以对健康资料文献进行查询。

医生端,医生是通过平台进行注册的,审核通过后就可以使用账号,医生主要是对平台社区人员的一些在线问诊进行健康资料查询,以及自己的一些平台健康用药积累或者是小知识汇聚成文档进行发布,可以查询人员的身体汇总情况。

管理员端口主要是针对于社区健康管理平台的用户进行管理,需对医生的账号申请进行审核,可以对基础健康的常识科普进行发布,可以对医生的健康小知识文档进行审核。

3.3 功能描述和用例分析

用例图对每个用户的所属关联模块以及用户之间的交互模块以及角色进行划分,用例图主要对基于用户角色对用户的功能进行发散细化,是的系统功能更为明确,用例图的细化可以让系统用户交叉的模块更为清晰,以及各个角色之间的关联度更为明确。

(1)管理员:主要是系统注册的用户的信息维护,医生、社区人员的账号以及身份信息管理,上传文档的类型以及文档管理,平台公告管理。如图3-2所示:

图3-2管理员用例图

(2)医生:可以对一些在线问诊的社区患者的健康日记进行分页查询,可以对医生自己的一些简介进行更新,可以对社区人员的身体情况和饮食用药情况进行查询,可以把自己的一些健康知识文献积累汇总上传。如图3-3所示:

图3-3医生用例图

(3)患者:社区患者需对自己的每天的一些吃药、身体数值、或者是身体不舒服以及用药的情况进行登记在册到平台,可以对平台所有医生进行在线问诊,可以对平台文献通知查询。如图3-4所示:

图3-4患者用例图

3.3.1健康日志用例管理

社区人员可以进入菜单栏对自己的健康日志进行每日的登记。

  1. 用例描述

表3-1 社区健康日记用例

描述

用例功能说明

社区健康日志登记

功能操作人

社区注册的用户

前提条件

进入到登记页面,且当天未填写

流程介绍

1.填写自己的当天用药情况,身体检测情况汇报,

2.页面中信息填充错误,跳转a2。

反馈错误结果

a1. 当天已有汇总,或汇总数据有误

a2. 健康汇总数据错误。

后置条件

弹窗提示健康汇总填充成功。

社区人员可以对自己的身体情况进行可视化展示。

 (2)用例描述

表3-2 可视化用例

描述

用例功能说明

身体情况可视化展示

功能操作人

社区注册的用户,医生

前提条件

进入个人可视化页面对近10天数据分析

流程介绍

1.查询自己的近10天 血压、血糖、血脂数据折线图,

2.页面中信息展示错误,跳转a2。

反馈错误结果

a1. 血压、血糖、血脂的折线可以分段展示

a2. 健康汇总数据错误。

后置条件

身体情况可视化展示成功。

3.3.2健康资料管理

医生和管理员可以把健康资料上传到平台中供大家下载查阅。

 (3)用例描述

表3-3 健康资料管理用例

描述

用例功能说明

社区健康资料管理

功能操作人

社区注册的用户,医生,管理员

前提条件

进入健康管理菜单栏,对文件进行上传和下载查询

流程介绍

1.医生进入页面,选择文件进入传输a1

2.用户点击文件下载a2。

反馈错误结果

a1. 选择文件格式有误

a2. 系统有误,下载失败。

后置条件

健康文件下载成功。

3.3.3平台用户管理

平台管理员可以对注册的所有社区居民和医生实施管理。

 (4)用例描述

表3-4 平台用户管理用例

描述

用例功能说明

社区平台注册管理

功能操作人

社区注册的用户,医生,管理员

前提条件

进入用户管理界面查询和审核

流程介绍

1.管理员对医生进行审核,点击审核键a1

2.用户点击删除a2。

反馈错误结果

a1. 审核失败,用户已被删除

a2. 系统有误,操作失败。

后置条件

管理审核成功,且可以查询。

4 系统总体结构设计

4.1 系统架构设计

在整个的设计架构来说首先是基于MVC三层进行设计,通过对三层页面代码的分离首先让代码的层次梳理分明,然后可以对各层级之间的调用更为清晰,在Views层主要是浏览器的展示界面,可以跟用户进行直接交互体现,在Controller层是对前端页面的数据请求进行中转处理以及接口的设置和安全性能定义,在Model层是跟底层进行数据的查询和存储的交互,具体架构图如下。

图4-1系统架构图

4.2 系统功能流程设计

社区人员登陆后可以对自己的健康日志资料进行填充,需每天填写自己的健康日志,包含每日的饮食、用药、有些特殊身体不舒服的备注情况,以及一些血压、血糖、体温基本情况,可以进入到医生问诊页面,关注医生来获取在线咨询,可以查询所以医生上传的健康资料,流程图如图4-2:

图4-2患者操作流程图

医生模块,医生主要负责社区人们的在线咨询问诊,可以对问诊关注的患者查询每日的健康日志,可以查询追踪汇总的身体情况,以及用药饮食记录,可以上传自己的一些健康看病经验小知识文档,流程图如图4-3:

图4-3医生操作流程图

管理员模块,后台社区管理人员可对平台所有人的账号进行管控,可以对社区医生的发布的健康文档小知识进行审核,可以发布平台通知,流程图如图4-4:

图4-4管理员操作流程图

4.3 数据库设计

本设计中采用的存储为mysql,主要用来存储系统平台的数据信息,数据库设计主要为表结构和字段以及表之间的业务关联,通过表中的主外键进行逻辑关系处理。

数据库E-R图设计如下:

图4-5 E-R图

将数据库的概念结构转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑结构,进一步形成数据库中的表格以及各个表格之间的关系。

社区医生注册信息表如表4-1所示,表名:community_doctor

表4-1社区医生表

表列名

字段类型

为空

主键

说明

comdid

[int]

不允许

YES

社区医生编号

comdname

varchar(20)

不允许

NO

医生账号

comdpwd

varchar(50)

不允许

NO

医生使用密码

comdphoto

varchar(70)

不允许

NO

头像路径

dname

varchar(10)

不允许

NO

姓名

comdtel

varchar(15)

不允许

NO

医生电话号码

comdemail

varchar(30)

不允许

NO

注册邮箱

社区人员表如表4-2所示,表名:patuser

表4-2 社区人员信息表

列名

数据类型

为空

主键

说明

patuserId

[int]

不允许

YES

社区人员ID

pusername

varchar(20)

不允许

NO

社区人员账号

patuserpwd

varchar(80)

不允许

NO

社区人员密码

puserrtel

varchar(15)

不允许

NO

家庭联系电话

puseraddress

varchar(30)

不允许

NO

所住社区地址

社区人员登记日志表如表4-3所示,表名:healthdaylog

表4-3社区人员日志信息表

列名

数据类型

为空

是否主键

说明

Id

[int]

不允许

YES

日志ID

puserid

varchar(20)

不允许

NO

社区人员编号

healthfay

varchar(100)

不允许

NO

记录健康情况

othercheck

varchar(80)

不允许

NO

其他情况

addriqi

varchar(20)

不允许

NO

记录日期

社区发布公告表如表4-4所示,表名:news

表4-4社区公告信息表

列名

数据类型

为空

是否主键

说明

bullId

[int]

不允许

YES

社区公告ID

bulltitle

varchar(30)

不允许

NO

公告头部

bullcontent

varchar(255)

不允许

NO

公告内容

bulldate

varchar(60)

不允许

NO

发布日期

社区人员问诊关注医生表如表4-5所示,表名:patient_and_doc

表4-5社区人员问诊医生信息表

列名

数据类型

为空

是否主键

说明

askId

[int]

不允许

YES

问诊主键ID

askpatientid

[int]

不允许

NO

问诊患者

askdoctorid

[int]

不允许

NO

咨询医生

平台健康知识文献表如表4-6所示,表名:uphealthfile

表4-6健康知识信息表

列名

数据类型

为空

是否主键

说明

healthId

[int]

不允许

YES

文献生成编号

healthtitle

varchar(30)

不允许

NO

文献描述标题

healthdesc

varchar(80)

不允许

NO

内容描述

upaddress

varchar(60)

不允许

NO

所在路径

healthstatus

[int]

不允许

NO

审批情况

5 网站的具体实现

5.1 数据库连接

系统在数据库交互匹配采用连接池模式,即多对多模式,在了开发的初期都是采用手动调用驱动连接,即耽误时间也影响的资源的自动释放,使得数据库的连接不能收缩自如,在使用数据库连接池C3p0后可以自定义连接时间和唤醒时间,但数据库长时间无人访问时可以定义简单sql自动执行,且可以定义连接次数和池中总连接数,可以对连接时长和响应时间进行定义,加强了数据库的连接机制,如下所示:

图5-1数据库连接

5.2 患者端实现

社区人员可以通过Url进入到本社区健康系统,如果是第一次进入可以根据自己的基本情况以及社区情况选择普通用户角色进行注册,输入自己的名字跟家庭地址、以及登陆账号等进行注册,具体界面和其流程如图5-2、图5-3:

图5-2患者注册

图5-3患者注册流程图

社区人员通过账号校验登陆后,可以对自己的基本信息进行完善,以防后期系统进行社区健康大数据汇总,可以把人员的真实姓名、家庭住址,身份证信息等进行完善,通过update方法更新数据库,通过后台的session获取当前社区人员的编号ID更新具体如图5-4:

图5-4患者个人信息编辑

核心代码如下:

@RequestMapping(value = "/showmessage" )private String show(HttpServletRequest request,Model model) throws Exception {    HttpSession session=request.getSession();//获取当前登陆人

Patient patient=patientService.findById((Integer) session.getAttribute("userId"));    model.addAttribute("user",patient);//将患者信息传输到页面

    return "patients/showMessage";}

社区人员的核心就在自己的健康日志的实时填写,本人登陆进入到系统后,进入到日志填写中可以对当天的饮食情况以及自己的一些疾病备份,身体检查状况等进行更新,可以根据时间日志进行查询,具体和其流程图如图5-5、图5-6:

图5-5患者健康记录

  

图5-6 患者健康记录流程图

核心代码如下:

Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");String dateString = formatter.format(currentTime);

//获取到当前记录时间

patdaylog.setRiqi(dateString);HttpSession session=request.getSession();//获取到当前的患者编号

patdaylog.setPatid((Integer) session.getAttribute("userId"));

//保存健康日志到数据库

patdaylogService.add(patdaylog);

社区患者登陆后在自己的首页可以查看到社区平台的一些与大多数人适用的健康文献公告资料,可以下载文档并查阅,健康文档都是经过平台管理员审核后或者是平台管理员直接上传的,通过二进制流模式传到服务器进行保存,具体如下图5-7:

图5-7文献查询

社区患者可以在自己的页面查询到平台所有注册的医生,医生需审核通过后才可以展示,可以点击医生详情进行查询,可以对医生点击在线求医,求医后医生可以在自己的模块查询到此患者信息,具体如下图5-8:

图5-8医生列表

在社区普通人员填写自己的健康日志后,可以对中的信息进行提取,可以对三高信息进行细化提取,然后获取到近10天的情况进行数组汇总,通过Model把数据传输到前端,通过highchairt对数据进行展示,具体及其获取流程图如图5-9、图5-10:

图5-9患者 血压、血糖、血脂折线图

5-10 获取患者健康日志流程图

核心代码如下:

String arr[] = new String[10];  //高血压String arr1[] = new String[10];  //低血压String arr2[] = new String[10];  //体温String arrriqi[] = new String[10]; //日期String arrt[] = new String[10]; //高血糖String arrx[] = new String[10]; //高血脂for(int i=9;i>=0;i--){    if(list.size()>i){ Patdaylog patdaylog=list.get(i);        arr[i]=patdaylog.getGaoxueya();        arrriqi[i]=patdaylog.getRiqi();        arrt[i]=patdaylog.getGaoxuetang();        arrx[i]=patdaylog.getGaoxuezhi();        arr1[i]=patdaylog.getGaoxueya1();        arr2[i]=patdaylog.getTiwen();    }else{//对数据进行格式转换

        arr[i]="0";        arrriqi[i]="0";        arrt[i]="0";        arrx[i]="0";        arr1[i]="0";        arr2[i]="0";    }}

社区人员可以对自己的病例情况进行填写,可以对病例中的血常规,尿常规等进行填写并查询,可以根据时间进行查询,具体如图5-11:

图5-11病例记录

5.3 医生端实现

医生通过填写自己的个人情况进行注册,医生需填写手机号和邮箱信息注册,注册时判断系统中是否已有此医生信息,医生注册后不能立马登陆需审核才可以进行登录,具体如图5-12:

图5-12医生注册

医生进入到该系统后可以将自己的信息描述完善,通过在session中获取到自己的个人情况并传输到页面,然后在页面中展示,在填充完善后,通过医生控制层的update进行更新等,具体如图5-13:

图5-13医生信息编辑

医生进入系统今后也可以发布自己的健康文献知识,通过选择符合限制的文献资料格式进行上传,通过文件流传到服务器进行保存,医生上传的资料需后台社区人员审核后才可以展示,具体及其流程图如图5-14、图5-15:

图5-14医生上传文献

图5-15 校验文件流程图

核心代码如下:

//如果文件不为空,写入上传路径if(!file.isEmpty()) {    //上传文件路径    String path = request.getServletContext().getRealPath("/images/");    //上传文件名    String filename = file.getOriginalFilename();    File filepath = new File(path,filename);    //判断路径是否存在,如果不存在就创建一个    if (!filepath.getParentFile().exists()) {        filepath.getParentFile().mkdirs();    } //将上传文件保存到一个目标文件当中    file.transferTo(new File(path + File.separator + filename));    return "success";} else {    return "error";}

医生可以对关注自己的患者进行查询,关注即相当于求医,医生可以点击患者详情查询所有的患者按照时间排序的健康日志信息,可以把患者汇总的三高情况可视化查询,如图5-16:

图5-16患者查询

在医生端可以查询到对自己求医的患者的信息,可以点击详情查询此患者的每日填写的健康日志信息,可以通过Excel对健康日志信息进行导出,如图5-17:

图5-17患者健康记录查询

在医生对患者的健康日志进行查询后,可以做出一个求诊的建议以及一些问诊健康信息留言,便于患者进行健康分析,如图5-18:

图5-18医生问诊留言查询

5.4 管理员端实现

社区管理人员首先对上传的文献资料的类型可以进行设置,通过分类可以使得文献资料可以直接展示,可以对名称进行自定义命名和设置,如图5-19:

图5-19类型管理

后台管理员可以查看所有注册的社区患者,患者通过查询患者表查询所有信息,可以对真实姓名、居住地址、邮箱、年龄等信息进行查询,可以根据患者表关联患者健康日志表进行查看,对注册的医生信息也可查看,医生信息若是注册则需要审核才可以使用,如图5-20、图5-21:

图5-20患者管理

图5-21医生管理

社区管理人员可以对医生的文献知识进行审核,因为医生上传的资料需后台审核,若状态status置为1才算是通过,若为2则为驳回,可以在此进行修改,具体及其流程图如图5-22、图5-23:

图5-22文献审核管理

图5-23 审核文件流程图

核心代码如下:

@RequestMapping(value = "/update" )private String edit(Integer id, Integer upstate) throws Exception {    Userfile userfile=new Userfile();//获取文献资料    userfile.setId(id);    userfile.setUpstate(upstate)

//设置审核状态  

userfileService.update(userfile);    return "redirect:/userfile/showuserfile";}

管理员端可以查询所有的健康文献资料信息,也可以上传平台发布的一些健康资料信息,可以进行分页查询,如图5-24:

图5-24文献管理

在后台管理员端可以对一些实时小提醒或者是一些平台公告进行发布,便于患者进行提醒注意,比如一些天气变化,或者是一些健康提醒注意事项,如图5-25:

图5-25每日推荐管理

5.5 本章小结

本章主要是对本课题的详细模块设计及界面做一个介绍,且举例介绍了每个模块的核心代码设计,根据用户角色的不同,以及网站的前后端进行切割解析,分析了每个模块的设计思路和核心代码介绍。

6 网站运行与测试

本模块的主要内容就是对社区健康管理平台系统进行一个测试。通过系统测试,可以使研发者对该系统的各个功能模块的了解更加深入,也可以很快的检测出系统的功能方面存在的不足之处,对系统的总体情况有一个全面的把握。测试主要分为黑盒测试以及白盒测试,这两个测试负责的功能模块各不相同,测试的部分也不同,一个注重对系统功能进行测试,另一个注重对系统逻辑进行测试。

本部分的主要工作就是针对社区健康管理平台的各项功能进行逐一的测试,比对测试出的效果是否符合预期的情况。再根据测试中出现的问题进行逐一的记录、修改。在本次测试过程中要对系统的功能模块、数据库的信息等都进行检查,确保信息准确无误,功能实现流畅。在系统完成设计的最后一步也是最重要的一个环节就是系统测试,系统测试往往是对整个设计的放心的把控,也是对整个项目需求的梳理和把控,对项目的业务逻辑进行验收,测试中包括黑盒测试和白盒测试,黑盒主要是对功能逻辑进行测试,其实更为注重的是结果,白盒测试则主要为系统的逻辑功能,包括系统的一些分歧点,根据系统测试,修补bug然后对系统进行完善。在整个的测试过程中,要对可能出现的问题及情况进行汇总,对某一个bug可能影响的关联功能数据进行分析,避免潜在的数据风险,对系统的高可用情况要进行分析检验,对sql的查询,数据的展示速率进行检测,在整个的系统中一定要把控数据的存储,数据时候整个系统的核心根本,数据乱则后续全乱。

系统测试在整个系统开发过程中占有非常重要的地位,是不可或缺的一步,是为了检验系统开发过程的每一步是否完成预期效果,保证实现软件系统的质量安全,这样有利于我们掌控整个系统设计流程。软件测试的产生也是伴随着计算机编程一起出现的,测试的目的是为了查找软件开发过程中可能出现的bug并且及时纠正过来。如今的测试不再只是单纯发现问题,而是真正从用户需求出发,开发出更符合需求的软件。测试和开发是相辅相成的,可以分为单元测试和集成测试,从另一个测试方式讲,我们主要对系统进行黑盒测试即功能测试,掌握系统所有的功能需求,通过测试可以检验出未知的问题,经过汇总分析,解决这些问题然后完善系统。

6.1 健康文档上传模块测试

表6-1健康文档上传测试

测试内容

前置操作

预期输出

测试输出

健康文档测试

选择格式正确文件进行点击传输

文件可以在服务器查询到

文件可以传输到服务器

选择空文件或者格式错误文件

弹出提示错误信息,文件有误

弹窗提示文件失败

6.2 人员健康模块测试

表6-2人员健康模块测试

测试内容

前置操作

预期输出

测试输出

健康模块测试

输入当天的健康情况和疾病情况汇总

保存成功且可以根据时间展示

保存成功且可以根据时间展示

某些填写项目未完整填写

弹出提示系统内容不完整

弹出提示系统内容不完整

6.3 在线咨询测试

表6-3患者在线咨询测试

测试内容

前置操作

预期输出

测试输出

在线问诊测试

社区人员可以点击医生问诊

咨询医生问诊成功,医生端可以查看信息

医生收到问诊信息,可以进行回复

医生可以根据情况进行在线回复

可以查询三高情况,可以进行在线回复

可以查询三高情况,可以进行在线回复

6.4 公告展示测试

表6-4公告展示测试

测试内容

前置操作

预期输出

测试输出

公告展示测试

填写公告内容,标题发布

提示当前公告已发布

提示当前公告已发布

用户点击公告栏菜单查询

按照时间顺序进行排序展示

按照时间顺序进行排序展示

结  论

本系统是根据我国社区居民就诊情况来设计的一个社区健康管理平台,利用jsp技术来进行页面的设计,框架采用SSM框架技术,这种框架技术是一个使用较为广泛的框架技术,开发语言也是学习资源较多的JAVA。通过对本系统的需求进行分析,使得对该系统的所要设计的功能模块有了一个大致的总体把握,接下来的数据库设计,又对该系统的用户情况进行了一个大致的规划,再结合截图和代码对关键模块进行展示,理清本系统的功能。最后就是对本系统进行测试,并根据测试结果完善系统的不足之处,通过此次设计更加巩固了所学的编程知识,对系统的设计过程有了更深的认识与体会。在以后的设计中,要吸取此次设计过程中的教训,努力提升自己的操作水平,在考虑系统功能时更加细致,更加全面。

本次论文设计采用了开发语言java,采用成熟的JSP技术和数据库技术MySQL,采用的技术都是主流开放式的,便于后期扩展功能。此次设计实现了B/S结构的社区健康管理系统,做了以下几项工作:需求分析、技术可行性分析、功能模块设计、数据库设计、系统实现和测试。经过对各个功能模块测试,解决了开发过程中存在的问题,也在设计实现此课题过程中学习到了很多知识。此系统使用起来方便简单、易于管理,极大地提高了日常交流和办公的效率。

参 考 文 献

[1]王国辉.基于Java Web社区健康系统开发[M].北京:人民邮电出版社,2017(09):18-34页

[2]李刚.轻量级J2EE企业医疗应用实战[M].北京:电子工业出版社,2017(06):21-24页

[3]何丽欣.基于jsp的健康档案系统设计与实现[J]. 科技创新导报, 2016(18):50-50页

[4]伊雯雯.基于MVC的Java Web医院信息开发项目式教程.人民邮电出版社.2015(04):17-33页

[5]王小梅.论大数据分析社区健康信息的与运用[J].北京医学院, 2016(24):381-381页

[6]赵利庆.JavaWeb架构中医疗数据库优化模式的研究与实现[D].北京:北京邮电大学,2015

[7]杨婉.基于JAVA技术的在社区医院信息系统的分析与设计[J].中国科技学院学报, 2015, 16(1):80-84页

[8]韩旭.基于JSP的旅游平台的设计与实现[J].电子世界,2020(02):203-204页

[9]刘妍东.浅谈java教学中类的设计[J].科学大众(科学教育),2020(01):194页

[10]左兆丰.Java嵌入式数据库程序的开发[J].电脑编程技巧与维护,2020(01):101-103页

[11]王志辉.浅析计算机软件JAVA编程的特点及应用[J].软件,2020,41(01):266-269页

[12]弓宁.计算机软件开发中JAVA编程语言的应用[J].计算机产品与流通,2020(01):23页

[13]黄菲.基于JSP技术的高职院校校企合作信息管理系统研究[J].电子测试,2020(04):63-65

[14]Dwiyogarani Malik,Zainal Abidin,Bambang Pramono. Tritium tracer Injection test at Wayang Windu Geothermal Field, West Java, Indonesia[J]. Geothermics,2020,83. 

[15]Pratama Aditya,Hadiyat Handayani,Atarita Fadhli Ramadhana,Bijaksana Satria,Santoso Djoko,Abdurrachman Mirzam,Fajar Silvia Jannatul. Petrology and geochemistry dataset of lava from the Ijen Crater and Mount Blau, Banyuwangi, East Java, Indonesia.[J]. Data in brief,2019,27. 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐