Page 118 - 201909数码世界9.9
P. 118
科技交流
基于 Qt 设计心电信号管理系统
李琳琳
摘要:针对目前心电信号研究缺少临床试验数据的情况,本文提出了使用国际公认的可作为标准的心电数据库作为心电算法
的输入,并为心电监护类系统和便携式心电监护仪等提供测试信号源。本文采用跨平台的 C++ 应用程序开发框架 Qt 来实现
系统,本系统不仅应用于 PC 机,还可应用于便携式心电监护仪,识读的心电信号经过 D/A 转换,模拟实际临床采集到的信号,
提供给心电监护系统进行仿真实验。
近年来心脏疾病已成为威胁人类生命安全的头号疾病。由 言,具有良好的封装机制,具有丰富的 API,如 Qt 提供的图形
于其无先兆、发展迅速、危险性高,对患者的危害极大,因此 视图框架、模型视图框架、动画框架等。本文设计的心电管理
心脏病的预防和诊断已成为目前国内外医学界的重要课题。近 系统具有很好的扩展性,不仅可以应用与 PC 机中用于心电算法
年来随着室速 / 室颤的识别、LOWNS 分类、HRV、QT、QTd、TWA 仿真的信号管理、查询和输入等,还可以移植到 linux 系 统应
等 理论检测算法的完善,为心电监护系统的研制打下了基础。 用与便携式心电监护仪,为心电监护设备提供信号源。
由于研制心电检测仪需要心电样本信号,而临床的实验数据很 2.1 Qt 的 MVC 框架
难采集,所以在理论研究阶段, 一般采用国际公认的标准心电 MVC 全称是 Model View Controller,是模型 (model) -
数据库作为样本信号。目前标准的心电数据库主要有美国麻省 视图 (view) -控制器 (controler) 的简称,是一种将业务逻
理工学院提供的 MIT-BIH 数据库,美国心脏学会的 AHA 数据库 辑和数据显示分离的方法。针对 Qt 有类似 MVC 模型的 model-
以及欧洲心电数据库。本文采用 Qt 设计语言,实现心电信号管 view 架构,其中 model 是 MVC 中的 model,view 是 MVC 中的
理系统 , 读取 MIT-BIH 数据库中的心电信号,经过 D/A 转换, view,而 MVC 中的 controler 在 Qt 中抽象出 delegate 来代替,
可直接输出到心电监护设备中,用于心电检测算法的验证。同 delegate 被用 来提供对 item 渲染和编辑的控制。
时可在上 PC 机实现心电信号的实时回放、波形检索浏览以及截 在本文中绘制心电波形需要使用 QGraphicsView、
取保 存重要数据片段。 QGraphicsScene 和 QGraphicsItem 等类来实现,提供一种类似
于 Qt model-view 的编程。多个 views 可以监视同一个 Scene,
1 心电数据格式 而场景包含多个具有多种几何外形的 items。QGraphicsScene
目前 MIT-BIH 数据库数据可免费获得,应用最为广泛。该 表示 QGraphicsView 中的场景,为管理大量的 2D 图形 item
数据库的数据是临床中采集的模拟信号转换后的数字信号。临 提供了一个管理界面,作为 items 的容器,它配合使用
床信号选取的样本很丰富, 基本涵盖了各种心脏病人的信息。 QGraphicsView 使用来观察 items。具有如下的功能:为管理大
以 MIT-BIH Arrhythmia Database 为例介绍数据格式。由 48 个 量的 items 提供一个快速的接口;传播事件到每个 item;管理
记录组成,每个记录时间是 30 分钟,每个记录由三个文件组成: item 的状态。通过调用 addItem 函数来将 Items 加入到场景中。
头文件 ( 扩展名 为 .hea),数据文件 ( 扩展名为 .dat),注释 可以使用众多的查找函数来获取特定的 items。所有的 item 查
文件 ( 扩展 名为 .atr),头文件标示出与它相关联的数据文件 找函数都以出栈序列返回。QGraphicsView 提供了视图部件,
的名字及其属性,以 ASCII 码方式存储;数据文件以二进制格 它可视化场景中的内容。可以连接多个视图到同一个场景,对
式存储心电信号原始数据;注释文件记录了心电诊断专家对信 这个相同的场景数据提供几个视口。视口部件是一个滚动区域,
号分析的结果。其中包括心跳节律、信号质量等,格式一般有 它提供了滚动条以对大场景进行浏览。如果使用 OpenGL,可以
MIT 和 AHA 两种。 调用 QGraphics View::setViewport() 来把一个 QGLWidget 设
为视口。 视图从键盘,鼠标接收输入事件,在发送这些事件到
2 基于 Qt 的关键技术实现 场景之前,会对这些事件进行适当的翻译 ( 把事件坐标转换成
本文以 C++ 为软件编程语言,采用 Qt 为基础类库,实现软 对应的场景坐标 )。QGraphicsItem 是场景中图形 items 的基类。
件的设计。Qt 是一种跨平台 C++ 图形用 户界面程序开发框架, QGraphicsView 提供了一些标准的、用于典型形状的 items。像
也可用于开发非 GUI 程序, 比如控制台工具和服务器。Qt 具 矩形 (QGraphics RectItem),椭圆 (QGraphicsEllipseItem),
有良好的跨平台特性,支持所有的 UNIX 系统,和 windows 平台, 文本 (QGraphicsTextItem) 等,本文绘制的心电波形图主 要
在嵌入式移动设备中应用也比较广泛。Qt 是一种面向对象的语 是自定义的曲线。
120... ...121