Files
fastapi/docs/00_development_log.md
T
2026-06-01 09:25:26 +08:00

2.3 KiB

开发过程记录

本文档只记录开发过程和阶段性变更。其他设计文档只描述当前确定状态。

第一版 Demo 已完成

已完成核心问诊训练闭环:

病例列表 -> 病例详情 -> 创建训练会话 -> 多轮问诊 -> 检查申请
-> 完成问诊 -> 提交诊断 -> 提交治疗 -> AI 评价 -> PDF 导出 -> 历史记录

数据库结构调整记录

当前数据库以源库病例结构为基础:

  • case_base:病例主表。
  • traditional_case:练习模式病例扩展。
  • teaching_case:教学互动模式病例扩展。
  • scoring_rule:病例评分规则。

业务运行新增表:

  • case_exam_item
  • training_session
  • training_order
  • training_submission

长期评价记录使用:

  • training_record

旧表已删除:

cases
case_exam_items
training_sessions
session_orders
session_submissions
session_runtime_messages
evaluation_records
evaluation_report_exports
rubric_templates

旧 ORM 模型文件已删除:

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

最终数据库检查:

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_basetraditional_caseteaching_casescoring_rule
  • 导入器继续沿用安全解析逻辑,不执行源 SQL 中的 DDL/DML。
  • 前端新增 #/import 页面,支持选择 SQL、预检、确认导入和刷新病例库。
  • 导入成功后,新增病例会出现在病例列表中,并可继续创建训练会话。