2013年第28卷03期VOL.28No.0373基于Android平台的移动医疗应用系统综述REVIEW0前言在3G的背景下,将移动互联网和智能终端有机结合起来的新型医疗应用系统将成为医疗服务的新方式、新手段。Android系统是Google推出的一个新兴且开源的手机操作平台,其市场占有率越来越大,是目前发展最快、最具市场前景的智能手机平台[1]。而且一台Android系统的智能手机性能与一台PDA(PersonalDigitalAssistant)相差无几,但是成本更低。因此,越来越多的企业利用Android来开发移动医疗应用系统。本文研究背景是在移动互联网覆盖范围几乎延伸到世界的每个角落,Android系统和智能终端设计日趋成熟的基础上,将移动互联网与智能终端有机结合起来,利用Android系统的开源性设计实现医疗应用系统。由于目前传统的医疗应用系统部署的局限性,医疗信息系统难以向病房扩展和延伸,而移动医疗信息系统可以实现临床服务的无线化、移动化,使管理更加准确、快速、便捷。在医院外的区域,移动医疗信息系统可以实现让“医疗服务”随手可得的目标。本文介绍的是移动医疗应用系统中一种比较好的架构设计方案、移动医疗应用系统的应用前景、移动医疗终端系统与传统医疗终端系统的区别、采用的技术以及移动医疗应用系统的发展前景。1移动医疗应用系统的架构设计移动医疗应用系统客户端采用Android开源系统[2],整体软件架构,见图1。图1移动医疗应用系统的架构设计如图1所示,移动医疗应用系统的整体架构摒弃了传统的二层C/S、B/S架构[3],采用AndroidApp+应用服务基于Android平台的移动医疗应用系统DevelopmentofMobileHealthcareSystemBasedonAndroidPlatform[摘要]随着移动互联网的迅猛发展,Google推出了基于Linux的Android操作系统,由于其平台的开放性、不受运营商的束缚、丰富的硬件选择、不受任何限制的开发、完美结合移动互联网的便利性、即时性、短时在线、隐私性等特点,迅速受到市场的热捧,成为移动通信技术领域的研究热点。在此背景下,本文介绍基于Android平台开发的移动医疗应用系统的架构设计方案、应用前景、与传统医疗系统的区别、可采用技术手段的比较以及开发过程中需要解决的问题和解决的方法。[关键词]Android;REST;移动医疗应用系统;智能终端Abstract:WiththerapiddevelopmentofmobileInternet,GooglelaunchesaLinux-basedAndroidoperatingsystem.Duetotheopennessoftheplatform,norestrictionsfromcarriers,wideselectionofhardware,unrestrictedexploration,theperfectcombinationofInternet’sconvenience,real-time,shorttimeonlineandprivacyanditsotherfeatures,thesystemhasquicklybecomefavorableinthemarketandhotresearchfieldinmobilecommunicationtechnology.ThispaperintroducesthearchitecturedesignandapplicationprospectsofMobileHealthcareSystembaseonAndroidplatform,itsdistinctionswithtraditionalhealthcaresystem,thedifferencesinavailabletechnicmethods,andproblemsandsolutionsoccurredindevelopment.Keywords:Android;REST;mobilehealthcaresystem;intelligentterminal[中图分类号]TN929.5;R197.324[文献标志码]Bdoi:10.3969/j.issn.1674-1633.2013.03.023[文章编号]1674-1633(2013)03-0073-04解放军总医院计算机室,北京100853MAOZhong-liang,SHIHong-fei,YINGJun,HEShi-lin,ZHOUDanComputerRoom,PLAGeneralHospital,Beijing100853,China收稿日期:2012-11-16基金项目:国家科技重大专项(2013ZX03005012)。作者邮箱:maozhongliang1987@163.com74中国医疗设备2013年第28卷03期VOL.28No.03综述REVIEW器+数据库服务器C/S三层架构[4]模式来构建,形成拉动式服务平台,AndroidApp[5]不直接访问数据库服务器,而是加入了REST[6]接口(RepresentationalStateTransfer,表述性状态转移),从而实现了数据的分布式处理,增强了系统的伸缩性,降低了整个软件架构耦合度,降低了对底层的数据库服务器的负载能力要求。从模块结构来看整个软件由基本的数据层、业务逻辑层、通信网络层和AndroidApp终端展现层构成。(1)基本的数据层,位于系统架构的最底层,提供数据的构建和数据传输,主要的组成部分是底层的数据库,根据系统需求建立数据表格以及其属性,编写和执行存储过程,形成系统所需的基本数据资源,最后根据业务逻辑层的数据参数提供数据处理服务。(2)业务逻辑层,主要包括JavaServer中的数据资源业务逻辑层和REST接口。通过REST接口对数据访问接口进行搭建,通过Web容器对其进行发布和有效管理,从而为AndroidApp访问数据资源服务。(3)通信网络层。采用HTTP协议,REST接口在Intnet网络或者局域网络发布,AndroidApp借助GPRS/3G/WiFi等网络与REST接口进行资源通信。(4)AndroidApp。AndroidApp属于客户端,负责Java编码和人机交互UI设计,主要功能是实现与用户的直接互动,并将最终结果展现给用户,让用户拥有较好的使用体验。2移动医疗应用系统的应用前景随着移动互联网和智能终端的蓬勃发展,利用移动互联网技术和智能终端改进人体健康、提供医疗帮助的应用软件越来越多,给人们带来的改变和便利越来越显著,也越来越被人们所重视。各个领域都看好它的发展前景,并开始着重开发其相关的应用。移动医疗当今正成为整个移动通信产业的热点,MobileHealth(移动医疗)在刚刚结束的2012年世界移动通信大会上,吸引了诸多与会者的眼球,甚至包括了知名的比尔及梅林达·盖茨基金会,包括NTTDoCoMo、AT&T以及沃达丰等全球主流移动运营商,他们已经在这个领域取得了丰硕的成果。智能医疗成为新热点的主要原因之一是它总是在用户身边,始终保持连接状态,方便用户随时随地进行操作,人性化的交互。患者能够通过手机便捷地进行病症查询、医院查询、挂号、网上付费、查看医生处方、个人健康信息等功能。现阶段,智能医疗方面的软件已经在国内IT行业进行研究开发,将来会广泛地应用到医疗领域的各个方面。其能开发的应用软件包括医疗百科全书系列产品、医疗咨询系列产品、辅助医生工作的系列产品、辅助护士工作的系列产品等。另一个主要原因是我们身边有一群需要注重改善健康状况的群体,随着人口逐渐老龄化且越来越多的人开始患上需要积极管理的慢性疾病,如糖尿病、脑卒中等,这些群体使用智能医疗应用程序来激励健康行为是非常有价值的。如移动终端医疗应用程序可以更好地提示或提醒糖尿病患者管理自己的血糖和饮食。另外,随着人口的增加、慢性疾病健康问题的日益严重、管理成本不断上升,移动医疗应用系统为我们解决这个问题提供了一个新的途径。3移动医疗终端系统与传统医疗终端系统的区别传统的固定部署计算机的方式存在局限性,制约了医疗信息化发挥更大的作用。而无线网络智能终端的可移动性、接入灵活方便等特点,在越来越多的医院得到了规模部署,打破了传统有线部署的局限性[7-10]。3.1可移动性由于智能终端支持3G/WIFI/GPRS接入网络,就没有了线缆的限制,所以在有移动互联网的情况下,用户办公场所不受限制,用户可以在任何地方任何时间登录移动应用医疗系统。3.2便捷性信息的即时性,使用户可以随时准确快捷地登录移动医疗信息应用系统,方便快捷地了解自己的医疗信息,为日常医疗活动提供了更加便捷的新途径。移动医疗应用系统,会改变过去人们只能前往医院“看病”的传统生活方式。无论在家里还是在路上,人们都能够随时听取医生的建议,或者是获得各种与健康相关的资讯。医疗服务,因为移动通信技术的加入,不仅将节省之前大量用于挂号、排队等候乃至搭乘交通工具前往的时间和成本,而且会更高效地引导人们养成良好的生活习惯。4REST相对于Webservice的区别与优势首先看看REST和Webservice的定义,REST是一种针对网络应用的设计和开发方式,提出者RoyTFielding[11]认为任何事物都可以抽象为一个资源并以比特流的事物体现方式存储在某台计算机上,表示资源当前状态的有用信息,对于给定的资源,可以有多种不同的表示.在REST中可以将状态分为资源状态和应用状态:资源状态是关于资源的信息,保存在服务器端;应用状态是客户端在应用中所处的状态信息,由客服端维护。而WebService是一种在线应用服务,其他使用者或者应用软件可以通过其所发布的网络访问并使用这项在线服务,即服务提供对外的接口。逻辑性地为其他应用程序提供数据与服务,各个应用程序需要通过网络协议和规定的标准数据格式(HTTP、XML、SAOP)来访问。从两者的定义可以看出,REST和Webservice的设计概念和准则是不相同的,尽管设计者的初衷都是为了将业务规则和策略抽象成可共享的分布式服务来避免出现孤立的应用。作为两种不同的Web架构,不同的设计理念和准则导中国医疗设备2013年第28卷03期VOL.28No.0375REVIEW综述致了架构方式的不同,而不同的架构方式导致了其体现的架构属性的优劣。下面将从整体的Web架构方式和这些架构的属性对REST和WebService进行比较。4.1REST的Web架构和Webservice的Web架构比较WebServicesWeb架构,见图2。WebServices可以将系统后台的逻辑层、业务层、控制层代码封装起来,定义服务的契约描述(WSDL),并将其注册在发布程序的容器中,达到客户端共享(UUDI)的目的。客户端利用SOAP协议远程调用服务,构成一个易于创建、维护和扩展的整体系统。实际应用中,由于提供服务者限定的服务调用的环境和方式,并且系统的业务逻辑会发生变化,随着系统规模的增大会带来一系列扩展性、性能方面的问题。图2WebServicesWeb架构RESTWeb架构,见图3。REST架构包含资源(Resource)、表示(Representation)、状态(State)3个重要概念,基于这3个重要概念,REST提供了一组比较完整的架构约束,保障架构应用时,组件交互的可伸缩性、接口的通用性、组件的独立性、以及减少交互的延迟、增强系统的安全性、封装遗留系统的中间组件。REST的设计约束:①将所有事物都抽象为资源;②为每个资源定义唯一的标识符URI;③使用统一的接口对资源进行操作;④通过资源的表示来处理资源;⑤消息具有自描述性;⑥所有的交互都是无状态的;⑦将超媒体作为应用状态的引擎。图3RESTWeb架构REST与Webservice的架构原则上有巨大的差别,采用REST架构将服务器抽象为一组离散资源的集合,REST的架构是以资源为中心的,是一种领域模型,根据图3可以看出,REST架构中,客户端