Files
ctms/backend/app/schemas/ae.py
T
2025-12-30 14:07:57 +08:00

60 lines
1.6 KiB
Python

import uuid
from datetime import date, datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict
class AECreate(BaseModel):
site_id: Optional[uuid.UUID] = None
subject_id: Optional[uuid.UUID] = None
visit_id: Optional[uuid.UUID] = None
term: str
onset_date: Optional[date] = None
seriousness: str
severity: str
causality: Optional[str] = None
description: Optional[str] = None
outcome: Optional[str] = None
class AEUpdate(BaseModel):
subject_id: Optional[uuid.UUID] = None
term: Optional[str] = None
onset_date: Optional[date] = None
resolution_date: Optional[date] = None
seriousness: Optional[str] = None
severity: Optional[str] = None
causality: Optional[str] = None
action_taken: Optional[str] = None
outcome: Optional[str] = None
reported_to_sponsor: Optional[bool] = None
status: Optional[str] = None
description: Optional[str] = None
class AERead(BaseModel):
id: uuid.UUID
study_id: uuid.UUID
site_id: Optional[uuid.UUID]
subject_id: Optional[uuid.UUID]
visit_id: Optional[uuid.UUID]
term: str
onset_date: Optional[date]
resolution_date: Optional[date]
seriousness: str
severity: str
causality: Optional[str]
action_taken: Optional[str]
outcome: Optional[str]
reported_to_sponsor: bool
report_due_date: Optional[date]
status: str
description: Optional[str]
created_by: uuid.UUID
created_at: datetime
updated_at: datetime
is_overdue: bool | None = None
model_config = ConfigDict(from_attributes=True)