| Q | Answer | Explanation |
|---|---|---|
| 1 | B) Atenolol | Atenolol is cardioselective (beta-1 selective). Propranolol, Timolol, and Sotalol are non-selective beta-blockers. |
| 2 | D) 4-5 | Steady-state is reached after ~4-5 half-lives regardless of dose during constant-rate IV infusion (first-order kinetics). |
| 3 | C) Reye's Syndrome | Aspirin in children with viral illness (influenza, varicella) causes Reye's Syndrome - acute hepatic encephalopathy with fatty liver degeneration. |
| 4 | A) Intramuscular adrenaline | IM adrenaline (epinephrine) 0.5 mg into the anterolateral thigh is the drug of choice. IV route is reserved for cardiac arrest only. |
| 5 | D) Long-acting beta-2 agonist (LABA) for maintenance therapy | Salmeterol is a LABA (duration ~12 hours), used for maintenance/prevention, NOT for acute rescue. |
| 6 | B) Inhibit the acetylcholinesterase enzyme | Neostigmine reversibly inhibits AChE, preventing ACh breakdown at the NMJ, increasing availability of ACh to act on remaining functional receptors. |
| 7 | C) Indomethacin | Indomethacin (NSAID) is first-line for acute gout. Allopurinol/probenecid are for chronic prophylaxis, not acute attacks. |
| 8 | C) Loratadine | Loratadine is a 2nd-generation H1 antagonist - non-sedating because it does not cross the blood-brain barrier well. Diphenhydramine, Promethazine, Chlorpheniramine are all 1st-generation (sedating). |
| 9 | C) Prazosin | Prazosin is a non-selective alpha-1 blocker that effectively treats both hypertension AND BPH. Tamsulosin/Silodosin are uro-selective (alpha-1A) - good for BPH but less effective for BP. Alfuzosin is similar. Prazosin addresses both. |
| 10 | Blocking voltage-gated sodium channels (not listed as option in image - answer is D: Blocking voltage-gated sodium channels) | Local anesthetics block Na+ channels from the intracellular side, preventing depolarization and nerve conduction. |
| 11 | C) Contraction leading to urine voiding | M3 receptors on the detrusor muscle mediate contraction → bladder empties. M3 antagonism (e.g., oxybutynin) causes urinary retention. |
| 12 | D) Alpha-1 receptor agonism | Phenylephrine is a direct alpha-1 agonist. It dilates the pupil (mydriasis) by contracting the radial/dilator pupillae muscle without cycloplegia. |
| 13 | B) Dextromethorphan | Dextromethorphan is a centrally acting antitussive for dry, non-productive cough. Ambroxol, Bromhexine, Guaifenesin are mucolytics/expectorants - for productive cough. |
| 14 | B) Methotrexate | Methotrexate is the gold-standard anchor DMARD for rheumatoid arthritis. It inhibits dihydrofolate reductase, suppressing the immune response. |
| 15 | C) Dantrolene | Dantrolene is the specific antidote for malignant hyperthermia. It inhibits ryanodine receptor (RyR1), preventing Ca²+ release from sarcoplasmic reticulum. |
| 16 | B) Substantially longer half-life | Prazosin has a half-life of ~3 hours vs. phentolamine's ~20 minutes. Phentolamine also blocks alpha-2 (causing reflex tachycardia), while prazosin is selective for alpha-1. Both options B and A are partially correct, but the PRIMARY pharmacological reason favoring prazosin for chronic use is its selectivity (alpha-1 only, no reflex tachycardia) - A) Selectively antagonizes alpha-1 receptors is the best answer. |
| 17 | B) Ligand-gated sodium channel | Nicotinic receptors (Nm at NMJ) are ionotropic receptors - ligand-gated Na+/K+ (predominantly Na+) ion channels. Binding of ACh opens the channel directly. |
| 18 | C) 5-HT3 serotonin receptors | Ondansetron is a selective 5-HT3 antagonist. It blocks serotonin receptors in the gut (afferent vagal fibers) and the chemoreceptor trigger zone. |
| 19 | B) Albumin | Albumin is the primary plasma protein binding acidic drugs (e.g., warfarin, NSAIDs, penicillins). Alpha-1 acid glycoprotein binds basic drugs. |
| 20 | A) Prior to the "aging" of the phosphorylated enzyme | Pralidoxime (2-PAM) must be given early (within 24-48 hours) before aging occurs. Once aging happens, the AChE-OP bond becomes irreversible and pralidoxime is ineffective. |
| Receptor | Location | Effect | Benefit in Anaphylaxis |
|---|---|---|---|
| Alpha-1 | Arteriolar smooth muscle | Vasoconstriction | Reverses hypotension, reduces angioedema |
| Beta-1 | Heart | Increased HR and contractility | Improves cardiac output |
| Beta-2 | Bronchial smooth muscle | Bronchodilation (via cAMP ↑) | Relieves bronchospasm |
| Beta-2 | Mast cells | Inhibits further mediator release (histamine, leukotrienes) | Stops the reaction |
| Class | Examples | Mechanism |
|---|---|---|
| Prostaglandin analogues | Latanoprost, Bimatoprost, Travoprost | Increase uveoscleral outflow |
| Beta-blockers | Timolol, Betaxolol | Decrease aqueous humor production |
| Alpha-2 agonists | Brimonidine, Apraclonidine | Decrease production + increase uveoscleral outflow |
| Carbonic anhydrase inhibitors | Dorzolamide (topical), Acetazolamide (systemic) | Decrease aqueous humor production |
| Miotics (Cholinergics) | Pilocarpine | Increase trabecular outflow (open drainage angle) |
| Rho kinase inhibitors | Netarsudil | Increase trabecular outflow |
| Feature | Zero-Order Kinetics | First-Order Kinetics |
|---|---|---|
| Definition | Rate of elimination is constant, independent of drug concentration | Rate of elimination is proportional to drug concentration |
| Equation | dC/dt = -k₀ (constant) | dC/dt = -kC |
| Amount eliminated | Constant amount per unit time | Constant fraction (%) per unit time |
| Half-life | Not constant - increases as concentration rises | Constant, independent of concentration |
| Plasma concentration curve | Linear (straight line) on regular scale | Exponential decay (straight line on log scale) |
| Saturation | Elimination enzymes are saturated | Elimination enzymes are NOT saturated |
| Steady-state | Cannot predict easily; accumulation risk | Reached predictably in ~4-5 half-lives |
| Examples | Ethanol, Aspirin (high dose), Phenytoin (high dose), Heparin | Most drugs at therapeutic doses (e.g., penicillin, digoxin, paracetamol) |
| Clinical significance | Small dose increases cause disproportionately large rises in plasma levels → toxicity risk | Predictable, proportional relationship between dose and plasma level |
| Michaelis-Menten | Occurs when concentration >> Km | Occurs when concentration << Km |
| Drug | Receptor | Therapeutic Use |
|---|---|---|
| Sumatriptan (triptan) | 5-HT1B/1D agonist | Acute migraine treatment (causes cranial vasoconstriction + inhibits CGRP release) |
| Buspirone | 5-HT1A partial agonist | Generalized anxiety disorder (GAD) |
| Metoclopramide | 5-HT4 agonist (+ D2 antagonist) | Prokinetic - gastroparesis, GERD, nausea |
| Ergotamine | 5-HT1 partial agonist | Migraine (older drug) |
| Drug | Receptor | Therapeutic Use |
|---|---|---|
| Ondansetron | 5-HT3 antagonist | CINV, post-operative nausea and vomiting |
| Cyproheptadine | 5-HT2 + H1 antagonist | Carcinoid syndrome, allergic conditions, appetite stimulation |
| Ketanserin | 5-HT2A antagonist | Hypertension (limited use) |
| Clozapine/Risperidone | 5-HT2A + D2 antagonist | Schizophrenia (atypical antipsychotics) |
| Methysergide | 5-HT2 antagonist | Migraine prophylaxis (limited, risk of fibrosis) |
| Toxicity | Cause/Mechanism |
|---|---|
| Respiratory paralysis | Paralysis of respiratory muscles → main life-threatening complication → requires mechanical ventilation |
| Histamine release | Atracurium, mivacurium → bronchospasm, hypotension, urticaria |
| Malignant hyperthermia | Succinylcholine (depolarizing) + volatile anesthetics → uncontrolled Ca²+ release |
| Hyperkalemia | Succinylcholine in burns, crush, denervation injuries → fatal arrhythmias |
| Prolonged paralysis | In pseudocholinesterase deficiency (succinylcholine apnea - hours of paralysis instead of minutes) |
| Cardiovascular effects | Pancuronium → tachycardia (vagolytic); vecuronium → minimal cardiovascular effects |
| Phase II block | Succinylcholine in high doses → converts to non-depolarizing-like block |
Make this in pdf guild
ls /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/phar…
~/pharmacology-exam/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, mm
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, HRFlowable, PageBreak, KeepTogether)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus.flowables import HRFlowable
output_path = "/home/daytona/workspace/pharmacology-exam/Pharmacology_Exam_Answer_Guide.pdf"
doc = SimpleDocTemplate(
output_path,
pagesize=A4,
rightMargin=2*cm,
leftMargin=2*cm,
topMargin=2.5*cm,
bottomMargin=2*cm,
title="Pharmacology Exam - Complete Answer Guide",
author="Orris AI"
)
styles = getSampleStyleSheet()
# Custom styles
title_style = ParagraphStyle(
'CustomTitle',
parent=styles['Title'],
fontSize=16,
textColor=colors.HexColor('#1a237e'),
spaceAfter=4,
spaceBefore=0,
alignment=TA_CENTER,
fontName='Helvetica-Bold'
)
subtitle_style = ParagraphStyle(
'SubTitle',
parent=styles['Normal'],
fontSize=11,
textColor=colors.HexColor('#283593'),
spaceAfter=2,
alignment=TA_CENTER,
fontName='Helvetica'
)
section_heading = ParagraphStyle(
'SectionHeading',
parent=styles['Heading1'],
fontSize=13,
textColor=colors.white,
backColor=colors.HexColor('#1a237e'),
spaceBefore=14,
spaceAfter=6,
leftIndent=-10,
rightIndent=-10,
borderPadding=(4, 8, 4, 8),
fontName='Helvetica-Bold'
)
question_heading = ParagraphStyle(
'QuestionHeading',
parent=styles['Heading2'],
fontSize=11,
textColor=colors.HexColor('#1a237e'),
spaceBefore=10,
spaceAfter=3,
fontName='Helvetica-Bold'
)
sub_heading = ParagraphStyle(
'SubHeading',
parent=styles['Heading3'],
fontSize=10,
textColor=colors.HexColor('#283593'),
spaceBefore=7,
spaceAfter=2,
fontName='Helvetica-Bold'
)
body_style = ParagraphStyle(
'BodyText',
parent=styles['Normal'],
fontSize=9.5,
leading=14,
spaceAfter=4,
alignment=TA_JUSTIFY,
fontName='Helvetica'
)
bullet_style = ParagraphStyle(
'Bullet',
parent=styles['Normal'],
fontSize=9.5,
leading=13,
leftIndent=14,
spaceAfter=2,
fontName='Helvetica'
)
answer_box = ParagraphStyle(
'AnswerBox',
parent=styles['Normal'],
fontSize=10,
leading=14,
backColor=colors.HexColor('#e8eaf6'),
borderColor=colors.HexColor('#3949ab'),
borderWidth=1,
borderPadding=(4, 8, 4, 8),
spaceBefore=2,
spaceAfter=6,
fontName='Helvetica-Bold'
)
note_style = ParagraphStyle(
'Note',
parent=styles['Normal'],
fontSize=9,
leading=13,
textColor=colors.HexColor('#b71c1c'),
leftIndent=14,
fontName='Helvetica-Oblique'
)
footer_style = ParagraphStyle(
'Footer',
parent=styles['Normal'],
fontSize=8,
textColor=colors.grey,
alignment=TA_CENTER
)
def section_bar(text):
"""Returns a colored section header as a table."""
data = [[Paragraph(f" {text}", ParagraphStyle(
'SH', parent=styles['Normal'], fontSize=12, textColor=colors.white,
fontName='Helvetica-Bold', leading=16
))]]
t = Table(data, colWidths=[17*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), colors.HexColor('#1a237e')),
('ROWPADDING', (0,0), (-1,-1), 6),
('LEFTPADDING', (0,0), (-1,-1), 10),
]))
return t
def q_header(text):
data = [[Paragraph(f" {text}", ParagraphStyle(
'QH', parent=styles['Normal'], fontSize=10.5, textColor=colors.white,
fontName='Helvetica-Bold', leading=14
))]]
t = Table(data, colWidths=[17*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), colors.HexColor('#3949ab')),
('ROWPADDING', (0,0), (-1,-1), 4),
('LEFTPADDING', (0,0), (-1,-1), 10),
]))
return t
def answer_highlight(text):
data = [[Paragraph(f"<b>Answer: {text}</b>", ParagraphStyle(
'AH', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor('#1b5e20'),
fontName='Helvetica-Bold', leading=14
))]]
t = Table(data, colWidths=[17*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), colors.HexColor('#e8f5e9')),
('ROWPADDING', (0,0), (-1,-1), 4),
('LEFTPADDING', (0,0), (-1,-1), 10),
('BOX', (0,0), (-1,-1), 1, colors.HexColor('#388e3c')),
]))
return t
def make_table(headers, rows, col_widths=None):
if col_widths is None:
col_widths = [17*cm / len(headers)] * len(headers)
header_row = [Paragraph(f"<b>{h}</b>", ParagraphStyle('TH', parent=styles['Normal'],
fontSize=9, textColor=colors.white, fontName='Helvetica-Bold', leading=12)) for h in headers]
body_rows = []
for row in rows:
body_rows.append([Paragraph(str(cell), ParagraphStyle('TD', parent=styles['Normal'],
fontSize=9, leading=12, fontName='Helvetica')) for cell in row])
data = [header_row] + body_rows
t = Table(data, colWidths=col_widths, repeatRows=1)
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), colors.HexColor('#283593')),
('TEXTCOLOR', (0,0), (-1,0), colors.white),
('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#9fa8da')),
('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.white, colors.HexColor('#f3f4fc')]),
('VALIGN', (0,0), (-1,-1), 'TOP'),
('ROWPADDING', (0,0), (-1,-1), 4),
('LEFTPADDING', (0,0), (-1,-1), 6),
('RIGHTPADDING', (0,0), (-1,-1), 6),
]))
return t
# ─────────────────────────────────────────────────
# BUILD CONTENT
# ─────────────────────────────────────────────────
story = []
# ── COVER ──────────────────────────────────────
story.append(Spacer(1, 1.5*cm))
story.append(Paragraph("Pharmacology Exam", title_style))
story.append(Paragraph("Complete Answer Guide", ParagraphStyle('CT2', parent=styles['Normal'],
fontSize=14, textColor=colors.HexColor('#3949ab'), alignment=TA_CENTER, fontName='Helvetica-Bold', spaceAfter=4)))
story.append(Spacer(1, 0.3*cm))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a237e')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph("Abhishek I Mishra Memorial Medical College & Research, Bhilai (CG)", subtitle_style))
story.append(Paragraph("Department of Pharmacology", subtitle_style))
story.append(Paragraph("Theory Supplementary and Missed Examination | Max Marks: 100", subtitle_style))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#9fa8da')))
story.append(Spacer(1, 0.5*cm))
# ── SECTION I: MCQ ─────────────────────────────
story.append(section_bar("SECTION I: MCQ ANSWERS (1×20 = 20 Marks)"))
story.append(Spacer(1, 0.3*cm))
mcq_headers = ["Q", "Correct Answer", "Key Explanation"]
mcq_rows = [
["1", "B) Atenolol", "Cardioselective (beta-1 selective). Propranolol, Timolol, Sotalol are non-selective."],
["2", "D) 4-5 half-lives", "Steady-state is reached in ~4-5 half-lives during constant-rate IV infusion (first-order kinetics)."],
["3", "C) Reye's Syndrome", "Aspirin + viral illness in children → acute hepatic encephalopathy + fatty liver (Reye's Syndrome)."],
["4", "A) IM Adrenaline", "Epinephrine 0.5 mg IM (anterolateral thigh) is DOC. IV only for cardiac arrest."],
["5", "D) Long-acting beta-2 agonist (LABA)", "Salmeterol is a LABA (duration ~12 hr), for maintenance/prevention — NOT acute rescue."],
["6", "B) Inhibit acetylcholinesterase", "Neostigmine reversibly inhibits AChE → ACh accumulates at NMJ → acts on remaining functional receptors."],
["7", "C) Indomethacin", "Indomethacin (NSAID) is first-line for acute gout. Allopurinol/probenecid are for chronic prophylaxis."],
["8", "C) Loratadine", "2nd-generation H1 antagonist — non-sedating (does not cross BBB). Diphenhydramine, Promethazine, Chlorpheniramine are 1st-gen (sedating)."],
["9", "C) Prazosin", "Non-selective alpha-1 blocker treating both hypertension AND BPH. Tamsulosin/Silodosin are uro-selective (BPH only)."],
["10", "Blocking voltage-gated Na+ channels", "Local anesthetics block Na+ channels intracellularly, preventing depolarization and action potential propagation."],
["11", "C) Contraction → urine voiding", "M3 on detrusor = contraction → bladder empties. M3 antagonists (e.g., oxybutynin) cause urinary retention."],
["12", "D) Alpha-1 receptor agonism", "Phenylephrine is a direct alpha-1 agonist → contracts dilator pupillae → mydriasis (no cycloplegia)."],
["13", "B) Dextromethorphan", "Central antitussive for dry/non-productive cough. Ambroxol/Bromhexine/Guaifenesin are mucolytics for productive cough."],
["14", "B) Methotrexate", "Gold-standard anchor DMARD for RA. Inhibits dihydrofolate reductase → suppresses immune response."],
["15", "C) Dantrolene", "Specific antidote for malignant hyperthermia. Inhibits RyR1 receptor → blocks sarcoplasmic Ca2+ release."],
["16", "A) Selectively antagonizes alpha-1 receptors", "Prazosin is alpha-1 selective — no alpha-2 blockade, so no reflex tachycardia (unlike phentolamine)."],
["17", "B) Ligand-gated sodium channel", "Nicotinic Nm receptors are ionotropic — direct Na+/K+ ion channels, gated by ACh binding."],
["18", "C) 5-HT3 serotonin receptors", "Ondansetron blocks 5-HT3 in gut afferents and CTZ → prevents CINV."],
["19", "B) Albumin", "Albumin is the main plasma protein binding acidic drugs (warfarin, NSAIDs, penicillins). Alpha-1 AGP binds basic drugs."],
["20", "A) Prior to 'aging' of the enzyme", "Pralidoxime must be given early (before aging — irreversible dealkylation of AChE-OP bond). After aging, it is completely ineffective."],
]
story.append(make_table(mcq_headers, mcq_rows, col_widths=[1*cm, 4.5*cm, 11.5*cm]))
story.append(Spacer(1, 0.5*cm))
# ── SECTION II: LONG QUESTIONS ─────────────────
story.append(PageBreak())
story.append(section_bar("SECTION II: STRUCTURED LONG QUESTIONS (2×10 = 20 Marks)"))
story.append(Spacer(1, 0.4*cm))
# Q1 OP Poisoning
story.append(q_header("Question 1: Organophosphate (OP) Poisoning (10 Marks)"))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Clinical Scenario:</b> 35-year-old farmer — excessive salivation, vomiting, cramps, "
"involuntary urination, bradycardia (HR 50), hypotension (100/60 mmHg), pinpoint pupils, "
"muscle fasciculations, garlic odor on breath.",
ParagraphStyle('ClinBox', parent=styles['Normal'], fontSize=9.5, leading=13,
backColor=colors.HexColor('#fff8e1'), borderColor=colors.HexColor('#f9a825'),
borderWidth=1, borderPadding=(4,8,4,8), spaceAfter=8, fontName='Helvetica')
))
story.append(Paragraph("a) Most Likely Diagnosis + Molecular Mechanism of Toxicity (3 Marks)", sub_heading))
story.append(answer_highlight("Acute Organophosphate Poisoning — Cholinergic Crisis"))
story.append(Paragraph("<b>Molecular Mechanism:</b>", body_style))
for pt in [
"OP compounds (e.g., malathion, parathion) are <b>irreversible inhibitors of acetylcholinesterase (AChE)</b>.",
"They covalently bind via <b>phosphorylation of the serine residue</b> at the esteratic site of AChE.",
"AChE cannot hydrolyze ACh → ACh accumulates at all cholinergic synapses (muscarinic + nicotinic).",
"Excess ACh overstimulates <b>muscarinic receptors</b> → SLUDGE/DUMBELS features (salivation, lacrimation, urination, diarrhea, GI cramps, emesis + bradycardia, bronchoconstriction).",
"Excess ACh overstimulates <b>nicotinic receptors</b> → NMJ fasciculations → paralysis; ganglionic stimulation → early hypertension.",
"Garlic odor is characteristic of many organophosphate compounds.",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Paragraph("b) Pharmacological Management + Mechanism + Clinical Endpoint (4 Marks)", sub_heading))
story.append(Paragraph("<b>Step 1 — Primary Life-Saving Drug: ATROPINE (IV)</b>", body_style))
for pt in [
"<b>Mechanism:</b> Competitive antagonist at muscarinic (M1, M2, M3) receptors. Blocks effects of accumulated ACh at muscarinic sites.",
"Given IV in large escalating doses (2 mg every 5–10 min; may need hundreds of mg).",
"Does NOT reverse nicotinic effects (fasciculations, paralysis).",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Paragraph("<b>Clinical Endpoint (Atropinization):</b>", body_style))
for pt in [
"Drying of secretions (dry mouth, cessation of bronchial secretions) — <b>most important endpoint</b>",
"Heart rate >80 beats/min",
"Mydriasis (pupil dilation)",
"Dry, flushed skin",
]:
story.append(Paragraph(f" → {pt}", bullet_style))
story.append(Paragraph("<b>Step 2 — Pralidoxime (2-PAM): Enzyme Reactivator</b>", body_style))
for pt in [
"<b>Mechanism:</b> Oxime compound — nucleophilic attack on the phosphorus of the AChE-OP complex → regenerates free, active AChE.",
"Addresses BOTH muscarinic AND nicotinic effects.",
"Must be given early, <b>before aging occurs</b>.",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Paragraph("<b>Supportive:</b> Airway management, O₂, decontamination, benzodiazepines for seizures.", body_style))
story.append(Paragraph("c) Enzyme 'Aging' and Clinical Impact on Pralidoxime (3 Marks)", sub_heading))
for pt in [
"<b>Aging:</b> After OP binds AChE, time-dependent <b>dealkylation</b> (loss of one alkyl group from the phosphate moiety) occurs.",
"This makes the OP-AChE bond <b>extremely stable and resistant to nucleophilic attack</b> — enzyme is permanently inactivated.",
"Time to aging varies: dimethyl compounds age in hours; diethyl compounds take longer (days).",
"<b>Clinical impact:</b> Pralidoxime MUST be given before aging (ideally within 6–12 hrs, latest 24–48 hrs).",
"After aging, pralidoxime is <b>completely ineffective</b>.",
"Recovery then depends solely on synthesis of new AChE (takes weeks) and ongoing atropine support.",
"This underscores the importance of early diagnosis and treatment.",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Spacer(1, 0.5*cm))
story.append(HRFlowable(width="100%", thickness=0.5, color=colors.HexColor('#9fa8da')))
story.append(Spacer(1, 0.3*cm))
# Q2 Propranolol + Aspirin in Asthma
story.append(q_header("Question 2: Propranolol + Aspirin Precipitating Asthma Exacerbation (3+3+2+2 = 10 Marks)"))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Clinical Scenario:</b> 45-year-old known asthmatic on Propranolol (migraine prophylaxis) who self-medicated "
"with high-dose Aspirin → severe bronchospasm within 2 hours.",
ParagraphStyle('ClinBox', parent=styles['Normal'], fontSize=9.5, leading=13,
backColor=colors.HexColor('#fff8e1'), borderColor=colors.HexColor('#f9a825'),
borderWidth=1, borderPadding=(4,8,4,8), spaceAfter=8, fontName='Helvetica')
))
story.append(Paragraph("a) Propranolol Mechanism + Asthma Exacerbation (3 Marks)", sub_heading))
for pt in [
"Propranolol is a <b>non-selective beta-adrenergic blocker</b> (blocks beta-1 AND beta-2 receptors).",
"Endogenous catecholamines normally act on <b>beta-2 receptors in bronchial smooth muscle</b> → adenylate cyclase → increased cAMP → bronchodilation.",
"By blocking beta-2 receptors, Propranolol removes physiological bronchodilator tone.",
"Unopposed <b>parasympathetic (muscarinic) activity</b> dominates → bronchoconstriction.",
"Beta-2 blockade also inhibits mast cell stabilization → facilitates mediator release.",
"In an asthmatic with hyperreactive airways, this precipitates severe, potentially life-threatening bronchospasm.",
"<i>Note: Cardioselective beta-blockers (atenolol) are relatively safer but still not ideal in asthmatics.</i>",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Paragraph("b) Aspirin Mechanism + Asthma Exacerbation (3 Marks)", sub_heading))
for pt in [
"Aspirin irreversibly inhibits <b>COX-1 and COX-2</b> by acetylating a serine residue.",
"Blocks conversion of arachidonic acid to prostaglandins and thromboxanes.",
"With COX pathway blocked, arachidonic acid is <b>shunted into the 5-lipoxygenase (5-LOX) pathway</b>.",
"This dramatically increases production of <b>cysteinyl leukotrienes (LTC4, LTD4, LTE4)</b>.",
"Leukotrienes are potent bronchoconstrictors (1000× more potent than histamine), cause mucosal edema and increased mucus secretion.",
"This is <b>'Aspirin-Exacerbated Respiratory Disease' (AERD) / Samter's Triad</b> — occurs in ~10% of asthmatics.",
"All NSAIDs can cross-react; paracetamol at standard doses is safe.",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Paragraph("c) Four Therapeutic Uses of Propranolol (2 Marks)", sub_heading))
for i, use in enumerate([
"Hypertension — reduces cardiac output and renin secretion",
"Angina pectoris — reduces myocardial O₂ demand",
"Cardiac arrhythmias — SVT, ventricular arrhythmias",
"Migraine prophylaxis — stabilizes cerebral vasculature",
"(Also: Thyrotoxicosis, essential tremor, anxiety/performance, pheochromocytoma, post-MI)",
], 1):
story.append(Paragraph(f"{i}. {use}", bullet_style))
story.append(Paragraph("d) Two Therapeutic Uses + Two Side Effects of Aspirin (2 Marks)", sub_heading))
story.append(Paragraph("<b>Therapeutic Uses:</b>", body_style))
for use in [
"Anti-platelet (75–150 mg): Prevention of MI, stroke, TIA",
"Analgesic/antipyretic/anti-inflammatory: Pain, fever, rheumatic fever",
]:
story.append(Paragraph(f"• {use}", bullet_style))
story.append(Paragraph("<b>Side Effects:</b>", body_style))
for se in [
"Peptic ulcer/GI bleeding — COX-1 inhibition reduces cytoprotective PGE2/PGI2 in gastric mucosa",
"Reye's Syndrome in children; Salicylism (tinnitus, vertigo, nausea) at high doses; bleeding tendency",
]:
story.append(Paragraph(f"• {se}", bullet_style))
# ── SECTION III ─────────────────────────────────
story.append(PageBreak())
story.append(section_bar("SECTION III: SHORT NOTES — REASONING (5×3 = 15 Marks)"))
story.append(Spacer(1, 0.3*cm))
reasoning_qs = [
{
"title": "1. Why non-selective beta-blockers are avoided in Diabetes Mellitus",
"points": [
"<b>Hypoglycemia masking:</b> Warning symptoms of hypoglycemia (tachycardia, palpitations, tremor) are mediated by beta-2 receptors. Non-selective blockers blunt these → patient is unaware of dangerous hypoglycemia. <i>(Sweating is preserved — it is cholinergic.)</i>",
"<b>Impaired glycogenolysis:</b> Beta-2 stimulation in the liver promotes glycogenolysis (conversion of glycogen → glucose) in response to hypoglycemia. Non-selective blockers inhibit this → prolonged, more severe hypoglycemia.",
"<b>Impaired glucagon secretion:</b> Beta-adrenergic stimulation aids counter-regulatory glucagon release.",
"<i>Cardioselective beta-1 blockers (atenolol, metoprolol) are relatively safer as they have less effect on beta-2-mediated glucose metabolism.</i>",
]
},
{
"title": "2. Why drugs with high plasma protein binding have long duration of action",
"points": [
"Plasma proteins (mainly albumin) act as a <b>reservoir</b> — the drug-protein complex is pharmacologically inactive and too large to be filtered or metabolized.",
"Only <b>free (unbound) drug</b> is active, can cross membranes, reach the site of action, be metabolized, or be excreted.",
"As free drug is metabolized/excreted, bound drug dissociates and replenishes the free fraction → maintains drug levels longer.",
"This equilibrium (drug ⇌ protein-drug complex) means the drug is 'stored' in plasma, slowly releasing → prolonged effect.",
"<b>Example:</b> Warfarin (99% protein bound) has a half-life of ~40 hours. Volume of distribution is also reduced.",
]
},
{
"title": "3. Why Succinylcholine is contraindicated in Burns patients",
"points": [
"Thermal injury causes <b>proliferation (upregulation) of extra-junctional nAChRs</b> throughout the entire muscle membrane. Begins 24–48 hrs post-burn, peaks at ~2 weeks.",
"When succinylcholine is given, it depolarizes ALL these extra-junctional receptors simultaneously.",
"Causes <b>massive uncontrolled efflux of potassium</b> from muscle cells → life-threatening <b>hyperkalemia</b> (K+ can rise 5–10 mEq/L acutely).",
"Can cause <b>ventricular fibrillation and cardiac arrest</b>.",
"Same risk: crush injuries, denervation, prolonged immobilization, UMN/LMN lesions.",
"Contraindication begins ~48 hrs after burn and persists up to 1–2 years.",
]
},
{
"title": "4. Why Pralidoxime is NOT used in Carbamate poisoning",
"points": [
"Carbamates (e.g., neostigmine, carbaryl) inhibit AChE <b>reversibly</b> — the carbamylated AChE complex hydrolyzes spontaneously within 30–60 minutes.",
"In OP poisoning, pralidoxime breaks the stable phosphate bond before aging.",
"In carbamate poisoning, <b>aging does NOT occur</b> — AChE automatically regenerates on its own.",
"Pralidoxime is unnecessary; furthermore, evidence suggests it may <b>worsen</b> carbamate toxicity (enhances AChE inhibition or has direct toxic effects).",
"<b>Treatment:</b> Atropine alone + supportive care.",
]
},
{
"title": "5. Why NSAIDs cause peptic ulcer",
"points": [
"<b>Direct (local) effect:</b> NSAIDs are weak acids. In acidic gastric environment, they remain un-ionized and lipid-soluble → enter gastric epithelial cells → become ionized intracellularly → trapped → direct cellular toxicity.",
"<b>Systemic (main) mechanism — COX-1 inhibition:</b> COX-1 is constitutively expressed in gastric mucosa, producing cytoprotective prostaglandins (PGE2, PGI2).",
"These prostaglandins: stimulate mucus and HCO₃⁻ secretion, maintain mucosal blood flow, inhibit gastric acid, promote epithelial proliferation.",
"NSAIDs inhibit COX-1 → reduced protective prostaglandins → reduced mucus/HCO₃⁻ → increased acid exposure → mucosal erosion → peptic ulcer.",
"<b>Note:</b> Selective COX-2 inhibitors (celecoxib) spare COX-1 → lower GI risk (but higher cardiovascular risk).",
]
},
]
for q in reasoning_qs:
story.append(Paragraph(q["title"], question_heading))
for pt in q["points"]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Spacer(1, 0.3*cm))
# ── SECTION IV ─────────────────────────────────
story.append(PageBreak())
story.append(section_bar("SECTION IV: SHORT NOTES — APPLIED (4×5 = 20 Marks)"))
story.append(Spacer(1, 0.3*cm))
# Q1 TB + OCP
story.append(q_header("Question 1: TB Drugs + OCP Failure → Pregnancy (1+3+1)"))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("a) Drug Responsible:", sub_heading))
story.append(answer_highlight("Rifampicin"))
story.append(Paragraph("b) Pharmacokinetic Mechanism (3 Marks):", sub_heading))
for pt in [
"Rifampicin is a <b>potent inducer of hepatic CYP450 enzymes</b> (CYP3A4, CYP2C9, CYP2C19) and P-glycoprotein.",
"Combined oral contraceptive pills (COCPs) contain ethinylestradiol and progestins, primarily metabolized by CYP3A4.",
"Rifampicin induction dramatically <b>increases first-pass metabolism</b> of both estrogen and progestin components.",
"Plasma levels of contraceptive hormones drop by 50–70% → fall below threshold needed to suppress ovulation, thicken cervical mucus, and prevent implantation.",
"Result: <b>Contraceptive failure</b> → unintended pregnancy.",
"Effect begins within days of starting Rifampicin and persists 4–8 weeks after stopping.",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Paragraph("c) Alternative Contraceptive Advice (1 Mark):", sub_heading))
for pt in [
"<b>Barrier methods</b> (condoms ± spermicide) — most reliable non-hormonal option during TB treatment.",
"<b>Intrauterine device (IUD/copper-T)</b> — highly effective, not affected by enzyme induction.",
"Advise protection continues for at least 4–8 weeks after completing Rifampicin.",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Spacer(1, 0.4*cm))
# Q2 Anaphylaxis
story.append(q_header("Question 2: Anaphylactic Shock — Bee Sting (1+3+1)"))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("a) Drug of Choice:", sub_heading))
story.append(answer_highlight("Adrenaline (Epinephrine) 0.5 mg IM — anterolateral thigh (1:1000 solution)"))
story.append(Paragraph("b) Mechanism reversing bronchospasm + hypotension (3 Marks):", sub_heading))
mech_table_headers = ["Receptor", "Location", "Effect", "Benefit in Anaphylaxis"]
mech_table_rows = [
["Alpha-1", "Arteriolar smooth muscle", "Vasoconstriction", "Reverses hypotension; reduces angioedema"],
["Beta-1", "Heart", "↑ HR + contractility", "Improves cardiac output"],
["Beta-2", "Bronchial smooth muscle", "Bronchodilation (cAMP ↑)", "Relieves bronchospasm"],
["Beta-2", "Mast cells", "Inhibits mediator release", "Stops the allergic cascade"],
]
story.append(make_table(mech_table_headers, mech_table_rows, col_widths=[2.5*cm, 4.5*cm, 4.5*cm, 5.5*cm]))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("c) Why Noradrenaline is NOT suitable (1 Mark):", sub_heading))
for pt in [
"Noradrenaline acts mainly on alpha-1 and alpha-2 receptors with <b>very minimal beta-2 activity</b>.",
"Will cause vasoconstriction (helps BP) but <b>cannot reverse bronchospasm</b>.",
"Also causes reflex bradycardia (via baroreceptor reflex from vasoconstriction).",
"Lacks mast cell stabilizing effect. Addresses only cardiovascular component — not bronchospasm.",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Spacer(1, 0.4*cm))
# Q3 Allopurinol
story.append(q_header("Question 3: Allopurinol in Acute Gout (2+1+2)"))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("a) Why Allopurinol worsened the acute attack (2 Marks):", sub_heading))
for pt in [
"Allopurinol is a <b>xanthine oxidase inhibitor</b> that lowers serum uric acid.",
"Starting during an acute attack causes <b>rapid decrease in serum uric acid</b> → uric acid gradient.",
"This <b>mobilizes urate crystals</b> from existing tophaceous deposits into synovial fluid.",
"Fluctuating uric acid levels also promote <b>new crystal formation</b> in joint space.",
"Crystals trigger acute inflammation → neutrophil influx → lysosomal enzyme release → worsening pain.",
"This is called a <b>'mobilization flare'</b>.",
"<b>Rule:</b> Allopurinol must NEVER be started during an acute attack. Initiate 2–4 weeks after resolution, under NSAID cover.",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Paragraph("b) Mechanism of Allopurinol in chronic gout (1 Mark):", sub_heading))
for pt in [
"Allopurinol (and its active metabolite <b>oxypurinol</b>) competitively/non-competitively inhibits <b>xanthine oxidase</b>.",
"Normally: hypoxanthine → xanthine → <b>uric acid</b> (via xanthine oxidase).",
"Inhibition → accumulation of hypoxanthine and xanthine (more soluble) → reduced uric acid production.",
"Over time: lowers serum and urinary uric acid → dissolves tophi → prevents new crystal deposition.",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Paragraph("c) Cellular Target of Colchicine in relieving acute pain (2 Marks):", sub_heading))
for pt in [
"Colchicine binds to <b>beta-tubulin subunits</b>, preventing polymerization into <b>microtubules</b>.",
"Disrupts microtubule assembly → impairs <b>neutrophil motility and chemotaxis</b> → neutrophils cannot migrate to the crystal deposition site.",
"Also inhibits <b>NLRP3 inflammasome</b> → reduces IL-1β production.",
"Inhibits neutrophil phagocytosis of crystals and degranulation.",
"Net effect: Inflammation is suppressed → pain relief. <i>Colchicine does NOT lower uric acid levels.</i>",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Spacer(1, 0.4*cm))
# Q4 POAG
story.append(q_header("Question 4: Primary Open-Angle Glaucoma (POAG) (2+3)"))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("a) Classification of drugs used in treatment (2 Marks):", sub_heading))
poag_headers = ["Class", "Examples", "Mechanism"]
poag_rows = [
["Prostaglandin analogues", "Latanoprost, Bimatoprost, Travoprost", "Increase uveoscleral outflow"],
["Beta-blockers", "Timolol, Betaxolol", "Decrease aqueous humor production"],
["Alpha-2 agonists", "Brimonidine, Apraclonidine", "Decrease production + increase uveoscleral outflow"],
["CA inhibitors", "Dorzolamide (topical), Acetazolamide (oral)", "Decrease aqueous humor production"],
["Miotics/Cholinergics", "Pilocarpine", "Increase trabecular outflow (open drainage angle)"],
["Rho kinase inhibitors", "Netarsudil", "Increase trabecular outflow"],
]
story.append(make_table(poag_headers, poag_rows, col_widths=[4*cm, 6*cm, 7*cm]))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("b) Mechanism of Latanoprost and Timolol individually (3 Marks):", sub_heading))
story.append(Paragraph("<b>Latanoprost:</b>", body_style))
for pt in [
"Prostaglandin F2α (FP receptor) analogue — prodrug converted to latanoprost acid by corneal esterases.",
"Activates <b>FP prostanoid receptors</b> in ciliary body and trabecular meshwork.",
"Remodels extracellular matrix of ciliary muscle → increases <b>uveoscleral (unconventional) outflow</b> by 50–100%.",
"Does NOT significantly affect aqueous humor production.",
"Administered once daily at night. Side effects: iris/periorbital pigmentation, eyelash growth.",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Paragraph("<b>Timolol:</b>", body_style))
for pt in [
"<b>Non-selective beta-adrenergic blocker</b> (beta-1 + beta-2).",
"Ciliary body epithelium has abundant <b>beta-2 receptors</b> — their activation by catecholamines → adenylate cyclase → cAMP → aqueous humor production.",
"Timolol blocks beta-2 receptors → decreased cAMP → <b>reduced aqueous humor secretion</b> by ~25–35%.",
"Does NOT affect outflow.",
"Systemic absorption can cause bradycardia, bronchospasm — <b>contraindicated in asthma/COPD</b>.",
"<i>Combined: Latanoprost ↑ outflow + Timolol ↓ production → complementary, additive IOP reduction.</i>",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
# ── SECTION V ─────────────────────────────────
story.append(PageBreak())
story.append(section_bar("SECTION V: SHORT NOTES (5×5 = 25 Marks)"))
story.append(Spacer(1, 0.3*cm))
# SN1 Zero vs First Order
story.append(Paragraph("1. Zero-Order vs First-Order Kinetics", question_heading))
zo_fo_headers = ["Feature", "Zero-Order Kinetics", "First-Order Kinetics"]
zo_fo_rows = [
["Definition", "Rate of elimination is CONSTANT, independent of concentration", "Rate of elimination is PROPORTIONAL to concentration"],
["Equation", "dC/dt = -k₀ (constant)", "dC/dt = -kC"],
["Amount eliminated", "Constant amount per unit time", "Constant fraction (%) per unit time"],
["Half-life", "NOT constant — increases as concentration rises", "CONSTANT, independent of concentration"],
["Plasma curve", "Linear (straight line) on regular scale", "Exponential decay (straight on log scale)"],
["Saturation", "Elimination enzymes ARE saturated", "Elimination enzymes are NOT saturated"],
["Steady-state", "Cannot predict easily; accumulation risk", "Reached in ~4-5 half-lives (predictable)"],
["Examples", "Ethanol, high-dose Aspirin, high-dose Phenytoin, Heparin", "Most drugs at therapeutic doses (penicillin, digoxin, paracetamol)"],
["Clinical significance", "Small dose ↑ causes disproportionately large rise in levels → toxicity risk", "Predictable, proportional dose-level relationship"],
["Michaelis-Menten", "Concentration >> Km (saturated)", "Concentration << Km (unsaturated)"],
]
story.append(make_table(zo_fo_headers, zo_fo_rows, col_widths=[4.5*cm, 6.25*cm, 6.25*cm]))
story.append(Spacer(1, 0.4*cm))
# SN2 Alpha blockers ADRs
story.append(Paragraph("2. Adverse Effects of Alpha-Blockers", question_heading))
story.append(Paragraph("<b>Non-selective alpha-blockers</b> (phentolamine, phenoxybenzamine):", body_style))
for pt in [
"Reflex tachycardia (alpha-2 blockade → increased NE release + baroreceptor reflex)",
"Nasal congestion (vasodilation of nasal mucosa)",
"GI effects: diarrhea, nausea (increased gut motility via alpha-2 blockade)",
"Sodium and water retention",
"Miosis",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Paragraph("<b>Selective alpha-1 blockers</b> (prazosin, terazosin, doxazosin, tamsulosin):", body_style))
for pt in [
'<b>"First-dose phenomenon":</b> Severe postural hypotension and syncope with first dose → advise to take at bedtime (sudden loss of sympathetic vasoconstriction).',
"<b>Orthostatic/postural hypotension</b> (ongoing risk) — dizziness, fainting",
"Dizziness and headache",
"Reflex tachycardia (less than non-selective)",
"Nasal congestion, fluid retention (edema)",
"<b>Retrograde ejaculation</b> — particularly tamsulosin (relaxes internal urethral sphincter)",
"<b>Intraoperative Floppy Iris Syndrome (IFIS)</b> — especially tamsulosin; iris becomes floppy during cataract surgery",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Spacer(1, 0.3*cm))
# SN3 5-HT
story.append(Paragraph("3. Agonists and Antagonists of the 5-HT System + Therapeutic Uses", question_heading))
story.append(Paragraph("<b>5-HT Agonists:</b>", body_style))
sht_ag_headers = ["Drug", "Receptor", "Therapeutic Use"]
sht_ag_rows = [
["Sumatriptan (triptan)", "5-HT1B/1D agonist", "Acute migraine (cranial vasoconstriction + inhibits CGRP release)"],
["Buspirone", "5-HT1A partial agonist", "Generalized Anxiety Disorder (GAD)"],
["Metoclopramide", "5-HT4 agonist (+ D2 antagonist)", "Prokinetic — gastroparesis, GERD, nausea"],
["Ergotamine", "5-HT1 partial agonist", "Migraine (older drug)"],
]
story.append(make_table(sht_ag_headers, sht_ag_rows, col_widths=[4.5*cm, 5*cm, 7.5*cm]))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("<b>5-HT Antagonists:</b>", body_style))
sht_ant_rows = [
["Ondansetron", "5-HT3 antagonist", "CINV, post-operative nausea and vomiting"],
["Cyproheptadine", "5-HT2 + H1 antagonist", "Carcinoid syndrome, allergic conditions, appetite stimulation"],
["Clozapine/Risperidone", "5-HT2A + D2 antagonist", "Schizophrenia (atypical antipsychotics)"],
["Methysergide", "5-HT2 antagonist", "Migraine prophylaxis (limited use — risk of retroperitoneal fibrosis)"],
]
story.append(make_table(sht_ag_headers, sht_ant_rows, col_widths=[4.5*cm, 5*cm, 7.5*cm]))
story.append(Spacer(1, 0.3*cm))
# SN4 Non-depolarizing blockers
story.append(Paragraph("4. Non-Depolarizing Blockers — Mechanism + NMB Toxicity", question_heading))
story.append(Paragraph("<b>Mechanism of Non-Depolarizing (Competitive) NMBs</b> (vecuronium, rocuronium, atracurium, pancuronium):", body_style))
for pt in [
"Compete with <b>ACh at nicotinic Nm receptors</b> at the NMJ — bind to alpha-subunits without activating the receptor.",
"Block is <b>competitive</b> — overcome by increasing ACh (via anticholinesterases).",
"Do NOT cause initial fasciculations (unlike succinylcholine).",
"Produce <b>flaccid paralysis</b> — muscle relaxation without prior excitation.",
"<b>Reversal:</b> Neostigmine/edrophonium (↑ ACh) OR Sugammadex (encapsulates rocuronium/vecuronium).",
"<b>Order of paralysis:</b> Small muscles (eye, face) → limbs → intercostals → diaphragm (last; first to recover).",
]:
story.append(Paragraph(f"• {pt}", bullet_style))
story.append(Paragraph("<b>Toxicity of Neuromuscular Blockers:</b>", body_style))
nmb_tox_headers = ["Toxicity", "Cause / Mechanism"]
nmb_tox_rows = [
["Respiratory paralysis", "Paralysis of respiratory muscles → main life-threatening complication → requires mechanical ventilation"],
["Histamine release", "Atracurium, mivacurium → bronchospasm, hypotension, urticaria"],
["Malignant hyperthermia", "Succinylcholine + volatile anesthetics → uncontrolled Ca²⁺ release from SR → hyperthermia, rigidity"],
["Hyperkalemia", "Succinylcholine in burns/crush/denervation → massive K+ efflux → fatal arrhythmias"],
["Prolonged paralysis", "Pseudocholinesterase deficiency → succinylcholine apnea (hours instead of minutes)"],
["CV effects", "Pancuronium → tachycardia (vagolytic); Vecuronium → minimal cardiovascular effects"],
["Phase II block", "High-dose succinylcholine → converts to non-depolarizing-like block"],
]
story.append(make_table(nmb_tox_headers, nmb_tox_rows, col_widths=[5*cm, 12*cm]))
story.append(Spacer(1, 0.3*cm))
# SN5 Factors modifying drug action
story.append(Paragraph("5. Factors Modifying Drug Action", question_heading))
factors = [
("Age", [
"<b>Neonates/Infants:</b> Immature CYP450 enzymes, reduced GFR, different body composition → higher drug sensitivity. Example: Gray Baby Syndrome (chloramphenicol).",
"<b>Elderly:</b> Reduced hepatic blood flow and enzyme activity, reduced renal function, reduced albumin, increased body fat → higher sensitivity to most drugs.",
]),
("Body Weight / Obesity", [
"Doses often adjusted on mg/kg basis.",
"Lipophilic drugs distribute more widely in obese patients → larger VD → prolonged action.",
]),
("Genetics (Pharmacogenetics)", [
"Slow vs. fast acetylators (isoniazid — NAT2 polymorphism).",
"G6PD deficiency → hemolysis with oxidant drugs.",
"Pseudocholinesterase deficiency → prolonged succinylcholine effect.",
"CYP2D6 polymorphism → variable codeine/tramadol metabolism.",
]),
("Sex", [
"Women have less body water, more adipose tissue, lower gastric acid → altered distribution and kinetics.",
"Hormonal variations affect drug metabolism.",
]),
("Disease States", [
"<b>Liver disease:</b> Reduced metabolism of hepatically metabolized drugs → accumulation.",
"<b>Renal disease:</b> Reduced excretion → toxicity (aminoglycosides, digoxin).",
"<b>Cardiac failure:</b> Reduced hepatic blood flow, altered VD.",
"<b>Thyroid disease:</b> Hyperthyroidism accelerates metabolism; hypothyroidism slows it.",
]),
("Drug Interactions", [
"<b>Enzyme induction</b> (rifampicin, phenobarbitone): ↑ metabolism of co-administered drugs → reduced effect.",
"<b>Enzyme inhibition</b> (ketoconazole, erythromycin, grapefruit): ↓ metabolism → toxicity.",
"<b>Protein binding displacement:</b> Competition for albumin binding → increased free drug.",
"<b>Pharmacodynamic:</b> Synergism (alcohol + benzodiazepines) or antagonism.",
]),
("Route of Administration", [
"IV → 100% bioavailability, immediate onset.",
"Oral → subject to first-pass metabolism, variable absorption.",
"Sublingual → bypasses first-pass, rapid onset (e.g., GTN).",
]),
("Tolerance and Tachyphylaxis", [
"<b>Tolerance:</b> Reduced response after prolonged use (opioids, nitrates).",
"<b>Tachyphylaxis:</b> Rapid tolerance to rapidly repeated doses (ephedrine).",
]),
("Chronopharmacology", [
"Cortisol follows a diurnal rhythm → steroid therapy timing matters.",
"Antihypertensives may need timing adjustments for morning BP surge.",
]),
]
for factor_name, factor_points in factors:
story.append(Paragraph(f"<b>{factor_name}:</b>", ParagraphStyle('FN', parent=styles['Normal'],
fontSize=10, fontName='Helvetica-Bold', spaceBefore=5, spaceAfter=1,
textColor=colors.HexColor('#1a237e'))))
for pt in factor_points:
story.append(Paragraph(f"• {pt}", bullet_style))
# FOOTER note
story.append(Spacer(1, 0.8*cm))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#9fa8da')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"Generated by Orris AI | Abhishek I Mishra Memorial Medical College & Research, Bhilai (CG) | Department of Pharmacology",
footer_style
))
# ── BUILD ──────────────────────────────────────
doc.build(story)
print(f"PDF created: {output_path}")
cd /home/daytona/workspace/pharmacology-exam && python generate_pdf.py
ls -lh /home/daytona/workspace/pharmacology-exam/Pharmacology_Exam_Answer_Guide.…
Pharmacology Exam Answer Guide
PDF Document · PDF