In de eerste fase van de pandemie was de behoefte aan een snel, schaalbaar testaanmeldportaal acuut. Voor een opdrachtgever in de zorg heb ik in een team gewerkt aan een Covid portaal waarmee mensen zich konden aanmelden voor een test en, na afloop, geautomatiseerd advies per e-mail kregen op basis van hun resultaat en hun antwoorden in een vragenstappenplan.
De flow lijkt op het oog rechttoe-rechtaan, maar zat vol details die er onder druk allemaal moesten kloppen. Wie kon zich aanmelden? Wat als iemand al eerder een aanvraag had gedaan? Wat als symptomen veranderden tussen aanmelding en testafname? Hoe zorgt u dat advies achteraf juridisch zorgvuldig én praktisch bruikbaar is? En hoe gaat u om met momenten waarop de aanmeldcapaciteit het volume van een gemiddelde week in een paar uur ontvangt?
Mijn verantwoordelijkheid lag in het ontwerp en de bouw van verschillende functies, waaronder het stappenplan zelf en de integratie met de GGD-rapportage. Het stappenplan was meer dan een formulier: het stuurde op basis van antwoorden naar verschillende vervolgstappen, met validaties die voorkwamen dat onlogische combinaties werden ingediend.
De GGD-rapportage was een aparte uitdaging. Resultaten moesten betrouwbaar, in het juiste formaat en op een vast ritme richting de officiële kanalen worden gestuurd. We hebben dat opgezet met expliciete batches, retries bij netwerkproblemen, en logging waarmee operations achteraf altijd kon herleiden wat wanneer was verstuurd.
Technisch leunden we op Symfony 5 met API Platform en PHP 8, met Keycloak voor de authenticatie van de verschillende gebruikersgroepen — degelijk, voorspelbaar en ruim voldoende voor de workload. Aan de voorkant gebruikten we Angular 11 voor een interface die op vrijwel elk apparaat werkte, ook op de wat oudere telefoons die we in de praktijk veel zagen langskomen.
Wat dit project tekende was het tempo. Specificaties wijzigden vaak, capaciteit moest snel mee schalen, en de communicatie met partijen daarbuiten verliep meestal via korte lijnen in plaats van uitgewerkte documenten. Goede tests, kleine releases en een team dat elkaar vertrouwt waren in deze context geen nice-to-have maar de enige manier om in de lucht te blijven.
Resultaten
- Aanmelding, stappenplan en geautomatiseerd resultaatadvies per e-mail in één flow
- Rapportage richting officiële kanalen met expliciete batches, retries en herleidbare logging
- Interface die ook op oudere telefoons werkt, op Angular 11 met Symfony 5 en API Platform