- Implementeer handleSubmit met API call naar /api/intent/classify - Voeg error handling en fallback naar dagnotitie toe - Integreer openBlock en addRecentAction - Update bouwplan: Epic 2 compleet (33 SP done, 46%)
36 KiB
🧩 Functioneel Ontwerp (FO) — Swift: Diagnostiek Workflow
Projectnaam: Swift — Contextual UI EPD
Versie: v1.0
Datum: 23-12-2024
Auteur: Colin Lit
1. Doel en relatie met het PRD
🎯 Doel van dit document: Dit Functioneel Ontwerp beschrijft hoe de diagnostiek workflow in Swift functioneel werkt — van het plannen van een diagnostiek-afspraak tot het stellen en bijstellen van diagnoses. Dit document focust specifiek op de complete flow die behandelaars doorlopen tijdens een diagnostiek-traject.
📘 Relatie met andere documenten:
- PRD:
swift-prd.md— Product visie en requirements - FO Algemeen:
swift-fo-ai.md— Algemene Swift functionaliteit - Bouwplan:
bouwplan-swift-v1.md— Technische implementatie planning - UX/UI:
swift-ux-v2.1.md— Visuele specificaties
Kernprincipe:
Een behandelaar kan een volledig diagnostiek-traject doorlopen via natuurlijke taal: van afspraak plannen, via rapportage schrijven, tot diagnose stellen — alles in één vloeiende flow zonder menu-navigatie.
2. Overzicht van de belangrijkste onderdelen
🎯 Doel: Overzicht van de modules en blocks binnen de diagnostiek workflow.
2.1 Workflow Componenten
| # | Component | Beschrijving | Type |
|---|---|---|---|
| 1 | AfspraakBlock | Diagnostiek-afspraak plannen | Block |
| 2 | RapportageBlock | Verslag schrijven na afspraak | Block |
| 3 | DiagnoseBlock | Overzicht van diagnoses | Block |
| 4 | DiagnoseFormBlock | Diagnose aanmaken/bijstellen | Block |
2.2 Workflow Flow
Afspraak Plannen → Rapportage Schrijven → Diagnose Bekijken → Diagnose Aanmaken/Bijstellen
2.3 Relatie met Bestaande Blocks
| Block | Relatie met Diagnostiek Workflow |
|---|---|
| ZoekenBlock | Wordt gebruikt voor patiëntselectie |
| PatientContextCard | Toont actieve diagnoses in overzicht |
| AgendaBlock | Toont geplande diagnostiek-afspraken |
3. User Stories
🎯 Doel: Beschrijven wat behandelaars moeten kunnen doen tijdens een diagnostiek-traject.
3.1 Diagnostiek Workflow Stories
| ID | Rol | Doel / Actie | Verwachte waarde | Prio |
|---|---|---|---|---|
| US-D01 | Behandelaar | Diagnostiek-afspraak plannen via spraak/tekst | Afspraak in < 30 sec zonder menu-navigatie | 🟡 P2 |
| US-D02 | Behandelaar | Rapportage schrijven en koppelen aan afspraak | Verslag automatisch gekoppeld aan encounter | 🟡 P2 |
| US-D03 | Behandelaar | Alle diagnoses van patiënt bekijken | Overzicht in één oogopslag | 🟡 P2 |
| US-D04 | Behandelaar | Nieuwe diagnose toevoegen met ICD-10 zoeker | Diagnose toegevoegd met correcte code | 🟡 P2 |
| US-D05 | Behandelaar | Bestaande diagnose bijstellen (status, ernst) | Wijzigingen direct zichtbaar | 🟡 P2 |
3.2 User Story Details
US-D01: Diagnostiek-afspraak plannen
Als behandelaar wil ik een diagnostiek-afspraak kunnen plannen door te zeggen "afspraak diagnostiek met Jan morgen 10:00" zodat ik snel kan plannen zonder door menu's te navigeren.
US-D02: Rapportage koppelen aan afspraak
Als behandelaar wil ik een rapportage kunnen schrijven die automatisch gekoppeld wordt aan de diagnostiek-afspraak zodat ik niet handmatig hoef te koppelen.
US-D03: Diagnoses bekijken
Als behandelaar wil ik alle diagnoses van een patiënt kunnen bekijken door te zeggen "diagnose Jan" zodat ik snel een overzicht heb zonder te navigeren.
US-D04: Diagnose toevoegen
Als behandelaar wil ik een nieuwe diagnose kunnen toevoegen met een ICD-10 zoeker zodat ik de juiste code kan vinden zonder handmatig te zoeken.
US-D05: Diagnose bijstellen
Als behandelaar wil ik een bestaande diagnose kunnen bijstellen (status, ernst) zodat ik diagnoses kan actualiseren na behandeling.
4. Functionele werking per onderdeel
🎯 Doel: Per component beschrijven wat de gebruiker kan doen en wat het systeem doet.
4.1 AfspraakBlock
Functie: Diagnostiek-afspraak plannen via natuurlijke taal.
Trigger patterns:
- "afspraak diagnostiek met [patient] [datum] [tijd]"
- "plan diagnostiek voor [patient] morgen"
- "afspraak [patient] volgende week dinsdag 10:00"
Pre-fill logica:
| Extracted | Pre-fill |
|---|---|
| patient_name → match | Patiënt selector |
| "diagnostiek" keyword | Type = Diagnostiek |
| "morgen", "vandaag", datum | Datum picker |
| Tijd (10:00, 14:30) | Starttijd |
| Geen tijd | Default 09:00 |
Form velden:
| Veld | Type | Verplicht | Default |
|---|---|---|---|
| Patiënt | Dropdown + search | Ja | Pre-filled of ZoekenBlock |
| Datum | Date picker | Ja | Pre-filled of vandaag |
| Starttijd | Time picker | Ja | Pre-filled of 09:00 |
| Eindtijd | Time picker | Nee | Starttijd + 1 uur |
| Type | Dropdown | Ja | Diagnostiek (pre-selected) |
| Locatie | Dropdown | Nee | AMB |
Afspraak types:
- Diagnostiek
- Behandeling
- Evaluatie
- Consult
- Overig
Acties:
| Knop | Actie | Keyboard |
|---|---|---|
| Opslaan | POST naar API, sluit block, retourneert encounter_id | ⌘Enter |
| Annuleren | Sluit block zonder opslaan | Escape |
Na opslaan:
- Toast: "✓ Afspraak diagnostiek met Jan de Vries aangemaakt voor morgen 10:00"
- Block verdwijnt (200ms animatie)
- Recent strip: badge "[📅 Jan - Diagnostiek]"
- Encounter_id wordt opgeslagen in context voor volgende stap
API:
POST /api/appointments
Body: {
patient_id: string,
period_start: datetime,
period_end: datetime,
type_code: 'diagnostiek',
class_code: 'AMB',
notes?: string
}
Response: {
id: string (encounter_id),
success: boolean
}
4.2 RapportageBlock (Uitgebreid)
Functie: Verslag schrijven na diagnostiek-afspraak, gekoppeld aan encounter.
Trigger patterns:
- "rapportage diagnostiek gesprek met [patient]"
- "verslag van diagnostiek afspraak [patient]"
- "rapportage [patient]" (als recente diagnostiek-afspraak bestaat)
Pre-fill logica:
| Extracted | Pre-fill |
|---|---|
| patient_name → match | Patiënt selector |
| "diagnostiek" keyword | Type = Diagnostiek |
| Recente encounter (diagnostiek) | Encounter_id gekoppeld |
| Geen encounter | Geen koppeling, suggestie tonen |
Form velden:
| Veld | Type | Verplicht | Default |
|---|---|---|---|
| Patiënt | Dropdown | Ja | Pre-filled |
| Gekoppeld aan | Link naar encounter | Nee | Recente diagnostiek-afspraak |
| Type | Button group | Ja | Diagnostiek (pre-selected) |
| Inhoud | Rich text editor | Ja | Leeg |
| Datum/tijd | DateTime | Ja | Nu |
Rapportage types:
- Diagnostiek
- Gesprek
- Evaluatie
- Telefonisch
- Consult
AI acties:
| Actie | Beschrijving | Output |
|---|---|---|
| ✨ Samenvatten | Bullets van kernpunten | Zijpaneel |
| 📖 B1-niveau | Herschrijf leesbaar | Zijpaneel |
| 🔍 Problemen | Extraheer klinische issues | Zijpaneel |
Acties:
| Knop | Actie | Keyboard |
|---|---|---|
| Opslaan | POST naar API met encounter_id, sluit block | ⌘Enter |
| Annuleren | Sluit block zonder opslaan | Escape |
Na opslaan:
- Toast: "✓ Rapportage opgeslagen en gekoppeld aan afspraak"
- Block verdwijnt
- Recent strip: badge "[📋 Jan - Diagnostiek]"
API:
POST /api/reports
Body: {
patient_id: string,
encounter_id: string, // Nieuwe: koppeling aan afspraak
type: 'diagnostiek',
content: string (HTML),
timestamp: datetime
}
4.3 DiagnoseBlock
Functie: Overzicht van alle diagnoses van een patiënt.
Trigger patterns:
- "diagnose [patient]"
- "diagnoses van [patient]"
- "wat zijn de diagnoses van [patient]"
- Klik op "Diagnoses" in PatientContextCard
Layout:
┌─────────────────────────────────────────────────────────────┐
│ 🏥 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] │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ [+ Nieuwe diagnose toevoegen] │
│ │
└─────────────────────────────────────────────────────────────┘
Gedrag:
- Toont lijst met diagnoses, gesorteerd op datum (nieuwste eerst)
- Filter tabs: Actief / Inactief / Alle
- Per diagnose: code, omschrijving, status, ernst, datum, intake
- Klik op diagnose → DiagnoseFormBlock (edit mode)
- Klik "Nieuwe diagnose" → DiagnoseFormBlock (create mode)
Empty state: "Geen diagnoses gevonden voor [patient]. [+ Nieuwe diagnose toevoegen]"
API:
GET /api/diagnoses/:patientId
Response: {
diagnoses: [
{
id: string,
code_code: string,
code_display: string,
clinical_status: 'active' | 'inactive' | 'resolved',
severity_display: string,
recorded_date: datetime,
encounter_id: string,
intake?: {
id: string,
title: string
}
}
]
}
4.4 DiagnoseFormBlock
Functie: Diagnose aanmaken of bijstellen met ICD-10 zoeker.
Trigger patterns:
- "diagnose toevoegen [patient] [ICD-10 code]"
- "diagnose wijzigen [patient]"
- "diagnose bijstellen [patient]"
- Klik op diagnose in DiagnoseBlock
- Klik "Nieuwe diagnose" in DiagnoseBlock
Pre-fill logica (create mode):
| Extracted | Pre-fill |
|---|---|
| patient_name → match | Patiënt selector (read-only) |
| ICD-10 code (F41.1) | Code + omschrijving via zoeker |
| Geen code | ICD-10 zoeker open |
Pre-fill logica (edit mode):
| Veld | Pre-fill |
|---|---|
| Patiënt | Read-only, huidige waarde |
| ICD-10 code | Huidige code |
| Omschrijving | Huidige omschrijving |
| Type | Huidige type (hoofd/neven) |
| Status | Huidige status |
| Ernst | Huidige ernst |
| Intake | Huidige intake koppeling |
| Toelichting | Huidige toelichting |
Form velden:
| Veld | Type | Verplicht | Default |
|---|---|---|---|
| Patiënt | Read-only | Ja | Pre-filled |
| ICD-10 zoeker | Search + dropdown | Ja | Leeg of pre-filled |
| Code | Text (read-only na selectie) | Ja | Uit zoeker |
| Omschrijving | Text (read-only na selectie) | Ja | Uit zoeker |
| Type | Radio buttons | Ja | Hoofddiagnose |
| Status | Dropdown | Ja | Actief |
| Ernst | Dropdown | Nee | Geen |
| Intake koppeling | Dropdown | Nee | Geen |
| Toelichting | Textarea | Nee | Leeg |
ICD-10 zoeker gedrag:
- Fuzzy search tijdens typen (minimaal 2 karakters)
- Resultaten dropdown met code + omschrijving
- Bij selectie: code en omschrijving worden ingevuld
- Zoek op code (F41.1) of omschrijving (angst)
Status opties:
- Actief
- Inactief
- Resolved
- Remission
- Recurrence
- Relapse
Ernst opties:
- Geen
- Mild
- Matig
- Ernstig
Type opties:
- Hoofddiagnose
- Nevendiagnose
Acties:
| Knop | Actie | Keyboard |
|---|---|---|
| Opslaan | POST/PATCH naar API, sluit block | ⌘Enter |
| Annuleren | Sluit block zonder opslaan | Escape |
| Verwijderen | Bevestigingsdialog → soft delete | - |
Na opslaan:
- Toast: "✓ Diagnose F41.1 - Gegeneraliseerde angststoornis toegevoegd" (of "bijgewerkt")
- Block verdwijnt
- DiagnoseBlock wordt automatisch getoond met nieuwe/bijgewerkte diagnose
API:
POST /api/diagnoses
Body: {
patient_id: string,
encounter_id?: string,
code_code: string,
code_display: string,
code_system: 'ICD-10',
clinical_status: 'active' | 'inactive' | 'resolved',
severity_display?: string,
category: 'primary-diagnosis' | 'encounter-diagnosis',
note?: string
}
PATCH /api/diagnoses/:id
Body: {
code_code?: string,
code_display?: string,
clinical_status?: string,
severity_display?: string,
category?: string,
note?: string
}
5. UI-overzicht (visuele structuur)
🎯 Doel: Globale schermopbouw voor diagnostiek workflow blocks.
5.1 AfspraakBlock Layout
┌─────────────────────────────────────────────────────────────┐
│ 📅 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 ▼] │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ Locatie │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ [AMB ▼] │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ Notities (optioneel) │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ [Annuleren] [Opslaan] │
│ │
└─────────────────────────────────────────────────────────────┘
5.2 RapportageBlock Layout (met encounter koppeling)
┌─────────────────────────────────────────────────────────────┐
│ 📋 Rapportage [−] [×] │
├─────────────────────────────────────────────────────────────┤
│ │
│ Patiënt: Jan de Vries [Wijzig] │
│ │
│ Gekoppeld aan: Afspraak diagnostiek - 24 dec 2024 10:00 │
│ │
│ Type │
│ [Diagnostiek ✓] [Gesprek] [Evaluatie] [Telefonisch] │
│ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ [B] [I] [•] [1.] ["] 🎤 Dicteer │ │
│ ├───────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ Verslag van diagnostiek gesprek... │ │
│ │ │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ AI-acties │
│ [✨ Samenvatten] [📖 B1-niveau] [🔍 Problemen extraheren] │
│ │
│ [Annuleren] [Opslaan] │
│ │
└─────────────────────────────────────────────────────────────┘
5.3 DiagnoseBlock Layout
┌─────────────────────────────────────────────────────────────┐
│ 🏥 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] │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ [+ Nieuwe diagnose toevoegen] │
│ │
└─────────────────────────────────────────────────────────────┘
5.4 DiagnoseFormBlock Layout
┌─────────────────────────────────────────────────────────────┐
│ 🏥 Nieuwe Diagnose [−] [×] │
├─────────────────────────────────────────────────────────────┤
│ │
│ Patiënt: Jan de Vries (read-only) │
│ │
│ ICD-10 Code * │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ 🔍 Zoek ICD-10 code of omschrijving... │ │
│ │ │ │
│ │ Resultaten: │ │
│ │ • F41.1 Gegeneraliseerde angststoornis │ │
│ │ • F41.0 Paniekstoornis │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ Code: F41.1 (read-only na selectie) │
│ Omschrijving: Gegeneraliseerde angststoornis (read-only) │
│ │
│ Type * │
│ ○ Hoofddiagnose ● Nevendiagnose │
│ │
│ Status * │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ [Actief ▼] │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ Ernst │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ [Geen ▼] │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ Intake koppeling │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ [Geen ▼] │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ Toelichting (optioneel) │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ [Annuleren] [Opslaan] │
│ │
└─────────────────────────────────────────────────────────────┘
6. Interacties met AI (functionele beschrijving)
🎯 Doel: Waar AI in de diagnostiek workflow voorkomt.
| Locatie | AI-actie | Trigger | Output |
|---|---|---|---|
| RapportageBlock | Samenvatten | Klik knop "✨ Samenvatten" | Bullets van kernpunten in zijpaneel |
| RapportageBlock | B1-niveau | Klik knop "📖 B1-niveau" | Herschreven tekst in zijpaneel |
| RapportageBlock | Extract problemen | Klik knop "🔍 Problemen" | Gestructureerde lijst met categorie + severity |
| DiagnoseFormBlock | ICD-10 suggestie | Typ in zoeker | Fuzzy search resultaten met relevante codes |
AI Response Handling:
- Alle AI outputs tonen in dedicated preview area (zijpaneel)
- Gebruiker moet expliciet accepteren/invoegen
- Bewerken altijd mogelijk
- Annuleren zonder gevolgen
7. Complete Workflow Flow
🎯 Doel: Stap-voor-stap beschrijving van de complete diagnostiek workflow.
Flow 1: Van Afspraak tot Diagnose (Happy Path)
┌─────────────────────────────────────────────────────────────┐
│ STAP 1: AFSPRAAK PLANNEN │
│ │
│ Behandelaar: "afspraak diagnostiek met Jan morgen 10:00" │
│ → AfspraakBlock verschijnt met pre-fill │
│ → Behandelaar controleert → klikt Opslaan │
│ → Encounter aangemaakt, encounter_id opgeslagen │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ STAP 2: RAPPORTAGE SCHRIJVEN (na afspraak) │
│ │
│ Behandelaar: "rapportage diagnostiek gesprek met Jan" │
│ → RapportageBlock verschijnt │
│ → Encounter_id automatisch gekoppeld │
│ → Behandelaar schrijft/dicteert verslag │
│ → Optioneel: AI samenvatten │
│ → Klikt Opslaan → Rapportage gekoppeld aan encounter │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ STAP 3: DIAGNOSE BEKIJKEN │
│ │
│ Behandelaar: "diagnose Jan" │
│ → DiagnoseBlock verschijnt met lijst diagnoses │
│ → Filter: Actief (default) │
│ → Behandelaar ziet overzicht │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ STAP 4: DIAGNOSE TOEVOEGEN │
│ │
│ Behandelaar: "diagnose toevoegen Jan F41.1" │
│ → DiagnoseFormBlock verschijnt │
│ → ICD-10 code F41.1 pre-filled │
│ → Behandelaar vult type, status, ernst in │
│ → Koppelt aan intake (optioneel) │
│ → Klikt Opslaan → Diagnose toegevoegd │
│ → DiagnoseBlock wordt getoond met nieuwe diagnose │
└─────────────────────────────────────────────────────────────┘
Flow 2: Diagnose Bijstellen
┌─────────────────────────────────────────────────────────────┐
│ 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 │
│ → Behandelaar wijzigt ernst: Matig → Mild │
│ → Voegt toelichting toe │
│ → Klikt Opslaan → Diagnose bijgewerkt │
│ → DiagnoseBlock wordt getoond met bijgewerkte diagnose │
└─────────────────────────────────────────────────────────────┘
8. Edge Cases & Alternatieve Flows
Edge Case 1: Meerdere patiënten metzelfde naam
- Situatie: Input "diagnose Jan" → meerdere matches
- Gedrag: ZoekenBlock verschijnt met resultaten
- Actie: Behandelaar selecteert juiste patiënt
- Vervolg: DiagnoseBlock voor geselecteerde patiënt
Edge Case 2: Geen recente afspraak voor rapportage
- Situatie: Input "rapportage Jan" → geen encounter gevonden
- Gedrag: RapportageBlock opent zonder encounter-koppeling
- Suggestie: "Geen recente diagnostiek-afspraak gevonden. Wil je een afspraak koppelen?"
- Actie: Optioneel AfspraakBlock openen
Edge Case 3: ICD-10 code niet gevonden
- Situatie: Input "diagnose toevoegen Jan F99.9" → code bestaat niet
- Gedrag: Validatie fout: "ICD-10 code F99.9 niet gevonden"
- Actie: ICD-10 zoeker blijft open voor correctie
Edge Case 4: Diagnose al bestaat
- Situatie: Input "diagnose toevoegen Jan F41.1" → diagnose bestaat al
- Gedrag: Waarschuwing: "Diagnose F41.1 bestaat al. Wil je deze bijwerken?"
- Actie: Optioneel DiagnoseFormBlock openen in edit mode
Edge Case 5: Onvolledige input
- Situatie: Input "afspraak diagnostiek" (geen patiënt/datum)
- Gedrag: Systeem vraagt om ontbrekende informatie
- Actie: ZoekenBlock voor patiënt, datum/tijd picker voor planning
9. Success Criteria
De diagnostiek workflow is succesvol wanneer:
- ✅ Behandelaar kan diagnostiek-afspraak plannen in < 30 seconden
- ✅ Rapportage kan worden geschreven en automatisch gekoppeld aan afspraak
- ✅ Alle diagnoses van een patiënt zijn in één overzicht zichtbaar
- ✅ Nieuwe diagnose kan worden toegevoegd met ICD-10 zoeker
- ✅ Bestaande diagnose kan worden bijgewerkt (status, ernst, etc.)
- ✅ Alle acties zijn traceerbaar (wie, wanneer, wat)
- ✅ Workflow kan volledig worden doorlopen zonder menu-navigatie
10. Bijlagen & Referenties
Projectdocumenten:
- PRD:
swift-prd.md - FO Algemeen:
swift-fo-ai.md - Bouwplan:
bouwplan-swift-v1.md - UX/UI:
swift-ux-v2.1.md - Taken analyse:
taken-en-vragen-analyse.md
Bestaande Code Referenties:
- Diagnose pagina:
app/epd/patients/[id]/diagnose/page.tsx - Diagnose actions:
app/epd/patients/[id]/diagnose/actions.ts - Appointment modal:
app/epd/agenda/components/appointment-modal.tsx - Rapportage workspace:
app/epd/patients/[id]/rapportage/components/rapportage-workspace-v2.tsx
Database Schema:
conditionstabel voor diagnosesencounterstabel voor afsprakenreportstabel voor rapportages
Wijzigingslog
| Versie | Datum | Wijzigingen |
|---|---|---|
| 1.0 | 23-12-2024 | Initiële versie - Diagnostiek workflow beschrijving |