IDAgentsFreshTest / FIX_IPC_VARIABLES.md
IDAgents Developer
Add API load testing suite and rate limiters for workshop readiness
13537fe
|
raw
history blame
5.94 kB

πŸ”§ Fix: IPC Variables Now Passed to InfectoGuard Agents

Problem

After the initial clinical variables fix, IPC agents (InfectoGuard) were still asking for information already provided in Patient Card B (CLABSI case).

User's Test Result:

User: "Please evaluate this case for NHSN CLABSI criteria..."

InfectoGuard Response:
"I can do that β€” I'll need a brief case summary to apply NHSN CLABSI criteria..."
[Long list of required information that was already in the IPC variables]

Root Cause

The initial fix added:

  • βœ… Clinical assessment variables β†’ Clinical agents
  • βœ… Orchestrator variables β†’ Orchestrators
  • ❌ IPC variables β†’ IPC agents (MISSING!)

The IPC logic at line 1807 was for jurisdiction-based reporting requirements (Texas, CDC, etc.), not for passing the actual case data from the UI fields.

Solution

Added IPC variable extraction block in chatpanel_handle_with_dynamic_vars:

# IPC tools (IPC_reporting, NHSN_criteria_evaluator, recommend_isolation_precautions)
elif "IPC_reporting" in skills or "NHSN_criteria_evaluator" in skills or "recommend_isolation_precautions" in skills:
    var_names = [
        "facility_name", "location_unit", "infection_type", "onset_date", "device_days",
        "pathogen", "resistance_pattern", "isolation_status", "compliance_issues"
    ]
    user_vars = {
        "facility_name": ipc_facility_name,
        "location_unit": ipc_location,
        "infection_type": ipc_infection_type,
        "onset_date": ipc_onset_date,
        "device_days": ipc_device_days,
        "pathogen": ipc_pathogen,
        "resistance_pattern": ipc_resistance_pattern,
        "isolation_status": ipc_isolation_status,
        "compliance_issues": ipc_compliance_issues
    }
    extracted = extract_clinical_variables_from_history(history, var_names)
    for k in var_names:
        if not user_vars[k]:
            user_vars[k] = extracted.get(k) or ""
    # Prepend IPC data if at least one field is non-empty
    if any(user_vars[k] for k in var_names):
        user_text = f"[IPC_CONTEXT] {json.dumps(user_vars)}\n" + user_text

What This Fixes

IPC Variables Now Passed (9 fields):

  1. Facility Name β†’ Methodist Hospital, Dallas, Texas
  2. Location/Unit β†’ ICU, Medical Ward 3B
  3. Infection Type β†’ CLABSI
  4. Onset Date β†’ 2025-03-15
  5. Device Days β†’ 7 days (central line in place)
  6. Pathogen β†’ MRSA
  7. Resistance Pattern β†’ Methicillin-resistant
  8. Isolation Status β†’ Contact precautions initiated
  9. Compliance Issues β†’ Line inserted emergently without full barrier precautions

Agent Skills That Trigger IPC Context:

  • IPC_reporting - For generating IPC reports
  • NHSN_criteria_evaluator - For NHSN surveillance definitions
  • recommend_isolation_precautions - For isolation recommendations

Format:

[IPC_CONTEXT] {
  "facility_name": "Methodist Hospital, Dallas, Texas",
  "location_unit": "ICU, Medical Ward 3B",
  "infection_type": "CLABSI",
  "onset_date": "2025-03-15",
  "device_days": "7 days (central line in place)",
  "pathogen": "MRSA",
  "resistance_pattern": "Methicillin-resistant",
  "isolation_status": "Contact precautions initiated",
  "compliance_issues": "Line inserted emergently without full barrier precautions"
}

Expected Results After Fix

Before Fix:

User: "Please evaluate this case for NHSN CLABSI criteria..."

Agent: ❌ "I'll need a brief case summary to apply NHSN CLABSI criteria.
        What I need from you to evaluate the case (minimum):
        - Presence/type of central venous catheter...
        - Date/time of symptom onset...
        - Blood culture data...
        [Long list of already-provided information]"

After Fix:

User: "Please evaluate this case for NHSN CLABSI criteria..."

Agent: βœ… "Based on the case data from Methodist Hospital ICU:
        
        NHSN CLABSI Criteria Evaluation:
        βœ… MBI-LCBI Criterion 1 met:
           - Recognized pathogen (MRSA) from blood culture
           - Central line in place on 2025-03-15
           - 7 device days documented
        
        Isolation Precautions:
        βœ… Contact precautions appropriate for MRSA
        
        Key IPC Priorities:
        - Line removal (source control)
        - NHSN surveillance reporting required
        - Bundle compliance audit (full barrier precautions not used)
        ..."

Files Changed

File Changes Lines
app.py Added IPC variable extraction block +24 lines

Testing Instructions

Test Patient Card B + InfectoGuard:

  1. Navigate to: https://huggingface.co/spaces/John-jero/IDWeekAgents
  2. Wait: ~2-3 minutes for space rebuild
  3. Select: InfectoGuard agent
  4. Click: Patient Card B (CLABSI case)
  5. Verify: IPC variables section populates with:
    • Methodist Hospital, Dallas, Texas
    • ICU location
    • CLABSI infection type
    • MRSA pathogen
    • 7 device days
    • Contact precautions status
  6. Ask: "Please evaluate this case for NHSN CLABSI criteria and recommend appropriate isolation precautions."
  7. Expected: βœ… Agent uses provided data, evaluates NHSN criteria, makes specific recommendations

Commit Info

Commit: 43f6e3b
Message: "Fix: Add IPC variable extraction for InfectoGuard agents"
Deployed: October 8, 2025


Complete Variable Coverage Now

Agent Type Variables Status
Stewardship 8 stewardship fields βœ… Working
Empiric Therapy 10 empiric fields βœ… Working
Clinical 10 clinical fields βœ… Working
IPC 9 IPC fields βœ… FIXED
Orchestrator 27 all fields βœ… Working

Status: βœ… ALL AGENT TYPES NOW FUNCTIONAL

All patient cards should now work correctly with their corresponding agent types!