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
43 lines
562 B
INI
43 lines
562 B
INI
# EditorConfig is awesome: https://EditorConfig.org
|
|
|
|
# 顶级配置文件
|
|
root = true
|
|
|
|
# 所有文件的默认设置
|
|
[*]
|
|
charset = utf-8
|
|
end_of_line = lf
|
|
insert_final_newline = true
|
|
trim_trailing_whitespace = true
|
|
|
|
# TypeScript/JavaScript 文件
|
|
[*.{ts,tsx,js,jsx}]
|
|
indent_style = space
|
|
indent_size = 2
|
|
|
|
# JSON 文件
|
|
[*.json]
|
|
indent_style = space
|
|
indent_size = 2
|
|
|
|
# Markdown 文件(不删除行尾空格,因为两个空格代表换行)
|
|
[*.md]
|
|
trim_trailing_whitespace = false
|
|
|
|
# YAML 文件
|
|
[*.{yml,yaml}]
|
|
indent_style = space
|
|
indent_size = 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|