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

93 lines
2.3 KiB
Markdown

# 开发过程记录
本文档只记录开发过程和阶段性变更。其他设计文档只描述当前确定状态。
## 第一版 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、预检、确认导入和刷新病例库。
- 导入成功后,新增病例会出现在病例列表中,并可继续创建训练会话。