feat: rapportage API, speech recorder refactor, docs reorganisatie

Multiple features and improvements:

Reports/Rapportage API:
- Created REST API endpoints: /api/reports (GET/POST), /api/reports/[id] (GET/PATCH/DELETE)
- Added /api/reports/classify endpoint for AI classification
- Supabase migrations: reports table + RLS policies
- Server utilities: api-client.ts for DRY fetch logic
- Type definitions: lib/types/report.ts with Zod schemas
- Removed old rapportage-modal component (replaced by split-view)

Speech Recorder Refactor:
- Moved speech-recorder from intake-specific to shared components/
- Updated treatment-advice-form to use new location
- Updated intake actions for speech functionality

UI Components (shadcn):
- Added dialog, dropdown-menu, toast, toaster components
- Added use-toast hook for toast notifications

Documentation:
- Reorganized docs/release/ → docs/reports/ for better structure
- Archived old specs to docs/specs/archive/
- Added screening-system.mdx documentation
- Added rapportage-split-view-design.md
- Added UI screenshots for troubleshooting

Dependencies:
- Updated package.json and pnpm-lock.yaml
- Regenerated database.types.ts from Supabase

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
colinislit
2025-11-24 14:14:06 +01:00
parent 0130e28f1e
commit a789bebe96
37 changed files with 5034 additions and 1977 deletions

View File

@@ -84,20 +84,28 @@
"order": 5,
"status": "planned"
},
{
"slug": "screening-system",
"title": "Screening Systeem",
"group": "features",
"description": "Screening proces voor nieuwe cliënten met hulpvraag en besluitvorming",
"order": 6,
"status": "active"
},
{
"slug": "intake-system",
"title": "Intake Systeem",
"group": "features",
"description": "Intake gesprekken en AI-analyse",
"order": 6,
"status": "planned"
"description": "Intake gesprekken en gestructureerde intake-workflow",
"order": 7,
"status": "active"
},
{
"slug": "treatment-planning",
"title": "Behandelplanning",
"group": "features",
"description": "SMART doelen en voortgang monitoring",
"order": 7,
"order": 8,
"status": "planned"
},
{
@@ -105,14 +113,14 @@
"title": "AI Integrations",
"group": "features",
"description": "AI-gestuurde workflows",
"order": 8
"order": 9
},
{
"slug": "verpleegkundige-overdracht",
"title": "Verpleegkundige Overdracht",
"group": "features",
"description": "Efficiënte overdracht voor GGZ verpleegkundigen met ROM-metingen",
"order": 9,
"order": 10,
"status": "planned"
},
{
@@ -120,7 +128,7 @@
"title": "Spraakgestuurd Rapporteren",
"group": "features",
"description": "AI-gedreven spraakopname voor dictaat en metingen extractie",
"order": 10,
"order": 11,
"status": "planned"
},
{

View File

@@ -3,63 +3,201 @@ title: "Intake Systeem"
category: "intake-system"
group: "features"
version: "1.0.0"
releaseDate: "TBD"
status: "planned"
description: "Intake gesprekken registreren, notities maken en AI-gestuurde analyse voor diagnose ondersteuning"
releaseDate: "2025-11-23"
status: "completed"
description: "Intake gesprekken registreren, notities maken en gestructureerde intake-workflow voor GGZ-behandelaars"
---
## Overview
## Overzicht
Het intake systeem vormt de basis voor cliëntbegeleiding in het Mini-ECD prototype. Behandelaars kunnen hier gesprekken documenteren en automatisch laten analyseren door AI.
Het intake systeem biedt een complete workflow voor het uitvoeren en documenteren van intakes in de GGZ. Na een succesvolle screening wordt een intake aangemaakt waarbij alle aspecten van de hulpvraag systematisch worden gedocumenteerd.
**Kernfunctionaliteit:**
- Intake gesprekken registreren
- Gestructureerde notities maken
- AI-gestuurde samenvatting
- Probleemprofiel analyse
- Koppeling naar diagnose
- Nieuwe intakes aanmaken per afdeling
- Overzicht van alle intakes van een cliënt
- Gestructureerde intake met meerdere onderdelen
- Contactmomenten registreren
- Anamnese vastleggen
- Risicotaxatie uitvoeren
- Diagnose stellen
- Behandeladvies formuleren
---
## Binnenkort beschikbaar
## Intake Aanmaken
Deze documentatie is nog in ontwikkeling. De volgende onderwerpen worden toegevoegd:
### Nieuwe Intake Starten
**Intake Formulier:**
- Gespreksnotities editor
- Gestructureerde vragen
- Type intake (eerste gesprek, telefonisch, follow-up)
- Tijdregistratie
1. Open het cliëntdossier
2. Navigeer naar het tabblad "Intakes"
3. Klik op **"Nieuwe Intake"**
4. Vul het formulier in:
- **Titel**: Korte omschrijving (bijv. "Eerste intake ambulant")
- **Afdeling**: Selecteer de behandelafdeling (Volwassenen, Jeugd, Forensisch, etc.)
- **Status**: Lopend / Afgerond / Geannuleerd
- **Startdatum**: Datum van eerste contact
- **Notities**: Extra context of bijzonderheden
**AI Samenvatting:**
- Automatische analyse van notities
- Kernpunten extractie
- Probleemcategorieën identificatie
- Risico-inschatting
5. Klik op **"Intake Aanmaken"**
**Intake Overzicht:**
- Chronologische geschiedenis
- Detail weergave per intake
- Slide-in panel interface
- Bewerken en verwijderen
De intake wordt aangemaakt en u wordt doorgeleid naar de intake detail pagina.
**Probleemprofiel:**
- DSM-light categorisatie
- Ernst indicatie
- Multi-problematiek detectie
- Overgang naar diagnose
---
## Intake Overzicht
Het intake overzicht toont alle intakes van een cliënt in chronologische volgorde.
**Weergegeven informatie:**
- Titel van de intake
- Afdeling waar de intake plaatsvindt
- Status (lopend, afgerond, geannuleerd)
- Startdatum
**Acties:**
- Klik op een intake om de details te bekijken
- Bekijk en bewerk alle onderdelen via de tabbladen
---
## Intake Onderdelen
Elke intake bestaat uit meerdere onderdelen die via tabbladen toegankelijk zijn:
### 1. Algemeen
Toont de basisinformatie van de intake:
- Titel, afdeling, status, startdatum
- Algemene notities bij de intake
### 2. Contactmomenten
Registreer alle contactmomenten tijdens de intake:
- **Datum en tijd** van het contact
- **Type contact**: Gesprek, Telefonisch, E-mail, Overig
- **Duur** in minuten
- **Notities** over het contact
**Handelingen:**
- Voeg een nieuw contactmoment toe
- Bekijk chronologisch overzicht
- Verwijder contactmomenten indien nodig
### 3. Kindcheck
Specifiek voor jeugd-intakes: vastleggen van kindcheck informatie conform GGZ-richtlijnen.
### 4. Risicotaxatie
Beoordeel risico's zoals:
- Suïcidaliteit
- Agressie
- Zelfverwaarlozing
- Middelengebruik
- Andere risicofactoren
**Per risico vastleggen:**
- **Datum** van de taxatie
- **Risicotype**
- **Ernst**: Laag, Matig, Hoog, Acuut
- **Bevindingen**: Beschrijving van het risico
- **Maatregelen**: Genomen acties
### 5. Anamnese
Systematisch verzamelen van voorgeschiedenis:
**Types anamnese:**
- Psychiatrische anamnese
- Sociale anamnese
- Medische anamnese
- Familieanamnese
- Ontwikkelingsanamnese
- Overig
**Per anamnese vastleggen:**
- **Datum** van gesprek
- **Type** anamnese
- **Inhoud**: Bevindingen en observaties
- **Notities**: Extra context
### 6. Onderzoeken
Registreer alle uitgevoerde onderzoeken:
- Psychologisch onderzoek
- Neurologisch onderzoek
- Laboratoriumonderzoek
- Beeldvorming
- Overig
**Per onderzoek:**
- **Datum**
- **Type onderzoek**
- **Uitslag**: Bevindingen
- **Interpretatie**: Conclusies
### 7. ROM (Routine Outcome Monitoring)
Vastleggen van ROM-metingen voor behandelevaluatie.
### 8. Diagnose
Stel diagnoses volgens DSM-5 classificatie:
- **Datum** van diagnose
- **Type**: Hoofddiagnose / Nevendiagnose
- **DSM-code** en omschrijving
- **Toelichting**: Onderbouwing van de diagnose
### 9. Behandeladvies
Formuleer het behandeladvies op basis van de intake:
- **Advies**: Welke behandeling wordt geadviseerd
- **Doelen**: Behandeldoelen
- **Afspraken**: Vervolgstappen
---
## Workflow
### Typische Intake Workflow
1. **Intake starten** na screening besluit
2. **Contactmomenten** plannen en vastleggen
3. **Kindcheck** uitvoeren (indien van toepassing)
4. **Risicotaxatie** uitvoeren
5. **Anamnese** afnemen (meerdere types)
6. **Onderzoeken** aanvragen en resultaten vastleggen
7. **ROM-metingen** uitvoeren
8. **Diagnose** stellen
9. **Behandeladvies** formuleren
10. Intake afronden (status wijzigen naar "Afgerond")
---
## Tips voor Gebruik
**Goede praktijk:**
- Vul onderdelen meteen na het gesprek in voor beste nauwkeurigheid
- Gebruik de notitievelden voor context die niet in standaardvelden past
- Documenteer alle contactmomenten voor volledig overzicht
- Voer risicotaxatie regelmatig uit bij wijzigende situaties
- Gebruik duidelijke datums om chronologie te behouden
**Let op:**
- Alle gegevens worden automatisch opgeslagen
- Verwijderde items kunnen niet worden hersteld
- Zorg voor complete documentatie voordat u de intake afrondt
---
## Gerelateerde Documentatie
**Interface:**
- [Interface Design System](/documentatie/interface-design) - UI/UX specificaties voor intake schermen
**Workflow:**
- [Screening Systeem](/documentatie/screening-system) - Voorafgaand aan intake
**Features:**
- Client Management (binnenkort)
- Behandelplanning (binnenkort)
- AI Integrations (binnenkort)
**Interface:**
- [Interface Design System](/documentatie/interface-design) - UI/UX specificaties
**Basis:**
- [Authentication System](/documentatie/authentication) - Toegangsbeheer
- [Client Management](/documentatie/client-management) - Cliëntbeheer

View File

@@ -0,0 +1,203 @@
---
title: "Screening Systeem"
category: "screening-system"
group: "features"
version: "1.0.0"
releaseDate: "2025-11-23"
status: "completed"
description: "Screening proces voor nieuwe cliënten: hulpvraag, documenten en besluitvorming"
---
## Overzicht
Het screening systeem is de eerste stap in het cliënttraject. Hier wordt de hulpvraag van een nieuwe cliënt beoordeeld en wordt bepaald of de cliënt geschikt is voor intake bij de instelling.
**Kernfunctionaliteit:**
- Hulpvraag vastleggen
- Documenten uploaden (verwijsbrief, intake formulieren)
- Screeningsbesluit nemen
- Afdeling voor intake bepalen
- Activiteitenlog bijhouden
---
## Screening Pagina
De screening pagina bestaat uit vier hoofdonderdelen:
### 1. Hulpvraag
Hier legt u de zorgvraag van de cliënt vast.
**Hoe te gebruiken:**
1. Klik in het tekstveld "Hulpvraag"
2. Beschrijf de hulpvraag van de cliënt in eigen woorden
3. Neem belangrijke context en achtergrond op
4. Klik op **"Opslaan"**
**Tips:**
- Wees specifiek over de aard van de hulpvraag
- Vermeld urgentie indien van toepassing
- Noteer bijzondere omstandigheden
### 2. Screeningsbesluit
Het screeningsbesluit is alleen zichtbaar voor psychologen en behandelaars.
**Opties:**
- **Geschikt voor intake**: Cliënt wordt doorgestuurd voor intake
- **Niet geschikt / doorverwijzen**: Cliënt wordt niet aangenomen
**Stappen voor "Geschikt voor intake":**
1. Selecteer **"Geschikt voor intake"**
2. Kies de **afdeling** waar de intake moet plaatsvinden:
- Volwassenen
- Jeugd (< 18 jaar)
- Forensisch
- Verslaving
- Ouderen (65+)
- FACT
3. Voeg optioneel **notities** toe bij het besluit
4. Klik op **"Opslaan besluit"**
**Stappen voor "Niet geschikt":**
1. Selecteer **"Niet geschikt / doorverwijzen"**
2. Voeg **notities** toe met reden of alternatief
3. Klik op **"Opslaan besluit"**
**Waarschuwing:**
Als er nog geen verwijsbrief is geüpload, wordt een waarschuwing getoond. Het is sterk aan te raden om een verwijsbrief toe te voegen voordat u een definitief besluit neemt.
### 3. Documenten
Upload en beheer documenten voor de screening.
**Documenttypen:**
- Verwijsbrief (vereist voor volledig dossier)
- Intake formulier
- Medische informatie
- Andere relevante documenten
**Document uploaden:**
1. Klik op **"Document toevoegen"**
2. Selecteer het **documenttype**
3. Voeg optionele **notities** toe
4. Upload het bestand
5. Klik op **"Opslaan"**
**Documenten bekijken:**
- Klik op een document in de lijst om te openen
- Zie documenttype, datum en notities
- Download indien nodig
**Documenten verwijderen:**
- Klik op de verwijderknop bij het document
- Bevestig de verwijdering
### 4. Activiteitenlog
De activiteitenlog toont automatisch alle acties die zijn uitgevoerd tijdens de screening.
**Vastgelegde activiteiten:**
- Hulpvraag toegevoegd/gewijzigd
- Document geüpload
- Screeningsbesluit genomen
- Afdeling toegewezen
**Informatie per activiteit:**
- Type activiteit
- Tijdstip
- Details van de actie
De activiteitenlog wordt automatisch bijgewerkt en hoeft niet handmatig te worden beheerd.
---
## Workflow
### Standaard Screening Workflow
1. **Cliënt aanmaken** in het systeem
2. Naar **Screening** tabblad navigeren
3. **Hulpvraag** vastleggen op basis van intake gesprek/formulier
4. **Verwijsbrief** uploaden (indien beschikbaar)
5. Eventueel aanvullende **documenten** uploaden
6. **Screeningsbesluit** nemen:
- Beoordeel of cliënt geschikt is
- Selecteer afdeling bij goedkeuring
- Documenteer reden bij afwijzing
7. Bij goedkeuring: **Intake aanmaken** (zie [Intake Systeem](/documentatie/intake-system))
---
## Toegangsrechten
**Hulpvraag:**
- Zichtbaar voor: Alle behandelaars
- Bewerken: Alle behandelaars
**Screeningsbesluit:**
- Zichtbaar voor: Alleen psychologen en senior behandelaars
- Bewerken: Alleen psychologen en senior behandelaars
**Documenten:**
- Zichtbaar voor: Alle behandelaars met toegang tot cliënt
- Uploaden: Alle behandelaars
- Verwijderen: Alleen uploader en senior behandelaars
**Activiteitenlog:**
- Zichtbaar voor: Alle behandelaars
- Bewerken: Niet mogelijk (automatisch)
---
## Tips voor Gebruik
**Goede praktijk:**
- Upload altijd een verwijsbrief voordat u een screeningsbesluit neemt
- Wees helder en beknopt in de hulpvraag omschrijving
- Documenteer de reden bij afwijzing voor toekomstige referentie
- Controleer de activiteitenlog voor volledigheid van het proces
**Let op:**
- Screeningsbesluiten zijn definitief en vormen basis voor vervolgtraject
- Upload geen documenten met persoonlijke gegevens van derden
- Alle acties worden automatisch gelogd in de activiteitenlog
**Veelgemaakte fouten:**
- Vergeten verwijsbrief te uploaden
- Geen afdeling selecteren bij goedkeuring
- Onvolledige hulpvraag beschrijving
---
## Na Screening
### Bij goedkeuring (Geschikt voor intake):
1. Screeningsbesluit is vastgelegd met toegewezen afdeling
2. Ga naar **Intakes** tabblad
3. Klik op **"Nieuwe Intake"**
4. Selecteer de juiste afdeling (zoals bepaald bij screening)
5. Volg de intake workflow (zie [Intake Systeem](/documentatie/intake-system))
### Bij afwijzing (Niet geschikt):
1. Screeningsbesluit is vastgelegd met reden
2. Informeer cliënt over besluit en alternatieve zorgopties
3. Dossier kan worden gearchiveerd
4. Documentatie blijft beschikbaar voor eventuele vragen
---
## Gerelateerde Documentatie
**Workflow:**
- [Intake Systeem](/documentatie/intake-system) - Vervolg na goedkeuring
- [Client Management](/documentatie/client-management) - Cliëntbeheer
**Interface:**
- [Interface Design System](/documentatie/interface-design) - UI/UX specificaties
**Basis:**
- [Authentication System](/documentatie/authentication) - Toegangsbeheer