Files
triqura-ecd/docs/swift/archive/swift-fo-diagnostiek-workflow.md
2025-12-27 13:17:00 +01:00

36 KiB
Raw Blame History

🧩 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