27 lines
1.1 KiB
Python
27 lines
1.1 KiB
Python
|
|
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))
|