93 lines
2.3 KiB
Markdown
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、预检、确认导入和刷新病例库。
|
|
- 导入成功后,新增病例会出现在病例列表中,并可继续创建训练会话。
|