Wave Browser Control for Medical Signals
Cheng Qiming, Hu Xiaolin, Lü Xiaodong, Xiao Song, Ma Yuexing, Liu Sen
(Institute of Aviation Medicine, 100036)
AbstractVirtual instruments(VI) for medical signal processing is the foundation of comp uterization and networks of medical instruments and is also an important part of future digital hospital and remote medical treatment. The kernel part of VI is software controls for medical signal acquisition and processing. Wave browser control, as one of these software controls can be used to read and write data files, to show signal curves in various forms, to select a segment of signal for processing, to measure curves, and to print curves on papers, etc.. It is easy and quick to build medical instruments of high performance, combining this control with other useful controls.
Key words:Medical signal;Virtual instruments;Signal processing;Control design
0概述
随着医疗仪器的计算机化和网络化以及远程医疗、数字医院的不断发展,医学信号处理虚拟仪器即将成为适应新时代要求的产物。医学信号虚拟仪器[1]中的核心部分就是医学信号采集和处理控件。这些控件包括数据采集控件、波形回顾和浏览控件、通用信号处理控件、心电信号处理控件、脑电信号处理控件、肌电信号处理控件以及通信控件、界面制作控件等等。有了这些控件,利用Visual C++、Visual Basic、VBScript、Visual Foxpro、PowerBuilder等开发工具,就能灵活、方便地构筑起满足不同需求的医学信号处理仪器。
计算机软件的设计经过了由结构化编程到面向对象编程的转变。控件作为面向对象编程的功能部件,具备可扩展、可复用、模块化等特点,它以所需要处理的数据为中心,形成数据和代码融为一体的独立实体。结构化编程可以编制精练短小的程序,它以函数为中心,在编制大型程序时难以维护。面向对象程序设计则适合于编制大型复杂的程序的开发,弥补了结构化编程的不足。
VBX、OCX和ActiveX是控件的呈现形式,也是控件在不同发展时期的产物。最早的控件是VBX(visual basic extension),它可以在Microsoft Visual C++,Borland C++,Delphi,PowerBuilder,Visual Basic等应用程序开发环境中使用,但VBX只能用在16位程序的开发中:目前VBX正被OCX所代替,它支持16位和32位开发环境;随着INTERNET网络的发展,微软公司把OLE技术和OCX技术融为一体并加以改进,形成了ActiveX控件,它把OLE控件规范加以精练,使得这些控件更加小巧而且效率更高,便于进行Internet访问。利用通用控件(如按钮制作控件,图形控件,图像控件,通信控件等)与生物医学信号处理专用控件(如信号波形表示控件,心电信号处理控件,脑电信号处理控件等)相结合,可用更少的人,更少的时间,更少的经费开发出更多、更好的医学信号处理仪器。
医学信号波形浏览控件,是医学信号处理虚拟仪器的一个基本控件,其主要作用是对所采集的医学信号数据文件进行波形显示、测量、打印、编辑、选择和转存,并对其进行一些常规的预处理等。
1医学信号存储数据格式约定
医学生理信号,如心电、脑电、肌电、脉搏波、呼吸波、血压等,经过调理放大后,通过各种接口如A/D卡、GPIB接口卡、串行口、并行口、现场总线设备等将数字化后的信号以数据形式存储到磁盘文件中。该数据文件不仅存储有信号数值序列,而且还包括一些与其相关的信息,如文件识别符、信号通道数、每通道数据点数、采样速率、每点数据的比特数以及相关文字说明等。把这些信息按约定格式存放在文件中,以便于文件的读写和共享,也便于建立医学信号数据库。为此我们约定了PC机上多通道、单采样速率、等间隔采样数据的存储格式。在此数据文件头中,我们包括了文件标识符,信号的路数,每路信号的数据样点数,信号的采样速率,信号的X轴和Y轴度量单位,数据存储位数,每路信号的放大倍数,以及与信号相关的文字说明等信息。接在文件头后面是信号的数值序列。有了数据和与数据相关的信息,才能使数据共享,便于交流,也是建立信号数据库系统和设计通用波形浏览控件的基础。针对此文件格式我们研制了信号波形浏览控件,同时该控件也支持WINDOWS声音文件(*.WAV)格式。
2波形浏览控件
医学信号波形浏览控件是实现对数据文件以波形形式表示和操作的功能部件,包括对数据文件中每一点或每一段数据的读写、修改,各种方式的波形显示,波形上任一点的测量,X轴和Y轴方向上的卡尺测量,波形打印输出,以及选择其中任意通道任意一段进行处理等。这些功能分别由控件的属性、方法和事件来实现。
2.1控件的模型
波形浏览控件由界面设置、波形设置、数据载入、波形选择、数值读取、数值修改、数据存储、波形打印、数据特性等功能组成,如图1所示。
它们分别以控件的属性和方法实现。界面设置包括控件的位置、大小、边框的形式、背景颜色、标题内容等的设置和读取;数据装入就是从数据文件中把数据读入内存,自动识别数据格式,并立即显示波形曲线;波形选择就是从屏幕上选择一段波形,以备进行处理;波形设置包括波形的颜色、波形是否重叠绘制、X轴每厘米波形显示的点数或秒数、Y轴波形每厘米显示的毫伏数、波形是否插值以及波形显示数据起点等;数据存储就是将数据按指定的格式存储为磁盘文件;数据读取就是从控件中读取指定通道上一点或一段或所选择段的数值;数据修改就是设置控件中指定通道中一点或一段的数值;波形打印就是打印屏幕上所显示的波形;数据特性就是可读取数据的总长度、数据的采样率、通道数目、存储点类型、放大倍数等参数。
2.2波形浏览控件的属性
除了一般控件常有的属性外,该控件增加了自己特有的属性,这里将它们摘要描述如下:
Autox:该属性决定在绘图时是否对数据进行重新采样。
Backcolor:设置绘图区域的背景颜色。
BorderType:设置控件的边界类型。
Caption:设置标题栏字符串。
CursorStatus:设置鼠标光标点取时的功能。
CurveColor:设置选定通道波形的颜色。
Filename:指定打开或存储文件的路径和文件名。
Forecolor:设定网格的颜色。
Grid:设置网格的类型。
hData:存放数据的内存句柄。
NChannels:信号的路数。
Overlap:确定各通道波形是否重叠绘制。
PrnLeft:波形打印时,以毫米计左边距。
PrnTop:波形打印时,以毫米计上边距。
Pvmax:绘图时所用的幅度最大值。
Pvmin:绘图时所用的幅度最小值。
Rate:采样速率,单位为Hz。
Secpcm:时间轴上(或X轴上)每厘米所对应的秒数。
Volpcm:幅度轴上(或Y轴上)每厘米所对应的毫伏值。
Selch:所选择的通道。
Sellen:所选择的数据点数。
Selstart:所选择数据的起点。
Separator:确定所绘波形是按水平还是垂直方向划分窗口显示各通道波形。
Start:显示波形的数据起点。
SType:信号类型标记。
Value:读取或设置Vpos处的值。
Vmax:数据中的最大可能值。
Vmin:数据中的最小可能值。
VPos:指定要读取或设置Value值的位置。
XSpace:X轴上所测量的跨度值。
YSpace:Y轴上所测量的跨度值。
XValue:测量点处X轴的测量值。
YValue:测量点处Y轴的测量值。
2.3控件的方法
