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
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
# AI智能文献模块 - API设计规范
|
||||
|
||||
> **文档版本:** v2.0
|
||||
> **文档版本:** v2.1
|
||||
> **创建日期:** 2025-10-29
|
||||
> **维护者:** AI智能文献开发团队
|
||||
> **最后更新:** 2025-11-18
|
||||
> **更新说明:** 基于实际实现代码更新,所有接口已测试验证
|
||||
> **最后更新:** 2025-11-21
|
||||
> **更新说明:** 更新实际API格式、字段映射说明、测试数据示例
|
||||
|
||||
---
|
||||
|
||||
@@ -47,11 +47,11 @@
|
||||
{
|
||||
"projectName": "SGLT2抑制剂系统综述",
|
||||
"picoCriteria": {
|
||||
"population": "2型糖尿病成人患者",
|
||||
"intervention": "SGLT2抑制剂",
|
||||
"comparison": "安慰剂或常规降糖疗法",
|
||||
"outcome": "心血管结局",
|
||||
"studyDesign": "随机对照试验 (RCT)"
|
||||
"P": "2型糖尿病成人患者",
|
||||
"I": "SGLT2抑制剂(empagliflozin、dapagliflozin等)",
|
||||
"C": "安慰剂或常规降糖疗法",
|
||||
"O": "心血管结局(MACE、心衰住院、心血管死亡)",
|
||||
"S": "随机对照试验 (RCT)"
|
||||
},
|
||||
"inclusionCriteria": "英文文献,RCT研究,2010年后发表",
|
||||
"exclusionCriteria": "病例报告,综述,动物实验",
|
||||
@@ -818,10 +818,64 @@ Body (raw JSON):
|
||||
|
||||
---
|
||||
|
||||
**文档版本:** v2.0
|
||||
**最后更新:** 2025-11-18
|
||||
---
|
||||
|
||||
## 🆕 Week 4 新增API
|
||||
|
||||
### 4.1 获取项目统计数据(云原生:后端聚合)
|
||||
|
||||
**接口**: `GET /api/v1/asl/projects/:projectId/statistics`
|
||||
**认证**: 需要
|
||||
**说明**: 获取项目的筛选统计数据(总数、纳入率、排除率、排除原因分析等)
|
||||
|
||||
**路径参数**:
|
||||
- `projectId`: 项目ID
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"total": 199,
|
||||
"included": 85,
|
||||
"excluded": 90,
|
||||
"pending": 24,
|
||||
"conflict": 24,
|
||||
"reviewed": 175,
|
||||
"exclusionReasons": {
|
||||
"P不匹配(人群)": 40,
|
||||
"I不匹配(干预)": 25,
|
||||
"S不匹配(研究设计)": 15,
|
||||
"其他原因": 10
|
||||
},
|
||||
"includedRate": "42.7",
|
||||
"excludedRate": "45.2",
|
||||
"pendingRate": "12.1"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**特点**:
|
||||
- ✅ 云原生:后端Prisma聚合查询(6个并行查询)
|
||||
- ✅ 性能:<500ms(199篇文献)
|
||||
- ✅ 减少网络传输:从MB级降到KB级
|
||||
|
||||
**测试命令**:
|
||||
```bash
|
||||
curl http://localhost:3001/api/v1/asl/projects/55941145-bba0-4b15-bda4-f0a398d78208/statistics
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**文档版本:** v2.2
|
||||
**最后更新:** 2025-11-21(Week 4完成)
|
||||
**维护者:** AI智能文献开发团队
|
||||
|
||||
**本次更新**:
|
||||
- ✅ 新增统计API接口
|
||||
- ✅ 更新PICOS格式说明(P/I/C/O/S)
|
||||
- ✅ 添加云原生架构标注
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关文档
|
||||
|
||||
Reference in New Issue
Block a user