update dtq conditions

This commit is contained in:
ipu 2025-08-05 00:00:58 +03:00
parent 80916f6c3e
commit 0a41d9ba82
11 changed files with 915 additions and 303 deletions

View file

@ -1,128 +1,2 @@
from pydantic import BaseModel, Field
from typing import Optional, List, Dict, Any
from datetime import date
class InsuranceChatRequest(BaseModel):
message: str = Field(..., description="User message")
session_id: Optional[str] = Field(None, description="Chat session ID")
class Source(BaseModel):
plan_name: str
chunk_number: int
content_chunk: str
class HistoryItem(BaseModel):
role: str
message: str
class InsuranceChatResponse(BaseModel):
session_id: str
answer: str
sources: List[Source] = []
history: List[HistoryItem] = []
# New estimation models matching the specified format
class Applicant(BaseModel):
applicant: int
firstName: str
lastName: str
midName: Optional[str] = Field("", description="Middle name")
phone: Optional[str] = Field("", description="Phone number")
gender: str
dob: date
nicotine: bool
weight: float
heightFt: int
heightIn: int
class Plan(BaseModel):
id: int
coverage: int
tier: Optional[str] = Field(None, description="Tier assignment")
class Medication(BaseModel):
applicant: int
name: str
rxcui: str
dosage: str
frequency: str
description: str
class IssueDetail(BaseModel):
key: str
description: str
class Issue(BaseModel):
key: str
details: List[IssueDetail]
class Condition(BaseModel):
key: str
description: str
class PHQ(BaseModel):
treatment: bool
invalid: bool
pregnancy: bool
effectiveDate: date
disclaimer: bool
signature: str
medications: List[Medication]
issues: List[Issue]
conditions: List[Condition]
class Address(BaseModel):
address1: Optional[str] = Field("", description="Address line 1")
address2: Optional[str] = Field("", description="Address line 2")
city: Optional[str] = Field("", description="City")
state: Optional[str] = Field("", description="State")
zipcode: Optional[str] = Field("", description="Zip code")
class EstimationRequest(BaseModel):
uid: Optional[str] = Field(None, description="Unique identifier")
applicants: List[Applicant]
plans: List[Plan]
phq: PHQ
income: float
address: Address
class EstimationDetails(BaseModel):
dtq: bool
reason: str
tier: int
total_price: float
class EstimationResult(BaseModel):
name: str
applicant_type: str
age: int
bmi: float
tier: int
rx_spend: float
message: str
class EstimationResponse(BaseModel):
status: str
details: EstimationDetails
results: List[EstimationResult]
class SessionCreateResponse(BaseModel):
session_id: str
class SessionResponse(BaseModel):
id: str
organization_id: Optional[str] = None
agent_id: Optional[str] = None
created_at: Optional[str] = None
class SessionsListResponse(BaseModel):
sessions: List[SessionResponse]
class AgentsListResponse(BaseModel):
agents: List[Dict[str, Any]]
class HealthResponse(BaseModel):
status: str
service: str
version: str
dependencies: Dict[str, str]
# Import all models from the centralized models file
from src.models import *