Lab_analyzer / models.py
Tantawi's picture
Upload 9 files
b96d38b verified
from pydantic import BaseModel, Field
from typing import List, Optional, Any
class AnalysisRequest(BaseModel):
"""Request model for base64 image analysis"""
image: str = Field(..., description="Base64 encoded image string")
class AnalysisResponse(BaseModel):
"""Response model for lab report analysis"""
success: bool = Field(..., description="Whether the analysis was successful")
filename: Optional[str] = Field(None, description="Original filename if uploaded via file")
analysis: dict = Field(..., description="Analysis results")
class ParsedAnalysis(BaseModel):
"""Structured analysis result"""
error: bool = Field(False, description="Whether an error occurred")
summary: str = Field("", description="Summary of the lab report")
key_findings: List[str] = Field(default_factory=list, description="Key findings from the report")
interpretation: str = Field("", description="Medical interpretation")
note: str = Field("", description="Disclaimer note")
raw_response: str = Field("", description="Raw response from the AI model")
message: Optional[str] = Field(None, description="Error message if any")
class HealthResponse(BaseModel):
"""Health check response"""
status: str = Field(..., description="Service status")
service: str = Field(..., description="Service name")