The problem
People on long-term medication miss doses and run out of tablets for the most ordinary reason: nobody tracks the strip. A 30-tablet strip at one tablet a day empties in 30 days, but the refill reminder lives in nobody's head. Pharmacies, meanwhile, retype prescriptions by hand for every repeat order. This project builds the portal that closes both gaps: patients upload a prescription (photo or PDF), review each detected medicine line and correct misreads, and a pharmacist verifies the order before it is accepted. Verified medicines generate a dose schedule with reminders, and the system computes days-of-stock from the prescribed dosage to forecast the exact refill date — alerting days before the strip empties, not after. Every order keeps its GST invoice.
How it works
- The patient uploads a prescription file; the system stores it and extracts the medicine lines for review.
- The patient reviews each line — medicine, strength, dosage, duration — correcting the flagged lines, then submits for verification.
- A pharmacist reviews the upload in the verification queue and approves it (or rejects with a note); only approved medicines proceed.
- Approved medicines generate a dose schedule from their dosage instructions, with reminder times per slot.
- The refill engine divides dispensed quantity by daily dosage to compute the run-out date and schedules low-stock and suggested-refill alerts ahead of it.
- The patient reorders in one tap from the alert; the order flows through shipped/delivered states with its invoice.
- Expired prescriptions block new reorders until a fresh prescription is uploaded and verified.
Tech stack:
- Python 3 with Django (portal + verification workflow)
- PostgreSQL (patients, prescriptions, schedules, orders)
- HTML, CSS and JavaScript (patient portal + pharmacist dashboard)
- Celery with Redis (reminder and refill-alert scheduling)
- Tesseract OCR (medicine-line extraction for review)
- WeasyPrint (GST invoice PDFs)
- Docker (one-command deployment)
| Parameter | Value |
|---|---|
| Upload formats | JPG, PNG, PDF (up to 10 MB per file) |
| Verification | Human pharmacist approval required before scheduling |
| Reminder channels | In-app and email (SMS gateway configurable) |
| Refill forecast | Quantity ÷ daily dosage, recomputed on every dispense |
| Invoice | GST invoice PDF per order |
| Data retention | Prescription files stored encrypted at rest (design) |
| Deployment | Single Docker container |
Project features
- [Prescription upload] Patients upload prescription photos or PDFs; the upload is queued with metadata (doctor, date, patient) for processing.
- [Medicine-line review] Detected medicine lines are shown with a read-quality flag per line, and the patient corrects anything misread before submitting — nothing is ordered from an unchecked scan.
- [Pharmacist verification queue] A pharmacist dashboard lists pending uploads for approve/reject with notes; schedules activate only after verification.
- [Dose schedule with reminders] Verified medicines become a daily schedule (morning/noon/night slots) with taken/due/upcoming states and reminder notifications.
- [Refill forecasting] Days-of-stock is computed from quantity divided by daily dosage; low-stock and suggested-refill alerts fire before the stock runs out.
- [Order history and invoices] Every order keeps its items, amounts, status timeline and a downloadable GST invoice.
- [Prescription validity tracking] Expiry dates on prescriptions are tracked so reorders against expired prescriptions are blocked pending a fresh upload.
What is included
- Patient portal source code (upload, review, schedule, orders)
- Pharmacist verification dashboard
- Reminder and refill-forecast engine
- Database schema and seed data for the viva demo
- GST invoice template and PDF generation
- Project report PDF (background, workflow design, OCR-review pipeline, methodology)
- PPT presentation for final review
- Viva Q&A preparation document (verification workflows, scheduling, OCR limits, data privacy)
Limitations & prerequisites
- This is a management portal prototype, not a licensed pharmacy system — it does not replace a pharmacist's professional judgment, and the report states this.
- OCR read quality varies with handwriting and photo quality; the human review + pharmacist verification steps exist precisely because of this.
- Reminders are user-configured and advisory; the system gives no medical advice and never changes dosages.
- Payment gateway integration is stubbed in the demo build; real payments are future scope.
- Drug-interaction checking is not included and is listed as future scope with a clinical data source.
Frequently Asked Questions
What happens if the scan misreads a medicine?
Every line carries a read-quality flag and the patient must review and correct lines before submitting; then a pharmacist verifies the whole prescription. Two human checkpoints sit between the scan and the schedule.
How does refill forecasting work?
The engine divides the dispensed quantity by the prescribed daily dosage to get days-of-stock, then raises a low-stock alert and a suggested refill a few days before the computed run-out date.
Can someone reorder against an old prescription?
No — prescriptions carry validity periods, and the system blocks reorders against expired ones until a fresh prescription is uploaded and verified.
Is this a real pharmacy system?
No. It is a built-to-order academic prototype demonstrating the upload-verify-schedule-refill workflow. It is not a substitute for pharmacist advice, and the report states the prototype limits clearly.
What does the pharmacist see?
A verification queue with the uploaded file, the patient-corrected medicine lines, and approve/reject actions with notes — plus the full audit trail per prescription.
Is this project suitable for a final-year project?
Yes — for Computer Science, IT and Web Development programs. The multi-role workflow, scheduling engine and honest handling of OCR limits make it solid viva material. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Web Development.
Components & software requirements
- Python 3 with Django (portal + verification workflow)
- PostgreSQL (patients, prescriptions, schedules, orders)
- HTML, CSS and JavaScript (patient portal + pharmacist dashboard)
- Celery with Redis (reminder and refill-alert scheduling)
- Tesseract OCR (medicine-line extraction for review)
- WeasyPrint (GST invoice PDFs)
- Docker (one-command deployment)
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.