# π Product Requirements Document (PRD) β Behandelplan Module
**Projectnaam:** Mini-ECD Prototype - AI Speedrun
**Versie:** v2.0 (volgens template, incl. Leefgebieden)
**Datum:** 2 december 2024
**Auteur:** Colin van Zeeland
**Changelog:**
- v2.0: Herstructurering volgens PRD template, duidelijke MVP/post-MVP scheiding, expliciete UX sectie
- v1.1: Leefgebieden methodiek toegevoegd
- v1.0: InitiΓ«le versie
---
## 1. Doelstelling
π― **Doel van deze sectie:** Beschrijf waarom dit product of prototype wordt gebouwd en wat het beoogde resultaat is.
### 1.1 Waarom
Huidige EPD-systemen behandelen het behandelplan als een statisch administratief document dat:
- Eenmalig wordt geschreven en zelden wordt geΓ«valueerd
- Geen duidelijke koppeling heeft met het feitelijke behandelproces
- Voor cliΓ«nten ontoegankelijk of onbegrijpelijk is
- Voor behandelaars veel handmatig schrijfwerk kost (30+ minuten)
- Niet helpt bij het structureren van de daadwerkelijke zorg
**Resultaat:** Het behandelplan is een "vinkje voor de administratie" in plaats van een levend werkdocument.
### 1.2 Wat
Een **werkend MVP-behandelplan** dat demonstreert hoe AI:
1. **Tijdsbesparing** realiseert: van 30+ minuten naar 2-5 minuten
2. **Kwaliteitsverbetering** biedt: SMART-doelen, evidence-based interventies, recovery-gericht
3. **Transparantie** creΓ«ert: cliΓ«nt kan eigen plan begrijpen en volgen
4. **Praktische workflow** ondersteunt: intake β diagnose β behandelplan β sessies β evaluatie
### 1.3 Voor Wie
Dit is een **demo-prototype** voor:
- **AI Speedrun LinkedIn Serie** - Build in public content
- **Product Owners & GGZ Managers** - AI-toegevoegde waarde zien
- **Zorgprofessionals** - Herkenbare workflow met directe meerwaarde
- **Developers** - Inspiratie voor AI-integratie in healthcare
### 1.4 Type Release
**MVP Prototype** - Focus op demo-readiness en core value proposition. Geen productie-systeem.
---
## 2. Doelgroep
π― **Doel:** Schets wie de eindgebruikers, stakeholders en testers zijn.
### 2.1 Primaire Gebruikers (voor Demo)
**Behandelaar (GGZ-professional)**
- **Rol:** Psycholoog, psychiater, POH-GGZ, verpleegkundig specialist
- **Behoefte:** Snel behandelplan opstellen zonder kwaliteit in te leveren
- **Pijnpunten:**
- Te veel schrijfwerk
- Moeilijk om SMART-doelen te formuleren
- Leeg vel syndroom ("waar begin ik?")
- Veel copy-paste van oude plannen
- **Gebruik in demo:** Primaire gebruiker die hele flow doorloopt
**CliΓ«nt (patiΓ«nt/deelnemer)**
- **Rol:** Persoon in GGZ-behandeling
- **Behoefte:** Begrijpen wat er gaat gebeuren, waar we naar toewerken
- **Pijnpunten:**
- Behandelplan vol vakjargon
- Onduidelijk wat verwachting is
- Plan voelt als "van de behandelaar", niet van mij
- **Gebruik in demo:** CliΓ«ntportaal-weergave als laatste stap
### 2.2 Secundaire Stakeholders
**Product Owner / Manager**
- Inzicht in AI als enabler (niet vervanger)
- ROI-berekening: 30 min β 5 min = 83% tijdsbesparing
**Developer / Tech Lead**
- Inspiratie voor AI-integratie patterns
- Ziet hoe AI prompt engineering werkt in praktijk
**LinkedIn Audience**
- Leert van transparant development proces
- Ziet concrete AI-toepassing in healthcare
---
## 3. Kernfunctionaliteiten (MVP-scope)
π― **Doel:** Afbakenen van de minimale werkende functies.
### 3.1 MUST HAVE (Week 3 - Core MVP)
#### F-01: AI Behandelplan Generatie
**Input:**
- Intake-notities (vrije tekst uit rich text editor)
- DSM-categorie (uit Diagnose module)
- Severity (Laag/Middel/Hoog)
- Leefgebieden scores (7 domeinen met score 1-5 + prioriteit)
**AI Processing:**
- Claude 3.5 Sonnet API call
- Gestructureerde prompt met context
- JSON response volgens schema
- Response tijd: < 5 seconden
**Output:**
- Behandelstructuur (duur, frequentie, aantal sessies)
- 2-4 SMART doelen (elk gekoppeld aan leefgebied)
- Evidence-based interventies per doel
- Sessie-planning (grove indeling, 8-12 sessies)
- 2 evaluatiemomenten (tussentijds + eind)
- Veiligheidsplan (bij severity "Hoog")
**Status:** Concept (bewerkbaar, niet gepubliceerd)
---
#### F-02: Leefgebieden Tracking
**7 Levensdomeinen:**
1. Dagelijkse Levensverrichtingen (DLV) - Zelfzorg, structuur
2. Wonen - Woonsituatie, veiligheid
3. Werk/Dagbesteding - Baan, opleiding, vrijwilligerswerk
4. Sociaal netwerk - Familie, vrienden, relaties
5. Vrijetijd/Zingeving - Hobby's, levensdoel, spiritualiteit
6. FinanciΓ«n - Schulden, inkomen, budgettering
7. Lichamelijke gezondheid - Slaap, beweging, voeding
**Intake-fase:**
- Formulier met 7 leefgebieden
- Per gebied: score 1-5 (slider), toelichting (tekst), prioriteit (dropdown)
- Opslaan in intake data (JSONB veld)
**Behandelplan-fase:**
- Spindiagram (Recharts radar chart)
- 3 lijnen: Baseline (grijs), Huidig (blauw), Doel (groen gestippeld)
- Elk doel heeft leefgebied-tag (emoji + label)
**Evaluatie-fase:**
- Update "Huidig" scores
- Spindiagram update in real-time
- Zichtbaar welke gebieden verbeteren/achter blijven
---
#### F-03: SMART Doelen (Behandelaar-versie)
**Per doel:**
- Titel (kort, 1 zin)
- Beschrijving (SMART-uitwerking, 2-3 zinnen)
- Leefgebied-tag (dlv/wonen/werk/sociaal/vrijetijd/financien/gezondheid)
- Prioriteit (hoog/middel/laag)
- Meetbaarheid (hoe meten we vooruitgang?)
- Tijdslijn (binnen X weken)
- Status (niet_gestart/bezig/gehaald/bijgesteld)
- Voortgang (0-100% progress bar)
**Acties:**
- [Bewerk]: Inline editing
- [β» Regenereer]: AI genereert alternatief
- [+]: Handmatig doel toevoegen
- [ποΈ]: Verwijderen
**AI-gedrag:**
- Focus op prioriteit "Hoog" leefgebieden
- Mix van verschillende leefgebieden (niet alles op 1 domein)
- Concreet en meetbaar (geen vage termen)
---
#### F-04: CliΓ«nt-vriendelijke Doelen (B1-taal)
**Per doel EXTRA veld:**
- "CliΓ«nt-versie" in B1-Nederlands
- Geen jargon, concrete voorbeelden
**Voorbeeld:**
```
Behandelaar: "Reductie van vermijdingsgedrag met 50% binnen 8 weken"
CliΓ«nt: "Ik ga weer naar de supermarkt zonder paniek te krijgen"
```
**Validatie:**
- AI genereert automatisch cliΓ«nt-versie
- Behandelaar kan aanpassen
- CliΓ«ntportaal toont alleen cliΓ«nt-versies
---
#### F-05: Evidence-based Interventies
**Per interventie:**
- Naam (CGT, Exposure, EMDR, ACT, Schematherapie, IPT, etc.)
- Beschrijving (2-3 zinnen)
- Rationale (waarom past dit bij deze cliΓ«nt?)
- Gekoppelde doelen (welke doelen worden hiermee benaderd?)
**AI-mapping:**
| DSM-Categorie | Primaire Interventies | Severity β Intensiteit |
|---------------|----------------------|------------------------|
| Angststoornissen | CGT, Exposure, ACT | Hoog β 12-16 sessies |
| Stemmingsklachten | CGT, IPT, Gedragsactivatie | Middel β 8-12 sessies |
| Trauma/PTSS | EMDR, Narratieve therapie | Hoog β 12+ sessies |
| Persoonlijkheid | Schematherapie, MBT | Hoog β 20+ sessies |
---
#### F-06: Sessie-planning
**Tabel-weergave:**
| # | Focus | Datum | Status | Gekoppelde Doelen | Notities |
|---|-------|-------|--------|-------------------|----------|
| 1 | Psycho-educatie angst | 15-11 | β Afgerond | Doel 1, 2 | Ging goed |
| 2 | Start exposure oefeningen | 22-11 | β΅ Gepland | Doel 2 | - |
| 3 | Exposure + huiswerk review | 29-11 | β΅ Gepland | Doel 2 | - |
**Functionaliteit:**
- AI genereert grove planning (Sessie 1-2: X, Sessie 3-6: Y, etc.)
- Behandelaar kan aanpassen, toevoegen, verwijderen
- Status wijzigen: Gepland β Afgerond/No-show/Verzet/Geannuleerd
- Korte notitie na sessie (optioneel)
---
#### F-07: Evaluatiemomenten
**Minimaal 2 evaluaties:**
1. Tussentijdse evaluatie (na ca. 1/3 behandeling)
2. Eindevaluatie (einde behandeling)
**Per evaluatie:**
- Type (tussentijds/eind/crisis)
- Geplande datum (automatisch berekend, aanpasbaar)
- Werkelijke datum (invullen bij uitvoeren)
- Status (gepland/afgerond/overgeslagen)
- Uitkomst (vrije tekst, 2-5 zinnen)
- Aanpassingen (wat is gewijzigd in plan?)
- ROM-scores (optioneel, indien beschikbaar)
- Leefgebieden update (nieuwe scores voor "Huidig")
**Triggers:**
- Bij evaluatiedatum: visuele indicator in UI
- Na evaluatie: optie om nieuwe versie te starten (v2)
---
#### F-08: Versie-beheer
**Statussen:**
- **Concept**: Bewerkbaar, niet zichtbaar voor cliΓ«nt
- **Actief**: Gepubliceerd, zichtbaar voor cliΓ«nt, nog bewerkbaar
- **In evaluatie**: Evaluatiemoment gepland/bezig
- **Afgerond**: Behandeling afgerond, plan gearchiveerd
- **Gearchiveerd**: Bij nieuwe versie wordt oude versie gearchiveerd
**Versie-nummering:**
- v1, v2, v3, etc.
- Bij significante wijziging (na evaluatie, nieuwe doelen): nieuwe versie starten
- Oude versies blijven zichtbaar (read-only)
**Versie-overzicht:**
```
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Versie | Status | Datum | Behandelaar β
ββββββββββΌββββββββββββΌβββββββββββββΌβββββββββββββββ
β v2 β β Actief β 15-11-2024 β Jansen, M. β
β v1 β Afgerond β 01-10-2024 β Jansen, M. β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
```
---
#### F-09: Concept β Actief Publicatie
**Workflow:**
1. Behandelaar genereert plan (of maakt handmatig)
2. Plan is in status "Concept"
3. Behandelaar reviewt en bewerkt
4. Knop "Publiceer" β Plan wordt "Actief"
5. Publicatiedatum wordt vastgelegd
6. Plan is nu zichtbaar in cliΓ«ntportaal
**Validatie voor publicatie:**
- Minimaal 1 doel ingevuld
- Minimaal 1 interventie gekoppeld
- Behandelstructuur compleet
- Evaluatiemomenten gepland
---
#### F-10: Micro-regeneratie
**Per sectie/item een [β» Regenereer] knop:**
- Behandelaar kan specifiek onderdeel laten hergenereren
- AI behoudt context van rest van plan
- Optioneel: korte instructie meegeven ("maak concreter", "focus op werk")
**Voorbeeld:**
- Doel 2 past niet goed β klik [β» Regenereer]
- Popup: "Geef optioneel extra instructie" (tekstveld)
- AI genereert nieuw voorstel voor Doel 2
- Behandelaar accepteert of verwerpt
---
### 3.2 SHOULD HAVE (Week 3 - Nice to have)
#### F-11: Crisis/Veiligheidsplan
**Trigger:** Alleen bij severity "Hoog"
**Inhoud:**
- Waarschuwingssignalen (3-5 items)
- Coping strategieΓ«n (3-5 items)
- Belangrijke contacten (behandelaar, crisis, 113)
- Restricties (bijv. "Geen alcohol tijdens behandeling")
**Zichtbaar voor cliΓ«nt:** Ja, prominente weergave met urgentie-styling
---
#### F-12: Betrokkenen
**Wie:** Partner, werkgever, huisarts, etc.
**Per betrokkene:**
- Naam
- Rol/relatie
- Betrokkenheid bij behandeling (tekst)
**Voorbeeld:** "Partner aanwezig bij intake en evaluaties"
---
#### F-13: Behandelaar Notities (intern)
**Niet zichtbaar voor cliΓ«nt**
- Vrij tekstveld voor interne aantekeningen
- Bijv. "Let op: vermijdt oogcontact, mogelijk trauma-gerelateerd"
---
### 3.3 COULD HAVE (Week 3 - Stretch goals)
#### F-14: Manual Mode (zonder AI)
- Behandelaar kan volledig handmatig plan opstellen
- Leeg canvas met secties
- Voor als AI-output niet passend is
---
#### F-15: Templates
- Vooraf ingevulde templates voor veelvoorkomende behandeltypes
- Bijv. "CGT Angststoornissen 12 sessies"
- Behandelaar past aan voor specifieke cliΓ«nt
---
#### F-16: Copy from Previous
- Delen kopiΓ«ren uit eerder behandelplan van deze cliΓ«nt
- Bijv. als cliΓ«nt terugkeert na afronding
---
#### F-17: Diff View
- Verschil tussen versies visualiseren
- Wat is gewijzigd van v1 naar v2?
---
## 4. Gebruikersflows (Demo- en MVP-flows)
π― **Doel:** Laten zien hoe de gebruiker stap-voor-stap door het systeem gaat.
### Flow 1: Happy Path β Intake β Behandelplan (Demo-ready)
**Tijd:** < 3 minuten totaal
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Behandelaar voltooit intake β
β β Rich text editor met notities β
β β Leefgebieden formulier invullen (7 domeinen) β
β β Slaat op β
β β β
β 2. Navigeert naar Diagnose tab β
β β Klikt [AI β‘ Analyseer intake] β
β β AI genereert DSM-categorie + Severity (3 sec) β
β β β
β 3. Accepteert of bewerkt diagnose β
β β Slaat probleemprofiel op β
β β β
β 4. Navigeert naar Behandelplan tab β
β β Ziet: "β‘ AI kan een concept genereren" β
β β Klikt [Genereer Behandelplan] β
β β β
β 5. AI genereert compleet plan (< 5 sec) β
β β 3 SMART doelen (verdeeld over leefgebieden) β
β β 2 Interventies (CGT, Exposure) β
β β 8 Sessies met focus per sessie β
β β 2 Evaluatiemomenten β
β β Spindiagram met leefgebieden β
β β β
β 6. Behandelaar reviewt en past aan (optioneel) β
β β Doel 2 niet passend? Klik [β» Regenereer] β
β β Bewerk teksten inline β
β β β
β 7. Klikt [Accepteer & Publiceer] β
β β Plan v1 wordt actief β
β β Zichtbaar in cliΓ«ntportaal β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
**Demo-highlight momenten:**
- **Moment 1:** Leefgebieden spindiagram visualiseert problematiek
- **Moment 2:** AI generatie in real-time (< 5 sec, teller tonen)
- **Moment 3:** Doelen hebben leefgebied-tags (recovery-gericht)
- **Moment 4:** CliΓ«nt-versie in simpele taal (B1-niveau)
---
### Flow 2: Regeneratie van specifiek onderdeel
**Tijd:** < 30 seconden
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Behandelaar vindt Doel 2 niet passend β
β β Klik [β» Regenereer] bij Doel 2 β
β β β
β 2. Popup verschijnt β
β β "Geef optioneel instructie voor AI" (tekstveld) β
β β Behandelaar typt: "maak meer gefocust op werk" β
β β Klik [Regenereer] β
β β β
β 3. AI genereert alternatief doel (< 3 sec) β
β β Behoudt context van rest van plan β
β β Nieuw doel focust op werksituatie β
β β β
β 4. Behandelaar kiest β
β β [Accepteer nieuw voorstel] of [Behoud origineel] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
---
### Flow 3: Evaluatie β Nieuwe Versie
**Tijd:** ~5 minuten
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Tussentijdse evaluatie gepland (week 4) β
β β Indicator in UI: "β° Evaluatie vandaag" β
β β Klik [Evaluatie invullen] β
β β β
β 2. Evaluatie-formulier β
β β Uitkomst (vrije tekst): "Goed op weg..." β
β β Leefgebieden scores updaten (spindiagram update) β
β β Voortgang per doel: Doel 1 60%, Doel 2 40% β
β β β
β 3. Beslissing β
β β [Ga door met huidig plan] (kleine aanpassingen) β
β β [Start nieuwe versie v2] (grote wijzigingen) β
β β β
β 4. Indien nieuwe versie β
β β v1 wordt "Afgerond" β
β β v2 start als concept (kopie van v1) β
β β Behandelaar past aan, publiceert β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
---
### Flow 4: CliΓ«nt bekijkt eigen plan (CliΓ«ntportaal)
**Tijd:** ~2 minuten bekijken
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. CliΓ«nt logt in op portaal β
β β Ziet eigen dashboard β
β β Tab "Mijn Behandelplan" β
β β β
β 2. Behandelplan-overzicht in B1-taal β
β β "Waar we aan werken" (doelen in eigen woorden) β
β β Spindiagram: "Hoe het met je gaat" (visueel) β
β β "Wat we gaan doen" (interventies uitgelegd) β
β β "Planning" (wanneer zijn de gesprekken) β
β β β
β 3. Acties β
β β [Print dit plan] β
β β [Stel een vraag] (chat met behandelaar) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
---
## 5. Niet in Scope
π― **Doel:** Duidelijk maken wat (nog) niet wordt gebouwd.
### 5.1 Definitief NIET in MVP (Week 3)
1. **ROM-vragenlijst afname binnen systeem**
- Reden: Complexe vragenlijsten (OQ-45, PHQ-9) zijn apart domein
- Alternatief: Alleen scores tonen als ze er zijn, verwijzing naar externe tool
2. **Multi-disciplinaire behandelplannen (MDO)**
- Reden: Vereist samenwerking tussen meerdere behandelaars, complexe workflows
- Alternatief: Enkelvoudige behandelaar alleen
3. **DBC/ZPM declaratie-koppeling**
- Reden: Vereist integratie met zorgadministratie-systemen
- Alternatief: Niet nodig voor demo
4. **Medicatie-management**
- Reden: Apart domein met eigen complexiteit (medicatiehistorie, interacties)
- Alternatief: Niet in behandelplan MVP
5. **Real-time samenwerking (concurrent editing)**
- Reden: Technisch complex, WebSockets/multiplayer sync
- Alternatief: Laatste opslag wint, audit trail toont wie wat wijzigde
6. **Notificaties/Reminders via email/SMS**
- Reden: Vereist notification service, scheduling
- Alternatief: Alleen visuele indicators in UI
7. **Integratie met externe agenda's** (Google Calendar, Outlook)
- Reden: OAuth flows, sync complexity
- Alternatief: Handmatige datums in systeem
8. **CliΓ«nt kan plan aanpassen/suggesties doen**
- Reden: UX flow voor "suggest changes" nog niet uitgewerkt
- Alternatief: CliΓ«nt kan alleen lezen, niet wijzigen (MVP)
9. **Terugvalpreventieplan als apart document**
- Reden: Kan onderdeel zijn van behandelplan
- Alternatief: Opnemen in laatste sessie-planning of veiligheidsplan
10. **Fancy voortgangsgrafieken en dashboards**
- Reden: Recharts charts zijn nice-to-have, niet essentieel
- Alternatief: Simpele progress bars (0-100%) en spindiagram
11. **Productie-grade audit logging**
- Reden: Demo-only, geen compliance vereist
- Alternatief: Basis audit trail (wie, wat, wanneer)
12. **Meerdere AI providers (model switching)**
- Reden: Alleen Claude 3.5 Sonnet voor MVP
- Alternatief: Hardcoded model, geen keuze
---
## 6. Succescriteria
π― **Doel:** Objectieve meetlat voor een geslaagde oplevering.
### 6.1 Demo Succescriteria (Week 3 Oplevering)
**Performance:**
- [ ] AI behandelplan generatie: < 5 seconden
- [ ] Page load behandelplan: < 1 seconde
- [ ] Spindiagram render: < 500ms
- [ ] Auto-save behandelplan: < 500ms response time
**Functionaliteit:**
- [ ] Happy Path werkt zonder errors (intake β diagnose β behandelplan β publiceer)
- [ ] AI genereert plan in β₯80% van gevallen bruikbaar zonder grote edits
- [ ] Micro-regeneratie werkt per onderdeel
- [ ] Leefgebieden spindiagram toont 3 lijnen (baseline, huidig, doel)
- [ ] Doelen hebben leefgebied-tags en zijn verdeeld over minimaal 2 verschillende gebieden
- [ ] CliΓ«ntportaal toont behandelplan in B1-taal
**UX/UI:**
- [ ] Behandelplan-pagina werkt op tablet (belangrijkste use case)
- [ ] Spindiagram is begrijpelijk zonder uitleg voor β₯80% testgebruikers
- [ ] CliΓ«nt-versie doelen zijn begrijpelijk voor β₯90% testgebruikers (B1-validatie)
- [ ] Demo flow doorlooptijd: intake β behandelplan < 3 minuten
**Content:**
- [ ] Dummy-data voor 3 cliΓ«nten met behandelplannen (verschillende severities)
- [ ] Help-tooltips bij complexe velden (SMART-criteria, severity, leefgebieden)
- [ ] Onboarding hint wijst op AI-generatie feature
**Technical:**
- [ ] Database schema geΓ―mplementeerd (incl. leefgebieden JSONB)
- [ ] API endpoints beschikbaar (CRUD behandelplan)
- [ ] Row-level security policies actief
- [ ] Audit trail logt alle wijzigingen (wie, wat, wanneer)
---
### 6.2 Post-MVP Succescriteria (Productie)
**Tijdsbesparing:**
- Traditioneel handmatig: 30+ minuten
- Met AI: < 5 minuten
- **Besparing: 83%**
**Kwaliteit:**
- Plan voldoet aan richtlijnen in β₯95% van gevallen
- Behandelaar-tevredenheid: β₯4/5 sterren
- CliΓ«nt kan plan begrijpen zonder uitleg: β₯90%
**Adoptie:**
- β₯70% behandelaars gebruikt AI-generatie feature
- β₯50% behandelaars past micro-regeneratie toe
- Sessie-planning wordt in β₯60% van plannen gebruikt
---
## 7. Risico's & Mitigatie
π― **Doel:** Risico's vroeg signaleren en plannen hoe ermee om te gaan.
| # | Risico | Impact | Kans | Mitigatie |
|---|--------|--------|------|-----------|
| **R-01** | **AI genereert onzinnig/gevaarlijk plan** | π΄ Hoog | π‘ Laag | β’ Duidelijke prompt engineering met voorbeelden
β’ Behandelaar reviewt ALTIJD (AI is suggestie, geen besluit)
β’ Validatie: plan moet minimaal 1 doel, 1 interventie bevatten
β’ Fallback: behandelaar kan handmatig plan maken |
| **R-02** | **Behandelaar vindt AI-plan niet bruikbaar** | π Hoog | π‘ Middel | β’ Manual mode beschikbaar (volledig handmatig)
β’ Micro-regeneratie per onderdeel (niet alles opnieuw)
β’ Templates als alternatief
β’ User feedback tijdens testing β prompt verbeteren |
| **R-03** | **Leefgebieden spindiagram te complex** | π‘ Middel | π‘ Middel | β’ Uitleg bij eerste gebruik (tooltip/walkthrough)
β’ Hover toont details per gebied
β’ Kan verborgen worden als niet gewenst
β’ Test met niet-technische gebruikers |
| **R-04** | **Versie-beheer wordt te complex** | π‘ Middel | π‘ Middel | β’ Start simpel: v1, v2, v3 (geen branching)
β’ Diff-view is optioneel (stretch)
β’ Duidelijke labels: "Actief", "Afgerond"
β’ Max 5-10 versies verwacht, overzichtelijk |
| **R-05** | **CliΓ«nt begrijpt B1-taal niet** | π‘ Middel | π’ Laag | β’ Test cliΓ«nt-versies met echte cliΓ«nten
β’ Behandelaar kan aanpassen na AI-generatie
β’ Voorbeelden in UI (hover/tooltip)
β’ Versie voor lage geletterdheid (post-MVP) |
| **R-06** | **Sessie-planning wordt niet gebruikt** | π’ Laag | π‘ Middel | β’ Sessie-planning is optioneel, niet verplicht
β’ AI genereert grove planning (makkelijk starten)
β’ Behandelaar kan ook alleen evaluaties bijhouden |
| **R-07** | **AI API rate limits / downtime** | π Hoog | π’ Laag | β’ Error handling: duidelijke foutmeldingen
β’ Retry logic (3x met backoff)
β’ Fallback: "AI tijdelijk niet beschikbaar, probeer later of maak handmatig"
β’ Cached responses voor demo (pre-generated) |
| **R-08** | **Scope creep (te veel features)** | π‘ Middel | π Hoog | β’ Strikte PRD met "Niet in Scope" sectie
β’ Weekly review: focus op MVP
β’ Post-MVP backlog voor ideeΓ«n
β’ Demo-readiness prioriteit #1 |
| **R-09** | **Privacy concerns (test met echte data)** | π΄ Hoog | π’ Laag | β’ ALLEEN demo-data (fictieve cliΓ«nten)
β’ Duidelijke disclaimer in UI: "Demo-omgeving"
β’ Geen productie-data tijdens Speedrun |
| **R-10** | **Time crunch Week 3** | π‘ Middel | π‘ Middel | β’ Prioriteer Must Have > Should Have > Could Have
β’ Spindiagram kan laatste dag (1 uur werk)
β’ Manual mode kan post-MVP
β’ Focus: 1 perfecte demo-flow |
**Mitigatie Overzicht:**
- π΄ Hoog impact: Behandelaar blijft decision maker (AI = tool)
- π Middel impact: Fallbacks en optionaliteit
- π’ Laag impact: Monitoring en duidelijke scope
---
## 8. Roadmap / Vervolg (Post-MVP)
π― **Doel:** Richting geven aan toekomstige uitbreidingen.
### 8.1 Week 4 (Direct na MVP)
**Polish & Testing:**
- User testing met 2-3 GGZ-professionals
- Feedback verwerken in prompt engineering
- Bug fixes naar aanleiding van testing
- Performance optimalisatie (lazy loading, caching)
---
### 8.2 Fase 2: Productie-ready maken (Maand 2)
**Veiligheid & Compliance:**
- Full audit logging (GGZ-dossier eisen)
- Logging van AI-interacties (traceability)
- Encryptie at rest voor behandelplannen
- Backup & restore procedures
**Rollen & Rechten:**
- Behandelaar-rollen (psycholoog, psychiater, POH)
- Supervisor kan plannen reviewen
- Team-leads hebben overzicht
- CliΓ«nt-toegang per behandelaar instellen
**ROM-integratie:**
- Import ROM-scores (OQ-45, PHQ-9, etc.)
- Toon scores in spindiagram als extra laag
- Link evaluatiemomenten aan ROM-afname
- Trendgrafiek ROM-scores over tijd
---
### 8.3 Fase 3: Geavanceerde features (Maand 3-4)
**Multi-disciplinaire plannen (MDO):**
- Meerdere behandelaars kunnen bijdragen
- Rol-specifieke doelen (psycholoog, psychiater, maatschappelijk werk)
- Shared ownership van plan
- Notificaties bij wijzigingen
**Terugvalpreventie module:**
- Apart document gegenereerd na behandeling
- Waarschuwingssignalen + actieplan
- CliΓ«nt kan zelf bijwerken (self-management)
- Trigger bij crisis: "Bekijk je terugvalplan"
**Trendanalyse & BI:**
- Dashboard behandelaar: welke interventies werken best
- Organisatie-niveau: gemiddelde behandelduur per DSM-categorie
- Leefgebieden-analyse: waar zitten meeste knelpunten
- AI-effectiviteit: hoe vaak wordt AI-plan gebruikt vs. aangepast
**Notificaties & Reminders:**
- Email/SMS bij naderende evaluatie
- CliΓ«nt reminder voor sessie (opt-in)
- Behandelaar reminder voor niet-ingevulde evaluaties
- Weekly digest: "3 plannen te evalueren deze week"
---
### 8.4 Fase 4: Integraties (Maand 5-6)
**Externe systemen:**
- Koppeling met bestaande EPD's (PinkRoccade, Nedap, Zorgdomein)
- FHIR-compliance (CarePlan resource)
- MedMij/Koppeltaal koppelingen
- API voor externe tools
**Agenda-integratie:**
- Google Calendar sync voor sessies
- Outlook integratie
- iCal export voor cliΓ«nt
**DBC/Declaratie:**
- Automatische DBC-registratie bij starten plan
- Koppeling sessies aan DBC-productcodes
- Export naar zorgadministratie
---
### 8.5 Backlog IdeeΓ«n (Toekomst)
**AI-uitbreidingen:**
- Voice-to-text voor intake (tijdens gesprek)
- AI-suggesties tijdens sessie ("Misschien wil je doel 2 bijstellen")
- Predictive analytics: "Gebaseerd op vergelijkbare cliΓ«nten, verwachte behandelduur 10 weken"
**CliΓ«nt-participatie:**
- CliΓ«nt kan voortgang zelf updaten ("Hoe ging het deze week?")
- CliΓ«nt kan suggesties doen voor doelen
- Dagboek-functie voor cliΓ«nt (tussen sessies)
**Gamification:**
- Voortgangsbadges voor cliΓ«nt ("3 sessies voltooid!")
- Visuele mijlpalen in behandeling
- Shared celebration bij behaalde doelen
---
## 9. UX/UI Specificatie
π― **Doel:** Expliciete beschrijving van user experience en interface design.
### 9.1 Design Principes
**Behandelaar-perspectief:**
1. **Efficiency first**: Minimale clicks, snelle toegang
2. **Control over AI**: AI is hulp, geen baas
3. **Progressive disclosure**: Complexiteit verbergen tot nodig
4. **Tablet-optimized**: Veel behandelaars werken op iPad
**CliΓ«nt-perspectief:**
1. **Simplicity**: Geen jargon, duidelijke taal
2. **Visual over text**: Spindiagram > lange teksten
3. **Empowerment**: Inzicht = controle over eigen proces
4. **Accessible**: WCAG 2.1 AA, B1-taalniveau
---
### 9.2 Kleurenschema (uit UX Stylesheet)
**Primary colors:**
- Primary Blue: `#3b82f6` (buttons, links, actieve elementen)
- Primary Dark: `#1e40af` (hover states)
**Status colors:**
- Success Green: `#10b981` (afgerond, behaald)
- Warning Orange: `#f59e0b` (prioriteit hoog, let op)
- Error Red: `#ef4444` (severity hoog, crisis)
- Info Blue: `#60a5fa` (concept, in bewerking)
**Neutral colors:**
- Gray 900: `#111827` (headings)
- Gray 700: `#374151` (body text)
- Gray 500: `#6b7280` (secondary text)
- Gray 300: `#d1d5db` (borders)
- Gray 100: `#f3f4f6` (backgrounds)
**Leefgebieden colors:**
- DLV: `#8b5cf6` (paars)
- Wonen: `#ec4899` (roze)
- Werk: `#f59e0b` (oranje)
- Sociaal: `#3b82f6` (blauw)
- Vrijetijd: `#10b981` (groen)
- FinanciΓ«n: `#eab308` (geel)
- Gezondheid: `#ef4444` (rood)
---
### 9.3 Typography
**Fonts:**
- Primary: `Inter` (sans-serif, schermgeoptimaliseerd)
- Monospace: `'Courier New', monospace` (voor code/data)
**Sizes:**
- H1: `32px` / `2rem` - bold (Page titles)
- H2: `24px` / `1.5rem` - semibold (Section headers)
- H3: `20px` / `1.25rem` - semibold (Subsection headers)
- Body: `16px` / `1rem` - regular (Default text)
- Small: `14px` / `0.875rem` - regular (Labels, captions)
- Tiny: `12px` / `0.75rem` - regular (Timestamps, metadata)
---
### 9.4 Behandelplan Hoofdpagina - Wireframe
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β HEADER β
β Mini-ECD Logo [Bas Jansen βΌ] [Zoek cliΓ«nt...] β
β ID: CL0002 | 20-11-1992 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β SIDEBAR β MAIN CONTENT β
β β β
β β CliΓ«nten β ββββββββββββββββββββββββββββββββββββββββββ
β βββββββββ β β Behandelplan v2 ββ
β β‘ Dashboard β β Status: β Actief sinds 15-11-2024 ββ
β β‘ Intake β β [Bewerken] [Nieuwe Versie] [Print] ββ
β β‘ Diagnose β ββββββββββββββββββββββββββββββββββββββββββ
β β Behandelplan β β
β β‘ Rapportage β π Behandelstructuur β
β β ββββββββββββββββββββββββββββββββββββββββββ
β β β Duur: 8 weken ββ
β β β Frequentie: Wekelijks ββ
β β β Sessies: 8 ββ
β β β Vorm: Individueel ββ
β β ββββββββββββββββββββββββββββββββββββββββββ
β β β
β β π Leefgebieden Overzicht β
β β ββββββββββββββββββββββββββββββββββββββββββ
β β β [SPINDIAGRAM: 7-hoekige radar] ββ
β β β ββ
β β β Gezondheid (4) ββ
β β β β ββ
β β β DLV (3) βββΌββ Wonen (4) ββ
β β β β± β β² ββ
β β β FinanciΓ«n(3)βββ Werk (2) β οΈ ββ
β β β β² β β± ββ
β β β Vrijetijd ββ΄β Sociaal (2) β οΈ ββ
β β β (3) ββ
β β β ββ
β β β ββ Baseline (grijs - start) ββ
β β β ββ Huidig (blauw - week 4) ββ
β β β Β·Β· Doel (groen gestippeld - week 8) ββ
β β ββββββββββββββββββββββββββββββββββββββββββ
β β β
β β π― SMART Doelen (3) β
β β ββββββββββββββββββββββββββββββββββββββββββ
β β β 1. [πΌ Werk] Terugkeer 4 dagen/week ββ
β β β "Ik werk weer 4 dagen zonder panic"ββ
β β β Voortgang: ββββββββββ 60% ββ
β β β Status: Bezig | Deadline: 8 weken ββ
β β β [Bewerk] [β» Regenereer] [DetailsβΌ]ββ
β β βββββββββββββββββββββββββββββββββββββββββ€β
β β β 2. [π₯ Sociaal] 1x/week activiteit ββ
β β β "Ik zie elke week een vriend" ββ
β β β Voortgang: ββββββββββ 40% ββ
β β β Status: Bezig | Deadline: 8 weken ββ
β β β [Bewerk] [β» Regenereer] [DetailsβΌ]ββ
β β βββββββββββββββββββββββββββββββββββββββββ€β
β β β 3. [π DLV] Dagstructuur opbouwen ββ
β β β "Ik sta elke dag op voor 9 uur" ββ
β β β Voortgang: ββββββββββ 30% ββ
β β β Status: Bezig | Deadline: 8 weken ββ
β β β [Bewerk] [β» Regenereer] [DetailsβΌ]ββ
β β ββββββββββββββββββββββββββββββββββββββββββ
β β β
β β π‘ Interventies β
β β ββββββββββββββββββββββββββββββββββββββββββ
β β β β’ CGT - Cognitieve herstructurering ββ
β β β Gekoppeld aan: Doel 1, 2 ββ
β β β [Details βΌ] ββ
β β βββββββββββββββββββββββββββββββββββββββββ€β
β β β β’ Exposure therapie (gradueel) ββ
β β β Gekoppeld aan: Doel 2 ββ
β β β [Details βΌ] ββ
β β ββββββββββββββββββββββββββββββββββββββββββ
β β β
β β π
Sessie-planning (8 sessies) β
β β ββββββββββββββββββββββββββββββββββββββββββ
β β β # | Focus | Datum | Status ββ
β β βββββΌβββββββββββββββββΌβββββββββΌβββββββββββ
β β β 1 | Psycho-educatie| 15-11 |βAfgerondββ
β β β 2 | Start exposure | 22-11 |β΅Gepland ββ
β β β 3 | Exposure + | 29-11 |β΅Gepland ββ
β β β 4 | ... | ... | ... ββ
β β β ββ
β β β [+ Sessie toevoegen] ββ
β β ββββββββββββββββββββββββββββββββββββββββββ
β β β
β β π Evaluatiemomenten β
β β ββββββββββββββββββββββββββββββββββββββββββ
β β β β° Tussentijds: 13-12-2024 ββ
β β β Status: Gepland ββ
β β β [Evaluatie invullen] ββ
β β βββββββββββββββββββββββββββββββββββββββββ€β
β β β β° Eind: 10-01-2025 ββ
β β β Status: Gepland ββ
β β ββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
---
### 9.5 Micro-interacties
**Doel Regeneratie:**
1. User klikt [β» Regenereer] bij Doel 2
2. Doel 2 card "pulseert" licht (opacity animation)
3. Modal popup verschijnt met fade-in (200ms)
4. Tekstveld heeft focus, placeholder: "Geef extra instructie (optioneel)"
5. User typt instructie
6. Klikt [Regenereer] knop
7. Modal toont loader (spinner + "AI genereert nieuw voorstel...")
8. Na 2-3 sec: nieuw voorstel verschijnt met slide-in
9. User ziet [Accepteer] en [Behoud origineel] knoppen
10. Bij accepteren: smooth transition naar nieuw doel
11. Toast notification: "Doel 2 bijgewerkt"
**Spindiagram Interactie:**
1. Hover over gebied (bijv. "Werk")
2. Highlight die sectie in chart (opacity +20%)
3. Tooltip verschijnt met:
- "Werk/Dagbesteding"
- "Baseline: 2/5 - Werkt 4 dagen, verzuim toegenomen"
- "Huidig: 3/5 - Terug naar 3 dagen, minder verzuim"
- "Doel: 4/5 - Weer 4 dagen stabiel"
4. Click op gebied: scroll naar gekoppelde doelen (smooth scroll)
**Sessie Afvinken:**
1. User klikt status-dropdown bij Sessie 2
2. Dropdown opent met opties: Afgerond, No-show, Verzet, Geannuleerd
3. User selecteert "Afgerond"
4. Status wijzigt naar β (groen check)
5. Notities-veld wordt zichtbaar (slide-down)
6. User kan korte notitie typen
7. Auto-save na 2 seconden inactiviteit
8. Check mark verschijnt in notities-veld: "Opgeslagen"
---
### 9.6 Responsive Design (Tablet)
**Breakpoints:**
- Desktop: β₯1024px (sidebar + main content naast elkaar)
- Tablet: 768-1023px (sidebar collapsible)
- Mobile: <768px (niet primair, maar basis support)
**Tablet layout:**
- Sidebar wordt "hamburger menu" (β°) in header
- Main content full-width
- Spindiagram blijft zichtbaar, maar kleinere radius (300px β 250px)
- Doelen kaarten stapelen verticaal
- Sessie-tabel horizontaal scrollable
---
### 9.7 Accessibility (WCAG 2.1 AA)
**Keyboard navigation:**
- Tab order logisch (top β bottom, left β right)
- Focus indicators duidelijk (blue outline 2px)
- Enter/Space triggeren buttons
- Escape sluit modals
**Screen readers:**
- Alt teksten voor spindiagram (beschrijvende tabel als fallback)
- ARIA labels voor interactive elements
- Heading hierarchy correct (H1 β H2 β H3)
- Form labels expliciet gekoppeld aan inputs
**Color contrast:**
- Text op white: minimaal 4.5:1 ratio
- Status colors: voldoen aan contrast eisen
- Severity "Hoog" (rood): niet alleen kleur, ook icon (β οΈ)
**B1-taalniveau (cliΓ«nt-versies):**
- Zinnen max 15-20 woorden
- Geen moeilijke woorden (jargon, Latijn)
- Actieve vorm ("Je gaat oefenen" ipv "Er zal worden geoefend")
- Concrete voorbeelden ("supermarkt" ipv "sociale situaties")
---
### 9.8 Loading States & Feedback
**AI Generatie (5 seconden):**
```
βββββββββββββββββββββββββββββββββββββββ
β β‘ AI genereert behandelplan... β
β β
β [==================== ] 80% β
β β
β Analyseren van intake-notities β β
β Bepalen behandelfocus β β
β Genereren SMART doelen β³ β
β Interventies koppelen ... β
β Sessie-planning opstellen ... β
βββββββββββββββββββββββββββββββββββββββ
```
**Auto-save Indicator:**
- Kleine indicator rechtsbovenin: "Opgeslagen 2 sec geleden"
- Bij typen: "Aan het opslaan..."
- Check mark bij succes: "β Opgeslagen"
**Error States:**
- AI niet beschikbaar: "AI tijdelijk niet beschikbaar. Je kunt handmatig een plan opstellen of het later opnieuw proberen."
- Validatie fout: Inline error onder veld (rood, met icon)
- Network error: Toast notification onderaan: "Verbinding verloren. Controleer je internet."
---
### 9.9 Empty States
**Geen behandelplan:**
```
βββββββββββββββββββββββββββββββββββββββββ
β β
β π β
β β
β Nog geen behandelplan β
β β
β Vul eerst de intake en diagnose β
β in, dan kan AI een behandelplan β
β genereren. β
β β
β [Naar Intake] [Naar Diagnose] β
β β
βββββββββββββββββββββββββββββββββββββββββ
```
**Geen sessies gepland:**
```
βββββββββββββββββββββββββββββββββββββββββ
β Nog geen sessies gepland β
β AI genereert een grove planning, β
β die je daarna kunt aanpassen. β
β β
β [+ Sessie toevoegen] β
βββββββββββββββββββββββββββββββββββββββββ
```
---
### 9.10 CliΓ«ntportaal - Vereenvoudigde Weergave
**Layout Verschillen:**
- **Sidebar:** Minder opties (Dashboard, Mijn Plan, Afspraken, Contact)
- **Taal:** Alles in B1-Nederlands
- **Acties:** Alleen read-only, geen edit buttons
- **Spindiagram:** Labels uitgeschreven ("Dagelijks leven" ipv "DLV")
- **Doelen:** Alleen cliΓ«nt-versies tonen
- **Interventies:** Uitleg in eenvoudige taal + waarom dit helpt
**Voorbeeld Doel in CliΓ«ntportaal:**
```
βββββββββββββββββββββββββββββββββββββββββ
β πΌ Werk β
β β
β Ik werk weer 4 dagen per week β
β zonder paniek te krijgen β
β β
β Hoe gaat het? β
β ββββββββββ 60% behaald β
β β
β Wat doen we? β
β β’ Oefenen met werk-situaties β
β β’ Ontspanningstechnieken leren β
β β’ Stapje voor stapje opbouwen β
β β
β Wanneer klaar? β
β Over 4 weken (8 januari) β
βββββββββββββββββββββββββββββββββββββββββ
```
---
## 10. Bijlagen & Referenties
π― **Doel:** Bronnen koppelen voor context en consistentie.
### 10.1 Interne Documenten
**Project Management:**
- [Mission Control / Build Plan](./bouwplan-ai-speedrun-v1.md) - Wekelijkse planning
- [FO v2.0](./fo-mini-ecd-v2.md) - Functioneel Ontwerp complete EPD
- [TO v1.2](./to-mini-ecd-v1_2.md) - Technisch Ontwerp (database, API)
- [UX Stylesheet](./ux-stylesheet.md) - Kleuren, typography, componenten
- [API Access Document](./api-acces-mini-ecd.md) - Claude API setup
**Eerdere PRD's:**
- [PRD AI Prefill Behandelplan v1](./prd-ai-prefill-behandelplan-v1.md) - Eerste versie
- [PRD Behandelplan v1.1](./prd-behandelplan-v1_1-leefgebieden.md) - Met leefgebieden
---
### 10.2 Externe Bronnen
**GGZ Richtlijnen & Standaarden:**
- [Multidisciplinaire Richtlijnen GGZ](https://www.ggzrichtlijnen.nl/) - Evidence-based interventies
- [DSM-5](https://www.psychiatrie.nl/dsm-5) - Diagnostische classificatie
- [FHIR CarePlan Resource](http://hl7.org/fhir/careplan.html) - Technische standaard
- [ROM in GGZ](https://www.ggzstandaarden.nl/rom) - Routine Outcome Monitoring
**AI & Prompting:**
- [Anthropic Prompt Engineering Guide](https://docs.anthropic.com/claude/docs/prompt-engineering) - Best practices
- [Claude API Documentation](https://docs.anthropic.com/claude/reference/getting-started-with-the-api) - Technical reference
**UX/UI Resources:**
- [WCAG 2.1](https://www.w3.org/WAI/WCAG21/quickref/) - Accessibility guidelines
- [Recharts Documentation](https://recharts.org/en-US/) - Spindiagram library
- [B1-taalniveau criteria](https://www.cito.nl/kennis-en-innovatie/leesniveaus/b1-taal) - Nederlandse taalstandaard
---
### 10.3 Tools & Libraries
**Frontend:**
- Next.js 15 (React framework)
- TailwindCSS + shadcn/ui (styling)
- Recharts (spindiagram)
- Tiptap (rich text editor)
**Backend:**
- Supabase (database + auth)
- Claude 3.5 Sonnet API (AI generation)
- PostgreSQL (data storage)
**Development:**
- pnpm (package manager)
- TypeScript (type safety)
- Playwright (E2E testing)
---
**Document Status:** Final v2.0
**Volgende Review:** Na Week 3 development
**Eigenaar:** Colin van Zeeland
**Contact:** colin@ikbenlit.nl