📋 UC04: Patient Care Request
Use Case Uc04 Care Request Submitted By A Patient
USE CASE NAME: Care Request Creation by a Patient
PRIMARY ACTOR: Patient registered on CareDeal
Business Objective
Allow a patient (or their representative) to create a care request
to find a nurse who will come to their home.
Preconditions
- The patient has a CareDeal account of type "patient"
- The patient is logged into the application
- The patient knows the details of the required care
1
Accessing the form
- The patient presses the "+" button on the home screen
- The care request form opens
2
Selecting care types
- The patient selects the types of care needed:
- Bathing assistance (toilette)
- Wound care (plaies)
- Injections
- Bandages (pansements)
- Insulin therapy
- Infusion therapy (perfusion)
- The patient presses "Next"
3
Care frequency
- The patient indicates the daily frequency of care
- The patient presses "Next"
4
Patient address
- The patient enters the address where care will be provided
- The system geolocates the address
- The patient verifies the location on the map
- The patient presses "Next"
5
Patient information
- The patient enters:
- First name (required)
- Last name (required)
- Date of birth (required)
- Email (optional)
- Languages spoken (at least one)
- The patient presses "Next"
6
Contact person
- The patient selects who is making the request:
- "Patient" - it's for themselves
- "Friend" - a friend is making the request
- "Family" - a family member is making the request
- "Professional" - a social worker or other professional
- The patient presses "Next"
7
Phone number
- If the patient selected "Patient": their account phone number is used
- Otherwise: they can add the patient's phone number
- The contact number is the number nurses will call
8
Confirmation
- The patient verifies all information
- The patient presses "Confirm"
9
Request created
- The system creates the CareRequestEntity
- A success message is displayed
- The number of nurses available in the area is indicated
The CareRequestEntity entity contains:
- uuid: unique request identifier
- userUuid: UUID of the user who created the request
- phoneNumber: primary contact phone number
- patientPhoneNumber: patient phone number (if different)
- contactPersonType: patient/friend/family/professional
- firstNamePatient: patient's first name
- lastNamePatient: patient's last name
- dateOfBirth: date of birth
- email: patient's email (optional)
- languagesISO: languages spoken
- careServiceTypes: list of care types
- careFrequency: daily frequency
- address: complete text address
- geolocation: GPS coordinates
- active: true (request is active)
- arrangedForPatient: null (not yet arranged)
- arrangedForCareGiver: {} (no caregiver has arranged)
- createdAt: creation date
E1: Address not found
- The entered address cannot be geolocated
- Message: "Address not found"
- The patient must retry with a more precise address
E2: Missing required field
- The patient has not filled in a required field
- Message: "Please fill in all required fields"
- The patient must complete the missing fields
E3: No nurse available
- No nurse covers this geographic area
- The request is still created
- Message: "No caregiver currently available in your area"
E4: Connection lost
- The connection is lost during submission
- Message: "Please check your connection"
- The patient can retry
Request screens:
- lib/modules/carerequest/presentation/screens/care_service_types_screen.dart
- lib/modules/carerequest/presentation/screens/care_frequency_screen.dart
- lib/modules/carerequest/presentation/screens/address_screen.dart
- lib/modules/carerequest/presentation/screens/patient_info_screen.dart
- lib/modules/carerequest/presentation/screens/contact_person_screen.dart
- lib/modules/carerequest/presentation/screens/phone_number_screen.dart
- lib/modules/carerequest/presentation/screens/summary_screen.dart
Controllers:
- lib/modules/carerequest/presentation/controllers/carerequest_form_controller.dart
- lib/modules/carerequest/presentation/controllers/care_request_submission_controller.dart
Entity:
- lib/modules/carerequest/domain/entities/carerequest_entity.dart
Use Case:
- lib/modules/carerequest/domain/usecases/create_carerequest_usecase.dart
Contact person type:
- lib/core/domain/entities/contact_person_type.dart