🔧 Technische Samenvatting
Dit document biedt een algemeen overzicht van de CareDeal applicatie gebaseerd
op code-analyse.
CareDeal is een mobiele applicatie die patienten die thuisverpleging nodig
hebben verbindt met beschikbare zorgprofessionals.
Doelmarkt: Belgie (bewezen door standaard +32 en RIZIV-nummer)
Hoofdgebruikssituatie:
1. Een patient (of hun vertegenwoordiger) maakt een zorgaanvraag
2. Verpleegkundigen in het gebied zien de aanvraag
3. Een verpleegkundige neemt contact op met de patient
4. Zorg wordt georganiseerd tussen de twee partijen
Drie gebruikerstypes bestaan in de applicatie:
1. Patient
- Maakt zorgaanvragen
- Account via eenvoudige telefoonverificatie
- Kan hun aanvragen opvolgen
2. ZORGVERLENER (Verpleegkundige)
- Bekijkt beschikbare aanvragen in hun gebied
- Contacteert patienten
- Vereist RIZIV-nummer en identiteitsdocument
- Account in afwachting van validatie (24u tot 48u door care-support team)
3. Organisatie
- Vertegenwoordigt een zorgbedrijf
- Kan meerdere zorgverleners groeperen
- (Uitgebreide functionaliteit)
Bron: lib/core/domain/entities/user_type.dart
PATIENT (eenvoudig):
1. Selecteer "Patient" rol
2. Voer telefoonnummer in
3. Bevestig SMS-code
4. Account actief -> kan aanvragen maken
ZORGVERLENER (volledig):
1. Selecteer "Zorgverlener" rol
2. Kies type (Individueel/Organisatie)
3. Voer RIZIV-nummer in (11 cijfers)
4. Maak profiel aan (naam, e-mail, talen)
5. Definieer activiteitsgebied (adres + 3km straal)
6. Upload ID-documenten (voor + achterkant)
7. Verifieer telefoonnummer
8. Account aangemaakt in "pendingVerification" status
9. Wacht op care-support team validatie (24u tot 48u)
Een zorgaanvraag bevat:
- Zorgtypes: wassen, wonden, injecties, verbanden, insuline, infuus
- Dagelijkse frequentie
- Adres patient (gelokaliseerd)
- Patientinformatie (naam, geboortedatum, talen)
- Contactpersoon (patient/familie/vriend/professional)
- Contacttelefoonnummers
Mogelijke statussen:
- In behandeling (actief, nog niet geregeld)
- Geregeld (zorgverlener gevonden)
- Geannuleerd (geannuleerd door patient)
- Voltooid (zorg afgerond)
Twee mogelijke nummers per aanvraag:
- phoneNumber: primair contact (persoon die de aanvraag doet)
- patientPhoneNumber: nummer patient indien anders (optioneel)
Afgehandelde scenario's:
- Patient voor zichzelf -> hun accountnummer
- Familie/Vriend/Professional -> hun nummer + nummer patient (optioneel)
- Verpleegkundige maakt aanvraag -> hun zorgverlener nummer + nummer patient
De status wordt bepaald door meerdere velden:
- active: boolean (actief of beeindigd)
- arrangedForPatient: boolean (georganiseerd voor patient)
- arrangedForCareGiver: Map (welke zorgverleners hebben geregeld)
Slechts een status bestaat in de applicatie: "arranged" (geregeld).
Wie kan als geregeld markeren:
- Patient: kan hun aanvraag als geregeld markeren
- Verpleegkundige: kan markeren dat zij een aanvraag hebben geregeld
Huidige Testperiode
De applicatie is momenteel GRATIS tijdens de testperiode.
Alle functies zijn zonder kosten toegankelijk.
Na De Testperiode
Een jaarabonnement zal worden aangeboden.
Prijsdetails worden gecommuniceerd voor het einde van de testperiode.
Gratis abonnement bevat:
- 3 km activiteitsstraal
- Basisfuncties
Framework: Flutter (Dart)
Architectuur: Clean Architecture (domain/data/presentation)
State management: Riverpod met code generatie
Navigatie: GoRouter
Backend: Firebase (Auth, Firestore, Storage, Functions, Cloud Messaging)
Hoofdmodules:
- auth: authenticatie
- user: gebruikersbeheer
- caregiver: zorgverlener functies
- carerequest: zorgaanvraag beheer
- home: hoofdschermen
- onboarding: eerste gebruik
Firebase Firestore collecties:
- users: gebruikersaccounts
- caregivers: zorgverlener profielen
- care_requests: zorgaanvragen
Firebase Storage:
- ID-documenten (zorgverleners)
- Profielfoto's
- Telefoonauthenticatie via Firebase Auth (OTP SMS)
- ID-documenten geverifieerd door het care-support team
- RIZIV-nummer vereist voor zorgverleners
- Firestore beveiligingsregels (rol-gebaseerde toegang)
- Push meldingen via Firebase Cloud Messaging
- FCM tokens beheerd per gebruiker