2015年1月计算机工程与设计Jan2015第36卷第1期COMPUTERENGINEERINGANDDESIGNV01.36No.1基于Android的心电信息管理系统的设计与实现孟欢欢,张跃+(清华大学深圳研究生院嵌入式系统与技术实验室,广东深圳518055)摘要:针对心电信息管理系统一般运行在电脑客户端,不便于医师随时查看心电信息、分析心电信号这一状况,提出在移动平台上设计开发一套基于Android的心电信息管理系统。根据实际需求,将系统划分为客户端和服务器端,客户端和服务器端采用http协议通信。围绕客户端和服务器端的实现,阐述系统实现过程中的一些关键算法和设计,如心电数据的传输、R波检测、心律失常判别与诊断报告生成。测试结果表明,该系统满足设计的功能和性能要求,满足医师随时查看、分析心电信号的需求。关键词:Android;心电信息管理;软件系统;传输机制;R波检测中图法分类号:TP311.52文献标识号:A文章编号:1000一7024(2015)01一0277一05doi:10.16208/j.issnlOOO一7024.2015.01.052DesignandimplementationofAndroid—basedECGinformationmanagementsystemMENGHuan_huan。ZHANGYue+(EmbeddedSystemandTechnologyLab,Graduateschoolatshenzhen,TsinghuaUniversity,Shenzhen518055,China)Abstract:E℃GinfOmationmanagementsystemsgenerallyrunontheclientcomputer,sophysiciansarenoteasytochecktheECGinfomationandanalyzeE(、GsignalsanⅣhere,tosolvetheproblem,anAndroi小basedE(Ⅺinfomationmanagementsys—temdesignwasproposed.Accordingtoactualdemands,thesystemwasdividedintotheclientandtheserver,andthesetwousedhttpprotocoltocommunicate.AstotheiIIlplementationofthesystem’sclientandser、,er,somekeyalgorithmsandsystemdesignsusedinitsimplementationwerediscussed,suchasE℃Gdatatransmission,10wavedetection,arrhythmiaidentificationanddiagnosticreportgeneration.Thetestresultsshowthatthesystemmeetsthefunctionalandperformingrequirementsofde—signing,andmeetsthephysicians’demandtoviewandanalyzeECGinfomationKeywonb:Android;EIⅪinfonTlationmaJlagement;so“waresystem;transmissionmechanism;R—wavedetectionO引言目前市场上主要的手持移动设备平台有A耐roid、i0S和Windowsphone。Android系统以开源的优势自诞生之日传统的心电信息管理系统客户端运行在电脑上,医师起就发展迅猛,得到众多设备厂商的支持,在嵌入式系统查询和修改心电信息需要在电脑上进行,医师在查房等场领域中的应用日趋广泛,在远程医疗领域中的应用[1]也日合无法查询和修改心电信息。手机等手持移动设备的迅猛渐成熟。因此本文将选择Android平台设计并实现基于移发展使这个问题的解决成为可能。现有的手持移动设备的动平台的心电信息管理系统。屏幕分辨率和处理器性能均可以满足查询和修改心电信息1的要求,wifi无线网络的覆盖范围和通信带宽也满足心电系统需求与总体架构信息的传输要求。本文介绍一种基于移动平台的心电信息基于Android的心电信息管理系统是远程无线监护系管理系统,主要功能包括基本信息查询、报警信息查询、统的重要组成部分,参考现有的心电监护软件系统、心电诊断报告的查询与修改以及心电信号的查询与分析。信息管理系统和用户实际需求,系统需要实现基本信息查收稿日期:2014一Ol—06;修订日期:2014一03一07基金项目:湖南省科技重大专项基金项目(2007FJl004)作者简介:孟欢欢(1986一),男,河南焦作人,硕士研究生,研究方向为嵌入式系统及其应用、心电信号处理;+通讯作者:张跃(1960一),男,湖南吉首人,博士,副教授,研究方向为嵌入式系统及其应用、医疗器械、模糊控制。E.mail:zhaIlg”e@mail.tsinghua.edu.cn万方数据・278・计算机工程与设计2.1界面设计2015年询、报警信息查询、诊断报告的查询与修改以及心电信号的查询与分析。基本信息包括患者信息、医师信息、科室信息和设备信息;报警信息包含报警时间、级别、原因和心电信号;诊断报告内容较多、较复杂,包括病人信息、总体状况、最大最小心率、最大最小RR问期、心律统计、sT段统计、HRV指标、小时报告、时间丢失记录和心率失常统计;心电信号包括心电页扫描、心电放大显示、心电异常类型的修改和心电信号回放。现有系统软件表明以上这些信息均已由心电分析软件和心电信息管理系统存储在中心数据库中。基于Android平台的客户端的主要功能是从数据库中获取信息并处理和显示。客户端直接访问数据库的模式会带来数据库管理难度随客户端的增长而爆炸式增长的问题,客户机/服务器模式不存在这些问题。客户机/服务器模式由服务器统一提供各种服务,数据库访问服务也由服务器统一提供。当大量客户机访问服务器时,使用负载均衡系统将访问分流到不同的服务器,减轻单个服务器的服务压力。客户机/服务器模型可以给系统的扩张带来便利。在客户机/服务器模型的基础上同时使用M、厂c框架去设计系统,实现数据和视图的分离,简化系统设计的复杂度。客户机和服务器间的通信采用现在广泛使用的ht—tp协议,减少设计通信协议的麻烦,也可以减少服务器端通信协议实现的麻烦。综上选择,可以更专注于系统业务逻辑的设计。http服务器有很多框架可供使用,此处使用可以提供无状态服务的restlet+spring+hibemate框架。系统的总体架构如图1所示。心电信息管理系统中信息较多且构成复杂,而客户端需要显示所有的信息并兼顾界面友好性,手持设备屏幕尺寸存在固有限制。这些需求和限制给界面设计带来困难。系统使用Andmid4.丈2]的新特性fragment、actionbar以及viewpager去实现界面的切换,同时也使用fragment嵌套技术和1istview去选择显示不同资源。客户端的基本界面如图3所示。界面的切换可以通过左右滑动实现也可以通过选定标签实现。当选中资源类型,查询资源信息时,使用in—tent启动新的activity去展示资源信息。图3基本界面心电波形的显示可以分为静态显尔和动态监,j≮,静态显示使用canvas类绘制心电波形,动态显示使用surface类绘制心电波形并使用定时器TimerTask类以50Hz的频率局部更新心电波形。其图形如图4所示。静态显示使用在诊断报告中展示异常心电信号、在报警信息中展示报警心电信号,在心电分析中显示放大后的心电信号。动态显示用于心电分析中心电信号的动态回放。图1系统框架2客户端设计与实现客户端实现根据要求从服务器获取资源,同时将这些资源进行处理并显示。客户端框架如图2所示。客户端在Android平台上运行,其主要使用java编写。牟户端图4心电回放图2客户端框架诊断报告中统计图的显示借鉴了Android的开源图形万方数据第36卷第1期孟欢欢,张跃等:基于Android的心电信息管理系统的设计与实现・279・库AChartEngine,实现了适用于心电统计信息显示的模块。可以方便绘制心电信息的直方图和趋势图。2.2数据传输与管理资源的传输采用了http协议,在客户端使用apache的http库,通过get和post发起数据请求,使用put去更新数据。不同类型的资源可以从不同的url中获取。一般情况下每次获取的信息不多,只需要一次传输即可。在心电分析部分,心电信号的数据量较大,但是系统也不可能一次性显示全部心电信号,可以在多导联的心电数据中选取一个导联并对其进行抽样,然后显示出来,此时可以将大量的心电信息在一页中简略的显示出来,这可以称之为页扫描。系统心电信号的显示使用了页扫描技术,那么心电数据的获取也可以采用对应的分页技术,每次获取一段心电数据,满足心电信号的页扫描显示。为减少用户查看心电信号的等待时间,根据用户的使用习惯,采用数据预取技术,预先读取下一页数据,实现用户查看心电信号和心电信号获取的并行运行。同时也保留上一页数据,便于用户回看。其缓冲队列设计如图5所示。使用3个循环缓冲区,当前缓冲区存储当前显示的数据。预取数据放入下一个缓冲区,已显示数据在上一个缓冲区中。算量小。自适应差分阈值法是在差分阈值法基础上通过阈值自适应改变而来,其计算量较大,小波变换法也有计算量大的缺陷,神经网络的方法和形态学方法应用比较困难。移动设备处理器计算性能有限,计算量小的差分阈值法成为首选。虽然差分阈值法的R波检测准确率不如后面的几种方法,但是其计算量小,而且准确率在可以接受的范围之内。综上所述,系统中的R波检测采用差分阈值法。差分阈值法是采用一阶或二阶差分方法去增强心电信号中的R波,同时抑制其它波形,如P波、T波,然后根据经验选取一个阈值,当差分的值大于这个阈值时认定其是R波。此方法对高频噪声比较敏感,因此可以先使用10Hz~25Hz的带通滤波器去增强主要成分,以提高检测的正确率。它的计算量小,适合在移动平台上使用。2.4心律失常判别常见的心律失常依据起因可以分为两大类:激动起源异常和激动传导异常。每类又可以划分为若干小类,共有几十种心律失常。从上世纪50年代开始引入计算机辅助心电信号分析以来发展出多种心律失常自动分类算法,可以归类为有监督判别和无监督判别两类。常见的心律失常分类算法有逻辑分支判别、聚类分析、隐式马尔科夫模型、专家系统、模糊推理、支持向量机、人工神经网络等,这些方法中用到的心电信号特征可以使用心电图的一般特征如I承间期、QRS波宽、QT间期、PR间期、sr段偏移等,也可以使用如PCA、LDA、ICA等方法[5’6]自动提取心电特征。随着计算能力的提高,近年来新设计的心电分心电数据的获取采用sen,ice服务在后台运行,心电数据的使用在页扫描和心电回放进程中。数据的获取和使用分布在不同的进程中,可以将其看作一个是生产者/消费者模型。解决此类同步问题的常用方法是使用互斥锁或读写锁,但是使用锁策略会加重系统负担,降低效率。使用无锁缓冲队列也可以解决这个问题,在缓冲队列中同时加入缓冲区的数据标识去识别数据能否被更新和数据是否可读。将已经获取到的数据写入设备自身的存储器中,同时使用Andmid的SQLite3数据库记录数据信息可以减少对网络的使用,提高系统效率。每次获取数据时先查询本地数据库查看数据是否已存储在本地,如果数据已经存储在本地,则可以直接从存储器中读取数据,否则可以从服务器获取数据。2.3类算法经常会综合两种或两种以上的识别方法以达到提高算法准确率的目的,如综合FCM、PCA和NN的心律失常判别算法[7]。在移动平台上基于处理器运算速度限制的考虑可以采用简单的基于心电信号一般特征的逻辑分支判别算法实现心拍的分类。在R波检测完成后以R波为基础向两边搜索,可以快速检测到Q波和S波,以QRS波的特征为基础可以进行简单的心律失常判别。提取QRS波的特征如R波幅值、QRs波宽、QRs波面积、RR间期、相邻心拍的RR间期变化等特征进行心律失常分类,采用文献[8]的方法进行快速心律失常判别分类。2.5诊断报告的生成诊断报告一般使用pdf格式存储和显示。在Android平台上直接生成pdf文档存在困难,因此将诊断报告的生成放在服务器端实现。其流程如图6所示,在客户端组织诊断报告需要显示的条目和类别,将其发送到服务器端,服务器端根据其条目和类别信息从数据库中读取相应的数据生成诊断报告然后将诊断报告发回到客户端显示。用户在客户端查看诊断报告无误后可以加入签名然后存储到数据库中备案供以后查询。R波检测在数据库中仅保存了心电数据而没有心电信号R波的位置信息,心电分析中为实现心电信号类别的修改首先需要确定心电信号的R波位置。R波检测的方法已有很多[3H],既有适用于单导联的,也有适用于多导联的。常用的有差分阈值法、自适应差分阈值法、小波变换法、神经网络的方法和形态学方法。其中差分阈值法简单易用,计万方数据・280・计算机工程与设计2015年4测试结果本系统客户端在Andmid4.1版本的sDl(上实现,服务器端在restlet2.1.2、sp“n93.2.3和hibermte4.2.3的框架上实现。测试环境包括一部Andmid智能手机和一台电脑。在电脑上,将服务器端放在tomcat6.o容器中。在[服务器端软件名称]一servlet.ml文件中配置数据库地址后,运行带有本服务端的tomcat6.o容器。在智能手机上运行本系统客户端软件后,客户端可以在登陆界面配置服务器地址,登陆界面如图7所示。登陆后可以使用本系统提供的各种功能。图6诊断报告生成流程3服务器端设计与实现服务器端使用restlet+spring+hibermte框架。Rest一1et[9]是一个轻量级的RESF”]框架,它模糊了Web站点和web服务之间的界限。spi醇11]是一个轻量级的控制反转和面向切面的容器框架,它方便编写可管理和易于测试的代码。Hiberllate[”]是一个开源的对象关系映射框架,便于使用者以面向对象的思想来使用数据库。使用restlet+sprir晤+hibemate框架可以便利的实现web服务。使用restlet将对不同资源的访问映射到不同的url中,解除资源之间的耦合。使用spring实现业务逻辑,处理数据的变换和封装业务。使用hibemate访问数据库,可以将关系数据库中的表映射为不同的类,便于使用面向对象的方式操作数据库。客户端和服务器端一般运行在不同的平台上,其数据格式可能会存在不同;同时考虑数据传输的兼容性,需要将数据进行封装。网络传输中常用的数据封装格式有登录设置取消图7登陆界面诊断报告生成部分按照诊断报告生成顺序操作,可以获得需要的诊断报告文件。诊断报告界面如图8所示。在获取诊断报告文件时,诊断报告是由服务器生成并传输到客户端的.因此会有部分延时,但是延时在可以接受的范json[13]和ml。json具有封装简便、读写简单易用的优点,它读写消耗的资源也较少,满足绝大部分数据类型的封装需求,本系统主要采用json格式将数据封装后传输。心电数据使用jSon封装不方便,但是本系统可以完全控制其读写的格式,因此可以在心电数据中添加包头后直接将其序列化,然后就可以使用网络传输了。当大量客户端同时访问服务器时可以采用负载均衡的方法使每个服务器的负载在一定范围内波动,提高资源利用率和服务效率。本系统服务器提供的服务可以划分为信息查询、报警信息编辑、心电信号分析和心电信号诊断报告4个部分,这4个部分不存在耦合,因此各个部分可以运行在不同的服务器上,这为实现负载均衡,提高资源利用率提供了便利。在服务器前端使用apache做负载均衡,同时将不同的服务放人不同的服务器运行可以提高系统的服务效率,同时提高系统的资源利用率。图8诊断报告界面律品僵心窜5509:1221誊㈣目,2013-08-23最快心宰103万方数据围之内。经测试诊断报告生成部分功能和性能均满足预期要求。心电分析部分完成心电信号的显示工作、心电信号分类的修改工作。经测试心电信号获取的延时基本感受不到,同时R波检测准确率以可以满足要求,心电回放速率正常,无明显的卡顿现象。心电分析部分的功能和性能均满足设计预期。本系统其它功能需求的实现较诊断报告和心电分析容易,经测试其功能和性能也满足设计的预期要求。综上所述,本系统的设计和实现达到了预期的功能和性能要求。5结束语本文设计了一种基于Android的心电信息管理系统。并对系统的主要功能的实现进行了详细的讨论和设计。利用无锁缓冲队列和数据预取技术提高心电数据的获取效率,选取r一种快速R波检测算法来检测R波,同时设计了一种合理的可实现的诊断报告生成流程。下一步的工作方向是将血压、血氧、体温等参数整合入系统,形成多生理参数的管理系统,同时需要在服务器端进行负载均衡的研究,扩展服务器的服务能力。参考文献:r1]I,ANKun,zHAN(;Yue.Appl;cationofAndH)】dinremotcmedicalinfomati()nsystem[J].J。umalofcomputcrApplicati。ns。2013。33(6):17901792(1nchinesc).[蓝坤,张跃.Android在远程医疗信息系统中的应用[J].计算机应用,2013,33(6):17901792.][2]suNHongming.Android4.xphone/tabletprog姐mdesignentry,appIicationtothernaster[M]。Be讲ng:chinawat盯&.I’owerI’ress,2012(inchinese).[孙宏明.Android4.x手机/平板电脑程序设汁入门、应用到精通[M].北京:中国水利水电出版社,2012.][3]I,IYa川un,Y八NHong.(、。mparisonoffamillarQRSdetectionapproaches[J].ProgressinBiomcdicalEngineering,2008,29(2):10l107(mchinese).[李延军,严宏.QRS波群检测常用算法的比较[J].生物医学工程学进展,2008,29万方数据(2):10卜107.J[4]zH八NGI∞ngfcl,zHANGYuc.Real~timedctc吼l<malgorlthmofmultilea(1QRswave[J].CompuLerEngineering,2011,37(16):282284(inch;ncse).[张龙飞.张跃.一种多导联QRs波实时检测算法[J].计算机工程・201l,37(16):282284.][5]MartisRJ,RajcndraAcharyau,MinI。C.Ec(jbeatclassifi—ca“onuNngPCA,I.1)A.I(’AanddiscrctewaVelcttransform[j].1)iomedicalsignalProcessingandcontrol,2013,8(5):437d48.[6](■riT),AcharayaR,MartisRY,eta1.Automateddiagnosisofcor。naryartcrydiscasc撕ectedp叭jenlsusingI』)A,PCA,I(:A}lnddiscretewavelettransform[J].Knowledge—BasedSystems.2013,37:274—282.[7]PatraD,KumarDasM,Pradhans.Intcgrati()nofFCM,P(、Aan(1neuralnetworksforclas秭fication。fE(:Garrhvlhmias[J].IA卜二N(jInternationalJournalof(、omputcrscicnce,2009,36(3),[8]Krist()forusHemawan.I)evelopmentofEc(;signalinterpreta_ti()ns【)ftwarc。nAndr。id2.2[c]//2ndInternationalconferenceInstrumenta“on,Communications。InformationTechno—logy,andBiomcdicalEngmcering,20U:259—264.[9]JeromeI。ouvel,ThierryBoileau.Restletinaction[M].MannlngPublications,2012.[10]ThomasErl,I;enJamincarIylc,cesareI’auIasso,eta1.S()AwlthRESl、:PrincipIcs,pa¨erns&.constraintsforbulldingenterprisesolutionswithREsT[M].Be巧ing:SclencePress,2013.[11]DIN(jZhenfan.Spring3.xprogrammingtechnologyandap—plication[M].8cijing:BcijingUniversityofPostsandTelec()mmunicationsPress,2013(inChinese).[丁振凡.Spring3。x编程技术与应用[M].北京:北京邮电大学出版社,2013.][12]suNwei‘lin.MastcringHil)e『nateeasily[M]//Beijing:PublishingHouseofElectronicsIndustry,2010(inChinese).[孙卫琴.Hmerna比逍遥游记[M].北京:电子工业出版社,20lo.][13]I,enn()nJ.I小roductiontoJs()N[M]//Beginningc。uchDB.Aprcss,2009:87105.基于Android的心电信息管理系统的设计与实现
作者:作者单位:刊名:英文刊名:年,卷(期):
孟欢欢, 张跃, MENG Huan-huan, ZHANG Yue
清华大学深圳研究生院嵌入式系统与技术实验室,广东深圳,518055计算机工程与设计
Computer Engineering and Design2015,36(1)
设计 2015(1)
引用本文格式:孟欢欢.张跃.MENG Huan-huan.ZHANG Yue 基于Android的心电信息管理系统的设计与实现[期刊论文]-计算机工程与