MK
Mohamed Khaled
Software Engineer
English

Retina — Diabetic Retinopathy Classifier (MVP)

Role: ML Engineer & Backend — Sole developer for the MVP; later provided documentation and mentoring for students who extended the project.

Project summary

An educational MVP designed to demonstrate an end-to-end retinal screening workflow. The system provides separate portals for patients and ophthalmologists: patients can book appointments and view their reports, while doctors manage schedules, review images and approve automatically-generated reports. The project included an integrated classification model (converted to an H5 inference file) that accepts retinal images and returns a probability score for diabetic retinopathy.

I built the MVP end-to-end and then supported a group of students by preparing documentation (DB diagrams, table relations, and pipeline notes) and explaining complex operations such as the booking workflow and the image-analysis pipeline.

Key features

  • Dual portals: patient-facing booking & report pages, and doctor-facing appointment management and image review.
  • Model integration: accepted a third-party retina model, converted to H5 for serving, and wired into the inference pipeline to return DR probability scores and confidence metadata.
  • Dynamic reports & prescriptions: generate clinician-approved reports and dynamic prescriptions based on clinic findings or automated image analysis.
  • Realtime chat: doctor–patient communication via WebSocket-based chat (Django Channels) with private rooms for each consultation.
  • Educational deliverables: DB diagrams, relations and pipeline documentation produced for students and maintainers.

Model & inference notes

The classification model was provided by a third party and converted to an H5 file for ease of serving. Inference is run server-side and returns a probability score and an optional explainability overlay (saliency/heatmap) that the doctor can inspect before validating results. Low-confidence cases are flagged for manual review and included in the clinician sign-off workflow.

Reports and prescription drafts created from model outputs require clinician approval before being published to the patient's portal.

Realtime collaboration & UX

Implemented real-time doctor–patient chat and notification channels using WebSockets and Django Channels. Each consultation has a private chat room and event stream for status updates (appointment, report ready, review requested). Frontend interaction is implemented in Vanilla JavaScript for lightweight integration into the portals.

Educational support & documentation

After delivering the MVP I prepared supporting materials to help students understand and extend the system: database diagrams, table relation explanations, and pipeline walkthroughs (especially for the booking flow and the image-analysis submission/validation cycle).

This material was used as a baseline for student assignments and to onboard new contributors safely and quickly.

Tech stack (concise)

  • Model serving: containerized REST endpoints (TF Serving / simple H5 loader)
  • Backend: Django & Django REST Framework
  • Async & realtime: Redis + Celery, Django Channels for WebSockets
  • Frontend: Vanilla JavaScript for lightweight portals
  • Data store: PostgreSQL; code & collaboration: GitHub

Impact & next steps

  • Delivered a working MVP that demonstrates automated retinal screening inside a clinical booking workflow.
  • Provided documentation and guidance enabling students to extend the system into production-ready flows.
  • Suggested next steps: formal external validation, robust explainability modules, and integration with clinic EHRs for automated reporting.
← Back to projects