Spaces:
Sleeping
Sleeping
File size: 1,481 Bytes
411a994 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
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()
|