Projecten
2020

COVID portaal

Een portaal waarmee mensen zich konden aanmelden voor een Covid-19 test en op basis van resultaten advies per e-mail kregen.

CakePHP 3PHP 7.6MySQLjQueryFomanticPHPUnit

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 zorg je dat advies achteraf juridisch zorgvuldig én praktisch bruikbaar is? En hoe ga je 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 CakePHP 3 met PHP 7.6 en MySQL — degelijk, voorspelbaar en ruim voldoende voor de workload. Aan de voorkant gebruikten we Fomantic en jQuery 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.

Meer werk

Andere projecten