当前位置: 首页 > 期刊 > 《北京生物医学工程》 > 1999年第1期
编号:10278939
医学信号波形浏览控件(MdtView)的研制
http://www.100md.com 《北京生物医学工程》 1999年第1期
     作者:成奇明 胡晓林 吕晓东 肖 松 马月欣 刘 森

    单位:成奇明 胡晓林 吕晓东 肖 松 马月欣 刘 森;北京航空医学研究所 (100036)

    关键词:医学信号;虚拟仪器;信号处理;控件设计

    北京生物医学工程990106 摘 要 医学信号虚拟仪器是医疗仪器计算机化、网络化和远程医疗和数字化医院的重要基础,其核心是医学信号获取和处理的软件控件。医学信号波形浏览控件就是其中的一个基本控件,它包括对信号数据文件的读写、波形显示和设置、波形选择和测量、波形打印等功能。将该控件和其他控件相结合,使用通用开发工具(如Visual C++, Visual Basic等),就可快速高效地开发出界面精美、功能强 大、质量可靠的医学信号仪器。

    Wave Browser Control for Medical Signals
, http://www.100md.com
    Cheng Qiming, Hu Xiaolin, Lü Xiaodong, Xiao Song, Ma Yuexing, Liu Sen

    (Institute of Aviation Medicine, 100036)

    Abstract Virtual 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:指定打开或存储文件的路径和文件名。
, http://www.100md.com
    Forecolor:设定网格的颜色。

    Grid:设置网格的类型。

    hData:存放数据的内存句柄。

    NChannels:信号的路数。

    Overlap:确定各通道波形是否重叠绘制。

    PrnLeft:波形打印时,以毫米计左边距。

    PrnTop:波形打印时,以毫米计上边距。

    Pvmax:绘图时所用的幅度最大值。

    Pvmin:绘图时所用的幅度最小值。

    Rate:采样速率,单位为Hz。
, http://www.100md.com
    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 控件的方法

    ReDraw:重绘屏幕曲线。

    Load:将由Filename属性指定的数据文件装入控件,并显示波形。
, http://www.100md.com
    Save:将控件中的数据存到由Filename属性指定的文件中。

    SaveSelected:将所选择的一段数据存储到由Filename属性指定的文件中。

    GetValues:从控件中取得数据值。

    GetSelectedValues:从控件中取得所选择段的数据值。

    SetValues:设置控件中的数值。

    PrintWave:打印所显示的波形。

    2.4 控件的事件

    MdtView-Click()

    MdtView-MouseDown(Button%,Shift%,X!,Y!)
, 百拇医药
    MdtView-MouseUp(Button%,Shift%,X!,Y!)

    MdtView-MouseMove(Button%,Shift%,X!,Y!)

    这些控件的作用与其他控件相同。

    3 控件的应用

    信号波形浏览控件(MdtView)可在VB、VC++、Visual FoxPro、Delphi等多种开发环境和工具中灵活运用,与其他控件相结合可快速形成具备对数据文件的波形显示、测量、存储、打印、选择、处理等功能的应用程序。该控件除了对生物医学信号,如心电、脑电、脉搏、呼吸波等信号浏览外,还可对其他信号进行浏览,如Window中的语音、振动信号等。图2是利用该控件显示心电信号的一个实例。
, 百拇医药
    图2 控件使用例子

    作者简介:成奇明 男,34岁,高级工程师,工学博士。1993年毕业于北方交通大学,主要从事信息和信号处理,计算机应用和软件设计,生物医学工程等。

    4 参考文献

    [1]刘 森,成奇明,等.虚拟仪器的现状与发展.北京生物医学工程,1996;15 (4):235

    [2][美]PaulCilwa著,杨开成,等译.用户控件的程序设计.北京:人民邮电出版社,1997,1~352

    [3]张家广,杨长贵.计算机图形学.清华大学出版社,1995,1~231

    [4]徐士良.常用算法程序集.清华大学出版社,1994,1~615

    (1998-04-27收稿,1998-06-23修回), 百拇医药