社区远程健康监护网络系统的设计与实现
2013-04-25刘敏丰张昊堃聂鹏鹏
刘敏丰,张昊堃,聂鹏鹏
(西安电子科技大学 电路CAD研究所,陕西 西安710071)
为解决医疗资源短缺、人口老龄化、看病困难等难题,近年来社区医疗卫生服务迅速发展。社区医疗[1]是以社区为范围,家庭为单位,健康为中心、集预防、医疗、保健、康复、健康教育为一体的综合服务,包括为健康人提供预防保健任务,为患者提供院外康复和长期治疗服务,为国家提供国民健康状况和疾病分布统计资料。社区医疗是目前解决国内“看病难、看病贵”,满足居民对健康保健服务日益增长的需求的有效方法。
随着计算机技术和Internet的发展,社区医疗信息化得到了快速发展,老年人健康监护成为一个社会问题。为此文中设计了一种基于B/S架构的社区远程健康监护网络系统,通过便携式家庭监测终端设备实时、持续采集使用者的人体生理健康指标,再通过无线或有线网络,将采集信息传送到监护网络系统的中心服务器,当使用者的生理指标出现异常时,服务中心会发出报警信息给监护人或相关医疗单位,而采取救护措施。从而实现对家庭居民的健康监护。
1 系统架构
设计的社区远程健康监护网络系统采用B/S网络架构,系统分为前台服务和后台服务两部分。前台服务程序使用MVC设计模式进行开发设计,负责用户数据的读取,健康报警信息的读取及健康档案的浏览等功能。后台服务程序使用Servlet技术实现,负责健康生理数据的接收、解析及存入数据库。
1.1 B/S3层架构
B/S架构[2](Browser/Server),即浏览器/服务器结构。B/S架构的第一层为客户机,客户机的浏览器解析页面代码转化成图文并茂的网页,允许用户在网页上输入信息,并处理请求提交给Web服务器进行交互。第二层为Web服务器,通过启动服务进程响应请求,并动态生成嵌入处理结果的网页代码,返回给客户端的浏览器。第三层为数据库服务器,负责协调Web服务器发出的数据库操作请求。B/S架构具有分布性特点,可以实时进行查询、浏览等业务处理,维护简单方便、客户端只需装有浏览器即可访问系统等优点。
1.2 MVC设计模式
MVC设计模式[3]把应用程序抽象为Model(模型)、View(视图)、Controller(控制器)3个功能截然不同的部分,三者既分工又合作地完成用户提交的每项任务。模型(Model):包含了应用程序的核心,它封装了应用程序的数据结构和事务逻辑,集中体现了应用程序的状态。视图(view):实现模块的外观,它是应用程序的外在表现。控制器(Controller):通过时间触发的方式接受用户的输入。可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。使用MVC模式将数据从表示层分离开来,使多个视图能共享一个模型,具有耦合性低、重用性高、生命周期成本低等优点。
1.3 Servlet技术
Servlet[4]是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求与服务器响应的中间层。Servlet通过创建一个框架来扩展服务器的能力,以提供在Web上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服务器返回给客户机的响应。Servlet拥有可移植性强、功能强大及安全性高等优点。
1.4 系统的架构设计
鉴于B/S架构和MVC设计模式的优点,本系统提出了一种LAMP平台的网络架构,健康服务前台页面使用基于MVC模式的Joomla!内容管理系统(CMS)进行系统的开发设计,健康服务后台程序使用Servlet技术来实现,负责接收家庭监测终端设备上传的健康生理数据。LAMP系统平台构架,具有稳定的运行性能、可靠的安全性和较快的响应速度,并拥有优秀的扩展能力。Joomla!内容管理系统能方便地进行二次开发,完全遵循MVC软件设计模式。系统整体架构图如图1所示。
图1 系统架构图
2 系统主要功能模块
文中设计的网络系统主要使用群体是专业医疗人士和普通社区居民。根据用户的应用需要,确定了系统的基本需求和应用细节。系统分为前台服务和后台服务两部分,如图2所示:前台服务由5个功能模块组成,包括健康档案管理模块、健康监护模块、电子病历模块、医学信息服务模块、及系统管理模块;后台服务包括数据库存储及Servlet容器两部分。
图2 社区远程监护系统的组成
(1)健康档案管理模块。包含用户的基本信息、既往病史、健康数据等。健康档案能以图表和表格的形式显示健康数据。
(2)健康监护模块。主要作用是当家庭监测终端上传的生理数据出现异常情况时,会发出警告信息,告知用户和监护人异常状态的详细情况,及时通知医护人员采取救护措施。
(3)电子病历模块。记录病人每次检查用药的信息,包含病人的既往病史,过敏史,体查记录及用药记录。
(4)医学信息服务模块。为社区居民提供常见疾病检索、流行病预防常识、重大疾病的预警信息、健康保健及营养卫生常识等医学信息服务。
(5)系统管理模块。主要功能是管理整个网站的内容,包括注册用户信息,网站广播的通过信息等内容。
(6)数据库存储。存储用户的个人信息和健康生理数据等。
(7)Servlet容器。存放Java Servlet程序,Java Servlet程序负责接收家庭监测终端上传的健康生理数据,并对其进行解析及存入数据库。
3 系统的实现
3.1 系统的开发环境
考虑到系统的稳定性和兼容性,在软件版本的选择上,以稳定为主要考虑,选择的软件版本如下:选择CentOS release 6.3操作系统;2.6.32-220.el6.x86_64内核;Apache 2.2.3 Released网站服务器;MySQL 5.1.77 Source distribution数据库管理系统;PHP 5.3.3 cli网页脚本语言;Zend Engine v2.3.0引擎版本,1.5.22版本Joomla!。Servlet容器版本选择Servlet 2.5。开发工具选择由Adobe公司发开发的Adobe Dreamweaver软件是当前流行的网页设计和网站开发工具。
3.2 系统的框架
系统采用Joomla![3]内容作为系统框架,采用组件开发实现系统的各个模块,Joomla!完全遵循MVC设计模式、框架最重要的是组件扩展机制,使用Joomla!框架进行系统扩展的二次开发需要遵循Joomla!框架扩展开发的规范与机制开发组件、模块、插件来满足系统的功能需求。在Joomla!框架中JModel、JController以及JView的3个类,分别对应于MCV设计模式中的Model、Controller和View部分,其中JController类是JModel类和JView类进行数据交换的系带,这3个类与其他的一些类,如JDispatcher类、JRoute类等互相配合,共同完成组件的扩展开发。图3所示为Joomla!框架的组件扩展机制MVC设计模式。
图3 Joomla!框架组件扩展MVC模式图
3.3 数据库的设计与数据存储
本系统采用集中式中央数据库模型,使所有社区居民的健康档案和各种医学服务信息均储存在一个中央数据库服务器上,并按实际需要建立居民的个人资料表、健康档案表、异常信息表、健康保健及营养知识表。其中,健康档案包括社区居民的基本信息、既往病史、过敏史、健康生理数据表、体格检查表等内容。健康生理数据表包括血压、血氧、脉搏、体温、心率、呼吸、身高、体重等这些数据。异常信息表包括用户编号、异常状态描述、警报时间、处理结果、处理完成时间。
Java Servlet程序负责接收家庭监测终端上传的健康数据。家庭监测终端上传健康生理数据时,首先发送请求到服务器,然后服务器将请求信息发送至Servlet,Servlet生成响应内容并将其传给服务器的数据库。家庭监测终端设备以数据包的形式上传健康生理数据,数据包包括用户的姓名、ID号、健康生理信息、异常信息及录入时间。然后Java Servlet进程解析数据包,获得上传的数据,并将解析后的数据存入数据库的对应表单。通过使用FEC(前向纠错)技术以防止数据包的丢失,保证健康生理数据的实时录入。
3.4 主要技术及实现结果
(1)健康档案管理模块。包括健康档案、健康数据录入、健康数据一览及健康图表一览以及用户基本信息、既往病史、过敏史等。健康档案能以图表的形式显示,并具有一定的健康数据分析功能,可筛选出异常的记录及健康数据平均值等。健康档案管理模块如图4所示。
图4 健康档案管理模块
健康数据一览能以图表的形式浏览社区居民的健康数据,方便居民查看自己的历史健康数据。健康数据表包含血压、血氧、脉搏、体温等基本生理参数。健康图表使用HighCharts插件实现,通过在View层中添加JavaScript代码对数据Flash图表化,以Flash图表形式显示,健康数据图如图5所示。
图5 健康数据的图表形式
(2)健康监护模块。使用Ajax[5]编程模式,当有新的异常生理参数传入服务器时,健康监护模块页面能实现实时无闪烁刷新。Ajax通过在浏览器和服务器之间添加Ajax中间层,允许浏览器异步发送请求动态加载服务器响应。用户的请求不再直接向服务器提交,而是使用XMLHttpRequest异步向服务器发送,避免重新加载页面。
当有异常生理参数传入网络系统服务器时,健康监护模块页面能实现地弹窗显示报警信息,同时发出报警提示音;能显示出现异常生理参数的用户姓名、住址、联系电话,出现异常数据的时间及异常数据类型。方便后台医护人员及时通知其家人采取救助措施。
(3)电子病历模块。包含病人的基本信息、过敏史、既往病史、体检记录、病情描述、本次用药记录及记录时间等。病人持电子病历就医,可帮助医务人员迅速、直观、准确地了解病人的资料,缩短确诊时间,避免不必要的重复检查,节省医疗费用。
4 结束语
设计的基于B/S架构的社区远程健康监护网络系统,采用MVC设计模式进行实现,各模块之间相互独立,实用性可扩展性强。健康生理数据上传使用Servlet技术。该系统结合当前的信息化技术,面向社区医疗,响应普通大众对健康理念需求的关注,对当前人口老龄化、“空巢老人”现象、个人健康档案采集效率低等疑难社会问题提出了一个解决方案。该系统可以与便携式家庭监测设备相配合,合理利用网络资源,易于被用户使用和推广,为用户提供更多的医疗、卫生保健、医学教育等服务,进一步完善社区健康医疗体系。
[1] 张允刚,刘常春,刘晓磊,等.社区医疗信息管理系统的设计与实现[J].生物医学工程研究,2005,24(2):102-105.
[2] 王洪,吴效明,黄岳山.面向社区的健康监护系统的研究与设计[J].医疗卫生装备,2011,32(11):24-26.
[3] 胡前进,蔡永州,吴敏.基于MVC模式的Joomla!框架在Web系统组件扩展开发中的应用研究[J].现代教育技术,2009,19(6):97-100.
[4] 刘京华.Java Web整合开发王者归来[M].北京:清华大学出版社,2010.
[5] 李刚.疯狂Ajax讲义[M].北京:电子工业出版社,2009.