37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
from pydantic import BaseModel, Field
|
|
|
|
|
|
class CaseSqlPreviewCase(BaseModel):
|
|
"""病例 SQL 预览病例:展示导入文件中识别到的病例摘要。"""
|
|
|
|
id: int
|
|
title: str
|
|
case_type: str
|
|
difficulty: str
|
|
|
|
|
|
class CaseSqlImportPreviewResponse(BaseModel):
|
|
"""病例 SQL 预检响应:只展示解析结果,不写入数据库。"""
|
|
|
|
file_name: str
|
|
encoding: str | None = None
|
|
tables: dict[str, int] = Field(default_factory=dict)
|
|
can_import: bool = False
|
|
warnings: list[str] = Field(default_factory=list)
|
|
errors: list[str] = Field(default_factory=list)
|
|
preview_cases: list[CaseSqlPreviewCase] = Field(default_factory=list)
|
|
|
|
|
|
class CaseSqlImportApplyResponse(BaseModel):
|
|
"""病例 SQL 导入响应:展示实际写库结果。"""
|
|
|
|
imported: bool
|
|
file_name: str
|
|
encoding: str
|
|
inserted_or_updated_cases: int
|
|
imported_traditional_cases: int
|
|
imported_teaching_cases: int
|
|
imported_scoring_rules: int
|
|
generated_exam_items: int
|
|
warnings: list[str] = Field(default_factory=list)
|