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