Source code for models.mat_model

"""Pydantic models for the Medical Assessment Tool (MAT).

This module defines the data structures for requesting and representing
materials or tools generated by the MAT service. These models ensure
validated and structured data for the MAT API endpoints.
"""
from __future__ import annotations

from typing import Literal

from pydantic import BaseModel, Field


[docs] class MATModelRequest(BaseModel): """Defines the request model for generating a Medical Assessment Tool (MAT). Attributes: descrizione_scenario: A detailed description of the clinical scenario. tipologia_paziente: The type of patient (Adult, Pediatric, etc.). target: The target audience for the assessment tool. esame_obiettivo: Detailed physical examination findings for context. """ descrizione_scenario: str = Field( description="A detailed description of the clinical scenario, including patient status and pathology." ) tipologia_paziente: Literal["Adulto", "Pediatrico", "Neonatale", "Prematuro"] = Field( description="Type of patient (Adult, Pediatric, Neonatal, Premature)." ) target: str = Field( description="Target of scenario, e.g studenti di medicina, infermieri, medici specialisti." ) esame_obiettivo: str = Field( description="Detailed objective examination findings or exam type. Can include complete physical exam results to provide context for material selection (e.g., pupil assessment, neurological findings, vital signs, etc.)." )
[docs] class MATModelResponse(BaseModel): """Defines the response model for a generated Medical Assessment Tool (MAT). Attributes: nome: The name of the generated material or tool. descrizione: A description of the material or tool. """ nome: str = Field( description="Name of material." ) descrizione: str = Field( description="Description of the material." )
[docs] class MatModelListResponse(BaseModel): """Defines the response model for a list of generated Medical Assessment Tools (MAT). Attributes: materials: A list of generated materials or tools. """ materials: list[MATModelResponse] = Field( description="List of generated materials or tools." )