立项配置页初步优化
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from datetime import date, datetime
|
||||
from typing import Literal, Optional
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
@@ -9,8 +9,27 @@ StudyStatus = Literal["DRAFT", "ACTIVE", "CLOSED"]
|
||||
|
||||
class StudyCreate(BaseModel):
|
||||
name: str = Field(min_length=1)
|
||||
code: Optional[str] = None
|
||||
code: str = Field(min_length=1)
|
||||
project_full_name: Optional[str] = None
|
||||
sponsor: Optional[str] = None
|
||||
protocol_no: Optional[str] = None
|
||||
lead_unit: Optional[str] = None
|
||||
principal_investigator: Optional[str] = None
|
||||
main_pm: Optional[str] = None
|
||||
research_analysis: Optional[str] = None
|
||||
research_product: Optional[str] = None
|
||||
control_product: Optional[str] = None
|
||||
indication: Optional[str] = None
|
||||
research_population: Optional[str] = None
|
||||
research_design: Optional[str] = None
|
||||
plan_start_date: Optional[date] = None
|
||||
plan_end_date: Optional[date] = None
|
||||
planned_site_count: Optional[int] = None
|
||||
planned_enrollment_count: Optional[int] = None
|
||||
enrollment_monthly_goal_note: Optional[str] = None
|
||||
enrollment_stage_breakdown: Optional[str] = None
|
||||
summary_note: Optional[str] = None
|
||||
objective_note: Optional[str] = None
|
||||
phase: Optional[str] = None
|
||||
status: StudyStatus = "DRAFT"
|
||||
visit_interval_days: Optional[int] = None
|
||||
@@ -22,7 +41,26 @@ class StudyCreate(BaseModel):
|
||||
class StudyUpdate(BaseModel):
|
||||
code: Optional[str] = None
|
||||
name: Optional[str] = None
|
||||
project_full_name: Optional[str] = None
|
||||
sponsor: Optional[str] = None
|
||||
protocol_no: Optional[str] = None
|
||||
lead_unit: Optional[str] = None
|
||||
principal_investigator: Optional[str] = None
|
||||
main_pm: Optional[str] = None
|
||||
research_analysis: Optional[str] = None
|
||||
research_product: Optional[str] = None
|
||||
control_product: Optional[str] = None
|
||||
indication: Optional[str] = None
|
||||
research_population: Optional[str] = None
|
||||
research_design: Optional[str] = None
|
||||
plan_start_date: Optional[date] = None
|
||||
plan_end_date: Optional[date] = None
|
||||
planned_site_count: Optional[int] = None
|
||||
planned_enrollment_count: Optional[int] = None
|
||||
enrollment_monthly_goal_note: Optional[str] = None
|
||||
enrollment_stage_breakdown: Optional[str] = None
|
||||
summary_note: Optional[str] = None
|
||||
objective_note: Optional[str] = None
|
||||
phase: Optional[str] = None
|
||||
status: Optional[StudyStatus] = None
|
||||
is_locked: Optional[bool] = None
|
||||
@@ -36,7 +74,26 @@ class StudyRead(BaseModel):
|
||||
id: uuid.UUID
|
||||
code: str
|
||||
name: str
|
||||
project_full_name: Optional[str]
|
||||
sponsor: Optional[str]
|
||||
protocol_no: Optional[str]
|
||||
lead_unit: Optional[str]
|
||||
principal_investigator: Optional[str]
|
||||
main_pm: Optional[str]
|
||||
research_analysis: Optional[str]
|
||||
research_product: Optional[str]
|
||||
control_product: Optional[str]
|
||||
indication: Optional[str]
|
||||
research_population: Optional[str]
|
||||
research_design: Optional[str]
|
||||
plan_start_date: Optional[date]
|
||||
plan_end_date: Optional[date]
|
||||
planned_site_count: Optional[int]
|
||||
planned_enrollment_count: Optional[int]
|
||||
enrollment_monthly_goal_note: Optional[str]
|
||||
enrollment_stage_breakdown: Optional[str]
|
||||
summary_note: Optional[str]
|
||||
objective_note: Optional[str]
|
||||
phase: Optional[str]
|
||||
status: StudyStatus
|
||||
is_locked: bool
|
||||
|
||||
Reference in New Issue
Block a user