chore: stop tracking frontend node_modules
This commit is contained in:
@@ -47,12 +47,10 @@ class DocumentSummary(BaseModel):
|
||||
id: uuid.UUID
|
||||
trial_id: uuid.UUID
|
||||
site_id: Optional[uuid.UUID] = None
|
||||
doc_no: str
|
||||
doc_type: str
|
||||
title: str
|
||||
scope_type: DocumentScopeType
|
||||
owner_id: Optional[uuid.UUID]
|
||||
status: DocumentStatus
|
||||
current_effective_version_id: Optional[uuid.UUID]
|
||||
current_effective_version: Optional[DocumentVersionSummary] = None
|
||||
created_at: datetime
|
||||
|
||||
@@ -20,7 +20,6 @@ class DocumentVersionSummary(BaseModel):
|
||||
id: uuid.UUID
|
||||
version_no: str
|
||||
status: DocumentVersionStatus
|
||||
effective_at: Optional[datetime] = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
"""Overview Schema定义"""
|
||||
import uuid
|
||||
from datetime import date
|
||||
from typing import List, Optional
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class CenterOverview(BaseModel):
|
||||
"""单个中心的概览数据"""
|
||||
center_id: str
|
||||
center_name: str
|
||||
|
||||
# 各阶段状态
|
||||
institution_initiation_status: str = "NOT_STARTED"
|
||||
ethics_status: str = "NOT_STARTED"
|
||||
contract_sign_status: str = "NOT_STARTED"
|
||||
startup_status: str = "NOT_STARTED"
|
||||
enrollment_status: str = "NOT_STARTED"
|
||||
inspection_status: str = "NOT_STARTED"
|
||||
closeout_status: str = "NOT_STARTED"
|
||||
|
||||
# 各阶段完成日期
|
||||
institution_initiation_completed_at: Optional[str] = None
|
||||
ethics_completed_at: Optional[str] = None
|
||||
contract_sign_completed_at: Optional[str] = None
|
||||
startup_completed_at: Optional[str] = None
|
||||
enrollment_completed_at: Optional[str] = None
|
||||
inspection_completed_at: Optional[str] = None
|
||||
closeout_completed_at: Optional[str] = None
|
||||
|
||||
# 入组数据
|
||||
enrollment_target: int = 0
|
||||
enrollment_actual: int = 0
|
||||
|
||||
|
||||
class EnrollmentByMonth(BaseModel):
|
||||
"""月度入组统计"""
|
||||
month: str
|
||||
count: int
|
||||
|
||||
|
||||
class ProjectOverviewResponse(BaseModel):
|
||||
"""项目概览响应"""
|
||||
study_id: str
|
||||
updated_at: str
|
||||
centers: List[CenterOverview]
|
||||
enrollment_by_month: List[EnrollmentByMonth]
|
||||
@@ -11,6 +11,7 @@ class SiteCreate(BaseModel):
|
||||
pi_name: Optional[str] = None
|
||||
contact: Optional[str] = None
|
||||
is_active: bool = True
|
||||
enrollment_target: Optional[int] = None
|
||||
|
||||
|
||||
class SiteUpdate(BaseModel):
|
||||
@@ -19,6 +20,7 @@ class SiteUpdate(BaseModel):
|
||||
pi_name: Optional[str] = None
|
||||
contact: Optional[str] = None
|
||||
is_active: Optional[bool] = None
|
||||
enrollment_target: Optional[int] = None
|
||||
|
||||
|
||||
class SiteRead(BaseModel):
|
||||
@@ -29,6 +31,7 @@ class SiteRead(BaseModel):
|
||||
pi_name: Optional[str]
|
||||
contact: Optional[str]
|
||||
is_active: bool
|
||||
enrollment_target: Optional[int]
|
||||
created_at: datetime
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
Reference in New Issue
Block a user