Geo-AI Tool for Climate-Resilient & Low-Carbon Medical Supply Routing
MedResilient is a comprehensive web-based dashboard that helps hospitals in Florida identify climate risks to their medical supply chain and automatically recommend low-carbon, flood-resilient routes from manufacturers or distributors to hospitals.
- π Interactive Map: Display hospitals, manufacturers, and distributors with live flood risk overlay
- π¦ Order Dashboard: View and filter medical device orders by device type or provider
- βοΈ Weighted Model Recommender: Re-rank suppliers based on customizable flood risk and carbon emission weights
- πΊοΈ Route Visualization: Show delivery routes with color-coded flood risk indicators
- π€ Data Upload Panel: Upload custom CSV files for hospitals, providers, or orders
- π§Ύ Data API: Manage hospital orders, suppliers, and risk metrics
- π§οΈ Risk Data Integration: Combine Google Earth Engine precipitation data with FEMA flood zone data
- π Route Calculator: Calculate distances, travel times, and mode-based carbon emissions
- βοΈ Weighted Scoring Engine: Rank suppliers using the formula:
Score = Ξ± Γ FloodRisk + Ξ² Γ CarbonEmission
βββββββββββββββββββββββββββββ
β FRONTEND β
β React + Tailwind β
β β’ Map Visualization β
β β’ Dashboard & Analytics β
β β’ Route Optimization UI β
βββββββββββββ¬ββββββββββββββββ
β REST API
βΌ
βββββββββββββββββββββββββββββ
β BACKEND β
β Python + Flask β
β β’ Data Management β
β β’ Risk Scoring Engine β
β β’ Route & Emission Calc β
βββββββββββββ¬ββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β EXTERNAL APIs β
β β’ Google Earth Engine β
β β’ FEMA Flood Zones β
β β’ Google Maps Directions β
βββββββββββββββββββββββββββββ
- Python 3.9+
- Node.js 18+
- Google Earth Engine account
- API keys for FEMA, Google Earth Engine, and Google Maps
- Navigate to backend directory:
cd MedResilient/backend- Create virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Configure environment (already set in
.envfile):
- FEMA_API_KEY
- FEMA_CLIENT_ID
- GEE_PROJECT_ID
- GOOGLE_MAPS_API_KEY
- Authenticate Google Earth Engine (first time only):
earthengine authenticate- Run the backend:
python app.pyBackend will run on http://localhost:5000
- Navigate to frontend directory:
cd MedResilient/frontend- Install dependencies:
npm install- Start development server:
npm run devFrontend will run on http://localhost:3000
hospital_id,name,address,city,state,zip,latitude,longitude
H001,Miami General Hospital,1611 NW 12th Ave,Miami,FL,33136,25.7907,-80.2108provider_id,name,type,address,city,state,zip,latitude,longitude,transport_mode
P001,MedEquip Florida,Distributor,1500 NW 89th Ct,Miami,FL,33172,25.7860,-80.3370,truckorder_id,hospital_id,provider_id,device_name,quantity,order_date,delivery_date
O001,H001,P001,Ventilator,5,2024-01-15,2024-01-20GET /api/hospitals- Get all hospitalsGET /api/hospitals/:id- Get specific hospitalGET /api/providers- Get all providersGET /api/providers/:id- Get specific providerGET /api/orders- Get orders (with optional filters)
POST /api/recommendations- Get ranked supplier recommendationsPOST /api/analyze-provider- Analyze specific provider-hospital pairPOST /api/flood-risk- Get flood risk for coordinatesGET /api/mapdata- Get all map visualization data
POST /api/upload- Upload CSV files (hospitals, providers, orders)
The weighted scoring model ranks suppliers based on:
Score = Ξ± Γ FloodRisk + Ξ² Γ CarbonEmission
Where:
- FloodRisk β [0, 1]: Combined FEMA flood zone + GEE precipitation/elevation data
- CarbonEmission: Distance (km) Γ EmissionFactor (kg COβ/km)
- Ξ± (alpha): Weight for flood risk (default: 0.6)
- Ξ² (beta): Weight for carbon emission (default: 0.4)
- Truck: 0.21
- Van: 0.15
- Air: 1.13
- Rail: 0.03
- Ship: 0.01
Run backend tests:
cd backend
pytest tests/ -v- View Orders: See current medical supply orders in the dashboard
- Select Hospital: Choose a hospital to analyze supplier options
- Adjust Weights: Use sliders to prioritize flood risk vs. carbon emissions
- View Recommendations: See ranked suppliers with risk and emission metrics
- Visualize Routes: Click recommendations to see routes on the map
- Upload Data: Add custom hospital, provider, or order data via CSV upload
Frontend:
- React 18
- TypeScript
- Tailwind CSS
- Zustand (state management)
- Google Maps JavaScript API
- Axios
Backend:
- Flask
- Pandas
- Google Earth Engine Python API
- Google Maps Python Client
- Python-dotenv
MIT License
Contributions welcome! Please feel free to submit a Pull Request.
For questions or support, please open an issue on GitHub.
Built for rapid disaster response and climate-resilient healthcare supply chains.