Files
ctms/backend/app/schemas/subject.py
T
2026-02-04 10:52:34 +08:00

39 lines
951 B
Python

import uuid
from datetime import date, datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict
class SubjectCreate(BaseModel):
site_id: uuid.UUID
subject_no: str
screening_date: Optional[date] = None
consent_date: Optional[date] = None
class SubjectUpdate(BaseModel):
status: Optional[str] = None
consent_date: Optional[date] = None
enrollment_date: Optional[date] = None
completion_date: Optional[date] = None
drop_reason: Optional[str] = None
class SubjectRead(BaseModel):
id: uuid.UUID
study_id: uuid.UUID
site_id: uuid.UUID
subject_no: str
status: str
screening_date: Optional[date]
consent_date: Optional[date]
enrollment_date: Optional[date]
completion_date: Optional[date]
drop_reason: Optional[str]
created_at: datetime
updated_at: datetime
has_ae: Optional[bool] = None
model_config = ConfigDict(from_attributes=True)