MDRO Surveillance - Help & Demo Guide
Back to DashboardOverview
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 |
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:
- View Case Details - Patient info, organism, susceptibilities, unit, culture date
- Check Transmission Status - Verify community vs healthcare onset classification
- Review Prior Cases - See patient's previous MDRO history
- Add Review Notes - Document investigation findings and actions taken
- 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
- Outbreak Detection - Cluster detection and investigation
- HAI Detection - Healthcare-associated infection surveillance
- NHSN AR Reporting - Quarterly antimicrobial resistance reporting
- Drug-Bug Mismatch - Therapy coverage alerts