劉尚軍 祝 軍
呼吸機是臨床最常用的急救和生命支持設備。其種類:包括成人型、嬰幼兒型、通用型、高頻噴射/振蕩、無創和急救型等,約有200多個型號;數量大:僅就進口的數量統計,國內目前約有3萬多臺,且每年以3千多臺的速度遞增;分布廣:它是醫院關鍵環節的重點設備,常用于呼吸監護病房、各種內外科加強監護病房、急診科、麻醉術后恢復室和家庭之中。呼吸機是臨床最容易出問題(風險值高)、培訓工作量最大、最難使用的醫療設備之一,在現代化醫院設備中占有重要位置。因此,加強呼吸機的應用管理和質量控制對提高其安全性和使用效率,提高臨床救治的成功率,減少臨床風險具有重要意義。
目前,在沒有對呼吸機進行計量強檢的情況下,呼吸機機械通氣的性能測試是呼吸機質量控制的主要手段?,F在廣泛使用的進口呼吸機檢測儀價格昂貴,功能復雜,全英文操作,不適合我國中小醫院購買及醫工人員使用,基于此,本文作者從準確、簡單、實用出發,研制了新型呼吸機檢測儀。
整個測試儀以PC104為硬件平臺,嵌入了WinXP操作系統,因此重點是在Windows平臺上開發出呼吸機測試儀的應用軟件,這里我們選擇了C++ Builder來進行軟件的設計。
在以Visual C++或者C++ Builder為開發工具設計應用軟件時,為了更逼真的模仿實物組件的形狀、顏色和功能等,設計者通常根據實際的功能需要設計一些具有可移植性、可重用性、可修改的個性化虛擬儀器面板控件,而ActiveX控件正具有上述優勢。
ActiveX以COM為基礎,其中包括了OLE技術以及應用于Internet的多種技術,它使得不同的進程(甚至是網絡上的進程)之間可相互通信。ActiveX控件是ActiveX技術中的一種,它是以控件形式發布的一種軟件模塊。ActiveX控件與普通控件最大的不同點是它的屬性和方法。ActiveX控件不象普通控件那樣,發送通知信息給它的包容器窗口,而是“激發事件”。同時ActiveX控件一旦創建,它就與編程語言無關,所以用某種語言編程創建的ActiveX控件,在另一種語言中同樣可以使用,具有可移植性,并可以轉讓給其他開發者使用,為其帶來方便。
使用ActiveX控件來構筑虛擬儀器軟件給軟件設計帶來以下好處:
1.2.1 易于組建
可以把所需控件的設計和開發工作交由專門的開發人員或廠家去完成,或借助于其它儀器廠商已設計好的用于構筑虛擬儀器面板的ActiveX控件,測試系統組建人員只需使用現成的控件來構造虛擬儀器軟件,因此大大地降低了開發難度。用戶可以首先考慮購買合適的控件,其次再考慮自行開發,然后將這些控件按照一定的要求組裝起來就能構建自己的應用系統,從而大大提高了工作效率,又便于日后的修改,從整體上來說降低了開發成本。
1.2.2 易于維護
設計人員可以把虛擬儀器面板的設計分解成明確定義的幾個模塊,然后進一步創建具體的控件來實現它們,當由不同功能的控件組成的虛擬儀器軟件調試時,設計人員會很容易地發現問題所在,這時只要修改有問題的控件即可。當原來的控件無法滿足測試要求時,可以單獨對控件進行修改,只要對外的接口保持不變,就能平滑地將新的控件替代原來的控件。這種模塊化的軟件設計思想使程序維護起來相當方便。
1.2.3 可重復使用
投入到控件的設計和實施上的時間和精力不會白費,以后可在不同的虛擬儀器軟件設計中重復使用這些控件。
幾乎每一種軟件開發工具都支持ActiveX控件的設計與使用,如Microsoft公司的Visual Basic、Visual C++和Borland公司的C++ Builder、Delphi等。以Visual C++ 6.0為例,按如下的操作步驟可以快速生成一個標準的ActiveX控件。首先,啟動Visual C++ 6.0的應用程序向導,用File菜單下的New菜單項創建新的項目,注意選擇列表框中的MFC ActiveX ControlWizard項。接著,按照系統給出的提示信息逐步完成創建工作,用戶可根據實際應用的要求定制控件的各項特性。用MFC ActiveX Control Wizard項產生以COleControl為基類的控件對象類,它繼承了所有COleControl類中實現的OLE控件的特性,包括窗口對象屬性和方法等。
本軟件設計背景為呼吸機檢測裝置。呼吸機測試儀要求能準確測定吸氣流量、呼氣流量、氣道壓力等5個主要呼吸參數,并能夠準確分析出呼吸機的通氣模式以及能夠準確、實時顯示出流量、壓力以及容量波形,并可以存儲、回放和打印。筆者以C++ Builder 5.0為軟件開發平臺,同時借助于Visual C++ 6.0開發了用于重建采集數據波形的Display ActiveX控件。圖1所示為呼吸機檢測裝置軟件中波形顯示的界面。

圖1 波形顯示界面
在以數據采集系統為支撐的虛擬儀器軟件設計中,波形顯示與操作控制是軟件的關鍵功能組成部分。當數據以圖形形式顯示時,用戶可以很快從中提取所需的信息。ActiveX控件就是滿足上述測試系統特定功能要求的用于波形顯示與操作控制的控件,它由Visual C++ 6.0設計,但設計完成的控件模塊可直接嵌入到C++ Builder 5.0中使用。Display ActiveX控件主要具有以下幾個功能組成部分:
① 數據的獲取與存儲
不管所用的數據采集裝置為何種,只要數據采集裝置通過與硬件相配套的軟件將數據存放在一個緩沖區,即可調用Display ActiveX控件對外的接口函數(SetDataBuffer方法)將數據保存在控件生成時所分配的緩沖區里。數據緩沖區是以16位有符號二進制的格式存放所采集到的數據,這與實際A/D轉換器采集得到的數據格式相同。一個Display ActiveX控件窗口內最多可同時顯示5個采集通道的數據,程序為每個采集通道分配獨立的顯示緩沖區(虛擬內存,大小為1K),該緩沖區直到控件析構時釋放。
② 數據的波形顯示
用戶可以根據自己的需要,動態調整實際顯示的通道數。并可將不同通道數據波形的幅度以不同的比例縮放,在不同的幅度范圍內觀察。由于數據是多通道同時采集的,為方便研究數據的時間相關性,所有通道最好均以相同的時間分辨率顯示相同時間區域的數據,當然,顯示時間比例和時間區域都是可調的。為突出觀察某些重要通道,還可調整每一通道的顯示區域大小,對單個通道的波形進行上移、下移、左移、右移等操作。為使數據的觀察與分析更加直觀,在顯示區里,添加了四個標尺,兩個水平標尺用于測量所操作通道波形的幅值;兩個垂直標尺用于測量所操作通道波形的周期等時間特性參數。用戶移動標尺就可以得到對應標尺之間所包含通道波形的幅值、時間參數等信息。
③ 波形保存與打印
控件還提供了數據波形的保存和打印功能。用戶不但可以將波形所對應的數據以文本文件保存,還可以將數據波形保存到一個位圖(bmp)文件里。同時,也可將數據曲線按當前的顯示比例打印出來,以方便進一步的分析與研究。
④ 數據處理
數字信號的處理是數字系統的必備部分,任何一個良好的虛擬儀器軟件都應提供用于對數字信號進行處理與分析的功能模塊。該控件包括用于數字信號處理的各種功能函數,如求FFT運算,數據加窗,FIR濾波器等。這些功能函數為用戶進一步擴展測試儀的功能提供了基礎。
⑤ 波形操作控制
在波形顯示窗口的上面是隨控件攜帶的用于波形操作控制的工具欄,如“”、“”、“”、“”等,可用于波形的全局放大、全局縮小、保存和打印等操作。
Display控件可由任何一種支持ActiveX技術的虛擬儀器軟件開發工具調用,如Labview,Visual C++,C++ Builder等。在C++ Builder 5.0環境中,點中“Component”菜單中的“Import ActiveX Control……”菜單項,在彈出的對話框中首先將注冊過的ActiveX控件加載到C++ Builder環境中,再點擊“Install”按鈕進行安裝,這時就會在所選擇的模板頁(默認為ActiveX)中出現“Display”的字樣,即為所添加的ActiveX控件,然后就可以像Windows標準控件一樣放置到窗體中使用。程序員只需簡單設置和調用該控件所提供的屬性和方法就能在PC104主板上正確顯示采集數據波形。
利用ActiveX技術設計虛擬儀器軟件,是虛擬儀器設計的一種新思路,由于其具有其它設計方法不具備的一些優勢,該方法將為虛擬儀器設計的高效性、形象性提供條件。同時,由于可以方便的修改控件屬性,設計者可以設計出各種個性化的控件;另外,由于ActiveX控件的可移植性和可重用性,可以將其作為產品進行共享。
本呼吸機檢測儀裝置可對呼吸機的通氣性能進行綜合評價,對呼吸機做出準確、可靠的測試和評估,從而對呼吸機的使用進行很好的質量控制。
[1]David J.Kruglinski.Visual C++技術內幕[M].北京:清華大學出版社,1999.
[2]阮德生.自動測試技術與計算機儀器系統設計[M].西安電子科技大學出版社,1997.
[3]程曉暢.基于局域網的發動機綜合參數測試系統設計[D].長沙:國防科技大學,2003.
[4]朱曉華,馮玉田.基于組件技術的虛擬儀器開發方法的研究[J].上海大學學報(自然科學版),1999.
[5]雷霖,李康.Borland C++ Builder使用與開發指南[M].北京:人民郵電出版社,1998.
[6]劉又寧.機械通氣與臨床[M].北京:科學出版社,1998.
[7]周丹,曹德森.現代呼吸機應用的全面質量管理[J].臨床工程理論與實踐,2004,8(3):78-81.
[8]譚浩強,劉炳文.C++程序設計教程[M].北京:中國科學技術出版社,1993.
[9]俞森洋.現代機械通氣的監護和臨床應用[J].中國協和醫科大學,2000.