Skills

Reporting Adverse Events

Structures adverse-event mentions that OpenMed extracts into FAERS / ICH E2B(R3)...

Install

npx skills add maziyarpanahi/openmed --skill reporting-adverse-events -g -a claude-code -y
Repository
maziyarpanahi/openmed5.8k
Category
Security
Updated
4d ago
License
Apache-2.0
Context cost
Mediumabout 1,969 tokens
Runs scripts
No, instructions only

What it does

Structures adverse-event mentions that OpenMed extracts into FAERS / ICH E2B(R3) reportable fields, suspect drug, reaction (MedDRA PT), seriousness criteria, and outcome. Use when the user needs to build an individual case safety report (ICSR), populate a FAERS submission, map a narrative to E2B(R3) data elements, classify seriousness (death, life-threatening, hospitalization, disability, congenital anomaly), or assign reaction outcomes. Trigger keywords: adverse event, ADR, ICSR, FAERS, E2B, E2B(R3), suspect drug, seriousness, MedDRA, reaction outcome, pharmacovigilance case. Pairs after OpenMed NER: consume Pharmaceutical/Chemical and Disease entities from openmed.analyze_text. MedDRA is licensed and user-supplied, never bundled. De-identify the narrative with openmed.deidentify before any external submission.

Reporting adverse events into FAERS / ICH E2B(R3)

A pharmacovigilance case starts as free-text narrative ("68 yo on warfarin developed GI bleed, hospitalized"). To make it reportable you must structure it into the ICH E2B(R3) data elements that the FDA's FAERS (and EMA's EudraVigilance) expect: a suspect drug, one or more reactions coded to MedDRA Preferred Terms, seriousness criteria, and a reaction outcome.

OpenMed extracts the drug and condition spans on-device; this skill turns those spans plus the narrative into the E2B(R3) skeleton. The reaction coding step needs MedDRA, which is licensed by the MSSO and user-supplied, it is never bundled with OpenMed and must be loaded from the user's own subscription.

When to use

  • A narrative names a drug and an adverse reaction and you need an ICSR (Individual Case Safety Report) shell with the right E2B(R3) fields.
  • You must classify seriousness (E2B sections C.1.7 / E.i.3), death, life-threatening, hospitalization/prolongation, disability, congenital anomaly, or "other medically important condition".
  • You need to characterize each drug as suspect / concomitant / interacting (the drugcharacterization axis FAERS uses).
  • You are pre-filling a 3500A / FAERS electronic submission or staging cases for a safety database.

This skill produces a structured draft for human safety review, it does not file reports or perform causality assessment autonomously.

Quick start

import openmed

narrative = (
    "68-year-old patient on warfarin 5 mg daily developed a gastrointestinal "
    "hemorrhage and was hospitalized. Warfarin was discontinued; the patient "
    "recovered."
)

# 1) Extract drug spans (Pharmaceutical category) on-device.
drugs = openmed.analyze_text(
    narrative,
    model_name="pharma_detection_superclinical",
    output_format="dict",
)["entities"]
Read the whole SKILL.md on GitHub

More in Security