# Intake Proces: Flow, Intents & UI
**Datum:** 03-02-2026
**Status:** Ontwerp
**Doel:** Documentatie van het intake proces met bijbehorende Cortex intents en UI componenten
---
## 1. Procesoverzicht
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ INTAKE PROCES │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ SCREENING │ ──▶ │ INTAKE START │ ──▶ │ INTAKE UITVOERING │ │
│ │ │ │ │ │ │ │
│ │ • Hulpvraag │ │ • Titel │ │ ┌────────────────────┐ │ │
│ │ • Documenten │ │ • Afdeling │ │ │ 1. Algemeen │ │ │
│ │ • Activiteit │ │ • Startdatum │ │ │ 2. Contactmomenten │ │ │
│ │ • Besluit │ │ │ │ │ 3. Kindcheck │ │ │
│ └──────────────┘ └──────────────┘ │ │ 4. Risicotaxatie │ │ │
│ │ │ │ │ 5. Anamnese │ │ │
│ ▼ │ │ │ 6. Onderzoeken │ │ │
│ geschikt? ───▶ NEE ───▶ STOP │ │ 7. ROM │ │ │
│ │ │ │ 8. Diagnose │ │ │
│ JA │ │ 9. Behandeladvies │ │ │
│ └────────────────────┘ │ └────────────────────┘ │ │
│ │ │ │ │
│ └─────────────┼────────────┘ │
│ ▼ │
│ ┌──────────────────────────┐ │
│ │ INTAKE AFSLUITEN │ │
│ │ │ │
│ │ • Status: afgerond │ │
│ │ • Einddatum │ │
│ │ → Start Behandelplan │ │
│ └──────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
```
---
## 2. Fase 1: Screening
### 2.1 Procesbeschrijving
De screening is de eerste beoordeling of een patiënt geschikt is voor behandeling. Hier wordt de hulpvraag vastgelegd, documenten verzameld (verwijsbrief), en een besluit genomen.
### 2.2 UI Componenten
| Component | Pad | Beschrijving |
|-----------|-----|--------------|
| `ScreeningPage` | `app/epd/patients/[id]/screening/page.tsx` | Container pagina |
| `HelpRequestCard` | `screening/components/help-request-card.tsx` | Hulpvraag invoer (textarea) |
| `DecisionCard` | `screening/components/decision-card.tsx` | Besluit: geschikt/niet_geschikt + afdeling |
| `DocumentCard` | `screening/components/document-card.tsx` | Upload verwijsbrief en documenten |
| `ActivityLog` | `screening/components/activity-log.tsx` | Chronologisch activiteitenlog |
### 2.3 Intents & Queries
| Intent | Type | Input Voorbeelden | Output/Actie |
|--------|------|-------------------|--------------|
| `screening_query` | Query | "Toon screening van Jan"
"Wat is de hulpvraag?" | `ScreeningBlock` - overzicht hulpvraag, besluit, status |
| `hulpvraag_invoer` | Actie | "Hulpvraag: angstklachten en slaapproblemen"
"Noteer hulpvraag: depressieve klachten" | Vult `HelpRequestCard` in |
| `screening_besluit` | Actie | "Jan is geschikt voor behandeling"
"Niet geschikt, doorverwijzen" | Vult `DecisionCard` in |
| `screening_activiteit` | Actie | "Gebeld met huisarts over verwijzing"
"Verwijsbrief ontvangen" | Voegt toe aan `ActivityLog` |
### 2.4 Nudges
| Trigger | Nudge | Priority |
|---------|-------|----------|
| Hulpvraag ingevuld, geen verwijsbrief | "Verwijsbrief uploaden?" | medium |
| Verwijsbrief + hulpvraag compleet | "Screeningsbesluit nemen?" | medium |
| Besluit = geschikt | "Intake starten voor deze patiënt?" | low |
---
## 3. Fase 2: Intake Starten
### 3.1 Procesbeschrijving
Na een positief screeningsbesluit wordt een nieuwe intake aangemaakt met basisgegevens.
### 3.2 UI Componenten
| Component | Pad | Beschrijving |
|-----------|-----|--------------|
| `NewIntakePage` | `intakes/new/page.tsx` | Formulier voor nieuwe intake |
| `NewIntakeForm` | `intakes/components/new-intake-form.tsx` | Titel, afdeling, startdatum |
| `IntakeList` | `intakes/components/intake-list.tsx` | Overzicht alle intakes van patiënt |
### 3.3 Intents & Queries
| Intent | Type | Input Voorbeelden | Output/Actie |
|--------|------|-------------------|--------------|
| `intake_starten` | Actie | "Start intake voor Jan"
"Nieuwe intake afdeling Volwassenen" | Opent `NewIntakeForm` met prefill |
| `intake_lijst` | Query | "Toon intakes van Jan"
"Welke intakes heeft Marie?" | `IntakeListBlock` - lijst met status |
---
## 4. Fase 3: Intake Uitvoering
### 4.1 Overzicht Tabs
| # | Tab | Verplicht | Component | Beschrijving |
|---|-----|-----------|-----------|--------------|
| 1 | Algemeen | ✅ | `IntakePage` | Basisgegevens intake |
| 2 | Contactmomenten | ❌ | `ContactManager` | Gesprekken, telefoontjes |
| 3 | Kindcheck | ⚠️* | `KindcheckForm` | Kinderen in beeld, zorgen, acties |
| 4 | Risicotaxatie | ✅ | `RiskManager` | Suïcidaliteit, agressie, etc. |
| 5 | Anamnese | ✅ | `AnamneseManager` | Psychiatrisch, sociaal, somatisch |
| 6 | Onderzoeken | ❌ | `ExaminationManager` | Lichamelijk, psychologisch onderzoek |
| 7 | ROM | ❌ | `ExaminationManager` (isRom) | Vragenlijsten (OQ-45, etc.) |
| 8 | Diagnose | ✅ | `DiagnosisManager` | ICD-10 classificaties |
| 9 | Behandeladvies | ✅ | `TreatmentAdviceForm` | Advies, programma, behandelaar |
*Kindcheck is wettelijk verplicht bij patiënten met kinderen
### 4.2 Tab-specifieke Intents
#### 4.2.1 Algemeen
| Intent | Type | Input | Output |
|--------|------|-------|--------|
| `intake_algemeen` | Query | "Toon intake gegevens"
"Wanneer is de intake gestart?" | Toont algemene info |
| `intake_status` | Query | "Wat is de status van de intake?"
"Is de intake compleet?" | Status + checklist onvolledige secties |
#### 4.2.2 Contactmomenten
| Intent | Type | Input | Output |
|--------|------|-------|--------|
| `contact_toevoegen` | Actie | "Intakegesprek gehad met Jan"
"Telefonisch contact: besproken wachttijd" | Voegt contactmoment toe |
| `contacten_query` | Query | "Welke contactmomenten zijn er geweest?" | Lijst contactmomenten |
#### 4.2.3 Kindcheck
| Intent | Type | Input | Output |
|--------|------|-------|--------|
| `kindcheck_invullen` | Actie | "Kindcheck: 2 kinderen, geen zorgen"
"Geen kinderen in beeld" | Vult kindcheck formulier |
| `kindcheck_query` | Query | "Is de kindcheck gedaan?"
"Hoeveel kinderen heeft Jan?" | Status + samenvatting |
#### 4.2.4 Risicotaxatie
| Intent | Type | Input | Output |
|--------|------|-------|--------|
| `risico_toevoegen` | Actie | "Risico suïcidaliteit: matig"
"Agressierisico laag" | Voegt risico toe aan `RiskManager` |
| `risico_query` | Query | "Wat zijn de risico's van Jan?"
"Toon risicotaxatie" | Risico overzicht met levels |
#### 4.2.5 Anamnese
| Intent | Type | Input | Output |
|--------|------|-------|--------|
| `anamnese_toevoegen` | Actie | "Psychiatrische anamnese: eerste depressie 2019"
"Sociale anamnese: woont alleen" | Voegt anamnese sectie toe |
| `anamnese_query` | Query | "Wat is de voorgeschiedenis?"
"Toon anamnese" | Anamnese overzicht |
#### 4.2.6 Onderzoeken
| Intent | Type | Input | Output |
|--------|------|-------|--------|
| `onderzoek_toevoegen` | Actie | "Psychologisch onderzoek aangevraagd"
"Lab: bloedonderzoek normaal" | Voegt onderzoek toe |
| `onderzoeken_query` | Query | "Welke onderzoeken zijn gedaan?" | Lijst onderzoeken + resultaten |
#### 4.2.7 ROM
| Intent | Type | Input | Output |
|--------|------|-------|--------|
| `rom_toevoegen` | Actie | "ROM: OQ-45 score 82"
"PHQ-9 afgenomen, score 14" | Voegt ROM-meting toe |
| `rom_query` | Query | "Wat zijn de ROM scores?"
"Toon vragenlijsten" | ROM overzicht met scores |
#### 4.2.8 Diagnose
| Intent | Type | Input | Output |
|--------|------|-------|--------|
| `diagnose_toevoegen` | Actie | "Diagnose: depressieve stoornis"
"Hoofddiagnose F32.1" | Opent ICD-10 zoeken + voegt toe |
| `diagnose_query` | Query | "Wat zijn de diagnoses?"
"Welke diagnose heeft Jan?" | Diagnose overzicht |
#### 4.2.9 Behandeladvies
| Intent | Type | Input | Output |
|--------|------|-------|--------|
| `behandeladvies_invoer` | Actie | "Behandeladvies: CGT bij angst"
"Advies: EMDR voor trauma" | Vult behandeladvies formulier |
| `behandeladvies_query` | Query | "Wat is het behandeladvies?"
"Toon advies" | Behandeladvies overzicht |
### 4.3 Navigatie Intents
| Intent | Type | Input | Output |
|--------|------|-------|--------|
| `intake_navigeer` | Navigatie | "Ga naar risicotaxatie"
"Open kindcheck"
"Naar diagnose" | Navigeert naar specifieke tab |
| `intake_volgende` | Navigatie | "Volgende stap"
"Ga verder" | Navigeert naar volgende tab |
| `intake_vorige` | Navigatie | "Vorige"
"Terug" | Navigeert naar vorige tab |
---
## 5. Fase 4: Intake Afsluiten
### 5.1 Procesbeschrijving
Wanneer alle verplichte secties zijn ingevuld, kan de intake worden afgesloten.
### 5.2 Intents
| Intent | Type | Input | Output |
|--------|------|-------|--------|
| `intake_afsluiten` | Actie | "Sluit intake af"
"Intake afronden" | Zet status op 'afgerond' + einddatum |
| `intake_samenvatting` | Query | "Samenvatting intake"
"Geef overzicht van de intake" | AI-gegenereerde samenvatting |
| `intake_checklist` | Query | "Wat moet ik nog doen?"
"Is de intake compleet?" | Checklist onvolledige secties |
### 5.3 Nudges
| Trigger | Nudge | Priority |
|---------|-------|----------|
| Alle verplichte secties ingevuld | "Intake afsluiten?" | medium |
| Intake afgesloten | "Behandelplan opstellen?" | low |
| Intake > 4 weken open | "Intake nog actueel? Afsluiten of voortzetten?" | low |
---
## 6. Intent Matrix (Totaaloverzicht)
### 6.1 Alle Intents
| # | Intent ID | Type | Fase | Priority |
|---|-----------|------|------|----------|
| 1 | `screening_query` | Query | Screening | 🔴 Hoog |
| 2 | `hulpvraag_invoer` | Actie | Screening | 🟡 Middel |
| 3 | `screening_besluit` | Actie | Screening | 🟡 Middel |
| 4 | `screening_activiteit` | Actie | Screening | 🔵 Laag |
| 5 | `intake_starten` | Actie | Start | 🔴 Hoog |
| 6 | `intake_lijst` | Query | Start | 🟡 Middel |
| 7 | `intake_navigeer` | Navigatie | Uitvoering | 🔴 Hoog |
| 8 | `intake_status` | Query | Uitvoering | 🔴 Hoog |
| 9 | `contact_toevoegen` | Actie | Uitvoering | 🟡 Middel |
| 10 | `kindcheck_invullen` | Actie | Uitvoering | 🟡 Middel |
| 11 | `kindcheck_query` | Query | Uitvoering | 🟡 Middel |
| 12 | `risico_toevoegen` | Actie | Uitvoering | 🔴 Hoog |
| 13 | `risico_query` | Query | Uitvoering | 🔴 Hoog |
| 14 | `anamnese_toevoegen` | Actie | Uitvoering | 🟡 Middel |
| 15 | `anamnese_query` | Query | Uitvoering | 🟡 Middel |
| 16 | `onderzoek_toevoegen` | Actie | Uitvoering | 🔵 Laag |
| 17 | `onderzoeken_query` | Query | Uitvoering | 🔵 Laag |
| 18 | `rom_toevoegen` | Actie | Uitvoering | 🟡 Middel |
| 19 | `rom_query` | Query | Uitvoering | 🟡 Middel |
| 20 | `diagnose_toevoegen` | Actie | Uitvoering | 🔴 Hoog |
| 21 | `diagnose_query` | Query | Uitvoering | 🔴 Hoog |
| 22 | `behandeladvies_invoer` | Actie | Uitvoering | 🔴 Hoog |
| 23 | `behandeladvies_query` | Query | Uitvoering | 🔴 Hoog |
| 24 | `intake_afsluiten` | Actie | Afsluiten | 🟡 Middel |
| 25 | `intake_samenvatting` | Query | Afsluiten | 🟡 Middel |
| 26 | `intake_checklist` | Query | Afsluiten | 🟡 Middel |
### 6.2 Verdeling
| Type | Aantal |
|------|--------|
| Query | 13 |
| Actie | 11 |
| Navigatie | 2 |
| **Totaal** | **26** |
| Priority | Aantal |
|----------|--------|
| 🔴 Hoog | 10 |
| 🟡 Middel | 13 |
| 🔵 Laag | 3 |
---
## 7. UI Blocks (Nieuw te bouwen)
Voor Cortex moeten we nieuwe blocks bouwen die de intent resultaten tonen:
| Block | Toont | Bron Data |
|-------|-------|-----------|
| `ScreeningBlock` | Hulpvraag, besluit, status | `getScreeningSummary()` |
| `IntakeStatusBlock` | Checklist tabs, voortgang | Nieuwe functie nodig |
| `IntakeListBlock` | Lijst intakes van patiënt | `getIntakesByPatient()` |
| `KindcheckBlock` | Samenvatting kindcheck | `getKindcheck()` |
| `RisicoBlock` | Risico's met levels | `getRiskAssessments()` |
| `AnamneseBlock` | Anamnese samenvatting | `getAnamneses()` |
| `DiagnoseBlock` | Diagnoses lijst | `getDiagnoses()` |
| `BehandeladviesBlock` | Behandeladvies | `getTreatmentAdvice()` |
| `IntakeSamenvattingBlock` | AI-samenvatting hele intake | Nieuwe AI functie nodig |
---
## 8. Implementatie Prioriteit
### 8.1 MVP (Fase 1)
Focus op de meest waardevolle intents:
1. **`intake_status`** - "Wat moet ik nog doen?" → Checklist
2. **`intake_navigeer`** - "Ga naar risicotaxatie" → Direct navigeren
3. **`risico_query`** - "Wat zijn de risico's?" → Risico overzicht
4. **`diagnose_query`** - "Welke diagnoses?" → Diagnose overzicht
5. **`intake_samenvatting`** - "Samenvatting intake" → AI samenvatting
### 8.2 Fase 2
6. **`screening_query`** - Screening overzicht
7. **`kindcheck_query`** - Kindcheck status
8. **`behandeladvies_query`** - Behandeladvies tonen
9. **`intake_starten`** - Nieuwe intake via spraak
### 8.3 Fase 3 (Actie intents)
10. **`risico_toevoegen`** - Risico toevoegen via spraak
11. **`diagnose_toevoegen`** - Diagnose toevoegen
12. **`kindcheck_invullen`** - Kindcheck invullen
13. Overige actie intents...
---
## 9. Open Vragen
1. **Contextbeheer**: Hoe weet Cortex welke intake actief is als een patiënt meerdere intakes heeft?
2. **Navigatie vs Blocks**: Navigeren we naar bestaande pagina's of tonen we data in Cortex blocks?
3. **Actie confirmatie**: Welke acties vereisen bevestiging voordat ze uitgevoerd worden?
4. **Integratie behandelplan**: Hoe koppelen we intake-afsluiting aan behandelplan-start?
---
## Versiehistorie
| Versie | Datum | Auteur | Wijziging |
|--------|-------|--------|-----------|
| v0.1 | 03-02-2026 | Colin Lit | Initieel ontwerp |