基于ActiveX控件呼吸机检测装置的软件设计
2011-01-29刘尚军
刘尚军 祝 军
呼吸机是临床最常用的急救和生命支持设备。其种类:包括成人型、婴幼儿型、通用型、高频喷射/振荡、无创和急救型等,约有200多个型号;数量大:仅就进口的数量统计,国内目前约有3万多台,且每年以3千多台的速度递增;分布广:它是医院关键环节的重点设备,常用于呼吸监护病房、各种内外科加强监护病房、急诊科、麻醉术后恢复室和家庭之中。呼吸机是临床最容易出问题(风险值高)、培训工作量最大、最难使用的医疗设备之一,在现代化医院设备中占有重要位置。因此,加强呼吸机的应用管理和质量控制对提高其安全性和使用效率,提高临床救治的成功率,减少临床风险具有重要意义。
目前,在没有对呼吸机进行计量强检的情况下,呼吸机机械通气的性能测试是呼吸机质量控制的主要手段。现在广泛使用的进口呼吸机检测仪价格昂贵,功能复杂,全英文操作,不适合我国中小医院购买及医工人员使用,基于此,本文作者从准确、简单、实用出发,研制了新型呼吸机检测仪。
整个测试仪以PC104为硬件平台,嵌入了WinXP操作系统,因此重点是在Windows平台上开发出呼吸机测试仪的应用软件,这里我们选择了C++ Builder来进行软件的设计。
在以Visual C++或者C++ Builder为开发工具设计应用软件时,为了更逼真的模仿实物组件的形状、颜色和功能等,设计者通常根据实际的功能需要设计一些具有可移植性、可重用性、可修改的个性化虚拟仪器面板控件,而ActiveX控件正具有上述优势。
1 ActiveX控件
1.1 ActiveX控件
ActiveX以COM为基础,其中包括了OLE技术以及应用于Internet的多种技术,它使得不同的进程(甚至是网络上的进程)之间可相互通信。ActiveX控件是ActiveX技术中的一种,它是以控件形式发布的一种软件模块。ActiveX控件与普通控件最大的不同点是它的属性和方法。ActiveX控件不象普通控件那样,发送通知信息给它的包容器窗口,而是“激发事件”。同时ActiveX控件一旦创建,它就与编程语言无关,所以用某种语言编程创建的ActiveX控件,在另一种语言中同样可以使用,具有可移植性,并可以转让给其他开发者使用,为其带来方便。
1.2 ActiveX控件构筑虚拟仪器软件的优势
使用ActiveX控件来构筑虚拟仪器软件给软件设计带来以下好处:
1.2.1 易于组建
可以把所需控件的设计和开发工作交由专门的开发人员或厂家去完成,或借助于其它仪器厂商已设计好的用于构筑虚拟仪器面板的ActiveX控件,测试系统组建人员只需使用现成的控件来构造虚拟仪器软件,因此大大地降低了开发难度。用户可以首先考虑购买合适的控件,其次再考虑自行开发,然后将这些控件按照一定的要求组装起来就能构建自己的应用系统,从而大大提高了工作效率,又便于日后的修改,从整体上来说降低了开发成本。
1.2.2 易于维护
设计人员可以把虚拟仪器面板的设计分解成明确定义的几个模块,然后进一步创建具体的控件来实现它们,当由不同功能的控件组成的虚拟仪器软件调试时,设计人员会很容易地发现问题所在,这时只要修改有问题的控件即可。当原来的控件无法满足测试要求时,可以单独对控件进行修改,只要对外的接口保持不变,就能平滑地将新的控件替代原来的控件。这种模块化的软件设计思想使程序维护起来相当方便。
1.2.3 可重复使用
投入到控件的设计和实施上的时间和精力不会白费,以后可在不同的虚拟仪器软件设计中重复使用这些控件。
1.3 ActiveX控件的设计方法
几乎每一种软件开发工具都支持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控件的特性,包括窗口对象属性和方法等。
2 实际应用
2.1 软件设计背景
本软件设计背景为呼吸机检测装置。呼吸机测试仪要求能准确测定吸气流量、呼气流量、气道压力等5个主要呼吸参数,并能够准确分析出呼吸机的通气模式以及能够准确、实时显示出流量、压力以及容量波形,并可以存储、回放和打印。笔者以C++ Builder 5.0为软件开发平台,同时借助于Visual C++ 6.0开发了用于重建采集数据波形的Display ActiveX控件。图1所示为呼吸机检测装置软件中波形显示的界面。
图1 波形显示界面
2.2 Display ActiveX控件的设计
在以数据采集系统为支撑的虚拟仪器软件设计中,波形显示与操作控制是软件的关键功能组成部分。当数据以图形形式显示时,用户可以很快从中提取所需的信息。ActiveX控件就是满足上述测试系统特定功能要求的用于波形显示与操作控制的控件,它由Visual C++ 6.0设计,但设计完成的控件模块可直接嵌入到C++ Builder 5.0中使用。Display ActiveX控件主要具有以下几个功能组成部分:
① 数据的获取与存储
不管所用的数据采集装置为何种,只要数据采集装置通过与硬件相配套的软件将数据存放在一个缓冲区,即可调用Display ActiveX控件对外的接口函数(SetDataBuffer方法)将数据保存在控件生成时所分配的缓冲区里。数据缓冲区是以16位有符号二进制的格式存放所采集到的数据,这与实际A/D转换器采集得到的数据格式相同。一个Display ActiveX控件窗口内最多可同时显示5个采集通道的数据,程序为每个采集通道分配独立的显示缓冲区(虚拟内存,大小为1K),该缓冲区直到控件析构时释放。
② 数据的波形显示
用户可以根据自己的需要,动态调整实际显示的通道数。并可将不同通道数据波形的幅度以不同的比例缩放,在不同的幅度范围内观察。由于数据是多通道同时采集的,为方便研究数据的时间相关性,所有通道最好均以相同的时间分辨率显示相同时间区域的数据,当然,显示时间比例和时间区域都是可调的。为突出观察某些重要通道,还可调整每一通道的显示区域大小,对单个通道的波形进行上移、下移、左移、右移等操作。为使数据的观察与分析更加直观,在显示区里,添加了四个标尺,两个水平标尺用于测量所操作通道波形的幅值;两个垂直标尺用于测量所操作通道波形的周期等时间特性参数。用户移动标尺就可以得到对应标尺之间所包含通道波形的幅值、时间参数等信息。
③ 波形保存与打印
控件还提供了数据波形的保存和打印功能。用户不但可以将波形所对应的数据以文本文件保存,还可以将数据波形保存到一个位图(bmp)文件里。同时,也可将数据曲线按当前的显示比例打印出来,以方便进一步的分析与研究。
④ 数据处理
数字信号的处理是数字系统的必备部分,任何一个良好的虚拟仪器软件都应提供用于对数字信号进行处理与分析的功能模块。该控件包括用于数字信号处理的各种功能函数,如求FFT运算,数据加窗,FIR滤波器等。这些功能函数为用户进一步扩展测试仪的功能提供了基础。
⑤ 波形操作控制
在波形显示窗口的上面是随控件携带的用于波形操作控制的工具栏,如“”、“”、“”、“”等,可用于波形的全局放大、全局缩小、保存和打印等操作。
2.3 在C++ Builder 5.0中使用Display ActiveX控件
Display控件可由任何一种支持ActiveX技术的虚拟仪器软件开发工具调用,如Labview,Visual C++,C++ Builder等。在C++ Builder 5.0环境中,点中“Component”菜单中的“Import ActiveX Control……”菜单项,在弹出的对话框中首先将注册过的ActiveX控件加载到C++ Builder环境中,再点击“Install”按钮进行安装,这时就会在所选择的模板页(默认为ActiveX)中出现“Display”的字样,即为所添加的ActiveX控件,然后就可以像Windows标准控件一样放置到窗体中使用。程序员只需简单设置和调用该控件所提供的属性和方法就能在PC104主板上正确显示采集数据波形。
3 结束语
利用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.