一种基于云平台的胎儿心电远程监护系统
2018-11-10洪强袁延超张斌邵明刚吴水才
洪强,袁延超,张斌,邵明刚,吴水才
北京工业大学 生命科学与生物工程学院,北京 100124
引言
胎儿心电信号是用来记录孕妇子宫内胎儿心脏动作电位及其传导过程中的图形变化,通过分析波形变化,能及早发现妊娠期或分娩期的胎儿病理情况,从而预防新生儿疾病并降低胎儿死亡率[1]。随着移动互联网、物联网等技术的发展,心脏远程检测系统在国内外已经应用于临床,对心脏病患者进行长时间心电监护是治疗心脏病的重要手段,同时也是预防突发性心脏病导致严重后果的重要途径[2]。
随着移动互联网、物联网、大数据时代的来临,医学数据激增,传统MySQL数据库面临存储困难、查询慢、处理时间长等问题。如果针对多个患者进行24 h不间断监测,每年会产生海量医疗数据。未经分析整理的数据,不但存储困难,也难以进行数据分析和挖掘[3]。传统的存储、管理和分析数据量相对较小,大多采用关系型数据库和并行数据库即可解决,但传统的并行数据库技术追求高度一致性和容错性,难以保证其可用性和扩展性。
针对这些问题,本文研制一种基于云平台的胎儿心电远程监护系统,该系统有如下改进:
(1)运用传统MySQL数据库实现心电数据的归档与管理,针对远程监控心血管疾病时,产生的心电大数据存储难问题,采用hadoop分布式集群技术,将产生的心电大数据存入HDFS(Hadoop Distributed File System)中[4-5]。
(2)本系统增加了服务器紧急状况响应机制,当胎儿发生紧急状况时,能及时报警,保证及早就医[6]。
(3)服务器内嵌入智能分析算法,自动对异常胎儿心电进行诊断,从而减少医生工作量。本研究为后续进行心血管大数据分析、统计、数据挖掘打下基础。
1 原理与方法
1.1 系统结构与工作原理
一种新型基于云平台的胎儿心电远程监护系统结构,见图1,整个系统包括三大部分:① 胎儿心电采集器;②智能手机APP软件;③ 云端服务器软件。
图1 系统结构框图
心电采集器实时采集孕妇和胎儿的混合心电信号,通过低功耗蓝牙[7]传输到智能手机。智能手机APP软件对接收到的混合心电信号进行分离,从混合心电信号中提取出胎儿心电信号,并将胎儿心电数据通过移动通讯网远程传输到云端服务器。云端服务器软件对接收到的胎儿心电数据进行存储和智能分析,医生通过浏览器页面在线对胎儿心电进行远程监护诊断,当服务器软件检测到有医生上线时,自动将胎儿心电信号推送给在线医生进行监护诊断。医生诊断结束后,云端服务器软件自动将医生的诊断结果和建议返回到孕妇智能手机中。另外,本系统中新增了一项紧急状况响应机制,当孕妇发生突发状况或胎儿心电信号严重异常时,服务器软件启动紧急状况响应机制,自动给医生发送求救短信,保证及时就医。
系统工作流程,见图2,主要分为13个步骤:① 孕妇将心电采集器贴在腹部表面子宫部位,智能手机通过低功耗蓝牙设备自动连接心电采集器,实时接收心电采集器发送来的混合心电数据;② 智能手机APP软件内嵌胎儿心电提取算法,对接收到的混合心电进行分离,提取胎儿心电信号,把胎儿心电存储在手机本地,并通过移动通讯网络或Wi-Fi网络上传到云端服务器,同时在智能手机APP上实时显示胎儿心电图;③ 云端服务器将接收到的胎儿心电数据存储到数据库中;④ 云端服务器内嵌胎儿心电智能分析模块(FECG Diagnose Algorithm)对存储在数据库中的胎儿心电数据进行处理;⑤ 判断胎儿心电信号是否异常;⑥ 如果异常,服务器软件启动紧急状况响应机制,短信通知医生,保证及时就医;⑦ 若预判结果没有明显异常,则查看是否有医生在线;⑧ 如果检测到没有医生上线,则系统处于等待状态;⑨ 当检测到有医生上线时,云端服务器软件将未诊断的胎儿心电数据以任务的形式推送给在线的医生;⑩ 医生接收到相应任务后,可以在线浏览胎儿心电波形图和服务器智能分析结果,并提交相应诊断建议;云端服务器将医生诊断建议存储到数据库中;云端服务器软件向孕妇智能手机APP推送诊断结果孕妇通过智能手机APP查看医生的诊断结果。
图2 系统流程图
1.2 胎儿心电信号发生器设计
1.2.1 胎儿心电信号发生器需求分析
由于采集实时的孕妇腹部心电信号比较困难,特别是对于胎儿心电提取算法实时验证,需要长时间的孕妇配合,这给孕妇带来不便和麻烦。而胎儿心电发生器可给科研工作者提供方便的胎儿心电实时数据,从而解决采集孕妇腹部心电不便的问题。基于以上考虑本系统通过胎儿心电信号发生器模拟输出不同的母婴混合心电,用于本系统的测试。真正的临床试验还有待后期进一步完善。由于目前市面上的胎儿心电发生器价格比较贵,为便于本系统的测试,我们设计了一款新型胎儿心电发生器。
1.2.2 胎儿心电信号发生器硬件设计
胎儿心电发生器硬件结构,见图3,采用MSP430F149为主控单元,AT45DB081D存储芯片存有3通道DaISy数据库孕妇腹部心电数据和一通道胎儿心电数据。MSP430F149采用无条件循环模式和数模转换芯片DAC5571 IIC 进行通信,DAC5571模拟输出孕妇腹部心电信号和胎儿心电信号,经过分压电阻使胎儿心电输出电压幅值在50 μV以下。此外,电路还包括USB CH340下载电路和LM1117-3.3 V稳压电路,可用轻触按键调节胎儿心电的心率和电压幅值,同时在0.96寸OLED屏显示设定值。
图3 胎儿心电发生器结构图
胎儿心电发生器实物图,见图4。USB充电、开关、指示灯在左上方,0.96寸OLED在左侧中间,MCU在板子中间,按键在中下方,电极扣在最右方。在设计好外壳后的胎儿心电发生器,见图5。
1.3 心电采集器设计
胎儿心电采集器结构,见图6,Type-C接口提供供电和三导联通信线接口输入端。当Type-C接口作为三导联通信线输入端时,将采集的腹部三导联心电信号传递给24位ADS1293模拟前端。ADS1293模拟前端将心电信号经过初步的带通滤波、工频滤波和放大后,经SPI通信、由蓝牙处理器CY8C4247读取;CY8C4247处理器将三导联腹部心电数据,按每导联15个心电数据统一格式打包,当与其它低功耗蓝牙设备连接成功后,便经蓝牙发送出去。
图4 胎儿心电发生器电路板图
图5 胎儿心电发生器实物图
图6 胎儿心电采集器结构图
当Type-C接口作为供电口时,其经MCP73831充电芯片对3.7 V锂离子电池充电,充电时配有蓝色充电指示灯。锂离子电池输出的电压经过两片TLV70033-3.3 V稳压芯片稳压后,分别给模拟前端ADS1293和CY8C4247处理器提供3.3 V模拟电压和3.3 V数字电压。
胎儿心电采集器共需要五个电极扣,一个底座的电极扣起固定作用,其固定在母体腹部子宫底部。其余四个电极扣与Type-C USB公座连接,再接采集设备的母座Type-C USB接口。标号为1的电极接母体耻骨联合上方,标号2和3的电极分别接母体子宫中部左右两侧,标号4的为右腿驱动电极,接母体右侧肋骨处。电极贴法简单易学,胎儿心电采集器体积小,易于佩戴,其实物,见图7。
图7 胎儿心电采集器实物图
1.4 智能手机APP软件设计
智能手机具备Wi-Fi和移动通讯网等多种接入因特网方式,而且用户界面友好易操作。孕妇首先通过智能手机APP注册用户账号,注册成功并登录后,智能手机APP自动通过蓝牙连接胎儿心电采集器,获取三导联腹部心电信号,通过IIR(In finite Impulse Response)滤波、FastICA(Fast Independent Component Analysis)算法实时提取胎儿心电信号[8-9],并将提取出来的胎儿心电实时绘制在手机屏幕上,同时把胎儿心电数据以文件的形式存储在手机本地,并把数据通过超文本传输协议(Hyper Text Transfer Protocol Over Secure Socket Layer,HTTPS)[10]远程传输到云端服务器。智能手机APP还用于接收和显示云端服务器推送的医生诊断结果。
根据上述需求,智能手机功能模块见图8,主要包含5个功能模块:
(1)注册、登录:孕妇使用手机号注册并登录系统。
(2)胎儿心电提取:智能手机APP内嵌胎儿心电提取算法,通过蓝牙实时接收心电数据,并从母体心电数据中提取胎儿心电信号。
(3)胎儿心电显示:提取的胎儿心电信号将实时显示在手机屏幕上,供孕妇查看。
(4)胎儿心电存储:提取出来的胎儿心电数据将以文件的形式存储在手机本地。
(5)胎儿心电上传:当需要上传云端服务器供医生诊断时,智能手机APP提供相应的胎儿心电上传模块,孕妇可随时随地上传胎儿心电数据到云端服务器。
图8 智能手机功能模块图
1.5 云端服务器软件设计
云端服务器软件主要负责胎儿心电数据的存储、智能分析和医生诊断结果推送等功能,包含五个部分:Web API接口、数据库服务器、胎心电智能分析、医生诊断平台以及数据推送服务。
它们的作用分别为:① Web API提供对外接口,所有数据的访问都是通过Web API完成;② 数据库服务器用来存储胎儿心电数据、云端服务器智能分析结果、医生诊断结果以及用户基本信息等;③ 云端服务器智能分析模块,对胎儿心电进行异常分类,给医生提供一个诊断参考,从而减少医生工作量;④ 医生诊断平台,为医生提供一个友好的基于浏览器的诊断页面,医生可随时随地通过浏览器查看胎儿心电波形图并给出相应的诊断建议;⑤ 数据推送服务,用于将医生的诊断结果推送至智能手机,供孕妇查看。
1.5.1 Web API
本系统选用LAMP(Linux+Apache+MySQL+PHP)架构[11]搭建云端服务器,Web API使用PHP脚本语言编写。智能手机APP与医生诊断平台均通过Web API访问数据,与Web API的通讯均使用HTTPS协议。根据系统功能设计相应的Web API接口[12](表1)。
医生通过浏览器访问相应Web API URL,完成诊断过程:医生首次登录时,需要完成用户账号注册,之后登录进入医生诊断平台页面,云端服务器检测到医生上线后,后台查看是否有胎儿心电诊断任务,若有,则自动将任务推送到医生诊断平台页面,医生可查看胎儿心电波形图,并给出相应的诊断建议。提交后,云端服务器会立即将医生诊断建议推送到孕妇智能手机APP,供孕妇查看。
表1 Web API接口说明
1.5.2 数据库服务器设计
数据库服务器用于存储胎儿心电数据、医生诊断结果、用户信息等。系统使用MySQL关系型数据库和HDFS分布式文件系统存储数据。MySQL数据库主要存储医生和孕妇个人基本信息、医生诊断结果、云端服务器智能分析结果以及胎儿心电数据索引等信息[13]。MySQL数据表E-R图(图9)。
图9 MySQL数据表E-R图
随着对孕妇监护时间的增加,胎儿心电数据将会变得异常庞大。传统MySQL关系型数据库获取数据,并将数据分配到很多相关联的表中,这些表通过外键相互应用。当用户需要对数据集运行查询时,所需信息需要从多个表中收集,并结合这些信息,再提供给应用程序。同样,当写入数据时,需要在多个表中协调和执行写入。当数据较少,数据以较慢速度流入数据库时,关系型数据库通常能够捕捉和存储信息。但随着时间的积累,MySQL数据库已不能满足快速查询海量胎儿心电数据的要求。
对于海量胎儿心电的存储,本文将胎儿心电数据存储在HDFS分布式文件系统中。HDFS可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了安全存储,为超大数据集的应用带来很多便利。
1.5.3 云端服务器软件智能分析模块
本模块通过判断胎心率来对胎儿心电进行异常分析。首先定位R波位置,计算相邻两个R波时间然后算出胎心率。ft是RR间期,胎心率HR计算公式如下:
心率类型分为3类:① 胎心率小于120 bpm,则为心率过缓;② 胎心率大于160 bpm,则为心率过速;③ 胎心率在120~160 bpm,则为正常。
1.5.4 医生诊断平台
医生诊断平台为医生提供一个基于浏览器的胎儿心电图诊断界面,医生可以通过网络登录相关网址进入诊断平台,查看孕妇胎儿心电并提交诊断结果。同时医生可以使用电话和孕妇进行一对一的咨询,提供专业的医疗服务。
使用HTML5、CSS、JavaScript以及云端Web API实现基于浏览器的医生诊断平台。使用目前流行的Web框架技术(如bootstrap、jQuery等)构建一个用户界面[14],运用HTML5中的canvas绘图技术[15]绘制胎儿心电图。
医生诊断平台流程(图10):① 医生成功登录进入诊断平台;② 云端服务器会检测是否有胎儿心电诊断任务,没有进入③,有则进入④;③ 云端服务器检测到当前没有需要诊断的胎儿心电任务,系统处于等待任务中,当有新的任务时,则进入④;④ 医生在线接收到诊断任务,查看胎儿心电波形图,给出诊断建议并提交,之后医生可通过电话与孕妇进行一对一的沟通。至此,整个诊断流程结束,系统重新进入②。
1.5.5 数据推送服务
医生提交诊断结果后,云端服务器通过数据推送服务,将诊断结果推送给孕妇智能手机APP,并提醒孕妇及时查看医生诊断结果。系统的数据推送采用了阿里云的移动推送服务(Alibaba Cloud Mobile Push)[16-17]。阿里云的移动推送是基于大数据技术的移动云服务。帮助APP快速集成移动推送功能,在实现实时移动推送的同时,极大地降低了开发成本。优势在于支持多协议(spdy/http/quic/https)加密 light-ssl,减少 round-trips;支持全量推送、设备号推送、账号推送;同时支持通知(Notification)和应用内消息的推送、API多语言,接口灵活;推送通道多租户互相隔离,保障消息的实时性。
图10 医生诊断平台流程图
2 结果与分析
系统服务器软件部署在阿里云轻量服务器[18]上,系统功能可靠性验证实验如下。
2.1 胎儿心电发生器与采集器性能验证
为验证胎儿心电发生器和心电采集器可靠性,设计如下实验(图11)。胎儿心电发生器产生母体心电信号,心电采集器采集母体心电信号并通过蓝牙传输到智能手机,智能手机APP软件对母体心电信号进行分离,提取出胎儿心电信号并显示在手机屏幕上。
2.2 系统功能实验验证
为验证系统功能,胎儿心电发生器产生胎儿心电,通过心电采集器采集,并通过蓝牙传输到智能手机(图11)。孕妇通过智能手机将胎儿心电信号上传到云端服务器,医生通过浏览器登录到云端服务器医生诊断平台(图12)。在医生诊断平台,医生可以查看胎儿心电波形图,给出诊断建议,并提交到云端服务器(图13)。云端服务器软件通过阿里云移动推送服务,将医生诊断结果推送给智能手机,并提醒孕妇查看(图14)。实验结果表明,系统运行正常。
图11 胎儿心电发生器与采集器实验验证
图12 医生诊断平台登录页面
图13 医生诊断平台页面
图14 医生诊断信息
3 结论
本文设计并实现了一种基于云平台的胎儿心电远程监护系统。研制了一款新型胎儿心电发生器,解决孕妇腹部心电采集不便的问题;研制了一种便携贴片式心电采集器,用于实时采集母体心电信号;开发了Android智能手机APP软件,可接收并提取胎儿心电信号,同时能将胎儿心电信号上传到云端服务器。所设计的云端服务器软件包括Web API、数据库、智能分析模块、数据推送服务以及医生诊断平台。医生通过浏览器登录进入服务器诊断平台页面,查看胎儿心电波形图,并给出诊断建议。云端服务器通过第三方阿里云移动推送服务,将医生诊断结果推送给孕妇智能手机APP,孕妇可查看医生诊断结果。实验结果表明,整个系统运行可靠,能实现胎儿心电信号的远程监护。