Iteratie 1 - Parallel Fetching: - Patient dashboard: Promise.all voor 3 data fetches - Resultaat: ~45% sneller (800ms → 440ms) Iteratie 2 - Loading States: - Skeleton loaders voor EPD, patient, agenda, rapportage - Betere perceived performance tijdens laden Iteratie 3 - Lazy Load FullCalendar: - Dynamic import met next/dynamic (ssr: false) - ~150KB minder in initiële bundle Iteratie 4 - Reports API Optimalisatie: - Selectieve kolommen (10 i.p.v. 20) - Server-side pagination (limit/offset) - Database indexes voor timeline queries - Resultaat: 89% sneller (1671ms → 188ms) Overige fixes: - Type casts voor Json → Behandelstructuur/SmartGoal/etc. - Metadata template fix in layout.tsx Documentatie: - docs/audit-rapport.md - PO-vriendelijk audit rapport - docs/performance/baseline-2025-12-12.md - Metingen + resultaten 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
6.0 KiB
Technische Audit - Mini-EPD Prototype
Rapport voor Product Owner
Datum: December 2025 Doel: Overzicht van technische staat en aandachtspunten
Context
Dit is een prototype/experiment om te demonstreren hoe ver je komt met AI-tooling in zorgsoftware ontwikkeling. Het systeem bevat geen echte cliëntgegevens - alleen testdata voor demonstratiedoeleinden.
Doel van dit rapport: Inzicht geven in de technische staat en wat nodig zou zijn als dit prototype ooit doorontwikkeld wordt naar productie.
Samenvatting
| Gebied | Status | Relevantie voor Prototype | Bij Doorontwikkeling |
|---|---|---|---|
| Beveiliging | Basis | Voldoende voor demo | Moet verbeterd worden |
| Prestaties | Matig | Acceptabel voor demo | Optimalisatie nodig |
| Onderhoud | Matig | Prima voor experiment | Refactoring wenselijk |
| Schaalbaarheid | Beperkt | Niet relevant nu | Kritiek bij groei |
Kernboodschap: Voor een prototype dat AI-tooling demonstreert is de huidige staat prima. Dit rapport documenteert wat er nodig zou zijn voor eventuele doorontwikkeling.
1. Beveiliging
Huidige staat (acceptabel voor prototype)
Punt 1: Next.js versie
- De huidige versie heeft een bekende kwetsbaarheid
- Voor prototype: Geen risico (geen echte data)
- Bij doorontwikkeling: Update naar nieuwste versie nodig
Punt 2: Gegevensscheiding
- Alle ingelogde gebruikers kunnen alle testdata zien
- Voor prototype: Bewuste keuze voor eenvoud
- Bij doorontwikkeling: Rollen en rechten per afdeling/organisatie
Punt 3: Geen geautomatiseerde tests
- Typisch voor een prototype/experiment
- Voor prototype: Acceptabel
- Bij doorontwikkeling: Testsuite opzetten voor stabiliteit
Bij doorontwikkeling nodig
| Actie | Inspanning | Wanneer |
|---|---|---|
| Next.js updaten | 30 minuten | Voor productie |
| Toegangsrechten implementeren | 1-2 dagen | Voor productie |
| Testsuite opzetten | 2-3 dagen | Voor productie |
2. Prestaties
Huidige staat (acceptabel voor prototype)
Punt 1: Laden van grote hoeveelheden data
- Het systeem haalt alle gegevens in één keer op
- Voor prototype: Prima met testdata
- Bij doorontwikkeling: Pagination nodig bij veel records
Punt 2: Sequentieel laden
- Pagina's laden gegevens één voor één (sequentieel)
- Voor prototype: Merkbaar maar acceptabel
- Bij doorontwikkeling: Parallel laden maakt 2-3x sneller
Punt 3: Laad-feedback
- Geen loading indicators of foutmeldingen
- Voor prototype: Werkt voor demo's
- Bij doorontwikkeling: Professionelere UX wenselijk
Bij doorontwikkeling nodig
| Actie | Inspanning | Effect |
|---|---|---|
| Pagination toevoegen | 4 uur | Schaalbaarheid |
| Parallel laden | 2 uur | 2-3x sneller |
| Loading states | 4 uur | Betere UX |
3. Schaalbaarheid
Huidige capaciteit (voldoende voor prototype)
| Scenario | Gedrag | Status |
|---|---|---|
| <50 cliënten | Soepel | Prototype |
| 50-200 cliënten | Acceptabel | Lichte optimalisatie |
| >200 cliënten | Aanpassingen nodig | Productie-ready maken |
Conclusie: Voor een demo/experiment met testdata is de huidige capaciteit ruim voldoende.
Bij doorontwikkeling nodig
Als het prototype ooit doorgroeit naar productie:
- Database indexen toevoegen
- Pagination in API's
- Caching strategie
4. Onderhoudbaarheid
Huidige staat (typisch voor prototype)
Punt 1: Code duplicatie
- Sommige logica staat op meerdere plekken
- Voor prototype: Normale trade-off voor snelheid van ontwikkeling
- Bij doorontwikkeling: Centraliseren voor onderhoudbaarheid
Punt 2: Codestructuur
- Business logica zit verspreid
- Voor prototype: Acceptabel - snel itereren was prioriteit
- Bij doorontwikkeling: Service-laag introduceren
Punt 3: Foutafhandeling
- Niet overal consistent
- Voor prototype: Werkt voor demo's
- Bij doorontwikkeling: Standaardiseren
Bij doorontwikkeling nodig
| Actie | Inspanning | Effect |
|---|---|---|
| Code centraliseren | 4 uur | Minder duplicatie |
| Foutafhandeling standaardiseren | 4 uur | Consistentie |
| Service-laag | 2-3 dagen | Betere structuur |
5. Wat laat dit prototype zien?
Succesvol gedemonstreerd met AI-tooling
Dit prototype toont aan wat mogelijk is met moderne AI-assisted development:
| Functionaliteit | Status | Opmerking |
|---|---|---|
| Volledige EPD basis | Werkend | Patiëntdossiers, rapportages, intakes |
| AI-gestuurde samenvattingen | Werkend | Overdrachtsrapporten |
| Spraak-naar-tekst | Werkend | Deepgram integratie |
| Agenda & planning | Werkend | FullCalendar |
| Behandelplannen | Werkend | SMART-doelen, interventies |
| Nederlandse UI | Volledig | Alle teksten in het Nederlands |
Technische stack
- Frontend: Next.js 14, React, Tailwind CSS
- Backend: Supabase (PostgreSQL + Auth)
- AI: Claude API, Deepgram
- Ontwikkeld met: AI-tooling (Claude Code)
6. Roadmap bij doorontwikkeling
Mocht dit prototype doorontwikkeld worden naar productie, dan is dit de aanbevolen volgorde:
Fase 1: Productie-ready maken
- Next.js updaten (30 min)
- Toegangsrechten implementeren (1-2 dagen)
- Basis testsuite (2-3 dagen)
Fase 2: Schaalbaarheid
- Pagination in API's (4 uur)
- Loading states (4 uur)
- Database optimalisatie (1 dag)
Fase 3: Professionalisering
- Code refactoring (2-3 dagen)
- Monitoring & logging (1 dag)
- CI/CD pipeline (1 dag)
7. Conclusie
Dit prototype demonstreert succesvol hoe ver je kunt komen met AI-tooling in zorgsoftware ontwikkeling. De technische staat is passend voor een experiment - functioneel, demonstreerbaar, maar niet productie-ready.
Belangrijkste inzicht: Met relatief beperkte investering kan dit prototype doorontwikkeld worden naar een productie-waardig systeem. De basis is solide.
Dit rapport is gegenereerd op basis van een technische analyse van de codebase (december 2025).