Medische consumptie data tool
Een technisch interessant en maatschappelijk waardevol project voor Artsen zonder Grenzen. Voor dit traject heb ik een proof of concept ontwikkeld voor een robuuste offline applicatie waarmee medische consumptiedata lokaal kan worden bijgehouden, geanalyseerd en later gedeeld met centrale systemen.
Project informatie
- Start
- januari 2026
- Einde
- februari 2026
- Complexiteit
- 7 / 10
- Team grote (Ontwikkelaars)
- 2
- Type
- ERP
- Stack
-
C# Javascript HTML & CSS SQL .NET Blazor Entity Framework Core MudBlazor Clean Architecture CQRS GIT Scrum DDD
Over het project
Voor Artsen zonder Grenzen heb ik gewerkt aan een proof of concept voor de Medical Consumption Data Tool. De organisatie werkte op dat moment met meerdere Excel bestanden om het verbruik van medische middelen bij te houden. Deze bestanden waren belangrijk voor de dagelijkse operatie, maar waren op termijn kwetsbaar, lastig te beheren en beperkt schaalbaar.
Ons voorstel was om deze Excel processen stap voor stap te vertalen naar robuuste en duurzame .NET applicaties. Als eerste stap is gekozen voor de Consumption Data Tool. Ik heb hiervoor in enkele weken tijd een werkende proof of concept ontwikkeld en gepresenteerd aan Artsen zonder Grenzen. Het doel was om te laten zien dat de bestaande werkwijze op een gebruiksvriendelijke manier kon worden vervangen door een moderne applicatie, zonder dat de praktische randvoorwaarden van het veld uit het oog werden verloren.
De presentatie was succesvol en heeft bijgedragen aan het besluit om het concept verder uit te werken.
Functionele doelstelling
De tool is bedoeld om per locatie en afdeling bij te houden hoeveel medische middelen worden verbruikt. Op basis van deze consumptiedata kan de applicatie inzicht geven in het huidige gebruik en ondersteuning bieden bij het voorspellen van toekomstig verbruik.
Dat is belangrijk omdat medische middelen op tijd beschikbaar moeten zijn, zeker in gebieden waar logistiek complex is en waar tekorten directe gevolgen kunnen hebben voor de zorgverlening. De applicatie ondersteunt daarom niet alleen registratie, maar ook overzicht, analyse en planning.
Daarnaast moest bestaande historische data geïmporteerd kunnen worden, zodat locaties niet opnieuw hoefden te beginnen en eerder opgebouwde informatie behouden bleef. Ook moest het mogelijk zijn om data uiteindelijk te verplaatsen of te versturen naar centrale systemen van Artsen zonder Grenzen.
Belangrijke randvoorwaarden
Een van de belangrijkste eisen was dat de applicatie volledig zonder internetverbinding moest kunnen werken. De tool wordt gebruikt in landen en gebieden waar internet beperkt, instabiel of helemaal niet beschikbaar is. Daarom moest de applicatie lokaal kunnen draaien en zelfstandig bruikbaar blijven.
Daarnaast moest de applicatie eenvoudig te installeren en te gebruiken zijn. De gebruikers zijn niet per se technisch onderlegd, dus de oplossing mocht geen ingewikkelde installatieprocedure of technische beheerkennis vereisen. De gebruikerservaring moest daarom dicht bij de bestaande werkwijze blijven, maar tegelijkertijd betrouwbaarder en overzichtelijker zijn dan de Excel oplossing.
Een andere belangrijke randvoorwaarde was meertaligheid. De applicatie moest niet alleen in verschillende talen beschikbaar kunnen zijn, maar ook geschikt zijn voor Arabisch. Dat betekende dat de gebruikersinterface van links naar rechts én van rechts naar links moest kunnen werken. Dit had invloed op de opbouw van schermen, tabellen, formulieren en navigatie, omdat de applicatie ook voor Arabisch sprekende gebruikers logisch en prettig bruikbaar moest blijven.
Een andere belangrijke eis was dat meerdere apparaten binnen één locatie met dezelfde database moesten kunnen werken. Daarmee moest de tool niet alleen geschikt zijn voor individueel gebruik, maar ook voor een kleine lokale werkomgeving waarin meerdere gebruikers dezelfde data kunnen raadplegen en bijwerken.
Architectuur en technische keuzes
De applicatie is opgezet als desktop applicatie in .NET. Technisch is gekozen voor een Windows Forms host waarin een Blazor applicatie draait. Hierdoor voelt de applicatie voor de gebruiker als een normale Windows desktop applicatie, terwijl de gebruikersinterface wel met moderne Blazor technologie is gebouwd.
Deze keuze sloot goed aan bij de randvoorwaarden van het project. De applicatie kan lokaal worden geïnstalleerd, offline draaien en toch worden opgebouwd met een moderne en onderhoudbare webgebaseerde interface. Daarnaast maakte deze opzet het mogelijk om de interface meertalig op te bouwen en rekening te houden met talen zoals Arabisch, waarbij de volledige schermindeling van rechts naar links moet kunnen worden weergegeven.
De code is opgezet volgens Clean Architecture, waarbij de domeinlogica losstaat van presentatie en infrastructuur. Binnen de applicatielaag is gebruikgemaakt van CQRS in combinatie met MediatR, zodat leesacties en schrijfacties duidelijk gescheiden zijn en de verschillende use cases overzichtelijk blijven. Daarnaast zijn enkele DDD principes toegepast om de belangrijkste domeinconcepten rondom medische middelen, locaties, periodes en consumptiedata expliciet te modelleren.
Deze opzet maakte de proof of concept niet alleen geschikt als demonstratie, maar ook als solide basis voor verdere doorontwikkeling.
Mijn rol
Mijn rol bestond uit het opzetten, ontwikkelen en inhoudelijk begeleiden van de proof of concept. Ik heb de technische richting bepaald, de basisarchitectuur neergezet en de belangrijkste schermen en functionaliteiten uitgewerkt.
Daarbij lag de nadruk niet alleen op het technisch werkend krijgen van de applicatie, maar vooral op het aantonen dat een Excel gebaseerd proces op een praktische en duurzame manier vervangen kon worden. De oplossing moest overtuigend genoeg zijn om vertrouwen te geven in verdere ontwikkeling, maar ook realistisch genoeg blijven voor de omstandigheden waarin de tool gebruikt zou worden.
Na akkoord op de proof of concept heb ik het project nog kort begeleid en verder ontwikkeld. Daarna heb ik het overgedragen aan een collega, omdat ik op een ander project nodig was.
Resultaat
Het resultaat was een werkende proof of concept die liet zien hoe de bestaande Excel werkwijze kon worden vervangen door een gebruiksvriendelijke offline .NET applicatie. De tool bood een basis voor het beheren van medische middelen, het registreren van verbruik, het tonen van overzichten en het ondersteunen van toekomstige verbruiksvoorspellingen.
Voor Artsen zonder Grenzen was dit een belangrijke stap om te beoordelen of hun bestaande Excel processen konden worden omgezet naar robuustere software. De proof of concept heeft deze richting succesvol onderbouwd.
Terugblik
Dit was een mooi project vanwege de combinatie van technische uitdaging en maatschappelijke relevantie. De applicatie moest modern en onderhoudbaar zijn, maar tegelijkertijd extreem praktisch blijven. Geen complexe cloud afhankelijkheden, geen ingewikkelde installatie en geen aannames over stabiel internet. Juist die beperkingen maakten het technisch interessant.
Voor mij was dit een waardevol traject omdat ik in korte tijd een overtuigende basis heb kunnen neerzetten, zowel technisch als functioneel. Het project laat goed zien hoe ik probeer te werken: niet alleen software bouwen die technisch klopt, maar vooral oplossingen maken die passen bij de mensen, omstandigheden en processen waarvoor ze bedoeld zijn.
Opmerking: Vanwege de aard van het systeem en de gevoeligheid van de onderliggende data ben ik beperkt in wat ik publiekelijk kan delen. Daarom bevat deze website geen schermafbeeldingen, codevoorbeelden of technische detailuitwerkingen over dit project.