update dtq conditions
This commit is contained in:
parent
80916f6c3e
commit
0a41d9ba82
11 changed files with 915 additions and 303 deletions
|
|
@ -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 *
|
||||
Loading…
Add table
Add a link
Reference in a new issue