Work / Case study
Complaint Management System
Every patient complaint logged, approved, resolved and reported in one place

Every complaint heard, followed up and closed.
Patients and families raise complaints about the hospital's departments and the health centres around it, by phone, in person and through the 937 service line. We built the system the patient-relations team uses to log each one, route it for approval, record what was done about it and report on the trends.
- 6Statuses that follow each complaint, from created to closed
- 2Places a complaint can be raised against: hospital departments or health centres
- 7Settings the hospital manages itself, from users to complaint types
- 2Languages, Arabic (right to left) first, plus English
What the hospital needed
Complaints arrive from many channels about many departments. Patient relations needed one clear process, so none is lost and every one is answered.
- Log a complaint quickly, with the patient, the department and the type of issue.
- Send each complaint for approval, or reject it with a reason.
- Record what was done to resolve it before the complaint is closed.
- Let complainants check progress themselves without exposing patient details.
- Report on complaint types by hospital, department and health centre.
Our solution
One complaint journey
Created, approved, in progress, completed and closed, or rejected with a reason: every step is dated, signed by the person who took it and visible on the complaint.
Arabic first, right to left
Every screen, status and comment works in Arabic first, with a full English version and light and dark themes.
The right access for every role
Data-entry staff, approvers and report users each get exactly the permissions their role needs, and see only the hospitals assigned to them.
Clear reports, ready to print
Percentage and detailed reports by hospital, department or health centre, printed or exported to a spreadsheet in a click.
What we built
The trends at a glance
The home screen shows the top complaint types for the hospital and for the health centres, so managers see where problems cluster before they open a single report.

Every complaint, searchable
Staff find any complaint by its number, the patient's ID, the type of issue or its status, and see at a glance where each one stands.
- Complaints against departments and health centres in one list
- Status shown on every row
- View, edit or remove in one click

A clear path from logged to closed
Each complaint shows its steps with dates. Approvers approve or reject it with a reason, staff record the procedures taken and the resolution, and a closed complaint can be reopened if needed.
- Approve, reject, finish procedures, close or reopen
- Patient, complainant and identity details in one panel
- Download the complaint as a PDF

A full record of what happened
Every action and comment is kept on the complaint with the person's name and the time, so anyone picking it up knows exactly what has been done.

Reports by hospital, department or centre
Choose a hospital or health centre, a department and a date range to see the share of each complaint type, or a detailed list, then print it or export it to CSV.

Permissions the hospital controls
Roles are built module by module, with create, read, update and delete rights, so the hospital decides who can log, approve, report or change settings.

More screens

Sign-in, with the public complaint status lookup and the 937 contact details

Public status lookup: status and dates only, never patient details

Logging a new complaint

Dark mode
Built with
- Next.js
- React
- TypeScript
- Prisma
- MySQL
- Tailwind CSS
Patient and staff names, ID, phone and complaint numbers in these screens are sample data or hidden.

