Technische Artikel

Entwicklung von Erkennungsalgorithmen zur Reduzierung von Fehlalarmen auf Intensivstationen

Von Filip Plesinger, Institute of Scientific Instruments of the Czech Academy of Sciences


Fehlalarme von Elektrokardiographen, Pulsoximetern und anderen Patientenüberwachungsgeräten stellen ein schwerwiegendes Problem auf Intensivstationen dar. Laut einer Studie sind 86 % der Alarme auf Intensivstationen Fehlalarme1. Eine weitere Studie weist darauf hin, dass weniger als 10 % der Alarme für das Patientenmanagement von Bedeutung sind2. Geräusche von Fehlalarmen stören den Schlaf der Patienten und die Häufigkeit der Fehlalarme führt dazu, dass das Pflegepersonal echte Warnungen weniger aufmerksam wahrnimmt und dementsprechend langsamer reagiert.

Im Rahmen des Wettbewerbs „PhysioNet/Computing in Cardiology Challenge“ suchte man nach Lösungen, um die Häufigkeit von Fehlalarmen auf Intensivstationen zu verringern. Die Teilnehmer erhielten die Aufgabe, Algorithmen zu entwickeln, die in den von Überwachungsgeräten auf Intensivstationen aufgezeichneten Signalen zwischen echten Alarmen und Fehlalarmen unterscheiden konnten.

Die Algorithmen, die ich zusammen mit meinen Kollegen in MATLAB® entwickelt habe, haben den ersten Platz in der Kategorie „Echtzeit“ und den zweiten Platz in der Kategorie „Retrospektive“ belegt. Unsere Algorithmen erreichten eine Richtig-positiv-Rate von 92 % und eine Richtig-negativ-Rate von 88 %.

Ziele und Anforderungen der „PhysioNet/Computing in Cardiology Challenge“

Der Wettbewerb im Jahr 2015 beschäftigte sich mit der genauen Erkennung von fünf Arrhythmien:

  • Asystolie – das Aussetzen der Herzaktion für mindestens vier Sekunden
  • Bradykardie – eine Herzschlagfrequenz von unter 40 Schlägen pro Minute (bpm) für fünf aufeinanderfolgende Schläge
  • Tachykardie – eine Herzschlagfrequenz von über 140 Schlägen pro Minute (bpm) für 17 aufeinanderfolgende Schläge
  • Ventrikuläre Tachykardie – Fünf oder mehr ventrikuläre Schläge (Schläge, die von der Herzkammer und nicht dem Vorhof ausgehen) mit einer Herzschlagfrequenz von mehr als 100 Schlägen pro Minute (bpm)
  • Kammerflattern oder -flimmern – Herzkammerflattern bzw. -flimmern von mindestens vier Sekunden

Die Teams untersuchten 750 fünfminütige 250-Hz-Aufzeichnungen von Intensivstationen der Physionet-Datenbank. Jede Aufzeichnung enthielt zwei EKG-Kanäle und -signale eines ABD-Überwachungsgeräts, eines PPG-Geräts (Photoplethysmograph) oder beider Geräte.

Die eingereichten Algorithmen des PhysioNet/CinC-Wettbewerbs wurden in zwei Kategorien unterteilt: „Echtzeit“ und „Retrospektive“. In der Kategorie „Echtzeit“ wurden die Algorithmen anhand ihrer Fähigkeit bewertet, ernstzunehmende und falsche Alarme nur mithilfe der vorliegenden Daten vor dem Auslösen des Alarms zu erkennen. In der Kategorie „Retrospektive“ verwendeten die Algorithmen zur Bewertung zusätzliche Daten, die bis zu 30 Sekunden nach Auslösen des Alarms gesammelt wurden.

Die Organisatoren des Wettbewerbs testeten die eingereichten Algorithmen an 500 Aufzeichnungen, die den Teilnehmern vorher nicht bekannt waren. Die Algorithmen wurden auf der Grundlage einer Formel bewertet, die richtig positive und richtig negative Ergebnisse belohnt und falsch positive und falsch negative Ergebnisse bestraft. Alle Algorithmen wurden auf der internationalen Konferenz „Computing in Cardiology“ präsentiert. Nach der Konferenz kündigten die Organisatoren eine Follow-up-Phase des Wettbewerbs an, bei der die Teilnehmer dazu angehalten wurden, ihre Algorithmen weiterzuentwickeln und zu verbessern. Die Follow-up-Phase endete im Februar 2016.

Auswahl der Herangehensweise

Den Teilnehmern wurde freigestellt, ihre Algorithmen in einer Sprache ihrer Wahl zu verfassen. Die Organisatoren stellten dabei umfassende MATLAB-Unterstützung bereit, indem sie die Datensätze als MATLAB-Dateien zugänglich machten, ein Beispiel für einen in MATLAB entworfenen Erkennungsalgorithmus sowie eine kostenlose MATLAB-Lizenz zur Verfügung stellten. Normalerweise programmiere ich in C# oder Java®. Obwohl ich keine Erfahrung im Umgang mit MATLAB besaß, entschied ich mich dafür, MATLAB zu nutzen, um mich nur auf die Entwicklung von Algorithmen konzentrieren zu können. Viele der von mir benötigten Funktionen waren sofort verfügbar. Als ich zum Beispiel ein Histogramm erstellen, eine Fast-Fourier-Transformation (FFT) berechnen oder einen Filter mit endlicher Impulsantwort (FIR, Finite Impulse Response) anwenden musste, musste ich lediglich die entsprechende MATLAB-Funktion aufrufen.

Ungültige Daten finden und eliminieren

Eine der überraschendsten – und anstrengendsten – Aspekte des Wettbewerbs war die mangelhafte Qualität der Signale, die von den Überwachungsgeräten der Intensivstation aufgenommen wurden. Die schlechte Signalqualität ist nicht auf PhysioNet zurückzuführen, sondern ein allgemeines Problem, das durch Bewegungen des Patienten, Probleme bei der Verkabelung, falsches Anbringen von Kontakten, falsch eingestellte Geräte und viele andere Faktoren verursacht werden kann. Ein Anzeichen für schlechte Signalqualität ist die Sättigung. Dadurch wird das Signal verzerrt und die Wellenform in ihrer maximalen Amplitude abgeflacht (Abbildung 1).

Abbildung 1: Ein gesättigtes Signal mit Verzerrung und abgeschnittenen Werten.

Abbildung 1: Ein gesättigtes Signal mit Verzerrung und abgeschnittenen Werten. Der vorgeschlagene Algorithmus kann QRS-Komplexe sogar in solchen Signalen erkennen.

Um die Effekte der Sättigung und des Signalrauschens zu minimieren, mussten meine MATLAB-Algorithmen in der Lage sein, ungültige Daten der Eingangssignale zu erkennen und zu eliminieren. Die Algorithmen analysierten die statistischen Eigenschaften jedes Signals in 2-Sekunden-Blöcken. Alle Böcke wurden anhand des maximalen und minimalen Ausschlags sowie anhand einer Standardabweichung verglichen, um Grenzwerte für gültige Daten zu erstellen. Die Algorithmen erkannten Bereiche mit einem hochfrequenten Rauschen, indem sie die Hüllkurve des Signals innerhalb eines Frequenzbereichs von 70 bis 90 Hz überprüften. Durch Errechnen eines Histogramms der Amplitude des Signals sowie durch Vergleichen des Werts der ersten und letzten Histogrammklasse mit Werten aus der mittleren Klasse erkannten die Algorithmen Signalsättigung.

Alle als ungültig erkannten Signale wurden von den übrigen Algorithmen zur Erkennung von Herzschlägen ignoriert. Aus diesem Grund musste ich den Algorithmus zur Erkennung von ungültigen Daten so einstellen, dass nicht zu viele Daten eliminiert werden. (Abbildung 1 zeigt, dass ein gesättigtes Signal immer noch auswertbare Informationen enthalten kann.)

Erkennen von QRS-Komplexen

In einem EKG werden Herzschläge durch drei aufeinanderfolgende Ausschläge des Signals charakterisiert, gemessen von der Grundlinie (Abbildung 2). Diese Ausschläge, allgemein bekannt als QRS-Komplexe, spiegeln die Aktivität der Ventrikel wieder. Sie gehören zu einem der wichtigsten Faktoren bei der Diagnose von Asystolie, Bradykardie und Tachykardie.

Abbildung 2: Ein QRS-Komplex eines EKG-Signals.

Abbildung 2: Ein QRS-Komplex eines EKG-Signals.

Um QRS-Komplexe in EKG-Kanälen zu erkennen, berechnen die von uns entwickelten Algorithmen Hüllkurven in drei Frequenzbereichen. Dabei verwenden sie Fourier-Transformations-Funktionen der Signal Processing Toolbox™. Durch die Analyse und Gegenüberstellung der Ausschläge dieser drei Hüllkurven können die Algorithmen QRS-Komplexe erkennen, zwischen normalen und ventrikulären Herzschlägen unterscheiden sowie falsche QRS-Komplexe herausfiltern, die durch Stimuli von Herzschrittmachern entstehen.

Für das Erkennen von QRS-Komplexen in den Kanälen von PPG-Geräten und ABD-Geräten musste eine andere Herangehensweise entwickelt werden. Bei diesen Kanälen wenden die Algorithmen einen einfachen Tiefpass-Filter der Signal Processing Toolbox an und identifizieren anschließend lokale Minima innerhalb des gefilterten Signals. Die Algorithmen interpolieren das Signal linear auf beiden Seiten eines jeden Minimums und überprüfen die Steigung der entstehenden Geraden, um herauszufinden, ob das Minimum von einem QRS-Komplex stammt.

Prüfen auf normalen Herzrhythmus

Das Ergebnis des Erkennungsalgorithmus von QRS-Komplexen ist eine Reihe von Zeitpunkten, zu denen die R-Signalspitze eines jeden QRS-Komplexes innerhalb der letzten 10 bis 16 Sekunden der einzelnen Signale liegt. (Dabei wurde nicht die gesamte fünfminütige Aufzeichnung analysiert. Die Anforderungen des Physionet-Wettbewerbs legen fest, dass der Eintritt des Ereignisses, das zum Auslösen eines Alarms führt, innerhalb von 10 Sekunden der 300. Sekunde der einzelnen Dateien liegen muss.) Anhand der einzelnen Werte der R-Signalspitzen errechnet der Algorithmus RR-Intervalle, die die Zeit zwischen zwei aufeinanderfolgenden Herzschlägen messen.

Die Algorithmen rufen Funktionen aus der Statistics and Machine Learning Toolbox™ auf, um eine statistische Analyse der RR-Intervalle durchzuführen und auf normale Herzrhythmen zu prüfen. Neben der Summation und Berechnung des Mittelwerts und der Standardabweichung der Intervalle berechnen die Algorithmen zudem die minimale und maximale Herzschlagfrequenz. Danach vergleichen sie alle errechneten Ergebnisse mit annerkannten Grenzwerten für normale Rhythmen, um Herzschlagserien mit einer angemessenen QRS-Komplexverteilung zu identifizieren. Wenn einer der verfügbaren Kanäle (EKG, PPG oder ABD) den Test besteht, wird die Herzschlagfrequenz als normal angesehen und ein Fehlalarm gemeldet. Alleine anhand dieser Analyse konnten bereits 35 % der Fehlalarme in den Trainingsdaten erkannt werden.

Auswertung der Alarme

Wenn die Algorithmen ungewöhnliche Herzaktivitäten auf allen Kanälen feststellen, wird als nächstes untersucht, ob der vom Überwachungsgerät der Intensivstation ausgelöste Alarm bestätigt oder abgelehnt wird.

Das Verfahren zur Erkennung von Asystolie verwendet dazu einen Abstimmungsalgorithmus, der den einzelnen Kanälen eine bestimmte Gewichtung je nach deren Ungültigkeitsrate zuordnet. Kanäle mit einer niedrigen Ungültigkeitsrate haben einen höheren Einfluss auf das Ergebnis. Der Algorithmus unterteilt die Signale der einzelnen Kanäle in Abschnitte mit einer Dauer von 3,2 Sekunden. Für jeden einzelnen Abschnitt errechnet der Algorithmus einen resultierenden Vektor „R“. Dieser wird durch Addieren der gewichteten Abstimmungswerte aller Kanäle, in denen keine Herzaktivität gemessen wurde, und Subtrahieren der gewichteten Abstimmungswerte aller Kanäle, in denen eine Herzaktivität gemessen wurde, errechnet. Sobald ein Wert des resultierenden Vektors „R“ positiv ist, meldet der Algorithmus, dass Asystolie erkannt wurde (Abbildung 3).

Abbildung 3: Zwei EKG-Signale und ein PPG-Signal mit Asystolie.

Abbildung 3: Zwei EKG-Signale und ein PPG-Signal mit Asystolie. Die Abstimmungswerte werden in dem resultierenden Vektor „R“ zusammengefasst. Ein positiver Wert weist darauf hin, dass keine Herzaktivität stattfindet.

Das Verfahren zur Erkennung von Bradykardie, Tachykardie und ventrikulärer Tachykardie berechnet die Schläge pro Minute mithilfe der RR-Intervalle aus dem zuverlässigsten Kanal, welcher meist vom EKG kommt. Sobald die Herzschlagfrequenz unter 46 Schläge pro Minute fällt, meldet der Algorithmus, dass Bradykardie erkannt wurde. Wenn die Herzschlagfrequenz 130 Schläge pro Minute oder 95 ventrikuläre Schläge pro Minute übersteigt, wird vom Algorithmus entsprechend Tachykardie oder ventrikuläre Tachykardie gemeldet.

Zum Schluss wird auf Kammerflimmern bzw. -flattern getestet. Die Erkennung von Kammerflimmern basiert nicht auf QRS-Erkennungsergebnissen, da bei Kammerflimmern keine QRS-Komplexe vorhanden sind. Stattdessen führt der Algorithmus mithilfe der Signal Processing Toolbox eine Kurzzeit-Fourier-Transformation mit einem sich bewegenden Fenster durch. Dabei wird auf Frequenzspitzen über 2 Hz untersucht, die ein Anzeichen für Kammerflimmern bzw. -flattern sind (Abbildung 4).

Auf der Suche nach einer Herangehensweise wurden Machine Learning Ansätze zur Klassifizierung von Arrhythmie in Betracht gezogen. Am Ende entschieden wir uns aus zwei Gründen für eine klassische statistische Methode: Einerseits, da wir bereits wussten, welche Eigenschaften der Daten zur Bestätigung bzw. Ablehnung eines bestimmten Alarms verwendet werden konnten, und andererseits, da Machine Learning Algorithmen sich typischerweise nur schwer in die Hardware integrieren lassen und eine komplexe Kalibrierung benötigen, was für die Verwendung auf Intensivstationen unerlässlich gewesen wäre.

Abbildung 4: Zeit-Frequenz-Analyse von Kammerflimmern.

Abbildung 4: Zeit-Frequenz-Analyse von Kammerflimmern. Frequenzspitzen im Bereich von 3 bis 6 Hz weisen auf Kammerflimmern bzw. -flattern hin.

Gewinn der „PhysioNet/Computing in Cardiology Challenge“

Nachdem die Algorithmen entwickelt und auf den durch die Organisatoren der „PhysioNet/Computing in Cardiology Challenge“ bereitgestellten Trainingsdaten getestet wurden, sowie nach deren Feinabstimmung auf maximale Leistungsfähigkeit, habe ich sie zur Beurteilung eingereicht. Als meine Algorithmen auf die 500 Aufzeichnungen der Testdaten angewandt wurden, wurden 92 % der ernstzunehmenden Alarme und 88 % der Fehlalarme richtig erkannt. Im Echtzeit-Teil des Wettbewerbs erreichten sie die höchste Gesamtpunktzahl aller 244 eingereichten Algorithmen. In der Follow-up-Studie des Wettbewerbs waren unsere Ergebnisse noch besser und wir erreichten die höchste Punktzahl in der Kategorie „Echtzeit“.

Meine Kollegen und ich freuen uns darauf, dass unsere Algorithmen Anwendung in den Überwachungsgeräten auf Intensivstationen finden und dabei helfen werden, Fehlalarme zu verringern.

Über PhysioNet

PhysioNet wurde 1999 als die vom National Institute of Health (NIH) gesponserte „Research Resource for Complex Physiologic Signals“ gegründet und genießt hohes Ansehen unter den Daten- und Software-Ressourcen in der Biomedizin. Das Datenarchiv PhysioBank ist das erste, weltweit größte, umfassendste und am meisten verwendete Archiv für zeitabhängige physiologische Signale und feinauflösende klinische Intensivstationsdaten. Die Software-Sammlung PhysioToolkit dient zur Forschung und quantitativen Analyse von PhysioBank und vergleichbaren Daten mit einer Vielzahl an gut dokumentierter und streng getesteter Open-Source-Software, die von allen Plattformen unterstützt wird. Das Entwicklungslabor PhysioNetWorks wurde 2011 gegründet und bietet eine Plattform für die Zusammenarbeit von Forschern, auf der sie ihre eigenen Daten und Software austauschen und unter sicheren Bedingungen weiterentwickeln können, bevor ihre Daten über PhysioNet öffentlich zugänglich gemacht werden.

Die Daten des PhysioNet-Archivs sind über das Internet zugänglich und dank ODC Public Domain Dedication and License v1.0 frei verfügbar. PhysioNet wird vom National Institute of General Medical Sciences (NIGMS) und dem National Institute of Biomedical Imaging and Bioengineering (NIBIB) des National Institutes of Health unter dem Förderkennzeichen 2R01GM104987-09 unterstützt.

1 S.T. Lawless,”Crying wolf: false alarms in a pediatric intensive care unit,” Crit Care Med 1994; 22 (6): 981-985.

2 C.L. Tsien, J.C. Fackler, “Poor prognosis for existing monitors in the intensive care unit,” Crit Care Med, 25 (4) (1997), pp. 614-619 Apr

Veröffentlicht 2016 - 93063v00

Artikel für ähnliche Einsatzgebiete anzeigen

Artikel für verwandte Branchen anzeigen