Moin Moin, wir sind das #VentilationOptimizationVsVirus (VentOpt) Team des #WirvsVirus Hackathon. Die letzten 48 Stunden haben wir uns mit einem Konzept für die verbesserte Koordinierung von Beatmungsplätzen in Deutschland beschäftigt.
Neben der Anzahl an Patienten steigt auch der Druck auf die Rettungskräfte und Kliniken, mögliche COVID-19 Patienten bestmöglich zu verteilen. Zur Koordinierung von Beatmungsplätzen schlagen wir ein krankenhausübergreifendes System vor, das die Allokation von Patienten zu freien Intensivbetten mit Beatmungsversorgung erfasst sowie entsprechende Transporte organisiert, optimiert und überwacht. Hierzu nutzen wir im Backend vor allem unser Wissen aus Operations Research.
Inspiration
Laut aktueller Schätzungen benötigt rund jeder fünfte positiv getestete COVID-19 Patient eine stationäre Behandlung und etwa 5% aller positiv getesteten COVID-19 Patienten sind auf einen Beatmungsplatz angewiesen. In Deutschland sind rund 25.000 Beatmungsplätze vorhanden. Im Krisenfall wird die Herausforderung also darin liegen, den Bedarf an Beatmungsplätzen über Deutschland zu verteilen, um regionale Ressourcenverfügbarkeiten zu nutzen und so Leben zu retten.
What it does
Sanitätern und Notärzten soll bei Verdacht auf COVID-19 schnellstmöglichst ein Krankenhaus für den Patienten zugewiesen werden, um eine optimale Versorgung für den Erkrankten sicher zu stellen. Unsere Lösung unterstützt bei der Koordinierung der Vergabe und beim Vergabeprozess. Die Lösung beruht dabei auf der zentrale Vergabe durch die deutschlandweiten Rettungsleitstellen sowie einem Algorithmus, der die passenden Plätze findet. Vorteil unserer Lösung:
- Einfache Visualisierung verfügbarer Beatmungsplätze
- Allokation von Plätzen auf Basis vordefinierter Parameter wie Entfernung, Behandlungsbedarf, ECMO, aktueller Ressourcenverfügbarkeit, Puffer für Notfälle.
How we built it
Am Freitag ging es im Developer-Team vor allem um Planung und Koordination des Projektes. Nachdem mit der Wahl der Challenge zumindest die grobe Aufgabe klar war, musste es nun konkret werden. Welche Objekte legen wir an? Welche Daten lesen wir wie ein? Wie greift unser Optimierungsverfahren auf Objekte zu und strukturiert den Output? Wie kann man unseren Fortschritt möglichst gut visuell darstellen?
Hier hat sich recht schnell die Aufteilung ergeben, dass Carina und Bakhodir sich für die Daten zuständig erklärt haben, und dabei das gesamte Internet nach den besten Krankenhaus- sowie aktuellen COVID-19 Zahlen durchforstet haben. Da die Datenlage (wie leider zu erwarten war) sich als unzureichend herausstellte, wurden kurzerhand synthetische Datensätze (Kombination aus Realdaten, hochskaliert durch Algorithmen, sowie erweitert durch Simulation anhand von logit-Modellen) erstellt.
Auf der Systemseite haben Marco und Julius am Freitag angefangen das Minimum Viable Product zu designen. Schnell stellte sich heraus, dass der Kern unserer Einreichung die Simulation unseres Optimierungsalgorithmus anhand von den Datensätzen von Carina und Bakhodir darstellen sollte. Bereits am Samstagmittag gab es nun die ersten Simulationsergebnisse, die dann nach und nach verfeinert näher an die Realität angepasst wurden.
Challenges we ran into
Datenlage
Die Aktualität der verfügbaren Betten stellt den Kern der Anwendung da. Jedoch gibt es keine tagesaktuellen Datenbank für
- Krankenhauspositionen
- Krankenhauskapazitäten
- Beatmungsbettenausnutzung
- Anzahl der Betten, die pro Krankenhaus für COVID-19 Patienten bereitgestellt werden können
Für eine realistische Modellierung, müssen diese Daten erzeugt werden.
Unsere Lösung: synthetische Erzeugung der Daten
- Akquise der Population Deutschlands auf Landkreis-, Kreis-, und kreisfreie Stadtebene
- Generierung eines ersten Krankenhausdatensatzes (Koordinaten) basierend auf der OpenStreetMap API
- Akquise relevanter Krankenhausdaten auf Bundeslandebene mittels Daten des Statistischen Bundesamtes
- Zuordnung der generierten Krankenhäuser zu Städten mittels eines Mapping durch die OpenDataSoft API
- Generierung synthetischer Krankenhausdaten unter Berücksichtigung der Populationsdichte auf Landkreis-, Kreis-, und kreisfreie Stadtebene
Coding
Mit wachsender Codebase erschwierigte sich natürlich auch die Koordination innerhalb des Repositorys (https://github.com/jp172/covid19-ventilator-optimization) - während eines Hackathons bleibt wenig Zeit für das Schreiben von Tests, die Integration mit Circle/CI und andere best practices aus der professionellen Softwareentwicklung. Mit einem klaren Ziel im Kopf und der hervorragenden Abstimmung mit dem Rest vom Team konnten wir aber pünktlich zur Deadline die Ergebnisse präsentieren. Schaut selbst in unserem youtube video oder auf github!
Accomplishments that we're proud of
Unser Team ist aus zwei Teams innerhalb dieses Hackathons zusammengewachsen: dem Back-End/Algorithmen Team und dem Ideenteam. Wir hätten vermutlich nie beruflich zusammengefunden, weil wir wirklich aus ganz unterschiedlichen Richtungen kommen. Was uns dieser Hackathon gezeigt hat: Wenn alle für dieselbe Idee brennen, klappt cross-functional super! Aufgaben mussten nie delegiert werden weil von Anfang an jedem klar war, woran er gerne arbeiten möchte. Unsere Abstimmungen liefen zielgerichtet und haben super viel Spaß gemacht.
Unser MVP beinhaltet nach 48 Stunden: Konzeption einer zentrale Vergabestelle, vollautomatisiertes Scheduling-System mit mathematischer Kern auf Basis von Operation Research Komponenten, problemlose Skalierbarkeit auf Hunderttausende Anfragen pro Tag, Design-Mockup Frontend
What we learned
Physische Distanz hindert nicht an erfolgreicher Zusammenarbeit. Ein Team lebt von Diversität, Schwarmintelligenz und wenig Schlaf.
What's next for 05_Hilfsmittelverteilung_Koordination_der_Beatmungsplätze
Um das System nutzen zu können, bedarf es nach unserer Einschätzung der folgenden nächsten Schritte: Kontaktaufnahme zum DIVI Intensivregister, um zu prüfen, inwiefern man Schnittstellen zur vorhanden Datenbank nutzen kann, um unser System flächendeckend einsetzten zu können Kontaktaufnahme zur Verwaltung der Rettungsleitstellen in Deutschland um zu prüfen, ob unser Konzept einer zentralen Anlaufstelle tragfähig ist Frontend Entwicklung
Built With
- git
- jupyter
- opendatasoft
- openstreetmap
- pandas
- plotly
- python
Log in or sign up for Devpost to join the conversation.