feat(iit): Implement event-level QC architecture V3.1 with dynamic rule filtering, report deduplication and AI intent enhancement
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
# **LLM 交互协议与 Prompt 最佳实践指南**
|
||||
|
||||
**文档目的:** 定义“质控报告”的标准上下文格式,并提供配套的 System Prompt,以消除幻觉、确保回复准确性。
|
||||
|
||||
**适用版本:** IIT Manager Agent V2.9.1
|
||||
|
||||
**创建日期:** 2026-02-08
|
||||
|
||||
## **🧠 一、 核心原理:为什么“混合格式”能防幻觉?**
|
||||
|
||||
我们将数据格式定义为 **Context Protocol v2.0**,采用 **XML 骨架 \+ Markdown 血肉** 的形式。
|
||||
|
||||
### **1.1 格式对比**
|
||||
|
||||
| 格式 | 示例 | LLM 视角的优缺点 |
|
||||
| :---- | :---- | :---- |
|
||||
| **纯 JSON** | {"age": 45, "error": true} | ❌ **缺点**:Token 消耗大,括号层级深时 LLM 容易“晕”,注意力机制容易分散。 |
|
||||
| **纯 Markdown** | \*\*Age\*\*: 45 (Error) | ❌ **缺点**:边界不清晰,多条记录容易混在一起,导致“张冠李戴”。 |
|
||||
| **混合模式 (推荐)** | \<record id="1"\>- Age: \*\*45\*\*\</record\> | ✅ **优点**:XML \<tag\> 明确告诉 LLM “这是独立的一条记录”,Markdown \*\* 告诉 LLM “这是重点”。 |
|
||||
|
||||
### **1.2 防幻觉的三道防线**
|
||||
|
||||
1. **防线一:证据注入 (Evidence Injection)**
|
||||
* **以前**:只给 Age Error。LLM 被问“多少岁”时,只能瞎编。
|
||||
* **现在**:给 Age Error (Current: 45, Range: 25-35)。LLM 看到了 45,直接引用,无需生成。
|
||||
2. **防线二:预计算 (Pre-computation)**
|
||||
* **以前**:给 DOB: 1980,让 LLM 算年龄。LLM 数学不好,可能算错。
|
||||
* **现在**:Node.js 算好 Age: 46,直接喂给 LLM。LLM 只负责读,不负责算。
|
||||
3. **防线三:结构化边界 (XML Boundaries)**
|
||||
* **以前**:平铺文本。LLM 可能把 A 病人的合并用药安到 B 病人头上。
|
||||
* **现在**:\<record id="A"\>...\</record\>。强制物理隔离,杜绝串行。
|
||||
|
||||
## **📝 二、 Context Protocol v2.0 标准格式**
|
||||
|
||||
这是后端 ReportGenerator 需要生成的最终字符串格式。
|
||||
|
||||
\<qc\_context project="test0102" generated\_at="2026-02-08"\>
|
||||
|
||||
\<\!-- 1\. 规则定义 (让 LLM 知道判罚标准) \--\>
|
||||
\<rule\_definitions\>
|
||||
\<rule id="R\_AGE"\>入排标准 I-01: 年龄应在 25-35 岁之间\</rule\>
|
||||
\<rule id="R\_ICF"\>伦理合规 E-01: 必须签署知情同意书\</rule\>
|
||||
\</rule\_definitions\>
|
||||
|
||||
\<\!-- 2\. 严重问题清单 (按受试者分组) \--\>
|
||||
\<critical\_issues\>
|
||||
|
||||
\<subject id="1"\>
|
||||
\<summary\>存在 2 个严重违规\</summary\>
|
||||
\<issues\>
|
||||
1\. \[R\_AGE\] \*\*年龄超标\*\*
|
||||
\- 现状: 当前年龄 \*\*45岁\*\*
|
||||
\- 标准: 25-35岁
|
||||
\- 证据: \`birth\_date\` \= 1981-05-12
|
||||
2\. \[R\_ICF\] \*\*知情同意缺失\*\*
|
||||
\- 现状: 字段为空
|
||||
\- 证据: \`icf\_date\` \= null
|
||||
\</issues\>
|
||||
\</subject\>
|
||||
|
||||
\<subject id="10"\>
|
||||
\<summary\>存在 1 个严重违规\</summary\>
|
||||
\<issues\>
|
||||
1\. \[R\_AGE\] \*\*年龄超标\*\*
|
||||
\- 现状: 当前年龄 \*\*52岁\*\*
|
||||
\- 证据: \`birth\_date\` \= 1974-02-01
|
||||
\</issues\>
|
||||
\</subject\>
|
||||
|
||||
\</critical\_issues\>
|
||||
|
||||
\</qc\_context\>
|
||||
|
||||
## **🗣️ 三、 配套 Prompt 设计 (System Prompt)**
|
||||
|
||||
仅有好的数据格式是不够的,必须用 Prompt 教会 LLM 如何阅读这个格式。
|
||||
|
||||
### **3.1 CRA 监查员 System Prompt**
|
||||
|
||||
\# Role
|
||||
你是一名资深的临床监查员 (CRA)。你的任务是根据提供的【质控报告上下文】回答用户关于项目质量、违规情况的问题。
|
||||
|
||||
\# Input Format
|
||||
你收到的上下文将包含在 \`\<qc\_context\>\` XML 标签中。
|
||||
\- \`\<rule\_definitions\>\`: 定义了项目的质控规则。
|
||||
\- \`\<critical\_issues\>\`: 列出了具体的违规记录,按受试者 (\`\<subject\>\`) 分组。
|
||||
|
||||
\# Constraints (绝对准则)
|
||||
1\. \*\*基于证据\*\*:回答必须严格基于 \`\<issues\>\` 中的数据。如果上下文中没有提到某条记录或某个数值,\*\*必须直接说“报告中未包含相关信息”\*\*,严禁编造数值。
|
||||
2\. \*\*引用原文\*\*:在解释违规原因时,必须引用上下文中的 "证据" (Evidence) 字段(例如:“因为患者当前年龄为 45 岁...”)。
|
||||
3\. \*\*结构化输出\*\*:回答多个受试者问题时,请使用 Markdown 列表。
|
||||
4\. \*\*语气专业\*\*:保持客观、冷静的医疗专业语气。
|
||||
|
||||
\# Example
|
||||
User: "1号病人有什么问题?"
|
||||
Assistant: "1号受试者存在 \*\*2个严重违规\*\*:
|
||||
1\. \*\*年龄超标\*\*:患者当前 \*\*45岁\*\*,不符合“25-35岁”的入排标准 (R\_AGE)。
|
||||
2\. \*\*伦理缺失\*\*:未检测到知情同意书签署日期 (\`icf\_date\` 为空)。
|
||||
建议立即核查原始病历或剔除该病例。"
|
||||
|
||||
## **🔬 四、 验证与测试 (Evaluation)**
|
||||
|
||||
### **4.1 幻觉压力测试**
|
||||
|
||||
**测试用例 A:询问不存在的数值**
|
||||
|
||||
* **Prompt**: "1号病人的血压是多少?"
|
||||
* **Context**: (上下文中只有年龄和ICF问题,没有血压数据)
|
||||
* **预期回答**: "报告中未包含1号受试者的血压数据。当前仅记录了年龄和知情同意书相关的违规信息。"
|
||||
* **失败回答 (幻觉)**: "1号病人的血压是 120/80 mmHg。" (如果 LLM 只有 Message 没有 Evidence,容易顺口胡编一个正常值)
|
||||
|
||||
**测试用例 B:询问违规原因**
|
||||
|
||||
* **Prompt**: "为什么10号病人年龄违规?"
|
||||
* **Context**: \<subject id="10"\>...当前年龄 \*\*52岁\*\*...\</subject\>
|
||||
* **预期回答**: "因为10号受试者当前年龄为 **52岁**,超出了研究方案规定的 25-35 岁范围。"
|
||||
|
||||
### **4.2 结论**
|
||||
|
||||
通过 **"XML 结构化 \+ 证据注入 \+ 严格约束 Prompt"** 三位一体的方案,我们可以将幻觉率控制在 **极低水平 (\< 1%)**。
|
||||
|
||||
AI 在这里不再是“创造者”,而是精准的“阅读理解者”。
|
||||
107
docs/03-业务模块/IIT Manager Agent/05-测试文档/LLM 友好型质控报告评估与优化方案 V2.md
Normal file
107
docs/03-业务模块/IIT Manager Agent/05-测试文档/LLM 友好型质控报告评估与优化方案 V2.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# **LLM 友好型质控报告评估与优化方案**
|
||||
|
||||
**文档版本:** v2.1 (基于团队反馈优化)
|
||||
|
||||
**评估对象:** qc-report-test0102-pd-study-2026-02-08.xml
|
||||
|
||||
**评估日期:** 2026-02-08
|
||||
|
||||
## **🚀 一、 核心共识:Context Protocol v2.1**
|
||||
|
||||
经过团队讨论,确定采用 **“XML 容器 \+ Markdown 内容”** 的混合模式,并支持 **双格式输出** 以满足不同场景。
|
||||
|
||||
### **1.1 双格式策略 (Dual Format Strategy)**
|
||||
|
||||
后端 QcService 应支持 format 参数:
|
||||
|
||||
* **format=json (Default)**: 面向 **前端 UI**。结构化强,用于渲染热力图、表格。
|
||||
* **format=llm-friendly**: 面向 **LLM Context**。Token 密度高,语义清晰,包含“证据”。
|
||||
|
||||
### **1.2 理想的 LLM Context 结构 (V2.1)**
|
||||
|
||||
**设计原则**:
|
||||
|
||||
1. **去重**:不再单独列出 rule\_definitions,要求每条 issue **自包含**(同时包含现状与标准)。
|
||||
2. **聚合**:按 Record ID 分组。
|
||||
3. **压缩**:使用 Markdown 列表替代冗余的 XML 标签。
|
||||
|
||||
\<qc\_context project\_id="test0102" generated="2026-02-08"\>
|
||||
|
||||
\<\!-- 1\. 宏观统计 (Aggregate) \--\>
|
||||
\<summary\>
|
||||
\- 状态: 13/13 记录存在严重违规 (100% Fail)
|
||||
\- Top 3 问题:
|
||||
1\. 年龄超标 (13人)
|
||||
2\. 未签知情同意书 (13人)
|
||||
3\. 疼痛评分不达标 (13人)
|
||||
\</summary\>
|
||||
|
||||
\<\!-- 2\. 问题详情 (Markdown List in XML) \--\>
|
||||
\<details\>
|
||||
|
||||
\<record id="1"\>
|
||||
\*\*严重违规 (5项)\*\*:
|
||||
1\. \[R\_AGE\] \*\*年龄超标\*\*: 当前 \*\*45岁\*\* (标准: 25-35岁)。
|
||||
2\. \[R\_ICF\] \*\*伦理缺失\*\*: \`informed\_consent\` 为空 (必须签署)。
|
||||
3\. \[R\_VAS\] \*\*入排不符\*\*: VAS评分 \*\*2分\*\* (要求 \>= 4分)。
|
||||
\</record\>
|
||||
|
||||
\<record id="10"\>
|
||||
\*\*严重违规 (5项)\*\*:
|
||||
1\. \[R\_AGE\] \*\*年龄超标\*\*: 当前 \*\*52岁\*\* (标准: 25-35岁)。
|
||||
\<\!-- 其他同上 \--\>
|
||||
\</record\>
|
||||
|
||||
\</details\>
|
||||
|
||||
\</qc\_context\>
|
||||
|
||||
## **🛠️ 二、 实施建议 (Action Items)**
|
||||
|
||||
### **2.1 后端改造:让报错信息“自包含”**
|
||||
|
||||
这是消除 rule\_definitions 依赖的关键。我们需要在生成 Issue 时,就把标准塞进去。
|
||||
|
||||
* **Before (HardRuleEngine)**:
|
||||
return { message: "年龄不在范围内" }
|
||||
|
||||
* **After (HardRuleEngine)**:
|
||||
// 动态拼接模板
|
||||
return {
|
||||
message: \`当前 \*\*${actualValue}\*\* (标准: ${rule.min}-${rule.max})\`,
|
||||
structured\_evidence: { value: actualValue, range: \[25, 35\] }
|
||||
}
|
||||
|
||||
### **2.2 System Prompt 增强 (V2.1)**
|
||||
|
||||
参考团队建议,强化“证据引用”指令。
|
||||
|
||||
\# Role
|
||||
你是一名资深的临床监查员 (CRA)。
|
||||
|
||||
\# Input Format
|
||||
你收到的 \`\<qc\_context\>\` 包含了项目的质控报告。
|
||||
\- \`\<details\>\` 区域按受试者列出了具体违规项。
|
||||
\- 每一行违规项都包含了 \*\*\[规则ID\]\*\*、\*\*错误类型\*\*、\*\*现状值\*\* 和 \*\*标准值\*\*。
|
||||
|
||||
\# Critical Instructions (思维链约束)
|
||||
在回答用户问题时,你必须遵循以下步骤:
|
||||
1\. \*\*定位 (Locate)\*\*: 找到用户询问的 \`\<record\>\`。
|
||||
2\. \*\*提取 (Extract)\*\*: 读取具体的报错行。
|
||||
3\. \*\*引用 (Cite)\*\*: 在回答中明确引用现状值和标准值。
|
||||
\- ✅ 正确: "1号患者年龄违规,因为他当前 \*\*45岁\*\*,而方案要求 \*\*25-35岁\*\*。"
|
||||
\- ❌ 错误: "1号患者年龄不对。" (太模糊)
|
||||
\- ❌ 错误: "1号患者年龄违规,请检查。" (无证据)
|
||||
4\. \*\*诚实 (Grounding)\*\*: 如果报告里没写的数值(比如血压),绝对不要编造,直接回答“报告未提及”。
|
||||
|
||||
\# Example
|
||||
User: "10号病人有什么大问题?"
|
||||
Assistant: "10号病人有 \*\*5项严重违规\*\*。最主要的是 \*\*年龄超标\*\*,他当前 \*\*52岁\*\*,远超出了 \*\*25-35岁\*\* 的入排标准。此外还存在伦理知情同意书缺失的问题。"
|
||||
|
||||
## **📊 三、 收益预估**
|
||||
|
||||
1. **Token 节省**:相比 V1.0 XML,V2.1 混合格式预计节省 **40%-60%** 的 Token(去掉了大量的 \<issue\>, \<field\>, \<message\> 标签)。
|
||||
2. **幻觉消除**:通过“自包含”设计,LLM 不需要跨段落去查找规则定义,所有信息都在一行内,上下文注意力极其集中。
|
||||
3. **开发解耦**:前端用 JSON 渲染界面,LLM 用 Text 文本推理,互不干扰。
|
||||
|
||||
**结论:** 团队的建议非常棒。V2.1 方案已采纳 **混合格式** \+ **自包含报错** \+ **引用增强 Prompt**,这是目前最优的工程解法。
|
||||
120
docs/03-业务模块/IIT Manager Agent/05-测试文档/LLM 友好型质控报告评估与优化方案.md
Normal file
120
docs/03-业务模块/IIT Manager Agent/05-测试文档/LLM 友好型质控报告评估与优化方案.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# **LLM 友好型质控报告评估与优化方案**
|
||||
|
||||
**评估对象:** qc-report-test0102-pd-study-2026-02-08.xml
|
||||
|
||||
**评估目的:** 确定该格式是否适合作为 Context 喂给 LLM 以回答用户提问。
|
||||
|
||||
**评估日期:** 2026-02-08
|
||||
|
||||
## **📊 一、 现状评估 (Current State Analysis)**
|
||||
|
||||
### **1\. 评分卡**
|
||||
|
||||
| 维度 | 评分 (1-10) | 评价 |
|
||||
| :---- | :---- | :---- |
|
||||
| **结构化程度** | 9/10 | XML 结构清晰,解析容易。 |
|
||||
| **Token 效率** | 3/10 | **极差**。重复信息太多(如 rule\_name 重复 64 次)。 |
|
||||
| **信息完整性** | 4/10 | **缺失核心证据**。只说了“错”,没说“值为多少”。 |
|
||||
| **语义清晰度** | 5/10 | rule="unknown" 对 AI 毫无帮助,缺乏语义标签。 |
|
||||
|
||||
### **2\. 核心缺陷分析**
|
||||
|
||||
#### **❌ 缺陷 1:缺乏“原始值” (The "Evidence Gap")**
|
||||
|
||||
* **现状**:
|
||||
\<message\>年龄不在 25-35 岁范围内\</message\>
|
||||
\<field\>age\</field\>
|
||||
|
||||
* **LLM 的困惑**:"我知道年龄不对,但这个病人到底几岁?是 24 岁(轻微偏差)还是 80 岁(严重偏差)?用户如果问我‘为什么报错’,我只能复读 Message,无法解释原因。"
|
||||
|
||||
#### **❌ 缺陷 2:Token 冗余 (The "Echo Chamber")**
|
||||
|
||||
* **现状**:
|
||||
13 条记录都有“年龄”问题,rule\_name 和 message 重复了 13 次。
|
||||
* **LLM 的困惑**:"为什么要让我读 13 遍同样的一句话?这浪费了宝贵的上下文窗口。"
|
||||
|
||||
#### **❌ 缺陷 3:逻辑扁平 (Lack of Hierarchy)**
|
||||
|
||||
* **现状**:
|
||||
所有问题平铺在 \<critical\_issues\> 下,没有按 Record ID 聚合。
|
||||
* **LLM 的困惑**:"如果用户问‘001号病人有哪些问题?’,我得遍历整个列表去挑出 record=1 的项,容易看漏。"
|
||||
|
||||
## **🚀 二、 优化方案:Context Protocol v2.0**
|
||||
|
||||
根据我们的 **CRA Agent 深度设计**,我们需要将报告重构为 **“以实体为中心,以证据为支撑”** 的结构。
|
||||
|
||||
### **2.1 理想的 Context 结构 (Gold Standard)**
|
||||
|
||||
建议采用 **混合模式**:XML 定义边界,Markdown 描述详情。
|
||||
|
||||
\<qc\_context project\_id="test0102" generated="2026-02-08"\>
|
||||
|
||||
\<\!-- 1\. 宏观统计 (Aggregate) \--\>
|
||||
\<overview\>
|
||||
\- 总记录数: 13 | ❌ 严重违规: 13人 (100%)
|
||||
\- 主要问题: 年龄超标 (13), 未签知情同意书 (13), 疼痛评分不达标 (13)
|
||||
\</overview\>
|
||||
|
||||
\<\!-- 2\. 规则定义 (Reference) \- 只定义一次,省 Token \--\>
|
||||
\<rule\_definitions\>
|
||||
\<rule id="R\_AGE" tag="\#demographics"\>年龄应在 25-35 岁之间\</rule\>
|
||||
\<rule id="R\_ICF" tag="\#ethics"\>必须签署知情同意书\</rule\>
|
||||
\</rule\_definitions\>
|
||||
|
||||
\<\!-- 3\. 问题详情 (Grouped by Record) \--\>
|
||||
\<issues\_list\>
|
||||
|
||||
\<record id="1" status="CRITICAL"\>
|
||||
\<summary\>存在 5 个严重违规\</summary\>
|
||||
\<details\>
|
||||
\- \[R\_AGE\] ❌ \*\*年龄违规\*\*: 当前值 \`45\` (不在 25-35 范围内)。
|
||||
\- \[R\_ICF\] ❌ \*\*伦理违规\*\*: \`informed\_consent\` 为空。
|
||||
\- \[R\_VAS\] ❌ \*\*入排不符\*\*: VAS评分 \`2\` (要求 \>= 4)。
|
||||
\</details\>
|
||||
\</record\>
|
||||
|
||||
\<record id="10" status="CRITICAL"\>
|
||||
\<summary\>存在 5 个严重违规\</summary\>
|
||||
\<details\>
|
||||
\- \[R\_AGE\] ❌ \*\*年龄违规\*\*: 当前值 \`52\`。
|
||||
\<\!-- 省略重复描述,仅列出差异或关键点 \--\>
|
||||
\</details\>
|
||||
\</record\>
|
||||
|
||||
\</issues\_list\>
|
||||
|
||||
\</qc\_context\>
|
||||
|
||||
## **🛠️ 三、 实施建议 (Action Items)**
|
||||
|
||||
### **3.1 后端代码调整 (QcService / ReportGenerator)**
|
||||
|
||||
你需要修改生成 XML 的逻辑,不仅要查 iit\_qc\_logs,还要关联 **原始数据**。
|
||||
|
||||
1. **补充 value 字段**:
|
||||
在存入 iit\_qc\_logs 时,或者在生成报告时,必须把触发报错的 **具体数值** 写进去。
|
||||
* *Bad:* { "message": "Age error" }
|
||||
* *Good:* { "message": "Age error", "evidence": { "value": 45, "threshold": "25-35" } }
|
||||
2. **补充 rule\_id 和 tag**:
|
||||
目前的 rule="unknown" 是不可接受的。
|
||||
* 在 HardRuleEngine 里,每条规则必须有一个唯一的 code (例如 AGE\_CHECK)。
|
||||
* 在 iit\_skills 配置中,关联 Tags。
|
||||
3. **按受试者聚合 (Group By Record)**:
|
||||
不要输出扁平的 List,要输出 Map:Map\<RecordId, Issues\[\]\>。
|
||||
|
||||
### **3.2 优化后的 LLM 交互流程**
|
||||
|
||||
当用户问:“**为什么 1 号病人不合格?**”
|
||||
|
||||
* **旧 XML**:LLM 看到 "年龄不在范围内",只能回答“因为年龄不对”。
|
||||
* **新 XML**:LLM 看到 当前值 45 (要求 25-35),可以回答:
|
||||
“1号病人不合格主要有 3 个原因:
|
||||
1. **年龄不符**:患者 **45岁**,超出了研究要求的 25-35 岁范围。
|
||||
2. **疼痛评分不足**:VAS 评分为 **2分**,未达到入组要求的 4分。
|
||||
3. **伦理缺失**:系统中未查询到知情同意书签署记录。”
|
||||
|
||||
### **3.3 总结**
|
||||
|
||||
**现有报告是给程序员调试用的,不是给 LLM 用的。**
|
||||
|
||||
请按照 **Context Protocol** 规范,增加 **Evidence (原始值)**,增加 **Grouping (聚合)**,并消除冗余文本。
|
||||
@@ -0,0 +1,320 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<qc_report project_id="test0102-pd-study" project_name="test0207" generated="2026-02-08T08:14:32.847Z">
|
||||
|
||||
<summary>
|
||||
<total_records>13</total_records>
|
||||
<completed_records>0</completed_records>
|
||||
<critical_issues>64</critical_issues>
|
||||
<warning_issues>0</warning_issues>
|
||||
<pending_queries>0</pending_queries>
|
||||
<pass_rate>0%</pass_rate>
|
||||
<last_qc_time>2026-02-08T05:30:56.082Z</last_qc_time>
|
||||
</summary>
|
||||
|
||||
<critical_issues count="64">
|
||||
<issue record="1" rule="unknown" severity="critical">
|
||||
<rule_name>年龄不在 25-35 岁范围内</rule_name>
|
||||
<message>年龄不在 25-35 岁范围内</message>
|
||||
<field>age</field>
|
||||
<detected_at>2026-02-08T05:30:55.980Z</detected_at>
|
||||
</issue>
|
||||
<issue record="1" rule="unknown" severity="critical">
|
||||
<rule_name>出生日期不在 1989-01-01 至 2008-01-01 范围内</rule_name>
|
||||
<message>出生日期不在 1989-01-01 至 2008-01-01 范围内</message>
|
||||
<field>birth_date</field>
|
||||
<detected_at>2026-02-08T05:30:55.980Z</detected_at>
|
||||
</issue>
|
||||
<issue record="1" rule="unknown" severity="critical">
|
||||
<rule_name>月经周期不在 21-35 天范围内(28±7天)</rule_name>
|
||||
<message>月经周期不在 21-35 天范围内(28±7天)</message>
|
||||
<field>menstrual_cycle</field>
|
||||
<detected_at>2026-02-08T05:30:55.980Z</detected_at>
|
||||
</issue>
|
||||
<issue record="1" rule="unknown" severity="critical">
|
||||
<rule_name>VAS 疼痛评分 < 4 分,不符合入组条件</rule_name>
|
||||
<message>VAS 疼痛评分 < 4 分,不符合入组条件</message>
|
||||
<field>vas_score</field>
|
||||
<detected_at>2026-02-08T05:30:55.980Z</detected_at>
|
||||
</issue>
|
||||
<issue record="1" rule="unknown" severity="critical">
|
||||
<rule_name>未签署知情同意书</rule_name>
|
||||
<message>未签署知情同意书</message>
|
||||
<field>informed_consent</field>
|
||||
<detected_at>2026-02-08T05:30:55.980Z</detected_at>
|
||||
</issue>
|
||||
<issue record="10" rule="unknown" severity="critical">
|
||||
<rule_name>年龄不在 25-35 岁范围内</rule_name>
|
||||
<message>年龄不在 25-35 岁范围内</message>
|
||||
<field>age</field>
|
||||
<detected_at>2026-02-08T05:30:56.060Z</detected_at>
|
||||
</issue>
|
||||
<issue record="10" rule="unknown" severity="critical">
|
||||
<rule_name>出生日期不在 1989-01-01 至 2008-01-01 范围内</rule_name>
|
||||
<message>出生日期不在 1989-01-01 至 2008-01-01 范围内</message>
|
||||
<field>birth_date</field>
|
||||
<detected_at>2026-02-08T05:30:56.060Z</detected_at>
|
||||
</issue>
|
||||
<issue record="10" rule="unknown" severity="critical">
|
||||
<rule_name>月经周期不在 21-35 天范围内(28±7天)</rule_name>
|
||||
<message>月经周期不在 21-35 天范围内(28±7天)</message>
|
||||
<field>menstrual_cycle</field>
|
||||
<detected_at>2026-02-08T05:30:56.060Z</detected_at>
|
||||
</issue>
|
||||
<issue record="10" rule="unknown" severity="critical">
|
||||
<rule_name>VAS 疼痛评分 < 4 分,不符合入组条件</rule_name>
|
||||
<message>VAS 疼痛评分 < 4 分,不符合入组条件</message>
|
||||
<field>vas_score</field>
|
||||
<detected_at>2026-02-08T05:30:56.060Z</detected_at>
|
||||
</issue>
|
||||
<issue record="10" rule="unknown" severity="critical">
|
||||
<rule_name>未签署知情同意书</rule_name>
|
||||
<message>未签署知情同意书</message>
|
||||
<field>informed_consent</field>
|
||||
<detected_at>2026-02-08T05:30:56.060Z</detected_at>
|
||||
</issue>
|
||||
<issue record="11" rule="unknown" severity="critical">
|
||||
<rule_name>年龄不在 25-35 岁范围内</rule_name>
|
||||
<message>年龄不在 25-35 岁范围内</message>
|
||||
<field>age</field>
|
||||
<detected_at>2026-02-08T05:30:56.068Z</detected_at>
|
||||
</issue>
|
||||
<issue record="11" rule="unknown" severity="critical">
|
||||
<rule_name>出生日期不在 1989-01-01 至 2008-01-01 范围内</rule_name>
|
||||
<message>出生日期不在 1989-01-01 至 2008-01-01 范围内</message>
|
||||
<field>birth_date</field>
|
||||
<detected_at>2026-02-08T05:30:56.068Z</detected_at>
|
||||
</issue>
|
||||
<issue record="11" rule="unknown" severity="critical">
|
||||
<rule_name>月经周期不在 21-35 天范围内(28±7天)</rule_name>
|
||||
<message>月经周期不在 21-35 天范围内(28±7天)</message>
|
||||
<field>menstrual_cycle</field>
|
||||
<detected_at>2026-02-08T05:30:56.068Z</detected_at>
|
||||
</issue>
|
||||
<issue record="11" rule="unknown" severity="critical">
|
||||
<rule_name>VAS 疼痛评分 < 4 分,不符合入组条件</rule_name>
|
||||
<message>VAS 疼痛评分 < 4 分,不符合入组条件</message>
|
||||
<field>vas_score</field>
|
||||
<detected_at>2026-02-08T05:30:56.068Z</detected_at>
|
||||
</issue>
|
||||
<issue record="11" rule="unknown" severity="critical">
|
||||
<rule_name>未签署知情同意书</rule_name>
|
||||
<message>未签署知情同意书</message>
|
||||
<field>informed_consent</field>
|
||||
<detected_at>2026-02-08T05:30:56.068Z</detected_at>
|
||||
</issue>
|
||||
<issue record="12" rule="unknown" severity="critical">
|
||||
<rule_name>出生日期不在 1989-01-01 至 2008-01-01 范围内</rule_name>
|
||||
<message>出生日期不在 1989-01-01 至 2008-01-01 范围内</message>
|
||||
<field>birth_date</field>
|
||||
<detected_at>2026-02-08T05:30:56.075Z</detected_at>
|
||||
</issue>
|
||||
<issue record="12" rule="unknown" severity="critical">
|
||||
<rule_name>月经周期不在 21-35 天范围内(28±7天)</rule_name>
|
||||
<message>月经周期不在 21-35 天范围内(28±7天)</message>
|
||||
<field>menstrual_cycle</field>
|
||||
<detected_at>2026-02-08T05:30:56.075Z</detected_at>
|
||||
</issue>
|
||||
<issue record="12" rule="unknown" severity="critical">
|
||||
<rule_name>VAS 疼痛评分 < 4 分,不符合入组条件</rule_name>
|
||||
<message>VAS 疼痛评分 < 4 分,不符合入组条件</message>
|
||||
<field>vas_score</field>
|
||||
<detected_at>2026-02-08T05:30:56.075Z</detected_at>
|
||||
</issue>
|
||||
<issue record="12" rule="unknown" severity="critical">
|
||||
<rule_name>未签署知情同意书</rule_name>
|
||||
<message>未签署知情同意书</message>
|
||||
<field>informed_consent</field>
|
||||
<detected_at>2026-02-08T05:30:56.075Z</detected_at>
|
||||
</issue>
|
||||
<issue record="13" rule="unknown" severity="critical">
|
||||
<rule_name>年龄不在 25-35 岁范围内</rule_name>
|
||||
<message>年龄不在 25-35 岁范围内</message>
|
||||
<field>age</field>
|
||||
<detected_at>2026-02-08T05:30:56.082Z</detected_at>
|
||||
</issue>
|
||||
<issue record="13" rule="unknown" severity="critical">
|
||||
<rule_name>出生日期不在 1989-01-01 至 2008-01-01 范围内</rule_name>
|
||||
<message>出生日期不在 1989-01-01 至 2008-01-01 范围内</message>
|
||||
<field>birth_date</field>
|
||||
<detected_at>2026-02-08T05:30:56.082Z</detected_at>
|
||||
</issue>
|
||||
<issue record="13" rule="unknown" severity="critical">
|
||||
<rule_name>月经周期不在 21-35 天范围内(28±7天)</rule_name>
|
||||
<message>月经周期不在 21-35 天范围内(28±7天)</message>
|
||||
<field>menstrual_cycle</field>
|
||||
<detected_at>2026-02-08T05:30:56.082Z</detected_at>
|
||||
</issue>
|
||||
<issue record="13" rule="unknown" severity="critical">
|
||||
<rule_name>VAS 疼痛评分 < 4 分,不符合入组条件</rule_name>
|
||||
<message>VAS 疼痛评分 < 4 分,不符合入组条件</message>
|
||||
<field>vas_score</field>
|
||||
<detected_at>2026-02-08T05:30:56.082Z</detected_at>
|
||||
</issue>
|
||||
<issue record="13" rule="unknown" severity="critical">
|
||||
<rule_name>未签署知情同意书</rule_name>
|
||||
<message>未签署知情同意书</message>
|
||||
<field>informed_consent</field>
|
||||
<detected_at>2026-02-08T05:30:56.082Z</detected_at>
|
||||
</issue>
|
||||
<issue record="2" rule="unknown" severity="critical">
|
||||
<rule_name>年龄不在 25-35 岁范围内</rule_name>
|
||||
<message>年龄不在 25-35 岁范围内</message>
|
||||
<field>age</field>
|
||||
<detected_at>2026-02-08T05:30:55.990Z</detected_at>
|
||||
</issue>
|
||||
<issue record="2" rule="unknown" severity="critical">
|
||||
<rule_name>出生日期不在 1989-01-01 至 2008-01-01 范围内</rule_name>
|
||||
<message>出生日期不在 1989-01-01 至 2008-01-01 范围内</message>
|
||||
<field>birth_date</field>
|
||||
<detected_at>2026-02-08T05:30:55.990Z</detected_at>
|
||||
</issue>
|
||||
<issue record="2" rule="unknown" severity="critical">
|
||||
<rule_name>月经周期不在 21-35 天范围内(28±7天)</rule_name>
|
||||
<message>月经周期不在 21-35 天范围内(28±7天)</message>
|
||||
<field>menstrual_cycle</field>
|
||||
<detected_at>2026-02-08T05:30:55.990Z</detected_at>
|
||||
</issue>
|
||||
<issue record="2" rule="unknown" severity="critical">
|
||||
<rule_name>VAS 疼痛评分 < 4 分,不符合入组条件</rule_name>
|
||||
<message>VAS 疼痛评分 < 4 分,不符合入组条件</message>
|
||||
<field>vas_score</field>
|
||||
<detected_at>2026-02-08T05:30:55.990Z</detected_at>
|
||||
</issue>
|
||||
<issue record="2" rule="unknown" severity="critical">
|
||||
<rule_name>未签署知情同意书</rule_name>
|
||||
<message>未签署知情同意书</message>
|
||||
<field>informed_consent</field>
|
||||
<detected_at>2026-02-08T05:30:55.990Z</detected_at>
|
||||
</issue>
|
||||
<issue record="3" rule="unknown" severity="critical">
|
||||
<rule_name>年龄不在 25-35 岁范围内</rule_name>
|
||||
<message>年龄不在 25-35 岁范围内</message>
|
||||
<field>age</field>
|
||||
<detected_at>2026-02-08T05:30:55.998Z</detected_at>
|
||||
</issue>
|
||||
<issue record="3" rule="unknown" severity="critical">
|
||||
<rule_name>出生日期不在 1989-01-01 至 2008-01-01 范围内</rule_name>
|
||||
<message>出生日期不在 1989-01-01 至 2008-01-01 范围内</message>
|
||||
<field>birth_date</field>
|
||||
<detected_at>2026-02-08T05:30:55.998Z</detected_at>
|
||||
</issue>
|
||||
<issue record="3" rule="unknown" severity="critical">
|
||||
<rule_name>月经周期不在 21-35 天范围内(28±7天)</rule_name>
|
||||
<message>月经周期不在 21-35 天范围内(28±7天)</message>
|
||||
<field>menstrual_cycle</field>
|
||||
<detected_at>2026-02-08T05:30:55.998Z</detected_at>
|
||||
</issue>
|
||||
<issue record="3" rule="unknown" severity="critical">
|
||||
<rule_name>VAS 疼痛评分 < 4 分,不符合入组条件</rule_name>
|
||||
<message>VAS 疼痛评分 < 4 分,不符合入组条件</message>
|
||||
<field>vas_score</field>
|
||||
<detected_at>2026-02-08T05:30:55.998Z</detected_at>
|
||||
</issue>
|
||||
<issue record="3" rule="unknown" severity="critical">
|
||||
<rule_name>未签署知情同意书</rule_name>
|
||||
<message>未签署知情同意书</message>
|
||||
<field>informed_consent</field>
|
||||
<detected_at>2026-02-08T05:30:55.998Z</detected_at>
|
||||
</issue>
|
||||
<issue record="4" rule="unknown" severity="critical">
|
||||
<rule_name>年龄不在 25-35 岁范围内</rule_name>
|
||||
<message>年龄不在 25-35 岁范围内</message>
|
||||
<field>age</field>
|
||||
<detected_at>2026-02-08T05:30:56.008Z</detected_at>
|
||||
</issue>
|
||||
<issue record="4" rule="unknown" severity="critical">
|
||||
<rule_name>出生日期不在 1989-01-01 至 2008-01-01 范围内</rule_name>
|
||||
<message>出生日期不在 1989-01-01 至 2008-01-01 范围内</message>
|
||||
<field>birth_date</field>
|
||||
<detected_at>2026-02-08T05:30:56.008Z</detected_at>
|
||||
</issue>
|
||||
<issue record="4" rule="unknown" severity="critical">
|
||||
<rule_name>月经周期不在 21-35 天范围内(28±7天)</rule_name>
|
||||
<message>月经周期不在 21-35 天范围内(28±7天)</message>
|
||||
<field>menstrual_cycle</field>
|
||||
<detected_at>2026-02-08T05:30:56.008Z</detected_at>
|
||||
</issue>
|
||||
<issue record="4" rule="unknown" severity="critical">
|
||||
<rule_name>VAS 疼痛评分 < 4 分,不符合入组条件</rule_name>
|
||||
<message>VAS 疼痛评分 < 4 分,不符合入组条件</message>
|
||||
<field>vas_score</field>
|
||||
<detected_at>2026-02-08T05:30:56.008Z</detected_at>
|
||||
</issue>
|
||||
<issue record="4" rule="unknown" severity="critical">
|
||||
<rule_name>未签署知情同意书</rule_name>
|
||||
<message>未签署知情同意书</message>
|
||||
<field>informed_consent</field>
|
||||
<detected_at>2026-02-08T05:30:56.008Z</detected_at>
|
||||
</issue>
|
||||
<issue record="5" rule="unknown" severity="critical">
|
||||
<rule_name>年龄不在 25-35 岁范围内</rule_name>
|
||||
<message>年龄不在 25-35 岁范围内</message>
|
||||
<field>age</field>
|
||||
<detected_at>2026-02-08T05:30:56.019Z</detected_at>
|
||||
</issue>
|
||||
<issue record="5" rule="unknown" severity="critical">
|
||||
<rule_name>出生日期不在 1989-01-01 至 2008-01-01 范围内</rule_name>
|
||||
<message>出生日期不在 1989-01-01 至 2008-01-01 范围内</message>
|
||||
<field>birth_date</field>
|
||||
<detected_at>2026-02-08T05:30:56.019Z</detected_at>
|
||||
</issue>
|
||||
<issue record="5" rule="unknown" severity="critical">
|
||||
<rule_name>月经周期不在 21-35 天范围内(28±7天)</rule_name>
|
||||
<message>月经周期不在 21-35 天范围内(28±7天)</message>
|
||||
<field>menstrual_cycle</field>
|
||||
<detected_at>2026-02-08T05:30:56.019Z</detected_at>
|
||||
</issue>
|
||||
<issue record="5" rule="unknown" severity="critical">
|
||||
<rule_name>VAS 疼痛评分 < 4 分,不符合入组条件</rule_name>
|
||||
<message>VAS 疼痛评分 < 4 分,不符合入组条件</message>
|
||||
<field>vas_score</field>
|
||||
<detected_at>2026-02-08T05:30:56.019Z</detected_at>
|
||||
</issue>
|
||||
<issue record="5" rule="unknown" severity="critical">
|
||||
<rule_name>未签署知情同意书</rule_name>
|
||||
<message>未签署知情同意书</message>
|
||||
<field>informed_consent</field>
|
||||
<detected_at>2026-02-08T05:30:56.019Z</detected_at>
|
||||
</issue>
|
||||
<issue record="6" rule="unknown" severity="critical">
|
||||
<rule_name>年龄不在 25-35 岁范围内</rule_name>
|
||||
<message>年龄不在 25-35 岁范围内</message>
|
||||
<field>age</field>
|
||||
<detected_at>2026-02-08T05:30:56.028Z</detected_at>
|
||||
</issue>
|
||||
<issue record="6" rule="unknown" severity="critical">
|
||||
<rule_name>出生日期不在 1989-01-01 至 2008-01-01 范围内</rule_name>
|
||||
<message>出生日期不在 1989-01-01 至 2008-01-01 范围内</message>
|
||||
<field>birth_date</field>
|
||||
<detected_at>2026-02-08T05:30:56.028Z</detected_at>
|
||||
</issue>
|
||||
<issue record="6" rule="unknown" severity="critical">
|
||||
<rule_name>月经周期不在 21-35 天范围内(28±7天)</rule_name>
|
||||
<message>月经周期不在 21-35 天范围内(28±7天)</message>
|
||||
<field>menstrual_cycle</field>
|
||||
<detected_at>2026-02-08T05:30:56.028Z</detected_at>
|
||||
</issue>
|
||||
<issue record="6" rule="unknown" severity="critical">
|
||||
<rule_name>VAS 疼痛评分 < 4 分,不符合入组条件</rule_name>
|
||||
<message>VAS 疼痛评分 < 4 分,不符合入组条件</message>
|
||||
<field>vas_score</field>
|
||||
<detected_at>2026-02-08T05:30:56.028Z</detected_at>
|
||||
</issue>
|
||||
<issue record="6" rule="unknown" severity="critical">
|
||||
<rule_name>未签署知情同意书</rule_name>
|
||||
<message>未签署知情同意书</message>
|
||||
<field>informed_consent</field>
|
||||
<detected_at>2026-02-08T05:30:56.028Z</detected_at>
|
||||
</issue>
|
||||
<issue record="7" rule="unknown" severity="critical">
|
||||
<rule_name>年龄不在 25-35 岁范围内</rule_name>
|
||||
<message>年龄不在 25-35 岁范围内</message>
|
||||
<field>age</field>
|
||||
<detected_at>2026-02-08T05:30:56.038Z</detected_at>
|
||||
</issue>
|
||||
<!-- ... 还有 14 个严重问题未显示 -->
|
||||
</critical_issues>
|
||||
|
||||
<warning_issues count="0" />
|
||||
|
||||
</qc_report>
|
||||
Reference in New Issue
Block a user