COVID-19: Daten zur Lage der Intensivstationen

In verschiedenen Zeitungen und von Politikern lese ich in den letzten Tagen häufig dringliche Appelle oder angespannte Diskussionen zur Lage von Intensivstationen und der Notwendigkeit eines harten Lockdowns.

Leider wird die Dringlichkeit eines Lockdowns und der Ernst der Lage an den Intensivstationen entweder gar nicht mit Daten, dem Verweis auf die tagesaktuellen Daten oder mit Erfahrungsberichten aus einzelnen Kliniken begründet.

Auf der Suche nach Daten, die mir helfen, die Dynamik an den Intensivstationen besser zu verstehen, habe ich wie im letzten Artikel wieder mit R herumgespielt und mir verfügbare Datenquellen angeschaut:

Im Prinzip gibt es dabei drei Bausteine, aus denen ich mir erklären kann, warum Intensivmediziner dringlich einen Lockdown fordern und die mir helfen, die teils aufgeregte mediale Berichterstattung ruhig ud sachlich einzuordnen.

  1. Die Belastung der Intensivstationen ist bereits sehr hoch
  2. Die Prognose für die nächsten Wochen ist, dass die Belastung ansteigt
  3. Die Angst vor möglichen Triage Entscheidungen ist sehr groß

Aktuelle Belastung der Intensivstationen: Regelbetrieb & verfügbare invasive Beatmungseinheiten

Wie sehr Intensivstationen derzeit im Vergleich zu früheren Monaten belastet sind, verdeutlichen die absoluten, tagesaktuellen Zahlen von Patienten auf Intensivstationen leider nur schlecht. Die Entwicklung der letzten Monate lässt sich am besten durch den Anteil der Intensivstationen, die im Regelbetrieb arbeiten und die noch verfügbaren Einheiten für invasive Beatmung veranschaulichen:

Die Zahlen sind hier wieder normalisiert, zur Vergleichbarkeit also auf den Wertebereich 0 – 1 transformiert. Besorgniserregend ist, dass die Zahl der Intensivstationen mit regulärem Betrieb und die Zahl verfügbarer Beatmungseinheiten jetzt bereits niedriger ist, als zum Höhepunkt der zweiten Welle. Die aktuelle dritte Welle hat ihren Höhepunkt aber noch nicht erreicht, weder bei der Zahl der Infektionen noch bei der Zahl der COVID-19 Patienten in intensivmedizinischer Behandlung.

Hier ist auch der Blick auf die absoluten Zahlen interessant. Die normalisierte Darstellung erlaubt nur den Vergleich der Entwicklung der Linien, aber nicht den Vergleich der absoluten Höhe der Linien. Das ist in folgender Darstellung möglich:

Hinweis: Im DIVI Datensatz befindet sich auch die Angabe, wie viele der Beatmungseinheiten für COVID-19 Patienten reserviert sind. Am 13.04. sind das 1101 von 2622 Einheiten. Zur Vereinfachung habe ich diese Linie in der Grafik weggelassen. Die Grafik findet sich am Ende des Artikels im Skriptbereich.

Was zumindest mir anhand dieser Daten verständlich wird, ist, dass derzeit ein hohes Belastungsniveau an Intensivstationen herrscht. Das wirft die Frage auf: Wie wird sich das über die nächsten Wochen entwickeln?

DIVI Prognose zur Auslastung der nächsten Wochen

Vom DIVI wird auch eine Prognose zur Verfügung gestellt, wie sich die Zahl der Patienten über die nächsten Wochen entwickeln wird. Den Link habe ich oben geteilt, die Abbildung dazu ist folgende:

Wenn Ende dieser Woche (Inzidenz 200) ein harter Lockdown durchgesetzt wird, erwartet DIVI die orange Linie. Wenn erst Ende April (Inzidenz 300) ein harter Lockdown beschlossen wird, läuft es auf die rote Linie hinaus.Das wären dann rund 6.800 COVID-19 Patienten in Intensivbehandlung. Was das für die Auslastung der Intensivstationen bedeutet lässt sich leicht ausrechnen:

  • Zur Erinnerung: Aktuell sind noch 1101 Beatmungseinheiten für COVID-19 Patienten bzw. 2622 Einheiten insgesamt verfügbar
  • Stand heute (14.04.) sind 4653 COVID-19 Patienten in intensivmedizinischer Behandlung, von denen knapp 57% invasiv beatmet werden. Siehe: https://www.intensivregister.de/#/aktuelle-lage/laendertabelle
  • Der erwartete Höchststand sind 6800 Patienten, also 2147 zusätzliche Patience, was bei 57% Beatmungsquote ca. 1223 Patienten ergibt, die invasiv beatmet werden müssten

1223 zusätzliche COVID-19 Patienten übersteigt die verfügbare Kapazität von 1101. Das ist nur der theoretische Wert, der noch nicht in Betracht zieht, dass es große lokale Unterschiede in Fallzahlen und verfügbaren Betten geben wird. Die tatsächliche Lücke wäre also größer.

Diese Prognose legt nahe, dass Menschen nicht beatmet werden könnten, obwohl es medizinisch nötig wäre. Es müsste dann eine Entscheidung getroffen werden, wer beatmet wird und wer nicht. An dieser Stelle tritt das Schreckenswort Triage auf.

Das Problem der harten Priorisierung: Triage

Triage wurde mir mal so erklärt:

In absoluten Notsituationen z.B. bei tausenden Kriegsverletzten nach verheerenden Schlachten mussten Mediziner wie folgt priorisieren:

  1. Behandle den nicht, der auch ohne deine Hilfe überlebt
  2. Behandle den nicht, der auch mit deiner Hilfe stirbt
  3. Behandle nur den, der ohne deine Hilfe stirbt, aber mit deiner Hilfe überlebt

Diese Priorisierung ist die sinnvollste unter grausamen Bedingungen. Die aktuelle Situation ist glücklicherweise nicht ganz so grausam. Dennoch findet bereits eine gewisse Priorisierung statt, wer intensivmedizinisch behandelt wird und wer nicht. Das braucht einen kleinen Umweg und lässt sich nur indirekt an Daten ablesen. Es lässt sich aber an der Zahl der belegten Betten von Intensivstationen erklären, die ich auch im letzten Artikel gezeigt hatte:

Ich hatte mich gewundert, dass die orange Linie (belegte Betten) konstant bleibt, während die rote Linie (COVID-19 Patienten) steigt. Die Antwort ist relativ einfach: Es findet bereits aktive Steuerung und Priorisierung durch Kliniken statt, sonst wäre die Konstanz der Anzahl belegter Betten nicht möglich.

Die Logik der Steuerung folgt vermutlich dem ersten Schritt der Triage, wie ich sie oben skizziert habe: „Behandle den nicht, der auch ohne deine Hilfe überlebt“. Planbare Eingriffe wie z.B. Knie- oder Hüftprothesen werden verschoben um Kapazitäten für akute Fälle zu schaffen.

Es ist offensichtlich, dass diese Art der Priorisierung nur solange durchgeführt werden kann, wie es planbare und verschiebbare Eingriffe gibt. Mit den prognostizierten Zahlen für neue COVID-19 Patienten dürfte diese Zahl bald gegen 0 gehen und der zweite Schritt nötig werden: „Behandle den nicht, der auch mit deiner Hilfe stirbt“

Es ist sehr verständlich, dass eine solche Situation vermieden werden soll, denn diese Priorisierung ist unendlich quälend:

  • Vorherzusagen, wer auch mit Behandlung stirbt und wer nicht, ist kaum möglich
  • Menschen nicht zu behandeln widerspricht dem Selbstverständnis von Ärzten
  • Patienten und Angehörige würden eine „Nicht-Behandlung“ kaum hinnehmen
  • Kliniken dürften juristische Klagen erwarten

Persönliche Schlussgedanken

Anhand der vorliegenden Daten verstehe ich die Dringlichkeit und Not, mit der manche Politiker und Intensivmediziner für einen harten Lockdown eintreten – als scheinbar einzige Möglichkeit, die furchtbaren Prognosen und Zwänge abzuwenden, die Tageslage und Prognose nahelegen.

Was mich wundert und durchaus frustriert, ist die scheinbare Alternativlosigkeit von Lockdowns und die weiterhin geringe Beachtung der Auswirkungen auf andere Bereiche gesellschaftlichen und persönlichen Lebens. Nach über einem Jahr Pandemie und Lernen über das Virus, hätte ich mir mehr Mut und Kreativität zur Lösungsfindung erhofft.

R Skripts zur Erstellung der Grafiken und Auswertung der Daten

Ich möchte auch wieder die Skripte teilen, mit denen ich Grafiken erstellt habe, um Daten und Darstellung nachvollziehbar zu machen. Das Skript enthält mehr Daten und Befehle, als für die Erstellung der Plots nötig ist, weil ich bei meiner Spielerei nicht der Nutzbarkeit für andere sondern meiner Neugier gefolgt bin. 🙂

Ales erstes noch die Grafik mit den für COVID-19 Patienten reservierten Beatmungseinheiten

#########Libraries ############
library(dplyr)
library(pracma)
library(BBmisc)
library(plyr)
library(readxl)
library(tidyr)
library(ggplot2)
library(scales)

###########  Daten aus DIVI laden und nur die Daten für Deutschland auswählen   ##########
#Einlesen
bundesland.zeitreihe <- read.csv("https://diviexchange.blob.core.windows.net/%24web/bundesland-zeitreihe.csv")

#Filtern
divi <- filter(bundesland.zeitreihe, Bundesland == "DEUTSCHLAND")
divi_s <- divi[,-(2:3)]

#Aufräumen
names(divi_s) <- c("Datum", "covCount", "bedsUsed", "bedsFree", "reserve", "ivFree", "ivFreeCov", "sitGood", "sitMedium", "sitBad", "sitNA")
divi_s$Datum <- as.Date(divi_s$Datum)

#Moving Averages berechnen
divi_s$bedsUsed_7 <- movavg(divi_s$bedsUsed,7,"s")


############### Daten vom RKI laden, aggregieren und moving averages der letzten 7 Tage berechnen ##############
#Einlesen
rki <- read.csv("https://opendata.arcgis.com/datasets/dd4580c810204019a7b8eb3e0b329dd6_0.csv")
rki_s <- data.frame(rki$Meldedatum, rki$AnzahlFall, rki$AnzahlTodesfall, rki$AnzahlGenesen)

#Aggregieren
names(rki_s) <- c("Datum", "Infekt", "Tod", "Gesund")
rki_a <- aggregate(rki_s[,2:4], list(rki_s$Datum), FUN = sum)
names(rki_a) <- c("Datum","Infekt", "Tod", "Gesund")

#Moving Averages berechnen
Infekt_7 <- movavg(rki_a$Infekt,7,"s")
Tod_7 <- movavg(rki_a$Tod,7,"s")
Gesund_7 <- movavg(rki_a$Gesund,7,"s")

#Aufräumen
rki_c <- data.frame(rki_a, Infekt_7, Tod_7, Gesund_7)
rki_c$Datum <- as.Date(rki_c$Datum)

####### RKI Fallzahlen und DIVI Daten Mergen und Normalisieren #########

#RKi Fallzahlen und DIVI zahlen mergen und weitere Variablen bereechnen
d <- merge(rki_c, divi_s, by=c("Datum"), all.x = TRUE)
d$beds <- d$bedsFree + d$bedsUsed
d$bedsT <- d$bedsFree + d$bedsUsed + d$reserve

d$ivFree
#Normalisierung von Variablen
z <- as.data.frame(apply(d[,c("Infekt_7", "Tod_7", "covCount", "ivFree", "bedsUsed_7", "beds", "bedsT", "sitGood", "ivFreeCov")], 2, FUN = normalize, method = "range", range = c(0,1)))
z$Datum <- d$Datum
z$ivFree[z$ivFree == 0] <- NA
z$ivFreeCov[z$ivFreeCov == 0] <- NA

########## Plots für ersten Artikel vom 11.04.2020 #############

#Ausslastung der Intensivstationen 1
plot(d$Datum,d$beds,type="l",col="green", main = "Auslastung Intesivstationen 1", xlab = "Datum", ylab = "Betten")
lines(d$Datum,d$covCount, col ="red")
lines(d$Datum,d$bedsUsed,col="orange")
legend("topleft",
       c("Gesamtzahl Betten","Belegte Betten", "COV-19 Patienten"),
       fill=c("green","orange", "red"))

######### Plots zur Lage auf den Intensivstationen #################

#Lage auf den Intensivsstationen
plot(z$Datum,z$sitGood,type="l",col="blue", main = "Lage der Intensivstationen", xlab = "Datum", ylab = "Normalisierte Werte - Wertebereich 0 bis 1")
lines(z$Datum,z$covCount, col ="red")
lines(z$Datum,z$ivFree, col = "bisque4")
legend("topleft",
       c("COVID-19 Patienten", "Intensiv Regelbetrieb", "Freie Beatmungseinheiten"),
       fill=c( "red", "blue", "bisque4"))

#COVID Patienten vs. Beatmungskapazitäten
plot(d$Datum,d$ivFree,type="l",col="bisque4", main = "COVID Patienten vs. Beatmungskapazitäten", xlab = "Datum", ylab = "Zahl")
lines(d$Datum,d$covCount, col = "red")
legend("topleft",
       c("COVID-19 Patienten", "Freie Beatmungseinheiten"),
       fill=c("red", "bisque4"))

#COVID Patienten vs. Beatmungskapazitäten mit CoVID 19 frei
plot(d$Datum,d$ivFree,type="l",col="bisque4", main = "COVID Patienten vs. Beatmungskapazitäten", xlab = "Datum", ylab = "Zahl")
lines(d$Datum,d$covCount, col = "red")
lines(d$Datum,d$ivFreeCov, col = "darkgoldenrod4")
legend("topleft",
       c("COVID-19 Patienten", "Freie Beatmungseinheiten", "Freie Einheiten COVID-19"),
       fill=c("red", "bisque4", "darkgoldenrod4"))

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s