# 开发过程记录 本文档只记录开发过程和阶段性变更。其他设计文档只描述当前确定状态。 ## 第一版 Demo 已完成 已完成核心问诊训练闭环: ```text 病例列表 -> 病例详情 -> 创建训练会话 -> 多轮问诊 -> 检查申请 -> 完成问诊 -> 提交诊断 -> 提交治疗 -> AI 评价 -> PDF 导出 -> 历史记录 ``` ## 数据库结构调整记录 当前数据库以源库病例结构为基础: - `case_base`:病例主表。 - `traditional_case`:练习模式病例扩展。 - `teaching_case`:教学互动模式病例扩展。 - `scoring_rule`:病例评分规则。 业务运行新增表: - `case_exam_item` - `training_session` - `training_order` - `training_submission` 长期评价记录使用: - `training_record` 旧表已删除: ```text cases case_exam_items training_sessions session_orders session_submissions session_runtime_messages evaluation_records evaluation_report_exports rubric_templates ``` 旧 ORM 模型文件已删除: ```text backend/app/models/case.py backend/app/models/evaluation.py ``` ## 当前验证结果 已通过: - 后端编译:`python -m compileall app scripts tests` - 核心逻辑测试:`tests/test_core_logic.py` - API 合约测试:`tests/test_api_contract.py` - Demo 闭环测试:`tests/test_demo_flow.py` - MySQL 新表链路测试 - 删除旧表后的 MySQL 闭环复测 - 前端构建:`npm.cmd run build` 最终数据库检查: ```text old_remaining = [] case_base = 1 traditional_case = 1 teaching_case = 1 scoring_rule = 5 case_exam_item = 5 training_session = 6+ training_order = 6+ training_submission = 6+ training_record = 7+ ``` `training_*` 和 `training_record` 数量会随测试运行增加。 ## 病例 SQL 上传导入功能 本轮新增前端和后端联调入口,用于接收接口解析后的病例 SQL 文件: - 后端新增 `POST /api/v1/imports/case-sql/preview`,只解析校验,不写数据库。 - 后端新增 `POST /api/v1/imports/case-sql/apply`,确认后写入 `case_base`、`traditional_case`、`teaching_case`、`scoring_rule`。 - 导入器继续沿用安全解析逻辑,不执行源 SQL 中的 DDL/DML。 - 前端新增 `#/import` 页面,支持选择 SQL、预检、确认导入和刷新病例库。 - 导入成功后,新增病例会出现在病例列表中,并可继续创建训练会话。