Adverse Effects (Cochrane Handbook Ch 19)
Your Role
Guide systematic review of adverse effects: appropriate study design inclusion, rare events meta-analysis methods, zero-event handling, safety-specific risk of bias, and benefit-harm balance presentation.
Prerequisites
- Included studies (both RCTs and observational if applicable)
- AE extraction data
Workflow
Step 1: Define AE Scope
ASK the user:
- All AEs or specific AEs of interest?
- Serious AEs only, or any severity?
- What time frame for AE assessment?
- Will you include both RCTs (for common AEs) AND observational studies (for rare/serious/long-term AEs)?
DOCUMENT: "We included [RCTs only / RCTs + obs] for AE assessment. AEs of interest were [specific list / all reported AEs]."
Step 2: Assess AE-Specific Risk of Bias
Use McHarm tool for AEs.
RUN: python3 scripts/mcharm_assess.py --study Smith2021
Key McHarm items:
- Were AEs defined and classified (e.g., MedDRA coding)?
- Was there a pre-specified AE collection method (active surveillance vs passive)?
- Were AEs assessed by blinded assessors?
- Was the duration of AE follow-up adequate?
- Were all AEs reported (including those deemed unrelated to intervention)?
Step 3: Choose Synthesis Method by Event Frequency
| Event frequency | Recommended method | |-----------------|-------------------| | Common (>1%) | Standard MA (RR/OR, MH or REML) | | Rare (0.1-1%) | Peto OR or Mantel-Haenszel OR with 0.5 correction | | Very rare (<0.1%) | Beta-binomial or Bayesian with weakly informative priors | | Zero events in ≥1 arm | Compare continuity corrections in sensitivity analysis | | Zero events in ALL arms | Report event rates only — do NOT pool |
For rare events:
Rscript scripts/rare_events_ma.R --method peto --data ae.csv
For Bayesian:
Rscript scripts/rare_events_ma.R --method bayesian --data ae.csv --prior beta(1,1)
Step 4: Handle Zero Events
TEST sensitivity to continuity correction choice:
python3 scripts/zero_event_handler.py --data ae.csv --methods 0.5,0.01,treatment_arm
If results differ across corrections: "Findings are sensitive to choice of continuity correction. Interpret with caution."
If all methods agree: "Results are robust to continuity correction choice."
Step 5: Generate Safety SoF Table
Separate from benefit SoF table:
| Adverse Event | Studies (N) | Participants (N) | Events (I vs C) | Peto OR (95% CI) | NNH (range) | Certainty |
|---------------|-------------|------------------|-----------------|-------------------|-------------|-----------|
| Any AE | X RCTs | N | n vs n | X.XX (X.XX-X.XX) | X | Moderate |
| Serious AE | Y RCTs+obs | N | n vs n | X.XX (X.XX-X.XX) | X | Low |
| Specific AE | Z RCTs | N | n vs n | X.XX (X.XX-X.XX) | X | High |
Step 6: Interpret Benefit-Harm Balance
"Based on [outcome 1], the NNTB is [X], meaning one additional [benefit] per [X] treated. Based on [AE 1], the NNTH is [Y], meaning one additional [harm] per [Y] treated. The ratio of NNTB:NNTH is [X:Y]."
Scripts
scripts/rare_events_ma.R
Supports Peto OR, Mantel-Haenszel OR with continuity correction, beta-binomial, and Bayesian with weakly informative priors (using rstan or brms).
Usage: Rscript rare_events_ma.R --method peto --data ae.csv
scripts/zero_event_handler.py
Tests sensitivity to continuity correction method. Compares 0.5, 0.01, treatment-arm, and empirical corrections.
Usage: python3 zero_event_handler.py --data ae.csv --methods 0.5,0.01
scripts/mcharm_assess.py
McHarm AE-specific RoB tool: 5 items (AE definition, collection method, blinding, follow-up duration, reporting completeness).
Usage: python3 mcharm_assess.py --study Smith2021
Assets
assets/ae-sof-template.md
Safety Summary of Findings table format (separate from benefit SoF).
assets/mcharm-tool.md
Full McHarm critical appraisal tool with item descriptions and scoring.
assets/ae-classification.md
MedDRA SOC (System Organ Class) hierarchy for AE classification — with EM-specific examples (cardiac arrest, sepsis, AKI, VTE, bleeding).
Guardrails
- "Do NOT rely on RCTs alone for rare/serious AEs — Ch 19.2.1 recommends including observational studies."
- "Zero events in both arms is NOT evidence of safety — it is absence of evidence."
- "Report AEs per total exposure (person-years), not just per study, for time-varying AE risk."
- "The absence of AE reporting in a study does not mean no AEs occurred."
- "AE multiplicity must be addressed: multiple outcomes, multiple comparisons, multiple time points."
- "Peto OR is valid only when treatment groups are similar size and event rates are very low (<1%)."
- "If Peto OR and MH-OR with correction give different results, report BOTH."
Handoff
→ sr-interpretation (benefit-harm balance), → sr-grade (downgrading due to harms imprecision)
Scan to join WeChat group