# 🧩 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:** 1. Toast: "βœ“ Afspraak diagnostiek met Jan de Vries aangemaakt voor morgen 10:00" 2. Block verdwijnt (200ms animatie) 3. Recent strip: badge "[πŸ“… Jan - Diagnostiek]" 4. 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:** 1. Toast: "βœ“ Rapportage opgeslagen en gekoppeld aan afspraak" 2. Block verdwijnt 3. 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:** 1. Toast: "βœ“ Diagnose F41.1 - Gegeneraliseerde angststoornis toegevoegd" (of "bijgewerkt") 2. Block verdwijnt 3. 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: 1. βœ… Behandelaar kan diagnostiek-afspraak plannen in < 30 seconden 2. βœ… Rapportage kan worden geschreven en automatisch gekoppeld aan afspraak 3. βœ… Alle diagnoses van een patiΓ«nt zijn in één overzicht zichtbaar 4. βœ… Nieuwe diagnose kan worden toegevoegd met ICD-10 zoeker 5. βœ… Bestaande diagnose kan worden bijgewerkt (status, ernst, etc.) 6. βœ… Alle acties zijn traceerbaar (wie, wanneer, wat) 7. βœ… 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:** - `conditions` tabel voor diagnoses - `encounters` tabel voor afspraken - `reports` tabel voor rapportages --- ## Wijzigingslog | Versie | Datum | Wijzigingen | |--------|-------|-------------| | 1.0 | 23-12-2024 | InitiΓ«le versie - Diagnostiek workflow beschrijving |