Spaces:
Sleeping
Sleeping
File size: 5,935 Bytes
13537fe |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
# π§ 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`:
```python
# 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:
```json
[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!
|