基于Delphi的24小時動態(tài)心電監(jiān)護控件方法
【技術(shù)領(lǐng)域】
[0001]基于Delphi的24小時動態(tài)心電監(jiān)護控件方法主要涉及計算機數(shù)據(jù)庫方面領(lǐng)域。
【背景技術(shù)】
[0002]在開發(fā)的三通道24小時動態(tài)心電監(jiān)護系統(tǒng)中,由記錄盒回放產(chǎn)生的心電數(shù)據(jù)多達50M Bytes,記錄心搏數(shù)達十幾萬個,而波形出現(xiàn)異常的概率很小,必須使用計算機軟件進行自動分析。Windows操作系統(tǒng)的普及與流行使得開發(fā)美觀易操縱的界面成為必然,因此采用面向?qū)ο?控件的編程語言在Window98 (95)環(huán)境下來開發(fā)系統(tǒng)的軟件可使軟件的功能強大,界面美觀,操作方便。由于Delphi是以O(shè)bject Pascal為基礎(chǔ),在軟件中采用面向?qū)ο蟮某绦蛟O(shè)計,引入對象和類的概念,突出封裝,繼承和多態(tài)性的特征,結(jié)合大量的可視化控件和預(yù)先定義的對象以及使用方便的數(shù)據(jù)庫引擎(BDE)和數(shù)據(jù)庫桌面(DataBaseDesktop),使得開發(fā)工作快捷,并方便地實現(xiàn)漢化。而且Delphi與硬件接口的功能強大且簡單,在這一點上是其它開發(fā)語言所不能比擬的(VB很難與硬件接口,VC++雖可,但大部分要使用Windows的API函數(shù),開發(fā)周期長),因而很適合應(yīng)用于長程心電監(jiān)護系統(tǒng)的快速軟件開發(fā)[1?3]。同時隨著醫(yī)療儀器的計算機化,網(wǎng)絡(luò)化,數(shù)字化和遠程化,醫(yī)學(xué)信號處理虛擬儀器逐漸發(fā)展起來,它充分利用PC機資源(特別是軟件資源)的靈活性,使醫(yī)學(xué)儀器的設(shè)計變得簡單,更加模塊化,易維護,可重復(fù)利用性好,省時經(jīng)濟,且增強了醫(yī)學(xué)儀器的功能(如顯示,分析,存儲管理功能),同時儀器的用戶界面更加美觀,易操作。心電虛擬儀器的核心是心電數(shù)據(jù)采集控件,心電波形瀏覽控件,心電數(shù)據(jù)處理控件的研制,而Delphi不僅可用于編程,而且可提供在同一種環(huán)境下使用同一種語言創(chuàng)建用戶控件的能力,我們可以方便地在繼承系統(tǒng)已有的基礎(chǔ)上生成我們需要的各種專用控件。有了這些控件,便可利用不同的編程語言和開發(fā)工具,研制出滿足不同需求的醫(yī)學(xué)信號處理虛擬儀器。
【發(fā)明內(nèi)容】
[0003]通過國家專利檢索沒有發(fā)現(xiàn)關(guān)于此系統(tǒng)方面的申請資料。
[0004]一.在設(shè)計中,我們根據(jù)系統(tǒng)的功能將軟件分為登錄,回放,系統(tǒng)數(shù)據(jù)管理,數(shù)據(jù)分析,報表打印五個功能模塊。
[0005]1.登錄和回放:登錄和回放與系統(tǒng)硬件有著密切的關(guān)系,前者負(fù)責(zé)實時顯示一段時間的心電波形,檢查電極的安放情況,調(diào)節(jié)記錄增益和PC機與記錄盒的通信;后者負(fù)責(zé)將記錄盒中的數(shù)據(jù)回放至PC機中,由于Delphi開發(fā)語言自身支持與硬件接口的函數(shù),因此很容易實現(xiàn)計算機與記錄盒接口卡之間的通信,即首先利用CreatFile函數(shù)打開串行口,以確定本程序?qū)Υ锌诘恼加袡?quán),然后通過GetCommState函數(shù)填充設(shè)備控制塊,再調(diào)用SetCommState函數(shù)配置串行口的波特率,數(shù)據(jù)位,校驗位和停止位,然后便可以用ReadFile函數(shù)在串行口上操縱數(shù)據(jù)的傳輸,最后利用CloseHandle函數(shù)關(guān)閉串行口。而且在登錄時,將病人的有關(guān)信息進行注冊存放在信息文件和病人的數(shù)據(jù)庫中,產(chǎn)生序列號ID以便與數(shù)據(jù)庫中對應(yīng)的記錄關(guān)聯(lián),ID也是軟件中數(shù)據(jù)庫管理和數(shù)據(jù)分析的主索引,負(fù)責(zé)查找對應(yīng)病人的各種文件,回放時則產(chǎn)生相應(yīng)的數(shù)據(jù)壓縮文件,如:ID號為12的病人的三個通道的心電壓縮數(shù)據(jù)文件分別為:Cecg0012.chi, Cecg0012.ch2, Cecg0012.ch3。
[0006]2.數(shù)據(jù)管理在軟件中,需要對眾多病人的心電數(shù)據(jù),分析結(jié)果,診斷報告等數(shù)據(jù)進行管理,因此,我們采用Delphi方便的數(shù)據(jù)庫功能對之進行統(tǒng)一管理,即通過數(shù)據(jù)庫中病人的ID號與各種類型的數(shù)據(jù)文件相關(guān)聯(lián),給軟件提供一致的數(shù)據(jù)接口,針對不同類型的數(shù)據(jù),采用了不同的管理方法,主要有下面三方面的數(shù)據(jù)管理(以ID號為12的病人為例):
(I)心電記錄數(shù)據(jù):它包括記錄盒回放數(shù)據(jù)和解壓后的三個通道的心電數(shù)據(jù),它們對應(yīng)的數(shù)據(jù)文件分別為:Cecg0012.chi, Cecg0012.ch2, Cecg0012.ch3: ecg0012.chi, ecg0012.ch2.ecg0012.ch3。其中解壓后的數(shù)據(jù)文件(*ch*)的數(shù)據(jù)結(jié)構(gòu)為:每一通道的數(shù)據(jù)作為一個文件,每個采樣點(200Hz采樣頻率)的值以一個字節(jié)帶符號整數(shù)的格式順序存放,讀取時,則采用Delphi中提供的無類型文件的塊讀方式(BlockRead)以五分鐘數(shù)據(jù)段為單位每次讀取60000個字節(jié)。(2)分析結(jié)果數(shù)據(jù):在心律失常分析,S-T段分析和心率變異分析中都會產(chǎn)生對應(yīng)的結(jié)果數(shù)據(jù),病人的各種分析結(jié)果數(shù)據(jù)文件分別為:ecg0012.ecg, ecg0012.cls, ecg0012.hrv。其中,心律失常分析結(jié)果數(shù)據(jù)文件(*.ecg)以每分鐘信息作為一條記錄的方式存放,在查詢結(jié)果時,可快速根據(jù)時間定位(Seek),以分鐘數(shù)為索引,用Delphi提供的記錄文件的讀取方式(Read)每次讀取一條記錄。
[0007](3)病人信息數(shù)據(jù):病人在登錄時會產(chǎn)生各種信息即:編號(ID),姓名,年齡,性另IJ,醫(yī)生,時間等,這些信息存放在專門管理病人檔案的數(shù)據(jù)庫文件中(*.db),并自動按順序生成ID號。整個數(shù)據(jù)庫管理采用內(nèi)置的數(shù)據(jù)庫引擎(BDE)進行管理,我們在創(chuàng)建程序時,不必關(guān)心BDE的內(nèi)容,它可以自動建立程序與數(shù)據(jù)庫的連接,并為不同類型的數(shù)據(jù)庫提供相應(yīng)的驅(qū)動程序,在本系統(tǒng)中,我們采用關(guān)系數(shù)據(jù)庫Paradox,通過數(shù)據(jù)源(DataSource)作為中間橋梁,將數(shù)據(jù)控制部件和數(shù)據(jù)集聯(lián)系起來,而數(shù)據(jù)集(DataSet)則通過數(shù)據(jù)庫引擎和數(shù)據(jù)庫連通,而數(shù)據(jù)控制部件為用戶提供可視化界面,用于顯示(TDBGrid部件)和修改(TDBEdit)部件數(shù)據(jù)庫文件中的數(shù)據(jù)信息。
[0008]當(dāng)然,要完成上述管理,還必須首先完成數(shù)據(jù)庫表的建立,這可以通過Delphi中的數(shù)據(jù)庫桌面(DataBase Desktop)來生成關(guān)系型數(shù)據(jù)庫表的結(jié)構(gòu),完成對各個域的定義。在病歷管理中可進行記錄的添加以及對原有記錄進行修改,并經(jīng)過數(shù)據(jù)集的投寄方法(Post)將變化映射到數(shù)據(jù)庫表中。
[0009]3.數(shù)據(jù)分析對回放解壓后的心電數(shù)據(jù)進行處理,得到ECG結(jié)果信息,以便提供診斷幫助。
[0010]其中的分析都是以每分鐘心電數(shù)據(jù)為單位進行處理的,這也是為了與分析結(jié)果相聯(lián)系,因為心率等參數(shù)均是以一分鐘為單位計算的