Source code for imednet.models.visits

from __future__ import annotations

from datetime import datetime
from typing import Optional

from pydantic import Field, field_validator

from imednet.models.json_base import JsonModel


[docs]class Visit(JsonModel): visit_id: int = Field(0, alias="visitId") study_key: str = Field("", alias="studyKey") interval_id: int = Field(0, alias="intervalId") interval_name: str = Field("", alias="intervalName") subject_id: int = Field(0, alias="subjectId") subject_key: str = Field("", alias="subjectKey") start_date: Optional[datetime] = Field(None, alias="startDate") end_date: Optional[datetime] = Field(None, alias="endDate") due_date: Optional[datetime] = Field(None, alias="dueDate") visit_date: Optional[datetime] = Field(None, alias="visitDate") visit_date_form: str = Field("", alias="visitDateForm") visit_date_question: str = Field("", alias="visitDateQuestion") deleted: bool = Field(False, alias="deleted") date_created: datetime = Field(default_factory=datetime.now, alias="dateCreated") date_modified: datetime = Field(default_factory=datetime.now, alias="dateModified") @field_validator( "start_date", "end_date", "due_date", "visit_date", mode="before", ) def _clean_empty_dates(cls, v): if not v: return None return v pass