diff --git a/docs/specs/behandelplan/prd-behandelplan-v2-final.md b/docs/specs/behandelplan/prd-behandelplan-v2-final.md new file mode 100644 index 0000000..be313e0 --- /dev/null +++ b/docs/specs/behandelplan/prd-behandelplan-v2-final.md @@ -0,0 +1,1142 @@ +# πŸ“„ 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