# Ethiopian Medical Data Analysis Project
This project collects, processes, and analyzes medical data from Ethiopian Telegram channels, performs object detection on medical images, and exposes the data through a REST API.
## Features
1. **Data Collection**
- Scrapes medical data from Ethiopian Telegram channels
- Stores raw data in JSON format
2. **Data Cleaning**
- Processes raw JSON data
- Extracts relevant information
- Performs language detection (Amharic/English)
- Calculates message statistics
3. **Object Detection**
- Uses YOLOv5 for object detection in medical images
- Processes images from Telegram messages
- Stores detection results in database
4. **REST API**
- Exposes processed data through FastAPI
- Provides endpoints for messages and detections
- Includes statistical analysis endpoints
## Setup
1. **Environment Setup**
# Clone the repository
git clone [repository-url]
cd ethiopian_medical_data
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
2. **Database Configuration**
# Create .env file with database credentials
DB_USER=your_username
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432
DB_NAME=medical_data
3. **YOLOv5 Setup**
# Install YOLOv5 dependencies
git clone
github.com
cd yolov5
pip install -r requirements.txt
cd ..
## Usage
1. **Data Processing Pipeline**
# Run the data cleaning pipeline
python src/cleaning/cleaner.py
# Run object detection
python src/object_detection/main.py
2. **API Server**
# Start the FastAPI server
python src/run_api.py
## API Endpoints
- `GET /`: Welcome message
- `GET /messages/`: List all messages
- Query parameters:
- `skip`: Number of records to skip
- `limit`: Number of records to return
- `channel`: Filter by channel name
- `language`: Filter by language
- `GET /messages/{message_id}`: Get specific message
- `GET /detections/`: …