"""项目概览API路由""" import uuid from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from app.core.deps import get_db_session, require_study_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_study_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)