# Mediroute: An open-source AI platform exposing global drug price disparities

> Source: <https://github.com/54jo3vmp/mediroute>
> Published: 2026-11-02 14:44:15+00:00

**Compare global drug prices · Check import legality · AI Medicine Agent**

*Making life-saving medication accessible and affordable for everyone, everywhere.*

MediRoute is an open-source **HealthTech + RegTech + AI Agent platform** that helps patients:

- 💊 **Compare real drug prices** across 5 core markets (US, Canada, India, Singapore, UK)
- ⚖️ **Check import legality** — green/yellow/red compliance light for every country pair, with legal source citations
- 🤖 **Get AI guidance** — AI Medicine Agent recommends drugs and sourcing options based on your country, condition, and budget
- 🔍 **Monitor shortages** — Drug Shortage Radar with therapeutic alternative suggestions
- ✅ **Verify suppliers** — GMP/GDP/FDA/EMA certification tracking with Trust Score

**This is not a pharmacy or a marketplace.** MediRoute is a medicine intelligence platform — think of it as Bloomberg for global drug pricing, with a regulatory compliance layer built in.

A cancer patient in the United States pays **$9,800/month** for Imatinib.
The exact same drug, same molecule, manufactured to WHO-GMP standards, costs **$208/month** from India.

Most patients don't know this. Those who do, don't know if it's legal to import it. Those who find out it might be legal, don't know which suppliers are trustworthy.

MediRoute solves all three problems.

```
cp .env.example .env        # fill in ANTHROPIC_API_KEY at minimum
docker compose up --build
# Frontend: http://localhost:5173
# Backend:  http://localhost:8000/docs
```

This spins up Postgres, Redis, the backend (hot-reload), and the frontend
(Vite dev server) together. See [`docs/ENVIRONMENT.md`](https://github.com/54jo3vmp/mediroute/blob/main/docs/ENVIRONMENT.md)
for what every variable does.

For a production-like stack (built assets, nginx reverse proxy, no hot-reload — useful for testing self-hosted deployments outside Render):

```
cp .env.example .env        # set real SECRET_KEY / POSTGRES_PASSWORD / etc.
docker compose -f docker-compose.prod.yml up --build -d
# Everything served through nginx: http://localhost/
cd frontend
npm install
npm run dev
# Visit http://localhost:5173
# Backend
cd backend
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env        # Fill in your ANTHROPIC_API_KEY
uvicorn app_v3.entrypoint.app:app --reload
# API docs at http://localhost:8000/docs

# Frontend (separate terminal)
cd frontend
cp .env.example .env
npm install && npm run dev
MediRoute uses Domain-Driven Design (DDD) with a Modular Monolith pattern,
ready to split into microservices when scale demands it.

├── modules/
│   ├── identity/           # Auth, JWT, RBAC (5 roles)
│   ├── drug_intelligence/  # 100-drug catalog, interactions, shortages
│   ├── compliance/         # 20 bilateral import rules (5×4 country pairs)
│   ├── market_intelligence/# Price comparison, supplier trust scores
│   ├── order_workflow/     # Order FSM + Escrow logic
│   └── ai_agent/           # Claude-powered consultation + OCR
└── shared/
    ├── security/           # JWT, RBAC, immutable Audit Log
    └── infrastructure/     # Event bus, cache (Redis-ready), Unit of Work
```

Full architecture blueprint: `docs/10_production_architecture_blueprint.md`

```
mediroute/
├── backend/
│   ├── app_v3/              # ← the live backend (DDD modular monolith)
│   ├── alembic/              # DB migrations
│   ├── Dockerfile
│   └── .env.example
├── frontend/
│   ├── Dockerfile             # production build served via nginx
│   ├── nginx.conf             # nginx config baked into the frontend image
│   └── .env.example
├── docker/
│   └── nginx/nginx.conf       # reverse proxy for self-hosted docker-compose.prod.yml
├── docs/                      # architecture, API design, environment reference
├── docker-compose.yml          # local dev stack (hot reload)
├── docker-compose.prod.yml     # self-hosted production stack (nginx + built assets)
├── render.yaml                 # Render Blueprint (used for the hosted deployment)
└── .env.example
```

| Dimension | Current | Roadmap | 
|---|---|---|
| Countries | 5 (US, CA, IN, SG, GB) | 100 countries | 
| Drug catalog | 8 flagship drugs | 100,000 drugs | 
| Compliance rules | 20 bilateral lanes | 2,000+ lanes | 
| Languages | English, 中文, 日本語 | 20+ languages | 
| Cache | In-memory (free) | Redis (paid) | 
| Search | PostgreSQL full-text | Qdrant vector search | 

We especially need help with:

1. **Drug data** — accurate pricing, ATC codes, brand names for more drugs
2. **Compliance research** — import rules for more country pairs (legal citations required)
3. **Translations** — the UI needs more languages
4. **Country expansion** — adding markets beyond the current 5

See [`CONTRIBUTING.md`](https://github.com/54jo3vmp/mediroute/blob/main/CONTRIBUTING.md) for full guidelines.

**Medical/regulatory contributions require cited sources.** Unsourced compliance rules are rejected — incorrect import rules could harm patients.

**Medical:** This platform provides information only. It does not constitute medical advice. Always consult a licensed physician before making medication decisions.

**Regulatory:** Import regulations change. Always verify current rules with official authorities and a licensed customs broker before importing medication.

**Pricing:** Prices are indicative. Always confirm current pricing directly with suppliers before ordering.

| Layer | Technology | 
|---|---|
| Frontend | React 19, Vite, Tabler Icons | 
| Backend | Python 3.12, FastAPI, SQLAlchemy 2.0 | 
| Database | PostgreSQL 16 (multi-schema DDD) | 
| AI | Anthropic Claude (Sonnet), Tool-Calling Architecture | 
| Auth | JWT HS256 → RS256 ready, RBAC + Audit Log | 
| Cache | In-memory (Redis-ready interface) | 
| Deployment | Render (free tier) → Kubernetes ready, Docker Compose for local/self-hosted | 

Full environment variable reference: [`docs/ENVIRONMENT.md`](https://github.com/54jo3vmp/mediroute/blob/main/docs/ENVIRONMENT.md)
CI/CD pipeline (GitHub Actions → Render) and how to set it up: [`docs/CI_CD.md`](https://github.com/54jo3vmp/mediroute/blob/main/docs/CI_CD.md)
Security features (JWT refresh, rate limiting, secrets) — Sprint 3 summary: [`docs/SPRINT3_SECURITY.md`](https://github.com/54jo3vmp/mediroute/blob/main/docs/SPRINT3_SECURITY.md)
Monitoring (logging, Prometheus/Grafana, Sentry, uptime alerts) — Sprint 4 summary: [`docs/MONITORING.md`](https://github.com/54jo3vmp/mediroute/blob/main/docs/MONITORING.md)
Testing (unit/integration/E2E, coverage, and two real bugs the tests caught) — Sprint 5 summary: [`docs/SPRINT5_TESTING.md`](https://github.com/54jo3vmp/mediroute/blob/main/docs/SPRINT5_TESTING.md)
Internationalization (12 locales, date/currency/unit formatting, hreflang) — Sprint 6 summary: [`docs/SPRINT6_I18N.md`](https://github.com/54jo3vmp/mediroute/blob/main/docs/SPRINT6_I18N.md)
API reference (every endpoint, curl examples, error codes) — Sprint 7: [`docs/API.md`](https://github.com/54jo3vmp/mediroute/blob/main/docs/API.md) · Interactive docs at `/docs` · SDKs: [Python](https://github.com/54jo3vmp/mediroute/blob/main/sdk/python/README.md), [JavaScript](https://github.com/54jo3vmp/mediroute/blob/main/sdk/js/README.md) · [`docs/SPRINT7_API_DOCS.md`](https://github.com/54jo3vmp/mediroute/blob/main/docs/SPRINT7_API_DOCS.md)
Production review (a real data-loss bug found & fixed, security hardening, honest known-gaps list) — Sprint 8: [`docs/SPRINT8_PRODUCTION_REVIEW.md`](https://github.com/54jo3vmp/mediroute/blob/main/docs/SPRINT8_PRODUCTION_REVIEW.md)
Internationalization (12 locales, currency/date formatting, hreflang) — Sprint 6 summary: `docs/SPRINT6_I18N.md`

MIT License — see [`LICENSE`](https://github.com/54jo3vmp/mediroute/blob/main/LICENSE) for details.

This project is open source and welcomes contributions. The mission is bigger than any single company: making life-saving medicine accessible to everyone, everywhere.

**Built with ❤️ for patients who deserve better**
