郭慶 李豪杰 蘇海濤
摘 要: 針對傳統(tǒng)心電分析系統(tǒng)一般運行在電腦客戶端這一局限性,提出一種基于Android平臺的心電分析系統(tǒng)。根據(jù)實際需求,系統(tǒng)采用C/S模式,結(jié)合Android平臺的特點,完成對客戶端軟件系統(tǒng)的開發(fā),同時闡述系統(tǒng)實現(xiàn)過程中的一些主要算法,如R波檢測、心律失常診斷和心電濾波器的設計等。通過對麻省理工學院心電數(shù)據(jù)庫MIT?BIH中數(shù)據(jù)的分析,驗證了算法的正確性。測試結(jié)果表明,該系統(tǒng)能滿足醫(yī)療終端的應用需求。
關鍵詞: Android; 心電分析; R波檢測; 心電濾波; MIT?BIH
中圖分類號: TN99?34; TP311 文獻標識碼: A 文章編號: 1004?373X(2017)20?0052?04
Abstract: In view of the limitation for ECG analysis system runing generally on the PC clients, a kind of ECG analysis system based on Android platform is proposed. C / S mode is adopted in the system according to the actual demands. The client software system was developed in combination with the characteristics of the Android platform. Some main algorithms in the processes of system implementation (such as R wave detection, arrhythmia diagnosis, ECG filter design, etc) are elaborated. By analyzing the data in MIT?BIH arrhythmia database of Massachusetts Institute of Technology, the correctness of the algorithm was verified. The test results show that the system can meet the application requirements of medical devices.
Keywords: Android; ECG analysis; R wave detection; ECG filtering; MIT?BIH
0 引 言
在臨床醫(yī)學里,心電信號直觀地體現(xiàn)了心臟跳動的整個過程,因此實時監(jiān)測心電信號具有十分重要的意義。世界衛(wèi)生組織發(fā)表報告稱,心血管疾病已經(jīng)成為威脅人生命的主要殺手,根據(jù)最新的醫(yī)學研究報告顯示,其發(fā)病率呈上升之勢。而傳統(tǒng)的醫(yī)療體系存在一些不足,如醫(yī)療診治方式比較固化和老套、醫(yī)療信息的存儲孤立,無法共享等。隨著科技的發(fā)展,傳統(tǒng)的只能運行在PC端的心電分析系統(tǒng)已經(jīng)不能滿足患者和醫(yī)師實時監(jiān)控生理參數(shù)的需求。本文介紹一種基于移動平臺的心電分析系統(tǒng),主要包括用戶信息管理、心電信號特征值提取、心律失常判別、診斷報告生成及異常報警等部分。
Android和IOS是當下最火爆的兩款手機操作系統(tǒng),但IOS系統(tǒng)只能運行在蘋果公司旗下的iPhone手機上,價格昂貴,Android系統(tǒng)可以運行在不同廠商的手機上,便于移植,價格便宜。谷歌公司給開發(fā)者提供了統(tǒng)一的API,并且支持更多的第三方庫,促使Android系統(tǒng)迅猛發(fā)展,并且應用范圍越來越廣,用戶越來越多,市場占有率穩(wěn)居第一。因此,本文將以Android平臺作為心電分析軟件的設計與實現(xiàn)平臺。
1 軟件需求分析與系統(tǒng)方案設計
1.1 功能需求
心電分析軟件首先應該能夠顯示動態(tài)的心電圖,其次當設備采集到心電信號并發(fā)送給手機客戶端后,軟件系統(tǒng)對數(shù)據(jù)進行簡單分析并把數(shù)據(jù)打包和封裝,然后發(fā)送給中心服務器,便于醫(yī)師進一步診斷。
1.2 非功能需求
根據(jù)實時性要求,要使軟件做到實時反應,必須保證結(jié)構(gòu)設計合理,避免耗時的操作在主線程里。由于面對的人群比較廣泛,必須擁有友好的用戶交互功能。Android智能手機的屏幕尺寸較小,需通過優(yōu)化各個模塊的布局以達到良好的顯示效果。
1.3 系統(tǒng)框架
系統(tǒng)采用客戶機與服務器的模式,方便實現(xiàn)數(shù)據(jù)和視圖的分離,簡化整個系統(tǒng)的復雜度。客戶機和服務器之間采用發(fā)展成熟的HTTP協(xié)議通信,減少設計通信協(xié)議的麻煩。系統(tǒng)框圖如圖1所示。
2 客戶端設計與實現(xiàn)
客戶端在Android平臺上運行,主要由Java語言和XML語言編寫,開發(fā)環(huán)境為Eclipse[1]。
2.1 功能設計
系統(tǒng)需要完成用戶管理、數(shù)據(jù)查看、心電分析、診斷報告四部分功能。其中用戶管理部分包括用戶的創(chuàng)建、修改、切換和刪除四部分功能;數(shù)據(jù)查看部分包含心電圖回放功能和分析報告查看功能;心電分析是核心部分,涉及到各種算法的調(diào)用;診斷報告主要完成對分析報告的生成和發(fā)出異常報警信息。
2.2 心電濾波器設計
心電信號的特點是:低頻性、微弱性、隨機性。隨機性主要是指心電信號極易受到呼吸狀態(tài)等生理因素的影響,同時又容易受到50 Hz工頻信號的干擾。因此,需要設計合適的濾波器對心電信號進行濾波處理。
數(shù)字濾波器中,較為常見的是FIR濾波器和IIR濾波器。IIR濾波器計算量小、使用較為方便簡單,F(xiàn)IR濾波器有嚴格的相位特性。為了結(jié)合這兩種濾波器的優(yōu)點,Van Gerwan.etal提出了一種新型的整系數(shù)濾波器結(jié)構(gòu)[2],如圖2所示。endprint
整系數(shù)濾波器具有計算量小和嚴格線性相位的優(yōu)點。此外,它最突出的優(yōu)點是所有系數(shù)均為0或2的整次冪。
整系數(shù)濾波器有上述那些優(yōu)點,相應的也有自身的局限性。就諧振器而言,如果出現(xiàn)[Z=ejθ] 和[Z=e-jθ]在單位圓上,則相應的濾波器傳遞函數(shù)的分母項為:
為了保持系數(shù)為0或2的整數(shù)次冪,[θ]只能取值為 0°,60°,90°,120°,180°。其中出現(xiàn)在z平面實軸上極點的角度有 180°和 0°,可把它劃歸為高通濾波器和低通濾波器,剩下60°,90°和120°這3個角度,可以分別得到 [fs6,fs4]和[fs3]這三種中心頻率的整系數(shù)帶通濾波器。
2.3 QRS波檢測
QRS波群形態(tài)最為復雜,包含了大量的心臟活動信息,同時是P波和T波的檢測基礎。對于QRS波的提取,算法的設計是關鍵,既需要滿足較高的準確度,又需要滿足軟件性能的需求。針對QRS波的提取,目前常用的有小波變換法[3]、差分閾值檢測算法、模板匹配法、神經(jīng)網(wǎng)絡法等方法。其中差分閾值法計算量較小,實現(xiàn)起來相對容易,但檢測準確率有待提高。自適應差分閾值法是在差分閾值法的基礎上通過自適應改變閾值的大小,計算量略有增大,但檢測率有了較為明顯的提高。小波變換法是近年來熱門的算法,具有較高的檢測率,但計算量偏大,且需要專門的DSP芯片來實現(xiàn)。模板匹配法是一種基于統(tǒng)計識別的檢測算法,比較穩(wěn)定,但是重復執(zhí)行效率高,耗費時間比較長??紤]到移動設備的處理能力,系統(tǒng)采用計算量適中且具有較高檢測率的自適應差分閾值法作為R波的檢測方法。
自適應差分閾值法的基本原理是,R波幅值最大,QRS波群變化極快,具有極高的能量,相應波形的斜率比U波和T波大很多。設原始心電信號為[xn,]n=1,2,…,k,k為信號的長度,對[xn]作四點平滑移動處理,解析式如下:
2.4 心律失常分類
心律失常依據(jù)起因可分為:激動形成異常和激動傳導異常。每類又可細分為不同種類的小類,常見的心律失常有幾十種。隨著計算機在醫(yī)療系統(tǒng)中的應用,國內(nèi)外學者研究出了多種心律失常分類算法。
心律失常分類是診斷心血管疾病的必要手段,其本質(zhì)是把心電波形的特征進行分類處理。常用分類方法有如下幾種:多變量統(tǒng)計分類(貝葉斯定律)、模板匹配、Fuzzy[6]理論、神經(jīng)元網(wǎng)絡等方法。近年來,隨著計算機計算能力的迅猛提高,新設計的心電分類算法通常會綜合兩種或兩種以上的識別方法以達到提高算法準確率的目的,如綜合FCM,PCA[7]等心律失常判別算法。鑒于移動設備的處理能力較弱,系統(tǒng)采用一般特征值邏輯分支法作為心律失常的分類方法。利用上文介紹的自適應差分閾值算法,提取出QRS波的特征如R波幅值、RR間期、QRS波寬等,結(jié)合文獻[8]的方法進行快速心律失常分類。
2.5 心電數(shù)據(jù)的存儲
Android系統(tǒng)有多種存儲方式,每種方式都有自身的特點。考慮到Android手機存儲空間的大小,本系統(tǒng)把相應的心電數(shù)據(jù)存儲在中心服務器里。系統(tǒng)采用MIT?BIH數(shù)據(jù)庫[9]里的心電數(shù)據(jù)代替模擬前端采集到的數(shù)據(jù),因此可以把數(shù)據(jù)庫中的數(shù)據(jù)存儲在中心服務器端。測量記錄和分析報告等信息則存儲在Android系統(tǒng)自帶的輕量級SQLite3數(shù)據(jù)庫里,方便用戶快速查看過往心電情況。心電數(shù)據(jù)的傳輸采用HTTP協(xié)議,在Android客戶端使用Apache的HTTP庫,通過get和post方式向服務器發(fā)起請求,得到數(shù)據(jù)庫的響應,用handler去更新UI。測量記錄表和分析結(jié)果表的具體設計如表1和表2所示。測量記錄表為存儲測量記錄信息。
3 中心服務器的設計
中心服務器是一個初步設計的智能醫(yī)療服務器,通過Apache+PHP+MySQL框架來實現(xiàn)。該服務器包括數(shù)據(jù)庫服務器和Web服務器兩部分。數(shù)據(jù)庫服務器是整個系統(tǒng)的數(shù)據(jù)存儲核心,用來存儲病人的歷史信息,如病人歷史生理參數(shù)、病人檔案及病歷處理結(jié)果等。同時能夠提供數(shù)據(jù)庫管理、病人檔案管理等各種數(shù)據(jù)的添加、刪除和修改。
通常情況下,客戶端和服務器端運行在不同的平臺上,因而數(shù)據(jù)的格式可能會存在不同。網(wǎng)絡數(shù)據(jù)的傳輸通常要考慮到網(wǎng)絡數(shù)據(jù)的大小、網(wǎng)絡數(shù)據(jù)安全性、編碼復雜度以及協(xié)議通用性等方面。當今網(wǎng)絡傳輸常用的數(shù)據(jù)格式有XML和JSON兩種,而XML的有效數(shù)據(jù)載荷太低,封裝和解析效率也比較低,JSON具有封裝簡單,有效載荷高,讀寫時消耗的資源較少等優(yōu)點。因此,本系統(tǒng)采用JSON數(shù)據(jù)格式傳輸網(wǎng)絡數(shù)據(jù)。
在計算機上Java應用程序可以通過JDBC方便地連接遠程MySQL服務器。但JDBC本身并不是為移動設備量身設計的,JDBC直接連接MySQL服務器不僅效率低下,且耗費系統(tǒng)資源。本系統(tǒng)采用PHP作為中轉(zhuǎn)的方式去實現(xiàn)Android手機與MySQL服務器之間的通信,采用JSON格式將數(shù)據(jù)封裝后傳輸[10],采用無所緩沖隊列和數(shù)據(jù)預取技術提高心電數(shù)據(jù)的讀取效率[11]。這種中轉(zhuǎn)方式結(jié)構(gòu)清晰、易于理解,且能滿足本系統(tǒng)的設計要求,服務器框圖如圖3所示。
4 系統(tǒng)測試
本軟件完成了各個模塊的設計并對各個模塊進行了測試,測試工具包括Android手機和筆記本電腦。利用Tomcat技術將PC機虛擬為中心服務器,在Android手機上運行客戶端軟件,用戶登錄后可以進行相關的操作,登錄界面如圖4所示。
用戶登錄后,選擇服務器里100.dat文件的部分數(shù)據(jù)進行分析并生成診斷報告,診斷報告如圖5所示。在分析數(shù)據(jù)時存在短暫延時,但延時在可以接受的范圍內(nèi),用戶并不會感到明顯的不適。
當檢測出心率有問題時,系統(tǒng)會向其注冊時填寫的另一個手機號發(fā)送短信,告知其狀況以便于及時進行治療。當用戶使用心電回放功能時,選擇相應的文件后,系統(tǒng)會動態(tài)地繪制相應的波形,效果如圖6所示。
5 結(jié) 語endprint