PediaSafe.
An anonymous incident reporting system built for the pediatric ward of Caraga Regional Hospital in Surigao City, Philippines. Staff scan the ward’s QR code and report an incident in three steps, with no login and no name, and the ward’s admin follows each one on a dashboard.
A problem worth exploring.
On a hospital ward, a near-miss is easy to leave unreported. A form takes time in the middle of a shift, and signing one can feel like owning up to a mistake. PediaSafe gives the pediatric ward a way to report a medication error, an equipment problem, or a safety concern in a few taps, with no name attached, so it reaches the people who can act on it.
Less friction. More intention.
Make reporting as easy as scanning a code. Each ward has its own QR code, and scanning it opens a three-step form on the reporter’s own phone: what kind of incident it was, how severe, and what happened. There is no account to create and no name to give, and every report comes back with a reference number for checking its status later. On the other side, the ward’s admin signs in to a dashboard that checks for new reports every half minute and announces each one aloud. From there the admin takes a report from new, through review and action taken, to resolved.
- Anonymous reports from a ward QR code, in three steps and with no login.
- A reference number for every report, to check its status later without an account.
- An admin dashboard with spoken alerts for new reports, search and filters, and PDF export.
- A monthly duty schedule that staff open with their ward’s PIN, for their own shifts or the full roster.
What the system enables.
- Before
- Staff had no anonymous way to report an incident, and no way to see what became of a report afterwards.
- With PediaSafe
- Staff can report an incident from their phone without giving a name, and check its status with a reference number. The admin sees every report on one dashboard and follows it through to resolved.
What this project taught me.
Anonymity had to be built in, not promised. The form has no name field and the database has no column for one, so there is nothing to protect later. That left the question of how someone follows up on a report they never signed. The reference number answers it: the status page shows a report’s type, severity, and progress, and never what was written in it.
BUILT WITH
- Web app
- Vue, JavaScript, Vite, Vue Router
- Charts & QR codes
- Chart.js, qrcode.vue
- In the browser
- Web Speech API, Notifications API, Canvas
- Documents
- jsPDF
- API
- Node.js, Express, REST APIs, Axios
- Sign-in & security
- JWT, bcrypt, Helmet
- Database
- PostgreSQL, Prisma, Supabase
- Hosting
- Vercel
SNSU iReserve
Lab equipment, reserved online and checked out by QR code.
