Files
ctms/backend/app/schemas/visit.py
T

57 lines
1.3 KiB
Python

import uuid
from datetime import date, datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict
class VisitCreate(BaseModel):
subject_id: uuid.UUID
visit_code: str
planned_date: Optional[date] = None
window_start: Optional[date] = None
window_end: Optional[date] = None
actual_date: Optional[date] = None
notes: Optional[str] = None
class VisitUpdate(BaseModel):
actual_date: Optional[date] = None
status: Optional[str] = None
notes: Optional[str] = None
class EarlyTerminationCreate(BaseModel):
termination_date: date
reason: str
notes: Optional[str] = None
class VisitRead(BaseModel):
id: uuid.UUID
study_id: uuid.UUID
subject_id: uuid.UUID
visit_code: str
planned_date: Optional[date]
actual_date: Optional[date]
status: str
window_start: Optional[date]
window_end: Optional[date]
notes: Optional[str]
created_at: datetime
updated_at: datetime
model_config = ConfigDict(from_attributes=True)
class VisitLostItem(BaseModel):
visit_id: uuid.UUID
subject_id: uuid.UUID
subject_no: str
site_id: uuid.UUID | None
visit_code: str
status: str
updated_at: datetime
model_config = ConfigDict(from_attributes=True)