发明内容
鉴于上述问题,本发明的目的在于提供一种四维心电图诊断仪的实现方法及系统。
一种四维心电图诊断仪的实现系统,包括设备接口模块、信号采集处理模块、心电信号滤波模块、采集心电图显示模块、档案文件管理模块、综合心电图显示模块、二维心电图显示模块、三维心电图显示模块、教学演示模块、诊断报告打印模块、心电参数提取模块、自动诊断模块、心电自动识别模块、用户操作界面模块和软件安全管理模块;
设备接口模块是控制采集设备和从采集设备接收心电采样数据;
信号采集处理模块是完成将采集的信号进行检验、结构重组、滤波、存储、提交显示、报错任务,为后续的处理做数据准备;
心电信号滤波模块是实现对所有心电信号的滤波需求;一方面在心电信号采集过程中进行实时滤波;另一方面是在显示和打印过程中对已保存的原始未滤波的心电信号进行滤波;
采集心电图显示模块是在屏幕中显示心电信号采集过程;主要有15导联动态刷新的心电图波形12导Wilson和3导Frank导联体系的XYZ心电信号显示、接收、处理,与采集相关的用户菜单,工具条操作命令和动态信息项目的更新,电子时间牌,动态心率显示,信号异常标志;
综合心电图显示模块实现并在屏幕上显示以时间轴+线性表达一维心电图(zV-ECG)和以时间轴+平面表达的心电信号(时间心向量图(T-VCG)、变向时间心向量图(DCT-VCG)、连续心向量图(C-VCG)、分解/放大心向量图(D/A-VCG))的幅度、角度和时间按25、50、75、100、200mm/s在坐标上的变化;
除了显示图形外,本模块还提供自动和人工标记、修改、选择、去选择、删除心动周期识别的功能;
二维心电图显示模块从屏幕窗口显示所指定的四个平面心向量图(VCG),即额面(F)、横面(H)、右侧和左侧面(RS/LS);
三维心电图显示模块提供一个或多个指定的心动周期在屏幕窗口显示三维心向量图3D-VCG,是一个可人机交互的三维图形窗口;
诊断报告打印模块提供所有诊断报告:文字、图表和彩色图形的打印功能;
心电参数提取模块是指记录到的心动周期中对心脏生物电信号参数的提取,如时间、空间、瞬间、间期、方位、振幅、角度、比值、面积、体积、形态参数,通过这些参数的定量定性变化,为心电学诊断提供依据;
心电自动识别模块是指从时、空域自动识别一维、二维和三维和四维心电的各种波形,以实现心电参数提取的自动化、高效化及客观性、全面性、准确性、细致性、直观性和可视性;
智能自动诊断模块根据上述的心电数据采集、提取和识别(人工+自动),按照心血管疾病的特点进行指标设置、识别、存储、分类、提取、定性、定量和特有的三维心电专家智能诊断;诊断包括:文字诊断,一、二、三维、四维图形诊断和可视化图形诊断;
用户操作界面模块是一系列模块的总称;非一个单独的模块,而是涵盖了所有公共界面模块和其它模块专用的界面代码部分,菜单、按钮的响应处理函数,工具条、状态条的显示控制代码,各种对话框的专用模块。
设备接口模块与信号采集处理模块连接,信号采集处理模块连接用户操作界面模块和心电信号滤波模块;
心电信号滤波模块连接用户操作界面模块和档案文件管理模块;
诊断报告打印模块连接信号采集处理模块、档案文件管理模块、自动诊断模块、用户操作界面模块、心电参数提取模块和心电自动识别模块;
用户操作界面模块连接采集心电图显示模块、综合心电图显示模块、二维心电图显示模块、三维心电图显示模块和教学演示模块;
采集心电图显示模块、综合心电图显示模块、二维心电图显示模块、三维心电图显示模块和教学演示模块连接心电参数提取模块和心电自动识别模块。
一种四维心电图诊断仪的实现方法包括:
一种四维心电图诊断仪的实现方法是建立在医学专家智能诊断的应用软件系统。该系统以计算机操作控制和运算处理为核心,通过时空域集成生理心电信号采集、互联网络、三维图形显示、彩色打印等相关辅助技术,实现全方位、全角度、可视化、智能化、自动化、四维心电诊断分析功能。
一种四维心电图诊断仪的实现方法,其特征在于数字信号采集板下位机流程步骤是在心电信号硬件采集板上的程序流程,其作用是将采集来的模拟信号进行数字化后传输到上位机;
上位机处理流程是心电图仪主计算机的处理流程,上位机通过标准设备IO功能获得从USK设备(数字信号采集板下位机)接收到的数据,然后进行一系列后续处理,完成心电信号滤波步骤、存储步骤、综合心电图显示流程显示步骤,从而完成心电图数据的采集。
具体实施方式
对本发明的实施例进行说明。
显然,本领域技术人员基于本发明的宗旨所做的许多修改和变化属于本发明的保护范围。
四维心电图诊断仪(4D-ECGz-1)软件实现是基于WINDOWS操作系统的四维心电图专家智能诊断的应用软件系统。该系统以计算机操作控制和运算处理为核心,通过时空域集成生理心电信号采集、互联网络、三维图形显示、彩色打印等相关辅助技术,实现全方位、全角度、可视化、智能化、自动化、四维心电诊断分析功能。即:
1)、为用户提供Wilson与Frank导联体系心电信号的同步采集、数据处理、档案存储、显示描记以下图形:
1、综合心电活动图(Synthesize electrocardiogram,SECG);包括78个导联图形,即:12导心电图(ECG)、3导正交心电图(O-ECG)、9导时间/变向时间/连续心向量图(T-VCG/DCT-VCG/C-VCG)、54导向量心电图(zV-ECG)。
2、一维心电图(One dimensional electrocardiogram,1D-ECG)。包括:向量心电图(zV-ECG);
3、二维心电图(Two dimensional electrocardiogram,2D-VCG)。包括:时间心向量图/变向时间心向量图/连续心向量图(Timed vectorcardiogram/Direction changing timed vectorcardiogram/Continual vectorcardiogram,T-VCG/DCT-VCG/C-VCG);
4、三维心电图(Three dimensional electrocardiogram,3D-ECG)。包括:立体心向量图(Three dimensional vectorcardiogram,3D-VCG);
5、3D综合心电图(Three dimensional synthetic electrocardiogram,3D-SECG)。包括:向量心电图(zV-ECG)、时间/变向时间/连续心向量图(T-VCG/DCT-VCG/C-VCG)、平面心向量图(VCG)和立体心向量图(3D-VCG);
6、立体心向量图(Three dimensional vectorcardiogram,3D-VCG);
7、传统12导心电图(electrocardiogram,ECG);
8、正交心电图(Orthogonal electrocardiogram,O-ECG);
9、平面心向量图(Vectorcardiogram,VCG);
10、教学图形演示系统。
2)、基于对上述所有心电图形的自动识别系统和专家智能诊断系统。
3)、实时、同步、转换、组合、分解、放大、全方位、全角度旋转显示、观察、打印和有线/无线互联/网络传输各种图形;进而为用户从时空领域提供更加广阔的心电观测视野和更加客观、完整、准确、细致、直观的心电分析手段。
的心电分析手段。
4)、对教学图形演示系统的编制、设定、动画、演示和说明。
5)、其他功能。
本应用软件基于VS.NET软件平台开发,用C++语言编写,程序框架为基于MFC的单文档模板窗口框架。软件基于的主要基础库是Windows API接口,MFC类库,C运行库以及C标准库。
软件由多个功能模块构成,模块整体结构如图1所示。
为了便于理解,图中的模块是按照功能进行粗略划分的,实际上每个模块的规模差距是很大的,有的模块甚至包含了许多较大的子模块。由于图中模块几乎两两之间都有联系,因此用一条联系多个模块的线条简要表达了它们之间的所有关系。
设备接口模块功能——是控制采集设备和从采集设备接收心电采样数据。该模块由与采集硬件进行通信的USB设备驱动和API接口函数两部分软件构成。
信号采集处理模块功能——是完成将采集的信号进行检验、结构重组、滤波、存储、提交显示、报错等任务,为后续的处理做数据准备。
心电信号滤波模块功能——是通过软件实现对所有心电信号的滤波需求。一方面在心电信号采集过程中进行实时滤波;另一方面是在显示和打印过程中对已保存的原始未滤波的心电信号进行滤波。滤波模块必须支持多种频率的低通、高通、带通、带阻功能,并通过设置界面对滤波方式进行灵活选用。
采集心电图显示模块功能——是在屏幕中显示心电信号采集过程。主要有15导联动态刷新的心电图波形(12导Wilson和3导Frank导联体系的XYZ心电信号)显示、接收、处理,与采集相关的用户菜单,工具条操作命令和动态信息项目的更新,如电子时间牌,动态心率显示,信号异常标志等。
档案文件管理模块功能——具备所有的心电图病历档案。包括:档案文件创建、定位读写、定位修改、拷贝、修改和删除等基本功能。同时具备浏览用户档案信息,过滤查找用户档案,导入导出用户档案,编辑删除用户档案,档案归类和档案目录等功能。
综合心电图显示模块——实现并在屏幕上显示以时间轴+线性表达(一维心电图)和以时间轴+平面表达的心电信号的幅度、角度、面积和时间(按25、50、75、100、200mm/s)在坐标上的变化。可以对1~78个导联进行实时、长时、同步、组合、转换、观察和描记,即:12导心电图(ECG)、3导正交心电图(O-ECG)、3导时间心向量图(T-VCG)、3导变向时间心向量图(DCT-VCG)、3导连续心向量图(C-VCG)和54导向量心电图(zV-ECG)。
除了显示图形外,本模块还提供自动和人工识别、标记、修改、选择、去选择、删除心动周期识别的功能。
二维心电图显示模块——从屏幕窗口显示所指定的四个平面心向量图(VCG),即额面(F)、横面(H)、右侧和左侧面(RS/LS)。可以细致显示单一心动周期或多个周期的整体、分解和放大的ALL、P、QRS、T、U环体。并可通过双击这些环体后跳转进入三维心电显示窗口,以获取全方位、全角度、客观、全面和细致的观测。
三维心电图显示模块——提供一个或多个指定的心动周期在屏幕窗口显示三维心向量图(3D-VCG),这也是本项技术的特点之一。是一个可人机交互的三维图形窗口,三维心向量图形所处的坐标系可以用鼠标拖动,随意缩小放大,同步全方位全角度自由旋转且无盲区;三维坐标系设置多种背景方式可供选择如:XYZ三轴、彩色包络线、彩色交叉平板、圆形中空的带有坐标的彩色交叉板和三维透明虚拟心脏等。同时,本窗口还提供了该心动周期的一维正交心电图、二维平面心向量图、心肌生物电扩布的过程动态演示和相应的数据对照显示。
教学演示模块——该模块通过人机互动交互的方式帮助人们理解、认知:什么是三维心电图;立体、平面和直线表达的三者关系;传统的心电图是如何产生的,其利弊、主次的根本区别是什么和心电学今后的发展方向等等。
屏幕窗口同时显示四个画面:立体心向量图和三个平面的(F、H、RS)心向量图。每个平面的导联个数和角度可以根据需要进行设置,最多可设置18个观测角的向量心电图(zV-ECG),三个面可显示出54导向量心电图(zV-ECG)。同时,不仅在各平面皆可动态演示一维心电图的生成过程;而且还提供了一个自由导联指针,通过鼠标自由地在360度范围内转动,当指针指向某个角度时就显示出那个导联角度的向量心电图(zV-ECG)。
诊断报告打印模块——提供所有诊断报告和彩色图形的打印功能。目前提供十一种类型的图形报告:12导心电图(ECG)、正交心电图(O-ECG)、向量心电图(zV-ECG)、时间心向量图(T-VCG)、变向时间心向量图(DCT-VCG)、连续心向量图(C-VCG)、分解/放大心向量图(D/A-VCG)、平面心向量图(VCG)、立体心向量图(3D-VCG)、立体影像心向量图(3DI-VCG)和综合心电活动图。诊断报告:是采用文字、报表和图像方式。由于本模块既要支持上述各种图形的随意组合及人机交互的作图功能,又要提供相应的诊断报告,因此本模块实际上是一个庞大而复杂的模块,也是代码量最大的模块之一。
心电参数提取模块——是指记录到的心动周期中对心脏生物电信号参数的提取,如时间、空间、瞬间、间期、方位、振幅、角度、比值、面积、体积、形态等参数,通过这些参数的定量定性变化,为心电学诊断提供依据。
心电自动识别模块——是指从时、空域自动识别一维、二维和三维心电的各种波形,以实现心电参数提取的自动化、高效化及客观性、全面性、准确性、细致性、直观性和可视性。
自动诊断模块——根据上述的心电数据采集、提取和识别(人工+自动),按照心血管疾病的特点进行指标设置、识别、存储、分类、提取、定性、定量和特有的四维心电专家智能诊断。诊断包括:文字诊断,一、二、三维图形诊断和可视化图形诊断。
用户操作界面模块——是一系列模块的总称。非一个单独的模块,而是涵盖了所有公共界面模块和其它模块专用的界面代码部分,如菜单、按钮的响应处理函数,工具条、状态条的显示控制代码,各种对话框的专用模块等等。本模块特点是:模块涉及面广,模块之间的交互关系错综复杂,代码分散。
软件安全管理模块——是通过软、硬件加密措施,保障该专业软件包的运行环境,防止该软件的非法拷贝和盗用。
实施例1:一种四维心电图诊断仪的实现方法,采集心电图显示程序流程是由上位机中的两个进程的流程构成的,一个流程用于接受用户的控制命令,流程运行于主程序消息循环进程中,另一个流程动态显示采集的心电图,流程运行于心电数据接收子进程中,与信号采集处理流程共用一个子进程。
主流程的所有操作,包括开始与结束,都是由主程序的消息循环启动的。流程由启动操作开始执行,由结束操作终止执行,在启动与结束之间,可以任意进行其它操作。
如图2采集心电图显示程序流程图所示;
步骤a-1:进入开始程序流程;取心电数据片段;计算图形y轴偏移;将波形作图到带背景的位图;用新的心电位图替换屏幕;
步骤a-2:判断屏幕回卷?若是,回卷处理;转向步骤a-3;若否,转向步骤a-3;
步骤a-3:判断幅度速度变化?若是;变化处理;结束;若否;结束。
如图3采集心电图显示控制流程图(主进程);
步骤b-1;通过用户界面资源将用户命令进入主程序消息循环选择;
步骤b-2;进入主程序消息循环选择;选择主程序消息循环开始进入步骤b-3;选择主程序消息循环的其它操作进入步骤b-4;选择进入主程序消息循环的结束程序进入步骤b-5;
步骤b-3:主程序消息循环开始;提供病员资料信息输入界面,窗口界面切换到采集窗口,显示初始化,启动采集显示子进程;返回步骤b-2;进入主程序消息循环选择;
步骤b-4:进入主程序消息循环的其它操作;幅度比例调整;走速调整;开始磁盘记录;结束磁盘记录;滤波选择;本步骤的各个程序完成后均返回步骤b-2;
步骤b-5:进入主程序消息循环的结束程序;结束磁盘记录、创建病历档案、关闭采集显示子进程、打开新档案并切换到心电图窗口、结束返回步骤b-2。
如图4心电信号滤波程序流程图所示;
步骤c-1:开始;
步骤c-2:滤波变量初始化;
步骤c-3:数据缓冲;
步骤c-4:选择滤波参数数组;
步骤c-5:IIR滤波;
步骤c-6:滤波延迟校正;
步骤c-7:结束。
如图5二维参数IIR滤波程序流程所示;
步骤d-1:开始;
步骤d-2:心电数据循环;心电数据循环结束转至步骤d-8;
步骤d-3:取数据;
步骤d-4:参数个数循环;参数个数循环结束转至步骤d-7;
步骤d-5:分母系数求和生成多级中间变量;
步骤d-6:分子系数求和生成多级结果变量;转至步骤d-4;
步骤d-7:取最终结果;
步骤d-8:结束。
为了提高滤波速度,心电信号滤波采用了IIR无限脉冲响应滤波方式。IIR滤波的算法并不复杂,关键是在滤波参数的计算上,不同的滤波,仅仅体现在选择不同的滤波参数。滤波参数是事先产生的,由于其计算非常复杂,自己无法计算,只能用MATLAB工具产生的,根据不同的频段,本流程事先分别生成了巴特沃兹、切比雪夫和椭圆滤波算法的参数以供选择。
由于IIR滤波的延迟性比较大,流程考虑了延迟校正,使延迟的数据回复到应有的时间位置上。
二维IIR滤波流程是前面滤波主流程中的一个模块。展开了IIR滤波的具体过程,滤波的算法完全遵照MATLAB工具提供的算法框图,没有原理可讲,只能照办。
如图6所示,综合心电图显示控制程序流程(主程序)如下;
步骤k-1;用户界面、定时器资源将触发命令进入主程序消息循环选择;
步骤k-2;进入主程序消息循环选择;选择主程序消息循环开始进入步骤k-3;选择主程序消息循环的其它操作进入步骤k-4;
步骤k-3:主程序消息循环开始;切换到综合心电图窗口;显示、用户界面初始化;打开动态演示定时器;返回步骤k-2;进入主程序消息循环选择;
步骤k-4:进入主程序消息循环的其它操作;导联角类型变换处理;波形数量调整;振幅比例调整;波形长宽比调整;演示速度调整;角度值显示选择;2D向量显示选择;3D向量显示选择;网格显示选择;投影线显示选择;投影对照方式变换;自由导联方式转换;生成演示开关控制;导联角设置对话框;心动周期调整对话框;旋转自由导联鼠标响应;
显示刷新;综合心电图显示流程;
本步骤的上述各个程序完成后均返回步骤k-2;
步骤k-5:外来调用;停止动态演示显示;关闭定时器;显示结束处理;结束。
如图7所示,综合心电图显示程序流程(主程序)步骤如下:开始;显示参数初始化;不同导联类型的角度处理;确定不同刷新类型的取数据范围;根据幅度确定版面分布参数;设定投影对照方式参数;设定自由导联方式参数;静态文字显示;自由导联显示处理;静态VCG线显示处理;静态波形线显示处理;静态投影线显示处理;3D最大向量显示处理;2D最大向量显示处理;动态图形角度、位置计算;动态文字显示处理;动态VCG线擦除处理;动态波形线擦除处理;动态投影点擦除处理;动态投影线擦除处理;动态VCG线显示处理;动态波形线显示处理;动态投影点显示处理;动态投影线显示处理;所有动态图形擦除区域计算;保存下次作图接续断点;结束。
综合心电图显示程序运行在上位机的主进程中。显示的用户控制流程和显示流程全部在主程序的消息循环中执行。
综合心电图显示流程的执行启动由用户的切换窗口动作引起,通过消息循环触发。流程的关闭部分的程序执行不是由消息循环直接触发,而是由用户的切换其它窗口动作引起,通过调用间接完成。
综合心电图的显示刷新有两个源头,一个是系统例行刷新,一个是定时器触发刷新,它们都通过消息循环来触发。
流程的其它操作均在启动操作和结束操作之间的时间段内进行,可以以任意次数和顺序进行操作。
综合心电图显示流程是包括在控制流程中的一个子流程,虽然也在主进程中运行,但由于其重要性,故将它单独描述。
由于显示流程内容较多,逻辑判别关系过于繁琐,很难在小页纸上表达,故在流程图中省略,可以将每个流程单元内部都看作具有逻辑判别。
如图8所示,信号采集处理程序上位机流程(主程序):
步骤h-1:开始;
步骤h-2:设备、文件句柄初始化;
步骤h-3:创建数据接收处理子进程;
步骤h-4:响应用户命令并设置控制状态;
步骤h-5:结束采集?;是;向子进程发送结束命令;
步骤h-6:等待子进程结束;关闭设备、文件句柄;
步骤h-7:将临时文件转为正式文件;结束。
如图9所示,信号采集处理程序上位机流程(子程序)
步骤i-1:开始;
步骤i-2:发出接收命令并等待;
步骤i-3:接收数据并装入预处理缓冲;
步骤i-4:数据放大倍数校正;
步骤i-5:数据滤波处理;
步骤i-6:心率、幅度等参数提取;
步骤i-7:数据存盘处理;
步骤i-8:调用显示模块刷新屏幕;
步骤i-9:是否结束?是;执行步骤i-10,否;返回步骤i-2;
步骤i-10:退出子进程;结束。
如图10,数字信号采集板(下位机)流程如下:
步骤f-1:开始;
步骤f-2:响应上位机的复位、传输命令;
步骤f-3:是否复位?;
步骤f-4:是;复位操作;否;将缓冲数据包装后通过USK发送;返回步骤f-2。
步骤g-1:开始;
步骤g-2:信号进行AD转换并循环缓冲;本步骤循环直至发现FIFO;
步骤g-3:将FIFO转至步骤f-4的将缓冲数据包装后通过USK发送步骤。
数字信号采集板(下位机)流程图10是在心电信号硬件采集板上的程序流程,其作用是将采集来的模拟信号进行数字化后传输到上位机。上位机是处理能力更强的计算机,能够将送来的数据进行更强大的后续处理。
整个流程是由两个微处理流程协同构成,一个是USK通信处理流程,一个AD转换处理流程,由于流程比较简单,就不再详细叙述。
上位机处理流程图8、9是心电图仪主计算机的处理流程,上位机通过标准设备IO功能获得从USK设备接收到的数据,然后进行一系列后续处理,完成滤波、存储、显示等功能,从而完成心电图数据的采集功能。
流程由多个进程完成,为了便于理解,将两个子进程的流程归并到一个子进程流程图,因此可以把采集流程看作是由两个进程完成。一个主进程和一个子进程。
主进程主要负责对用户操作的响应处理,如采集的启动和结束,采集过程中间的各种调节控制等。流程中的循环部分,在实际实现中,是采用Windows程序框架的消息循环来完成程序的循环响应。
子进程流程主要负责动态数据的校正、滤波、存盘、显示处理,它是一个进程内的大循环流程,流程的控制通过全局的状态变量来控制实现,这些状态变量,是由主进程的流程来改变的。子进程本身也是由主进程创建的,它在主进程的第二步被创建。
如上所述,对本发明的实施例进行了详细地说明,但是只要实质上没有脱离本发明的发明点及效果可以有很多的变形,这对本领域的技术人员来说是显而易见的。因此,这样的变形例也全部包含在本发明的保护范围之内。