
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
drugcharacterizationaxis 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"]

