# 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 |