Overview

The MDRO Surveillance module automatically detects and tracks Multi-Drug Resistant Organisms from microbiology culture results. It provides real-time surveillance for Infection Prevention teams and feeds case data to the Outbreak Detection module for cluster analysis.

Key Features

  • Automated Detection - Classifies organisms as MDRO based on susceptibility patterns
  • Transmission Tracking - Categorizes cases as healthcare-onset or community-onset
  • Case Management - IP review workflow for each case
  • Analytics - Trend analysis by MDRO type, unit, and time period
  • Integration - Exports cases to Outbreak Detection for cluster analysis

MDRO Classification Criteria

Classification follows CDC/NHSN definitions for consistency between real-time surveillance and quarterly NHSN AR reporting.

MDRO Type Full Name Organisms Resistance Criteria
MRSA Methicillin-resistant Staphylococcus aureus S. aureus Oxacillin R, Methicillin R, Nafcillin R, or Cefoxitin R
VRE Vancomycin-resistant Enterococcus E. faecalis, E. faecium Vancomycin R
CRE Carbapenem-resistant Enterobacterales E. coli, Klebsiella, Enterobacter, Citrobacter, Serratia, Proteus, etc. Meropenem R, Imipenem R, Ertapenem R, or Doripenem R
ESBL Extended-spectrum Beta-lactamase E. coli, Klebsiella spp, P. mirabilis Ceftriaxone R, Ceftazidime R, Cefotaxime R, or Aztreonam R
CRPA Carbapenem-resistant Pseudomonas aeruginosa P. aeruginosa Meropenem R, Imipenem R, or Doripenem R
CRAB Carbapenem-resistant Acinetobacter baumannii A. baumannii Meropenem R, Imipenem R, or Doripenem R
Note: CRE classification takes precedence over ESBL. If an organism is resistant to carbapenems, it is classified as CRE rather than ESBL.

Transmission Classification

Cases are classified based on time from hospital admission to culture collection:

Classification Definition IP Implications
Community Onset Culture collected ≤48 hours after admission Patient arrived with MDRO; focus on screening and isolation protocols
Healthcare Onset Culture collected >48 hours after admission Possible hospital acquisition; investigate potential transmission and environmental factors

Quick Start - Generate Demo Data

Create MDRO Cases

Generate demo patients with various MDRO scenarios:

# Create a random MDRO case
cd /home/david/projects/aegis
python scripts/demo_mdro.py

# Create a specific MDRO type
python scripts/demo_mdro.py --scenario mrsa
python scripts/demo_mdro.py --scenario vre
python scripts/demo_mdro.py --scenario cre
python scripts/demo_mdro.py --scenario esbl
python scripts/demo_mdro.py --scenario crpa
python scripts/demo_mdro.py --scenario crab

# Specify onset type
python scripts/demo_mdro.py --scenario mrsa --onset healthcare
python scripts/demo_mdro.py --scenario mrsa --onset community

# Shorthand for community-onset
python scripts/demo_mdro.py --scenario mrsa --community

# Specify unit
python scripts/demo_mdro.py --scenario mrsa --unit "ICU-A"

# Create all scenario types
python scripts/demo_mdro.py --all

Run the MDRO Monitor

After creating demo data, run the monitor to detect MDRO cases:

# Run once
cd /home/david/projects/aegis/mdro-surveillance
python -m mdro_src.runner --once

# Run with extended lookback
python -m mdro_src.runner --once --hours 72

# Run continuously
python -m mdro_src.runner --continuous --interval 30

# Debug mode
python -m mdro_src.runner --once --debug

Then view results on the MDRO Dashboard.

Demo Scenarios

Scenario Command Organism Key Resistance
MRSA --scenario mrsa Staphylococcus aureus Oxacillin R, Cefoxitin R
VRE --scenario vre Enterococcus faecium Vancomycin R
CRE --scenario cre Klebsiella pneumoniae Meropenem R, Ertapenem R
ESBL --scenario esbl Escherichia coli Ceftriaxone R, Ceftazidime R
CRPA --scenario crpa Pseudomonas aeruginosa Meropenem R, Imipenem R
CRAB --scenario crab Acinetobacter baumannii Meropenem R, Imipenem R

IP Case Review Workflow

When reviewing an MDRO case, the Infection Preventionist can:

  1. View Case Details - Patient info, organism, susceptibilities, unit, culture date
  2. Check Transmission Status - Verify community vs healthcare onset classification
  3. Review Prior Cases - See patient's previous MDRO history
  4. Add Review Notes - Document investigation findings and actions taken
  5. Mark Decision - Confirm case, request follow-up, or close as resolved

Review Decisions

  • Confirmed - Case verified as MDRO, proceed with IP protocols
  • Needs Investigation - Additional review needed (contact precautions, environmental assessment)
  • Resolved - Case closed, no further action needed

Integration with Outbreak Detection

MDRO cases are automatically exported to the Outbreak Detection module for cluster analysis.

Data Flow

MDRO Surveillance                    Outbreak Detection
+------------------+                 +------------------+
| Culture Results  |                 | MDROSource       |
| (FHIR Server)    |                 | (Data Adapter)   |
+--------+---------+                 +--------+---------+
         |                                    |
         v                                    v
+------------------+    API Export   +------------------+
| MDRO Classifier  +---------------->| Cluster Detector |
| (CDC/NHSN Rules) |                 | (Time + Unit)    |
+--------+---------+                 +--------+---------+
         |                                    |
         v                                    v
+------------------+                 +------------------+
| MDRO Cases DB    |                 | Outbreak Alerts  |
| (SQLite)         |                 | (IP Notification)|
+------------------+                 +------------------+
        

API Export

Cases can be exported programmatically:

GET /mdro-surveillance/api/export?days=14

Returns JSON with case details for clustering analysis.

Dashboard Pages

Page URL Description
Dashboard /mdro-surveillance/ Overview with stats, recent cases, and MDRO type breakdown
Cases /mdro-surveillance/cases All cases with filtering by type, unit, and time period
Analytics /mdro-surveillance/analytics Trend analysis and reporting charts
Help /mdro-surveillance/help This page

Troubleshooting

FHIR server not responding

# Check if HAPI FHIR container is running
docker ps | grep hapi

# Restart if needed
cd asp-bacteremia-alerts
docker-compose down && docker-compose up -d

Clear MDRO data and start fresh

# Remove MDRO database
rm -f ~/.aegis/mdro.db

# Clear FHIR server data
cd asp-bacteremia-alerts
docker-compose down && docker-compose up -d

Check database contents

sqlite3 ~/.aegis/mdro.db "SELECT mdro_type, COUNT(*) FROM mdro_cases GROUP BY mdro_type"

Related Modules

Demo Environment: All patient data displayed is simulated. No actual patient data is available through this dashboard.