Files
ctms/backend/app/schemas/visit.py
T
Cheng Zhou 917ab7ccf1 feat: refine subject visits and project workflows
Add early termination visit workflow with ordering, non-applicable visit handling, visit window display, and medication adherence support.

Extend monitoring visit issue template fields, site scoping, setup draft project info handling, login security UI, attachment behavior, and related tests/migrations.
2026-05-09 17:10:34 +08:00

55 lines
1.2 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
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)