Hospital System — QA Testing Guide
A step-by-step manual for testing all features of the hospital management platform. No technical knowledge required.
This is a hospital management system built for Kenya's healthcare environment. It is used by hospital staff to manage everything that happens from the moment a patient walks in to the moment they are discharged and their bill is settled.
The system is designed around the real workflow of a Kenyan hospital:
📋 Receptionist
Registers a patient when they arrive at the hospital.
🧑⚕️ Doctor
Reviews the patient and creates an admission record with a diagnosis and treatment plan.
👩⚕️ Nurse
Assigned to the patient, logs daily vitals, and requests medicines or supplies when needed.
💼 Nurse-in-Charge
Oversees all nurses, reviews and approves or rejects requests before they reach the pharmacy.
💊 Pharmacist
Dispenses approved medicines and supplies, manages stock levels, and handles billing.
⚙️ Admin
Manages the entire system — wards, beds, users, inventory, and payments.
External integrations:
🏥 SHA / AfyaLink
Kenya's Social Health Authority insurance system. Patients covered by National Health Insurance can have their bills submitted as claims directly from this system.
📱 HydroLife / M-Pesa
Patients can pay their hospital bills via M-Pesa. The payment request is sent directly to the patient's phone as an M-Pesa prompt.
Pass
What you see matches the "What you should see" description at the end of the test.
Fail
Something unexpected happened. Take a screenshot and note the test number.
Role
Each test shows which account to use. Log in with that role before starting the test.
Log in using the email and password below. Every account uses the same password.
| Role | Full Name | Password | |
|---|---|---|---|
| Admin | Admin User | admin@ictrh.go.ke | password |
| Doctor | Dr. John Doe | doctor@ictrh.go.ke | password |
| Nurse | Nurse Jane Smith | nurse@ictrh.go.ke | password |
| Nurse-in-Charge | Nurse Mary Johnson | nurse-in-charge@ictrh.go.ke | password |
| Pharmacist | Pharmacist David Brown | pharmacist@ictrh.go.ke | password |
| Receptionist | Receptionist Alice Mwangi | receptionist@ictrh.go.ke | password |
| Patient | Patient John Smith | patient@ictrh.go.ke | password |
- Go to the app in your browser.
- Enter a valid email and password from the table above.
- Click Log in.
- Go to the login page.
- Enter a valid email but type a wrong password.
- Click Log in.
- Log in as the Nurse.
- In the browser address bar, manually type the admin URL (e.g.,
.../admin/dashboard) and press Enter.
- Find the logout button (usually in the top-right menu or sidebar).
- Click Log out.
Role: Receptionist (or Admin)
- Log in as Receptionist.
- In the sidebar, click Patients then Register Patient (or click New Patient).
- Fill in all the fields:
- First Name:
Jane - Last Name:
Wanjiku - Date of Birth:
01/01/1990 - Gender:
Female - Phone:
0712345678 - Patient Type:
Inpatient
- First Name:
- Click Save or Register.
- Register a second patient (any name, fill required fields).
- Check the patient list.
- Open the Register Patient form.
- Leave First Name empty. Fill everything else.
- Click Save.
- Open any patient from the list.
- Click Edit.
- Change the phone number to
0799999999. - Click Save.
Role: Doctor
- Log in as Doctor.
- Click Admissions → New Admission.
- Select patient
Jane Wanjiku. - Set today's date as Admission Date.
- Fill in: Reason for Admission (e.g., "High fever"), Diagnosis (e.g., "Malaria"), Treatment Plan (e.g., "IV fluids and antimalarials").
- Click Save.
- Log in as a second doctor account (if available).
- Go to My Patients.
- Log in as Doctor.
- Go to Prescriptions → New Prescription.
- Select the patient and her admission.
- Add a medicine item:
- Select a medication (e.g., "Paracetamol")
- Quantity:
10 - Dosage:
500mg - Frequency:
Twice daily - Duration:
5 days
- Click Submit.
Role: Nurse
- Log in as Nurse.
- Go to Bed Assignments → Assign Bed.
- Select the admission for Jane Wanjiku.
- Select a Ward (e.g., "General Ward").
- Select an available bed (e.g., "B001").
- Click Save.
- Try assigning another patient to the same ward.
- Open the bed dropdown.
Role: Nurse
- Log in as Nurse.
- Go to My Patients and open Jane Wanjiku's record.
- Click Add Observation.
- Fill in: Temperature:
37.0, Blood Pressure:120/80, Pulse:72, Oxygen Saturation:98. - Click Save.
Workflow: Nurse → Nurse-in-Charge → Pharmacist
- Log in as Nurse.
- Go to Medicine Requests → New Request.
- Select Jane Wanjiku's admission.
- Select medication:
Paracetamol, Quantity:5, Reason:Patient has headache. - Click Submit.
- Log in as Nurse-in-Charge.
- Go to Medicine Requests.
- Find the pending request for Jane Wanjiku.
- Click View, then click Approve.
- Optionally add a note, then confirm.
- Create another medicine request as Nurse.
- Log in as Nurse-in-Charge, find the new pending request.
- Click Reject, enter reason:
Already dispensed today. - Confirm.
- Log in as Pharmacist.
- Go to Medicine Requests.
- Find the Approved request for Paracetamol.
- Click View, then click Dispense.
- Confirm.
- Request status → "Dispensed"
- A billing record is created for Jane Wanjiku
- The stock quantity of Paracetamol decreases by 5
- Log in as Pharmacist.
- Go to Medicine Requests.
Workflow: Nurse-in-Charge → Pharmacist
- Log in as Nurse-in-Charge.
- Go to Prescriptions.
- Find the prescription RX000001 (status: Pending).
- Click Approve.
- Log in as Pharmacist.
- Go to Prescriptions.
- Find the approved prescription.
- Click Dispense.
- Prescription status → "Dispensed"
- Medicine stock reduced
- Billing entry created for the patient
Role: Admin or Pharmacist
- Log in as Admin.
- Go to Patient Billing.
- Open a pending billing for Jane Wanjiku.
- Click Initiate Payment.
- Enter a test phone number (e.g.,
254712345678). - Confirm.
- On the same billing record, click Check Payment Status.
Workflow: Pharmacist reports → Admin approves
- Log in as Pharmacist.
- Go to Inventory → Report Damage.
- Select item:
Gauze, Quantity:3, Reason:Torn packaging. - Click Submit.
- Log in as Admin.
- Go to Inventory → Damage Reports.
- Find the Gauze damage report.
- Click Approve, add optional notes, confirm.
- Log in as Pharmacist (or Admin).
- Go to Inventory Items, open Paracetamol.
- Click Add Stock, enter quantity:
100, confirm.
- Log in as Pharmacist.
- Go to Inventory → Expired Items.
Role: Admin
- Log in as Admin.
- Open Jane Wanjiku's patient record.
- Find the SHA section, enter:
- CR ID:
CR123456 - SHA Number:
SHA001 - Scheme:
SHIF
- CR ID:
- Save.
- On Jane Wanjiku's patient page, click Check SHA Eligibility.
- Go to SHA Claims.
- Find a billing record for Jane Wanjiku that has a SHA service code.
- Click Submit Claim.
- Open a submitted claim.
- Click Check Status.
- While logged in as Nurse, keep the browser open.
- In a second browser tab (or another browser), log in as Nurse-in-Charge and approve a pending request.
- Switch back to the Nurse's tab.
- Log in as Nurse.
- Click the notification bell.
- Click on an unread notification.
- With several unread notifications, click the bell.
- Click Mark all as read.
- Log in as Admin.
- Go to User Roles.
- Go to User Roles → Assign Role.
- Select a user.
- Select role:
Doctor. - Save.
- Find any user in the user-role list.
- Click Edit.
- Change their role.
- Save.
Watch for these situations throughout all tests.
| Situation | What should happen |
|---|---|
| You submit a form with blank required fields | A red error message appears next to the empty field. The form does not save. |
| You try to access another role's page by typing the URL | You are blocked — either redirected or shown an error. |
| You try to assign a bed that is already taken | The occupied bed does not appear in the dropdown at all. |
| A pharmacist tries to dispense a request that was rejected | The rejected request is not visible in their list. |
| You dispense more medicine than is in stock | An error message stops the dispensing — it does not go negative. |
| A patient is deleted | They no longer appear in new forms, but old billing history still shows their name. |
Role: Any
- Click your name or profile icon (top-right corner).
- Go to Profile.
- Change the name, click Save.
- Go to Profile.
- Enter current password, new password, and confirm new password.
- Click Save.
- After changing your password, log out.
- Try logging in with the old password.
| Action | Admin | Doctor | Nurse | Nurse-in-Charge | Pharmacist | Receptionist |
|---|---|---|---|---|---|---|
| Register patients | Yes | — | — | — | — | Yes |
| Create admissions | Yes | Yes | — | — | — | — |
| Assign beds | Yes | — | Yes | Yes | — | — |
| Log vitals | — | — | Yes | — | — | — |
| Create medicine requests | — | — | Yes | — | — | — |
| Approve / reject requests | — | — | — | Yes | — | — |
| Dispense medicines | — | — | — | — | Yes | — |
| Create prescriptions | — | Yes | — | — | — | — |
| Approve prescriptions | — | — | — | Yes | — | — |
| Manage inventory | Yes | — | — | — | Yes | — |
| Billing & payments | Yes | — | — | Yes | Yes | — |
| SHA claims | Yes | — | — | — | Yes | — |
| Manage users & roles | Yes | — | — | — | — | — |