陈超 王亮 仇阿根 朱芳菲 李玉祥
摘要:随着计算机网络技术和信息技术的快速发展,社区远程医疗技术也得到了快速的发展。该文依据社区医疗所涉及的会诊活动,基于J2EE的SSH2框架,设计了一种基于B/S模式的社区医疗系统。该系统实现了远程会诊、医学资料管理、医学图像信息的传输及远程咨询等功能。测试表明:该系统操作简单方便,可以合理利用各社区医疗资源,及时为社区居民提供预防、医疗、保健等服务。
关键词: 社区医疗;J2EE;SSH2;B/S;远程医疗
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)06-0056-03
Research and Implementation of Telemedicine System Applying for Community
CHEN Chao1,WANG Liang2,QIU A-gen2, ZHU Fang-fei2, LI Yu-xiang2
(1.Yunnan Province Mapping Institute, Kunming 650034, China;2.Institute of Surveying and Mapping, Beijing 100830, China)
Abstract: With the rapid development of computer network technology and information technology,community telemedicine technology has also been a rapid development.Paper is according to community health involved in the consultation activities.Based on J2EE's SSH2 framework,designed a community health systems based on B/S model.The system implements function such as remote diagnoses,medical data management,transmission of medical image information and remote consulting.Testing indicates that the system is simple and convenient,it can reasonable to use the community health care resources and time for community residents to provide prevention,care,health care and other services.
Key words: community health; J2EE; SSH2; B/S; telemedicine
随着我国社会经济的快速发展和人民生活水平的提高,人们对医疗服务的需求也相应提升。然而,传统单一的医疗服务模式,在如何共享医疗中心或医疗研究机构的人力,设备资源等方面存在一定的制约,从而在很大程度上阻碍了医疗事业的发展。但是,随着计算机和网络通信技术的快速发展,集医学、现代网络通信技术和计算机技术为一体的新型医疗服务模式-远程医疗[1]技术也随之而出现。这种新型的医疗服务模式主要应用在远程专家会诊、远程协助和远程咨询等方面[2],它在方便病人,减少费用,提高工作效率等方面具有重要的意义。当前,随着我国医疗制度改革的深入,社区医疗保健服务在我国已得到快速发展,如何更加充分、合理地使用社区医院的资源,为社区居民提供更加完善的预防、医疗、保健等服务,是一个急需解决的问题。为此,本文提出面向社区的远程医疗系统解决方案。
1 远程医疗系统的架构设计和关键技术
1.1 远程医疗系统的架构设计
远程医疗是一门新兴并快速发展着的学科,相应的它的需求变化也相对较快,人们对于医疗服务的需求再也不局限于传统模式,要求对于一般常见疾病、多发病和诊断明确的慢性疾病可以通过远程会诊等方式与诊断人员进行互访交流。而对于一些疑难病症、急危重症可以充分利用远程医疗网的优势进行转诊或远程实时诊断。同时,对于慢性病人、老年人以及行动不便的患者,可以通过对日常生理数据的有效检测来了解自己的健康状况等。这些需求的快速变化,需要我们的系统具有高可扩展性、可重用性和可维护性,而良好的系统架构模式是解决这一问题的关键。为了方便用户使用,本系统采用的是B/S结构和当前比较流行的SSH2(Struts2 Spring Hibernate)框架[3]。整個系统按照MVC[4]的思想划分为三层,即视图层、控制层、模型层,如图1所示。
在本系统中,使用Struts作为系统的基础架构,实现MVC的分离[5]。在Struts框架的模型部分,业务层利用Spring提供支持,持久层采用Hibernate框架。整个系统的工作流程为:在表示层中,首先通过JSP组件实现与用户交互的界面,负责请求的发送和接受响应,在服务器端,控制器ActionServlet类截获到发送的请求,然后在Struts-config.xml中查找与该请求匹配的Action类,并委派给相应的Action处理。在业务层中,以Spring的IoC容器负责管理业务逻辑组件、持久层组件及控制层组件,同时利用DI(依赖注入)的优势[6],以增强系统的解耦,从而提升系统的性能和保证数据的完整性。对于在持久层中,则依赖于Hibernate的对象化映射机制和数据库进行交换[7],处理DAO组件请求的数据并把处理的结果返回。
通过采用上述开发模型,无论前端如何变化,只需要对模型层做很小的改动,而且由于不同层之间的耦合度很小,这样大大提高了系统的开发效率和可复用性。
1.2 系统的关键技术
在系统的设计与实现当中,需要解决以下几个关键技术点:
1)对于一些终端设备(如心电仪、电子血压计)传输过来的数据,经过相应设备转换,通过数据解析和算法的处理之后,可以在表示层中展现出来。
2)实时上传与下载大容量文件。系统能够通过点对点的实现医学资料,如:病历、心电图、X光片、高清晰音视频等资料的实时上传与下载。
3)对于远程医疗Web系统,对用户请求的响应速度也是至关重要。对于用户频繁访问的页面,如何进行缓存及更新缓存,从而提高用户体验十分重要。
2 远程医疗系统的设计
在远程医疗系统中,其工作模式可以分为异步非实时和同步实时两类[8]。异步非实时会诊这种方式可以不受时间限制,它具有很大的灵活性,诊断人员可以通过查看病人的病历资料对其进行非实时的诊断。最后,由会诊人员或医院给出诊断的结果。同步实时会诊主要是通过视频会议系统进行实时会诊甚至手术指导等医疗活动。这种“面对面”的会诊方式使得会诊人员可以共同利用患者的资料进行远程诊断。会诊时,参加诊断的人员可以利用语音和视频装置进行实时动态的交流,从而共同确定诊断的结果。
2.1 数据库设计
本系统大多数功能的实现依赖于对数据库的访问,所以数据库的设计也是至关重要的一个环节。本系统的数据库设计采用关系数据库模式,采用Microsoft SQL Server 2008进行存储,根据系统的功能需求,主要包含以下几类主要信息,如表1所示:
从上表我们可以看出,大致可以分为机构信息表,社区信息表,医生信息表,社区居民信息表以及居民的一些生理数据采集信息表等几大类。例如,其中机构信息表与社区、医生、居民信息等表相关联;居民信息表与机构、社区、心电等信息表相关联。
2.2 系统功能框架与实现步骤
在本系统中设定了四种用户角色,分别为:健康中心管理员,负责本系统的维护;社区医疗机构管理员,负责本社区的医疗机构信息;社区医生,负责医生的本职工作;社区居民,负责本人信息的维护。各用户功能如图2所示。对远程医疗部分,提供实时的和非实时的诊断模式。对于实时诊断部分,如果社区医生对一些疾病难以确诊的,可以为患者申请会诊,并提交到“分诊中心”。“分诊中心”对提交的会诊申请进行审核,如果审核通过,便进行预约,并由“会诊机构”确认预约。从而,由会诊专家对患者进行“远程医疗”。对于非实时会诊,社区医生对自己分管的居民的异常体征、心电数据及最新的留言,尤其是重点关注居民,提供一些保健日记、保健计划、特诊服务等服务,并填写居民的健康档案。而社区居民,可以对医生在线留言、呼叫服务、查看保健计划,远程咨询等功能。
针对上述功能,系统采用基于MVC的模式进行设计和开发,在开发的过程中对每一功能模块分别进行MVC的设计和实现。具体的做法如下:
1)设计用户界面,并编写对应的每一个JSP页面文件,同时,在JSP中结合Ajax,jQuery技术来改进使用效果。
2)针对每一个表单设计对应的ActionForm类,并在Struts-config.xml文件中的元素中进行配置。
3)编写与ActionForm类相对应的Action类,并在Struts-config.xml文件中的