Details
Medical Diagnosis Web App Powered by Machine Learning

Year: 2025
Term: Summer
Student Name: Andrei Chirilov
Supervisor: Sean Benjamin
Abstract: Machine-learning triage tools aim to reduce the workload on busy clinics, but most are either unclear or too demanding for everyday use, such as needing extensive data input or complicated procedures. This honours project creates a friendly and transparent symptom checker prototype that focuses on being clear and helpful to users, even if it is not perfectly accurate. This React/Vite single-page app gathers seventeen binary symptom flags, relays them to a FastAPI back-end, and quickly provides predictions from a logistic regression model trained on 4,920 synthetic patient records. Pre-processing involves multiplying each flag by a severity score and using SMOTE (Synthetic Minority Oversampling Technique) to rebalance less common conditions. On a 738-case hold-out set, the model achieves 19.5% exact-match accuracy and 48.5% top-three recall. These results offer a strong start for an initial test, and while there is still room to meet clinical standards, it’s excellent that it remains simple enough to understand at a glance on just one page. The simple server setup (FastAPI + SQLite) handles requests efficiently and enforces access control through token-based login, bcrypt-hashed passwords, and per-request database transactions that automatically roll back on errors. A brief ethics review highlights the main risks, including clinical mis-hits, bias, and privacy concerns. It details practical safeguards and a clear step-by-step plan for eventual clinical testing. Essentially, the prototype provides an affordable, fully reproducible starting point that can expand to include larger datasets, more advanced models, and more natural user interactions while remaining transparent and auditable.