Files
triqura-ecd/docs/swift/archive/swift-ux-v2.1.md
2025-12-27 13:17:00 +01:00

71 KiB
Raw Blame History

🎨 UX/UI Design Document — Ephemeral UI EPD

Projectnaam: Ephemeral UI EPD — "Het Verdwijnende EPD"
Versie: v2.1
Datum: 23-12-2024
Auteur: Colin Lit


1. De Visie: Van Menu's naar Conversatie

1.1 Het Probleem met Traditionele EPD's

TRADITIONEEL EPD
┌──────────────────────────────────────────────────────────────────┐
│ Menu │ Submenu │ Tab │ Tab │ Tab │ Subtab │ Form │ Form │ Save  │
├──────┼─────────┴─────┴─────┴─────┴────────┴──────┴──────┴───────┤
│ Item │                                                          │
│ Item │    "Waar moet ik zijn voor een dagnotitie?"              │
│ Item │                                                          │
│ Item │    "Hoe kom ik bij de overdracht?"                       │
│ Item │                                                          │
│ ...  │    "Waar zie ik de vitale functies?"                     │
│ (47) │                                                          │
└──────┴──────────────────────────────────────────────────────────┘

Resultaat: 200 pagina handleiding, 3 maanden training, 12 klikken per actie

1.2 De Oplossing: Één Input, Slimme Responses

EPHEMERAL UI EPD
┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│                                                                 │
│                  "Wat wil je doen?"                             │
│                                                                 │
│              ┌─────────────────────────┐                        │
│              │                         │                        │
│              │   [Relevante UI        │                        │
│              │    verschijnt hier]    │                        │
│              │                         │                        │
│              └─────────────────────────┘                        │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 🎤  notitie jan medicatie gegeven                       │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Resultaat: 0 training, 1 zin, klaar

1.3 Core Design Principles

Principe Betekenis
Conversational Je praat tegen het systeem, niet door het systeem
Contextual Systeem weet wie je bent, welke dienst, welke patiënt
Ephemeral UI verschijnt wanneer nodig, verdwijnt wanneer klaar
Complete Alles wat een EPD kan, kan deze UI ook — anders

2. Prioriteitenlijst: Frequentie-Gedreven Development

2.1 Frequentie & Impact Matrix

Op basis van analyse van dagelijks EPD-gebruik:

                    FREQUENTIE
                    ↑
         Hoog       │   ⭐ DAGNOTITIE    ⭐ ZOEKEN
        (10-20x/    │   
         dag)       │       ⭐ LAATSTE NOTITIES BEKIJKEN
                    │
                    │   
         Medium     │   📋 RAPPORTAGE    🔄 OVERDRACHT
        (3-5x/      │   
         dag)       │   📊 VITALS        📅 AGENDA
                    │   🔍 DIAGNOSE      📄 BEHANDELPLAN
                    │
                    │
         Laag       │   📝 INTAKE        ⚠️ RISICOTAXATIE
        (1x/week    │   👶 KINDCHECK     📞 CONTACTEN
         of minder) │   📊 ROM           🏥 ANAMNESE
                    │
                    └─────────────────────────────────────→
                         Laag              Hoog
                              COMPLEXITEIT

2.2 Prioriteit Tiers

🔴 P1: KRITIEK (MVP Week 1-2)

Hoogfrequent, hoogste ROI

# Intent Freq/dag Huidige klikken Target Block
1 dagnotitie 10-20x 5-8 1 zin DagnotatieBlock
2 zoeken 15-20x 3-5 1 zin ZoekenBlock
3 patient_context 10-15x 4-6 Auto PatientContextCard
4 overdracht 2-3x 8-12 1 zin OverdrachtBlock

Tijdsbesparing P1: ~4 uur per verpleegkundige per dag

🟡 P2: BELANGRIJK (MVP Week 3-4)

Middenfrequent, significant

# Intent Freq/dag Huidige klikken Target Block
5 rapportage 3-5x 6-10 1 zin + dicteer RapportageBlock
6 agenda 2-3x 3-4 1 zin AgendaBlock
7 vitals 2-4x 4-6 1 zin MetingenBlock
8 diagnose_bekijken 3-5x 4-6 1 zin PatientContextCard
9 behandelplan_bekijken 2-3x 4-6 1 zin PatientContextCard

Tijdsbesparing P2: ~1.5 uur per behandelaar per dag

🟢 P3: WAARDEVOL (Post-MVP)

Laagfrequent maar noodzakelijk

# Intent Frequentie Block
10 intake_starten 1x/week IntakeWizard
11 behandelplan_maken 1x/maand BehandelplanBlock
12 diagnose_toevoegen 1x/week DiagnoseBlock
13 risicotaxatie 1x/maand RisicoBlock
14 anamnese 1x/intake AnamneseBlock
15 contactpersonen 1x/intake ContactenBlock
16 kindcheck 1x/intake KindcheckBlock
17 rom 1x/maand ROMBlock

P4: NICE-TO-HAVE (Backlog)

Edge cases, admin functies

# Intent Block
18 medicatie_overzicht MedicatieBlock
19 decursus DecursusBlock
20 nieuwe_patient NieuwePatiëntBlock
21 afspraak_plannen AfspraakBlock

2.3 Development Roadmap

WEEK 1-2: P1 (Kritiek)
├── Dag 1-2: Command Input + Intent Engine
├── Dag 3-4: DagnotatieBlock + ZoekenBlock
├── Dag 5-6: PatientContextCard
├── Dag 7-8: OverdrachtBlock
└── Deliverable: "notitie jan medicatie" → opslaan in 15 sec

WEEK 3-4: P2 (Belangrijk)  
├── Dag 9-10: RapportageBlock + dicteer
├── Dag 11-12: AgendaBlock
├── Dag 13-14: MetingenBlock
└── Deliverable: Behandelaar kan volledige dag werken

POST-MVP: P3 + P4
├── Sprint 3: IntakeWizard, BehandelplanBlock
├── Sprint 4: DiagnoseBlock, RisicoBlock
├── Sprint 5: Overige blocks
└── Deliverable: Feature parity met klassiek EPD

3. Complete Intent Mapping

3.1 Alle Intents per Categorie

📝 SCHRIJVEN (Writer Intents)

Intent Trigger patterns Block Prio
dagnotitie "notitie [patient]", "dagnotitie", "[patient] medicatie gegeven", "incident bij [patient]" DagnotatieBlock P1
rapportage "rapportage", "gesprek gehad met [patient]", "behandelgesprek" RapportageBlock P2
intake_schrijven "intake schrijven", "intake [patient]" IntakeBlock P3
anamnese "anamnese", "voorgeschiedenis [patient]", "historie" AnamneseBlock P3
diagnose_toevoegen "diagnose toevoegen", "classificatie", "[ICD-code]" DiagnoseBlock P3
behandelplan_maken "behandelplan maken", "doelen opstellen" BehandelplanBlock P3
risicotaxatie "risico [patient]", "valrisico", "suïcidaliteit", "taxatie" RisicoBlock P3
kindcheck "kindcheck", "kinderen in beeld" KindcheckBlock P3
meting_invoeren "bloeddruk", "meting invoeren", "vitals invoeren" MetingenBlock P2
afspraak_maken "afspraak plannen", "inplannen" AfspraakBlock P4
contact_toevoegen "contactpersoon toevoegen", "familie toevoegen" ContactenBlock P3

🔍 LEZEN (Reader Intents)

Intent Trigger patterns Block Prio
zoeken "zoek [naam]", "wie is [naam]", "vind [naam]" ZoekenBlock P1
patient_info "dossier [patient]", "open [patient]", "info [patient]" PatientContextCard P1
overdracht_lezen "wat moet ik weten", "overdracht lezen", "briefing" OverdrachtLezenBlock P1
laatste_notities "notities [patient]", "wat is er gebeurd", "updates" PatientContextCard P1
diagnose_bekijken "diagnose [patient]", "diagnoses", "classificatie" PatientContextCard P2
behandelplan_bekijken "behandelplan [patient]", "doelen [patient]" PatientContextCard P2
agenda "agenda", "afspraken", "wie zie ik vandaag" AgendaBlock P2
vitals_bekijken "vitals [patient]", "metingen", "bloeddruk historie" MetingenOverzichtBlock P2
medicatie "medicatie [patient]", "welke medicijnen" MedicatieBlock P4
contacten_bekijken "contacten [patient]", "familie [patient]" ContactenBlock P3
decursus "decursus [patient]", "verloop", "historie" DecursusBlock P4
mijn_patienten "mijn patiënten", "caseload", "wie heb ik" PatiëntenlijstBlock P2

🔄 SAMENVATTEN (Summary Intents)

Intent Trigger patterns Block Prio
overdracht_maken "overdracht maken", "dienst klaar", "samenvatting dienst" OverdrachtBlock P1
samenvatting "samenvatting [patient]", "vat samen" SamenvattingBlock P3
rom_afnemen "vragenlijst", "rom afnemen", "meting doen" ROMBlock P3

SYSTEEM (System Intents)

Intent Trigger patterns Block Prio
help "help", "wat kan ik doen", "hoe werkt dit" HelpBlock P1
fallback [onbekend/lage confidence] FallbackPicker P1

3.2 Context-Triggered UI (Proactief)

Trigger Conditie Wat verschijnt Prio
Dienst start Login of shift-wissel OverdrachtLezenBlock P1
Dienst einde 30 min voor einde Suggestie banner P1
Patiënt geselecteerd Na zoeken/klik PatientContextCard P1
Afspraak nadert 15 min voor AfspraakContextCard P2
Alert actief Patiënt heeft alert AlertBanner P1
Behandelplan verloopt < 7 dagen RenewalReminder P3
ROM gepland Datum bereikt ROMReminder P3

4. Screen Architecture

4.1 De Enige Layout

Er is maar één scherm. Alles speelt zich hier af:

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│  ┌───────────────────────────────────────────────────────────┐ │
│  │ 🕐 Ochtend | 8 ptn                  Jan de Vries ▼  👤 SV │ │
│  └───────────────────────────────────────────────────────────┘ │
│                        CONTEXT BAR                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│                                                                 │
│                                                                 │
│                    ┌─────────────────────┐                      │
│                    │                     │                      │
│                    │    ACTIVE BLOCK     │                      │
│                    │                     │                      │
│                    │  (wat nu relevant   │                      │
│                    │   is verschijnt     │                      │
│                    │   hier)             │                      │
│                    │                     │                      │
│                    └─────────────────────┘                      │
│                                                                 │
│                         CANVAS AREA                             │
│                                                                 │
├─────────────────────────────────────────────────────────────────┤
│  ┌───────────────────────────────────────────────────────────┐ │
│  │ Recent: [📝 Jan-Med] [🔄 Overdracht] [🔍 Marie]           │ │
│  └───────────────────────────────────────────────────────────┘ │
│                       RECENT STRIP                              │
├─────────────────────────────────────────────────────────────────┤
│  ┌───────────────────────────────────────────────────────────┐ │
│  │ 🎤  Typ of spreek wat je wilt doen...                ⌘K  │ │
│  └───────────────────────────────────────────────────────────┘ │
│                       COMMAND INPUT                             │
└─────────────────────────────────────────────────────────────────┘

4.2 De Vier Zones

Zone Hoogte Functie
Context Bar 48px Dienst, actieve patiënt, user
Canvas Area Flex (rest) Waar blocks verschijnen
Recent Strip 48px Laatste acties, quick access
Command Input 64px De enige input

5. Component Specifications

5.1 Context Bar

Minimalistische header met alleen essentiële context.

┌─────────────────────────────────────────────────────────────────┐
│  🕐 Ochtend | 8 ptn                    Jan de Vries ▼    👤 SV │
└─────────────────────────────────────────────────────────────────┘
   ↑                                      ↑                  ↑
   Dienst + patiënten                     Actieve patiënt    User

Dienst kleuren:

Dienst Tijd Kleur Icon
Ochtend 07:00-15:00 #F59E0B 🌅
Middag 15:00-23:00 #3B82F6 🌤️
Nacht 23:00-07:00 #6366F1 🌙

Patiënt dropdown:

┌─────────────────────────────────┐
│  Jan de Vries              ✓   │  ← Huidige selectie
├─────────────────────────────────┤
│  Recent:                        │
│  Marie van den Berg             │
│  Piet Jansen                    │
│  Anna de Vries                  │
├─────────────────────────────────┤
│  🔍 Zoek andere patiënt...      │
├─────────────────────────────────┤
│  ✕ Geen patiënt (clear)        │
└─────────────────────────────────┘

5.2 Command Input

Het hart van de interface.

DEFAULT STATE:
┌─────────────────────────────────────────────────────────────────┐
│  🎤  Typ of spreek wat je wilt doen...                    ⌘K   │
└─────────────────────────────────────────────────────────────────┘

TYPING STATE:
┌─────────────────────────────────────────────────────────────────┐
│  🎤  notitie jan medicatie|                               ⌘K   │
└─────────────────────────────────────────────────────────────────┘

LISTENING STATE:
┌─────────────────────────────────────────────────────────────────┐
│  🔴  "notitie jan de vries medicatie..."             [Stop]    │
│      ════════░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░             │
└─────────────────────────────────────────────────────────────────┘

PROCESSING STATE:
┌─────────────────────────────────────────────────────────────────┐
│  ⏳  Even kijken wat je bedoelt...                              │
└─────────────────────────────────────────────────────────────────┘

Styling:

Property Value
Height 64px
Background #FFFFFF
Border 1px #E2E8F0, 2px #3B82F6 (focus)
Border-radius 16px
Shadow lg
Font-size 18px
Position Fixed bottom, 24px padding

5.3 Block Container (Generic Wrapper)

Alle blocks gebruiken dezelfde container.

Size Max-width Use case
Small 480px Quick entry (notitie, zoeken, meting)
Medium 640px Forms (rapportage, intake, behandelplan)
Large 900px Overzichten (overdracht, patiëntenlijst, agenda)
XLarge 1100px Wizards (intake volledig)

5.4 P1 Blocks (MVP Week 1-2)

5.4.1 DagnotatieBlock

┌─────────────────────────────────────────────────────────────────┐
│  📝 Dagnotitie                                      [] [×]    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Patiënt                                                        │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  Jan de Vries                                     ✓     │   │
│  │  59 jaar • Kamer 12B                      [← Auto]      │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  Categorie                                                      │
│  [💊 Med ✓] [🍽️ ADL] [👁️ Obs] [⚠️ Inc] [💬 Alg]               │
│                                                                 │
│  Notitie                                                        │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  Medicatie uitgereikt volgens schema.|                  │   │
│  │                                                         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ☐ Opnemen in overdracht                                       │
│                                                                 │
│                                    [Annuleren]  [💾 Opslaan]   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Categorie opties:

Categorie Icon Kleur Keyboard
Medicatie 💊 #FEF6DC / #F59E0B 1
ADL 🍽️ #E8F8EF / #16A34A 2
Observatie 👁️ #EFF6FF / #3B82F6 3
Incident ⚠️ #FEF2F2 / #DC2626 4
Algemeen 💬 #F1F5F9 / #64748B 5

5.4.2 ZoekenBlock

┌─────────────────────────────────────────────────────────────────┐
│  🔍 Zoeken                                          [] [×]    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  🔍  jan|                                               │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  3 resultaten                                                   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  👤 Jan de Vries                               [Enter]  │   │
│  │     59 jr • Kamer 12B • Laatst: 2 uur                   │   │
│  │     ⚠️ Alert: verhoogd valrisico                        │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  👤 Jan Bakker                                          │   │
│  │     45 jr • Kamer 8A • Laatst: 1 dag                    │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  👤 Jantine Smit                                        │   │
│  │     33 jr • Kamer 3C • Laatst: 3 dagen                  │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

5.4.3 PatientContextCard

┌─────────────────────────────────────────────────────────────────┐
│  👤 Jan de Vries                                    [] [×]    │
│     59 jaar • Kamer 12B • Opname: 15 nov 2024                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ⚠️ ALERT: Verhoogd valrisico (2 incidenten deze week)         │
│                                                                 │
├─────────────────────────────────────────────────────────────────┤
│  📋 Laatste notities                                           │
│  ─────────────────────────────────────────────────────────     │
│  Vandaag 09:15  💊 Medicatie uitgereikt                        │
│  Gisteren 14:30 💬 Goed gesprek over ontslagplanning           │
│  Gisteren 08:00 🍽️ Ontbijt volledig genuttigd                  │
│                                                                 │
│  📊 Vitals vandaag                                             │
│  ─────────────────────────────────────────────────────────     │
│  Bloeddruk: 135/85 (↑)  •  Pols: 72  •  Temp: 36.8°C          │
│                                                                 │
│  🏥 Diagnose                                                   │
│  ─────────────────────────────────────────────────────────     │
│  F32.1 Depressieve stoornis, matig • Ernst: Middel            │
│                                                                 │
│  📄 Behandelplan                                               │
│  ─────────────────────────────────────────────────────────     │
│  CGT 12 sessies • Sessie 4/12 • Eval: 28 dec                  │
│                                                                 │
│  👨‍👩‍👧 Contactpersonen                                           │
│  ─────────────────────────────────────────────────────────     │
│  Partner: Marie de Vries (06-12345678)                        │
│                                                                 │
├─────────────────────────────────────────────────────────────────┤
│  Wat wil je doen met Jan?                                      │
│  [📝 Notitie] [📋 Rapport] [📊 Meting] [📄 Plan] [📞 Contact]  │
└─────────────────────────────────────────────────────────────────┘

5.4.4 OverdrachtBlock

┌─────────────────────────────────────────────────────────────────┐
│  🔄 Overdracht Ochtend → Middag                     [] [×]    │
│     07:00 - 15:00 | 8 patiënten                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ▼ Jan de Vries                                    ⚠️ Alert    │
│  ───────────────────────────────────────────────────────────   │
│  Rustige ochtend. Medicatie uitgereikt zonder problemen.       │
│  Let op valrisico bij toiletbezoek - 2 incidenten deze week.   │
│                                                                 │
│  📎 Bronnen: 3 notities  •  ✏️ Bewerken                        │
│                                                                 │
│  ▶ Marie van den Berg                                          │
│  ───────────────────────────────────────────────────────────   │
│  Klik om samenvatting te genereren                             │
│                                                                 │
│  ▶ Piet Jansen                              ✓ Geen bijzonderh. │
│                                                                 │
│  ▶ Anna de Vries                                               │
│                                                                 │
├─────────────────────────────────────────────────────────────────┤
│  [📋 Kopieer alles]  [📤 E-mail]  [✓ Afronden overdracht]      │
└─────────────────────────────────────────────────────────────────┘

5.5 P2 Blocks (MVP Week 3-4)

5.5.1 RapportageBlock

┌─────────────────────────────────────────────────────────────────┐
│  📋 Rapportage                                      [] [×]    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Patiënt: Jan de Vries                              [Wijzig]   │
│                                                                 │
│  Type                                                           │
│  [Gesprek ✓] [Evaluatie] [Telefonisch] [Consult] [Familie]     │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  [B] [I] [•] [1.] ["]                     🎤 Dicteer    │   │
│  ├─────────────────────────────────────────────────────────┤   │
│  │                                                         │   │
│  │  Gesprek gehad met Jan over zijn ontslagplanning.       │   │
│  │  Hij geeft aan zich beter te voelen en is gemotiveerd   │   │
│  │  om de CGT-sessies voort te zetten na ontslag.          │   │
│  │                                                         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  AI-acties                                                      │
│  [✨ Samenvatten] [📖 B1-niveau] [🔍 Problemen extraheren]      │
│                                                                 │
│                                    [Annuleren]  [💾 Opslaan]   │
└─────────────────────────────────────────────────────────────────┘

5.5.2 AgendaBlock

┌─────────────────────────────────────────────────────────────────┐
│  📅 Agenda                                          [] [×]    │
│     Vandaag, 23 december 2024                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [◀ Gisteren]  [Vandaag]  [Morgen ▶]       [Week] [Maand]      │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  09:00   Jan de Vries • CGT Sessie 4                    │   │
│  │          [Open dossier] [Notitie]                       │   │
│  ├─────────────────────────────────────────────────────────┤   │
│  │  10:00   Marie van den Berg • Evaluatie                 │   │
│  │          [Open dossier] [Notitie]                       │   │
│  ├─────────────────────────────────────────────────────────┤   │
│  │  11:00   --- PAUZE ---                                  │   │
│  ├─────────────────────────────────────────────────────────┤   │
│  │  13:00   Piet Jansen • Intake        ⭐ Nieuw           │   │
│  │          [Open dossier] [Start intake]                  │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│                                          [+ Nieuwe afspraak]   │
└─────────────────────────────────────────────────────────────────┘

5.5.3 MetingenBlock

┌─────────────────────────────────────────────────────────────────┐
│  📊 Meting invoeren                                 [] [×]    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Patiënt: Jan de Vries                              [Wijzig]   │
│                                                                 │
│  Type meting                                                    │
│  [Bloeddruk ✓] [Pols] [Temp] [Gewicht] [Glucose] [Saturatie]   │
│                                                                 │
│  Waarde                                                         │
│  ┌──────────────┐     ┌──────────────┐                         │
│  │     135      │  /  │      85      │  mmHg                   │
│  └──────────────┘     └──────────────┘                         │
│                                                                 │
│  Vergelijking vorige (130/80):  ↑ Licht verhoogd               │
│                                                                 │
│  Tijdstip: [Nu: 14:35]                          [Aanpassen]    │
│                                                                 │
│  Opmerking (optioneel)                                         │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                                                         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│                                    [Annuleren]  [💾 Opslaan]   │
└─────────────────────────────────────────────────────────────────┘

5.6 P3 Blocks (Post-MVP)

5.6.1 IntakeWizard

Multi-step wizard voor complete intake:

STAP 1: Basisgegevens
┌─────────────────────────────────────────────────────────────────┐
│  📄 Nieuwe Intake                           Stap 1 van 7       │
├─────────────────────────────────────────────────────────────────┤
│  ○ Basis ─ ○ Anamnese ─ ○ Onderzoek ─ ○ Diagnose ─             │
│  ○ Risico ─ ○ Kindcheck ─ ○ Behandeladvies                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Voornaam *             Achternaam *                           │
│  ┌─────────────────┐    ┌─────────────────────────────────┐    │
│  │                 │    │                                 │    │
│  └─────────────────┘    └─────────────────────────────────┘    │
│                                                                 │
│  Geboortedatum *        BSN                                    │
│  ┌─────────────────┐    ┌─────────────────────────────────┐    │
│  │                 │    │                                 │    │
│  └─────────────────┘    └─────────────────────────────────┘    │
│                                                                 │
│                                              [Volgende →]      │
└─────────────────────────────────────────────────────────────────┘

STAP 2: Anamnese
├─────────────────────────────────────────────────────────────────┤
│  Voorgeschiedenis                                              │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  [Rich text editor met dicteer optie]                   │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  Hulpvraag                                                     │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                                                         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  [✨ AI: Vat samen] [✨ AI: Extraheer problemen]                │
│                                                                 │
│                                    [← Terug] [Volgende →]      │
└─────────────────────────────────────────────────────────────────┘

STAP 4: Diagnose (ICD-10)
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  AI-suggestie op basis van anamnese:                           │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  ✨ F32.1 Depressieve stoornis, matige episode          │   │
│  │     Confidence: 87%                                     │   │
│  │     Rationale: Patiënt beschrijft sombere stemming...   │   │
│  │                                                         │   │
│  │     [✓ Accepteren] [✏️ Aanpassen] [✕ Negeren]           │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  Of handmatig toevoegen:                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  🔍 Zoek ICD-10 code of omschrijving...                 │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│                                    [← Terug] [Volgende →]      │
└─────────────────────────────────────────────────────────────────┘

STAP 5: Risicotaxatie
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Suïcidaliteit                                                 │
│  [Geen ✓] [Laag] [Matig] [Hoog] [Acuut]                        │
│                                                                 │
│  Automutilatie                                                 │
│  [Geen ✓] [Laag] [Matig] [Hoog]                                │
│                                                                 │
│  Agressie                                                      │
│  [Geen ✓] [Laag] [Matig] [Hoog]                                │
│                                                                 │
│  Valrisico                                                     │
│  [Geen] [Laag ✓] [Matig] [Hoog]                                │
│                                                                 │
│  Toelichting                                                   │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  Valrisico ivm medicatie en leeftijd                    │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│                                    [← Terug] [Volgende →]      │
└─────────────────────────────────────────────────────────────────┘

STAP 6: Kindcheck
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Heeft patiënt minderjarige kinderen?                          │
│  [Ja] [Nee ✓] [Onbekend]                                       │
│                                                                 │
│  (Indien ja: formulier voor kindgegevens en zorgen)            │
│                                                                 │
│                                    [← Terug] [Volgende →]      │
└─────────────────────────────────────────────────────────────────┘

5.6.2 RisicoBlock (Standalone)

┌─────────────────────────────────────────────────────────────────┐
│  ⚠️ Risicotaxatie — Jan de Vries                    [] [×]    │
│     Laatste update: 15 dec 2024                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Suïcidaliteit           ○ Geen  ○ Laag  ● Matig  ○ Hoog      │
│  Automutilatie           ● Geen  ○ Laag  ○ Matig  ○ Hoog      │
│  Agressie naar anderen   ● Geen  ○ Laag  ○ Matig  ○ Hoog      │
│  Valrisico               ○ Geen  ○ Laag  ● Matig  ○ Hoog      │
│  Weglopen                ● Geen  ○ Laag  ○ Matig  ○ Hoog      │
│                                                                 │
│  Toelichting                                                   │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  Matig suïciderisico: passieve doodswens, geen plan.    │   │
│  │  Valrisico door medicatie (sedatie) + leeftijd.         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  Veiligheidsafspraken                                          │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  ☑ Dagelijks check-in gesprek                           │   │
│  │  ☑ Nachtcontroles om 02:00 en 05:00                     │   │
│  │  ☐ 1-op-1 begeleiding                                   │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│                                    [Annuleren]  [💾 Opslaan]   │
└─────────────────────────────────────────────────────────────────┘

5.6.3 ContactenBlock

┌─────────────────────────────────────────────────────────────────┐
│  👨‍👩‍👧 Contactpersonen — Jan de Vries                  [] [×]    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  👤 Marie de Vries                          ⭐ Primair   │   │
│  │     Partner                                             │   │
│  │     📞 06-12345678  •  ✉️ marie@email.nl                │   │
│  │     ☑ Mag info ontvangen  ☑ Noodcontact                │   │
│  │     [Bewerken] [Bellen]                                 │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  👤 Peter de Vries                                      │   │
│  │     Zoon                                                │   │
│  │     📞 06-98765432                                      │   │
│  │     ☑ Mag info ontvangen  ☐ Noodcontact                │   │
│  │     [Bewerken] [Bellen]                                 │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│                                       [+ Contact toevoegen]    │
└─────────────────────────────────────────────────────────────────┘

5.7 Systeem Blocks

5.7.1 HelpBlock

┌─────────────────────────────────────────────────────────────────┐
│  💡 Wat kan ik voor je doen?                        [] [×]    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Meest gebruikt                                                │
│  ─────────────────────────────────────────────────────────     │
│  📝 "notitie jan medicatie"      → Dagnotitie maken            │
│  🔍 "zoek marie"                 → Patiënt zoeken              │
│  🔄 "overdracht"                 → Dienst overdracht           │
│                                                                 │
│  Rapportage                                                    │
│  ─────────────────────────────────────────────────────────     │
│  📋 "rapportage"                 → Behandelrapportage          │
│  📊 "bloeddruk jan"              → Meting invoeren             │
│                                                                 │
│  Informatie bekijken                                           │
│  ─────────────────────────────────────────────────────────     │
│  👤 "info jan" / "dossier jan"   → Patiënt context             │
│  📅 "agenda"                     → Afspraken vandaag           │
│  📄 "behandelplan jan"           → Behandelplan bekijken       │
│                                                                 │
│  Intake & Behandeling                                          │
│  ─────────────────────────────────────────────────────────     │
│  📄 "nieuwe intake"              → Intake wizard starten       │
│  ⚠️ "risico jan"                 → Risicotaxatie               │
│  🏥 "diagnose jan"               → Diagnose bekijken           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

5.7.2 FallbackPicker

┌─────────────────────────────────────────────────────────────────┐
│  Wat wil je doen?                                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Meest gebruikt                                                │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐           │
│  │   📝    │  │   🔍    │  │   🔄    │  │   📋    │           │
│  │ Notitie │  │ Zoeken  │  │Overdracht  │ Rapport │           │
│  │   [1]   │  │   [2]   │  │   [3]   │  │   [4]   │           │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘           │
│                                                                 │
│  Meer opties                                                   │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐           │
│  │   📅    │  │   📊    │  │   👤    │  │   📄    │           │
│  │ Agenda  │  │ Meting  │  │ Dossier │  │ Intake  │           │
│  │   [5]   │  │   [6]   │  │   [7]   │  │   [8]   │           │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘           │
│                                                                 │
│  ┌─────────┐  ┌─────────┐                                      │
│  │   ⚠️    │  │   💡    │                                      │
│  │ Risico  │  │  Help   │                                      │
│  │   [9]   │  │   [0]   │                                      │
│  └─────────┘  └─────────┘                                      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

6. Interaction Flows

6.1 Happy Path: Dagnotitie (15 seconden)

┌─────────────────────────────────────────────────────────────────┐
│ 1. Verpleegkundige spreekt/typt:                               │
│    "Jan de Vries heeft zijn medicatie ingenomen"               │
├─────────────────────────────────────────────────────────────────┤
│ 2. Intent engine herkent:                                      │
│    intent: dagnotitie (0.94)                                   │
│    patient: "Jan de Vries" → match found                       │
│    category: "medicatie" (keyword)                             │
│    content: "heeft zijn medicatie ingenomen"                   │
├─────────────────────────────────────────────────────────────────┤
│ 3. DagnotatieBlock verschijnt met pre-fill:                    │
│    ✓ Patient: Jan de Vries [highlighted]                       │
│    ✓ Category: Medicatie [highlighted]                         │
│    ✓ Text: "heeft zijn medicatie ingenomen" [highlighted]      │
├─────────────────────────────────────────────────────────────────┤
│ 4. Verpleegkundige review → klikt Opslaan                      │
├─────────────────────────────────────────────────────────────────┤
│ 5. Toast: "✓ Notitie opgeslagen"                               │
│    Block verdwijnt                                              │
│    Recent strip: [📝 Jan-Med] badge                            │
├─────────────────────────────────────────────────────────────────┤
│ TOTAAL: ~15 seconden (was: 3-5 minuten)                        │
└─────────────────────────────────────────────────────────────────┘

6.2 Overdracht Flow (Proactief)

┌─────────────────────────────────────────────────────────────────┐
│ 1. Klok: 14:30 (dienst eindigt 15:00)                          │
│    → shiftEndingSoon = true                                     │
├─────────────────────────────────────────────────────────────────┤
│ 2. Suggestie banner:                                           │
│    ┌───────────────────────────────────────────────────────┐   │
│    │ 🕐 Dienst eindigt over 30 min. Overdracht maken?      │   │
│    │                              [Ja] [Later] [×]         │   │
│    └───────────────────────────────────────────────────────┘   │
├─────────────────────────────────────────────────────────────────┤
│ 3. Klikt "Ja" → OverdrachtBlock opent                          │
│    → AI genereert samenvattingen per patiënt                   │
│    → Bronverwijzingen naar originele notities                  │
├─────────────────────────────────────────────────────────────────┤
│ 4. Review, eventueel aanpassen → Afronden                      │
├─────────────────────────────────────────────────────────────────┤
│ TOTAAL: ~5 minuten (was: 20-30 minuten)                        │
└─────────────────────────────────────────────────────────────────┘

7. Data Dependencies

7.1 Database Tabellen per Block

Block Leest van Schrijft naar
DagnotatieBlock patients reports
ZoekenBlock patients, conditions, encounters -
PatientContextCard patients, reports, vitals, conditions, care_plans, risk_assessments, contacts -
OverdrachtBlock patients, reports, vitals, risk_assessments - (AI generated)
RapportageBlock patients, intakes reports
AgendaBlock patients, appointments appointments
MetingenBlock patients, vitals vitals
IntakeWizard patients intakes, anamneses, conditions, risk_assessments, contacts
BehandelplanBlock patients, conditions, intakes care_plans
RisicoBlock patients, risk_assessments risk_assessments
ContactenBlock patients, contacts contacts

7.2 API Routes Nodig

Route Method Block Status
/api/patients/search GET ZoekenBlock Bestaat
/api/reports POST DagnotatieBlock, RapportageBlock Bestaat
/api/overdracht/generate POST OverdrachtBlock Bestaat
/api/verpleegrapportage/[id] GET PatientContextCard Uitbreiden
/api/intent/classify POST Command Input 🆕 Nieuw
/api/vitals GET, POST MetingenBlock 🆕 Nieuw
/api/appointments GET, POST AgendaBlock 🆕 Nieuw
/api/risk-assessments GET, POST RisicoBlock Bestaat
/api/contacts GET, POST ContactenBlock 🆕 Nieuw

8. Visual Design Tokens

8.1 Colors

Token Hex Gebruik
--bg-app #F8FAFC App achtergrond
--bg-surface #FFFFFF Blocks, cards
--text-primary #0F172A Hoofdtekst
--text-secondary #475569 Subtekst
--border #E2E8F0 Randen
--brand #3B82F6 Primaire acties
--success #16A34A Bevestigingen
--warning #EAB308 Waarschuwingen
--error #DC2626 Fouten, alerts

8.2 Category Colors

Categorie Background Accent
Medicatie #FEF6DC #F59E0B
ADL #E8F8EF #16A34A
Observatie #EFF6FF #3B82F6
Incident #FEF2F2 #DC2626
Algemeen #F1F5F9 #64748B

9. Keyboard Navigation

Key Action
⌘K / Ctrl+K Focus command input
Escape Close active block
Enter Submit / Select
Navigate results / history
1-9 Quick select in FallbackPicker
Space (empty input) Start voice
⌘Enter Save (in forms)

10. Component Checklist

🔴 P1: MVP Week 1-2

  • Context Bar
  • Command Input (text + voice)
  • Intent Classification Engine
  • DagnotatieBlock
  • ZoekenBlock
  • PatientContextCard
  • OverdrachtBlock
  • FallbackPicker
  • HelpBlock
  • Recent Strip
  • Toast System

🟡 P2: MVP Week 3-4

  • RapportageBlock (+ dicteer)
  • AgendaBlock
  • MetingenBlock
  • PatiëntenlijstBlock
  • Proactive Suggestions (dienst einde)

🟢 P3: Post-MVP Sprint 3-4

  • IntakeWizard (7 stappen)
  • BehandelplanBlock
  • DiagnoseBlock
  • RisicoBlock
  • AnamneseBlock
  • ContactenBlock
  • KindcheckBlock
  • ROMBlock

P4: Backlog

  • MedicatieBlock
  • DecursusBlock
  • AfspraakBlock
  • NieuwePatiëntBlock

11. Summary: De Transformatie

VAN:                                    NAAR:
────────────────────────────────────────────────────────────────

47 menu-items                    →      1 input veld
200 pagina handleiding           →      0 training nodig
12 klikken per notitie           →      1 zin
3 maanden onboarding             →      Direct productief
"Waar moet ik zijn?"             →      "Wat wil je doen?"
Navigeren door systeem           →      Praten tegen systeem
Alles altijd zichtbaar           →      Alleen wat nu nodig is
Gebruiker zoekt informatie       →      Systeem toont informatie

TIJDSBESPARING:
─────────────────────────────────────────────────────────────────
Dagnotitie:     3-5 min  →  15 sec     (95% sneller)
Overdracht:     20-30 min →  5 min     (80% sneller)
Patiënt zoeken: 1-2 min  →  5 sec      (95% sneller)
Rapportage:     8-15 min →  2-3 min    (75% sneller)

Per verpleegkundige per dag: ~4 uur terug naar zorg
Per afdeling (10 FTE) per jaar: 1000+ uur extra patiëntcontact

Wijzigingslog

Versie Datum Wijzigingen
1.0 23-12-2024 Initiële versie met sidebar
2.0 23-12-2024 Herschreven: pure Ephemeral UI
2.1 23-12-2024 Toegevoegd: prioriteitenlijst, complete intent mapping, P3 blocks (intake, risico, contacten, etc.), data dependencies, frequentie matrix