洪強,袁延超,張斌,邵明剛,吳水才
北京工業(yè)大學 生命科學與生物工程學院,北京 100124
胎兒心電信號是用來記錄孕婦子宮內(nèi)胎兒心臟動作電位及其傳導過程中的圖形變化,通過分析波形變化,能及早發(fā)現(xiàn)妊娠期或分娩期的胎兒病理情況,從而預防新生兒疾病并降低胎兒死亡率[1]。隨著移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)等技術的發(fā)展,心臟遠程檢測系統(tǒng)在國內(nèi)外已經(jīng)應用于臨床,對心臟病患者進行長時間心電監(jiān)護是治療心臟病的重要手段,同時也是預防突發(fā)性心臟病導致嚴重后果的重要途徑[2]。
隨著移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、大數(shù)據(jù)時代的來臨,醫(yī)學數(shù)據(jù)激增,傳統(tǒng)MySQL數(shù)據(jù)庫面臨存儲困難、查詢慢、處理時間長等問題。如果針對多個患者進行24 h不間斷監(jiān)測,每年會產(chǎn)生海量醫(yī)療數(shù)據(jù)。未經(jīng)分析整理的數(shù)據(jù),不但存儲困難,也難以進行數(shù)據(jù)分析和挖掘[3]。傳統(tǒng)的存儲、管理和分析數(shù)據(jù)量相對較小,大多采用關系型數(shù)據(jù)庫和并行數(shù)據(jù)庫即可解決,但傳統(tǒng)的并行數(shù)據(jù)庫技術追求高度一致性和容錯性,難以保證其可用性和擴展性。
針對這些問題,本文研制一種基于云平臺的胎兒心電遠程監(jiān)護系統(tǒng),該系統(tǒng)有如下改進:
(1)運用傳統(tǒng)MySQL數(shù)據(jù)庫實現(xiàn)心電數(shù)據(jù)的歸檔與管理,針對遠程監(jiān)控心血管疾病時,產(chǎn)生的心電大數(shù)據(jù)存儲難問題,采用hadoop分布式集群技術,將產(chǎn)生的心電大數(shù)據(jù)存入HDFS(Hadoop Distributed File System)中[4-5]。
(2)本系統(tǒng)增加了服務器緊急狀況響應機制,當胎兒發(fā)生緊急狀況時,能及時報警,保證及早就醫(yī)[6]。
(3)服務器內(nèi)嵌入智能分析算法,自動對異常胎兒心電進行診斷,從而減少醫(yī)生工作量。本研究為后續(xù)進行心血管大數(shù)據(jù)分析、統(tǒng)計、數(shù)據(jù)挖掘打下基礎。
一種新型基于云平臺的胎兒心電遠程監(jiān)護系統(tǒng)結(jié)構,見圖1,整個系統(tǒng)包括三大部分:① 胎兒心電采集器;②智能手機APP軟件;③ 云端服務器軟件。
圖1 系統(tǒng)結(jié)構框圖
心電采集器實時采集孕婦和胎兒的混合心電信號,通過低功耗藍牙[7]傳輸?shù)街悄苁謾C。智能手機APP軟件對接收到的混合心電信號進行分離,從混合心電信號中提取出胎兒心電信號,并將胎兒心電數(shù)據(jù)通過移動通訊網(wǎng)遠程傳輸?shù)皆贫朔掌?。云端服務器軟件對接收到的胎兒心電?shù)據(jù)進行存儲和智能分析,醫(yī)生通過瀏覽器頁面在線對胎兒心電進行遠程監(jiān)護診斷,當服務器軟件檢測到有醫(yī)生上線時,自動將胎兒心電信號推送給在線醫(yī)生進行監(jiān)護診斷。醫(yī)生診斷結(jié)束后,云端服務器軟件自動將醫(yī)生的診斷結(jié)果和建議返回到孕婦智能手機中。另外,本系統(tǒng)中新增了一項緊急狀況響應機制,當孕婦發(fā)生突發(fā)狀況或胎兒心電信號嚴重異常時,服務器軟件啟動緊急狀況響應機制,自動給醫(yī)生發(fā)送求救短信,保證及時就醫(yī)。
系統(tǒng)工作流程,見圖2,主要分為13個步驟:① 孕婦將心電采集器貼在腹部表面子宮部位,智能手機通過低功耗藍牙設備自動連接心電采集器,實時接收心電采集器發(fā)送來的混合心電數(shù)據(jù);② 智能手機APP軟件內(nèi)嵌胎兒心電提取算法,對接收到的混合心電進行分離,提取胎兒心電信號,把胎兒心電存儲在手機本地,并通過移動通訊網(wǎng)絡或Wi-Fi網(wǎng)絡上傳到云端服務器,同時在智能手機APP上實時顯示胎兒心電圖;③ 云端服務器將接收到的胎兒心電數(shù)據(jù)存儲到數(shù)據(jù)庫中;④ 云端服務器內(nèi)嵌胎兒心電智能分析模塊(FECG Diagnose Algorithm)對存儲在數(shù)據(jù)庫中的胎兒心電數(shù)據(jù)進行處理;⑤ 判斷胎兒心電信號是否異常;⑥ 如果異常,服務器軟件啟動緊急狀況響應機制,短信通知醫(yī)生,保證及時就醫(yī);⑦ 若預判結(jié)果沒有明顯異常,則查看是否有醫(yī)生在線;⑧ 如果檢測到?jīng)]有醫(yī)生上線,則系統(tǒng)處于等待狀態(tài);⑨ 當檢測到有醫(yī)生上線時,云端服務器軟件將未診斷的胎兒心電數(shù)據(jù)以任務的形式推送給在線的醫(yī)生;⑩ 醫(yī)生接收到相應任務后,可以在線瀏覽胎兒心電波形圖和服務器智能分析結(jié)果,并提交相應診斷建議;云端服務器將醫(yī)生診斷建議存儲到數(shù)據(jù)庫中;云端服務器軟件向孕婦智能手機APP推送診斷結(jié)果孕婦通過智能手機APP查看醫(yī)生的診斷結(jié)果。
圖2 系統(tǒng)流程圖
1.2.1 胎兒心電信號發(fā)生器需求分析
由于采集實時的孕婦腹部心電信號比較困難,特別是對于胎兒心電提取算法實時驗證,需要長時間的孕婦配合,這給孕婦帶來不便和麻煩。而胎兒心電發(fā)生器可給科研工作者提供方便的胎兒心電實時數(shù)據(jù),從而解決采集孕婦腹部心電不便的問題?;谝陨峡紤]本系統(tǒng)通過胎兒心電信號發(fā)生器模擬輸出不同的母嬰混合心電,用于本系統(tǒng)的測試。真正的臨床試驗還有待后期進一步完善。由于目前市面上的胎兒心電發(fā)生器價格比較貴,為便于本系統(tǒng)的測試,我們設計了一款新型胎兒心電發(fā)生器。
1.2.2 胎兒心電信號發(fā)生器硬件設計
胎兒心電發(fā)生器硬件結(jié)構,見圖3,采用MSP430F149為主控單元,AT45DB081D存儲芯片存有3通道DaISy數(shù)據(jù)庫孕婦腹部心電數(shù)據(jù)和一通道胎兒心電數(shù)據(jù)。MSP430F149采用無條件循環(huán)模式和數(shù)模轉(zhuǎn)換芯片DAC5571 IIC 進行通信,DAC5571模擬輸出孕婦腹部心電信號和胎兒心電信號,經(jīng)過分壓電阻使胎兒心電輸出電壓幅值在50 μV以下。此外,電路還包括USB CH340下載電路和LM1117-3.3 V穩(wěn)壓電路,可用輕觸按鍵調(diào)節(jié)胎兒心電的心率和電壓幅值,同時在0.96寸OLED屏顯示設定值。
圖3 胎兒心電發(fā)生器結(jié)構圖
胎兒心電發(fā)生器實物圖,見圖4。USB充電、開關、指示燈在左上方,0.96寸OLED在左側(cè)中間,MCU在板子中間,按鍵在中下方,電極扣在最右方。在設計好外殼后的胎兒心電發(fā)生器,見圖5。
胎兒心電采集器結(jié)構,見圖6,Type-C接口提供供電和三導聯(lián)通信線接口輸入端。當Type-C接口作為三導聯(lián)通信線輸入端時,將采集的腹部三導聯(lián)心電信號傳遞給24位ADS1293模擬前端。ADS1293模擬前端將心電信號經(jīng)過初步的帶通濾波、工頻濾波和放大后,經(jīng)SPI通信、由藍牙處理器CY8C4247讀?。籆Y8C4247處理器將三導聯(lián)腹部心電數(shù)據(jù),按每導聯(lián)15個心電數(shù)據(jù)統(tǒng)一格式打包,當與其它低功耗藍牙設備連接成功后,便經(jīng)藍牙發(fā)送出去。
圖4 胎兒心電發(fā)生器電路板圖
圖5 胎兒心電發(fā)生器實物圖
圖6 胎兒心電采集器結(jié)構圖
當Type-C接口作為供電口時,其經(jīng)MCP73831充電芯片對3.7 V鋰離子電池充電,充電時配有藍色充電指示燈。鋰離子電池輸出的電壓經(jīng)過兩片TLV70033-3.3 V穩(wěn)壓芯片穩(wěn)壓后,分別給模擬前端ADS1293和CY8C4247處理器提供3.3 V模擬電壓和3.3 V數(shù)字電壓。
胎兒心電采集器共需要五個電極扣,一個底座的電極扣起固定作用,其固定在母體腹部子宮底部。其余四個電極扣與Type-C USB公座連接,再接采集設備的母座Type-C USB接口。標號為1的電極接母體恥骨聯(lián)合上方,標號2和3的電極分別接母體子宮中部左右兩側(cè),標號4的為右腿驅(qū)動電極,接母體右側(cè)肋骨處。電極貼法簡單易學,胎兒心電采集器體積小,易于佩戴,其實物,見圖7。
圖7 胎兒心電采集器實物圖
智能手機具備Wi-Fi和移動通訊網(wǎng)等多種接入因特網(wǎng)方式,而且用戶界面友好易操作。孕婦首先通過智能手機APP注冊用戶賬號,注冊成功并登錄后,智能手機APP自動通過藍牙連接胎兒心電采集器,獲取三導聯(lián)腹部心電信號,通過IIR(In finite Impulse Response)濾波、FastICA(Fast Independent Component Analysis)算法實時提取胎兒心電信號[8-9],并將提取出來的胎兒心電實時繪制在手機屏幕上,同時把胎兒心電數(shù)據(jù)以文件的形式存儲在手機本地,并把數(shù)據(jù)通過超文本傳輸協(xié)議(Hyper Text Transfer Protocol Over Secure Socket Layer,HTTPS)[10]遠程傳輸?shù)皆贫朔掌?。智能手機APP還用于接收和顯示云端服務器推送的醫(yī)生診斷結(jié)果。
根據(jù)上述需求,智能手機功能模塊見圖8,主要包含5個功能模塊:
(1)注冊、登錄:孕婦使用手機號注冊并登錄系統(tǒng)。
(2)胎兒心電提取:智能手機APP內(nèi)嵌胎兒心電提取算法,通過藍牙實時接收心電數(shù)據(jù),并從母體心電數(shù)據(jù)中提取胎兒心電信號。
(3)胎兒心電顯示:提取的胎兒心電信號將實時顯示在手機屏幕上,供孕婦查看。
(4)胎兒心電存儲:提取出來的胎兒心電數(shù)據(jù)將以文件的形式存儲在手機本地。
(5)胎兒心電上傳:當需要上傳云端服務器供醫(yī)生診斷時,智能手機APP提供相應的胎兒心電上傳模塊,孕婦可隨時隨地上傳胎兒心電數(shù)據(jù)到云端服務器。
圖8 智能手機功能模塊圖
云端服務器軟件主要負責胎兒心電數(shù)據(jù)的存儲、智能分析和醫(yī)生診斷結(jié)果推送等功能,包含五個部分:Web API接口、數(shù)據(jù)庫服務器、胎心電智能分析、醫(yī)生診斷平臺以及數(shù)據(jù)推送服務。
它們的作用分別為:① Web API提供對外接口,所有數(shù)據(jù)的訪問都是通過Web API完成;② 數(shù)據(jù)庫服務器用來存儲胎兒心電數(shù)據(jù)、云端服務器智能分析結(jié)果、醫(yī)生診斷結(jié)果以及用戶基本信息等;③ 云端服務器智能分析模塊,對胎兒心電進行異常分類,給醫(yī)生提供一個診斷參考,從而減少醫(yī)生工作量;④ 醫(yī)生診斷平臺,為醫(yī)生提供一個友好的基于瀏覽器的診斷頁面,醫(yī)生可隨時隨地通過瀏覽器查看胎兒心電波形圖并給出相應的診斷建議;⑤ 數(shù)據(jù)推送服務,用于將醫(yī)生的診斷結(jié)果推送至智能手機,供孕婦查看。
1.5.1 Web API
本系統(tǒng)選用LAMP(Linux+Apache+MySQL+PHP)架構[11]搭建云端服務器,Web API使用PHP腳本語言編寫。智能手機APP與醫(yī)生診斷平臺均通過Web API訪問數(shù)據(jù),與Web API的通訊均使用HTTPS協(xié)議。根據(jù)系統(tǒng)功能設計相應的Web API接口[12](表1)。
醫(yī)生通過瀏覽器訪問相應Web API URL,完成診斷過程:醫(yī)生首次登錄時,需要完成用戶賬號注冊,之后登錄進入醫(yī)生診斷平臺頁面,云端服務器檢測到醫(yī)生上線后,后臺查看是否有胎兒心電診斷任務,若有,則自動將任務推送到醫(yī)生診斷平臺頁面,醫(yī)生可查看胎兒心電波形圖,并給出相應的診斷建議。提交后,云端服務器會立即將醫(yī)生診斷建議推送到孕婦智能手機APP,供孕婦查看。
表1 Web API接口說明
1.5.2 數(shù)據(jù)庫服務器設計
數(shù)據(jù)庫服務器用于存儲胎兒心電數(shù)據(jù)、醫(yī)生診斷結(jié)果、用戶信息等。系統(tǒng)使用MySQL關系型數(shù)據(jù)庫和HDFS分布式文件系統(tǒng)存儲數(shù)據(jù)。MySQL數(shù)據(jù)庫主要存儲醫(yī)生和孕婦個人基本信息、醫(yī)生診斷結(jié)果、云端服務器智能分析結(jié)果以及胎兒心電數(shù)據(jù)索引等信息[13]。MySQL數(shù)據(jù)表E-R圖(圖9)。
圖9 MySQL數(shù)據(jù)表E-R圖
隨著對孕婦監(jiān)護時間的增加,胎兒心電數(shù)據(jù)將會變得異常龐大。傳統(tǒng)MySQL關系型數(shù)據(jù)庫獲取數(shù)據(jù),并將數(shù)據(jù)分配到很多相關聯(lián)的表中,這些表通過外鍵相互應用。當用戶需要對數(shù)據(jù)集運行查詢時,所需信息需要從多個表中收集,并結(jié)合這些信息,再提供給應用程序。同樣,當寫入數(shù)據(jù)時,需要在多個表中協(xié)調(diào)和執(zhí)行寫入。當數(shù)據(jù)較少,數(shù)據(jù)以較慢速度流入數(shù)據(jù)庫時,關系型數(shù)據(jù)庫通常能夠捕捉和存儲信息。但隨著時間的積累,MySQL數(shù)據(jù)庫已不能滿足快速查詢海量胎兒心電數(shù)據(jù)的要求。
對于海量胎兒心電的存儲,本文將胎兒心電數(shù)據(jù)存儲在HDFS分布式文件系統(tǒng)中。HDFS可以運行于廉價的商用服務器上。它所具有的高容錯、高可靠性、高可擴展性、高獲得性、高吞吐率等特征為海量數(shù)據(jù)提供了安全存儲,為超大數(shù)據(jù)集的應用帶來很多便利。
1.5.3 云端服務器軟件智能分析模塊
本模塊通過判斷胎心率來對胎兒心電進行異常分析。首先定位R波位置,計算相鄰兩個R波時間然后算出胎心率。ft是RR間期,胎心率HR計算公式如下:
心率類型分為3類:① 胎心率小于120 bpm,則為心率過緩;② 胎心率大于160 bpm,則為心率過速;③ 胎心率在120~160 bpm,則為正常。
1.5.4 醫(yī)生診斷平臺
醫(yī)生診斷平臺為醫(yī)生提供一個基于瀏覽器的胎兒心電圖診斷界面,醫(yī)生可以通過網(wǎng)絡登錄相關網(wǎng)址進入診斷平臺,查看孕婦胎兒心電并提交診斷結(jié)果。同時醫(yī)生可以使用電話和孕婦進行一對一的咨詢,提供專業(yè)的醫(yī)療服務。
使用HTML5、CSS、JavaScript以及云端Web API實現(xiàn)基于瀏覽器的醫(yī)生診斷平臺。使用目前流行的Web框架技術(如bootstrap、jQuery等)構建一個用戶界面[14],運用HTML5中的canvas繪圖技術[15]繪制胎兒心電圖。
醫(yī)生診斷平臺流程(圖10):① 醫(yī)生成功登錄進入診斷平臺;② 云端服務器會檢測是否有胎兒心電診斷任務,沒有進入③,有則進入④;③ 云端服務器檢測到當前沒有需要診斷的胎兒心電任務,系統(tǒng)處于等待任務中,當有新的任務時,則進入④;④ 醫(yī)生在線接收到診斷任務,查看胎兒心電波形圖,給出診斷建議并提交,之后醫(yī)生可通過電話與孕婦進行一對一的溝通。至此,整個診斷流程結(jié)束,系統(tǒng)重新進入②。
1.5.5 數(shù)據(jù)推送服務
醫(yī)生提交診斷結(jié)果后,云端服務器通過數(shù)據(jù)推送服務,將診斷結(jié)果推送給孕婦智能手機APP,并提醒孕婦及時查看醫(yī)生診斷結(jié)果。系統(tǒng)的數(shù)據(jù)推送采用了阿里云的移動推送服務(Alibaba Cloud Mobile Push)[16-17]。阿里云的移動推送是基于大數(shù)據(jù)技術的移動云服務。幫助APP快速集成移動推送功能,在實現(xiàn)實時移動推送的同時,極大地降低了開發(fā)成本。優(yōu)勢在于支持多協(xié)議(spdy/http/quic/https)加密 light-ssl,減少 round-trips;支持全量推送、設備號推送、賬號推送;同時支持通知(Notification)和應用內(nèi)消息的推送、API多語言,接口靈活;推送通道多租戶互相隔離,保障消息的實時性。
圖10 醫(yī)生診斷平臺流程圖
系統(tǒng)服務器軟件部署在阿里云輕量服務器[18]上,系統(tǒng)功能可靠性驗證實驗如下。
為驗證胎兒心電發(fā)生器和心電采集器可靠性,設計如下實驗(圖11)。胎兒心電發(fā)生器產(chǎn)生母體心電信號,心電采集器采集母體心電信號并通過藍牙傳輸?shù)街悄苁謾C,智能手機APP軟件對母體心電信號進行分離,提取出胎兒心電信號并顯示在手機屏幕上。
為驗證系統(tǒng)功能,胎兒心電發(fā)生器產(chǎn)生胎兒心電,通過心電采集器采集,并通過藍牙傳輸?shù)街悄苁謾C(圖11)。孕婦通過智能手機將胎兒心電信號上傳到云端服務器,醫(yī)生通過瀏覽器登錄到云端服務器醫(yī)生診斷平臺(圖12)。在醫(yī)生診斷平臺,醫(yī)生可以查看胎兒心電波形圖,給出診斷建議,并提交到云端服務器(圖13)。云端服務器軟件通過阿里云移動推送服務,將醫(yī)生診斷結(jié)果推送給智能手機,并提醒孕婦查看(圖14)。實驗結(jié)果表明,系統(tǒng)運行正常。
圖11 胎兒心電發(fā)生器與采集器實驗驗證
圖12 醫(yī)生診斷平臺登錄頁面
圖13 醫(yī)生診斷平臺頁面
圖14 醫(yī)生診斷信息
本文設計并實現(xiàn)了一種基于云平臺的胎兒心電遠程監(jiān)護系統(tǒng)。研制了一款新型胎兒心電發(fā)生器,解決孕婦腹部心電采集不便的問題;研制了一種便攜貼片式心電采集器,用于實時采集母體心電信號;開發(fā)了Android智能手機APP軟件,可接收并提取胎兒心電信號,同時能將胎兒心電信號上傳到云端服務器。所設計的云端服務器軟件包括Web API、數(shù)據(jù)庫、智能分析模塊、數(shù)據(jù)推送服務以及醫(yī)生診斷平臺。醫(yī)生通過瀏覽器登錄進入服務器診斷平臺頁面,查看胎兒心電波形圖,并給出診斷建議。云端服務器通過第三方阿里云移動推送服務,將醫(yī)生診斷結(jié)果推送給孕婦智能手機APP,孕婦可查看醫(yī)生診斷結(jié)果。實驗結(jié)果表明,整個系統(tǒng)運行可靠,能實現(xiàn)胎兒心電信號的遠程監(jiān)護。