Files
AIclinicalresearch/docs/03-业务模块/IIT Manager Agent/04-开发计划/MVP开发任务清单.md
HaHafeng dfc472810b feat(iit-manager): Integrate Dify knowledge base for hybrid retrieval
Completed features:
- Created Dify dataset (Dify_test0102) with 2 processed documents
- Linked test0102 project with Dify dataset ID
- Extended intent detection to recognize query_protocol intent
- Implemented queryDifyKnowledge method (semantic search Top 5)
- Integrated hybrid retrieval (REDCap data + Dify documents)
- Fixed AI hallucination bugs (intent detection + API field path)
- Developed debugging scripts
- Completed end-to-end testing (5 scenarios passed)
- Generated comprehensive documentation (600+ lines)
- Updated development plans and module status

Technical highlights:
- Single project single knowledge base architecture
- Smart routing based on user intent
- Prevent AI hallucination by injecting real data/documents
- Session memory for multi-turn conversations
- Reused LLMFactory for DeepSeek-V3 integration

Bug fixes:
- Fixed intent detection missing keywords
- Fixed Dify API response field path error

Testing: All scenarios verified in WeChat production environment

Status: Fully tested and deployed
2026-01-04 15:44:11 +08:00

864 lines
25 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.
# IIT Manager Agent MVP 开发任务清单
> **版本:** V1.1(基于架构评审修正版)
> **时间规划:** 2周10个工作日
> **目标:** 打通 REDCap → Node.js → 企微 的完整闭环
> **参考文档:** `02-技术设计/IIT Manager Agent 完整技术开发方案 (V1.1).md`
---
## 📅 Week 1基础连接层Day 1-5
### Day 1环境初始化8小时✅ **已完成2025-12-31 ~ 2026-01-01**
#### 数据库初始化4小时
- [x] 创建 `iit_schema` 数据库Schema
- [x] 编写 Prisma Schema
- [x] IitProject 表含V1.1新增字段cachedRules, lastSyncAt
- [x] IitPendingAction 表(影子状态)
- [x] IitTaskRun 表(任务管理)
- [x] IitUserMapping 表含V1.1新增字段miniProgramOpenId, sessionKey
- [x] IitAuditLog 表(审计日志)
- [x] 同步数据库:`npx prisma db push`
- [x] 生成 Prisma Client`npx prisma generate`
- [x] 验证编写测试CRUD操作`test-iit-database.ts`
**验收标准**
- ✅ 5个表全部创建成功
- ✅ Prisma Client可正常导入
- ✅ 测试脚本能执行CRUD11/11测试通过
**完成情况**
- ✅ Schema定义完整223行类型定义
- ✅ 数据库表创建成功
- ✅ CRUD操作验证通过
#### 企业微信初始化2小时
- [x] 注册企业微信开发者账号
- [x] 创建自建应用:`IIT Manager Agent`
- [x] 获取并保存凭证:
- [x] CorpID: `ww01cb7b72ea2db83c`
- [x] AgentID: `1000002`
- [x] Secret: `F3XqlAqKdcOKHi9pLGv5a2dSUowWbevdcDRrBk2pXLM`
- [x] 配置环境变量到后端 SAE
- [x] 测试获取Access Token成功
**验收标准**
- ✅ 企微账号注册成功
- ✅ 能成功获取Access Token
-**网页授权及JS-SDK授权已获取**
-**可信域名配置成功iit.xunzhengyixue.com**
**完成情况**
- ✅ 企业微信应用创建成功
- ✅ Access Token获取测试通过`test-wechat-push.ts`
- ✅ 前端域名验证文件部署成功v1.2
- ✅ 可信域名授权完成
#### 项目初始化2小时
- [x] 创建模块目录结构
```
backend/src/modules/iit-manager/
├── controllers/
├── services/
├── agents/
├── adapters/
├── routes/
└── types/
```
- [x] 配置路由前缀:`/api/v1/iit`
- [x] 配置健康检查端点
- [x] 创建基础类型定义223行
**验收标准**
- ✅ 目录结构完整
- ✅ 路由骨架已创建
- ✅ 类型定义完整
**完成情况**
- ✅ 模块目录结构创建完成
- ✅ `types/index.ts` 完整定义223行
- ✅ 路由骨架创建(`routes/index.ts`
- ✅ 主模块入口创建(`index.ts`
---
### 📊 Day 1 完成总结
**实际完成时间**2025-12-31 ~ 2026-01-01
**任务完成度**11/11100%
**关键成果**
1. ✅ 数据库Schema创建iit_schema5个表
2. ✅ Prisma Schema编写223行类型定义
3. ✅ 模块目录结构创建
4. ✅ 企业微信应用注册和配置
5. ✅ 企业微信Access Token获取成功
6. ✅ 企业微信可信域名配置成功iit.xunzhengyixue.com
7. ✅ 前端域名验证文件部署v1.2
**重要里程碑**
- 🎉 IIT Manager Agent模块正式启动
- 🎉 企业微信集成基础完成
- 🎉 网页授权及JS-SDK授权已获取
---
### Day 2REDCap实时集成8小时✅ **已完成2026-01-02**
#### REDCap API Adapter4小时
- [x] 创建 `RedcapAdapter.ts`271行
- [x] 实现 `exportRecords()` 方法
- [x] 支持 `dateRangeBegin` 时间过滤
- [x] 支持 `fields` 字段过滤
- [x] 支持 `records` 记录过滤
- [x] 实现 `importRecords()` 方法(回写数据)
- [x] 实现 `exportMetadata()` 方法(获取字段定义)
- [x] 配置超时和重试机制
- [x] 编写集成测试脚本
**验收标准**
- ✅ 能成功拉取REDCap数据test0102项目PID 16
- ✅ 时间过滤功能正常
- ✅ 集成测试通过test-redcap-api.ts
**完成情况**
- ✅ RedcapAdapter 实现完整7个核心方法
- ✅ 支持REDCap REST API v15.8.0
- ✅ API测试验证通过
#### WebhookController + SyncManager4小时
- [x] 创建 `WebhookController.ts`327行
- [x] 实现 DET webhook 接收(<10ms响应
- [x] 幂等性检查(防重复处理)
- [x] 队列任务推送iit_quality_check
- [x] 审计日志记录
- [x] 创建 `SyncManager.ts`398行
- [x] 实现定时轮询机制pg-boss schedule
- [x] 增量数据拉取(按时间过滤)
- [x] 全量数据同步(初始化或修复)
- [x] Worker 注册iit_redcap_poll
- [x] 配置 Fastify 路由
- [x] POST `/api/v1/iit/webhooks/redcap`
- [x] POST `/api/v1/iit/projects/:id/sync`
- [x] POST `/api/v1/iit/projects/:id/full-sync`
- [x] 添加 form-urlencoded 解析器支持REDCap DET格式
**验收标准**
- ✅ DET实时触发成功0ms延迟
- ✅ 轮询任务正常调度pg-boss
- ✅ 幂等性保护生效
- ✅ 审计日志完整
**完成情况**
- ✅ WebhookController响应时间 <10ms
- ✅ 集成测试12/12通过
- ✅ 真实场景验证通过REDCap → Node.js → 队列)
- ✅ Docker网络问题解决host.docker.internal
---
### 📊 Day 2 完成总结
**实际完成时间**2026-01-02
**任务完成度**100%
**关键成果**
1. ✅ RedcapAdapter 实现完整271行7个方法
2. ✅ WebhookController 实现完整327行<10ms响应
3. ✅ SyncManager 实现完整398行增量+全量)
4. ✅ Worker注册iit_quality_check + iit_redcap_poll
5. ✅ 路由配置5个API端点
6. ✅ 集成测试脚本3个912行
7. ✅ 真实场景验证通过
**技术亮点**
- 🔥 REDCap DET实时触发0ms延迟
- 🔥 Webhook + 轮询双重机制
- 🔥 form-urlencoded格式支持
- 🔥 Postgres-Only架构pg-boss队列
**参考文档**
- `06-开发记录/Day2-REDCap实时集成开发完成记录.md`
---
### Day 3企业微信集成8小时✅ **已完成2026-01-02**
#### WechatService企业微信推送2小时
- [x] 创建 `WechatService.ts`314行
- [x] 实现 Access Token 管理(缓存+自动刷新)
- [x] 实现 `sendTextMessage()` 方法
- [x] 实现 `sendMarkdownMessage()` 方法
- [x] 审计日志记录
**验收标准**
- ✅ Access Token 获取成功
- ✅ 消息推送功能正常
- ✅ Token缓存机制生效
**完成情况**
- ✅ Token缓存7200秒提前5分钟刷新
- ✅ 完整的错误处理和重试
- ✅ 详细的日志记录
#### WechatCallbackController企业微信回调4小时
- [x] 创建 `WechatCallbackController.ts`501行
- [x] 实现 URL 验证GET请求
- [x] 实现消息接收POST请求
- [x] 实现异步回复模式规避5秒超时
- [x] 实现消息解密(@wecom/crypto
- [x] 实现签名验证(@wecom/crypto
- [x] 实现关键词意图识别
- [x] 实现业务逻辑(汇总、帮助、新患者)
**验收标准**
- ✅ URL验证通过
- ✅ 消息解密成功
- ✅ 签名验证通过
- ✅ 异步处理正常
**完成情况**
- ✅ 企业微信开发者调试工具验证通过
- ✅ 返回状态request: 成功
- ✅ HTTP 200解密23位字符正确
- ✅ 异步回复模式实现完整
#### 质控Worker完善1小时
- [x] 完善 `iit_quality_check` Worker
- [x] 实现简单质控逻辑
- [x] 实现企业微信通知推送
- [x] 实现通知消息格式化
**验收标准**
- ✅ Worker正常执行
- ✅ 企业微信推送成功
- ✅ 通知格式正确
**完成情况**
- ✅ 质控逻辑实现(基础规则检查)
- ✅ 通知消息格式化完成
- ✅ 审计日志记录完整
#### 配置与测试1小时
- [x] 安装依赖(@wecom/crypto, xml2js
- [x] 配置环境变量(.env
- [x] 配置企业微信路由
- [x] natapp内网穿透配置
- [x] 企业微信URL验证测试
**验收标准**
- ✅ 依赖安装成功
- ✅ 环境变量配置正确
- ✅ URL验证通过
- ✅ natapp隧道在线
**完成情况**
- ✅ @wecom/crypto 和 xml2js 安装完成
- ✅ 环境变量配置验证通过
- ✅ natapp配置成功http://iit.nat100.top
- ✅ 企业微信调试工具验证通过
---
### 📊 Day 3 完成总结
**实际完成时间**2026-01-03
**任务完成度**100%
**关键成果**
1. ✅ WechatService 实现完整314行
2. ✅ WechatCallbackController 实现完整501行
3. ✅ 质控Worker企业微信推送功能
4. ✅ 企业微信路由配置GET + POST
5. ✅ natapp内网穿透配置成功
6. ✅ 企业微信URL验证测试通过
7. ✅ **端到端测试通过**REDCap → Node.js → 企业微信)
8. ✅ **Worker注册修复**`initIitManager()` 调用)
9. ✅ **数据库字段名修复**`action_type`
10. ✅ **MVP闭环打通**<2秒延迟100%成功率)
**技术亮点**
- 🔥 异步回复模式规避5秒超时
- 🔥 @wecom/crypto正确用法decrypt 2个参数
- 🔥 签名验证getSignature
- 🔥 消息解密XML + AES
- 🔥 natapp内网穿透https支持
- 🔥 **pg-boss Worker最佳范式**符合Postgres-Only指南
- 🔥 **审计日志非致命错误处理**
**技术难点解决**
1. ✅ 环境变量名称不一致WECHAT_CORP_SECRET
2. ✅ @wecom/crypto导入方式createRequire
3. ✅ decrypt函数参数2个参数不是4个
4. ✅ Token字符识别小写l vs 数字1
5. ✅ EncodingAESKey重新生成43位正确格式
6. ✅ **Worker未注册问题**`initIitManager()` 未调用)
7. ✅ **数据库字段名错误**`action` → `action_type`
8. ✅ **循环发送问题**pg-boss重试机制导致
**性能指标**
- ⚡ Webhook响应时间5.8ms(目标<10ms
- ⚡ Worker执行时间~50ms目标<100ms
- ⚡ 端到端延迟:<2秒目标<5秒
- ⚡ 消息发送成功率100%测试5次
**参考文档**
- `06-开发记录/Day3-企业微信集成与端到端测试完成记录.md`
---
### ✅ Day 3 已完成任务(端到端测试)
- [x] 保存企业微信正式回调URL配置已配置到企业微信后台
- [x] 配置 `wechat_user_id`(使用环境变量 `WECHAT_TEST_USER_ID=FengZhiBo`
- [x] **端到端测试**REDCap → 企微推送)✅ **测试通过**
- [x] Worker注册修复`initIitManager()` 在 `src/index.ts` 中调用)
- [x] 数据库字段名修复(`action` → `action_type`
- [x] 循环发送问题修复审计日志错误导致Worker失败重试
- [x] 企业微信推送测试(文本/卡片/Markdown✅ **全部通过**
- [x] 测试对话功能(发送关键词)✅ **Phase 1.5已完成2026-01-03**
---
### Day 3历史数据扫描🔥 V1.1功能补充8小时
#### BulkScanService全量扫描6小时
- [ ] 创建 `BulkScanService.ts`
- [ ] 实现 `scanAllRecords()` 方法
- [ ] 轻量级拉取所有 record_id
- [ ] 智能阈值判断(<50直接处理≥50队列
- [ ] 实现 `scanViaQueue()` 方法
- [ ] 创建 IitTaskRun 记录
- [ ] 任务拆分每批50条
- [ ] 推送批次任务
- [ ] 实现 `processBatch()` Worker
- [ ] 加载断点CheckpointService
- [ ] 逐个拉取完整数据
- [ ] 调用质控Agent
- [ ] 每10条保存断点
- [ ] 更新任务统计
- [ ] 实现 `scanDirectly()` 方法(小批量)
- [ ] 注册 Worker`iit:bulk-scan:batch`
**验收标准**
- ✅ 能扫描100条历史数据
- ✅ 断点续传功能正常(模拟中断)
- ✅ 任务进度可查询
- ✅ 大批量任务正确拆分
#### API端点2小时
- [ ] 创建 `POST /api/v1/iit/projects/:id/scan-all`
- [ ] 创建 `GET /api/v1/iit/tasks/:taskRunId/progress`
- [ ] 实现并发扫描检查(防止重复)
- [ ] 编写API文档Swagger
**验收标准**
- ✅ API端点可正常调用
- ✅ 进度查询返回正确数据
- ✅ 并发保护生效
---
### Day 4Webhook增强作为补充8小时
#### REDCap External Module4小时
- [ ] 创建EM目录结构
```
iit_manager_connector_v1.0.0/
├── config.json
├── IITManagerConnector.php
├── js/
│ └── ai_assistant.js
└── README.md
```
- [ ] 编写 `config.json`EM配置
- [ ] 实现 `IITManagerConnector.php`
- [ ] 实现 `redcap_save_record` Hook
- [ ] 实现 Webhook 推送
- [ ] HMAC-SHA256 签名
- [ ] 错误日志记录
- [ ] 本地测试Docker REDCap
**验收标准**
- ✅ EM可成功安装到REDCap
- ✅ 保存记录时触发Hook
- ✅ Webhook签名正确
#### Node.js Webhook接收器4小时
- [ ] 创建 `webhookController.ts`
- [ ] 实现 `handleRedcapWebhook()` 方法
- [ ] 验证签名HMAC-SHA256
- [ ] 防重放攻击5分钟有效期
- [ ] 立即返回200不阻塞REDCap
- [ ] 异步推送质控任务
- [ ] 实现 `verifyWebhookSignature()` 工具函数
- [ ] 配置路由:`POST /api/v1/iit/webhooks/redcap`
- [ ] 编写单元测试模拟Webhook
**验收标准**
- ✅ Webhook签名验证正确
- ✅ 响应时间 < 100ms
- ✅ 异步任务正确入队
- ✅ 单元测试全部通过
---
### Day 5企微集成与测试8小时
#### 企微适配器4小时
- [ ] 创建 `WeChatAdapter.ts`
- [ ] 实现 `getAccessToken()` 方法
- [ ] 调用企微API获取token
- [ ] 缓存到 Postgres7000秒
- [ ] 实现 `sendMessage()` 方法(卡片消息)
- [ ] 实现 `sendQualityAlert()` 方法(质控预警)
- [ ] 错误处理和重试机制
- [ ] 编写单元测试
**验收标准**
- ✅ Access Token可正确获取和缓存
- ✅ 能发送卡片消息到企微
- ✅ 质控预警格式正确
#### 端到端测试4小时
- [ ] 场景1Webhook模式测试
- [ ] REDCap保存记录 → Node.js收到Webhook
- [ ] 延迟 < 2秒
- [ ] 场景2轮询模式测试
- [ ] 手动修改REDCap数据 → 轮询拉取到
- [ ] 延迟 < 10分钟
- [ ] 场景3全量扫描测试
- [ ] 触发扫描 → 处理历史数据
- [ ] 断点续传正常
- [ ] 场景4企微通知测试
- [ ] 质控发现问题 → 企微收到卡片
- [ ] 延迟 < 5秒
- [ ] 编写测试报告
**验收标准**
- ✅ 4个场景全部通过
- ✅ 测试报告完成
- ✅ Week 1 里程碑达成
---
## 📅 Week 2AI智能质控Day 6-10
### Day 6-7Protocol服务与Dify集成16小时
#### ProtocolService8小时
- [ ] 创建 `ProtocolService.ts`
- [ ] 实现 `initializeProtocolKnowledgeBase()` 方法
- [ ] 上传Protocol PDF到OSS
- [ ] 调用Dify创建Dataset
- [ ] 上传文档到Dify
- [ ] 🔥 预提取关键规则V1.1性能优化)
- [ ] 缓存规则到 `cachedRules` 字段
- [ ] 实现 `extractKeyRules()` 方法(私有)
- [ ] 调用Dify提取入排标准
- [ ] 提取关键字段规则
- [ ] 解析JSON结构
- [ ] 实现 `checkProtocolCompliance()` 方法
- [ ] 优先使用缓存规则(快速路径)
- [ ] 复杂规则调用Dify RAG慢路径
- [ ] 解析AI响应
- [ ] 实现 `parseComplianceResult()` 方法
- [ ] 错误处理和降级策略
**验收标准**
- ✅ Protocol可成功上传到Dify
- ✅ 关键规则正确提取和缓存
- ✅ 简单规则检查 < 100ms
- ✅ 复杂规则检查 < 2秒
- ✅ Dify RAG准确率 > 80%
#### API端点2小时
- [ ] 创建 `POST /api/v1/iit/projects`(创建项目)
- [ ] 创建 `POST /api/v1/iit/projects/:id/protocol`上传Protocol
- [ ] 创建 `PUT /api/v1/iit/projects/:id/field-mappings`(配置映射)
- [ ] 编写API文档
**验收标准**
- ✅ API端点可正常调用
- ✅ 字段映射配置正确存储
#### Dify集成测试6小时
- [ ] 准备测试Protocol标准IIT方案
- [ ] 测试入排标准检索
- [ ] 年龄范围18-60岁
- [ ] 性别要求
- [ ] 必填字段
- [ ] 测试复杂规则检索
- [ ] 用药禁忌
- [ ] 合并症排除
- [ ] 调优Dify参数temperature, top_k等
- [ ] 记录测试结果和准确率
**验收标准**
- ✅ 简单规则准确率 > 95%
- ✅ 复杂规则准确率 > 80%
- ✅ 假阳性率 < 15%
---
### Day 8-9数据质控Agent16小时
#### DataQualityAgent10小时
- [ ] 创建 `DataQualityAgent.ts`
- [ ] 实现 `checkRecord()` 方法
- [ ] 获取项目配置字段映射、Dify DatasetId
- [ ] 提取关键字段值
- [ ] 逐个字段检查合规性
- [ ] 调用ProtocolService检查
- [ ] 收集所有问题
- [ ] 创建影子建议PROPOSED状态
- [ ] 发送企微通知(严重违背)
- [ ] 实现 `createPendingActions()` 方法(私有)
- [ ] 批量创建影子记录
- [ ] 包含推理过程和证据链
- [ ] 实现 `sendWeChatNotification()` 方法(私有)
- [ ] 调用WeChatAdapter
- [ ] 格式化质控预警
- [ ] 注册 Worker`iit:quality-check`
- [ ] 错误处理和重试
**验收标准**
- ✅ 能检测年龄违背如65岁
- ✅ 能检测性别不符
- ✅ 能检测必填字段缺失
- ✅ 影子记录正确创建
- ✅ 企微通知正确发送
- ✅ Worker可靠处理任务
#### 影子状态管理6小时
- [ ] 创建 `PendingActionService.ts`
- [ ] 实现 `getPendingActions()` 方法
- [ ] 分页查询
- [ ] 按状态过滤
- [ ] 按项目过滤
- [ ] 实现 `getPendingActionDetail()` 方法
- [ ] 返回详细信息
- [ ] 包含证据链
- [ ] 实现 `approveAction()` 方法
- [ ] 更新状态PROPOSED → APPROVED
- [ ] 调用REDCap API回写数据
- [ ] 更新状态APPROVED → EXECUTED
- [ ] 记录审计日志
- [ ] 实现 `rejectAction()` 方法
- [ ] 更新状态PROPOSED → REJECTED
- [ ] 记录拒绝原因
- [ ] 记录审计日志
- [ ] API端点
- [ ] `GET /api/v1/iit/pending-actions`
- [ ] `GET /api/v1/iit/pending-actions/:id`
- [ ] `POST /api/v1/iit/pending-actions/:id/approve`
- [ ] `POST /api/v1/iit/pending-actions/:id/reject`
**验收标准**
- ✅ 影子建议列表可查询
- ✅ 确认后数据正确回写REDCap
- ✅ 状态流转正确PROPOSED → APPROVED → EXECUTED
- ✅ 审计日志完整
---
### Day 10-12PC Workbench前端24小时
#### 前端骨架8小时
- [ ] 创建前端路由:`/iit/workbench`
- [ ] 创建主布局组件
- [ ] 顶部导航
- [ ] 侧边栏(项目列表)
- [ ] 内容区
- [ ] 创建任务列表页
- [ ] 表格组件Ant Design Table
- [ ] 状态筛选PROPOSED/APPROVED/REJECTED
- [ ] 分页功能
- [ ] 刷新按钮
- [ ] 创建项目选择器
- [ ] 下拉选择
- [ ] 快速切换
**验收标准**
- ✅ 路由可正常访问
- ✅ 任务列表可展示
- ✅ 项目切换功能正常
#### 详情对比页10小时
- [ ] 创建详情页面组件
- [ ] 左侧:当前数据展示
- [ ] 字段名 + 当前值
- [ ] 高亮违背字段(红色)
- [ ] 右侧AI建议展示
- [ ] AI建议值
- [ ] 推理过程
- [ ] 证据链Protocol页码
- [ ] 置信度(进度条)
- [ ] 底部:操作按钮
- [ ] [拒绝] 按钮 + 拒绝原因输入
- [ ] [确认] 按钮 + 二次确认
- [ ] 证据链高亮
- [ ] 点击跳转到Protocol PDF
- [ ] 高亮相关文字
- [ ] 实时状态更新
- [ ] WebSocket 或 轮询
**验收标准**
- ✅ 详情页面布局合理
- ✅ 当前数据与AI建议对比清晰
- ✅ 证据链可点击查看
- ✅ 操作按钮功能正常
#### 交互优化6小时
- [ ] 加载状态Skeleton
- [ ] 错误提示Message/Notification
- [ ] 成功提示(绿色通知)
- [ ] 二次确认Modal
- [ ] 批量操作(多选)
- [ ] 快捷键支持回车确认、ESC关闭
- [ ] 响应式布局(适配不同屏幕)
- [ ] 性能优化
- [ ] 虚拟滚动(大列表)
- [ ] 防抖搜索
**验收标准**
- ✅ 加载状态友好
- ✅ 错误提示清晰
- ✅ 操作响应流畅
- ✅ 快捷键可用
---
### Day 13影子状态闭环8小时
#### 完整流程测试6小时
- [ ] 场景1年龄违背检测
- [ ] REDCap录入年龄65岁
- [ ] AI检测到违背18-60岁
- [ ] 影子建议创建
- [ ] 企微通知发送
- [ ] Workbench显示建议
- [ ] CRC确认
- [ ] 数据回写REDCap标记为排除
- [ ] 审计日志记录
- [ ] 场景2性别不符检测
- [ ] 场景3必填字段缺失检测
- [ ] 场景4复杂规则检测用药禁忌
- [ ] 场景5拒绝建议流程
- [ ] 性能测试
- [ ] 100条记录批量质控
- [ ] 平均处理时间 < 10秒/条
- [ ] 压力测试
- [ ] 并发10个质控任务
- [ ] 系统稳定运行
**验收标准**
- ✅ 5个场景全部通过
- ✅ 完整闭环(录入→发现→确认→回写)
- ✅ 审计日志完整
- ✅ 性能指标达标
#### 错误处理测试2小时
- [ ] REDCap连接失败
- [ ] Dify API超时
- [ ] 企微推送失败
- [ ] 数据库连接中断
- [ ] Webhook签名错误
- [ ] 轮询任务失败
- [ ] 断点续传验证
**验收标准**
- ✅ 所有错误场景有友好提示
- ✅ 系统能自动重试
- ✅ 不影响其他任务执行
---
### Day 14Demo录制与交付8小时
#### Demo录制3小时
- [ ] 准备Demo脚本5分钟
```
场景骨科IIT研究年龄18-60岁
第1分钟背景介绍
第2分钟问题录入年龄65岁
第3分钟AI发现企微卡片
第4分钟人类复核Workbench
第5分钟价值总结
```
- [ ] 录制视频
- [ ] 屏幕录制
- [ ] 语音讲解
- [ ] 关键节点字幕
- [ ] 视频剪辑和优化
**验收标准**
- ✅ Demo视频5分钟
- ✅ 流程清晰完整
- ✅ 价值展示到位
#### 文档整理3小时
- [ ] 更新部署文档
- [ ] 编写使用手册
- [ ] 管理员手册(项目配置)
- [ ] CRC手册Workbench使用
- [ ] PI手册企微通知查看
- [ ] 编写API文档完善Swagger
- [ ] 编写故障排查文档
**验收标准**
- ✅ 文档完整清晰
- ✅ 新人可根据文档上手
#### 技术债务记录2小时
- [ ] 记录已知问题
- [ ] Dify准确率待提升
- [ ] 前端性能可优化
- [ ] 小程序待开发
- [ ] 记录改进建议
- [ ] OCR智能采集Phase 2
- [ ] 任务驱动AgentPhase 2
- [ ] 智能汇报AgentPhase 3
- [ ] 创建技术债务清单
- [ ] 按优先级排序
- [ ] 估算工作量
**验收标准**
- ✅ 技术债务清单完整
- ✅ 优先级合理
- ✅ MVP可交付
---
## 📊 MVP验收标准最终
### 功能完整性
- [ ] ✅ REDCap数据监听Webhook + 轮询)
- [ ] ✅ 历史数据全量扫描
- [ ] ✅ AI质控检测Dify RAG
- [ ] ✅ 影子状态管理
- [ ] ✅ 企微卡片通知
- [ ] ✅ PC Workbench复核
- [ ] ✅ 数据回写REDCap
- [ ] ✅ 审计日志记录
### 技术指标
| 指标 | 目标值 | 验收 |
|------|--------|------|
| Webhook响应时间 | < 100ms | [ ] |
| AI质控完成时间 | < 30秒 | [ ] |
| 企微推送延迟 | < 5秒 | [ ] |
| AI准确率 | > 80% | [ ] |
| 假阳性率 | < 15% | [ ] |
| 系统可用性 | > 99% | [ ] |
### 文档完整性
- [ ] ✅ 技术方案 V1.1
- [ ] ✅ API文档Swagger
- [ ] ✅ 部署文档
- [ ] ✅ 使用手册3份
- [ ] ✅ Demo视频5分钟
- [ ] ✅ 技术债务清单
---
## 📝 日常开发习惯
### 每日站会15分钟
- [ ] 昨天完成了什么?
- [ ] 今天计划做什么?
- [ ] 遇到什么阻碍?
### 每日提交
- [ ] 代码提交至少1次
- [ ] 更新TODO清单
- [ ] 记录开发笔记
### 每日复盘10分钟
- [ ] 今日完成度?
- [ ] 明日优先级?
- [ ] 需要调整计划?
---
## 🎯 关键里程碑
| 里程碑 | 时间 | 目标 | 状态 |
|--------|------|------|------|
| 🏁 Week 1 完成 | Day 5结束 | 基础连接层打通 | [ ] |
| 🏁 Week 2 完成 | Day 14结束 | MVP完整交付 | [ ] |
| 🏁 Demo录制 | Day 14 | 5分钟演示视频 | [ ] |
---
## 🎉 Phase 1.5 完成总结2026-01-03 & 2026-01-04
### **核心成果**
- ✅ **AI对话集成**: DeepSeek-V3 + LLMFactory
- ✅ **REDCap数据查询**: 基于真实数据回答解决LLM幻觉
- ✅ **Dify知识库集成** (2026-01-04新增): 研究方案文档查询
- ✅ **混合检索**: 同时支持结构化数据REDCap和非结构化文档Dify
- ✅ **上下文记忆**: SessionMemory保存最近3轮对话
- ✅ **即时反馈**: "正在查询"消息
- ✅ **意图识别**: 关键词匹配(查记录/统计/项目信息/文档查询)
- ✅ **智能路由**: 根据意图自动选择数据源REDCap/Dify
### **测试验证**
- **项目**: test0102
- REDCap PID: 16, 11条记录
- Dify Dataset ID: `b49595b2-bf71-4e47-9988-4aa2816d3c6f`
- 文档: 研究方案、CRF表格2个文件
- **测试场景1**: 查询ID 7患者详细信息REDCap
- **测试场景2**: 查询研究排除标准Dify
- **测试场景3**: 查询CRF观察指标Dify
- **测试场景4**: 统计入组人数REDCap
- **测试结果**: ✅ 所有场景通过,数据准确,无编造
### **详细记录**
- [Phase 1.5开发计划](./Phase1.5-AI对话能力开发计划.md)
- [Phase 1.5开发完成记录 (REDCap)](../06-开发记录/Phase1.5-AI对话集成REDCap完成记录.md)
- [Dify知识库集成开发记录](../06-开发记录/2026-01-04-Dify知识库集成开发记录.md)
---
**创建日期**2025-12-31
**最后更新**2026-01-04
**维护者**:开发团队
**更新频率**:每日
**参考文档**`02-技术设计/IIT Manager Agent 完整技术开发方案 (V1.1).md`