# π¨ UX/UI Design Document β Swift: Diagnostiek Workflow
**Projectnaam:** Swift β Diagnostiek Workflow
**Versie:** v1.0
**Datum:** 23-12-2024
**Auteur:** Colin Lit
---
## 1. Visie: Behandelaar Workflow via Natuurlijke Taal
### 1.1 Het Probleem voor Behandelaars
```
TRADITIONEEL EPD - DIAGNOSTIEK WORKFLOW
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Menu β PatiΓ«nten β Jan β Agenda β Nieuwe Afspraak β β
β Type: Diagnostiek β Datum/Tijd β Opslaan β
β β
β Menu β PatiΓ«nten β Jan β Rapportages β Nieuw β β
β Type: Diagnostiek β Koppel Afspraak β Zoek β Selecteer β β
β Schrijf verslag β Opslaan β
β β
β Menu β PatiΓ«nten β Jan β Diagnoses β Nieuw β β
β Zoek ICD-10 β Selecteer β Vul formulier β Opslaan β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Resultaat: 15-20 klikken, 10-15 minuten per diagnostiek-traject
```
### 1.2 De Swift Oplossing
```
SWIFT - DIAGNOSTIEK WORKFLOW
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β "afspraak diagnostiek met jan morgen 10:00" β
β β AfspraakBlock verschijnt voorgevuld β
β β Opslaan (1 klik) β
β β
β "rapportage diagnostiek gesprek met jan" β
β β RapportageBlock verschijnt met encounter koppeling β
β β Schrijf/dicteer β Opslaan (1 klik) β
β β
β "diagnose toevoegen jan F41.1" β
β β DiagnoseFormBlock verschijnt met ICD-10 pre-filled β
β β Vul aan β Opslaan (1 klik) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Resultaat: 3 zinnen, 3 klikken, 3-5 minuten per traject
```
### 1.3 Core Design Principles (Diagnostiek Workflow)
| Principe | Betekenis voor Diagnostiek |
|----------|---------------------------|
| **Conversational** | "afspraak diagnostiek jan morgen 10:00" werkt direct |
| **Contextual** | Systeem onthoudt encounter_id tussen stappen |
| **Ephemeral** | Blocks verschijnen wanneer nodig, verdwijnen na opslaan |
| **Complete Flow** | Van afspraak tot diagnose in één vloeiende flow |
---
## 2. Intent Mapping voor Diagnostiek Workflow
### 2.1 Diagnostiek Intents
| Intent | Trigger patterns | Block | Prio | Freq |
|--------|-----------------|-------|------|------|
| `afspraak_maken` | "afspraak diagnostiek met [patient] [datum] [tijd]"
"plan diagnostiek voor [patient] morgen"
"afspraak [patient] volgende week dinsdag 10:00" | `AfspraakBlock` | π‘ P2 | 2-3x/week |
| `rapportage` | "rapportage diagnostiek gesprek met [patient]"
"verslag van diagnostiek afspraak [patient]"
"rapportage [patient]" (als recente afspraak) | `RapportageBlock` | π‘ P2 | 3-5x/week |
| `diagnose_bekijken` | "diagnose [patient]"
"diagnoses van [patient]"
"wat zijn de diagnoses van [patient]" | `DiagnoseBlock` | π‘ P2 | 3-5x/week |
| `diagnose_toevoegen` | "diagnose toevoegen [patient] [ICD-10]"
"[patient] heeft [ICD-10]"
"diagnose [patient] [ICD-10]" | `DiagnoseFormBlock` | π‘ P2 | 1-2x/week |
| `diagnose_wijzigen` | "diagnose wijzigen [patient]"
"diagnose bijstellen [patient]" | `DiagnoseFormBlock` (edit) | π‘ P2 | 1x/week |
### 2.2 Context-Triggered UI (Proactief)
| Trigger | Conditie | Wat verschijnt | Prio |
|---------|----------|----------------|------|
| **Recente afspraak** | Na afspraak opslaan | Suggestie: "Rapportage schrijven?" | π‘ P2 |
| **Rapportage zonder diagnose** | Na rapportage opslaan | Suggestie: "Diagnose toevoegen?" | π‘ P2 |
| **Diagnose verouderd** | Diagnose > 6 maanden oud | Suggestie: "Diagnose bijwerken?" | π’ P3 |
---
## 3. Screen Architecture
### 3.1 Diagnostiek Blocks in Swift Layout
Alle diagnostiek blocks verschijnen in de **Canvas Area** van Swift:
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Ochtend | 8 ptn Jan de Vries βΌ π€ SV β
β CONTEXT BAR β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββ β
β β β β
β β DIAGNOSTIEK BLOCK β β
β β (AfspraakBlock / β β
β β RapportageBlock / β β
β β DiagnoseBlock / β β
β β DiagnoseFormBlock) β β
β β β β
β βββββββββββββββββββββββ β
β β
β CANVAS AREA β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Recent: [π
Jan-Diag] [π Jan-Rapp] [π₯ Jan-Diag] β
β RECENT STRIP β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β π€ Typ of spreek wat je wilt doen... βK β
β COMMAND INPUT β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### 3.2 Block Sizes voor Diagnostiek
| Block | Size | Max-width | Reden |
|-------|------|-----------|-------|
| AfspraakBlock | Medium | 640px | Form met meerdere velden |
| RapportageBlock | Large | 900px | Rich text editor + AI acties |
| DiagnoseBlock | Medium | 640px | Overzicht lijst |
| DiagnoseFormBlock | Medium | 640px | Form met ICD-10 zoeker |
---
## 4. Component Specifications
### 4.1 AfspraakBlock
**Functie:** Diagnostiek-afspraak plannen met pre-fill vanuit intent.
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π
Nieuwe Afspraak [β] [Γ] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β PatiΓ«nt * β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Jan de Vries β β β
β β 59 jaar β’ Kamer 12B [β Auto] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Datum * Van * Tot β
β βββββββββββββββ βββββββββββ βββββββββββ β
β β 2024-12-24 β β 10:00 β β 11:00 β β
β βββββββββββββββ βββββββββββ βββββββββββ β
β β
β Type afspraak * β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [Diagnostiek βΌ] β β
β β β’ Diagnostiek β β
β β β’ Behandeling β β
β β β’ Evaluatie β β
β β β’ Consult β β
β β β’ Overig β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Locatie β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [AMB βΌ] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Notities (optioneel) β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β [Annuleren] [πΎ Opslaan] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
**Pre-fill Indicatoren:**
- PatiΓ«nt naam: **Bold** + checkmark
- Datum: **Highlighted** achtergrond
- Tijd: **Highlighted** achtergrond
- Type: **Pre-selected** in dropdown
**Keyboard Shortcuts:**
- `βEnter` / `Ctrl+Enter`: Opslaan
- `Escape`: Annuleren
- `Tab`: Navigeer tussen velden
**Na Opslaan:**
1. Toast: "β Afspraak diagnostiek met Jan de Vries aangemaakt voor morgen 10:00"
2. Block verdwijnt (200ms slide-down animatie)
3. Recent strip: badge "[π
Jan - Diagnostiek]"
4. Encounter_id opgeslagen in Swift store voor volgende stap
---
### 4.2 RapportageBlock (Uitgebreid)
**Functie:** Verslag schrijven na diagnostiek-afspraak met encounter koppeling.
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Rapportage [β] [Γ] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β PatiΓ«nt: Jan de Vries [Wijzig] β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π Gekoppeld aan: Afspraak diagnostiek β β
β β 24 dec 2024 10:00 - 11:00 β β
β β [Ontkoppelen] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Type β
β [Diagnostiek β] [Gesprek] [Evaluatie] [Telefonisch] [Consult]β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [B] [I] [β’] [1.] ["] π€ Dicteer β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β
β β β β
β β Verslag van diagnostiek gesprek met Jan de Vries... β β
β β β β
β β [Rich text editor met formatting toolbar] β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β AI-acties β
β [β¨ Samenvatten] [π B1-niveau] [π Problemen extraheren] β
β β
β [Annuleren] [πΎ Opslaan] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
**Encounter Koppeling:**
- **Zichtbaar:** Als recente diagnostiek-afspraak bestaat
- **Styling:** Link badge met encounter details
- **Actie:** Klik "Ontkoppelen" om koppeling te verwijderen
- **Empty state:** "Geen recente diagnostiek-afspraak gevonden. [+ Koppel afspraak]"
**AI Acties (Zijpaneel):**
- **β¨ Samenvatten:** Bullets van kernpunten
- **π B1-niveau:** Herschreven tekst (leesbaar voor patiΓ«nt)
- **π Problemen:** Gestructureerde lijst met categorie + severity
**Keyboard Shortcuts:**
- `βEnter` / `Ctrl+Enter`: Opslaan
- `Escape`: Annuleren
- `βB` / `Ctrl+B`: Bold
- `βI` / `Ctrl+I`: Italic
- `Space` (leeg): Start dicteer
**Na Opslaan:**
1. Toast: "β Rapportage opgeslagen en gekoppeld aan afspraak"
2. Block verdwijnt
3. Recent strip: badge "[π Jan - Diagnostiek]"
4. Suggestie: "Diagnose toevoegen?" (als nog geen diagnose)
---
### 4.3 DiagnoseBlock
**Functie:** Overzicht van alle diagnoses van een patiΓ«nt.
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π₯ Diagnoses van Jan de Vries [β] [Γ] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Filter: [Actief β] [Inactief] [Alle] β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β F41.1 Gegeneraliseerde angststoornis β β
β β Status: β Actief | Ernst: Matig β β
β β Toegevoegd: 15 nov 2024 | Intake: Intake 1 β β
β β β β
β β [βοΈ Bewerken] [π Details] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β F32.1 Depressieve stoornis β β
β β Status: β Actief | Ernst: Mild β β
β β Toegevoegd: 20 dec 2024 | Intake: Intake 2 β β
β β β β
β β [βοΈ Bewerken] [π Details] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β F41.0 Paniekstoornis β β
β β Status: β Inactief | Ernst: - β β
β β Toegevoegd: 10 sep 2024 | Intake: Intake 1 β β
β β β β
β β [βοΈ Bewerken] [π Details] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β [+ Nieuwe diagnose toevoegen] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
**Filter Tabs:**
- **Actief:** Alleen diagnoses met status "active" (default)
- **Inactief:** Alleen diagnoses met status "inactive" of "resolved"
- **Alle:** Alle diagnoses
**Diagnose Card:**
- **Code:** ICD-10 code (F41.1) in monospace font
- **Omschrijving:** Volledige naam in bold
- **Status:** Dot indicator (β = actief, β = inactief)
- **Ernst:** Badge met kleur (Mild = groen, Matig = geel, Ernstig = rood)
- **Metadata:** Datum + Intake link
**Empty State:**
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Geen diagnoses gevonden voor Jan de Vries β
β β
β [+ Nieuwe diagnose toevoegen] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
**Keyboard Shortcuts:**
- `Escape`: Sluit block
- `Enter` (op diagnose): Open DiagnoseFormBlock (edit mode)
- `N`: Nieuwe diagnose toevoegen
---
### 4.4 DiagnoseFormBlock
**Functie:** Diagnose aanmaken of bijstellen met ICD-10 zoeker.
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π₯ Nieuwe Diagnose [β] [Γ] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β PatiΓ«nt: Jan de Vries (read-only) β
β β
β ICD-10 Code * β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π Zoek ICD-10 code of omschrijving... β β
β β β β
β β Resultaten (bij typen): β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β’ F41.1 Gegeneraliseerde angststoornis β β β
β β β β’ F41.0 Paniekstoornis β β β
β β β β’ F41.2 Gemengde angst- en depressieve stoornisβ β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Code: F41.1 (read-only na selectie) β
β Omschrijving: Gegeneraliseerde angststoornis (read-only) β
β β
β Type * β
β β Hoofddiagnose β Nevendiagnose β
β β
β Status * β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [Actief βΌ] β β
β β β’ Actief β β
β β β’ Inactief β β
β β β’ Resolved β β
β β β’ Remission β β
β β β’ Recurrence β β
β β β’ Relapse β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Ernst β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [Geen βΌ] β β
β β β’ Geen β β
β β β’ Mild β β
β β β’ Matig β β
β β β’ Ernstig β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Intake koppeling (optioneel) β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [Geen βΌ] β β
β β β’ Geen β β
β β β’ Intake 1 - 15 nov 2024 β β
β β β’ Intake 2 - 20 dec 2024 β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Toelichting (optioneel) β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β [Annuleren] [πΎ Opslaan] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
**ICD-10 Zoeker Gedrag:**
- **Trigger:** Typ minimaal 2 karakters
- **Search:** Fuzzy search op code (F41.1) of omschrijving (angst)
- **Results:** Dropdown met max 10 resultaten
- **Selectie:** Klik op resultaat β code + omschrijving worden ingevuld (read-only)
- **Pre-fill:** Als ICD-10 code in intent β automatisch zoeken en invullen
**Status Kleuren:**
- **Actief:** Groen dot (β)
- **Inactief:** Grijs dot (β)
- **Resolved:** Blauw dot (β)
**Ernst Badges:**
- **Geen:** Geen badge
- **Mild:** Groen badge
- **Matig:** Geel badge
- **Ernstig:** Rood badge
**Edit Mode:**
- Alle velden pre-filled met huidige waarden
- PatiΓ«nt read-only
- Code + omschrijving read-only (wijzig via zoeker)
- Status, ernst, type, toelichting bewerkbaar
**Keyboard Shortcuts:**
- `βEnter` / `Ctrl+Enter`: Opslaan
- `Escape`: Annuleren
- `Tab`: Navigeer tussen velden
- `β` `β` (in zoeker): Navigeer resultaten
- `Enter` (in zoeker): Selecteer resultaat
**Na Opslaan:**
1. Toast: "β Diagnose F41.1 - Gegeneraliseerde angststoornis toegevoegd"
2. Block verdwijnt
3. DiagnoseBlock wordt automatisch getoond met nieuwe/bijgewerkte diagnose
---
## 5. Interaction Flows
### 5.1 Happy Path: Complete Diagnostiek Workflow (3-5 minuten)
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STAP 1: AFSPRAAK PLANNEN (30 sec) β
β β
β Behandelaar: "afspraak diagnostiek met jan morgen 10:00" β
β β AfspraakBlock verschijnt met pre-fill β
β β PatiΓ«nt: Jan de Vries [highlighted] β
β β Datum: morgen [highlighted] β
β β Tijd: 10:00 [highlighted] β
β β Type: Diagnostiek [pre-selected] β
β β Behandelaar review β klikt Opslaan β
β β Toast: "β Afspraak aangemaakt" β
β β Encounter_id opgeslagen β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STAP 2: RAPPORTAGE SCHRIJVEN (2 min) β
β β
β Behandelaar: "rapportage diagnostiek gesprek met jan" β
β β RapportageBlock verschijnt β
β β PatiΓ«nt: Jan de Vries β
β β Gekoppeld aan: Afspraak diagnostiek - morgen 10:00 β
β β Type: Diagnostiek [pre-selected] β
β β Behandelaar schrijft/dicteert verslag β
β β Optioneel: AI samenvatten β
β β Klikt Opslaan β
β β Toast: "β Rapportage gekoppeld aan afspraak" β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STAP 3: DIAGNOSE BEKIJKEN (30 sec) β
β β
β Behandelaar: "diagnose jan" β
β β DiagnoseBlock verschijnt met overzicht β
β β Filter: Actief (default) β
β β Behandelaar ziet bestaande diagnoses β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STAP 4: DIAGNOSE TOEVOEGEN (1 min) β
β β
β Behandelaar: "diagnose toevoegen jan F41.1" β
β β DiagnoseFormBlock verschijnt β
β β PatiΓ«nt: Jan de Vries [read-only] β
β β ICD-10: F41.1 [pre-filled] β
β β Omschrijving: Gegeneraliseerde angststoornis [pre-filled] β
β β Behandelaar vult type, status, ernst in β
β β Koppelt aan intake (optioneel) β
β β Klikt Opslaan β
β β Toast: "β Diagnose toegevoegd" β
β β DiagnoseBlock wordt getoond met nieuwe diagnose β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TOTAAL: ~4 minuten (was: 10-15 minuten)
```
### 5.2 Diagnose Bijstellen Flow
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Behandelaar: "diagnose wijzigen jan" β
β β DiagnoseBlock verschijnt β
β β Behandelaar klikt op diagnose F41.1 β
β β DiagnoseFormBlock verschijnt (edit mode) β
β β Alle velden pre-filled met huidige waarden β
β β Behandelaar wijzigt: β
β - Status: Actief β Resolved β
β - Ernst: Matig β Mild β
β - Toelichting: "Na behandeling verbeterd" β
β β Klikt Opslaan β
β β Toast: "β Diagnose bijgewerkt" β
β β DiagnoseBlock wordt getoond met bijgewerkte diagnose β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### 5.3 Proactieve Suggesties Flow
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Na Afspraak opslaan: β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π‘ Rapportage schrijven voor deze afspraak? β β
β β [Ja] [Later] [Γ] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Na Rapportage opslaan (zonder diagnose): β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π‘ Diagnose toevoegen voor Jan de Vries? β β
β β [Ja] [Later] [Γ] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
---
## 6. Visual Design Tokens
### 6.1 Block Colors (Dark Theme - Swift Context)
| Element | Hex | Gebruik |
|---------|-----|---------|
| Block Background | `#1E293B` | Block achtergrond |
| Block Border | `#334155` | Block rand |
| Text Primary | `#F1F5F9` | Hoofdtekst |
| Text Secondary | `#94A3B8` | Subtekst |
| Accent | `#3B82F6` | Primaire acties |
| Success | `#10B981` | Bevestigingen |
| Warning | `#F59E0B` | Waarschuwingen |
| Error | `#EF4444` | Fouten |
### 6.2 Status Colors
| Status | Dot | Badge | Hex |
|--------|-----|-------|-----|
| Actief | β | - | `#10B981` |
| Inactief | β | - | `#64748B` |
| Resolved | β | - | `#3B82F6` |
### 6.3 Ernst Badges
| Ernst | Badge | Hex |
|-------|-------|-----|
| Geen | - | - |
| Mild | Badge | `#10B981` |
| Matig | Badge | `#F59E0B` |
| Ernstig | Badge | `#EF4444` |
### 6.4 ICD-10 Code Styling
| Element | Font | Size | Color |
|---------|------|------|-------|
| Code | Monospace | 14px | `#F1F5F9` |
| Omschrijving | Sans-serif | 16px | `#F1F5F9` |
---
## 7. Keyboard Navigation
### 7.1 AfspraakBlock
| Key | Action |
|-----|--------|
| `βEnter` / `Ctrl+Enter` | Opslaan |
| `Escape` | Annuleren |
| `Tab` | Navigeer tussen velden |
| `β` `β` | Navigeer dropdown opties |
### 7.2 RapportageBlock
| Key | Action |
|-----|--------|
| `βEnter` / `Ctrl+Enter` | Opslaan |
| `Escape` | Annuleren |
| `βB` / `Ctrl+B` | Bold |
| `βI` / `Ctrl+I` | Italic |
| `Space` (leeg) | Start dicteer |
### 7.3 DiagnoseBlock
| Key | Action |
|-----|--------|
| `Escape` | Sluit block |
| `Enter` (op diagnose) | Open DiagnoseFormBlock (edit) |
| `N` | Nieuwe diagnose |
| `β` `β` | Navigeer diagnoses |
### 7.4 DiagnoseFormBlock
| Key | Action |
|-----|--------|
| `βEnter` / `Ctrl+Enter` | Opslaan |
| `Escape` | Annuleren |
| `Tab` | Navigeer tussen velden |
| `β` `β` (in zoeker) | Navigeer resultaten |
| `Enter` (in zoeker) | Selecteer resultaat |
---
## 8. Error States & Edge Cases
### 8.1 AfspraakBlock Errors
**Geen patiΓ«nt gevonden:**
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β οΈ PatiΓ«nt "Jan" niet gevonden β
β β
β [π Zoek patiΓ«nt] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
**Ongeldige datum:**
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Datum * β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β morgen β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β οΈ Ongeldige datum. Gebruik formaat: DD-MM-YYYY β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### 8.2 RapportageBlock Errors
**Geen encounter gevonden:**
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Geen recente diagnostiek-afspraak gevonden β
β β
β [+ Koppel afspraak] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
**Lege rapportage:**
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β οΈ Rapportage mag niet leeg zijn β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### 8.3 DiagnoseFormBlock Errors
**ICD-10 code niet gevonden:**
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ICD-10 Code * β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β F99.9 β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β οΈ ICD-10 code F99.9 niet gevonden β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
**Diagnose bestaat al:**
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β οΈ Diagnose F41.1 bestaat al voor Jan de Vries β
β β
β [βοΈ Bestaande diagnose bewerken] [β Annuleren] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
---
## 9. Responsive Design
### 9.1 Mobile (< 768px)
**AfspraakBlock:**
- Full-width block
- Stacked form velden
- Date/time pickers full-width
- Bottom sheet voor dropdowns
**RapportageBlock:**
- Full-width block
- Rich text editor full-width
- AI acties als buttons onder editor
- Bottom sheet voor encounter koppeling
**DiagnoseBlock:**
- Full-width block
- Diagnose cards stacked
- Filter tabs als chips
- Swipe to edit
**DiagnoseFormBlock:**
- Full-width block
- Form velden stacked
- ICD-10 zoeker full-width
- Bottom sheet voor dropdowns
### 9.2 Tablet (768px - 1024px)
- Blocks blijven medium/large size
- Form velden kunnen naast elkaar (waar logisch)
- Dropdowns blijven inline
---
## 10. Accessibility
### 10.1 Screen Reader Support
- Alle form velden hebben labels
- Status changes worden aangekondigd
- Error messages zijn toegankelijk
- Keyboard navigation volledig ondersteund
### 10.2 Focus Management
- Focus blijft in block na openen
- Focus naar eerste veld bij nieuwe block
- Focus naar error veld bij validatie fout
- Focus naar recent strip na sluiten
### 10.3 Color Contrast
- Alle tekst voldoet aan WCAG AA (4.5:1)
- Status indicators hebben tekst labels
- Error states hebben icon + tekst
---
## 11. Animation & Transitions
### 11.1 Block Animations
**Openen:**
- Slide up + fade in (200ms)
- Scale: 0.95 β 1.0
**Sluiten:**
- Slide down + fade out (200ms)
- Scale: 1.0 β 0.95
**Pre-fill Highlight:**
- Pulse animatie (2x) bij pre-filled velden
- Duration: 600ms
### 11.2 Toast Notifications
- Slide in from bottom (300ms)
- Auto-dismiss na 3 seconden
- Hover: pause auto-dismiss
---
## 12. Component Checklist
### π‘ P2: Diagnostiek Workflow Blocks
- [ ] AfspraakBlock
- [ ] Pre-fill vanuit intent
- [ ] Encounter_id teruggeven
- [ ] Dark theme styling
- [ ] Keyboard shortcuts
- [ ] Error states
- [ ] RapportageBlock (uitgebreid)
- [ ] Encounter koppeling
- [ ] Type "diagnostiek"
- [ ] Rich text editor
- [ ] AI acties
- [ ] Dark theme styling
- [ ] DiagnoseBlock
- [ ] Overzicht diagnoses
- [ ] Filter tabs (Actief/Inactief/Alle)
- [ ] Diagnose cards
- [ ] Empty state
- [ ] Dark theme styling
- [ ] DiagnoseFormBlock
- [ ] ICD-10 zoeker (fuzzy search)
- [ ] Pre-fill vanuit intent
- [ ] Edit mode
- [ ] Status + ernst selectie
- [ ] Dark theme styling
---
## 13. Summary: De Transformatie voor Behandelaars
```
VAN: NAAR:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
15-20 klikken per traject β 3 zinnen + 3 klikken
10-15 minuten per traject β 3-5 minuten
Menu navigatie β Natuurlijke taal
Handmatige koppeling β Automatische koppeling
ICD-10 handmatig zoeken β Fuzzy search + pre-fill
Vergeten rapportage β Proactieve suggesties
TIJDSBESPARING:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Afspraak plannen: 2-3 min β 30 sec (85% sneller)
Rapportage schrijven: 5-8 min β 2 min (75% sneller)
Diagnose toevoegen: 3-5 min β 1 min (80% sneller)
Per behandelaar per week: ~2 uur terug naar patiΓ«ntcontact
```
---
## Wijzigingslog
| Versie | Datum | Wijzigingen |
|--------|-------|-------------|
| 1.0 | 23-12-2024 | InitiΓ«le versie - UX/UI specificaties voor diagnostiek workflow |