Files
ctms/backend/app/api/v1/overview.py
T
2026-05-28 10:56:28 +08:00

36 lines
957 B
Python

"""项目概览API路由"""
import uuid
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.deps import get_db_session, require_api_permission
from app.crud import overview as overview_crud
from app.schemas.overview import ProjectOverviewResponse
router = APIRouter()
@router.get(
"/overview",
response_model=ProjectOverviewResponse,
dependencies=[Depends(require_api_permission("project_overview:read"))],
)
async def get_project_overview(
study_id: uuid.UUID,
db: AsyncSession = Depends(get_db_session),
) -> ProjectOverviewResponse:
"""
获取项目概览数据
返回项目各中心的进度情况,包括:
- 机构立项状态
- 伦理记录状态
- 合同签署状态
- 启动会状态
- 入组进度
- 月度入组统计
"""
data = await overview_crud.get_project_overview(db, study_id)
return ProjectOverviewResponse(**data)