medilang-tech / app /routers /cameroon_data.py
Dama03's picture
first push of the AI
411a994
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
from typing import Any, Dict, List
from app.services.cameroon_data import get_cameroon_data
router = APIRouter()
class SimilarCasesRequest(BaseModel):
query_text: str
top_k: int = 10
@router.get("/stats/overview")
def stats_overview() -> Dict[str, Any]:
data = get_cameroon_data()
return data.stats_overview()
@router.get("/stats/diseases/{disease_name}")
def stats_disease(disease_name: str) -> Dict[str, Any]:
data = get_cameroon_data()
return data.stats_disease(disease_name)
@router.post("/search/similar-cases")
def search_similar_cases(req: SimilarCasesRequest) -> Dict[str, Any]:
data = get_cameroon_data()
results = data.search_similar_cases(req.query_text, top_k=req.top_k)
return {
"similar_cases": [
{
"summary_id": r.summary_id,
"diagnosis": r.diagnosis,
"age": r.age,
"gender": r.gender,
"summary_snippet": r.summary_snippet,
"similarity_score": r.similarity_score,
}
for r in results
]
}
@router.get("/patterns/seasonal")
def patterns_seasonal() -> Dict[str, Any]:
data = get_cameroon_data()
return data.seasonal_patterns()
@router.get("/patterns/age-gender")
def patterns_age_gender() -> Dict[str, Any]:
data = get_cameroon_data()
return data.age_gender_distribution()