Schnelltest-Plattform NRW – Test, Zertifikat, CoronaWarn-App
Komplette Plattform zur Verwaltung von Corona-Schnelltestzentren in NRW: Anmeldung, Probenerfassung, PDF-Zertifikat, automatische Meldung an das Gesundheitsamt und zertifizierte Anbindung an die CoronaWarn-App des Bundes über mTLS.
Kontext
Im Frühjahr 2021 brauchte jedes Schnelltestzentrum in Deutschland binnen Tagen drei Dinge gleichzeitig: ein funktionierendes Buchungs- und Erfassungssystem, ein offizielles Testzertifikat als PDF und – sobald die rechtliche Grundlage stand – die Anbindung an die CoronaWarn-App des Bundes inklusive Meldekette an das zuständige Gesundheitsamt.
Schnelltests-NRW war meine Antwort darauf: eine Plattform, die genau das aus einer Hand abgedeckt hat. Live ab April 2021, im aktiven Betrieb bis Anfang 2023.
Was die Plattform geleistet hat
- Anmeldung & Termin: Selbstanmeldung über Slot-Buchung, Familien-Anmeldungen für Eltern mit Kindern, optional anonymisierte Anmeldung als bewusste Entscheidung der Testperson.
- Erfassung am Stand: Test-Box-Tracking, Lot-Verfolgung des verbrauchten Test-Kits aus dem Lagerbestand, Ergebnisbuchung (negativ / positiv / ungültig) mit Audit-Spur.
- Zertifikat: Pro Station individuelles, pre-built PDF-Formular, das pro Test mit Patientendaten, Stationsdaten, Lot-Nummer und QR-Code zum Online-Abruf befüllt und nach S3 abgelegt wurde.
- Benachrichtigung: E-Mail mit Zertifikat-Link und SMS via MessageBird – sobald das Ergebnis im System war, ging die Nachricht raus.
- Meldepflicht: Bei positiven Tests automatisches Erstellen des amtlichen Meldeformulars „Meldef_PoC_Schnelltests_SARS_CoV_2_NRW.pdf" mit allen Pflichtangaben und sofortiger Versand an das zuständige Gesundheitsamt.
- CoronaWarn-App-Anbindung: Sicherer Versand des Test-Hashes inkl. Ergebnis an den offiziellen RKI-Endpunkt – über mTLS mit Client-Zertifikaten, die über T-Systems im Onboarding-Prozess der „Schnelltest-Suche" ausgegeben wurden.
Architektur, an die ich heute noch denke
- Anonymisierung als Patientenwahl, nicht als Default. Die meisten Plattformen lieferten entweder alles oder nichts an das RKI. Hier konnten Testpersonen bei der Anmeldung explizit zwischen „personalisiert" und „anonym" wählen. Der Hash für die CWA-Übermittlung wurde zur Job-Laufzeit entsprechend neu berechnet (mit oder ohne Namen), gesalzen mit einem 32-Zeichen-Random pro Test. So war der Audit-Trail in der DB stabil, und auf der Leitung lagen nie mehr Daten als nötig.
- mTLS gegen den RKI-Endpunkt – mit Klarheit über die Zertifikatslage. Ein eigenes
create-client-csr.sherzeugte CSRs pro Umgebung (Prod und WRU), die T-Systems als Verifizierungsstelle gegenzeichnete. Die ausgegebenen Zertifikate wurden imstorage/app/-Pfad abgelegt und über Guzzlescert/ssl_key-Optionen direkt eingebunden. Rotation und Ablauf waren damit eine reine Deployment-Aufgabe, kein Code-Change. - Job-Chains für die kritische Strecke. Beim Markieren eines Tests stieß ein Controller eine Kette aus drei Jobs an: Hash + CWA-Link generieren, PDF erzeugen und nach S3 hochladen, bei positivem Ergebnis Gesundheitsamt informieren. Schlug ein Schritt fehl, fiel die ganze Kette – kein Halbzustand, kein „PDF da, aber Meldung weg".
- Idempotenz über den Hash. Der Test-Hash war pro (Patient, Zeitstempel, Test-ID, Salt) eindeutig. Retries gegen den RKI-Endpunkt waren damit gefahrlos – das Server-Ende dedupliziert über den Hash.
Stack
Laravel 8 (damals aktuell) mit Livewire 2 für die reaktiven Anmelde- und Erfassungs-Komponenten, Blade für alles übrige, Tailwind CSS 2 mit dem damals üblichen Laravel-Mix-Setup. MySQL als Datenbank, Horizon für die Queue-Pipeline, Spatie Permission für die Rollen (Tester:in, Stationsleitung, Operator, Admin) und Spatie Activity-Log für die nachvollziehbare Historie pro Test.
PDF-Erzeugung über mikehaertl/php-pdftk (Form-Filling auf vorgefertigten Acroform-Templates statt HTML-zu-PDF – schneller, druckscharf, pro Station individuell brandbar). QR-Codes via simplesoftwareio/simple-qrcode. SMS-Notifications via MessageBird, E-Mails via Laravel Mail.
Status
In Betrieb von April 2021 bis Anfang März 2023 – also über die gesamte Schnelltest-Phase in Deutschland. Über die Laufzeit hat die Plattform mehrere Hunderttausend Tests an mehreren Stationen abgewickelt, inklusive vollständiger CWA-Übermittlung und Gesundheitsamt-Meldungen. Mit dem Ende der Schnelltest-Verordnung wurde der Dienst geordnet abgeschaltet, die Datenhaltung gemäß den Aufbewahrungsfristen abgewickelt.
Im Rückblick eines der lehrreichsten Projekte: ein klar umrissener Anwendungsfall, harte regulatorische Vorgaben, sehr kurze Reaktionszeiten und produktiver Betrieb ab Tag eins. Genau die Art von Anforderung, in der sich „pragmatisch und wartbar" auszahlt.