Files
triqura-ecd/docs/specs/behandelplan/prd-behandelplan-v2-final.md
2025-12-02 19:34:46 +01:00

1143 lines
47 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📄 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<br>• Behandelaar reviewt ALTIJD (AI is suggestie, geen besluit)<br>• Validatie: plan moet minimaal 1 doel, 1 interventie bevatten<br>• Fallback: behandelaar kan handmatig plan maken |
| **R-02** | **Behandelaar vindt AI-plan niet bruikbaar** | 🟠 Hoog | 🟡 Middel | • Manual mode beschikbaar (volledig handmatig)<br>• Micro-regeneratie per onderdeel (niet alles opnieuw)<br>• Templates als alternatief<br>• User feedback tijdens testing → prompt verbeteren |
| **R-03** | **Leefgebieden spindiagram te complex** | 🟡 Middel | 🟡 Middel | • Uitleg bij eerste gebruik (tooltip/walkthrough)<br>• Hover toont details per gebied<br>• Kan verborgen worden als niet gewenst<br>• Test met niet-technische gebruikers |
| **R-04** | **Versie-beheer wordt te complex** | 🟡 Middel | 🟡 Middel | • Start simpel: v1, v2, v3 (geen branching)<br>• Diff-view is optioneel (stretch)<br>• Duidelijke labels: "Actief", "Afgerond"<br>• Max 5-10 versies verwacht, overzichtelijk |
| **R-05** | **Cliënt begrijpt B1-taal niet** | 🟡 Middel | 🟢 Laag | • Test cliënt-versies met echte cliënten<br>• Behandelaar kan aanpassen na AI-generatie<br>• Voorbeelden in UI (hover/tooltip)<br>• Versie voor lage geletterdheid (post-MVP) |
| **R-06** | **Sessie-planning wordt niet gebruikt** | 🟢 Laag | 🟡 Middel | • Sessie-planning is optioneel, niet verplicht<br>• AI genereert grove planning (makkelijk starten)<br>• Behandelaar kan ook alleen evaluaties bijhouden |
| **R-07** | **AI API rate limits / downtime** | 🟠 Hoog | 🟢 Laag | • Error handling: duidelijke foutmeldingen<br>• Retry logic (3x met backoff)<br>• Fallback: "AI tijdelijk niet beschikbaar, probeer later of maak handmatig"<br>• Cached responses voor demo (pre-generated) |
| **R-08** | **Scope creep (te veel features)** | 🟡 Middel | 🟠 Hoog | • Strikte PRD met "Niet in Scope" sectie<br>• Weekly review: focus op MVP<br>• Post-MVP backlog voor ideeën<br>• Demo-readiness prioriteit #1 |
| **R-09** | **Privacy concerns (test met echte data)** | 🔴 Hoog | 🟢 Laag | • ALLEEN demo-data (fictieve cliënten)<br>• Duidelijke disclaimer in UI: "Demo-omgeving"<br>• Geen productie-data tijdens Speedrun |
| **R-10** | **Time crunch Week 3** | 🟡 Middel | 🟡 Middel | • Prioriteer Must Have > Should Have > Could Have<br>• Spindiagram kan laatste dag (1 uur werk)<br>• Manual mode kan post-MVP<br>• 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