feat(verpleegrapportage): Nieuwe module + opruiming codebase

Verpleegrapportage module:
- Nieuwe /epd/verpleegrapportage met patiëntenoverzicht
- Rapportage invoer workspace met timeline view
- Overdracht overzicht met AI-samenvatting
- API endpoints voor verpleegrapportage data

Opruiming:
- Oude /epd/overdracht en /epd/dagregistratie verwijderd (vervangen)
- Oude /api/nursing-logs verwijderd (geconsolideerd naar reports)
- Verouderde design docs en reports verwijderd
- Fonts verplaatst van docs/ naar public/fonts/

Bugfixes:
- Risk-manager: fix constraint violation (db values vs display labels)
- Overdracht API: filter op rapportages i.p.v. encounters

Database:
- Migratie voor consolidatie nursing_logs naar reports tabel

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
colinislit
2025-12-08 11:19:48 +01:00
parent d9340ba296
commit 75c7e284b9
222 changed files with 5473 additions and 7494 deletions

View File

@@ -1,108 +1,231 @@
---
title: "Verpleegkundige Overdracht"
title: "Verpleegkundige Rapportage & Overdracht"
category: "verpleegkundige-overdracht"
group: "features"
version: "1.0.0"
releaseDate: "TBD"
status: "planned"
description: "Efficiënte overdracht workflow voor GGZ professionals met 6+ overdrachten per dag, geïntegreerd met ROM-metingen en observaties"
releaseDate: "2025-12-08"
status: "completed"
description: "Centrale module voor verpleegkundige notities, overdracht en AI-gestuurde samenvattingen"
---
## Overview
## Overzicht
GGZ professionals in klinische settings moeten meerdere keren per dag cliënt overdrachten doen aan psychiaters, psychologen en collega's van de volgende dienst. Dit systeem helpt om dat efficiënter te maken.
**LinkedIn Feedback:**
> "Kun je iets slims bouwen voor een verpleegkundige die 6 overdrachten heeft per dag aan artsen aan de volgende dienst en ondertussen ook allerlei metingen doet en moet opslaan?"
De Verpleegkundige Rapportage & Overdracht module biedt een complete workflow voor het vastleggen van verpleegkundige notities en het voorbereiden van overdrachten aan de volgende dienst. De module bestaat uit twee hoofdschermen: **Rapportage** voor het invoeren van notities en **Overdracht** voor het overzicht met AI-samenvatting.
---
## Kernfunctionaliteit
## Navigatie
**Overdracht Workflow:**
- SBAR templates aangepast voor GGZ (Situation, Background, Assessment, Recommendation)
- Dienst schema met 6+ overdrachten per dag (nacht→dag, visite, avond→nacht)
- Automatisch ophalen van laatste observaties en ROM-scores
- Risico markers (Stabiel, Observatie, Verhoogd risico, Crisis)
Via het menu **Verpleegrapportage** met submenu:
- **Rapportage** - Invoerscherm voor verpleegkundige notities (standaard landing page)
- **Overdracht** - Overzicht van alle patiënten met rapportages en AI-samenvatting
**Observaties & Metingen:**
- Psychische observaties (stemming, angst, suïcidaliteit, agressie)
- ROM-metingen (PHQ-9, GAD-7, HONOS)
- Gedragsobservaties (slaap, eetpatroon, zelfzorg)
- Medicatie compliance en bijwerkingen
- Trend visualisatie over tijd
**Multi-Cliënt Overzicht:**
- Dashboard met alle cliënten en hun risico niveau
- Quick actions voor urgente situaties
- Template library (nieuwe opname, crisis, proefverlof, ontslag)
**Routes:**
- `/epd/verpleegrapportage` → Rapportage (invoer)
- `/epd/verpleegrapportage/overdracht` → Overdracht (overzicht + AI)
---
## Voordelen
## Rapportage Module
**Tijdsbesparing:**
- Van 10 minuten → 5 minuten per overdracht
- Automatische data aggregatie (geen handmatig opzoeken)
- Templates elimineren herhaling
### Doel
Centrale werkplek voor het vastleggen van korte verpleegkundige notities tijdens de ronde.
**Kwaliteit & Veiligheid:**
- Gestructureerde methode voorkomt vergeten details
- Continuïteit tussen diensten (cruciaal bij risico's)
- Trend visualisatie helpt vroeg signaleren
- Audit trail voor verantwoording
### Layout
Master-detail layout met:
- **Links:** Ronde overzicht met alle patiënten
- **Rechts:** Invoerformulier en tijdlijn voor geselecteerde patiënt
**Stress Reductie:**
- Duidelijk overzicht welke cliënten verhoogd risico hebben
- Prioritering automatisch (crisis eerst, daarna routine)
- Minder mental load bij grote caseload (12+ cliënten)
### Patiëntenlijst (Ronde Overzicht)
Per patiënt wordt getoond:
- Naam
- **Alert badge** (rood) - Aantal hoge risico's met tooltip "X hoog risico's"
- **Overdracht badge** (groen vinkje) - Aantal notities voor overdracht met tooltip "X voor overdracht"
Bij selectie krijgt de patiënt een teal achtergrond.
### Invoerformulier
**Risico Alert:** Bij patiënten met hoge risico's verschijnt een rode waarschuwingsbanner bovenaan.
**Categorie Selectie:** Gekleurde pills voor 5 categorieën:
| Categorie | Kleur | Icoon |
|-----------|-------|-------|
| Medicatie | Blauw | Pill |
| ADL/verzorging | Groen | Utensils |
| Gedragsobservatie | Paars | User |
| Incident | Rood | AlertTriangle |
| Algemene observatie | Grijs | FileText |
**Tekstveld:**
- Auto-resize: groeit mee met de tekst (min 56px, max 200px)
- Maximum 500 karakters met teller
- Placeholder past zich aan per categorie
**Overdracht Toggle:** Groen "Overdracht" label om notitie te markeren voor overdracht.
**Verzendknop:** Teal knop met pijl-icoon, disabled wanneer leeg.
### Notities Tijdlijn
Toont alle notities van vandaag, gegroepeerd per dagdeel:
| Dagdeel | Tijden | Icoon | Kleur |
|---------|--------|-------|-------|
| Nacht | 00:00-07:00 | Moon | Paars |
| Ochtend | 07:00-12:00 | Sunrise | Amber |
| Middag | 12:00-17:00 | Sun | Geel |
| Avond | 17:00-24:00 | Sunset | Oranje |
**Per notitie:**
- Tijdstip
- Categorie badge (gekleurd)
- Overdracht toggle (groen vinkje, klikbaar)
- Inhoud
- Bewerken (potlood-icoon, verschijnt bij hover)
- Verwijderen (prullenbak-icoon, met bevestiging)
**Statistieken:** Boven de tijdlijn: totaal aantal notities en aantal voor overdracht.
**Nachtdienst logica:** Notities vóór 07:00 worden toegewezen aan de vorige dag.
---
## Voorbeeld Scenario
## Overdracht Module
**Dienst Overdracht (22:00 Avond → Nacht):**
### Doel
Overzicht van alle patiënten met hun rapportages en AI-gestuurde samenvatting voor overdracht.
SPV loopt 12 cliënten door met nachtdienst:
- Systeem toont per cliënt: laatste observaties, risico niveau, actiepunten
- Verhoogd risico cliënten eerst (suïcidaliteit, agressie)
- Automatisch voorgevulde SBAR met wijzigingen sinds vorige dienst
- Quick export naar print of digitaal doorgeven
### Layout
Master-detail layout met:
- **Links:** Patiëntenlijst met filters en periode selector
- **Rechts:** Patiënt detail met rapportages tijdlijn en AI-samenvatting
**Crisis Alert:**
- Cliënt vertoont acute suïcidaliteit
- SPV klikt "Crisis Alert" → haalt laatste scores op
- Pre-filled urgent overdracht naar psychiater
- Push notificatie + SMS naar dienstdoende arts
- Observatie niveau automatisch verhoogd naar Q15min
### Patiëntenlijst
**Header:**
- Titel "Patiënten" met totaal aantal
- Periode selector: 24 uur (default), 3 dagen, 1 week, 2 weken
- Filter tabs: "Alle" / "Met alerts"
**Per patiënt:**
- Avatar met initialen (rood bij hoog risico)
- Naam, leeftijd, geslacht
- Alert badges:
- Rood (AlertTriangle) - Hoge risico's
- Oranje (Activity) - Afwijkende vitale waarden
- Groen (CheckCircle2) - Voor overdracht
Alle badges hebben tooltips met beschrijvende tekst.
### Patiënt Detail
**Header:**
- Naam, leeftijd, geslacht
- Quick badges (hoog risico, overdracht)
- Link naar volledig dossier
**Risico Block:** Prominent rood blok bij hoge risico's met:
- Risico type (Valrisico, Decubitus, etc.)
- Risico niveau (Zeer hoog, Hoog, Matig, Laag)
- Rationale/toelichting
**Incident Waarschuwing:** Oranje banner bij incidenten in de periode.
**Rapportages Tijdlijn:**
- Gegroepeerd per dag (Vandaag, Gisteren, datum)
- Per dag gegroepeerd per dagdeel
- Visuele tijdlijn met gekleurde nodes
- Type badges (Voortgang, Observatie, etc.)
- Categorie badges voor verpleegkundige notities
- Overdracht indicator (groen vinkje)
- Auteur en tijdstip
### AI Samenvatting
**Locatie:** Rechter kolom, sticky bij scrollen.
**Header:**
- Sparkles icoon (paars)
- Titel "AI Samenvatting"
- Geselecteerde periode label
**Genereren:**
- Knop "Genereer samenvatting"
- Loading state met spinner
- Typische duur: 3-5 seconden
**Resultaat:**
- **Samenvatting:** 1-2 zinnen met kernpunten
- **Aandachtspunten:** Max 5 items met:
- Urgentie indicator (rode rand)
- Klikbare bronverwijzing
- Type bron en datum
- **Actiepunten:** Max 3 items voor volgende dienst
**Bronverwijzingen:**
- Klikbaar: scrollt naar originele rapportage
- Highlight effect: paarse ring rond bron (2 seconden)
- Types: Verpleegkundig, Rapportage, Risicobeoordeling
**Footer:**
- Generatie tijdstip en duur
- "Vernieuwen" knop
---
## MVP Scope
## Technische Details
**Eerste versie:**
- ✅ SBAR overdracht templates voor GGZ
- ✅ Dienst schema en planning (6+ overdrachten)
- ✅ Multi-cliënt dashboard met risico indicators
- ✅ Handmatige input observaties en ROM-scores
- ✅ Crisis alert functionaliteit
### Data Model
**Later toevoegen:**
- 🔄 Voice-to-text input (hands-free tijdens observatie rondes)
- 🔄 AI samenvatting en gedragspatroon detectie
- 🔄 Mobile app voor on-the-go observaties
- 🔄 Integratie met bestaande EPD systemen (Nedap, Ysis)
- 🔄 ROM instrument koppeling (automatische import)
**Reports tabel** met type `verpleegkundig`:
- `content` - Notitie tekst (max 500 karakters)
- `structured_data.category` - Categorie (medicatie, adl, gedrag, incident, observatie)
- `include_in_handover` - Boolean voor overdracht
- `shift_date` - Berekende datum (nachtdienst logica)
### API Endpoints
| Endpoint | Methode | Beschrijving |
|----------|---------|--------------|
| `/api/reports` | GET | Ophalen rapportages met filters |
| `/api/reports` | POST | Nieuwe notitie aanmaken |
| `/api/reports/[id]` | PATCH | Notitie bewerken |
| `/api/reports/[id]` | DELETE | Notitie verwijderen (soft delete) |
| `/api/verpleegrapportage/[patientId]` | GET | Patiënt detail met rapportages en risico's |
| `/api/overdracht/patients` | GET | Patiënten overzicht met alerts |
| `/api/overdracht/generate` | POST | AI samenvatting genereren |
### Componenten
**Rapportage:**
- `RapportageWorkspace` - Hoofd container
- `QuickEntryForm` - Invoerformulier met auto-resize
- `TimelineItem` - Notitie in tijdlijn met edit/delete
**Overdracht:**
- `VerpleegrapportageClient` - Client wrapper met state
- `PatientList` - Patiëntenlijst met filters
- `PatientListRow` - Patiënt rij met badges
- `PatientDetail` - Detail view
- `ReportsBlock` - Rapportages tijdlijn
- `AISummaryBlock` - AI samenvatting met bronverwijzingen
---
## Gebruikerstips
1. **Markeer direct voor overdracht** - Scheelt tijd bij voorbereiding
2. **Gebruik "Met alerts" filter** - Snel patiënten vinden die aandacht nodig hebben
3. **Klik op bronverwijzingen** - Verifieer AI-informatie bij de bron
4. **Pas periode aan** - 3 dagen of 1 week voor meer context bij complexe patiënten
5. **Kies juiste categorie** - Helpt bij filteren en overzicht
---
## Gerelateerde Documentatie
**Features:**
- Client Management (binnenkort)
- Intake Systeem (binnenkort)
- [Spraakgestuurde Verslaglegging](/documentatie/spraakgestuurde-verslaglegging) - Voice input voor rapportages
- [Client Management](/documentatie/client-management) - Patiëntbeheer
- [Interface Design System](/documentatie/interface-design) - UI patterns
**Basis:**
- [Authentication System](/documentatie/authentication) - Toegangsbeheer
- Database Schema (binnenkort)