劉尚軍 祝 軍
呼吸機是臨床最常用的急救和生命支持設(shè)備。其種類:包括成人型、嬰幼兒型、通用型、高頻噴射/振蕩、無創(chuàng)和急救型等,約有200多個型號;數(shù)量大:僅就進口的數(shù)量統(tǒng)計,國內(nèi)目前約有3萬多臺,且每年以3千多臺的速度遞增;分布廣:它是醫(yī)院關(guān)鍵環(huán)節(jié)的重點設(shè)備,常用于呼吸監(jiān)護病房、各種內(nèi)外科加強監(jiān)護病房、急診科、麻醉術(shù)后恢復(fù)室和家庭之中。呼吸機是臨床最容易出問題(風(fēng)險值高)、培訓(xùn)工作量最大、最難使用的醫(yī)療設(shè)備之一,在現(xiàn)代化醫(yī)院設(shè)備中占有重要位置。因此,加強呼吸機的應(yīng)用管理和質(zhì)量控制對提高其安全性和使用效率,提高臨床救治的成功率,減少臨床風(fēng)險具有重要意義。
目前,在沒有對呼吸機進行計量強檢的情況下,呼吸機機械通氣的性能測試是呼吸機質(zhì)量控制的主要手段?,F(xiàn)在廣泛使用的進口呼吸機檢測儀價格昂貴,功能復(fù)雜,全英文操作,不適合我國中小醫(yī)院購買及醫(yī)工人員使用,基于此,本文作者從準確、簡單、實用出發(fā),研制了新型呼吸機檢測儀。
整個測試儀以PC104為硬件平臺,嵌入了WinXP操作系統(tǒng),因此重點是在Windows平臺上開發(fā)出呼吸機測試儀的應(yīng)用軟件,這里我們選擇了C++ Builder來進行軟件的設(shè)計。
在以Visual C++或者C++ Builder為開發(fā)工具設(shè)計應(yīng)用軟件時,為了更逼真的模仿實物組件的形狀、顏色和功能等,設(shè)計者通常根據(jù)實際的功能需要設(shè)計一些具有可移植性、可重用性、可修改的個性化虛擬儀器面板控件,而ActiveX控件正具有上述優(yōu)勢。
ActiveX以COM為基礎(chǔ),其中包括了OLE技術(shù)以及應(yīng)用于Internet的多種技術(shù),它使得不同的進程(甚至是網(wǎng)絡(luò)上的進程)之間可相互通信。ActiveX控件是ActiveX技術(shù)中的一種,它是以控件形式發(fā)布的一種軟件模塊。ActiveX控件與普通控件最大的不同點是它的屬性和方法。ActiveX控件不象普通控件那樣,發(fā)送通知信息給它的包容器窗口,而是“激發(fā)事件”。同時ActiveX控件一旦創(chuàng)建,它就與編程語言無關(guān),所以用某種語言編程創(chuàng)建的ActiveX控件,在另一種語言中同樣可以使用,具有可移植性,并可以轉(zhuǎn)讓給其他開發(fā)者使用,為其帶來方便。
使用ActiveX控件來構(gòu)筑虛擬儀器軟件給軟件設(shè)計帶來以下好處:
1.2.1 易于組建
可以把所需控件的設(shè)計和開發(fā)工作交由專門的開發(fā)人員或廠家去完成,或借助于其它儀器廠商已設(shè)計好的用于構(gòu)筑虛擬儀器面板的ActiveX控件,測試系統(tǒng)組建人員只需使用現(xiàn)成的控件來構(gòu)造虛擬儀器軟件,因此大大地降低了開發(fā)難度。用戶可以首先考慮購買合適的控件,其次再考慮自行開發(fā),然后將這些控件按照一定的要求組裝起來就能構(gòu)建自己的應(yīng)用系統(tǒng),從而大大提高了工作效率,又便于日后的修改,從整體上來說降低了開發(fā)成本。
1.2.2 易于維護
設(shè)計人員可以把虛擬儀器面板的設(shè)計分解成明確定義的幾個模塊,然后進一步創(chuàng)建具體的控件來實現(xiàn)它們,當由不同功能的控件組成的虛擬儀器軟件調(diào)試時,設(shè)計人員會很容易地發(fā)現(xiàn)問題所在,這時只要修改有問題的控件即可。當原來的控件無法滿足測試要求時,可以單獨對控件進行修改,只要對外的接口保持不變,就能平滑地將新的控件替代原來的控件。這種模塊化的軟件設(shè)計思想使程序維護起來相當方便。
1.2.3 可重復(fù)使用
投入到控件的設(shè)計和實施上的時間和精力不會白費,以后可在不同的虛擬儀器軟件設(shè)計中重復(fù)使用這些控件。
幾乎每一種軟件開發(fā)工具都支持ActiveX控件的設(shè)計與使用,如Microsoft公司的Visual Basic、Visual C++和Borland公司的C++ Builder、Delphi等。以Visual C++ 6.0為例,按如下的操作步驟可以快速生成一個標準的ActiveX控件。首先,啟動Visual C++ 6.0的應(yīng)用程序向?qū)?,用File菜單下的New菜單項創(chuàng)建新的項目,注意選擇列表框中的MFC ActiveX ControlWizard項。接著,按照系統(tǒng)給出的提示信息逐步完成創(chuàng)建工作,用戶可根據(jù)實際應(yīng)用的要求定制控件的各項特性。用MFC ActiveX Control Wizard項產(chǎn)生以COleControl為基類的控件對象類,它繼承了所有COleControl類中實現(xiàn)的OLE控件的特性,包括窗口對象屬性和方法等。
本軟件設(shè)計背景為呼吸機檢測裝置。呼吸機測試儀要求能準確測定吸氣流量、呼氣流量、氣道壓力等5個主要呼吸參數(shù),并能夠準確分析出呼吸機的通氣模式以及能夠準確、實時顯示出流量、壓力以及容量波形,并可以存儲、回放和打印。筆者以C++ Builder 5.0為軟件開發(fā)平臺,同時借助于Visual C++ 6.0開發(fā)了用于重建采集數(shù)據(jù)波形的Display ActiveX控件。圖1所示為呼吸機檢測裝置軟件中波形顯示的界面。
圖1 波形顯示界面
在以數(shù)據(jù)采集系統(tǒng)為支撐的虛擬儀器軟件設(shè)計中,波形顯示與操作控制是軟件的關(guān)鍵功能組成部分。當數(shù)據(jù)以圖形形式顯示時,用戶可以很快從中提取所需的信息。ActiveX控件就是滿足上述測試系統(tǒng)特定功能要求的用于波形顯示與操作控制的控件,它由Visual C++ 6.0設(shè)計,但設(shè)計完成的控件模塊可直接嵌入到C++ Builder 5.0中使用。Display ActiveX控件主要具有以下幾個功能組成部分:
① 數(shù)據(jù)的獲取與存儲
不管所用的數(shù)據(jù)采集裝置為何種,只要數(shù)據(jù)采集裝置通過與硬件相配套的軟件將數(shù)據(jù)存放在一個緩沖區(qū),即可調(diào)用Display ActiveX控件對外的接口函數(shù)(SetDataBuffer方法)將數(shù)據(jù)保存在控件生成時所分配的緩沖區(qū)里。數(shù)據(jù)緩沖區(qū)是以16位有符號二進制的格式存放所采集到的數(shù)據(jù),這與實際A/D轉(zhuǎn)換器采集得到的數(shù)據(jù)格式相同。一個Display ActiveX控件窗口內(nèi)最多可同時顯示5個采集通道的數(shù)據(jù),程序為每個采集通道分配獨立的顯示緩沖區(qū)(虛擬內(nèi)存,大小為1K),該緩沖區(qū)直到控件析構(gòu)時釋放。
② 數(shù)據(jù)的波形顯示
用戶可以根據(jù)自己的需要,動態(tài)調(diào)整實際顯示的通道數(shù)。并可將不同通道數(shù)據(jù)波形的幅度以不同的比例縮放,在不同的幅度范圍內(nèi)觀察。由于數(shù)據(jù)是多通道同時采集的,為方便研究數(shù)據(jù)的時間相關(guān)性,所有通道最好均以相同的時間分辨率顯示相同時間區(qū)域的數(shù)據(jù),當然,顯示時間比例和時間區(qū)域都是可調(diào)的。為突出觀察某些重要通道,還可調(diào)整每一通道的顯示區(qū)域大小,對單個通道的波形進行上移、下移、左移、右移等操作。為使數(shù)據(jù)的觀察與分析更加直觀,在顯示區(qū)里,添加了四個標尺,兩個水平標尺用于測量所操作通道波形的幅值;兩個垂直標尺用于測量所操作通道波形的周期等時間特性參數(shù)。用戶移動標尺就可以得到對應(yīng)標尺之間所包含通道波形的幅值、時間參數(shù)等信息。
③ 波形保存與打印
控件還提供了數(shù)據(jù)波形的保存和打印功能。用戶不但可以將波形所對應(yīng)的數(shù)據(jù)以文本文件保存,還可以將數(shù)據(jù)波形保存到一個位圖(bmp)文件里。同時,也可將數(shù)據(jù)曲線按當前的顯示比例打印出來,以方便進一步的分析與研究。
④ 數(shù)據(jù)處理
數(shù)字信號的處理是數(shù)字系統(tǒng)的必備部分,任何一個良好的虛擬儀器軟件都應(yīng)提供用于對數(shù)字信號進行處理與分析的功能模塊。該控件包括用于數(shù)字信號處理的各種功能函數(shù),如求FFT運算,數(shù)據(jù)加窗,F(xiàn)IR濾波器等。這些功能函數(shù)為用戶進一步擴展測試儀的功能提供了基礎(chǔ)。
⑤ 波形操作控制
在波形顯示窗口的上面是隨控件攜帶的用于波形操作控制的工具欄,如“”、“”、“”、“”等,可用于波形的全局放大、全局縮小、保存和打印等操作。
Display控件可由任何一種支持ActiveX技術(shù)的虛擬儀器軟件開發(fā)工具調(diào)用,如Labview,Visual C++,C++ Builder等。在C++ Builder 5.0環(huán)境中,點中“Component”菜單中的“Import ActiveX Control……”菜單項,在彈出的對話框中首先將注冊過的ActiveX控件加載到C++ Builder環(huán)境中,再點擊“Install”按鈕進行安裝,這時就會在所選擇的模板頁(默認為ActiveX)中出現(xiàn)“Display”的字樣,即為所添加的ActiveX控件,然后就可以像Windows標準控件一樣放置到窗體中使用。程序員只需簡單設(shè)置和調(diào)用該控件所提供的屬性和方法就能在PC104主板上正確顯示采集數(shù)據(jù)波形。
利用ActiveX技術(shù)設(shè)計虛擬儀器軟件,是虛擬儀器設(shè)計的一種新思路,由于其具有其它設(shè)計方法不具備的一些優(yōu)勢,該方法將為虛擬儀器設(shè)計的高效性、形象性提供條件。同時,由于可以方便的修改控件屬性,設(shè)計者可以設(shè)計出各種個性化的控件;另外,由于ActiveX控件的可移植性和可重用性,可以將其作為產(chǎn)品進行共享。
本呼吸機檢測儀裝置可對呼吸機的通氣性能進行綜合評價,對呼吸機做出準確、可靠的測試和評估,從而對呼吸機的使用進行很好的質(zhì)量控制。
[1]David J.Kruglinski.Visual C++技術(shù)內(nèi)幕[M].北京:清華大學(xué)出版社,1999.
[2]阮德生.自動測試技術(shù)與計算機儀器系統(tǒng)設(shè)計[M].西安電子科技大學(xué)出版社,1997.
[3]程曉暢.基于局域網(wǎng)的發(fā)動機綜合參數(shù)測試系統(tǒng)設(shè)計[D].長沙:國防科技大學(xué),2003.
[4]朱曉華,馮玉田.基于組件技術(shù)的虛擬儀器開發(fā)方法的研究[J].上海大學(xué)學(xué)報(自然科學(xué)版),1999.
[5]雷霖,李康.Borland C++ Builder使用與開發(fā)指南[M].北京:人民郵電出版社,1998.
[6]劉又寧.機械通氣與臨床[M].北京:科學(xué)出版社,1998.
[7]周丹,曹德森.現(xiàn)代呼吸機應(yīng)用的全面質(zhì)量管理[J].臨床工程理論與實踐,2004,8(3):78-81.
[8]譚浩強,劉炳文.C++程序設(shè)計教程[M].北京:中國科學(xué)技術(shù)出版社,1993.
[9]俞森洋.現(xiàn)代機械通氣的監(jiān)護和臨床應(yīng)用[J].中國協(xié)和醫(yī)科大學(xué),2000.