TrialPath / trialpath /models /trial_candidate.py
yakilee's picture
style: apply ruff format to entire codebase
e46883d
raw
history blame contribute delete
908 Bytes
"""TrialCandidate v1 -- Normalized ClinicalTrials MCP search results."""
from __future__ import annotations
from typing import Optional
from pydantic import BaseModel, Field
class TrialLocation(BaseModel):
country: str
city: Optional[str] = None
class AgeRange(BaseModel):
min: Optional[int] = None
max: Optional[int] = None
class EligibilityText(BaseModel):
inclusion: str
exclusion: str
class TrialCandidate(BaseModel):
nct_id: str = Field(description="NCT identifier e.g. 'NCT01234567'")
title: str
conditions: list[str] = Field(default_factory=list)
phase: Optional[str] = None
status: Optional[str] = None
locations: list[TrialLocation] = Field(default_factory=list)
age_range: Optional[AgeRange] = None
fingerprint_text: str = Field(description="Short text for Gemini reranking")
eligibility_text: Optional[EligibilityText] = None