Back to skills
extension
Category: Productivity & OfficeNo API key required

sr-adverse-effects

Systematic review of adverse effects per Cochrane Handbook Ch 19. Use when the review includes harm outcomes, rare events, zero-event studies, or safety-focused synthesis. Includes different study designs for harms, rare events MA, safety SoF tables, and McHarm critical appraisal. Trigger on "adverse effects", "harms", "safety", "rare events", "zero events", "Peto OR", "continuity correction", "McHarm", "side effects", "safety analysis", "benefit-harm", "adverse events". Use ONLY when adverse effects are a focus of the review.

personAuthor: TashanworldhubOpenAPI

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:

  1. All AEs or specific AEs of interest?
  2. Serious AEs only, or any severity?
  3. What time frame for AE assessment?
  4. 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:

  1. Were AEs defined and classified (e.g., MedDRA coding)?
  2. Was there a pre-specified AE collection method (active surveillance vs passive)?
  3. Were AEs assessed by blinded assessors?
  4. Was the duration of AE follow-up adequate?
  5. 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

  1. "Do NOT rely on RCTs alone for rare/serious AEs — Ch 19.2.1 recommends including observational studies."
  2. "Zero events in both arms is NOT evidence of safety — it is absence of evidence."
  3. "Report AEs per total exposure (person-years), not just per study, for time-varying AE risk."
  4. "The absence of AE reporting in a study does not mean no AEs occurred."
  5. "AE multiplicity must be addressed: multiple outcomes, multiple comparisons, multiple time points."
  6. "Peto OR is valid only when treatment groups are similar size and event rates are very low (<1%)."
  7. "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)