肌电/诱发电位软件系统方案设计

2012-12-17 10:48广东工业大学自动化学院张育俊杜玉晓
电子世界 2012年8期
关键词:诱发电位下位肌电

广东工业大学自动化学院 张育俊 杜玉晓

1.引言

肌电/诱发电位目前已广泛的应用于神经系统研究,紧急护理,手术室监控,神经系统损伤及病变的诊断等领域[3-4]。诱发电位信号中包含了丰富的有关神经系统传导通路上各个部位的信息,特别是潜伏期及其变化表示了神经系统的传导及其延迟,从而反映了神经系统的状态和变化,有“窥视精神之窗”之称。

近年来,国内的公司在肌电/诱发电位系统的研究与开发方面虽然有长足的进步,但是在系统的软硬件实现等方面跟国外大公司相比仍有一定的差距。为此,笔者结合临床研究与应用的需要,提出了一种肌电/诱发电位系统的软件整体设计方案及软件数据处理系统各功能模块的实现方法。

2.系统开发的目标

(1)高实时性

肌电/诱发电位信号十分微弱,干扰特别强,而信号的采样频率又非常高,临床常用采样频率为100KHz、50KHz等,因此系统数据处理应满足高实时性的要求,算法设计应该注重效率。

(2)可扩展性

为了满足系统升级扩展的需要,在设计软件系统时必须考虑系统的可扩展性。软件的维护是软件设计生命周期中耗费时间最长的一部分工作之一,因此,良好的软件设计可以保证软件维护与升级工作量的减少,而模块化的程序设计是一种很好的方法。

图1 肌电/诱发电位软件系统整体结构图

(3)使用方便

一个软件设计出来最终还是给用户使用的,因此友好的操作界面与简单的操作方法是评价一个软件成功的 重要部分。

(4)可复用性

独立的功能模块的设计可以减少软件的开发时间,降低开发与维护的成本。

3.软件系统整体结构

肌电/诱发电位软件系统是一个庞大的系统。根据临床研究与应用的需要,肌电/诱发电位软件系统可以分成以下八个部分:体感诱发电位软件系统、听觉诱发电位软件系统、视觉诱发电位软件系统、神经传导研究软件系统、肌电图软件系统、事件相关诱发电位软件系统、自律神经系统测试软件系统、术中监护软件系统。软件系整体统结构如图1。

如图1所示,各个子软件系统又分别包含不同个数的小子系统。为了保证整个软件系统的可扩展性与临床使用的灵活性,各个子系统中的小子系统既能够由主系统调用,又能够独立于主 系统单独运行。体感诱发电位软件系统主要研究用于确定周围神经肌肉系统和中枢神经系统的功能状态及可疑病变,检出亚临床病灶,对病损精确定位。对周围神经疾病、脊髓病、脱髓鞘病、颈椎病、糖尿病、各类神经损伤、康复治疗评价、感觉及运动功能评价 等的诊察确定。听觉诱发电位软件系统主要研究用于听力障碍的确诊、定位诊断;评估患者从外耳到脑干听通路的功能,常用于新生儿及婴幼儿听力检查、器质性聋和功 能性聋的测定。视觉诱发电位软件系统主要研究从视网膜神经节细胞到视皮层的功能状态,提供对视通路的 客观检查方法。神经传导研究软件系统主要测试神经通路的状态。肌电图软件系统主要用于显示经过信号提取的肌电波形。事件相关诱发电位软件系统主要根据相关事件标记对 肌电波形分析。术中监护软件系统主要对术中需要监测的EMG、EP等进行保存回放、预警、报警。下面结合临床应用研究,对临床上最常用的测试项目进行详细功能需求分析。

4.软件系统主要部分的设计方案与实现

如本文第二部分所述,软件系统的各个小子系统都被设计成能够独立运行的独立模块,因此每个子小系统的设计思路大同小异。子小系统整体结构如图2,每个子小系统都应包含以下四个模块:

(1)可视化图形操作界面模块

(2)数据采集存储模块

(3)数据特征提取模块

(4)数据库模块

图2中关于数据的存储有两个方案,一个是图中标记为1的实线,另外一个是图中标记为2的实线。方案1的设计思路是存储从下位机采集上来的原始数据,方案2的设计思路是存储经过处理后的干净的数据。临床研究需要对原始数据进行分析,因此我们采用第一种方案。

图2 子小系统整体结构图

4.1 设计思想

本软件系统是采用Microsoft公司的基础类库MFC来进行开发的,该类库提供一组通用的可重用的类库供开发人员使用。MFC是面向对象程序设计与Application framework的完美结合,它将传统的API进行了分类封装,并且为用户创建了程序的一般框架,简单易用,能缩短开发的周期。利用面向对象程序设计的封装性和多态性,该软件系统采用模块化程序设计方法,将一系列功能封装成相应的模块,方便软件系统的维护与升级。另外,为了满足软件系统动态数据特性的要求,本系统拟采用动态数据处理方式,即根据初始设置的不同(例如通道数目、采样频率),动态的采集数据、保存数据、提取数据、显示数据。动态数据量的概念贯穿整个系统运行的始终。

4.2 可视化图形操作界面模块

可视化图形操作界面即软件系统的操作界面,是人机交互的窗口。可视化图形操作界面模块主要负责软件的所有人机交互功能及数据波形的显示与处理功能。它的功能是否强大及操作是否简便是评价整套软件系统成功与否的重要部分。该软件模需要实现的关键功能如表1。

4.3 数据采集存储模块

数据采集存储模块主要负责将从下位机接收的原始数据进行再处理,将其转换成一定数据格式的数据文件进行存储。该模块的设计有两个关键部分:1)下位机与上位机数据通信协议的设计;2)数据文件存储格式的设计。

(1)下位机与上位机数据通信协议的设计

该软件系统的通信协议包括上位机给下位机发的系统指令及下位机根据指令给上位机发送的数据包。上位机给下位机发的系统指令主要包括初始化时钟、数据采集通道数、采样频率以及相关刺激参数等,一般为了保证数据包的准确性,上位机与下位机之间还应做数据校验。下位机给上位机发的数据包包括详细的数据信息。

为了保证通信协议设计的灵活性和方便扩展升级,我们将下位机发给上位机的数据包设计成不定长度的数据包,即数据包的数据量大小根据初始设置(采样频率与采集通道数目这两个参数决定数据包数据量的大小)的不同而不同,还可以灵活的添加或删除数据包信息,但每个数据包必须包含一定时间的数据量,例如在高采样频率下,每个数据包包含1ms时间的数据量。下位机与上位机通信协议的实现如下:

//数据传输接口:数据包的长度不固定,可变,每个包包含ms的数据量

typedef struct _TRANSFER_EPEMG_DATA

{

BYTE VersionLength;

//版本号与首部长

BYTE DataType;

//数据类型

BYTE SampleRate;

//采样频率

BYTE ChannelNum;

//通道数目

SYSTIME SysTime;

//系统时间:自定义时间结构体

WORD **ChannelData;

//通道数据:动态数据量

WORD EventMark[8];

表1 软件模需要实现的关键功能

表2 数据文件存储格式

//事件标志

}TRANSFER_EPEMG_DATA;

(2)数据文件存储格式设计

数据的存储与读取是整个系统的重要部分。首先,文件格式要能适应不同数据量的文件存储,例如在一次数据采集过程中数据量的大小是采样频率100KHz,通道数目是8通道,而在另外一次采集过程中,采样频率为50KHz,通道数目为4通道。文件格式要适应这种存储与读取不同数据量的能力。其次,存储的数据要方便读取。详细的数据信息以及精确而快速的数据访问能力是评价该文件系统是否能满足要求的关键。数据文件存储格式设计如表2。

这里一个文件被划分为若干数据块,各数据块对应相应的地址,通过寻址可以方便的访问数据。其中,Device block(设备快)包含该文件的文件头信息以及Control block(控制块)的信息,而Control block包含各控制子块的地址信息,各控制子块又相对应包含各Waveform block(波形块)的地址信息。一个数据文件的存储容量应该控制在一定大小之内,因此m、n的大小视具体情况而定。

在设计文件数据结构时,我们必须将文件中的数据格式设计成一维的动态数组。因为在计算机中给二维数组动态分配的内存空间是不连续的,而对文件的写数据操作需要连续的内存空间。如果将文件中的数据设计成二维动态数组,那么写文件操作将不会成功,读取数据时将发生访问内存空间出错的错误。因此,在进行数据存储时必须将从下位机接收的二维数组数据转换成一维数组,而在读取文件数据时必须将一维数据再转换成二维数据进行处理。

(3)数据采集存储模块数据处理流程图

数据采集存储模块数据处理流程图如图3所示。流程图中每次处理的数据量为下位机给上位机发送的数据量,一般是N个数据包,N为正整数,大小视具体情况而定。在一次数据采集过程中,由于数据包数据量的大小是由采集前设定的参数动态决定的,因此文件数据块的大小也是采集前动态确定的,但是每个文件数据块都包含一定的时间长度的数据量。为了节省计算机内存空间,每个文件数据块的内存空间都是在运行时动态创建的,存满之后就释放内存空间。图3中的外循环指的是N个数据包的循环,内循环指的是每个数据包内部包含一定时间点数的数据循环。

4.4 数据特征提取模块

图3 数据采集存储模块数据处理流程图

图4 数据特征提取模块数据处理流程图

数据特征提取模块主要负责原始数据的滤波消噪以及从强干扰中提取微弱肌电/诱发电位信号,它是整个数据处理流程中的关键部分。关于肌电/诱发电位信号的少次或单次提取,国内外有很多学者已经开始了这方面的研究。总的来说,现有的单次提取方法可以分成两类:第一类是各种基于模板的线性时间不变(linear time invariant,LTI)模型。第二类是一些试图重建EP的方法。然而在临床实践中,平均法尽管存在一些显而易见的不足,但它仍然是最常用的分析方法。其中原因不仅涉及平均法操作的简单性和产生数据的连贯性,也与神经生理学家对复杂技术的了解和应用有限、对先进技术的性价比不甚清楚有关。本文中笔者拟采用常规IIR滤波结合加权平均叠加方法来设计该模块。数据特征提取模块数据处理流程图如图4。

在对数据进行处理时,一般是处理从刺激点开始的数据,但是为了满足IIR滤波的需要,我们会对刺激点前一段时间的数据进行处理。滤波时处理的数据量一般为一个数据包大小的数据量。由于在一次数据采集过程中数据包的数据量大小是随初始设置的不同而不同的,因此数据处理时的数据接口也应该是动态的,设计数据接口时必须满足数据量动态变化的需求。数据处理完用来显示的数据必须是从刺激点开始的数据。

4.5 数据库模块

数据库模块主要负责整个系统信息的综合管理,包括信息的存储与读取。这里信息主要包括病人信息、医生信息、病人数据文件信息、病人报告信息。

5.结语

本方案目前已经通过了软件测试,测试结果表明:该方案满足了客户对肌电/诱发电位采集软件系统必须适应数据量动态变化的需求,实时性强,数据处理效率高。不定数据长度的通信数据包的设计,增强了系统的健壮性,方便系统升级扩展。动态文件数据结构与算法接口的设计满足了系统对不同数据量自适应的智能化操。

猜你喜欢
诱发电位下位肌电
盆底肌电刺激联合盆底肌训练治疗自然分娩后压力性尿失禁的临床观察
产后早期联合应用盆底肌电生物反馈仪、电刺激、针对性护理对盆底肌功能恢复的影响
听觉诱发电位在法医学上的应用价值
基于CNN算法的稳态体感诱发电位的特征识别
发射机房监控系统之下位机
经皮神经肌电刺激治疗上肢周围神经损伤的疗效
脑诱发电位的影响因素及临床应用
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
脑干听觉诱发电位对颅内感染患儿的诊断价值