质控流程说明.md 4.4 KB

医疗病历质控系统 - 新版流程说明

📋 更新日期

2025-10-19

🎯 核心改动

1. 数据库表更新

quality_control_rule 表新增字段:

  • rule_desc - 规则描述
  • qc_behavior - 质控行为(common/specific)
  • del_flag - 删除标记

2. 实体类更新

QualityControlRule.java 新增字段:

  • ruleDesc - 规则描述
  • qcBehavior - 质控行为

3. 质控逻辑重构

MedicalRecordQc123Service.java 完全重写质控流程

🔄 新版质控流程

流程图

开始质控
    ↓
查询规则表 (quality_control_rule)
    ↓
过滤有效规则 (qc_type_list 不为空)
    ↓
按 qc_behavior 分类
    ├─→ common 规则 (分开质控)
    │       ↓
    │   按 type 分组
    │       ↓
    │   逐个 type 执行规则
    │       ↓
    │   用 rule.ruleContent 查知识库
    │       ↓
    │   调用大模型质控
    │       ↓
    │   保存结果
    │
    └─→ specific 规则 (同时质控)
            ↓
        合并多个 type 的内容
            ↓
        用 rule.ruleContent 查知识库
            ↓
        调用大模型质控
            ↓
        保存结果
            ↓
        完成质控

📊 质控行为说明

Common 规则(分开质控)

  • 定义: qc_behavior = "common"
  • 行为: 规则对每个 type 分别质控
  • 示例:
    • 规则A的 qc_type_list = [0, 1, 3]
    • 执行3次质控:
    • 规则A + type=0的内容
    • 规则A + type=1的内容
    • 规则A + type=3的内容

Specific 规则(同时质控)

  • 定义: qc_behavior = "specific"
  • 行为: 规则对多个 type 的内容合并后一起质控
  • 示例:
    • 规则B的 qc_type_list = [0, 1, 3]
    • 执行1次质控:
    • 规则B + (type=0 + type=1 + type=3 的内容合并)

🔢 Type 对应关系

Type 病历部分 字段名
0 入院记录 admission_note
1 首次病程记录 first_course_record
2 病程记录 course_records
3 阶段小结 stage_summary
4 查房记录 ward_rounds
5 会诊记录 consultation_records
6 疑难病例讨论 difficult_case_discussion
7 超长住院讨论 long_stay_discussion
8 死亡病例讨论 death_case_discussion
9 抢救记录 rescue_records
10 手术记录 surgery_records
11 检验报告 lab_reports
12 检查报告 exam_reports
13 医嘱记录 orders
14 出院小结 discharge_summary

🔍 知识库调用变化

原来

String ragResult = fetchMatchingRules(step.label);
// 传入: "主诉记录不完整,不能支持第一诊断"

现在

String ragResult = fetchMatchingRules(rule.getRuleContent());
// 传入: 规则的 rule_content 字段内容
// 返回: 该规则对应的正反例

💾 结果保存

Common 规则

  • 每个 type 保存一条结果
  • qc_type = 对应的 type 值

Specific 规则

  • 只保存一条结果
  • qc_type = qcTypeList 中第一个有效的 type

🚀 多线程支持

串行质控(默认)

medicalRecordQc123Service.processAllUncontrolledRecords();

并行质控(推荐)

medicalRecordQc123Service.processAllUncontrolledRecords(true);
  • 使用 16 个线程并行处理多份病历
  • 理论提升 10-15 倍速度

📝 提示词优化

新版提示词包含:

  • 规则编码 (ruleCode)
  • 规则内容 (ruleContent)
  • 规则描述 (ruleDesc)
  • 病历原文
  • 参考正反例(来自知识库)

⚠️ 注意事项

  1. 规则过滤: qc_type_list 为空或 [] 的规则会被自动过滤
  2. 空内容跳过: 病历某部分为空时,相关规则会跳过
  3. 错误处理: 单条规则失败不影响其他规则执行
  4. 状态管理:
    • 质控中: status = 3
    • 质控完成: status = 2
    • 失败回退: status = 1

🎯 优势

  1. 灵活性: 规则配置化,无需修改代码
  2. 可扩展: 支持 common 和 specific 两种质控模式
  3. 高性能: 支持多线程并行质控
  4. 易维护: 规则与代码分离,便于管理
  5. 精准匹配: 用规则内容查知识库,获取精准正反例

📞 相关文件

  • 实体类: org.ruoyi.domain.QualityControlRule
  • 服务类: org.ruoyi.chat.service.MedicalRecordQc123Service
  • 多线程: org.ruoyi.chat.executor.QcRuleExecutor
  • 数据库表: quality_control_rule