Spaces:
Sleeping
title: Medical Phase Simulator Backend
emoji: 🏥
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false
MedTech Image Processing Backend
FastAPI-based backend service for processing medical images with arterial and venous phase filters.
Features
- Arterial Phase Processing: CLAHE-based contrast enhancement for improved visibility
- Venous Phase Processing: Gaussian smoothing/blur for noise reduction
- RESTful API: Simple POST endpoint for image processing
- CORS Enabled: Works with frontend hosted on GitHub Pages
- Docker Ready: Containerized for easy deployment on Hugging Face Spaces
API Endpoints
POST /process
Process a medical image with specified phase filter.
Parameters:
image(file): Medical image file (JPG/PNG)phase(form): Processing phase -"arterial"or"venous"
Response:
- Processed image as PNG
Example using curl:
curl -X POST "http://localhost:7860/process" \
-F "image=@sample.jpg" \
-F "phase=arterial" \
--output processed.png
GET /
Health check and API information.
GET /health
Detailed health check with library versions.
Local Development
Prerequisites
- Python 3.10+
- pip
Setup
- Install dependencies:
pip install -r requirements.txt
- Run the server:
python app.py
The API will be available at http://localhost:7860
Using uvicorn directly:
uvicorn app:app --reload --port 7860
Docker Deployment
Build locally:
docker build -t medtech-backend .
docker run -p 7860:7860 medtech-backend
Hugging Face Spaces Deployment
- Create a new Space at huggingface.co/spaces
- Select Docker as the SDK
- Clone the Space repository:
git clone https://huggingface.co/spaces/YOUR-USERNAME/YOUR-SPACE-NAME
- Copy backend files:
cp app.py Dockerfile requirements.txt YOUR-SPACE-NAME/
cd YOUR-SPACE-NAME
- Commit and push:
git add .
git commit -m "Initial commit"
git push
- Your Space will automatically build and deploy at:
https://YOUR-USERNAME-YOUR-SPACE-NAME.hf.space
Image Processing Details
Arterial Phase (Contrast Enhancement)
- Uses CLAHE (Contrast Limited Adaptive Histogram Equalization)
- Operates in LAB color space for better results
- Parameters:
clipLimit=3.0,tileGridSize=(8,8)
Venous Phase (Gaussian Smoothing)
- Applies Gaussian blur with 15x15 kernel
- Reduces noise and smooths fine details
- Simulates venous phase imaging characteristics
Tech Stack
- FastAPI: Modern Python web framework
- OpenCV: Image processing library
- NumPy: Numerical computing
- Pillow: Image I/O
- Uvicorn: ASGI server
Error Handling
The API includes comprehensive error handling:
- Invalid file types → 400 Bad Request
- Invalid phase parameter → 400 Bad Request
- Processing errors → 500 Internal Server Error
CORS Configuration
CORS is configured to accept requests from:
- GitHub Pages (
*.github.io) - Localhost (development)
- All origins (can be restricted for production)
Testing
Test the API with sample medical images:
import requests
url = "http://localhost:7860/process"
files = {"image": open("sample.jpg", "rb")}
data = {"phase": "arterial"}
response = requests.post(url, files=files, data=data)
with open("output.png", "wb") as f:
f.write(response.content)
License
This is a demonstration project for educational purposes only. Not intended for clinical use.
Disclaimer
⚠️ Important: This application is for educational and demonstration purposes only. It should NOT be used for actual medical diagnosis or clinical decision-making. Always consult qualified healthcare professionals for medical imaging interpretation.