📋 UC08: Geregeld Status
USE CASE UC08: "GEREGELD" STATUS VAN EEN AANVRAAG
Dit document legt uit hoe de "geregeld" status van
zorgaanvragen werkt en wie deze kan wijzigen.
De termen "GEREGELD" en "GEPLAND" zijn SYNONIEMEN.
Er is GEEN verschil tussen deze twee termen.
In de applicatie bestaat slechts een status: "geregeld" (arranged in het Engels).
1. Statussen Begrijpen
De status wordt bepaald door de combinatie van meerdere velden.
Gebruikte Velden
A) active (bool):
- true: actieve aanvraag
- false: voltooide of geannuleerde aanvraag
B) arrangedForPatient (bool?):
- null: nog niet geregeld
- false: niet geregeld (equivalent aan null)
- true: aanvraag GEREGELD voor de patient
C) arrangedForCareGiver (Map
- Lege map {}: geen zorgverlener heeft geregeld
- { "uuid-zorgverlener": DateTime }: deze zorgverlener heeft geregeld
Terminologie
De termen "geregeld" en "gepland" zijn SYNONIEMEN - er is geen verschil.
In de code: arrangedForPatient = true betekent dat zorg is georganiseerd.
2. Mogelijke Aanvraag Statussen
Bestand: lib/core/presentation/controllers/request_card_controller.dart
1. IN BEHANDELING (Ongoing):
- arrangedForPatient != true (null of false)
- active = true
- createdAt < 24u
-> De aanvraag is net gemaakt, wachtend op reactie
2. GEREGELD (Arranged):
- arrangedForPatient = true
- active = true
-> Een zorgverlener is gevonden, zorg is gepland
3. GEANNULEERD (Cancelled):
- active = false
- arrangedForPatient != true
-> De aanvraag is geannuleerd voordat deze was geregeld
4. VOLTOOID (Completed):
- active = false
- arrangedForPatient = true
-> Zorg is verleend en is afgerond
3. Wie Kan Een Aanvraag Als "Geregeld" Markeren?
A) DE PATIENT (of de persoon die de aanvraag heeft gemaakt)
Gebruikssituatie
- De patient heeft een zorgverlener gevonden (via de app of anders)
- Zij willen aangeven dat zorg nu is georganiseerd
ACTIE:
- "Markeren als geregeld" knop op hun aanvraagdetail
- Stelt arrangedForPatient = true
BRONCODE:
lib/modules/home/presentation/controllers/request_detail_screen_controller.dart
```dart
Future
required String uuid,
bool? arrangedForPatient,
Map
}) async {
// ...
if (arrangedForCareGiver == null) {
// Patient markeert als geregeld
await arrangedRepo.call(requestId: uuid, arrangedForPatient: true);
// ...
B) DE VERPLEEGKUNDIGE (Zorgverlener)
Gebruikssituatie
- De verpleegkundige heeft contact gehad met de patient
- Zij zijn akkoord om voor de patient te zorgen
- Zij willen aangeven dat zij deze aanvraag hebben "geregeld"
ACTIE:
- "Ik heb de zorg georganiseerd" knop op aanvraagdetail
- Voegt hun UUID toe aan arrangedForCareGiver
BRONCODE:
```dart
if (arrangedForCareGiver != null) {
await arrangedRepo.call(
requestId: uuid,
arrangedForCareGiver: arrangedForCareGiver,
// ...
Belangrijk Verschil
- De patient stelt arrangedForPatient = true (globale status)
- De verpleegkundige voegt hun UUID toe aan arrangedForCareGiver (hun persoonlijke regeling)
4. Voorwaarden Voor Markeren Als "Geregeld"
Voor De Patient
- Moet de aanvraagmaker zijn (userUuid komt overeen)
- Aanvraag moet actief zijn (active = true)
- Aanvraag mag nog niet geregeld zijn
Voor De Verpleegkundige
- Moet een actief account hebben (status = active)
- Aanvraag moet in hun activiteitsgebied zijn
- Aanvraag moet actief zijn
- Verpleegkundige moet de patient hebben gecontacteerd (credits of actief abonnement hebben)
5. Zichtbare Wijzigingen Voor Gebruikers
WANNEER DE PATIENT ALS "GEREGELD" MARKEERT:
Voor de patient:
- De aanvraag verandert van "In behandeling" naar "Geregeld"
- Het icoon/kleur verandert in de lijst
- De aanvraag blijft zichtbaar in hun aanvragen
Voor verpleegkundigen:
- De aanvraag verschijnt mogelijk niet meer in beschikbare aanvragen
(afhankelijk van gedefinieerde bedrijfsregels)
- Verpleegkundigen die al hadden geregeld worden geinformeerd (mogelijk)
WANNEER DE VERPLEEGKUNDIGE ALS "GEREGELD" MARKEERT:
Voor de verpleegkundige:
- De aanvraag gaat naar hun "Geregelde aanvragen"
- Zij kunnen details blijven bekijken
- Zij kunnen hun regeling annuleren indien nodig
Voor de patient:
- Zij kunnen zien dat een verpleegkundige heeft overgenomen
- Zij kunnen bevestigen door aan hun kant als "geregeld" te markeren
6. Een Regeling Annuleren
De Patient Kan
- De aanvraag volledig annuleren (active = false)
- Dit beeindigt de aanvraag
- Verpleegkundigen zien deze niet meer
De Verpleegkundige Kan
- Hun regeling annuleren (hun UUID verwijderen uit arrangedForCareGiver)
- De aanvraag wordt weer beschikbaar voor andere verpleegkundigen
- De patient wordt geinformeerd (mogelijk)
BRONCODE:
lib/modules/home/presentation/controllers/request_detail_screen_controller.dart
- cancelRequestPatient(): annuleert de aanvraag van de patient
- cancelRequestCaregiver(): verwijdert de regeling van de verpleegkundige
7. Volledige Use Case: Levenscyclus
1. AANMAAK (Patient)
- active = true
- arrangedForPatient = null
- arrangedForCareGiver = {}
-> Status: IN BEHANDELING
2. VERPLEEGKUNDIGE REGELT (optioneel)
- arrangedForCareGiver = { "uuid-verpl": DateTime }
-> De verpleegkundige heeft aan hun kant geregeld
-> De patient heeft nog niet bevestigd
3. Patient Bevestigt
- arrangedForPatient = true
-> Status: GEREGELD
4. ZORG VOLTOOID (uiteindelijk)
- active = false
- arrangedForPatient = true (blijft)
-> Status: VOLTOOID
Of Annulering
3bis. PATIENT ANNULEERT
- active = false
- arrangedForPatient blijft null/false
-> Status: GEANNULEERD
8. Technische Referenties
Entiteit:
- lib/modules/carerequest/domain/entities/carerequest_entity.dart
- arrangedForPatient: bool?
- arrangedForCareGiver: Map
- active: bool
Use Case:
- lib/modules/carerequest/domain/usecases/update_carerequest_arranged_use_case.dart
Controllers:
- lib/modules/home/presentation/controllers/request_detail_screen_controller.dart
- lib/core/presentation/controllers/request_card_controller.dart
Repository:
- lib/modules/carerequest/domain/repositories/carerequest_repository.dart
- updateCareRequestAsArranged()
Providers:
- availableCareRequestsForCaregiverProvider (niet-geregelde aanvragen)
- arrangedCareRequestsForCaregiverProvider (aanvragen geregeld door verpleegkundige)