技术文章和通讯

开发检测算法以减少重症监护病房的误报

作者:捷克科学院科学仪器研究所Filip Plesinger


在重症监护病房(icu),来自心电图仪、脉搏血氧仪和其他病人监测设备的假警报是一个严重的问题。一项研究发现,高达86%的重症监护室警报是假的1,另一项研究表明,对患者管理重要的比例小于10%2.假警报的噪音会干扰患者的睡眠,假警报的频率会导致临床工作人员对警报脱敏,导致反应时间变慢。

最近的一项PhysioNet/Computing in Cardiology挑战旨在减少ICU假警报的发生率。竞争对手的任务是开发算法,能够区分ICU监控设备记录的信号中的真假警报。

我和同事在MATLAB中开发的算法®在挑战赛实时组中获得第一名,回顾组中获得第二名。我们的算法产生的真阳性率(TPR)和真阴性率(TNR)分别为92%和88%。

物理/计算在心脏病学挑战目标和要求

2015年的挑战重点在于准确检测五种心律失常:

  • 心搏停止- 4秒或更长时间内没有心跳
  • 心动过缓-连续五次心跳的心率低于每分钟40次(bpm)
  • 心动过速-连续17次心跳的心率高于140 bpm
  • 室性心动过速-五次或更多心室跳动(从心室而不是心房开始的跳动),心率高于每分钟100次
  • 心室扑动或纤颤——持续4秒或更长时间的纤颤性心律

研究小组从Physionet数据库以250 Hz频率采集了750份ICU数据,记录时间为5分钟。每个记录包括两个心电通道和来自ABP监测器、PPG设备或两者的信号。

提交给PhysioNet/CinC挑战的算法被分为两类:实时和回顾性。在实时类别中,评估了算法在触发实际警报前仅使用可用数据正确识别真假警报的能力。在回溯类中,该算法可以使用警报触发后最多30秒的额外数据。

挑战赛的组织者对提交的算法进行了测试,测试记录了500段录音,这些录音之前没有向参与者透露。这些算法是根据一个奖励真阳性和真阴性、惩罚假阳性和假阴性的公式打分的。所有算法都是在国际计算心脏病会议上提出的。大会结束后,组织者宣布了挑战的“后续”阶段,鼓励参赛者进一步改进算法。后续阶段于2016年2月结束。

选择方法

虽然参与者被允许用他们选择的任何语言编写算法,但组织者通过将数据集作为MATLAB文件提供,并提供用MATLAB编写的示例检测算法和免费的MATLAB许可证,为MATLAB提供了完整的支持。我通常用C#或Java编程金宝app®我刚接触MATLAB,但我决定使用MATLAB,因为它能让我专注于算法开发。我需要的许多功能都是现成的。例如,当我需要生成一个直方图、计算一个快速傅里叶变换(FFT)或应用一个有限脉冲响应(FIR)滤波器时,我所要做的就是调用适当的MATLAB函数。

查找和消除无效数据

这项挑战最令人惊讶——也是最令人痛苦——的方面之一是ICU监测设备产生的信号状况不佳。信号质量差不是生理网的故障;这是一种常见的情况,可由患者移动、接线问题、导线错位、设备配置错误和许多其他问题引起。信号质量差的一个症状是饱和,当波形在其最高振幅处变平时会导致失真(图1)。

图1所示。一种饱和信号,其值被截断后显示失真。该算法可以在类似的信号中检测QRS。

为了最小化饱和和信号噪声的影响,我的MATLAB算法必须识别并消除输入信号中的无效数据。这些算法分析了两秒钟内每个信号的统计特性。对于每个区块,将最大振幅、最小振幅和标准偏差与有效数据的既定限值进行比较。这些算法通过检查70-90 Hz频率范围内信号的振幅包络来识别高频噪声区域。这些算法通过计算信号幅度的直方图并将直方图的第一个和最后一个存储单元的值与中间存储单元的值进行比较来识别信号饱和。

剩余的检测心跳的算法忽略了任何被识别为无效的数据。因此,我必须调整无效数据检测算法,使其不会消除太多数据。(如图1所示,饱和信号可能仍然包含有意义的信息。)

检测QRS波群

在心电图中,心跳的特征是从基线开始的三个连续的偏移(图2)。这些偏移统称为QRS复合体,反映了心室的激活。它们是诊断心跳停止、心动过缓和心动过速的重要标志。

图2。ECG信号的QRS复合体。

为了检测心电通道中的QRS复波,我们开发的算法使用Signal Processing Toolbox™中的傅立叶变换函数在三个频率范围内计算振幅包络。通过分析和比较这三个包膜的幅值,该算法可以检测QRS复合体,区分正常和心室的心跳,并滤除心脏起搏器刺激引起的假QRS复合体。

检测PPG和ABP通道中的QRS复合物需要不同的方法。对于这些信道,算法应用信号处理工具箱中的一个简单的低通滤波器,然后识别滤波信号中的局部极小值。该算法对每个最小值的任意一侧的信号进行线性插值,并检查得到的直线的斜率,以确定最小值是否来自QRS复形。

检查正常的心律

QRS复形检测算法的输出是每个QRS复形的R峰在每个信号的最后10-16秒内出现的一组时间。(我们没有分析整个五分钟的录音;Physionet Challenge要求,发出警报的事件必须在每个文件的第300秒的10秒内开始。)从R峰值数组中,算法计算RR间隔,它测量两次连续心跳之间的时间。

为了检查正常的心律,算法调用Statistics和Machine Learning Toolbox™函数对RR间隔进行统计分析。除了对间隔进行求和和计算平均值和标准差外,算法还计算最小和最大心率。他们将所有这些计算的结果与正常节奏的既定界限进行比较,以确定节拍序列具有合理的QRS复杂分布。如果其中一个可用的通道——ECG、PPG或ABP——通过了这项测试,则认为心率正常,并报告错误警报。仅这一分析就揭示了训练数据中大约35%的假警报。

评估警报

如果算法在所有通道上检测到心脏异常活动,下一步就是证实或否认ICU设备报告的警报。

心跳停止的测试使用投票算法,其中每个通道是由其无效率加权。无效率较低的通道对结果的影响较大。该算法将每个信道的信号分成3.2秒的片段。对于每个片段,算法更新一个结果向量R,添加任何没有心跳的通道的加权投票值,减去任何检测到心跳的通道的加权投票值。当结果向量R中的任何值为正值时,算法声明它已识别出心跳停止(图3)。

图3。两个心电信号和一个PPG信号显示停搏。投票在结果向量R中累积,其值为正值,反映一致认为没有心跳

心动过缓、心动过速和室性心动过速的测试使用最可靠的通道(通常是ECG)的RR间隔来计算bpm。如果心率低于每分钟46次,算法报告心动过缓。如果心率超过130 bpm或95心室bpm,算法分别报告心动过速或心室过速。

最后一项检查是心室颤动,或称扑动。纤颤鉴定不依赖于QRS检测结果,因为当心脏处于纤颤时,没有QRS复合体。相反,该算法使用信号处理工具箱对移动窗口进行短时傅里叶变换。然后寻找高于2hz的频率峰值,这是纤颤或颤振的指示(图4)。

我们考虑使用机器学习方法对心律失常进行分类,但由于两个原因选择了传统的统计方法:对于数据中的哪些特征可用于确认或拒绝特定警报,我们拥有良好的现有领域知识,机器学习算法通常更难在硬件中实现和校准,这对于在ICU中部署是必要的。

图4。心室颤动的时频分析。在3-6Hz范围内的频率峰值表明纤维性颤动或颤振。

在心脏病学挑战赛中赢得PhysioNet/Computing

在开发算法后,在PhysioNet/Computing in Cardiology Challenge组织者提供的训练数据上测试它们,并对它们进行优化,以最大化数据上的性能,我将它们提交给评委。当我的算法在500个记录的测试集上运行时,它们正确地分类了92%的真警报和88%的假警报。在244个参赛作品中,他们在竞赛的实时部分获得了最高的总分。在挑战的后续阶段,我们的结果更高,我们在实时类别中获得了最高分。

我和我的同事们期待着看到这些算法中的技术在硬件上得到应用,并在ICU中使用,以减少误报。

关于生理网

成立于1999年,是美国国立卫生研究院资助的复杂生理信号研究资源,生理网在生物医学领域的数据和软件资源中取得了卓越的地位。其数据档案PhysioBank是世界上第一个,也是世界上最大、最全面、应用最广泛的时变生理信号和高分辨率临床ICU数据存储库。其软件集合PhysioToolkit支持PhysioBank和类似数据的探索和定量分析,并提供了一系列记录良好、经过严格测试的开源软件,可在任何平台上运行。其孵化实验室PhysioNetWorks于2011年成立,允许合作研究人员在将其贡献给PhysioNet进行公开分发之前,安全且私下地共享和研究他们自己的数据和软件。金宝app

PhysioNet资源可在web上免费获得,并在ODC公共域奉献和许可v1.0下提供。PhysioNet由国家普通医学科学研究所(NIGMS)和国家生物医学成像和生物工程研究所(NIBIB)支持,NIH授权号为2R01GM104987-09。金宝app

1S.T. Lawless,“狼来了:儿科重症监护室的假警报,”暴击治疗地中海1994;22(6): 981 - 985。

2C.L.Tsien,J.C.Fackler,“重症监护病房现有监护仪预后不良,”暴击治疗地中海,25(4)(1997),第614-619页

发布于2016 - 93063v00

查看相关功能的文章

查看相关行业的文章