心电图梯形图软件设计

心电图梯形图软件设计

摘要:本文介绍了以梯形图常用符号作为基本图形元素的心电图梯形图绘制软件的设计与实现方法,说明了图形元素的设计思想,列出了图形元素类的层次关系与结构。该软件应用面向对象的程序设计方法,以MicrosoftVisualStudio作为开发平台,以C++语言为主要编程语言,集心电图显示、梯形图的绘制与编辑、心电图与梯形图一体化输出、梯形图绘制过程回放等功能于一体。为心律失常的梯形图图解法的学习研究、资料创作等工作提供便捷的软件工具。

关键词:心电图;梯形图;图形元素

心电图的梯形图(LadderDiagram)是一代心电学大师ThomasLewis在1925年创用的,所以也称Lewis线。梯形图以线条图的方式表示心律失常的特征,它是分析心脏电活动关系的简单且精确的方法,可以阐明激动起源的部位,传导途径和时间,阻滞和干扰等[1]。它是复杂心律失常分析、理解的有力工具,在心电图学习、分析以及研究方面有着重要的作用。早期的梯形图绘制,是由绘图者在心电图图纸上直接完成的,后来逐步进化为采用计算机中的图像编辑软件来完成。但目前,仍缺乏直接用于绘制梯形图的专门工具,来取代繁琐、复杂的绘制过程。因此研发了一套专门的梯形图绘制软件,将梯形图常用符号设计为软件的基本图形元素,并将其与数字化的心电图相结合,辅以连接点结合、自动标尺等辅助功能,为绘制梯形图提供一个便捷的方法,既可以用作心电图梯形图图解法分析的工具,也可以成为绘制梯形图资料的工具。

1软件需求概述

梯形图绘制软件的主要功能包括:心电图数据的读取和选取、基于图形元素的梯形图绘制、梯形图结果保存及导出图片等,同时为了提高软件操作的方便性,实现自动标尺、图元自动连接等功能。该软件应用面向对象的程序设计方法,以MicrosoftVisualStudio作为开发平台,以C++语言为主要编程语言,结合MFC程序库进行开发。

2关键技术实现

2.1图形元素

梯形图用到多种图形符号,包括直线、虚线、折线、箭头、圆形等,为了使绘制梯形图更加简单,软件中将所需要的符号设计为图形元素,放置在绘图工具栏中,通过鼠标拖拽直接将符号添加到视图中。这些图形元素在视图中可以被选择、移动、缩放、剪切、复制、粘贴、删除,并且具有线条颜色、线条宽度等属性,以便于用户编辑使用。根据面向对象程序设计的原则,利用面向对象程序设计语言所具备的封装、继承和多态等特性,按照各个图形元素的形状特性,将图形元素抽象成基类和若干派生类。其中,基类具有标识、线条颜色、线条宽度等成员变量,以及绘制、移动等虚函数,派生图形元素重载这些虚函数,实现其特定方式的绘制显示、移动位置等功能。从基类派生出直线、三角形、空心圆、表栏线四个子类。直线类较基类增加了起点、终点等成员变量,线形的图形元素如正常传导、中断、差异性传导等,除了形状不同外,其他属性都与直线类相同,则从直线类派生出来。三角形类中定义边数、顶点数组等成员变量,矩形、五边形、六边形、星形与三角形都是多边形,只是边数不同,所以从三角形中派生出来。在三角形类的显示函数中将顶点数组中的顶点连起来,实现三角形的绘制,其他的多边形类不需要重载显示函数,只需改变边数变量即能完成自身的绘制。不应期(1)、不应期(2)、文本类都由矩形类派生出来。另外,在视图类中维护图形元素基类指针数组,将绘制梯形图时添加的图形元素指针存储在数组中,利用基类指针实现数组中图形元素的显示、移动等功能,而不必区分图形元素的具体类型。

2.2图形元素的连接

绘制梯形图时,需要将相邻线形元素的端点连接在一起,用鼠标操作很难精确处理。为了降低对鼠标操作精度的要求,将线形元素的端点以及圆形元素的圆心设置成连接点。以连接点为中心设定一个矩形范围,使用者在此矩形范围内按下鼠标左键,就将鼠标会自动定位到连接点上,从而选取到对应的端点,如图2(a)所示。其中“+”为鼠标指针。连接两个图形元素的时候,只需要将一个连接点拖拽到另一个连接点的矩形范围内,如图2(b)所示。软件就将两个连接点连接到一起,实现精确的定位和连接,使图形元素摆放的更准确、整齐。

2.3操作脚本记录

定义一个用来记录操作步骤的类,其主要成员变量有:操作类型(添加、删除、修改等)、索引(此图形元素在视图类中基类指针数组的索引)以及图形元素指针等,并在视图类中维护此操作类对象的指针数组,及当前操作在此数组中的索引。在进行图形元素的添加、修改、删掉等操作时,同时维护此数组及索引,实现操作脚本的记录功能,并且通过索引的增减操作,实现撤销、恢复功能。脚本工具记录了梯形图绘制的过程,可查看绘制的每一步骤,也可连续播放脚本记录,动态展示梯形图绘制过程,或用做标准绘图步骤的演示示范。

3结束语

该软件(如图3所示)将梯形图常用符号设计为软件的基本图形元素,并加入连接点结合、脚本记录等辅助功能,避免了繁琐、复杂的像素式的绘制过程,便于心电图梯形图绘制,使其成为心电图工作者进行心电图梯形图图解法分析、绘制梯形图资料的有力工具。

参考文献:

[1]吴祥.心律失常梯形图解法[M].杭州:浙江大学出版社,2006:11-12,65-68.

[2]张波.梯形图在心电图诊断心律失常教学中的应用[J].江汉大学学报(自然科学版),2011;39(2):91-92.

[3]王笑,刘智强,张克华.VC++实现CAD绘图程序开发的底层关键技术研究[J].新技术新工艺,2011;(5):52-54.

[4]杨军,周家纪.在VC++中实现图元对象的选取[J].物探化探计算技术,2003;25(2):183-187.

[5]袁枫.Windows图形编程[M].北京:机械工业出版社,2002.

[6]JeffProsise.MFCWindows程序设计[M].北京:清华大学出版社,2001.

作者:韩旭 单位:康泰医学系统(秦皇岛)股份有限公司研发中心