Files
AIclinicalresearch/docs/03-业务模块/IIT Manager Agent/00-模块当前状态与开发指南.md
HaHafeng 0b29fe88b5 feat(iit): QC deep fix + V3.1 architecture plan + project member management
QC System Deep Fix:
- HardRuleEngine: add null tolerance + field availability pre-check (skipped status)
- SkillRunner: baseline data merge for follow-up events + field availability check
- QcReportService: record-level pass rate calculation + accurate LLM XML report
- iitBatchController: legacy log cleanup (eventId=null) + upsert RecordSummary
- seed-iit-qc-rules: null/empty string tolerance + applicableEvents config

V3.1 Architecture Design (docs only, no code changes):
- QC engine V3.1 plan: 5-level data structure (CDISC ODM) + D1-D7 dimensions
- Three-batch implementation strategy (A: foundation, B: bubbling, C: new engines)
- Architecture team review: 4 whitepapers reviewed + feedback doc + 4 critical suggestions
- CRA Agent strategy roadmap + CRA 4-tool explanation doc for clinical experts

Project Member Management:
- Cross-tenant member search and assignment (remove tenant restriction)
- IIT project detail page enhancement with tabbed layout (KB + members)
- IitProjectContext for business-side project selection
- System-KB route access control adjustment for project operators

Frontend:
- AdminLayout sidebar menu restructure
- IitLayout with project context provider
- IitMemberManagePage new component
- Business-side pages adapt to project context

Prisma:
- 2 new migrations (user-project RBAC + is_demo flag)
- Schema updates for project member management

Made-with: Cursor
2026-03-01 15:27:05 +08:00

43 KiB
Raw Blame History

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

文档版本: v3.1
创建日期: 2026-01-01
维护者: IIT Manager开发团队
最后更新: 2026-03-01 质控引擎 V3.1 架构升级计划定稿(五级数据结构 + 多维报告)
重大里程碑:

  • 2026-03-01质控引擎 V3.1 架构设计完成! 五级数据结构CDISC ODM+ D1-D7 多维报告 + 三批次落地计划
  • 2026-03-01架构团队评审完成 采纳 InstanceID/规则分类/状态冒泡/LLM 三不原则,暂缓 SDV/自动映射/GCP 全量报表
  • 2026-02-26前端架构调整完成 运营管理端恢复 IIT 项目管理 + 业务端精简为日常使用 + Web AI 对话页面上线
  • 2026-02-26CRA Agent V3.0 P0+P1 全部完成! 自驱动质控流水线 + ChatOrchestrator + LLM Function Calling + E2E 54/54 通过
  • 2026-02-25QC 系统深度修复null tolerance + baseline merge + record-level pass rate
  • 2026-02-08事件级质控架构 V3.1 完成record+event 独立质控 + 规则动态过滤 + 报告去重)
  • 2026-02-07实时质控系统开发完成pg-boss防抖 + 质控日志 + 录入汇总 + 管理端批量操作)
  • 2026-02-02REDCap 生产环境部署完成ECS + RDS + HTTPS
  • 2026-01-04混合检索架构实现REDCap实时数据 + Dify文档知识库
    文档目的: 反映模块真实状态,记录开发历程
    V3.1 核心文档(质控引擎架构升级):
  • 质控引擎 V3.1 开发计划(唯一开发文档)
  • CRA Agent 质控体系全景技术路径(策略评审稿)
  • 五层数据架构方案评审反馈
  • CRA 四大工具工作原理说明

📋 文档说明

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

与其他文档的关系

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

🎯 模块概述

核心定位V3.0 更新)

CRA Agent 是一个替代 CRA 岗位的自主 AI Agent,而非辅助 CRA 的工具。目标是用 AI 替代临床监查员 70-80% 的工作量,让 IIT 项目在无专职 CRA 的情况下也能达到合规的质控水平。主要用户为 PI主要研究者/ 研究团队。

架构设计V3.0

  • 核心理念:报告驱动 + LLM Tool Use + 统一驾驶舱
  • 两层架构
    • 自驱动层:定时质控 → 生成报告 → 派发 eQuery → 推送告警Agent 自主"上班"
    • 对话层ChatOrchestrator + LLM 原生 Function Calling + 4 个语义化工具
  • 4 语义化工具look_up_data / check_quality / read_report / search_knowledge
  • 已废弃V2.9.1:双脑架构、三层记忆系统、手写 ReAct 引擎、关键词意图路由
  • 技术栈
    • 后端Node.js (Fastify) + PostgreSQL (Prisma) + pg-boss
    • 前端管理端React + Ant Design + 企业微信推送
    • 数据源REDCap (EDC系统)
    • 通知:企业微信
    • AI能力DeepSeek/Qwen + 自研 RAGpgvector+ LLM Tool Use

当前状态

  • 开发阶段V3.0 P0 + P1 已完成 → 正在规划 V3.1 质控引擎架构升级
  • V3.0 已完成
    • P0 自驱动质控流水线 + P1 对话层 Tool Use 改造 + E2E 54/54 通过
    • QC 系统深度修复null tolerance + baseline merge + record-level pass rate + LLM 报告修正)
    • 前端架构调整(运营管理端 + 业务端 + Web AI 对话)
    • 项目成员管理(跨租户添加成员 + 项目知识库)
    • CRA 四大工具工作原理文档输出
  • V3.1 规划中(质控引擎架构升级):
    • 核心升级:三级数据结构 → CDISC ODM 五级结构Record → Event → Form → Instance → Field
    • 报告维度:从单一通过率 → D1-D7 七维质控报告(入排/完整性/准确性/Query/安全性/方案偏离/药物管理)
    • 触发模式:手动 + 定时 Cron + REDCap DET 实时触发
    • 关键机制:状态冒泡 + eQuery 自动闭环 + Record-Level Context + Event-Aware 完整性
    • 落地策略三批次落地A 数据地基 → B 聚合冒泡 → C 新维度引擎)
    • 开发计划文档质控引擎 V3.1 开发计划
  • 产品定位明确:运营团队配置项目(白手套服务) → 终端用户使用质控平台
  • 代码规模:后端 ~14,000+ 行 / 20 张表iit_schema

已完成功能(基础设施)

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

已完成功能P0 自驱动质控流水线 - 2026-02-26

  • 变量清单导入REDCap Data Dictionary → iit_field_metadata
  • 规则配置增强4 类规则 + AI 辅助建议 + 变量关联)
  • 定时质控调度pg-boss cron + DailyQcOrchestrator
  • eQuery 闭环open → responded → ai_reviewing → resolved/reopened
  • 重大事件归档SAE + 方案偏离自动归档 iit_critical_events
  • 统一驾驶舱(健康分 + 趋势图 + 风险热力图 + 核心指标卡片)
  • AI Stream TimelineAgent 工作时间线可视化)
  • P0 E2E 测试 46/46 通过

已完成功能P1 对话层 Tool Use 改造 - 2026-02-26

  • LLM Adapter Function Callingtypes.ts + DeepSeekAdapter + CloseAIAdapter
  • 4 语义化工具read_report / look_up_data / check_quality / search_knowledge
  • ChatOrchestrator(轻量 ReActmax 3 轮 Function Calling loop~160 行)
  • ChatService 废弃1,442 行 → ChatService.deprecated.ts
  • WechatCallbackController 接线(入口切换为 ChatOrchestrator
  • P1 E2E 测试 8/8 通过8 个真实对话场景 + DeepSeek API

已完成功能(前端架构调整 - 2026-02-26

  • 运营管理端 IIT 项目管理恢复App.tsx 路由接线 + AdminLayout 侧边栏菜单)
  • 业务端精简为日常使用(去掉项目设置/变量清单入口,只保留 5 个页面)
  • Web AI 对话页面AiChatPage.tsx + POST /api/v1/iit/chat 后端端点)
  • 产品分层明确
    • 运营管理端(/admin/iit-projects)→ 运营团队:创建项目、配置 REDCap、设规则
    • 业务端(/iit/)→ PI/CRC驾驶舱、报告、AI 工作流水、AI 对话、eQuery

已完成功能QC 系统深度修复 + 架构评审 - 2026-02-25 ~ 03-01

  • QC 规则修复seed-iit-qc-rules.tsnull/空字符串容忍 + applicableEvents 配置)
  • HardRuleEngine 增强(字段可用性预检查 + skipped 状态)
  • SkillRunner 基线数据合并(随访事件自动合并基线数据)
  • QcReportService 修正Record-Level 通过率计算 + LLM XML 报告准确性)
  • 批量质控修复iitBatchControllerlegacy log 清理 + upsert RecordSummary
  • CRA 四大工具原理文档(面向临床专家的工具工作原理说明文档)
  • 质控引擎 V3.1 架构设计(五级数据结构 + D1-D7 维度 + 三批次落地计划)
  • 架构团队评审完成4 份白皮书评审 + 评审反馈文档 + 4 条关键落地建议采纳)
  • V3.0 → V3.1 计划迁移V3.1 为唯一开发文档V3.0 存档供参考)

已完成功能(实时质控系统 - 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 错误 + 记录数统计 + 报告限制移除)

V3.0 开发计划(已完成)

详见:CRA Agent V3.0 开发计划

阶段 内容 状态
P0-1 ChatOrchestrator + ToolsService 重构 已完成
P0-2 read_report + search_knowledge 实现 已完成
P0-3 定时质控 + 报告生成 + eQuery 闭环 已完成
P0-4 统一质控驾驶舱 已完成
P1 对话层 Tool Use + E2E 测试 54/54 已完成

QC 系统深度修复2026-02-25

修复项 说明
Null Tolerance 质控规则增加 null/空字符串容忍,未填数据不再误判为 FAIL
Baseline Data Merge SkillRunner 合并基线事件数据,解决随访期规则缺字段问题
Record-Level Pass Rate QcReportService 改为按受试者最严重状态计算通过率
Legacy Log Cleanup 批量质控前清理 eventId 为 null 的历史脏数据
LLM 报告修正 XML 报告准确反映真实质控结果(从 0% → 92.9%

V3.1 质控引擎架构升级(规划中)

详见:质控引擎 V3.1 开发计划(唯一开发文档)

批次 内容 预估 状态
Batch A 数据地基(五级状态表 DDL + QcExecutor + InstanceID 标准化 + D1/D3 迁移) ~5 天 待开始
Batch B 聚合冒泡(状态冒泡 + 多维报告 + Cron 灵活配置 + 驾驶舱升级) ~5 天 待开始(依赖 A
Batch C 新维度引擎D2 完整性 + D5 安全性 + D6 方案偏离 + 沙盒测试) ~5 天 待开始(依赖 B + 临床专家确认)
P2 长期可选PII 脱敏 / SDV 视觉核对 / AutoMapper / 数据响应质量评级) - 待开始

P0 合计:约 9.5 天 / P0+P1 合计:约 13.5 天1 人)


📊 一、当前开发进度

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 → 企业微信)

下一步任务V3.0

  • P0-1ChatOrchestrator + ToolsService 重构LLM Tool Use + 4 语义化工具)
  • P0-2read_report + search_knowledge 工具实现
  • P0-3定时质控 + 报告生成 + eQuery 闭环
  • P0-4统一质控驾驶舱AI Stream + eQuery 管理)

已废弃的旧计划任务

  • Phase 3ReAct 引擎 → 改用 LLM 原生 Tool Use
  • Phase 5IntentService → LLM 自行选择工具
  • 微信小程序前端 → 管理端 Web 前端 + 企微推送

🗄️ 二、数据库Schema

2.1 Schema信息

  • Schema名称iit_schema
  • 数据库ai_clinical_researchRDS PostgreSQL 15
  • 创建时间2025-12-31
  • 表数量18 个(原始 5 个 + 质控 4 个 + 规则/技能 4 个 + 知识库/会话/字段元数据 5 个)
  • 验证状态 已创建并验证

2.2 核心表结构

表名 用途 类别
IitProject 项目配置REDCap 连接 + 规则 + 知识库) 基础
IitPendingAction 影子状态(待审核动作) 基础
IitTaskRun 任务运行记录 基础
IitUserMapping 跨系统用户映射 基础
IitAuditLog 审计日志 基础
iit_qc_logs 质控日志(单条质控问题记录) 质控
iit_record_summary 患者录入汇总 质控
iit_qc_project_stats 项目级质控统计 质控
iit_field_metadata REDCap 字段元数据缓存 质控
iit_qc_rules 质控规则定义 规则
iit_qc_skills 质控技能定义 规则
iit_qc_rule_skill 规则-技能关联 规则
iit_qc_skill_triggers 技能触发器 规则
iit_chat_sessions 对话会话 会话
iit_chat_messages 对话消息 会话
iit_knowledge_bases 知识库 知识
iit_knowledge_documents 知识库文档 知识
iit_qc_reportsV3.0 新增) 质控报告归档 报告

2.3 Prisma Schema位置

AIclinicalresearch/backend/prisma/schema.prisma

IIT Manager Schema定义~350 行类型定义):

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

🔧 三、技术架构

3.1 后端技术栈

核心框架

  • Node.jsv22.x
  • Web框架Fastify
  • ORMPrisma 6.17.0多Schema支持
  • 任务队列pg-bossPostgres-Only架构
  • AI能力LLM Tool Use (DeepSeek/Qwen) + 自研 RAG (pgvector)

模块结构61 个文件,~15,000+ 行):

backend/src/modules/iit-manager/
├── index.ts                  ✅ 主入口
├── types/index.ts            ✅ 类型定义
├── routes/                   ✅ 路由5+ 个路由文件)
├── controllers/              ✅ 控制器Webhook/QcCockpit/Admin
├── services/
│   ├── ChatService.ts        ✅ 1442行V3.0 将重构为 ChatOrchestrator
│   ├── ToolsService.ts       ✅ 731行V3.0 重构为 4 语义化工具)
│   ├── HardRuleEngine.ts     ✅ 478行JSON-logic 硬规则)
│   ├── SoftRuleEngine.ts     ✅ 488行LLM 软规则)
│   ├── SkillRunner.ts        ✅ 756行质控技能编排
│   ├── QcReportService.ts    ✅ 980行报告生成
│   ├── QcService.ts          ✅ 质控查询服务
│   ├── RedcapCacheService.ts ✅ REDCap 缓存
│   ├── KnowledgeBaseService.ts ✅ 知识库服务
│   └── ...
├── adapters/
│   └── RedcapAdapter.ts      ✅ 1363行REDCap API 适配器)
└── workers/                  ✅ pg-boss Worker质控/同步)

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/
├── services/ChatService.ts           1442行对话服务V3.0 待重构)
├── adapters/RedcapAdapter.ts         1363行REDCap API 适配器)
├── services/QcReportService.ts        980行质控报告生成
├── services/SkillRunner.ts            756行技能编排器
├── services/ToolsService.ts           731行工具服务V3.0 待重构)
├── services/SoftRuleEngine.ts         488行LLM 软规则)
├── services/HardRuleEngine.ts         478行JSON-logic 硬规则)
├── controllers/WebhookController.ts   500+行REDCap/企微回调)
└── ... (61 files total)

代码统计

  • 后端代码~15,000+ 行 / 61 个文件
  • 数据库表18 张iit_schema
  • Prisma Schema~350 行类型定义

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获取成功


🎯 八、下一步工作V3.0 开发)

8.1 V3.0 首要目标

核心目标:将 ChatService 关键词路由重构为 LLM 原生 Tool Use 架构

即将开始P0-1 ChatOrchestrator + ToolsService 重构2 天)

核心交付物

  • ChatOrchestrator替代 ChatService~300 行LLM Tool Use 循环)
  • ToolsService 重构6 个细粒度工具 → 4 个语义化工具)
  • System Prompt嵌入工具选择策略
  • 端到端测试(对话 → LLM 选工具 → 执行 → 返回结果)

详细计划CRA Agent V3.0 开发计划

8.2 V3.0 产品三原则

  1. AI 替代Agent 自驱执行质控全流程,用户仅做确认
  2. AI 白盒化AI Stream 时间线透明展示推理与操作过程
  3. 统一视角:去角色化,单一平台所有用户可下钻查看

8.3 关键注意事项

架构决策

  • 报告优先工具兜底read_report 为主入口80% 问答通过报告回答)
  • LLM 原生 Tool Use不手写 ReAct 循环
  • 4 个粗粒度语义化工具look_up_data / check_quality / read_report / search_knowledge
  • pg-boss cron 定时触发(替代自建 SchedulerService

技术参考


📚 九、相关文档索引

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-25
当前进度V3.0 开发计划已定稿 | 下一步P0-1 ChatOrchestrator + ToolsService 重构
核心文档