梁振士,魏紅霞,王茜,韓曉鵬
北京市醫(yī)療器械檢驗所 (北京 101111)
心電圖在臨床上占有重要地位,且隨著計算機、電子等相關(guān)技術(shù)的發(fā)展,越來越多的心電圖機具有心電圖自動分析及診斷功能[1]。心電數(shù)據(jù)庫是評價心電圖機自動分析功能準確性的重要依據(jù)。MIT-BIH 心電數(shù)據(jù)庫是國際標(biāo)準和行業(yè)標(biāo)準指定的用于測試心電設(shè)備自動分析功能的心電數(shù)據(jù)庫,具有廣泛的國際影響。北京市醫(yī)療器械檢驗所參照MIT-BIH 心律失常心電數(shù)據(jù)庫建立了適用于中國人的心律失常心電數(shù)據(jù)庫,數(shù)據(jù)存儲格式與MIT-BIH 數(shù)據(jù)庫完全一致。為了將心電數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入被測心電設(shè)備中,一般采用兩種途徑:(1)在心電設(shè)備的分析軟件上設(shè)計專門的導(dǎo)入功能,通過該功能將心電數(shù)據(jù)文件導(dǎo)入分析軟件;(2)通過專門的模擬信號發(fā)生器將心電數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)換成模擬信號,然后將模擬信號輸入到被測設(shè)備。對于沒有預(yù)留文件導(dǎo)入接口的設(shè)備,只能采用第2種方式進行驗證。
市場上目前的心電模擬器為多參數(shù)信號模擬器,如美國FLUKE 的MPS 系列、ProSim 系列模擬器,可以為心電監(jiān)護和診斷設(shè)備提供較為通用的試驗信號,但對于心律失常數(shù)據(jù)只提供了幾個固化在機器內(nèi)部的波形,幾乎無法實現(xiàn)導(dǎo)入新的波形數(shù)據(jù),因此,研制MIT-BIH 心電數(shù)據(jù)庫信號發(fā)生器既可以解決MIT-BIH 心電數(shù)據(jù)庫的模擬信號輸出問題,也可以將其用于輸出中國人心律失常心電數(shù)據(jù)庫等以MIT-BIH 格式存儲的數(shù)據(jù)的模擬信號,從而推動這一類心電數(shù)據(jù)庫的廣泛使用,滿足實際測試驗證的需要。
本研究的主要內(nèi)容是在Windows 操作系統(tǒng)平臺上,采用Visual C++進行開發(fā),解析MIT-BIH 心電數(shù)據(jù)庫文件,提取文件數(shù)據(jù),通過還原處理文件數(shù)據(jù),按照聲卡輸出格式的要求重新編碼,利用操作系統(tǒng)聲卡控制接口函數(shù),實現(xiàn)將雙通道心電信號數(shù)據(jù)轉(zhuǎn)換為雙通道模擬信號,最終通過聲卡輸出。
本系統(tǒng)的目的是完成一套心電信號發(fā)生器,方便用于心電類設(shè)備的檢驗和科研開發(fā),通過軟件解析MIT-BIH 數(shù)據(jù)文件,并將心電數(shù)據(jù)轉(zhuǎn)換輸出為心電設(shè)備可以讀取分析的模擬信號,將心電設(shè)備相關(guān)標(biāo)準中的通用測試項目電路集成于硬件內(nèi),方便操作。其整體架構(gòu)見圖1。
圖1 系統(tǒng)的整體架構(gòu)
MIT-BIH 心電數(shù)據(jù)庫中每一組記錄包括3個文件,即頭文件(.hea)、數(shù)據(jù)文件(.dat)、注釋文件(.atr),其中頭文件主要對數(shù)據(jù)文件進行格式說明,注釋文件為心電專家的診斷信息,數(shù)據(jù)文件為具體的心電信號的ADC 轉(zhuǎn)換值[2]。
MIT-BIH 的數(shù)據(jù)文件采用ASCII 碼將兩道導(dǎo)聯(lián)的數(shù)據(jù)交替存儲,這些數(shù)據(jù)被壓縮存放在3個字節(jié)中,每個數(shù)據(jù)占12位,第一道導(dǎo)聯(lián)12位數(shù)據(jù)中低8位存在第一字節(jié)中,高4位存在第二字節(jié)的前4位;第二道導(dǎo)聯(lián)12位數(shù)據(jù)中低8位存在第三字節(jié)中,高4位存在第二字節(jié)的后4位(高4位包含符號位)。在輸出前,我們需要對此格式的數(shù)據(jù)進行解壓縮,即將兩個導(dǎo)聯(lián)的數(shù)據(jù)分別提取出來進行重組,由DAC 輸出。
筆記本電腦和PC 機中的聲卡是一塊集成在主板上用于產(chǎn)生音頻信號的專用芯片。隨著電腦芯片的不斷發(fā)展,聲卡的D/A 轉(zhuǎn)換質(zhì)量越來越高,可以用來產(chǎn)生所需要的信號。
PC 機聲卡現(xiàn)在均滿足Audio Codec'97規(guī)范,在25 ℃環(huán)境下,大多能達到輸出頻率8~192 kHz,電壓的輸出在2.25~2.75 V,ADC 信噪比>85 dB,可滿足常用信號的要求[3-4]。
在Windows 操作系統(tǒng)平臺上,提供了一系列的接口函數(shù)以實現(xiàn)通過聲卡輸出模擬信號,其中最重要的兩個函數(shù)是打開聲音輸出設(shè)備和輸出模擬信號的接口。
在使用聲卡輸出模擬波形時,首先需要借助waveOutOpen 打開和初始化設(shè)備,設(shè)定輸出數(shù)據(jù)的采樣率、每個數(shù)據(jù)的比特數(shù)及輸出通道數(shù)、數(shù)據(jù)格式等;通過waveOutWrite 將準備輸出的數(shù)據(jù)寫入聲卡緩存器中,除非裝置被waveOutPause 函數(shù)暫停,否則在第一個數(shù)據(jù)塊被發(fā)送到聲卡裝置時模擬信號隨即開始輸出;當(dāng)輸完緩存器中的數(shù)據(jù)時,WAVEHDR 結(jié)構(gòu)的dwFlags 成員就會被設(shè)定為DHDR_DONE。
在Windows 平臺上,采用Visual C++開發(fā)軟件實現(xiàn)了心電數(shù)據(jù)模擬信號的輸出功能;主要功能為將數(shù)字化存儲的心電數(shù)據(jù)波形轉(zhuǎn)換為模擬信號輸入給硬件部分,軟件同步顯示2通道波形,軟件構(gòu)架見圖2。
圖2 軟件架構(gòu)
用戶通過界面上的菜單選擇打開MIT-BIH 格式的數(shù)據(jù)文件,然后將數(shù)據(jù)提取到分配好的內(nèi)存中;數(shù)據(jù)解析模塊通過對內(nèi)存中的數(shù)據(jù)按MIT-BIH 格式進行格式轉(zhuǎn)化解析,提取出2通道的心電數(shù)據(jù),并以隊列的形式存儲波形各點的幅度值;同時,將頭文件和注釋文件中有關(guān)數(shù)據(jù)、患者基本信息和診斷信息提取出來予以保存;顯示模塊實現(xiàn)雙通道心電波形、數(shù)據(jù)和患者基本信息以及診斷信息的顯示;模擬信號輸出模塊后,通過接口函數(shù)打開并初始化聲卡,按照聲卡雙通道輸出時數(shù)據(jù)格式要求,將雙通道的心電數(shù)據(jù)轉(zhuǎn)換成聲卡雙通道輸出的格式,通過Windows 接口函數(shù)由聲卡輸出模擬心電信號,MIT-BIH 數(shù)據(jù)解析流程見圖3。
圖3 MIT-BIH 數(shù)據(jù)解析流程
本研究介紹了MIT-BIH 心電數(shù)據(jù)庫的數(shù)據(jù)文件格式和Windows 操作系統(tǒng)平臺上利用聲卡進行模擬信號輸出的技術(shù),給出了通過計算機聲卡將MIT-BIH 心電數(shù)據(jù)庫格式的心電數(shù)據(jù)輸出為模擬心電信號的方法,并通過Visual C++開發(fā)出相應(yīng)軟件實現(xiàn)了這一功能,軟件功能實現(xiàn)界面見圖4。信號發(fā)生器將MIT-BIH 心電數(shù)據(jù)庫中100.dat 文件輸出為模擬信號后在示波器上顯示的波形,通道1顯示的是Ⅱ?qū)?lián)波形,通道2顯示的是V5導(dǎo)聯(lián)波形,見圖5。該信號發(fā)生器既可解決MIT-BIH 心電數(shù)據(jù)庫的模擬信號輸出問題,也可輸出包括由我所建立的中國人心電數(shù)據(jù)庫等以MIT-BIH 格式存儲的數(shù)據(jù)庫的模擬信號,有助于實現(xiàn)這一類心電數(shù)據(jù)庫的使用和推廣,滿足實際測試驗證的需要。
圖4 心電數(shù)據(jù)解析軟件輸出界面
圖5 信號發(fā)生器輸出的100.dat 文件的模擬波形