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
   113   114   115   116   117   118   119   120   121   122   123