Validate the app
Install the TestFlight build on iPhone, or the Play internal-test build on Android. Follow the steps in order. After each step, write Passed or Failed on the Result line, and add a short note if it failed.
The bold words are the words on the screen in English. The first step sets that language.
Before you start
Role phones open the shells below. They may look empty. You create the agenda slots, bookings, payments, consultations, and exams in the steps. Do not expect a fixed visit time or a pre-filled worklist.
Clinique El Amane is available as a structure name when the app lists clinics.
The code is 000000. No text message arrives. After Send code, type 000000.
Phones
Sign out before you change account. One phone opens one view.
| Who you are | Phone | What opens |
|---|---|---|
| Ahmed, patient | +22281000001 | Home, Visits, Record, Profile |
| Cardiology doctor | +22261000001 | Home, Agenda, Patients, Profile |
| Imaging staff | +22251000001 | Worklist, Exams, Urgent, Profile |
| Lab staff | +22241000001 | Home, Prescriptions, Agenda, Profile |
| Clinic admin | +22200000001 | Dashboard, Users, Structures, Finances |
How to sign in
- Tap the language chip at the top (it shows a language icon and a short code such as
EN). - Choose English.
- Tap Sign in.
- Type the phone, tap Send code, type
000000, tap Verify.
How to sign out
Open Profile, then tap Sign out. The admin view has no Profile tab: tap the person icon at the top right, then Sign out.
Build the day as you go
Before a patient can book, the cardiology doctor needs free slots. After Account, do Doctor M3 (add slots), then continue with Patient. Use the visit you book for waiting room, join, report, and payment. Prescribe exams in Doctor M8 before Imaging and Laboratory. Section 7 repeats the cross-role path end to end.
Do not look for these
They are not in this TestFlight / Play build. A missing screen here is not a failure.
- A national identity number field
- Charts on the admin home
- A follow-up programme
- Live video controls inside a visit (you can copy a room link)
- DICOM tools, a PACS, or imaging AI (Imagerie v1 backlog for this release — not later-module v2 work; still not in this build)
- Voice, forums, an expert opinion, or a staff directory hub (out of this build; hubs and similar later modules are v2)
Contents
1. Account
You are signed out. The first screen offers Sign in and Create an account.
C1. Choose English
- On the welcome screen, tap the language chip.
- Choose English. The chip offers English, Français, and العربية.
- Repeat and choose Français, then العربية, then come back to English.
You should see: the welcome title and the Sign in button change with the language.
Result:
C2. Sign in with a phone and a code
- Tap Sign in.
- The title is Sign in. Type
+22281000001. - Tap Send code. A note says the code was sent.
- Type
000000and tap Verify.
You should see: Ahmed’s home, with the tabs Home, Visits, Record, and Profile.
Result:
C3. A wrong code is refused
- Sign out. Open Sign in again with
+22281000001. - Tap Send code, type
111111, and tap Verify.
You should see: an error, and you stay on the sign-in screen.
Result:
C4. Create an account
Use a new phone, not one from the table above. Example: +22289990001.
- From the welcome screen, tap Create an account.
- Fill in a first name, a last name, the new phone, and an email.
- Tap Send code, type
000000, then tap Next.
You should see: step 2, titled Consent.
Result:
C5. Accept consent and finish the medical profile
- Tick Accept all, or open each consent and accept it, then tap Next.
- On Complete your medical profile, fill in an address, a city, allergies, and history.
- Tap Finish.
You should see: the patient home for this new account.
Result:
C6. Reset access
- Sign out. On Sign in, tap Lost access?.
- The title is Reset access. Type the new phone and tap Send code.
You should see: a confirmation that the code was sent. You can sign in again with 000000.
Result:
C7. Sign out
- Sign in as Ahmed (
+22281000001). - Open Profile and tap Sign out.
You should see: the welcome screen again.
Result:
C8. Check that the API answers
- Sign in as Ahmed. Open Profile.
- Tap Check API health.
- On the Afia screen, tap Check API health. The button on this screen stays in English.
You should see: a line that the service is up. If the screen says the API cannot be reached, mark Failed and copy the message.
Result:
C9. Delete a trial account
Do this on the account from C4, never on Ahmed or the other phones in the table. You can leave it until the end of this guide.
- Sign in with the trial phone.
- Open Profile and tap Delete account.
- Confirm with the same phone or email.
You should see: you are signed out. Signing in again with that phone does not open the old profile.
Result:
2. Patient
Sign in as Ahmed (+22281000001). The bar at the bottom has Home, Visits, Record, and Profile.
If Find a doctor later shows no free times, sign out, complete Doctor M3, sign back in as Ahmed, then continue.
P1. See the day
- Stay on Home.
You should see: a greeting, New appointment, Health alerts, My record, and Payments. A next visit may be listed if you already booked one; an empty next-visit area is a pass. A bell at the top is present (unread count may be zero).
Result:
P2. Read notifications
- Tap the bell, or tap See all under the latest notifications.
- The title is Notifications. Tap Mark all as read if it is shown.
- Go back.
You should see: the list of notices, or a clear empty state. The unread count on the bell drops after you mark them read when notices were unread.
Result:
P3. Find a doctor and book a visit
- On Home, tap New appointment.
- The title is Find a doctor. Search for cardiology, or pick the cardiology doctor.
- Tap Book.
- Pick a free time you created (or that is available), then tap Book this slot.
- On Confirm appointment, add a short reason and tap Confirm appointment.
You should see: a confirmation with the doctor, the time, and Clinique El Amane (or the clinic shown). Tap Back to home to return home. Note the time; you will reuse this visit.
Result:
P4. Filter my visits
- Open the Visits tab. The title is My appointments.
- Tap Upcoming, then Past, then Cancelled, then All.
You should see: the counts change, and the list matches the filter. The visit from P3 is under Upcoming.
Result:
P5. Change a visit
- On an upcoming visit, tap Change.
- The title is Change appointment. Pick another free time.
- Tap Confirm change.
You should see: the message Appointment moved. The visit shows the new time. Note the new time if it changed.
Result:
P6. Cancel a visit
Use a visit you can afford to lose, or book a second one with New appointment first (keep at least one upcoming visit for P7).
- On that visit, tap Cancel visit.
- Optionally pick a reason, then tap Confirm cancellation.
You should see: the visit moves under Cancelled. Change the date instead leaves the visit in place and opens the change screen.
Result:
P7. Waiting room
- On Home or Visits, open the upcoming visit from P3 (or P5) and tap Join consultation or Join.
- The title is Waiting room. Read the preparation lines. Copy Room link if it is shown.
You should see: the visit, the time, and the room link. There are no live camera controls. That is expected.
Result:
P8. Connection problem
- From the waiting room, tap Report a connection problem.
- Read the tips, then tap Reconnect.
You should see: the title Connection problem, and a way back to the room.
Result:
P9. End of the visit and payment
Payment appears after the doctor has finished and validated the visit. If Pay is not offered yet, complete Doctor M5 (or section X2), then return here.
- Open that finished visit, or stay on a visit that offers Pay consultation.
- If a rating is offered, send one.
- Tap Pay consultation or Pay.
- Confirm the payment.
You should see: Payment accepted, then a way to open Invoice detail. If payment cannot complete, the screen says Payment failed and stays on the payment step.
Result:
P10. Payment history and methods
- On Home, tap Payments.
- The title is Payment history. Open one invoice if a row is listed (after P9).
- Tap the wallet icon (Payment methods).
You should see: past invoices when you have paid, or a clear empty history; one invoice’s detail when a row exists; and the saved payment methods screen.
Result:
P11. Read the record
- Open the Record tab.
You should see: Ahmed’s name, and the allergies and history from the profile. Vitals and a referring doctor may be empty until the care team adds them; an empty vitals area is a pass.
Result:
P12. Exams and one result
- On Record, open the lab and imaging module, or on Home tap See all under exams in progress.
- Open one exam if a row exists (after Lab L4, Imaging I3, or section X3 / X4).
You should see: the exam list, or a clear empty state. When a result exists, you can read it and you cannot edit it.
Result:
P13. Shared documents
- On Record, tap Shared documents.
You should see: the documents shared with Ahmed, or a clear empty state.
Result:
P14. Health alerts
- On Home, tap Health alerts.
You should see: measurements and alerts from the care team when any exist, or a clear empty state. Blood pressure, heart rate, glucose, and temperature appear when the team has recorded them.
Result:
P15. Edit the profile
- Open Profile.
- Change the city or the address.
- Tap Save changes.
You should see: the new value still there after you leave the screen and come back.
Result:
P16. Help
- On Profile, tap Help and support.
- Type a word in the search field, for example appointment.
You should see: short answers about booking, payment, the record, and cancellation, plus an emergency note.
Result:
3. Doctor
Sign out, then sign in as +22261000001. The tabs are Home, Agenda, Patients, and Profile. The home title is Dashboard.
Do M3 before the patient books if you have not added free slots yet.
M3. Agenda, a new slot, and availability
- Open Agenda, or tap Manage agenda.
- Tap the + button. The title is Slot management. Add one or more free slots for a day the patient can book, then go back.
- Open My availability from the agenda or from Profile.
You should see: the new slot on the agenda, and the availability screen. Today’s visit list may still be empty until the patient books.
Result:
M1. See the day
- Stay on Home.
You should see: Manage agenda, Teleconsultation, Patient record, and Waiting room, plus today’s consultation count. Visits you booked as Ahmed appear in the day list when their time is today; an empty day list is a pass before booking.
Result:
M2. Notifications
- Tap the bell.
You should see: the doctor’s notices, or a clear empty state. Going back updates the unread count.
Result:
M4. Waiting room, waiting list, and emergencies
- Open Patients.
- Tap Waiting room, then go back.
- Tap Waiting list, then go back.
- Tap Emergencies.
You should see: each screen. People waiting or an urgent row appear only if you created that situation; a clear empty state on each screen is a pass.
Result:
M5. Join a consultation and write the report
Use the visit Ahmed booked in Patient P3 (or book one now with Ahmed, then return). If the visit is not on Home yet, open Agenda and join from there.
- On that visit, tap Join.
- Write a short note and save it (Save or Save notes).
- Open the report and tap Validate report.
You should see: Report saved (or Saved). The note stays when you open the visit again. Ahmed can then pay in Patient P9.
Result:
M6. Find a patient and open the file
- Open Patients.
- In Search a patient, type
Ahmed. - Tap Ahmed.
You should see: only matching names, then Ahmed’s file with his name.
Result:
M7. Vitals, prescriptions, and exams
- On Ahmed’s file, tap Vitals.
- Go back, tap Prescriptions.
- Go back, tap Exams, and open one result if a row exists.
You should see: each screen opens. Vitals, prescriptions, and exams may be empty until you add them; an empty list is a pass. After M8 and Lab / Imaging, a result you can read may appear here.
Result:
M8. Prescribe an exam
- On Ahmed’s exams, tap Prescribe an exam.
- Choose Laboratory, name the exam, and save.
- Repeat and choose Imaging.
You should see: both exams in the list. Lab staff and imaging staff will see them in sections 5, 6, and 7.
Result:
M9. Remote monitoring and alerts
- On Patients, tap Remote monitoring.
- Go back and tap Alerts.
You should see: monitored patients, or a clear empty state, then the alerts screen.
Result:
M10. Doctor profile
- Open Profile.
- Change a visible field, such as the display name, and tap Save.
You should see: Saved, and the new name on Home after you go back.
Result:
4. Clinic admin
Sign out, then sign in as +22200000001. The tabs are Dashboard, Users, Structures, and Finances. Profile is the person icon at the top right.
D1. Dashboard
- Stay on Dashboard.
You should see: user counts, revenue, suspended accounts, and shortcuts Manage users, Manage structures, and payment tracking. There is no chart. That is expected.
Result:
D2. Staff list and a user
- Open Users. The title is User management.
- Search for the cardiology phone or a name.
- Open one row. The title is User detail.
You should see: the staff list, then one person’s name, phone, and role.
Result:
D3. Change a role
Use a trial account from C4 if you still have it. Do not change Ahmed or the cardiology doctor if you still need those views.
- On the user, tap Edit.
- The title is Role assignment. Pick another role and save.
You should see: Role assigned, and the new role on the user.
Result:
D4. Suspend and reactivate
- On the same user, tap Suspend.
- Confirm on Account management.
- Open the user again and tap Reactivate.
You should see: Account status updated each time, and the button switches between Suspend and Reactivate.
Result:
D5. Admin profile
- Tap the person icon at the top right.
You should see: the admin profile, Check API health, and Sign out.
Result:
D6. Structures
- Open Structures. The title is Structure management.
- Open Clinique El Amane, or the clinic you use for booking.
You should see: the clinic list, then the clinic’s address and links to specialties, tariffs, and slots.
Result:
D7. New structure
- On Structures, tap Add a structure.
- Fill in a name and save.
You should see: the new clinic in the list.
Result:
D8. Specialties, tariffs, slots, and an exam type
- Open the structure you use for booking (or the one from D7).
- Open Specialty settings, then go back.
- Open Tariff settings, then go back.
- Open Slot settings, then go back. Add or adjust slots here if the doctor agenda still has no free times.
- Add an exam type with Add an exam type. Choose Laboratory or Imaging, name it, and tap Add.
You should see: each settings screen, then the new exam type on the structure.
Result:
D9. Transactions and agreements
- Open Finances. The title is Transaction tracking.
- Open Agreement list.
- Open one agreement if a row exists.
- Tap New agreement, pick a structure, fill in the partner, and save.
You should see: the money summary (it may be zero), the agreement list or an empty list, one agreement’s detail when a row exists, and the new agreement after you save.
Result:
5. Imaging
Sign out, then sign in as +22251000001. The tabs are Worklist, Exams, Urgent, and Profile. The app opens the exam. It does not include a DICOM viewer.
If the worklist is empty, complete Doctor M8 (Imaging) first, then return.
I1. Worklist
- Stay on Worklist.
You should see: imaging exams that are waiting, including the imaging exam from M8 if you created one. An empty worklist is a pass only before you prescribe; after M8, the new exam should appear.
Result:
I2. Open an exam and write the report
- Open the exam from M8 (or another waiting row you created).
- Tap Write report.
- Write a short report and continue to the signature step.
You should see: the patient and the requested exam, then the report text you typed.
Result:
I3. Sign and send
- On Validation and signature, tap Validate and sign.
- On Result transmission, tap Send now.
You should see: a send summary. If the report is not signed yet, the screen says it is not validated and does not pretend it was sent.
Result:
I4. Exams and urgent
- Open Exams.
- Open Urgent.
You should see: the exam list with counts, then the urgent imaging list. An empty urgent list is a pass when nothing was marked urgent.
Result:
I5. Profile
- Open Profile.
- Confirm the imaging chip, then tap Sign out.
You should see: the phone number, an imaging label, and the welcome screen after sign-out.
Result:
6. Laboratory
Sign in as +22241000001. The tabs are Home, Prescriptions, Agenda, and Profile.
If prescriptions are empty, complete Doctor M8 (Laboratory) first, then return.
L1. Lab home
- Stay on Home.
You should see: counts for prescriptions waiting and results to send (they may be zero), plus shortcuts to prescriptions and Send results.
Result:
L2. A prescription
- Open Prescriptions. The title is Prescriptions received.
- Open the lab exam from M8, or any waiting row you created.
You should see: the patient, the requesting doctor, and actions Accept and schedule and Enter results.
Result:
L3. Schedule a slot
- On that prescription, tap Accept and schedule or Schedule.
- Pick a time and confirm.
You should see: a confirmation screen, and the exam on Agenda (Exam calendar).
Result:
L4. Enter, validate, and send a result
- On the prescription, tap Enter results.
- Type a result and continue.
- Tap Validate and sign.
- Tap Send now.
You should see: each step in order, then a send confirmation. Ahmed can read this result in Patient P12 after you send it.
Result:
L5. Profile tools
- Open Profile.
- Under Management, open Structure details, Exam types, Tariffs, and Transmission history.
- Tap Sign out.
You should see: each screen, then the welcome screen.
Result:
7. From one role to another
Sign out between phones. Create the visits and exams in these steps (or reuse ones you already created above). Do not rely on older seed data.
X1. A booking shows on the doctor’s agenda
- As the cardiology doctor, ensure free slots exist (M3).
- As Ahmed, book a visit with the cardiology doctor (P3). Note the time.
- Sign out. Sign in as
+22261000001. - Open Agenda.
You should see: the visit at that time, with Ahmed’s name.
Result:
X2. A written visit can be paid by the patient
- As the doctor, open that visit, write the report, and tap Validate report (M5).
- Sign out. Sign in as Ahmed.
- Open Visits, find the visit, and pay it if Pay is offered (P9).
You should see: the visit under past visits after it is finished, and Payment accepted after you pay.
Result:
X3. A lab result reaches the patient
- As the doctor, prescribe a Laboratory exam for Ahmed (M8).
- Sign in as lab (
+22241000001), enter the result, sign it, and tap Send now (L4). - Sign in as Ahmed. Open Record and the exam.
You should see: the text the lab sent. Ahmed cannot edit it.
Result:
X4. An imaging report reaches the patient
- As the doctor, prescribe an Imaging exam for Ahmed (M8).
- Sign in as imaging (
+22251000001), write the report, tap Validate and sign, then Send now (I3). - Sign in as Ahmed and open that exam from Record.
You should see: the report text. The app does not open a DICOM viewer.
Result: