# Phase 2.8 - Technical Specifications (Updated with User Decisions)

**Status:** Requirements Confirmed - Ready to Implement  
**Updated:** 2026-03-07  
**Version:** 2.0

---

## ✅ Requirements Confirmed

All **9 critical questions** have been answered. Implementation can proceed.

---

## Confirmed Decisions

### 1. Drug Interaction Checker ⚠️ CRITICAL

#### Requirements
✅ **Database Source**: OpenFDA API (FREE)  
✅ **European Alternative**: Research EMA (European Medicines Agency) API  
✅ **Initial Data**: User will provide CSV/JSON of drug interactions  
✅ **Ingredient Mapping**: Automatic lookup from medication name  
✅ **Blocking Behavior**: WARN ONLY (do not block)  
✅ **Rationale**: "Many cases where reasons are plenty to allow for dangerous interactions"  
✅ **Disclaimer**: "Advisory only, consult with a physician for detailed information"

#### API Integration Points
- OpenFDA Drug Interaction API: https://api.fda.gov/drug/event.json
- EMA API: https://www.ema.europa.eu/en/medicines/human/EPAR (to research)

---

### 2. Automated Reminder System ⭐ HIGH

#### Requirements
✅ **Push Provider**: Firebase Cloud Messaging (FCM)  
✅ **Email Service**: Mailgun  
✅ **Testing**: Easy testing required  
✅ **Privacy**: Proton Mail for confidential emails (future)  
✅ **SMS Provider**: Skip SMS for now (cost concerns)  
✅ **Budget**: Minimal (proof-of-concept)

#### Implementation Notes
- Use Mailgun's free tier (1000 emails/month free)
- Firebase FCM (free tier available)
- No SMS support in Phase 2.8
- Focus on Push + Email notifications only

---

## 📋 Implementation Plan (Updated)

### Week 1: Core Safety Features (5-7 days)

#### Drug Interaction Checker
- [ ] Set up OpenFDA API integration
- [ ] Research EMA API for European drug data
- [ ] Create database schemas (3 collections)
- [ ] Build repository layer (5 methods)
- [ ] Implement API handlers (3 endpoints)
- [ ] Seed database with provided CSV/JSON
- [ ] Build automatic ingredient lookup
- [ ] Add warning system (non-blocking)
- [ ] Include physician consultation disclaimer
- [ ] Write comprehensive tests

**Estimated Duration**: 5-7 days

---

### Week 2-3: Reminder System (4-5 days)

#### Automated Reminders
- [ ] Set up Firebase Cloud Messaging
- [ ] Set up Mailgun email service
- [ ] Create reminder schemas (3 collections)
- [ ] Build reminder repository
- [ ] Implement background scheduler (60s interval)
- [ ] Create notification service (Push + Email)
- [ ] Build API handlers (6 endpoints)
- [ ] Implement snooze/dismiss functionality
- [ ] Add timezone handling
- [ ] Implement quiet hours
- [ ] Write comprehensive tests

**Estimated Duration**: 4-5 days

---

### Week 4: Remaining Features (5-7 days)

#### Advanced Health Analytics (2-3 days)
- Default parameters for:
  - Prediction horizon: 7 days
  - Anomaly threshold: Z-score 2.5
  - Minimum data points: 3
  - Cache duration: 24 hours
  - Prediction confidence: r² > 0.7

#### Healthcare Data Export (2 days)
- Server-side PDF generation
- Simple table-based reports
- CSV export for health stats
- Auto-delete after download

#### User Preferences (1 day)
- Metric/imperial units
- Notification preferences
- Timezone settings

#### Caregiver Access (2 days)
- View/Edit/Full permission levels
- Basic invitation system
- Activity logging

**Estimated Duration**: 5-7 days

---

## 🔧 Technical Stack Updates

### External APIs & Services

#### Drug Interaction Data
```toml
[dependencies]
# FDA API integration
reqwest = { version = "0.11", features = ["json"] }
serde_json = "1.0"

# For EMA (European Medicines Agency)
# Research: https://www.ema.europa.eu/en/medicines/human/EPAR
```

#### Firebase Cloud Messaging
```toml
[dependencies]
fcm = "0.9"
```

Environment variables:
```bash
FIREBASE_PROJECT_ID=your-project-id
FIREBASE_SERVICE_ACCOUNT_KEY=path/to/key.json
```

#### Mailgun
```toml
[dependencies]
lettre = "0.11"  # Email sending
lettre_email = "0.11"
```

Environment variables:
```bash
MAILGUN_API_KEY=your-api-key
MAILGUN_DOMAIN=your-domain.com
MAILGUN_FROM_EMAIL=noreply@normogen.com
```

### No SMS Support
- SMS skipped for Phase 2.8 (cost concerns)
- Can be added later if budget allows

---

## 📊 Updated Database Collections

### Drug Interactions
```javascript
db.drug_interactions        // Drug-drug, drug-allergy interactions
db.medication_ingredients    // Ingredient mapping
db.user_allergies            // User allergy profiles
```

### Reminders
```javascript
db.reminders                 // Reminder schedules
db.reminder_logs            // Delivery logs
db.reminder_preferences     // User settings
```

### Analytics & Export
```javascript
db.health_analytics_cache   // Cached analytics
db.medications.correlations  // Med-health correlations
db.export_jobs              // Export task tracking
```

---

## 🚀 Implementation Order

1. **Drug Interaction Checker** (Week 1)
   - Safety-critical feature
   - Blocking on other features (should check on med creation)
   - OpenFDA + CSV seeding

2. **Automated Reminder System** (Week 2-3)
   - High user value
   - Firebase + Mailgun setup
   - Background scheduler

3. **Advanced Health Analytics** (Week 4)
   - Uses default parameters
   - Builds on existing health stats

4. **Healthcare Data Export** (Week 4)
   - PDF + CSV generation
   - Provider integration

5. **User Preferences** (Week 4)
   - Simple settings management

6. **Caregiver Access** (Week 4)
   - Basic permissions system

---

## 🎯 Success Metrics

### Drug Interaction Checker
- 90%+ coverage of common medications
- <1s response time for interaction checks
- 100% warning rate for severe interactions

### Reminder System
- >95% delivery rate (Push + Email)
- <1min scheduling precision
- 100% quiet hours compliance

### Overall
- 90%+ test coverage
- All features functional
- Production-ready deployment

---

## 📝 Implementation Checklist

### Prerequisites
- [ ] User provides CSV/JSON of drug interactions
- [ ] Set up Firebase project and get service account key
- [ ] Set up Mailgun account and get API key
- [ ] Research EMA API for European drug data

### Phase 2.8.1: Drug Interactions (Week 1)
- [ ] Create `backend/src/models/interactions.rs`
- [ ] Create `backend/src/repositories/interaction_repository.rs`
- [ ] Create `backend/src/handlers/interactions.rs`
- [ ] Implement OpenFDA API client
- [ ] Build automatic ingredient lookup
- [ ] Add routes to main.rs
- [ ] Seed database with provided data
- [ ] Write tests
- [ ] Deploy and test

### Phase 2.8.2: Reminders (Week 2-3)
- [ ] Create `backend/src/models/reminders.rs`
- [ ] Create `backend/src/repositories/reminder_repository.rs`
- [ ] Create `backend/src/services/reminder_scheduler.rs`
- [ ] Create `backend/src/services/notification_service.rs`
- [ ] Create `backend/src/handlers/reminders.rs`
- [ ] Set up Firebase integration
- [ ] Set up Mailgun integration
- [ ] Add background scheduler to main.rs
- [ ] Add routes to main.rs
- [ ] Write tests
- [ ] Deploy and test

### Phase 2.8.3: Analytics & Export (Week 4)
- [ ] Create `backend/src/models/analytics.rs`
- [ ] Create `backend/src/services/analytics_engine.rs`
- [ ] Create `backend/src/handlers/analytics.rs`
- [ ] Create `backend/src/handlers/export.rs`
- [ ] Add routes to main.rs
- [ ] Write tests
- [ ] Deploy and test

### Phase 2.8.4: Final Features (Week 4)
- [ ] Create `backend/src/handlers/preferences.rs`
- [ ] Create `backend/src/handlers/caregivers.rs`
- [ ] Add routes to main.rs
- [ ] Write tests
- [ ] Deploy and test

---

## 📖 Additional Research Needed

### EMA (European Medicines Agency)
- Explore EMA's drug data APIs
- Check for interaction data availability
- Compare with OpenFDA coverage
- Document any limitations

### Privacy-First Email
- Research Proton Mail API availability
- Check integration complexity
- Consider for Phase 2.9 or 3.0

---

## 🎉 Ready to Implement!

All critical requirements confirmed:
- ✅ Drug database source selected (OpenFDA + EMA research)
- ✅ Initial data source confirmed (user-provided CSV/JSON)
- ✅ Ingredient mapping method (automatic)
- ✅ Interaction behavior (warn, don't block)
- ✅ Liability disclaimer wording
- ✅ Push notification provider (Firebase FCM)
- ✅ Email service selected (Mailgun)
- ✅ SMS decision (skip for now)
- ✅ Budget constraints understood (minimal, proof-of-concept)

**Estimated Timeline**: 3 weeks  
**Start Date**: Awaiting user to provide interaction CSV/JSON and Firebase/Mailgun credentials

---

*Version: 2.0*  
*Status: Requirements Confirmed*  
*Updated: 2026-03-07*
