from fastapi import APIRouter, Depends, File, UploadFile from app.core.response import ApiResponse, ok from app.core.user_context import UserContext, get_user_context from app.schemas.imports import CaseSqlImportApplyResponse, CaseSqlImportPreviewResponse from app.services.case_sql_import_service import CaseSqlImportService router = APIRouter() @router.post("/case-sql/preview", response_model=ApiResponse[CaseSqlImportPreviewResponse]) async def preview_case_sql( file: UploadFile = File(...), _: UserContext = Depends(get_user_context), ): """病例 SQL 预检:上传接口 SQL 文件,解析可导入病例数据但不写入数据库。""" return ok(await CaseSqlImportService().preview(file)) @router.post("/case-sql/apply", response_model=ApiResponse[CaseSqlImportApplyResponse]) async def apply_case_sql( file: UploadFile = File(...), _: UserContext = Depends(get_user_context), ): """病例 SQL 导入:确认后把 SQL 中的病例表数据映射写入当前本地数据库。""" return ok(await CaseSqlImportService().apply(file))