Cisplatin , high yield pdf notes according to kd tripathi chapater anti cancer drugs i need pdf notes

Reading File
Finding Sources
Finding Sources
KD Tripathi is not in the library, but I have all the pharmacology content needed. Let me search specifically for the anticancer/alkylating agent sections.
Finding Sources
Finding Sources
I have Goodman & Gilman and Katzung - both are the gold standard pharmacology references that KD Tripathi is also based on. Let me read the cisplatin sections from Goodman & Gilman and Lippincott (which is closest to KD Tripathi style).
Reading File
Reading File
Reading File
Finding Sources
Reading File
Reading File
Reading File
Reading File
I now have all the content I need. Let me read the PDF skill and generate the notes.
Reading File
Running Command

mkdir -p /home/daytona/workspace/cisplatin-notes && ls /home/daytona/workspace/cisplatin-notes/

Writing File

~/cisplatin-notes/generate_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY

OUTPUT = "/home/daytona/workspace/cisplatin-notes/Cisplatin_HighYield_KDTripathi.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=1.8*cm, rightMargin=1.8*cm,
    topMargin=2*cm, bottomMargin=2*cm
)

styles = getSampleStyleSheet()

# ── Custom Styles ──────────────────────────────────────────────────────────────
BLUE   = colors.HexColor("#1565C0")
LBLUE  = colors.HexColor("#E3F2FD")
DBLUE  = colors.HexColor("#0D47A1")
RED    = colors.HexColor("#C62828")
GREEN  = colors.HexColor("#1B5E20")
ORANGE = colors.HexColor("#E65100")
YELLOW = colors.HexColor("#FFF9C4")
LGREY  = colors.HexColor("#F5F5F5")

title_style = ParagraphStyle(
    "TitleStyle", parent=styles["Title"],
    fontSize=22, textColor=colors.white, alignment=TA_CENTER,
    fontName="Helvetica-Bold", spaceAfter=4
)
subtitle_style = ParagraphStyle(
    "SubtitleStyle", parent=styles["Normal"],
    fontSize=11, textColor=colors.HexColor("#B0BEC5"), alignment=TA_CENTER,
    fontName="Helvetica-Oblique", spaceAfter=2
)
h1_style = ParagraphStyle(
    "H1", parent=styles["Heading1"],
    fontSize=14, textColor=colors.white, fontName="Helvetica-Bold",
    spaceBefore=10, spaceAfter=4, leftIndent=0
)
h2_style = ParagraphStyle(
    "H2", parent=styles["Heading2"],
    fontSize=12, textColor=DBLUE, fontName="Helvetica-Bold",
    spaceBefore=8, spaceAfter=3, leftIndent=6
)
body_style = ParagraphStyle(
    "Body", parent=styles["Normal"],
    fontSize=10, leading=15, textColor=colors.HexColor("#212121"),
    fontName="Helvetica", spaceAfter=4, leftIndent=10, alignment=TA_JUSTIFY
)
bullet_style = ParagraphStyle(
    "Bullet", parent=styles["Normal"],
    fontSize=10, leading=14, textColor=colors.HexColor("#212121"),
    fontName="Helvetica", spaceAfter=3, leftIndent=20, bulletIndent=8
)
bold_bullet = ParagraphStyle(
    "BoldBullet", parent=bullet_style,
    fontName="Helvetica-Bold", textColor=DBLUE
)
warn_style = ParagraphStyle(
    "Warn", parent=body_style,
    textColor=RED, fontName="Helvetica-Bold", fontSize=10
)
highlight_style = ParagraphStyle(
    "Highlight", parent=body_style,
    backColor=YELLOW, borderPad=4, leading=16
)
mnemonic_style = ParagraphStyle(
    "Mnemonic", parent=styles["Normal"],
    fontSize=11, textColor=GREEN, fontName="Helvetica-Bold",
    spaceBefore=4, spaceAfter=4, leftIndent=12, leading=16
)
footer_style = ParagraphStyle(
    "Footer", parent=styles["Normal"],
    fontSize=8, textColor=colors.grey, alignment=TA_CENTER
)

def section_header(title, color=BLUE):
    """Returns a coloured section-header band + spacer."""
    data = [[Paragraph(title, h1_style)]]
    t = Table(data, colWidths=[doc.width])
    t.setStyle(TableStyle([
        ("BACKGROUND",  (0,0), (-1,-1), color),
        ("TOPPADDING",  (0,0), (-1,-1), 5),
        ("BOTTOMPADDING",(0,0),(-1,-1), 5),
        ("LEFTPADDING", (0,0), (-1,-1), 10),
        ("BOX",         (0,0), (-1,-1), 0.5, colors.white),
    ]))
    return t

def info_box(title, items, bg=LBLUE, title_color=BLUE):
    """Bordered box with title row and bullet items."""
    rows = [[Paragraph(f"<b>{title}</b>", ParagraphStyle(
        "IB", parent=styles["Normal"], fontSize=10.5,
        textColor=colors.white, fontName="Helvetica-Bold"))]]
    for item in items:
        rows.append([Paragraph(f"• {item}", body_style)])
    t = Table(rows, colWidths=[doc.width])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (0,0), title_color),
        ("BACKGROUND", (0,1), (-1,-1), bg),
        ("BOX",        (0,0), (-1,-1), 1, title_color),
        ("INNERGRID",  (0,0), (-1,-1), 0.3, colors.HexColor("#BBDEFB")),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 8),
    ]))
    return t

story = []

# ═══════════════════════════════════════════════════════════════════════════════
#  TITLE PAGE BANNER
# ═══════════════════════════════════════════════════════════════════════════════
banner_data = [[
    Paragraph("CISPLATIN", title_style),
    ],[
    Paragraph("High-Yield Pharmacology Notes | Anti-Cancer Drugs", subtitle_style),
    ],[
    Paragraph("Based on KD Tripathi — Essentials of Medical Pharmacology", subtitle_style),
]]
banner = Table(banner_data, colWidths=[doc.width])
banner.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), DBLUE),
    ("TOPPADDING",    (0,0), (-1,-1), 10),
    ("BOTTOMPADDING", (0,0), (-1,-1), 10),
    ("LEFTPADDING",   (0,0), (-1,-1), 15),
    ("BOX",           (0,0), (-1,-1), 2, BLUE),
]))
story.append(banner)
story.append(Spacer(1, 0.4*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  QUICK-GLANCE IDENTITY BOX
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header("📋  QUICK IDENTITY — AT A GLANCE"))
story.append(Spacer(1, 0.2*cm))

id_data = [
    ["Parameter", "Details"],
    ["Drug Class",       "Platinum Coordination Complex / Alkylating-like Agent"],
    ["Chemical Name",    "cis-diamminedichloroplatinum(II)  [cis-DDP, CDDP]"],
    ["Discovery",        "Rosenberg et al., 1969 (bacterial studies with Pt electrodes)"],
    ["FDA Approval",     "1978"],
    ["Cell Cycle",       "Cell-cycle non-specific (most vulnerable: G1 & S phase)"],
    ["Route",            "IV only (never oral)"],
    ["Prototype of",     "Platinum analogues (Carboplatin, Oxaliplatin)"],
]
id_table = Table(id_data, colWidths=[5*cm, doc.width - 5*cm])
id_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),  (-1,0),  BLUE),
    ("TEXTCOLOR",     (0,0),  (-1,0),  colors.white),
    ("FONTNAME",      (0,0),  (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",      (0,0),  (-1,-1), 9.5),
    ("BACKGROUND",    (0,1),  (0,-1),  colors.HexColor("#E8EAF6")),
    ("FONTNAME",      (0,1),  (0,-1),  "Helvetica-Bold"),
    ("ROWBACKGROUNDS",(0,1),  (-1,-1), [colors.white, LGREY]),
    ("BOX",           (0,0),  (-1,-1), 1, BLUE),
    ("INNERGRID",     (0,0),  (-1,-1), 0.4, colors.HexColor("#C5CAE9")),
    ("TOPPADDING",    (0,0),  (-1,-1), 5),
    ("BOTTOMPADDING", (0,0),  (-1,-1), 5),
    ("LEFTPADDING",   (0,0),  (-1,-1), 6),
]))
story.append(id_table)
story.append(Spacer(1, 0.3*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  MECHANISM OF ACTION
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header("⚙️  MECHANISM OF ACTION"))
story.append(Spacer(1, 0.2*cm))

moa_steps = [
    ("Step 1 — Entry", "Enters cell via Cu²⁺ transporter CTR1 (SLC31A1). High plasma Cl⁻ keeps cisplatin in neutral, stable form."),
    ("Step 2 — Activation (Aquation)", "Inside cell, low Cl⁻ milieu → Cl⁻ ligands replaced by H₂O → positively charged aquated species formed."),
    ("Step 3 — DNA Binding", "Aquated cisplatin binds to N-7 of guanine (most common) → forms intra-strand and inter-strand cross-links (DNA adducts)."),
    ("Step 4 — Cytotoxic Effect", "DNA adducts → inhibit DNA polymerase (replication) and RNA polymerase (transcription) → block cell division → apoptosis (via p53 pathway)."),
    ("Key fact",     "Adducts are recognised by HMG (High-Mobility Group) proteins — high HMG expression in testicular cancer = high cisplatin sensitivity."),
]
for title, text in moa_steps:
    row_data = [[
        Paragraph(f"<b>{title}</b>", ParagraphStyle("StepTitle",parent=styles["Normal"],
            fontSize=9.5,fontName="Helvetica-Bold",textColor=DBLUE)),
        Paragraph(text, body_style)
    ]]
    t = Table(row_data, colWidths=[3.5*cm, doc.width - 3.5*cm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (0,0), colors.HexColor("#E8EAF6")),
        ("BACKGROUND", (1,0), (1,0), colors.white),
        ("BOX",        (0,0), (-1,-1), 0.5, colors.HexColor("#9FA8DA")),
        ("VALIGN",     (0,0), (-1,-1), "TOP"),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ]))
    story.append(t)
    story.append(Spacer(1, 0.1*cm))

story.append(Spacer(1, 0.25*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  PHARMACOKINETICS (ADME)
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header("💊  PHARMACOKINETICS (ADME)"))
story.append(Spacer(1, 0.2*cm))

pk_data = [
    ["Parameter", "Details"],
    ["Absorption",    "IV only — not given orally. Also intraperitoneal (IP) or intra-arterial (IA) for ovarian/bladder."],
    ["Distribution",  "High conc. in liver, kidney, intestine, testes. POOR CNS penetration (does not cross BBB). >90% bound to plasma proteins."],
    ["Metabolism",    "Minimal hepatic; loses Cl⁻ intracellularly (aquation). Aluminium inactivates cisplatin — do not use Al-containing equipment."],
    ["Excretion",     "Primarily renal. t½ initial = 25–50 min; total Pt t½ = 24 h+. 25% excreted at 24 h; 43% by 5 days (bound to peptides/proteins)."],
    ["Infusion",      "Diluted in dextrose + saline + mannitol → IV over 4–6 hours. Pre-hydration: 1–2 L NS before infusion."],
]
pk_table = Table(pk_data, colWidths=[3*cm, doc.width - 3*cm])
pk_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),  (-1,0),  BLUE),
    ("TEXTCOLOR",     (0,0),  (-1,0),  colors.white),
    ("FONTNAME",      (0,0),  (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",      (0,0),  (-1,-1), 9.5),
    ("BACKGROUND",    (0,1),  (0,-1),  colors.HexColor("#E8EAF6")),
    ("FONTNAME",      (0,1),  (0,-1),  "Helvetica-Bold"),
    ("ROWBACKGROUNDS",(0,1),  (-1,-1), [colors.white, LGREY]),
    ("BOX",           (0,0),  (-1,-1), 1, BLUE),
    ("INNERGRID",     (0,0),  (-1,-1), 0.4, colors.HexColor("#C5CAE9")),
    ("TOPPADDING",    (0,0),  (-1,-1), 5),
    ("BOTTOMPADDING", (0,0),  (-1,-1), 5),
    ("LEFTPADDING",   (0,0),  (-1,-1), 6),
    ("VALIGN",        (0,0),  (-1,-1), "TOP"),
]))
story.append(pk_table)
story.append(Spacer(1, 0.3*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  THERAPEUTIC USES
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header("🎯  THERAPEUTIC USES (Indications)"))
story.append(Spacer(1, 0.2*cm))

uses_data = [
    ["Cancer Type", "Regimen / Notes"],
    ["Testicular Ca (★ CURABLE)", "BEP: Bleomycin + Etoposide + cis<b>P</b>latin → CURES 90% of patients (KD Tripathi high-yield fact)"],
    ["Ovarian Ca",               "Cisplatin/Carboplatin + Paclitaxel → complete response in majority"],
    ["Bladder Ca",               "Used alone or in combination (MVAC: MTX, Vinblastine, Adriamycin, Cisplatin)"],
    ["Head & Neck Ca",           "First-line; also chemoradiation sensitizer"],
    ["Lung Ca (NSCLC & SCLC)",   "Backbone of platinum-based doublet regimens"],
    ["Cervical & Endometrial Ca","Cisplatin-based combinations"],
    ["Esophageal Ca",            "With 5-FU or radiation"],
    ["Colorectal Ca",            "Oxaliplatin preferred (not cisplatin)"],
    ["Radiation Sensitizer",     "Locally advanced lung, esophageal, H&N tumors — enhances radiation effect"],
]
uses_table = Table(uses_data, colWidths=[5*cm, doc.width - 5*cm])
uses_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),  (-1,0),  colors.HexColor("#1B5E20")),
    ("TEXTCOLOR",     (0,0),  (-1,0),  colors.white),
    ("FONTNAME",      (0,0),  (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",      (0,0),  (-1,-1), 9.5),
    ("BACKGROUND",    (0,1),  (-1,1),  colors.HexColor("#C8E6C9")),
    ("FONTNAME",      (0,1),  (-1,1),  "Helvetica-Bold"),
    ("TEXTCOLOR",     (0,1),  (-1,1),  colors.HexColor("#1B5E20")),
    ("ROWBACKGROUNDS",(0,2),  (-1,-1), [colors.white, colors.HexColor("#F1F8E9")]),
    ("BOX",           (0,0),  (-1,-1), 1, colors.HexColor("#2E7D32")),
    ("INNERGRID",     (0,0),  (-1,-1), 0.4, colors.HexColor("#A5D6A7")),
    ("TOPPADDING",    (0,0),  (-1,-1), 5),
    ("BOTTOMPADDING", (0,0),  (-1,-1), 5),
    ("LEFTPADDING",   (0,0),  (-1,-1), 6),
    ("VALIGN",        (0,0),  (-1,-1), "TOP"),
]))
story.append(uses_table)
story.append(Spacer(1, 0.3*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  ADVERSE EFFECTS — HIGH YIELD TABLE
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header("⚠️  ADVERSE EFFECTS (HIGH YIELD)", color=RED))
story.append(Spacer(1, 0.2*cm))

ae_data = [
    ["Toxicity", "Details", "Prevention / Management"],
    ["Nephrotoxicity\n★ DOSE-LIMITING",
     "Distal convoluted tubule + collecting duct damage. Tubular necrosis. Rise in creatinine.",
     "Aggressive IV hydration (1–2 L NS pre + post). Mannitol diuresis. Amifostine (cytoprotectant)."],
    ["Severe Nausea & Vomiting\n★ MOST COMMON",
     "Occurs in nearly 100% of patients. Begins within hours; may last 5 days.",
     "Pre-medicate with 5-HT3 antagonists (Ondansetron) + NK1 antagonist (Aprepitant) + Dexamethasone."],
    ["Ototoxicity",
     "High-frequency sensorineural hearing loss, tinnitus. Irreversible. More in children.",
     "Audiometry before and after treatment. Sodium thiosulfate (protective, Phase 3 evidence)."],
    ["Peripheral Neuropathy",
     "Sensory > motor. Stocking-glove pattern. Worsens after stopping drug. Worsened by taxanes.",
     "Dose reduction. Cumulative and dose-related."],
    ["Myelosuppression\n(Mild–Moderate)",
     "Leukopenia, thrombocytopenia, anemia. Less severe than carboplatin.",
     "CBC monitoring. G-CSF if needed."],
    ["Electrolyte Wasting",
     "Hypomagnesaemia, hypokalemia, hypocalcemia, hypophosphatemia (tubular damage).",
     "Routine Mg²⁺ monitoring. Mg replacement. May cause tetany if uncorrected."],
    ["Anaphylaxis",
     "Facial edema, bronchospasm, tachycardia, hypotension — within minutes.",
     "Adrenaline (epinephrine) IV + corticosteroids + antihistamines."],
    ["Secondary AML",
     "Rare; usually 4+ years post-treatment.",
     "Long-term follow-up."],
]
ae_table = Table(ae_data, colWidths=[3.5*cm, 5.5*cm, doc.width-9*cm])
ae_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),  (-1,0),  RED),
    ("TEXTCOLOR",     (0,0),  (-1,0),  colors.white),
    ("FONTNAME",      (0,0),  (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",      (0,0),  (-1,-1), 9),
    ("BACKGROUND",    (0,1),  (0,2),   colors.HexColor("#FFEBEE")),
    ("FONTNAME",      (0,1),  (0,-1),  "Helvetica-Bold"),
    ("TEXTCOLOR",     (0,1),  (0,-1),  RED),
    ("ROWBACKGROUNDS",(0,1),  (-1,-1), [colors.white, colors.HexColor("#FFF3E0")]),
    ("BOX",           (0,0),  (-1,-1), 1, RED),
    ("INNERGRID",     (0,0),  (-1,-1), 0.4, colors.HexColor("#FFCDD2")),
    ("TOPPADDING",    (0,0),  (-1,-1), 5),
    ("BOTTOMPADDING", (0,0),  (-1,-1), 5),
    ("LEFTPADDING",   (0,0),  (-1,-1), 5),
    ("VALIGN",        (0,0),  (-1,-1), "TOP"),
]))
story.append(ae_table)
story.append(Spacer(1, 0.3*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  RESISTANCE MECHANISMS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header("🔒  MECHANISMS OF RESISTANCE", color=colors.HexColor("#6A1B9A")))
story.append(Spacer(1, 0.2*cm))

resist_items = [
    "Decreased uptake — reduced CTR1 transporter expression",
    "Increased efflux — overexpression of ATP7A / ATP7B copper exporters and MRP1",
    "Increased intracellular glutathione / metallothionein — binds & inactivates cisplatin",
    "Enhanced DNA repair — overexpression of NER (Nucleotide Excision Repair) proteins",
    "Loss of MMR (Mismatch Repair) — impairs apoptosis signal from unrepaired adducts (cisplatin-specific; NOT oxaliplatin)",
    "DNA polymerase bypass — some polymerases replicate past Pt adducts",
    "Cross-resistance: Carboplatin shares cross-resistance with cisplatin; Oxaliplatin does NOT",
]
story.append(info_box("Resistance Mechanisms", resist_items,
    bg=colors.HexColor("#F3E5F5"), title_color=colors.HexColor("#6A1B9A")))
story.append(Spacer(1, 0.3*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  CISPLATIN vs CARBOPLATIN vs OXALIPLATIN
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header("🔬  PLATINUM ANALOGUES COMPARISON", color=colors.HexColor("#00695C")))
story.append(Spacer(1, 0.2*cm))

comp_data = [
    ["Feature",             "CISPLATIN",       "CARBOPLATIN",          "OXALIPLATIN"],
    ["Class",               "Pt-II complex",   "Pt-II complex",        "Pt-II complex"],
    ["Dose-limiting tox",   "Nephrotoxicity",  "Myelosuppression",     "Peripheral neuropathy"],
    ["Nausea/Vomiting",     "Severe ★★★",      "Mild ★",               "Moderate ★★"],
    ["Nephrotoxicity",      "Major",           "Mild",                 "Mild"],
    ["Ototoxicity",         "Yes (common)",    "Rare",                 "Rare"],
    ["Neuropathy",          "Moderate",        "Mild",                 "Cold-induced ★ (unique)"],
    ["Myelosuppression",    "Mild-moderate",   "Dose-limiting ★",      "Moderate"],
    ["Key use",             "Testicular, H&N, Ovarian", "Ovarian (renally impaired pts)", "Colorectal Ca ★★"],
    ["Needs hydration",     "YES — mandatory", "Less required",        "No"],
    ["MMR dependence",      "YES",             "YES",                  "NO"],
    ["HMG protein dep.",    "YES",             "YES",                  "NO"],
    ["Dose calculation",    "mg/m²",           "AUC (Calvert formula)","mg/m²"],
]
comp_table = Table(comp_data, colWidths=[4.5*cm, 4.5*cm, 4.5*cm, 4.5*cm])
comp_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),  (-1,0),  colors.HexColor("#00695C")),
    ("TEXTCOLOR",     (0,0),  (-1,0),  colors.white),
    ("FONTNAME",      (0,0),  (-1,0),  "Helvetica-Bold"),
    ("BACKGROUND",    (0,1),  (0,-1),  colors.HexColor("#E0F2F1")),
    ("FONTNAME",      (0,1),  (0,-1),  "Helvetica-Bold"),
    ("FONTSIZE",      (0,0),  (-1,-1), 9),
    ("ROWBACKGROUNDS",(0,1),  (-1,-1), [colors.white, colors.HexColor("#E0F2F1")]),
    ("BOX",           (0,0),  (-1,-1), 1, colors.HexColor("#00695C")),
    ("INNERGRID",     (0,0),  (-1,-1), 0.4, colors.HexColor("#80CBC4")),
    ("TOPPADDING",    (0,0),  (-1,-1), 5),
    ("BOTTOMPADDING", (0,0),  (-1,-1), 5),
    ("LEFTPADDING",   (0,0),  (-1,-1), 5),
    ("ALIGN",         (1,0),  (-1,-1), "CENTER"),
    ("VALIGN",        (0,0),  (-1,-1), "TOP"),
]))
story.append(comp_table)
story.append(Spacer(1, 0.3*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  KEY DRUG INTERACTIONS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header("💊  KEY DRUG INTERACTIONS", color=ORANGE))
story.append(Spacer(1, 0.2*cm))

di_data = [
    ["Drug / Agent",        "Interaction"],
    ["Aminoglycosides",     "Additive nephrotoxicity + ototoxicity — AVOID combination"],
    ["Loop diuretics (Furosemide)", "Additive ototoxicity"],
    ["Taxanes (Paclitaxel/Docetaxel)", "Additive neuropathy — sequence matters (cisplatin first, then taxane preferred)"],
    ["NSAIDs",              "Reduce renal blood flow → worsen nephrotoxicity"],
    ["ALUMINIUM equipment", "Inactivates cisplatin — do NOT use Al needles/infusion sets"],
    ["Amifostine",          "Cytoprotective — reduces nephro-, neuro-, ototoxicity without reducing anti-tumour effect"],
    ["Anticonvulsants (Phenytoin)", "Cisplatin reduces phenytoin absorption — monitor seizure control"],
    ["5-HT3 antagonists (Ondansetron)", "Pre-treatment for N&V — beneficial combination"],
]
di_table = Table(di_data, colWidths=[5*cm, doc.width - 5*cm])
di_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),  (-1,0),  ORANGE),
    ("TEXTCOLOR",     (0,0),  (-1,0),  colors.white),
    ("FONTNAME",      (0,0),  (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",      (0,0),  (-1,-1), 9.5),
    ("BACKGROUND",    (0,1),  (0,-1),  colors.HexColor("#FFF3E0")),
    ("FONTNAME",      (0,1),  (0,-1),  "Helvetica-Bold"),
    ("ROWBACKGROUNDS",(0,1),  (-1,-1), [colors.white, colors.HexColor("#FFF8E1")]),
    ("BOX",           (0,0),  (-1,-1), 1, ORANGE),
    ("INNERGRID",     (0,0),  (-1,-1), 0.4, colors.HexColor("#FFCC80")),
    ("TOPPADDING",    (0,0),  (-1,-1), 5),
    ("BOTTOMPADDING", (0,0),  (-1,-1), 5),
    ("LEFTPADDING",   (0,0),  (-1,-1), 6),
    ("VALIGN",        (0,0),  (-1,-1), "TOP"),
]))
story.append(di_table)
story.append(Spacer(1, 0.3*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  HIGH YIELD MNEMONICS & EXAM POINTS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header("⭐  HIGH-YIELD EXAM POINTS & MNEMONICS"))
story.append(Spacer(1, 0.2*cm))

mnemonic_box_data = [[Paragraph(
    '<b>MNEMONIC — Cisplatin Toxicities: "RONE + N/V"</b><br/>'
    '<font color="#1565C0"><b>R</b></font>eno-toxicity (dose-limiting)<br/>'
    '<font color="#1565C0"><b>O</b></font>totoxicity (tinnitus, hearing loss)<br/>'
    '<font color="#1565C0"><b>N</b></font>europathy (peripheral sensory)<br/>'
    '<font color="#1565C0"><b>E</b></font>lectrolyte wasting (Mg²⁺, K⁺, Ca²⁺, PO₄)<br/>'
    '<font color="#1565C0"><b>N/V</b></font> — most severe of all chemo drugs',
    body_style)
]]
mn_table = Table(mnemonic_box_data, colWidths=[doc.width])
mn_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), colors.HexColor("#E8F5E9")),
    ("BOX",           (0,0), (-1,-1), 2, colors.HexColor("#2E7D32")),
    ("TOPPADDING",    (0,0), (-1,-1), 8),
    ("BOTTOMPADDING", (0,0), (-1,-1), 8),
    ("LEFTPADDING",   (0,0), (-1,-1), 12),
]))
story.append(mn_table)
story.append(Spacer(1, 0.2*cm))

exam_points = [
    "★ Cisplatin is the MOST emetogenic anticancer drug — requires mandatory antiemetic cover.",
    "★ Dose-limiting toxicity = NEPHROTOXICITY (unlike carboplatin = myelosuppression).",
    "★ Mechanism = forms DNA ADDUCTS (Pt binds N7 of Guanine) → intra-strand cross-links.",
    "★ Cell-cycle NON-SPECIFIC but most active in G1 and S phase.",
    "★ Testicular cancer: BEP regimen = Bleomycin + Etoposide + cisPlatin → 90% cure rate.",
    "★ Aluminium inactivates cisplatin — use only plastic/glass infusion equipment.",
    "★ High Cl⁻ protects kidneys (keeps cisplatin stable) → pre-hydration with normal saline.",
    "★ Amifostine = the ONLY approved chemoprotective agent for cisplatin nephrotoxicity.",
    "★ Electrolyte wasting: HYPOMAGNESAEMIA is characteristic — must monitor and replace Mg²⁺.",
    "★ Ototoxicity is IRREVERSIBLE — audiometry before and during treatment.",
    "★ Oxaliplatin unique toxicity = cold-induced peripheral neuropathy (UNIQUE to oxaliplatin).",
    "★ Carboplatin dose = calculated using AUC (Calvert formula using creatinine clearance).",
    "★ Cisplatin resistance: overexpression of Cu exporters ATP7A/ATP7B = poor prognosis.",
    "★ Secondary AML risk after cisplatin — seen 4+ years post-exposure.",
]
exam_box_data = [[Paragraph("<br/>".join(
    [f'<font color="#C62828">•</font> {p}' for p in exam_points]),
    body_style)
]]
exam_table = Table(exam_box_data, colWidths=[doc.width])
exam_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), colors.HexColor("#FFF9C4")),
    ("BOX",           (0,0), (-1,-1), 1.5, colors.HexColor("#F9A825")),
    ("TOPPADDING",    (0,0), (-1,-1), 8),
    ("BOTTOMPADDING", (0,0), (-1,-1), 8),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
]))
story.append(exam_table)
story.append(Spacer(1, 0.3*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  CONTRAINDICATIONS & SPECIAL POPULATIONS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header("🚫  CONTRAINDICATIONS & CAUTIONS", color=RED))
story.append(Spacer(1, 0.2*cm))

ci_items = [
    "Pre-existing renal impairment (relative CI — dose reduce or switch to carboplatin)",
    "Pre-existing ototoxicity / significant hearing loss",
    "Peripheral neuropathy",
    "Myelosuppression (bone marrow failure)",
    "Pregnancy (Category D — teratogenic, embryotoxic)",
    "Hypersensitivity to platinum compounds",
    "Concurrent use of other nephrotoxic drugs (aminoglycosides, NSAIDs) — use with extreme caution",
]
story.append(info_box("Contraindications / Cautions", ci_items,
    bg=colors.HexColor("#FFEBEE"), title_color=RED))
story.append(Spacer(1, 0.3*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  IMPORTANT REGIMENS CONTAINING CISPLATIN
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header("📌  IMPORTANT CISPLATIN-CONTAINING REGIMENS"))
story.append(Spacer(1, 0.2*cm))

reg_data = [
    ["Acronym", "Drugs", "Used For"],
    ["BEP",     "Bleomycin + Etoposide + cisPlatin",              "Testicular Ca ★ (90% cure)"],
    ["VBP/PVB", "Vinblastine + Bleomycin + cisPlatin",            "Testicular Ca (older)"],
    ["MVAC",    "MTX + Vinblastine + Adriamycin + Cisplatin",     "Bladder Ca"],
    ["GC",      "Gemcitabine + Cisplatin",                        "NSCLC, Bladder Ca"],
    ["TP",      "Paclitaxel (Taxol) + cisPlatin",                 "Ovarian Ca, Lung Ca"],
    ["CF/PF",   "Cisplatin + 5-FU",                               "H&N Ca, Esophageal Ca"],
    ["EP",      "Etoposide + cisPlatin",                          "SCLC, Testicular Ca"],
    ["CAP",     "Cyclophosphamide + Adriamycin + cisPlatin",      "Ovarian Ca (older)"],
]
reg_table = Table(reg_data, colWidths=[2.5*cm, 7*cm, doc.width-9.5*cm])
reg_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),  (-1,0),  DBLUE),
    ("TEXTCOLOR",     (0,0),  (-1,0),  colors.white),
    ("FONTNAME",      (0,0),  (-1,0),  "Helvetica-Bold"),
    ("FONTSIZE",      (0,0),  (-1,-1), 9.5),
    ("BACKGROUND",    (0,1),  (0,-1),  LBLUE),
    ("FONTNAME",      (0,1),  (0,-1),  "Helvetica-Bold"),
    ("TEXTCOLOR",     (0,1),  (0,-1),  DBLUE),
    ("ROWBACKGROUNDS",(0,1),  (-1,-1), [colors.white, LGREY]),
    ("BOX",           (0,0),  (-1,-1), 1, BLUE),
    ("INNERGRID",     (0,0),  (-1,-1), 0.4, colors.HexColor("#BBDEFB")),
    ("TOPPADDING",    (0,0),  (-1,-1), 5),
    ("BOTTOMPADDING", (0,0),  (-1,-1), 5),
    ("LEFTPADDING",   (0,0),  (-1,-1), 6),
    ("VALIGN",        (0,0),  (-1,-1), "TOP"),
]))
story.append(reg_table)
story.append(Spacer(1, 0.4*cm))

# ═══════════════════════════════════════════════════════════════════════════════
#  FOOTER
# ═══════════════════════════════════════════════════════════════════════════════
story.append(HRFlowable(width="100%", thickness=1, color=BLUE))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph(
    "High-Yield Pharmacology Notes — Cisplatin | Based on KD Tripathi (Essentials of Medical Pharmacology), "
    "Goodman & Gilman's, and Lippincott Pharmacology | For Educational Use Only",
    footer_style
))

# ─── Build ────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF generated: {OUTPUT}")
Running Command

cd /home/daytona/workspace/cisplatin-notes && python generate_pdf.py 2>&1

Your PDF is ready! Download it here:

Cisplatin HighYield KDTripathi

PDF Document · PDF


What's inside the PDF (aligned with KD Tripathi style):

SectionContent
Quick IdentityDrug class, chemical name, discovery, FDA approval, cell-cycle phase
Mechanism of ActionStep-by-step: Entry (CTR1) → Aquation → DNA adducts → Apoptosis
Pharmacokinetics (ADME)IV only, protein binding >90%, renal excretion, t½, hydration protocol
Therapeutic UsesBEP (testicular 90% cure), ovarian, bladder, H&N, lung, esophageal, radiation sensitizer
Adverse EffectsFull table: Nephrotoxicity (dose-limiting), N/V (most severe), ototoxicity, neuropathy, electrolyte wasting, anaphylaxis
Resistance MechanismsCTR1 downregulation, ATP7A/7B efflux, glutathione, NER, MMR loss
Platinum Analogues ComparisonCisplatin vs Carboplatin vs Oxaliplatin — full comparison table
Drug InteractionsAminoglycosides, taxanes, amifostine, aluminium equipment
High-Yield Exam Points14 starred exam-ready facts + "RONE + N/V" mnemonic
Important RegimensBEP, MVAC, GC, TP, CF, EP, CAP with their uses
ContraindicationsRenal failure, ototoxicity, pregnancy, etc.

Key facts to remember:

  • Dose-limiting toxicity = Nephrotoxicity (proximal + distal tubule)
  • Most emetogenic drug in oncology - mandatory 5-HT3 + NK1 + dexamethasone pre-medication
  • BEP regimen cures 90% of testicular cancers (★ top exam fact)
  • Aluminium inactivates cisplatin - plastic/glass equipment only
  • Carboplatin dose is calculated by AUC (Calvert formula), not mg/m²
  • Oxaliplatin unique toxicity = cold-induced neuropathy (colorectal cancer)
This is a shared conversation. Sign in to Orris to start your own chat.