Files
AIclinicalresearch/docs/03-业务模块/IIT Manager Agent/00-模块当前状态与开发指南.md

37 KiB
Raw Blame History

IIT Manager Agent模块 - 当前状态与开发指南

文档版本: v2.4
创建日期: 2026-01-01
维护者: IIT Manager开发团队
最后更新: 2026-02-08 🎉 事件级质控架构 V3.1 开发完成!
重大里程碑:

  • 2026-02-08事件级质控架构 V3.1 完成record+event 独立质控 + 规则动态过滤 + 报告去重 + AI对话增强
  • 2026-02-08质控驾驶舱 UI 开发完成PromptBuilder XML 格式 + 驾驶舱页面 + 热力图 + 详情抽屉)
  • 2026-02-08质控系统优化计划制定XML 临床切片格式 + 质控驾驶舱设计 + 方案 A 确认)
  • 2026-02-07实时质控系统开发完成pg-boss防抖 + 质控日志 + 录入汇总 + 管理端批量操作)
  • 2026-02-05V2.9.1 完整开发计划发布(双脑架构 + 三层记忆 + 主动性增强 + 隐私合规)
  • 2026-02-02REDCap 生产环境部署完成ECS + RDS + HTTPS
  • 2026-01-04混合检索架构实现REDCap实时数据 + Dify文档知识库
    文档目的: 反映模块真实状态,记录开发历程

📋 文档说明

本文档是IIT Manager Agent模块的真实状态快照,如实记录开发进度、关键配置和当前真实状况。

与其他文档的关系

  • 本文档00-模块当前状态)What is真实状态当前进度
  • MVP开发任务清单What to do开发计划
  • 技术设计文档How to do技术方案
  • 开发记录文档What done历史记录

🎯 模块概述

核心功能

IIT Manager Agent研究者发起试验管理助手是一个基于企业微信的主动式AI Agent产品为IIT研究者发起试验提供智能化管理能力。

架构设计

  • 核心理念双脑架构V2.9.1 - SOP 状态机 + ReAct 引擎 + 三层记忆 + 隐私合规
  • 双脑路由
    • 左脑SOP 引擎):结构化任务执行,写操作必经
    • 右脑ReAct 引擎):模糊查询,只读不写
  • 技术栈
    • 后端Node.js (Fastify) + PostgreSQL (Prisma) + pg-boss
    • 前端:企业微信 + 微信小程序 (Taro 4.x)
    • 数据源REDCap (EDC系统)
    • 通知:企业微信
    • AI能力DeepSeek/Qwen + 自研 RAG

当前状态

  • 开发阶段🎉 事件级质控架构 V3.1 开发完成!基本测试通过
  • 整体完成度
    • 基础设施95%REDCap + 企业微信 + AI 对话 + 实时质控 + 驾驶舱 UI + 事件级质控)
    • 架构设计100%V2.9.1 完整开发计划发布)
    • 代码实现60%(实时质控系统 + 驾驶舱 UI + 事件级质控 V3.1 已实现)

已完成功能(基础设施)

  • 数据库Schema创建iit_schema9个表 = 原5个 + 新增4个质控表
  • Prisma Schema编写扩展至 ~350 行类型定义)
  • 企业微信应用注册和配置
  • REDCap 生产环境部署完成ECS + RDS + HTTPS
  • REDCap实时集成完成DET + REST API
  • 企业微信推送服务完成WechatService
  • 端到端测试通过REDCap → Node.js → 企业微信)
  • AI对话集成完成ChatService + SessionMemory

已完成功能(实时质控系统 - 2026-02-07

  • 质控数据库表iit_qc_logs + iit_record_summary + iit_qc_project_stats + iit_field_metadata
  • pg-boss 防抖机制WebhookController + singletonKey
  • Worker 双产出(质控日志 + 录入汇总,一次执行两个产出)
  • HardRuleEngine 增强(按表单过滤规则)
  • QcService 创建质控查询服务6 个核心方法)
  • ChatService 优化(优先查询汇总表/质控表,新增录入/质控意图识别)
  • 管理端批量操作(一键全量质控 + 一键全量汇总,前后端完整实现)

已完成功能(架构设计 V2.9.1

  • 双脑架构设计SOP 状态机 + ReAct 引擎)
  • 三层记忆系统设计(流水账 + 热记忆 + 历史书)
  • 主动性增强设计Cron Skill + 用户画像 + 反馈循环)
  • 隐私合规设计PII 脱敏中间件 + 审计日志)
  • 自动化工具设计AutoMapper REDCap Schema 对齐)
  • 模块化开发文档6 份专项文档)

已完成功能(质控驾驶舱 UI - 2026-02-08

  • PromptBuilder 类XML 临床切片格式构建器,减少 LLM 幻觉)
  • ChatService 优化(集成 PromptBuilder使用 XML 格式化数据)
  • 质控驾驶舱页面IitQcCockpitPage.tsx全屏展示模式
  • 统计卡片组件QcStatCards.tsx4 个核心指标)
  • 风险热力图组件RiskHeatmap.tsx受试者×表单矩阵视图
  • 详情抽屉组件QcDetailDrawer.tsx含 LLM Trace 视图)
  • 驾驶舱后端 APIiitQcCockpitService + Controller + Routes
  • 前端类型定义qcCockpit.ts完整的 TypeScript 类型)

已完成功能(事件级质控 V3.1 - 2026-02-08

  • 事件级质控架构(每个 record+event 独立质控,不再合并数据)
  • 规则动态过滤applicableEvents/applicableForms 配置规则适用范围)
  • RedcapAdapter 增强getAllRecordsByEvent + getFormEventMapping + getEvents
  • SkillRunner 重构(按 record+event 执行 + filterApplicableRules
  • 质控报告去重(按 recordId+ruleId 去重,避免多事件重复问题)
  • 报告自动刷新(导出 XML 前自动获取最新数据)
  • AI 意图识别增强(支持"严重违规有几项"等自然语言查询)
  • Bug 修复formatPatientData 500 错误 + 记录数统计 + 报告限制移除)

待实施功能(按 Phase 规划)

Phase 内容 优先级 状态
Phase 1 基础工具层ToolsService + HardRuleEngine + AutoMapper P0 部分完成HardRuleEngine 已实现)
Phase 1.5 隐私安全AnonymizerService + PII 脱敏) P0 合规必需 待开始
Phase 2 实时质控系统QC Worker + QcService + 批量操作) P0 已完成
Phase 2.5 质控 UI 与 LLM 格式优化(驾驶舱 + XML 临床切片) P0 📋 计划已制定
Phase 3 ReAct 引擎 + 流水账ReActEngine + 反馈循环) P0 待开始
Phase 4 调度系统SchedulerService + Cron Skill + ProfilerService P1 待开始
Phase 5 智能路由IntentService + 多意图处理) P1 待开始
Phase 6 视觉能力VisionService 延后 待开始

📋 新增开发计划2026-02-08


📊 一、当前开发进度

MVP开发阶段2周10个工作日

阶段 状态 完成时间 核心交付物
Day 1环境初始化 已完成 2026-01-01 数据库Schema + 企业微信配置 + 模块骨架
REDCap环境准备 已完成 2026-01-02 REDCap Docker部署 + 对接方案确定
Day 2REDCap拉取 已完成 2026-01-02 RedcapAdapter(271行) + WebhookController(327行) + SyncManager(398行)
Day 3企微推送 已完成 2026-01-03 WechatService(314行) + WechatCallbackController(501行) + 质控Worker
Phase 1.5AI对话 已完成 2026-01-03 & 2026-01-04 ChatService(485行) + SessionMemory(120行) + Dify集成
IIT 管理端配置 已完成 2026-02-07 运营管理端 IIT 项目管理REDCap配置 + 质控规则 + 用户映射 + 知识库)
实时质控系统 已完成 2026-02-07 4个新表 + pg-boss防抖 + Worker双产出 + QcService + 管理端批量操作
Day 6-7小程序 待开始 - Taro前端 + 审批界面
Day 8回写+集成 待开始 - REDCap回写 + 端到端测试
Day 9-10完善+测试 待开始 - 错误处理 + 日志 + 性能优化

当前进度统计

整体完成度50%Day 1 + Day 2 + Day 3完成

已完成任务

  • 数据库初始化11/11测试通过
  • REDCap实时集成DET + REST API
  • 企业微信推送服务WechatService
  • 企业微信回调处理WechatCallbackController
  • 企业微信URL验证调试工具通过
  • 企业微信初始化Access Token获取成功
  • 项目初始化(目录结构 + 类型定义)
  • 企业微信网页授权及JS-SDK授权获取
  • 可信域名配置iit.xunzhengyixue.com
  • REDCap本地Docker环境部署15.8.0
  • REDCap对接技术调研(源码分析 + 官方文档研究)
  • REDCap对接方案确定DET + REST API架构
  • REDCap测试项目创建test0102, PID 16已有数据
  • REDCap对接技术方案文档编写1070行完整实施指南
  • RedcapAdapter开发完成271行7个API方法测试通过
  • WebhookController开发完成327行<10ms响应支持form-urlencoded
  • SyncManager开发完成398行增量+全量+手动同步)
  • Worker注册完成iit_quality_check + iit_redcap_poll
  • 路由配置完成5个API端点
  • 集成测试通过12/12测试用例全部通过
  • 真实场景验证(新增+编辑记录DET实时触发数据一致性验证

Day 3已完成2026-01-03

  • 企业微信推送服务WechatService, 314行
  • 企业微信回调处理WechatCallbackController, 501行
  • 质控Worker完善质控逻辑 + 通知推送 + 审计日志)
  • Worker注册修复initIitManager() 调用)
  • 数据库字段修复(action_type
  • 端到端测试通过(<2秒延迟100%成功率)
  • 🎯 MVP闭环完全打通REDCap → Node.js → 企业微信)

下一步任务

  • Phase 1.5AI质控能力Dify RAG + 规则引擎)
  • Phase 2多项目支持notification_config 字段)
  • Phase 2定时轮询实现兜底机制

待完成任务

  • 数据质量Agent开发AI质控
  • 企业微信对话功能(用户消息处理)
  • 影子状态管理
  • 微信小程序前端
  • REDCap双向回写

🗄️ 二、数据库Schema

2.1 Schema信息

  • Schema名称iit_schema
  • 数据库ai_clinical_researchRDS PostgreSQL 15
  • 创建时间2025-12-31
  • 表数量5个
  • 验证状态 已创建并验证

2.2 表结构

表名 用途 主要字段 索引
IitProject 项目配置 id, redcapApiUrl, redcapApiToken, difyAgentUrl redcapProjectId
IitPendingAction 影子状态(待审核动作) id, projectId, actionType, status projectId, status
IitTaskRun 任务运行记录 id, projectId, taskType, status projectId, status
IitUserMapping 跨系统用户映射 id, projectId, redcapUsername, wechatUserId redcapUsername, wechatUserId
IitAuditLog 审计日志 id, projectId, actionType, operator projectId, createdAt

2.3 Prisma Schema位置

AIclinicalresearch/backend/prisma/schema.prisma

IIT Manager Schema定义(位于文件末尾):

  • 完整的5个表模型定义
  • 外键关系配置
  • 索引优化
  • JSON字段支持

🔧 三、技术架构

3.1 后端技术栈

核心框架

  • Node.jsv22.x
  • Web框架Fastify
  • ORMPrisma 6.17.0多Schema支持
  • 任务队列pg-bossPostgres-Only架构
  • AI能力Dify RAGRESTful API

模块结构

backend/src/modules/iit-manager/
├── index.ts                  ✅ 主入口(模块注册)
├── types/
│   └── index.ts             ✅ 类型定义223行
├── routes/
│   └── index.ts             ✅ 路由骨架
├── controllers/             ⏳ 待开发
├── services/                ⏳ 待开发
├── agents/                  ⏳ 待开发
└── adapters/                ⏳ 待开发

3.2 前端技术栈

微信小程序

  • 框架Taro 4.xReact语法
  • UI组件Taro UI / WeUI
  • 状态管理React Hooks
  • 开发状态 未开始

3.3 企业微信集成

应用信息

  • 应用名称IIT Manager Agent
  • CorpIDww01cb7b72ea2db83c
  • AgentID1000002
  • SecretF3XqlAqKdcOKHi9pLGv5a2dSUowWbevdcDRrBk2pXLM

授权配置

  • 网页授权及JS-SDK授权:已获取
  • 可信域名iit.xunzhengyixue.com
  • 域名验证文件已部署前端v1.2

消息推送能力

  • Access Token获取测试通过
  • 文本消息推送:待开发
  • 卡片消息推送:待开发
  • 消息模板:待设计

环境变量配置Node.js后端SAE

WECHAT_CORP_ID=ww6ab493470ab4f377
WECHAT_AGENT_ID=1000002
WECHAT_CORP_SECRET=AZIVxMtoLb0rEszXS81e4dBRl-I9kgTjygIS0cFfENU
WECHAT_TOKEN=oXlRBm1YnvMy2SbDLbvAdDd5Gq3oBGq
WECHAT_ENCODING_AES_KEY=v88eT3O9bMW897h4btr7v7qvQImlMf31edTQCmuhOhO

🚀 四、关键里程碑

2026-01-02REDCap环境就绪 - 对接方案确定

完成内容

  1. REDCap本地环境部署

    • Docker Compose配置3容器架构
    • REDCap 15.8.0部署成功
    • 解决部署问题ERR_CONTENT_DECODING_FAILED、CRLF污染等
    • Admin账户登录成功
    • 测试项目创建test0102, PID 16
    • 测试数据录入成功
  2. REDCap技术调研

    • 源码分析(redcap15.8.0/
    • External Module文档研究redcap_external_module_framework_docs_main/
    • 验证DET功能真实存在Classes/DataEntry.php
    • 确认REST API可用性
  3. 对接方案确定

    • 技术选型:DET + REST API不使用External Module
    • 架构设计实时触发DET + 轮询补充每30分钟
    • 实时性保证0秒延迟触发 + 5秒内完成质控
    • 可靠性保证Webhook幂等性 + 轮询补充机制
  4. 技术方案文档编写

    • 创建《REDCap对接技术方案与实施指南》1070行
    • 完整代码设计RedcapAdapter、WebhookController、SyncManager
    • 详细实施步骤Day 2清单
    • 测试验证方案
  5. REDCap文档体系建立

    • 创建REDCap模块文档结构
    • 编写《REDCap Docker部署操作手册》
    • 编写《部署问题排查手册》
    • 整理参考资料和最佳实践

关键成果

  • 🎉 REDCap本地环境运行稳定
  • 🎉 DET功能验证成功REDCap原生支持
  • 🎉 对接方案技术可行性100%确认
  • 🎉 完整实施指南已编写(可直接开发)

技术亮点

  1. DET实时触发0秒延迟满足实时质控需求
  2. 双保险机制Webhook + 轮询,确保数据不丢失
  3. 零侵入性无需修改REDCap源码只用原生API
  4. 生产级架构:开发环境与生产环境配置一致

验收标准

  • REDCap可通过浏览器访问
  • Admin账户登录成功
  • 测试项目可正常使用
  • DET功能在源码中确认存在
  • REST API端点可访问
  • 技术方案文档完整
  • 代码设计可直接实现

2026-01-01Day 1完成 - 环境初始化

完成内容

  1. 数据库初始化

    • 创建 iit_schema
    • 编写 Prisma Schema5个表
    • 同步数据库(npx prisma db push
    • 生成 Prisma Client
    • 验证CRUD操作11/11测试通过
  2. 企业微信初始化

    • 注册企业微信开发者账号
    • 创建自建应用
    • 获取并配置凭证CorpID、AgentID、Secret
    • 测试Access Token获取成功
    • 获取网页授权及JS-SDK授权
    • 配置可信域名iit.xunzhengyixue.com
  3. 项目初始化

    • 创建模块目录结构
    • 配置路由前缀(/api/v1/iit
    • 创建基础类型定义223行
  4. 前端部署

    • 前端v1.2部署成功
    • 企业微信域名验证文件部署
    • 解决Windows换行符问题CRLF→LF

关键成果

  • 🎉 IIT Manager Agent模块正式启动
  • 🎉 企业微信集成基础完成
  • 🎉 网页授权及JS-SDK授权已获取
  • 🎉 可信域名配置成功

验收标准

  • 5个表全部创建成功
  • Prisma Client可正常导入
  • 测试脚本能执行CRUD
  • 企微账号注册成功
  • 能成功获取Access Token
  • 目录结构完整
  • 类型定义完整

📁 五、代码文件清单

5.1 后端代码

Prisma Schema

backend/prisma/schema.prisma
- IIT Manager Schema5个表定义
- 位于文件末尾
- 包含外键关系和索引

模块代码

backend/src/modules/iit-manager/
├── index.ts                     ✅ 82行模块注册
├── types/index.ts               ✅ 223行类型定义
├── routes/index.ts              ✅ 23行路由骨架
├── test-iit-database.ts         ✅ 111行数据库测试
└── test-wechat-push.ts          ✅ 138行企微测试

代码统计

  • 已完成代码577行
  • 测试脚本249行
  • 总计826行

5.2 前端代码

域名验证文件

frontend-v2/public/WW_verify_YnhsQBwI0ARnNoG0.txt
- 企业微信域名验证文件
- 已部署到SAE前端v1.2

微信小程序

  • 未开始

🔑 六、关键配置信息

6.1 企业微信配置

应用凭证

  • CorpIDww6ab493470ab4f377
  • AgentID1000002
  • SecretAZIVxMtoLb0rEszXS81e4dBRl-I9kgTjygIS0cFfENU
  • 应用名称IIT Manager Agent

回调配置(已验证):

  • TokenoXlRBm1YnvMy2SbDLbvAdDd5Gq3oBGq
  • EncodingAESKeyv88eT3O9bMW897h4btr7v7qvQImlMf31edTQCmuhOhO
  • 回调URLhttps://iit.nat100.top/api/v1/iit/wechat/callback(调试工具验证通过

授权配置

  • 网页授权域名iit.xunzhengyixue.com
  • JS-SDK安全域名iit.xunzhengyixue.com
  • 验证文件WW_verify_YnhsQBwI0ARnNoG0.txt
  • 验证文件内容YnhsQBwI0ARnNoG0

API端点

  • 获取Access Tokenhttps://qyapi.weixin.qq.com/cgi-bin/gettoken
  • 发送消息https://qyapi.weixin.qq.com/cgi-bin/message/send

6.2 REDCap配置

本地开发环境

  • REDCap版本15.8.0
  • 访问地址http://localhost:8080
  • Admin账户Admin / Xilu,881009
  • 部署方式Docker Compose3容器Apache+PHP+REDCap、MySQL、phpMyAdmin
  • Docker项目路径AIclinicalresearch/redcap-docker-dev/
  • 部署状态 运行中

测试项目信息

  • 项目名称test0102
  • Project ID (PID)16
  • 项目状态:已创建,已录入测试数据
  • API Token待生成Day 2第一步

REDCap对接方案

  • 技术方案Data Entry Trigger (DET) + REST API
  • 实时触发DET Webhook → Node.js接收器 → 异步处理
  • 数据拉取REST API exportRecords支持增量同步
  • 数据回写REST API importRecordsPhase 2
  • 轮询补充pg-boss定时任务每30分钟防止DET遗漏
  • 方案文档docs/03-业务模块/IIT Manager Agent/04-开发计划/REDCap对接技术方案与实施指南.md

DET配置(待执行):

  • Control Center启用:待启用
  • Webhook URLhttp://localhost:3001/api/v1/iit/webhooks/redcap(开发环境)
  • 生产URLhttps://iit.xunzhengyixue.com/api/v1/iit/webhooks/redcap

6.3 数据库配置

数据库连接

postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research

Schemaiit_schema


📝 七、测试脚本

7.1 数据库测试

文件位置backend/src/modules/iit-manager/test-iit-database.ts

测试内容

  1. IitProject CRUD操作
  2. IitPendingAction CRUD操作
  3. IitTaskRun CRUD操作
  4. IitUserMapping CRUD操作
  5. IitAuditLog CRUD操作

运行方式

cd backend
npx ts-node src/modules/iit-manager/test-iit-database.ts

测试结果 11/11测试通过

7.2 企业微信测试

文件位置backend/src/modules/iit-manager/test-wechat-push.ts

测试内容

  1. Access Token获取
  2. 文本消息发送(待测试)
  3. 卡片消息发送(待测试)

运行方式

cd backend
npx ts-node src/modules/iit-manager/test-wechat-push.ts

测试结果 Access Token获取成功


🎯 八、下一步工作Day 2

8.1 Day 2总体目标

核心目标实现REDCap数据的实时拉取能力

交付物

  • REDCap API AdapterRedcapAdapter.ts
  • Webhook接收器WebhookController.ts
  • 数据同步管理(SyncManager.ts
  • 完整测试(单元测试 + 集成测试)

预计工作量6-8小时完整工作日


8.2 阶段1环境准备30分钟

REDCap配置

  • 在Control Center启用DET功能
  • 在test0102项目生成API Token
  • 配置环境变量:
    REDCAP_BASE_URL=http://localhost:8080
    REDCAP_API_TOKEN_TEST=YOUR_TOKEN_HERE
    
  • 使用curl测试API是否可用

测试工具准备

  • 安装ngrok用于DET测试
  • 准备Postman CollectionAPI调试
  • 准备测试数据在REDCap中录入几条记录

8.3 阶段2RedcapAdapter开发1.5小时)

文件位置backend/src/modules/iit-manager/adapters/RedcapAdapter.ts

任务清单

  • 创建RedcapAdapter类
  • 实现 exportRecords() 方法(支持增量同步)
  • 实现 exportMetadata() 方法(获取字段定义)
  • 实现 importRecords() 方法Phase 2使用
  • 实现 formatRedcapDate() 工具方法
  • 配置axios超时和重试
  • 编写单元测试:RedcapAdapter.test.ts

验收标准

  • 可以拉取test0102的所有记录
  • 可以拉取指定record_id的记录
  • 可以使用dateRangeBegin增量拉取
  • 可以获取元数据(字段定义)
  • 单元测试全部通过

8.4 阶段3WebhookController开发2小时

文件位置backend/src/modules/iit-manager/controllers/webhookController.ts

任务清单

  • 创建WebhookController类
  • 实现 handleRedcapWebhook() 方法(响应时间<100ms
  • 实现 processWebhook() 异步处理方法
  • 实现 checkDuplicate() 幂等性检查
  • 配置路由:POST /api/v1/iit/webhooks/redcap
  • 记录审计日志
  • 推送到质控队列(iit:quality-check

验收标准

  • Webhook可以接收POST请求
  • 立即返回200 OK<100ms
  • 异步处理不阻塞响应
  • 5分钟内相同记录不重复处理
  • 成功调用RedcapAdapter拉取数据
  • 数据推送到pg-boss队列

8.5 阶段4SyncManager开发1.5小时)

文件位置backend/src/modules/iit-manager/services/SyncManager.ts

任务清单

  • 创建SyncManager类
  • 实现 initializeSync() 方法(注册定时任务)
  • 实现 handlePoll() 方法(轮询逻辑)
  • 实现 stopSync() 方法(停止同步)
  • 注册pg-boss Workeriit:redcap:poll
  • 增量拉取逻辑使用lastSyncAt
  • 更新项目lastSyncAt字段

验收标准

  • 可以手动触发一次轮询
  • 定时任务可以自动执行每30分钟
  • 增量拉取正确(只拉取新数据)
  • lastSyncAt正确更新
  • 数据推送到质控队列

8.6 阶段5集成测试1小时

测试内容

  1. DET配置验证

    • 在REDCap中配置DET URL
    • 使用ngrok测试Webhook
    • 验证Payload格式
  2. API测试

    • 运行 test-redcap-api.ts
    • 验证exportRecords正常
    • 验证exportMetadata正常
  3. 端到端测试

    • 在REDCap保存一条记录
    • 验证Webhook被触发
    • 验证数据被拉取
    • 验证数据推送到队列
    • 验证审计日志记录
  4. 轮询测试

    • 手动触发轮询
    • 验证增量拉取
    • 验证lastSyncAt更新

验收标准

  • DET实时触发正常
  • API拉取数据正常
  • 轮询补充机制正常
  • 端到端流程畅通
  • 所有测试通过

8.7 阶段6文档更新30分钟

更新内容

  • 更新MVP开发任务清单Day 2标记为完成
  • 记录API Token和配置信息
  • 更新模块当前状态文档
  • 更新架构图
  • 提交Git遵循Git提交规范

8.8 关键注意事项

性能要求

  • ⚠️ Webhook响应时间必须<100ms
  • ⚠️ 使用setImmediate()异步处理,不阻塞响应

安全要求

  • ⚠️ API Token存储在环境变量
  • ⚠️ 不要在日志中打印完整Token
  • ⚠️ 不要提交Token到Git

可靠性要求

  • ⚠️ 实现幂等性检查(防止重复处理)
  • ⚠️ 实现轮询补充防止DET遗漏
  • ⚠️ 记录详细日志(便于排查问题)

技术参考


📚 九、相关文档索引

9.1 技术设计文档

9.2 开发计划文档

9.3 REDCap相关文档

9.4 开发记录文档


🔄 十、更新日志

2026-01-04Dify知识库集成完成 - 混合检索实现

完成内容

  • Dify知识库创建Dify_test01022个文档已处理
  • 项目关联配置test0102 → Dataset ID: b49595b2-bf71-4e47-9988-4aa2816d3c6f
  • 意图识别扩展新增query_protocol意图扩充医学关键词
  • Dify查询集成queryDifyKnowledge方法Top 5语义检索
  • 混合检索实现同时支持REDCap数据 + Dify文档
  • 智能路由(根据意图自动选择数据源)
  • Bug修复Dify API字段路径错误record.segment.document.name
  • 调试工具开发debug-dify-injection.ts、inspect-dify-response.ts
  • 端到端测试5个场景全部通过
  • 开发记录文档600+行完整记录)

关键成果

  • 🎉 混合检索架构实现(结构化数据 + 非结构化文档)
  • 🎉 AI回答完全基于真实数据/文档(防止幻觉)
  • 🎉 智能路由机制(根据问题自动选择数据源)
  • 🎉 完整排查流程记录(从问题发现到根因修复)

技术亮点

  1. 单项目单知识库架构MVP快速落地方案
  2. 语义检索Dify semantic_search, Top 5
  3. 数据注入LLM格式化文档片段注入System Prompt
  4. 完整调试链路(从意图识别 → Dify调用 → LLM注入
  5. 关键Bug快速定位(通过调试脚本发现字段路径错误)

测试验证

测试场景 用户问题 数据源 结果 响应时间
文档查询 "这个研究的排除标准是什么?" Dify 准确 ~5s
CRF查询 "CRF表格中有哪些观察指标" Dify 准确 ~5s
患者查询 "ID 7的患者情况" REDCap 准确 ~5s
统计查询 "目前入组了多少人?" REDCap 准确 (11人) ~4s
混合查询 "这个研究的主要研究目的是什么?" Dify 准确 ~5s

问题排查记录

  1. 问题AI编造答案不查询Dify

    • 根因1:意图识别关键词不全(缺"入选"、"诊断标准"等)
    • 解决:扩充关键词正则表达式
    • 根因2Dify API字段路径错误record.document_name → record.segment.document.name
    • 解决:修正字段访问路径
  2. 调试工具

    • debug-dify-injection.ts追踪Dify结果是否正确注入LLM
    • inspect-dify-response.ts查看Dify API实际返回结构

技术债务

  • ⚠️ Dify文档通过Web界面手动上传Phase 2开发API自动上传
  • ⚠️ 单项目单知识库Phase 2支持多知识库
  • ⚠️ 检索参数固定top_k=5Phase 2支持动态调优

参考文档

下一步

  • 🔄 Phase 2多项目支持、文档API上传、Function Calling

2026-01-03Day 3完成 - 企业微信集成 + Phase 1.5 AI对话

完成内容

  • WechatService开发314行消息推送服务
  • WechatCallbackController开发501行回调处理 + 对话集成)
  • 质控Worker完善336行质控逻辑 + 企微推送 + 审计日志)
  • Worker注册修复initIitManager调用
  • 数据库字段修复action_type
  • 端到端测试通过REDCap → Node.js → 企微,<2秒
  • Phase 1.5: ChatService开发390行AI对话服务
  • SessionMemory开发170行上下文记忆
  • REDCap数据查询集成queryRedcapRecord, countRedcapRecords
  • 意图识别实现(关键词匹配)
  • LLM集成DeepSeek-V3, LLMFactory复用
  • 防止幻觉数据注入LLM基于真实数据回答

关键成果

  • 🎉 MVP闭环完全打通REDCap → Node.js → 企微 → AI对话
  • 🎉 AI基于REDCap真实数据对话解决LLM幻觉问题
  • 🎉 上下文记忆实现最近3轮对话
  • 🎉 端到端延迟<2秒(超出预期)

技术亮点

  1. 异步Worker架构符合Postgres-Only最佳范式
  2. 企业微信消息加解密(完整实现签名验证和加解密)
  3. 异步回复模式setImmediate 确保5秒内响应
  4. 复用LLMFactory零配置使用DeepSeek-V3
  5. SessionMemory内存存储无需Redis快速实现

参考文档


2026-01-02REDCap环境就绪 + 对接方案确定

完成内容

  • REDCap本地Docker环境部署成功15.8.03容器架构
  • REDCap部署问题排查ERR_CONTENT_DECODING_FAILED、CRLF污染等
  • REDCap管理员登录成功Admin账户验证通过
  • 测试项目创建test0102, PID 16已录入测试数据
  • REDCap源码分析验证DET功能真实存在
  • External Module文档研究(确认不适用于外部系统集成)
  • 对接方案技术选型DET实时触发 + REST API数据读写
  • 架构设计完成:实时触发 + 轮询补充(双保险机制)
  • 《REDCap对接技术方案与实施指南》编写1070行完整文档
  • RedcapAdapter代码设计exportRecords、exportMetadata、importRecords
  • WebhookController代码设计<100ms响应、异步处理、幂等性检查
  • SyncManager代码设计(定时轮询、增量同步)
  • REDCap文档体系建立部署手册、问题排查、API对接等

关键成果

  • 🎉 REDCap本地环境稳定运行(可随时用于开发测试)
  • 🎉 DET功能验证成功REDCap原生支持无需PHP开发
  • 🎉 对接方案100%技术可行(实时性+可靠性双保证)
  • 🎉 完整实施指南已编写可直接进入Day 2开发
  • 🎉 REDCap文档体系完整(部署、对接、排查全覆盖)

技术亮点

  1. DET实时触发0秒延迟CRC保存数据后5秒内完成质控
  2. 双保险机制Webhook + 定时轮询(补充),数据不丢失
  3. 零侵入性只使用REDCap原生API和DET无需修改源码
  4. 生产级架构Docker配置可直接用于ECS/医院环境部署
  5. 完整文档:从部署到开发,全流程文档化

技术决策

  • 不使用External Module需要PHP开发、侵入性强、维护成本高
  • 使用DET + REST APIREDCap原生功能、零代码配置、实时触发
  • 实时触发 + 轮询补充实时性99% + 可靠性100%

部署记录

  • REDCap版本15.8.0
  • 访问地址http://localhost:8080
  • Docker容器redcap-apache、redcap-mysql、redcap-phpmyadmin
  • 测试项目test0102 (PID 16)
  • 部署时长约6小时含问题排查

下一步

  • 🔄 Day 2REDCap API集成开发RedcapAdapter + WebhookController + SyncManager
  • 在Control Center启用DET
  • 生成API Token
  • 实施《REDCap对接技术方案与实施指南》中的Day 2计划

2026-01-01Day 1完成 - 环境初始化

完成内容

  • 数据库Schema创建iit_schema5个表
  • Prisma Schema编写223行类型定义
  • 数据库CRUD验证11/11测试通过
  • 企业微信应用注册和配置
  • 企业微信Access Token获取成功
  • 企业微信网页授权及JS-SDK授权获取
  • 可信域名配置成功iit.xunzhengyixue.com
  • 前端域名验证文件部署v1.2
  • 模块目录结构创建
  • 路由骨架搭建

关键成果

  • 🎉 IIT Manager Agent模块正式启动
  • 🎉 企业微信集成基础完成
  • 🎉 网页授权及JS-SDK授权已获取
  • 🎉 为微信小程序开发铺平道路

技术要点

  1. Prisma Multi-Schema支持成功配置iit_schema
  2. 企业微信API测试Access Token获取验证通过
  3. 域名验证解决Windows换行符问题CRLF→LF
  4. 前端部署SAE部署成功内网地址172.17.173.80

下一步

  • Day 2REDCap API Adapter + SyncManager开发

2025-12-31项目启动

项目背景

  • 基于REDCap的IIT研究者发起试验管理需求
  • 使用企业微信作为移动端入口
  • 采用Shadow State影子状态确保医疗合规性
  • 利用Dify RAG提供智能知识服务

技术选型确认

  • 后端Node.js + Fastify + Prisma + pg-boss
  • 前端微信小程序Taro 4.x
  • 数据源REDCap API
  • 通知:企业微信
  • AIDify RAG

提示本文档反映IIT Manager Agent模块的最新真实状态每个里程碑完成后必须更新
最后更新2026-02-08 22:00
当前进度:事件级质控 V3.1 完成60%| 下一步Phase 3 ReAct 引擎 + 流水账
重要文档