📋 UC02: Verpleegkundige Account
Use Case Uc02 Verpleegkundige Account Aanmaken
USE CASE NAAM: Zorgverlener (Verpleegkundige) Account Aanmaken
PRIMAIRE ACTOR: Verpleegkundige (zorgprofessional)
Bedrijfsdoel
Een verpleegkundige in staat stellen zich te registreren op CareDeal om
zorgaanvragen te bekijken van patienten in hun activiteitsgebied en hun
diensten aan te bieden.
Voorwaarden
- De gebruiker heeft de CareDeal applicatie geinstalleerd
- De gebruiker heeft een geldig mobiel telefoonnummer
- De gebruiker heeft een geldig RIZIV-nummer (Belgische zorgprofessional ID)
- De gebruiker heeft een identiteitsdocument (ID-kaart of paspoort)
- De gebruiker heeft nog geen account met dit telefoonnummer
NOMINAAL SCENARIO (Happy Path)
- De gebruiker start de applicatie
- De gebruiker selecteert "Zorgverlener" (of "Ik ben zorgverlener")
- Het scherm vraagt of de gebruiker een individu of organisatie is
- De gebruiker selecteert "Verpleegkundige" (individueel)
- Het scherm vraagt om het RIZIV-nummer
- De gebruiker voert hun 11-cijferig RIZIV-nummer in
- Het systeem valideert het nummerformaat
- Het profielaanmaakscherm wordt weergegeven
- De gebruiker voert in:
- Voornaam (verplicht)
- Achternaam (verplicht)
- E-mail (verplicht, geldig formaat)
- Geaccepteerde talen (minimaal een)
- Het gebiedsselectiescherm wordt weergegeven
- De gebruiker voert hun werkadres in of selecteert het
- Het systeem lokaliseert het adres
- De initiele activiteitsstraal is 3 km (gratis abonnement)
- Het scherm vraagt om ID-kaartfoto's
- De gebruiker maakt een foto of selecteert:
- De voorkant van de ID-kaart (verplicht)
- De achterkant van de ID-kaart (verplicht)
- Het telefoonverificatiescherm wordt weergegeven
- De gebruiker voert hun telefoonnummer in (+32 standaard)
- Het systeem controleert of het nummer niet al in gebruik is
- Het systeem verzendt een SMS met een 6-cijferige code
- De gebruiker ontvangt de SMS
- De gebruiker voert de 6-cijferige code in
- Het systeem verifieert de code met Firebase Auth
- Het systeem maakt het Firebase Auth account aan
- Het systeem maakt de Caregiver entiteit aan met:
- uuid: unieke identificatie
- name: "Achternaam Voornaam"
- inamiNumber: RIZIV-nummer
- number: telefoonnummer
- email: e-mailadres
- languagesAcceptedISO: geselecteerde talen
- geolocation: GPS-coordinaten
- workingAddress: tekstadres
- rangeOfActivity: 3 (km - gratis abonnement)
- imageIDRectoUrl: voorkant URL
- imageIDVersoUrl: achterkant URL
- status: "pendingVerification"
- credits: 0
- Het systeem maakt ook de bijbehorende User entiteit aan
- Het registratie-afsluitscherm wordt weergegeven
- Een bericht geeft aan dat het account in afwachting is van verificatie
- De verpleegkundige kan de applicatie openen maar kan nog niet
aanvragen bekijken (status = pendingVerification)
ALTERNATIEVE SCENARIO'S / FOUTEN
A1: Ongeldig RIZIV-nummer (Stap 3)
- Het nummer is geen 11 cijfers
- Bericht: "RIZIV-nummer moet exact 11 cijfers bevatten"
- De gebruiker moet het nummer corrigeren
A2: Ongeldige e-mail (Stap 4)
- Het e-mailformaat is niet geldig
- Bericht: "Voer een geldig e-mailadres in"
- De gebruiker moet de e-mail corrigeren
A3: Geen taal geselecteerd (Stap 4)
- De gebruiker heeft geen taal geselecteerd
- Bericht: "Selecteer minimaal een taal"
- De gebruiker moet een taal selecteren
A4: Adres niet gevonden (Stap 5)
- Het ingevoerde adres kan niet worden gelokaliseerd
- Bericht: "Adres niet gevonden. Probeer het opnieuw."
- De gebruiker moet het adres corrigeren
A5: Ontbrekend document (Stap 6)
- De gebruiker heeft niet beide kanten van het document geleverd
- Bericht: "Lever beide kanten van het document"
- De gebruiker moet de foto's aanvullen
A6: Telefoonnummer al in gebruik (Stap 7)
- Er bestaat al een account met dit nummer
- Bericht: "Er bestaat al een account met dit nummer"
- Link naar inloggen wordt aangeboden
A7: Onjuiste of verlopen SMS-code (Stap 8)
- Zie vergelijkbare scenario's in UC01
Bij succes:
- Een Firebase Auth account wordt aangemaakt
- Een Caregiver entiteit wordt aangemaakt met status "pendingVerification"
- Een User entiteit wordt aangemaakt met userRole = "caregiver"
- Documenten worden opgeslagen in Firebase Storage
- De verpleegkundige is geauthenticeerd maar hun account wacht op validatie
Accountstatus:
- Het account wordt aangemaakt met status StatusCaregiver.pendingVerification
- Het care-support team valideert het account om te wijzigen naar "active"
- Validatietermijn: 24 tot 48 uur (werkdagen)
- Zolang de status "pendingVerification" is, kan de verpleegkundige niet:
- Zorgaanvragen bekijken
- Patienten contacteren
- Zich abonneren op een betaald plan
Mogelijke zorgverlener statussen (StatusCaregiver):
- pendingVerification: in afwachting van admin validatie
- active: gevalideerd account, kan werken
- inactive: tijdelijk gedeactiveerd account
- rejected: account geweigerd door admin
- suspended: geschorst account
Schermbestanden:
- lib/modules/caregiver/presentation/screens/user_type_screen.dart
- lib/modules/caregiver/presentation/screens/inami_number_screen.dart
- lib/modules/caregiver/presentation/screens/caregiver_profile_creation_screen.dart
- lib/modules/caregiver/presentation/screens/area_of_activity_screen.dart
- lib/modules/caregiver/presentation/screens/upload_official_document_screen.dart
- lib/modules/caregiver/presentation/screens/phone_number_verification_screen.dart
- lib/modules/caregiver/presentation/screens/confirm_phone_number_verification_screen.dart
- lib/modules/caregiver/presentation/screens/end_form_screen.dart
Controllers:
- lib/modules/caregiver/presentation/controllers/registration_form_controller.dart
- lib/modules/caregiver/presentation/controllers/form_validation_controller.dart
- lib/modules/caregiver/presentation/controllers/document_upload_controller.dart
- lib/modules/caregiver/presentation/controllers/form_navigation_state.dart
Use Cases:
- lib/modules/caregiver/domain/usecases/create_caregiver_usecase.dart
- lib/modules/user/domain/usecases/create_user.dart
Entiteiten:
- lib/modules/caregiver/domain/entities/caregiver_entity.dart
- lib/core/domain/entities/status_caregiver.dart
- lib/core/domain/entities/user_type.dart
Registratiestappen (RegistrationStep):
- userType
- inamiNumber
- profileCreation
- areaOfActivity
- documents
- phoneVerification
- confirmPhoneVerification
- welcome