71 KiB
71 KiB
🎨 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 |