Wochenendprojekt: Web App zum schnellen Finden von Corona-Schnellteststellen in Sachsen

Screenshot Corona Schnelltests in Sachsen

Mit der Einführung von kostenfreien Corona-Schnelltests in Apotheken und Testzentren wurde ich neugierig wo ich diese Teststellen schnell finden kann.

Eine Suche mit der Suchmaschine meiner Wahl brachte mich auf verschiedene Seiten wie der des Landratsamt Erzgebirge, der Corona Infoseite des Freistaat Sachsen oder zu Zeitungsartikeln mit Hinweisen auf diese Seiten.

In der Tat sind Teststellen zu finden, für den Erzgebirgskreis in einer unzugänglichen PDF Datei1 und auf der Sachsen Seite in einer Excel Datei2 und einem GIS Kartenungetüm3.

Keiner diese Stellen war schnell zugänglich und ich rede hier nicht einmal von Barrierefreiheit! Mit schnell meine ich "schnell mal auf dem Supermarktparkplatz auf dem Lande googeln".

A crowded map with markers, no grouping
This is hard to use

Deutschland versagt seit Jahren auf der Daten-Autobahn wie ein VW Diesel beim Abgastest in der USA.

Rage-Programming

Zugegeben, ich erwartete nicht viel vom Deutschen Bürokraten Internet, schließlich versagt Deutschland seit Jahren auf der Daten-Autobahn wie ein VW Diesel beim Abgastest in der USA.

Fassungslos über die digitale Inkompetenz setzte ich mich hin und überlegte was ich tun könnte.

Es existiert eine Excel Tabelle die einmal pro Woche geflegt wird, sofern Teststellen dorthin gemeldet werden... per E-mail! Schlimm genug, aber besser als nichts.

Ich programmiere also mit Schaum vor dem Mund (kein Bier, aber die Crema meines Lieblingskaffee) ein Interface, welches die die Daten aus der Excel Tabelle nach PLZ, Stadt oder Testanbieter abfragt und anzeigt.

Angereichert mit Links zur Website, Telefon und zur Online Karte des Vertrauen, sollte es jetzt ziemlich einfach sein eine Teststelle in der Umgebung zu finden.

https://corona-schnelltest-sachsen.de

Steps

  • XLS laden, etwas säubern und in eine geeignete Datenstruktur überführen (vorerst alles zur Laufzeit)
  • Einträge werden als lange HTML Liste gerendert und einfach mit javve/list.js durchsuchbar gemacht
  • halfmoonui/halfmoon für die Benutzeroberfläche
  • Domain registriert
  • Online gestellt

Das alles an 2 Abenden.

Mobile-First

Die Anwendung sollte in erste Linie auf dem Mobiltelefon funktionieren und da mich Service-Worker und Progressive Webapps im Moment interessieren, war es eine geeignete Spielwiese.

Die App lässt sich also auf den Homescreen installieren und funktioniert auch Offline. Nicht 100% aber es geht.

Updates

In der Zwischenzeit kamen auch Updates und mit den Updates kamen die Probleme von nicht normalisierten Daten.

Move slow and break things.

-- Deutsche Internetbeamten

Ich begann die XLS via Google Sheet einzulesen und mit Geodaten anzureichern.

All das funktioniert wunderbar in Google Sheets, weil es einfache Schnittstellen gibt, um Tabellen und Json zu importieren.

Fehlende Postleitzahlen ergänzen? Hier ist eine einfache Funktion dafür.


// API https://public.opendatasoft.com/explore/dataset/georef-germany-postleitzahl/api/

function geo2zip(a) {
  let url = 'https://public.opendatasoft.com/api/records/1.0/search/?dataset=georef-germany-postleitzahl&q=' + a + '&facet=plz_name&facet=lan_name&facet=lan_code';
  var response = UrlFetchApp.fetch(url);
  var res = JSON.parse(response.getContentText());
  return res.records[0].fields.plz_name_long;
}
// =geo2zip(A1)

Am Ende frage ich die Sheets API ab und kann dann mit den Daten unkompliziert arbeiten.4

Aber will ich eine eigene "Datenbank" dafür pflegen?

Vor allem weil sicher Teststellen auftauchen die nicht gemeldet werden, aber dafür anderweitig verfügbar sind, wie zum Beispiel die BE.Safe Angebote.

Ich bin mir noch nicht sicher.

Lighthouse Score

Der Google Lighthouse score ist gar nicht mal so schlecht glaube ich.

Strukturierte Daten

Ich habe vor kurzem über strukturierte Daten geschrieben und interessanterweise gibt es seit letztem Jahr neue Microdatenauszeichnungen, um Bekanntmachungen in Notfällen und auch Hilfsangebote zu beschreiben.

https://developers.google.com/search/docs/data-types/special-announcements

News

Um selbst auf dem neusten Stand zu sein und nicht die einzelnen Landkreisseite aufzusuchen, habe ich versucht eine Art Corona News Dashboard einzubinden:

https://corona-schnelltest-sachsen.de/coronanews

Leider bietet kaum eine Seite einen RSS Feed an. Und noch schlimmer, Neuigkeiten werden nicht mit CSS Klassen oder semantischen HTML ausgezeichnet, um die Inhalte parsen und darzustellen zu können. Es ist einfach nur unsemantischer <div> Salat.

Viele Lankreise und Städteseiten nutzen Typo 3 als CMS. Warum eigentlich?

Map

Da ich mir die Mühe gemacht habe und die Adressdaten mit Geo-Koordinaten versehen habe, war es auch einfach eine Kartenanwendung anzubieten.

https://corona-schnelltest-sachsen.de/coronateststellenkarte

1000 x besser zu bedienen als dieses Ding auf der Sachsen Seite!

No-Code Alternative

Ich habe noch relativ viel Aufwand betrieben und viel Code geschrieben, um die Coronateststellen Daten einfach verfügbar zu machen. Dabei hatte ich alle Freiheiten und konnte mich um Details kümmern.

Bei näherer Betrachtung folgt meine App aber nur einem Schema welches man von anderen Apps kennt. Eine Suche über tabellarische Daten, Detailansicht und alternative Ansicht als Karten oder auf einer Karte. Optimalerweise kann man als Nutzer:in noch Daten hinzufügen.

All das gibt es in der Plattform Glide welche Daten aus Google Sheets, dank eines einfachen Baukastensystems in einer Progressive Web Apps (PWA) zur Verfügung stellt,

Zu testen hier: https://corona-test-sachsen.glideapp.io/

Die App ist nicht so optimal und insgesamt ist es vergleichbar damit eine Behörden Website mit WIX zu erstellen. Jedoch es tut seinen Dienst und geht als Corona Teststellen Such-App durch. besser als nichts. Und ess würde zeigen, dass Behörden doch einen Draht zu innovativen Weblösungen hat.

Konkurrenz?

In der Zwischenzeit oder fast zur gleichen Zeit ist der Dienst coronatest-finden.de aufgetaucht.

Eine Dresdner Digitalfirma mit Zugang zu Bundesweiten Adressdaten zu Teststellen hat ein Wordpress mit Geo Directory Plugin hochgezogen und nimmt 50 EUR wenn man als Teststellen Inhaber einen Werbefreien Eintrag dort haben möchte.

Edit: Gerade (2021-04-13) die Seite ohne Werbeblocker besucht und mit Werbung für Antigen Schnelltests und Signalton begrüßt worden. Absolute Frechheit!

Altruismus my ass!

Aber warum nicht - die freie Wirtschaft ist da beweglicher als die Verwaltungsdinosaurier.

Der Vorteil ist, man kann seinen Eintrag aktuell halten und sogar Öffnungszeiten etc. hinzufügen.

Der Nachteil ist, es kümmert keinen. Das Land Sachsen sollte die "Single Source of Truth" sein und nicht 5 privatwirtschaftliche Anbieter die irgendwelche windigen Verzeichnisse aufziehen und mit Werbung vollpflastern.

Kongruenz!

Respekt verdient hingegen Patrik Phan, der mit Pandemie Jetzt eine sehr schöne und nützliche Webanwendung gebaut hat, welche die momentanen Öffnungsregeln anhand der aktuellen Inzidenzzahlen einfach interpretiert und aufarbeitet.

Das Ganze gibt es dann auch gleich als iOS und Android App (ich nehme an, dass ist ein Webview Wrapper um die Website) und das ist natürlich etwas robuster als meine PWA. Wobei, PM jetzt funktioniert nicht offline, da sollte Patrik Phan noch mal an den Service-Worker ran. :)

Mir ist klar, dass Konkurrenz und Kongruenz in diesem Kontext fast keinen Sinn ergibt. Meine Arbeit ist nicht Deckungsgleich mit Patrik Phans Projekt, wenn dann haben wir ähnliche Bewegungsgründe. Und das Verzeichnis von corona-jetzt.de konkurriert nicht mit meinem Projekt, weil ich nichts daran verdiene und keine Ambitionen habe mir einen Markt zu öffnen. Aber als Überschrift funktioniert es würde ich sagen.

Abschlussgedanken und Government Data and the Invisible Hand

Im Zuge meiner Recherchen kann ich sagen, dass Behörden in den meisten Fällen keine Kapazitäten haben ein modernes und nützliches Digitalangebot zu pflegen.

Da gibt es interne Strukturen welche den Fortschritt auf verschiedene Art und Weise aufhalten. Das ist zum einen die IT Sicherheit, die nicht mal eben ein Wordpress auf den Webserver installieren kann und das sind die Bearbeiter:innen die sich in Word und Excel auskennen und keine Spezialist:innen in Datenaufbereitung sind.

Leider gibt es keine Anzeichen die den Witz über Behörden die sich ausgedruckte Excel Tabellen zu faxen, Lügen straft.

Und die Webagenturen verantwortlich für den Internetauftritt der jeweiligen Landkreise? Kaum Zeichen von Verständnis über semantisches Internet, Mikroformate und Schema und A11y.

Zugegeben, alle Anstrengungen gehen verloren, wenn am Ende die verantwortlichen Personen, welche die Website aktualisieren, PDF Dateien veröffentlichen oder neue Newseinträge in einem langen Eintrag pflegen.

Durch Zufall habe ich von der tragischen Geschichte des Programmierers William Zeller5 erfahren, der Co-Autor von einem Paper war, welches sich mit dem Problem von Daten der Regierungen befasste. Und mit Daten meine ich statistische Daten zur Bevölkerung, Geodaten und gegenwärtig die Daten zum Infektionsgeschehen.

Government Data and the Invisible Hand by David G. Robinson, Harlan Yu, William P. Zeller, Edward W. Felten :: SSRN

Seit einem Jahr fordern Journalisten, dass die Daten vom Robert-Koch Institut immer noch aus Excel Tabellen zusammen kopiert werden müssen. (siehe Kritik am Robert Koch-Institut - Journalisten fordern besseren Zugriff auf Coronadaten)

Es gibt Anstrengungen von Programmierern das Ganze via API zur Verfügung zu stellen marlon360/rki-covid-api, aber das hat von der Regierung zu kommen! Damit wir innovative Lösungen dafür bauen können!

Das Paper "Government Data and the Invisible Hand" ist jetzt über 10 Jahre alt aber der Kerngedanke erscheint mir immer noch wahr:

Today, government bodies consider their own websites to be a higher priority than technical infrastructures that open up their data for others to use. We argue that this understanding is a mistake. It would be preferable for government to understand providing reusable data, rather than providing websites, as the core of its online publishing responsibility.

Rather than struggling, as it currently does, to design sites that meet each end-user need, we argue that the executive branch should focus on creating a simple, reliable and publicly accessible infrastructure that exposes the underlying data. Private actors, either nonprofit or commercial, are better suited to deliver government information to citizens and can constantly create and reshape the tools individuals use to find and leverage public data.

Anstatt sich um die Präsentation von Daten zu kümmern, sollte der Fokus auf die Aufbereitung und Zugänglichkeit von Daten gelegt werden, damit sich kommerzielle und nicht-kommerzielle Organisationen um die Aufbereitung dieser Daten kümmern können, da diese oftmals flexibler und innovativer als die Regierung/Behörden sind.

Ich glaube mein Projekt und die anderen beiden hier genannten beweisen das.

TL;DR

  • Corona Schnelltest Zentren in Sachsen werden auf verschiedenen Websites der Landkreise, Städte und private Testanbieter in diversen Formaten angeboten
  • Alle Formate sind nicht oder nur schwer zugänglich für Nutzer mit mobilen Endgeräte und Menschen mit motorischen oder visuellen Beeinträchtigungen
  • Ich habe eine Webanwendung programmiert, die den dürftigen öffentlichen Daten ein einfach zu bedienendes Interface zur Verfügung stellt.
  • Die Webanwendung ist auf Mobilgeräte und zur Offline Nutzung zugeschnitten
  • Funktionen wie Visualisierung auf einer Karte und News (nur für Erzgebirgskreis) sind hinzugekommen
  • Vorstellung von ähnlichen Projekten
  • Öffentliche Daten von Behörden und Regierungen sollten besser aufgearbeitet zur Weiterverwendung von Journalisten und Programmierern zur Verfügung stehen