Files
AIclinicalresearch/docs/08-项目管理/下一阶段行动计划-V2.2-前端架构优先版.md
HaHafeng 8eef9e0544 feat(asl): Complete Week 4 - Results display and Excel export with hybrid solution
Features:
- Backend statistics API (cloud-native Prisma aggregation)
- Results page with hybrid solution (AI consensus + human final decision)
- Excel export (frontend generation, zero disk write, cloud-native)
- PRISMA-style exclusion reason analysis with bar chart
- Batch selection and export (3 export methods)
- Fixed logic contradiction (inclusion does not show exclusion reason)
- Optimized table width (870px, no horizontal scroll)

Components:
- Backend: screeningController.ts - add getProjectStatistics API
- Frontend: ScreeningResults.tsx - complete results page (hybrid solution)
- Frontend: excelExport.ts - Excel export utility (40 columns full info)
- Frontend: ScreeningWorkbench.tsx - add navigation button
- Utils: get-test-projects.mjs - quick test tool

Architecture:
- Cloud-native: backend aggregation reduces network transfer
- Cloud-native: frontend Excel generation (zero file persistence)
- Reuse platform: global prisma instance, logger
- Performance: statistics API < 500ms, Excel export < 3s (1000 records)

Documentation:
- Update module status guide (add Week 4 features)
- Update task breakdown (mark Week 4 completed)
- Update API design spec (add statistics API)
- Update database design (add field usage notes)
- Create Week 4 development plan
- Create Week 4 completion report
- Create technical debt list

Test:
- End-to-end flow test passed
- All features verified
- Performance test passed
- Cloud-native compliance verified

Ref: Week 4 Development Plan
Scope: ASL Module MVP - Title Abstract Screening Results
Cloud-Native: Backend aggregation + Frontend Excel generation
2025-11-21 20:12:38 +08:00

608 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 下一阶段行动计划 V2.2 - 前端架构优先版
> **计划周期:** 2025-11-07 至 2025-12-064周
> **核心目标:** Schema隔离 + **前端统一架构** + ASL核心功能
> **制定时间:** 2025-11-09
> **版本:** V2.2(前端架构优先版)
> **最后更新:** 2025-11-09
---
## 💡 V2.2版核心调整
> **🎯 最大变化前端统一架构提前到Week 2**
### 为什么调整?
**V2.1版问题:**
- Week 2只做后端分层 + LLM网关
- Week 3开发ASL时前端还是散乱的
- 开发完ASL后再重构前端 → 大量返工
**V2.2版优化:**
- ✅ Week 2先建立前端统一架构
- ✅ 所有模块插件化接入,一次到位
- ✅ Week 3开发ASL时直接在统一框架下
- ✅ LLM网关推迟到Week 5现有调用已够用
---
## 🎯 V2.2 vs V2.1 关键差异
| 项目 | V2.1版 | **V2.2版** ⭐ | 原因 |
|------|-------|-------------|------|
| **Week 2重点** | 后端分层 + LLM网关 | **前端架构 + 后端分层** ⭐⭐⭐ | 架构先行,避免返工 |
| **前端架构** | 未明确时机 | **Week 2上半周完成** ⭐ | ASL在统一框架下开发 |
| **LLM网关** | Week 2开发 | **推迟到Week 5** ✅ | 现有调用已work |
| **CloseAI集成** | 未提及 | **已完成配置** ⭐ | 4个LLM可用 |
| **ASL开发环境** | 独立开发 | **统一架构下** ✅ | 避免后期重构 |
---
## 📊 整体规划 - 四周四阶段
```
Week 1 Week 2 Week 3-4 Week 5+
Schema隔离 → 前端架构+后端分层 → ASL核心开发 → LLM网关+其他模块
(3详细+7空) (统一导航+插件化) (在统一框架下) (抽取统一网关)
```
| 阶段 | 时间 | 核心任务 | 交付成果 | 优先级 |
|------|------|---------|---------|--------|
| **阶段1** | Week 1 | **Schema隔离3详细+7空** | 10个Schema完成 | P0 ⭐⭐⭐ |
| **阶段2** | Week 2 | **前端统一架构 + 后端分层** ⭐ | 统一导航+模块插件化 | P0 ⭐⭐⭐ |
| **阶段3** | Week 3-4 | **ASL核心功能4个LLM** | 文献筛选完整流程 | P0 ⭐⭐⭐ |
| **阶段4** | Week 5+ | LLM网关统一 + 其他模块 | LLM网关+DC/RVW | P1 ⭐⭐ |
---
## 🚀 阶段1Schema隔离Week 1✅ 保持不变
> **时间:** 2025-11-07 至 2025-11-137天
> **策略:** 3个详细迁移 + 7个空Schema预留
### 详细设计+迁移3个
**1. platform_schema** - 平台基础迁移users表
**2. aia_schema** - AI智能问答迁移5个表
**3. pkb_schema** - 个人知识库迁移2个表
### 空Schema预留7个📋
**4. asl_schema** - AI智能文献Week 3设计
**5. common_schema** - 通用能力
**6-10.** dc/rvw/admin/ssa/st_schema - 其他模块
### Week 1详细任务
- **Day 1-2** 3个Schema详细设计 + 7个空Schema创建SQL
- **Day 3** 执行迁移,验证功能
- **Day 4** Prisma更新3个详细模型+ 补充AIA/PKB数据库文档
- **Day 5** 代码适配 + 补充AIA/PKB API文档 + Week 1总结
**交付物:**
- ✅ 10个Schema全部创建3详细+7空
- ✅ AIA和PKB完整文档数据库+API
- ✅ 现有功能正常运行
**详细参考:** 见V2.1版Week 1部分完全相同
---
## 🎨 阶段2前端统一架构 + 后端分层Week 2⭐⭐⭐
> **时间:** 2025-11-14 至 2025-11-207天
> **核心:** 建立统一前端导航框架,所有模块插件化接入
> **目标:** Week 3开发ASL时直接在统一架构下
### 核心原则:架构先行,一次到位 ⭐⭐⭐
**为什么前端架构要优先?**
1. ✅ 避免ASL开发完后再重构前端
2. ✅ 一开始就在统一框架下开发
3. ✅ 其他模块AIA、PKB、审稿直接接入
4. ✅ 导航、布局、路由一次到位
---
### Day 6-7上半周前端统一架构 ⭐⭐⭐ 核心任务
#### Day 6上午前端架构设计 ⭐ 关键设计
**任务:前端架构整体设计**
- [ ] 梳理前端架构需求和目标
- [ ] 确定前端技术栈和工具链
- [ ] 设计模块注册机制
- [ ] 设计统一导航和布局方案
- [ ] 编写前端架构设计文档
**需要解决的核心问题:**
**1. 技术栈选择**
- UI组件库选择Ant Design? Material-UI? 自研?)
- 路由方案React Router配置
- 状态管理Redux? Zustand? 不用?)
- 构建工具当前Vite是否需要调整
**2. 统一布局设计**
- 顶部导航栏设计Logo、模块切换、用户信息
- 侧边菜单设计(模块内导航、收缩/展开)
- 面包屑设计(当前位置指示)
- 主内容区布局
**3. 模块插件化机制**
- 模块如何注册到主应用?
- 模块路由如何动态加载?
- 模块权限如何控制?
- 模块样式如何隔离?
**4. 导航结构设计**
- 一级导航模块级AIA、PKB、ASL、审稿等
- 二级导航:功能级(项目管理、对话、文献筛选等)
- 导航如何响应式适配?
**输出文档:**
- `01-平台基础层/06-前端架构/04-前端架构实施方案-V2.md`
- 更新:`01-平台基础层/06-前端架构/01-前端总体架构设计.md`
- 更新:`01-平台基础层/06-前端架构/02-导航结构设计.md`
**参考文档:**
- `01-平台基础层/06-前端架构/01-前端总体架构设计.md`(现有设计)
- `01-平台基础层/06-前端架构/02-导航结构设计.md`(现有导航)
- `01-平台基础层/06-前端架构/03-架构原型图.html`(原型参考)
**设计要点:**
```
主要考虑:
1. 简单易维护(单人开发)
2. 模块化清晰(支持独立开发)
3. 扩展性好(新模块快速接入)
4. 用户体验佳(统一的交互风格)
```
---
#### Day 6下午-Day 7前端架构实施
**任务1创建统一布局框架**
- [ ] 创建 `frontend/src/layouts/MainLayout.tsx`
- 顶部导航栏组件
- 侧边菜单组件
- 主内容区
- 面包屑导航
- [ ] 创建 `frontend/src/components/TopNav.tsx`
- [ ] 创建 `frontend/src/components/SideMenu.tsx`
**任务2实现模块注册机制**
- [ ] 创建 `frontend/src/router/moduleRegistry.ts`
- [ ] 定义模块配置接口
- [ ] 实现动态路由加载
- [ ] 实现模块权限控制
**任务3整合现有模块**
- [ ] 重构AIA模块接入统一导航现有功能
- [ ] 重构PKB模块接入统一导航现有功能
- [ ] 重构审稿模块接入统一导航(现有功能)
**任务4为未来模块预留入口**
- [ ] ASL模块入口占位符显示"开发中"
- [ ] 数据清洗入口(占位符)
- [ ] 统计分析入口(占位符)
- [ ] 运营管理入口(占位符)
**前端目录结构:**
```
frontend/
├── src/
│ ├── layouts/ # 布局组件
│ │ └── MainLayout.tsx # 统一布局:顶部导航+侧边栏
│ ├── components/ # 通用组件
│ │ ├── TopNav.tsx # 顶部导航栏
│ │ ├── SideMenu.tsx # 侧边菜单
│ │ └── Breadcrumb.tsx # 面包屑
│ ├── router/ # 路由管理
│ │ ├── index.tsx # 主路由配置
│ │ └── moduleRegistry.ts # 模块注册中心
│ ├── modules/ # 模块化目录
│ │ ├── aia/ # AI智能问答已有
│ │ │ ├── routes.tsx # 模块路由
│ │ │ ├── pages/ # 页面组件
│ │ │ └── index.ts # 模块导出
│ │ ├── pkb/ # 个人知识库(已有)
│ │ ├── review/ # 审稿系统(已有)
│ │ ├── asl/ # AI智能文献占位
│ │ ├── dataClean/ # 数据清洗(占位)
│ │ ├── statistics/ # 统计分析(占位)
│ │ └── admin/ # 运营管理(占位)
│ └── App.tsx # 应用入口
```
**验收标准:**
- [ ] ✅ 统一布局创建完成
- [ ] ✅ 3个现有模块成功接入统一导航
- [ ] ✅ 模块切换流畅,路由正常
- [ ] ✅ 占位模块显示"开发中"状态
- [ ] ✅ 前端架构文档完善
---
### Day 8-9下半周后端代码分层
**任务:建立三层代码结构**
- [ ] 创建 platform/common/modules 三层目录
- [ ] 迁移现有代码到新结构
- [ ] 建立统一错误处理
- [ ] 建立统一日志系统
**后端目录结构:**
```
backend/src/
├── platform/ # L1平台基础层
│ ├── auth/ # 认证JWT、Session
│ ├── permissions/ # 权限管理RBAC
│ └── users/ # 用户服务
├── common/ # L2通用能力层
│ ├── llm/ # LLM调用保留简单实现
│ │ ├── deepseek.ts
│ │ ├── closeai.ts # ⭐ GPT-5 + Claude-4.5
│ │ └── qwen.ts
│ ├── files/ # 文件处理
│ └── utils/ # 工具函数
└── modules/ # L3业务模块层
├── aia/ # AI智能问答
├── pkb/ # 个人知识库
├── review/ # 审稿系统
└── asl/ # AI智能文献准备目录
```
**说明:**
- LLM调用暂时保留简单实现已够用
- Week 5再统一抽取LLM网关
- CloseAI配置已完成可直接使用
**验收标准:**
- [ ] ✅ 三层目录结构清晰
- [ ] ✅ 现有代码迁移完成
- [ ] ✅ 统一错误处理和日志系统
- [ ] ✅ 现有功能无回归
---
### Day 10周末Week 2验收 + Week 3准备
**任务1Week 2总体验收**
- [ ] 前端统一架构验收
- [ ] 后端代码分层验收
- [ ] 编写Week 2总结报告
**任务2ASL准备工作**
- [ ] 阅读ASL需求文档
- [ ] 准备CloseAI测试4个LLM
- [ ] 规划Week 3详细任务
**Week 2交付物清单**
- [ ] ✅ 前端统一布局框架
- [ ] ✅ 模块注册和动态路由机制
- [ ] ✅ 3个现有模块整合完成
- [ ] ✅ 后端三层代码结构
- [ ] ✅ 前端架构设计文档
- [ ] ✅ ASL可以在统一框架下开始开发
---
## 📚 阶段3ASL核心功能开发Week 3-4
> **时间:** 2025-11-21 至 2025-12-042周
> **优势:** 在统一前端架构下开发4个LLM已配置好
> **重点:** 文献筛选核心功能
### Week 3 Day 1-2ASL详细设计
#### Day 1上午4个LLM集成测试 ⭐
**任务验证4个LLM可用性**
- [ ] 测试DeepSeek-V3连接
- [ ] 测试GPT-5-Pro连接CloseAI
- [ ] 测试Claude-4.5连接CloseAI
- [ ] 测试Qwen-Max连接
- [ ] 编写LLM统一调用服务
**4个LLM配置已完成**
1. **DeepSeek-V3** (直连) - 快速初筛 ✅
2. **GPT-5-Pro** (CloseAI) - 精准筛选 ✅
3. **Claude-4.5** (CloseAI) - 冲突仲裁 ✅
4. **Qwen-Max** (备选) - 长文本处理 ✅
**参考文档:**
- `02-通用能力层/01-LLM大模型网关/03-CloseAI集成指南.md`
#### Day 1下午ASL数据库设计
**任务设计asl_schema表结构**
- [ ] 文献项目表literature_projects
- [ ] PICO配置表pico_configs
- [ ] 文献条目表literature_items
- 包含4个模型的筛选结果字段
- 共识决策字段
- 成本统计字段
- [ ] 编写数据库设计文档
**输出文档:**
- `03-业务模块/ASL-AI智能文献/02-技术设计/01-数据库设计.md`
#### Day 2ASL API和前端设计
**任务1API设计**
- [ ] 项目管理API
- [ ] 文献导入API
- [ ] 4模型筛选API
- [ ] 结果查询API
**任务2前端页面设计**
- [ ]`frontend/src/modules/asl/` 下设计页面结构
- [ ] 自动接入统一导航(已有框架)
- [ ] 设计筛选结果展示显示4个模型意见
**输出文档:**
- `03-业务模块/ASL-AI智能文献/02-技术设计/02-API设计规范.md`
- `03-业务模块/ASL-AI智能文献/02-技术设计/03-前端页面设计.md`
---
### Week 3 Day 3-5 + Week 4ASL核心功能开发
**功能1文献项目管理**
- [ ] 创建/编辑/删除项目
- [ ] PICO配置
- [ ] 项目列表展示
**功能2文献导入**
- [ ] CSV格式解析
- [ ] 批量导入
- [ ] 数据验证
**功能34模型智能筛选 ⭐⭐⭐**
- [ ] 双模型并行筛选DeepSeek + GPT-5
- [ ] 结果一致性判断
- [ ] 冲突时启用Claude仲裁
- [ ] 成本统计和优化
**功能4筛选结果管理**
- [ ] 结果展示4个模型对比
- [ ] 共识度展示
- [ ] 人工复核界面
- [ ] 导出功能
**筛选策略参考CloseAI集成指南**
```typescript
// 策略1双模型对比推荐
async screenWithTwoModels(literature) {
const [deepseek, gpt5] = await Promise.all([
llm.chat('deepseek', prompt),
llm.chat('gpt5', prompt),
]);
if (deepseek.decision === gpt5.decision) {
return { consensus: 'high', decision: deepseek.decision };
}
// 启用Claude仲裁
const claude = await llm.chat('claude', prompt);
return resolveConflict([deepseek, gpt5, claude]);
}
```
**Week 4交付物**
- [ ] ✅ ASL Phase 1完整功能
- [ ] ✅ 4个LLM集成完成
- [ ] ✅ 筛选结果对比展示
- [ ] ✅ 完整测试通过
---
## 🔧 阶段4LLM网关统一 + 其他模块Week 5+
> **时间:** 2025-12-05 开始
> **策略:** 有了多个模块实践统一抽取LLM网关
### Week 5-6LLM网关重构 ⭐
**为什么Week 5再做**
- ✅ Week 3-4 ASL开发时已有4个模型实践
- ✅ 有了具体使用场景,抽取更合理
- ✅ 避免过度设计
**任务:**
- [ ] 统一LLM调用接口
- [ ] 版本分级(专业版/高级版/旗舰版)
- [ ] 配额管理和限流
- [ ] Token计数和计费
- [ ] 使用记录和监控
**参考:**
- `02-通用能力层/01-LLM大模型网关/[AI对接] LLM网关快速上下文.md`
### Week 7+:其他模块
- 数据清洗模块DC
- 智能统计分析SSA
- 统计分析工具ST
- 运营管理ADMIN
---
## 📊 V2.2版工作量总结
| 阶段 | 任务 | V2.1工作量 | V2.2工作量 | 变化 |
|------|------|-----------|-----------|------|
| Week 1 | Schema隔离 | 2天 | **2天** | 不变 ✅ |
| Week 2 | 后端分层+LLM网关 | 2天 | **前端架构2天+后端分层1.5天** | 调整 ⭐ |
| Week 3-4 | ASL开发 | 2周 | **2周**(但在统一框架下) | 优化 ✅ |
| Week 5+ | 其他模块 | - | **LLM网关+其他模块** | 延后 ✅ |
**总体工作量:** 4周 → 4周不变
**关键优化:** 前端架构提前避免ASL开发后重构 ⭐⭐⭐
---
## 🎯 成功标准
### Week 1成功标准
- [ ] ✅ 10个Schema全部创建3详细+7空
- [ ] ✅ Platform/AIA/PKB数据100%迁移
- [ ] ✅ AIA和PKB文档完整
### Week 2成功标准 ⭐⭐⭐
- [ ]**前端统一布局框架完成**
- [ ]**3个现有模块成功接入统一导航**
- [ ]**模块注册机制清晰**
- [ ] ✅ 后端三层代码结构清晰
- [ ] ✅ ASL可以在统一框架下开始开发
### Week 3-4成功标准
- [ ] ✅ ASL文献筛选功能完整
- [ ] ✅ 4个LLM集成成功DeepSeek/GPT-5/Claude-4.5/Qwen
- [ ] ✅ 双模型对比+三模型仲裁实现
- [ ] ✅ 筛选结果对比展示完善
### Week 5+成功标准
- [ ] ✅ LLM网关统一调用接口
- [ ] ✅ 配额管理和计费系统
- [ ] ✅ 其他模块逐步开发
---
## 💡 关键优势总结
### V2.2版的核心优势 ⭐⭐⭐
**1. 架构先行,避免返工**
- 前端统一架构先完成
- ASL在统一框架下开发
- 不需要开发后再重构
**2. 聚焦核心价值**
- Week 1: 数据架构基础 ✅
- Week 2: **前端+后端架构统一**
- Week 3-4: ASL核心功能 ⭐
- Week 5+: 优化和扩展
**3. Just-in-time开发**
- LLM网关Week 5有实践再抽取
- 其他模块:按需逐步开发
- 避免过度设计
**4. 4个LLM已就绪**
- DeepSeek-V3 ✅
- GPT-5-Pro ✅CloseAI
- Claude-4.5 ✅CloseAI
- Qwen-Max ✅
---
## 📝 关于前端架构设计
### Week 2 Day 6上午的重点 ⭐
**前端架构设计会议议题:**
**1. 技术栈确认**
- UI组件库选择
- 路由方案
- 状态管理方案
- 构建工具配置
**2. 布局设计**
- 顶部导航栏
- 侧边菜单
- 主内容区
- 面包屑
**3. 模块化机制**
- 模块注册方式
- 路由动态加载
- 权限控制
- 样式隔离
**4. 导航结构**
- 一级导航(模块级)
- 二级导航(功能级)
- 响应式适配
**说明:** 这些问题在Week 2 Day 6上午集中讨论和决策不在本计划中详细展开。
---
## 🔗 相关文档
### 核心参考文档
**架构设计:**
- [前端总体架构设计](../01-平台基础层/06-前端架构/01-前端总体架构设计.md)
- [导航结构设计](../01-平台基础层/06-前端架构/02-导航结构设计.md)
- [架构原型图](../01-平台基础层/06-前端架构/03-架构原型图.html)
**LLM配置**
- [CloseAI集成指南](../02-通用能力层/01-LLM大模型网关/03-CloseAI集成指南.md)
- [环境配置指南](../07-运维文档/01-环境配置指南.md)
- [环境变量配置模板](../07-运维文档/02-环境变量配置模板.md)
**Schema设计**
- [数据库连接配置](../09-架构实施/02-数据库连接配置.md)
- [Schema隔离架构设计](../09-架构实施/01-Schema隔离架构设计.md)(待创建)
---
## 🎯 下一步行动
### 立即开始如果还没开始Week 1
1. **Week 1 Day 1**规划10个Schema架构
2. **Week 1 Day 2**:编写迁移脚本
3. **Week 1 Day 3**执行Schema迁移
### 如果Week 1已完成
1. **Week 2 Day 6上午**:前端架构设计会议 ⭐⭐⭐
- 确定技术栈
- 设计模块注册机制
- 设计导航结构
2. **Week 2 Day 6下午**:开始实施前端架构
3. **Week 2 Day 8**:后端代码分层
---
**制定人:** AI助手
**版本:** V2.2(前端架构优先版)
**最后更新:** 2025-11-09
**核心策略:**
- ✅ Schema隔离3详细+7空- 架构基础
-**前端统一架构优先** - 避免返工 ⭐⭐⭐
- ✅ 后端代码分层 - 模块清晰
- ✅ ASL在统一框架下开发 - 高效开发
- ✅ 4个LLM已就绪CloseAI配置完成- 质量保证
- ✅ LLM网关延后到Week 5 - Just-in-time开发
**核心理念:架构先行 + 聚焦核心 + Just-in-time = 高效务实!** ⭐⭐⭐