|
|
from pydantic import BaseModel, Field |
|
|
|
|
|
class ProviderNotesRequest(BaseModel): |
|
|
provider_notes: str = Field( |
|
|
..., |
|
|
min_length=10, |
|
|
description="Clinical provider notes for analysis", |
|
|
examples=["Patient presents with acute bronchitis. Cough for 5 days..."] |
|
|
) |
|
|
|
|
|
class Config: |
|
|
json_schema_extra = { |
|
|
"example": { |
|
|
"provider_notes": "Patient presents with acute bronchitis. Cough for 5 days, productive with yellow sputum. Lung exam reveals diffuse wheezing. Prescribed azithromycin 500mg." |
|
|
} |
|
|
} |
|
|
|
|
|
class ProviderNote(BaseModel): |
|
|
note: str |
|
|
|
|
|
class CodingResponse(BaseModel): |
|
|
cpt_codes: list |
|
|
cpt_explanation: str |
|
|
icd_codes: list |
|
|
icd_explanation: str |
|
|
|
|
|
|
|
|
|
|
|
class FileUploadResponse(BaseModel): |
|
|
"""Response model for file upload endpoint""" |
|
|
success: bool = Field(description="Whether file processing was successful") |
|
|
filename: str = Field(description="Name of uploaded file") |
|
|
extracted_text_length: int = Field(description="Length of extracted text") |
|
|
cpt_codes: list = Field(description="List of CPT codes") |
|
|
cpt_explanation: str = Field(description="Explanation of CPT codes") |
|
|
icd_codes: list = Field(description="List of ICD codes") |
|
|
icd_explanation: str = Field(description="Explanation of ICD codes") |
|
|
|
|
|
class Config: |
|
|
json_schema_extra = { |
|
|
"example": { |
|
|
"success": True, |
|
|
"filename": "provider_notes.txt", |
|
|
"extracted_text_length": 450, |
|
|
"cpt_codes": ["99213", "93000"], |
|
|
"cpt_explanation": "Office visit and EKG", |
|
|
"icd_codes": ["I20.0", "R07.9"], |
|
|
"icd_explanation": "Unstable angina and chest pain" |
|
|
} |
|
|
} |