Make answer of this according to given instructions and make pdf of this
mkdir -p /tmp/workspace/bds-exam-answers && ls /tmp/workspace/
~/bds-exam-answers/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import inch, cm
from reportlab.lib.colors import HexColor, black, white, grey
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.pdfgen import canvas
import os
OUTPUT_PATH = "/tmp/workspace/bds-exam-answers/BDS301_GM_Paper1_Answers.pdf"
# Colors
DARK_BLUE = HexColor('#1a3a5c')
MED_BLUE = HexColor('#2e6da4')
LIGHT_BLUE = HexColor('#d6e8f7')
TEAL = HexColor('#0d7377')
HEADER_BG = HexColor('#1a3a5c')
ALT_ROW = HexColor('#eaf4fb')
SECTION_BG = HexColor('#e8f0e8')
GREEN = HexColor('#1a5c2e')
def build_styles():
styles = getSampleStyleSheet()
title_style = ParagraphStyle('ExamTitle', fontName='Helvetica-Bold',
fontSize=16, textColor=white, alignment=TA_CENTER, spaceAfter=4,
spaceBefore=4)
subtitle_style = ParagraphStyle('Subtitle', fontName='Helvetica',
fontSize=11, textColor=white, alignment=TA_CENTER, spaceAfter=4)
section_heading = ParagraphStyle('SectionHeading', fontName='Helvetica-Bold',
fontSize=13, textColor=white, alignment=TA_CENTER,
spaceBefore=14, spaceAfter=4)
q_heading = ParagraphStyle('QHeading', fontName='Helvetica-Bold',
fontSize=12, textColor=DARK_BLUE, spaceBefore=12, spaceAfter=4)
sub_heading = ParagraphStyle('SubHeading', fontName='Helvetica-Bold',
fontSize=10.5, textColor=TEAL, spaceBefore=6, spaceAfter=2)
body = ParagraphStyle('Body', fontName='Helvetica',
fontSize=10, leading=15, spaceAfter=4, alignment=TA_JUSTIFY)
bullet = ParagraphStyle('Bullet', fontName='Helvetica',
fontSize=10, leading=14, leftIndent=16, spaceAfter=2,
bulletIndent=6, alignment=TA_LEFT)
bullet2 = ParagraphStyle('Bullet2', fontName='Helvetica',
fontSize=10, leading=13, leftIndent=30, spaceAfter=2,
bulletIndent=20, alignment=TA_LEFT)
bold_body = ParagraphStyle('BoldBody', fontName='Helvetica-Bold',
fontSize=10, leading=14, spaceAfter=2)
note = ParagraphStyle('Note', fontName='Helvetica-Oblique',
fontSize=9, leading=12, textColor=HexColor('#555555'), spaceAfter=4)
return {
'title': title_style, 'subtitle': subtitle_style,
'section': section_heading, 'qhead': q_heading,
'sub': sub_heading, 'body': body, 'bullet': bullet,
'bullet2': bullet2, 'bold': bold_body, 'note': note
}
def header_table(s, title, subtitle, info):
"""Creates a colored header block"""
data = [[Paragraph(title, s['title'])],
[Paragraph(subtitle, s['subtitle'])],
[Paragraph(info, s['subtitle'])]]
t = Table(data, colWidths=[17*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), HEADER_BG),
('BOX', (0,0), (-1,-1), 1.5, MED_BLUE),
('TOPPADDING', (0,0), (-1,-1), 6),
('BOTTOMPADDING', (0,0), (-1,-1), 6),
('LEFTPADDING', (0,0), (-1,-1), 10),
('RIGHTPADDING', (0,0), (-1,-1), 10),
]))
return t
def section_banner(s, text, color=TEAL):
data = [[Paragraph(text, s['section'])]]
t = Table(data, colWidths=[17*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), color),
('BOX', (0,0), (-1,-1), 1, color),
('TOPPADDING', (0,0), (-1,-1), 6),
('BOTTOMPADDING', (0,0), (-1,-1), 6),
]))
return t
def q_box(s, qnum, question_text):
data = [[Paragraph(f"<b>{qnum}</b> {question_text}", s['body'])]]
t = Table(data, colWidths=[17*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), LIGHT_BLUE),
('BOX', (0,0), (-1,-1), 1, MED_BLUE),
('TOPPADDING', (0,0), (-1,-1), 6),
('BOTTOMPADDING', (0,0), (-1,-1), 6),
('LEFTPADDING', (0,0), (-1,-1), 10),
]))
return t
# ─────────────────────────────────────────────────────────────────────────────
# ANSWER CONTENT
# ─────────────────────────────────────────────────────────────────────────────
def build_story(s):
story = []
B = lambda t: Paragraph(t, s['body'])
SH = lambda t: Paragraph(t, s['sub'])
BUL = lambda t: Paragraph(f"• {t}", s['bullet'])
BUL2 = lambda t: Paragraph(f"– {t}", s['bullet2'])
BOLD = lambda t: Paragraph(t, s['bold'])
SP = lambda n=6: Spacer(1, n)
HR = lambda: HRFlowable(width="100%", thickness=0.5, color=MED_BLUE, spaceAfter=4)
# HEADER
story.append(header_table(s,
"B.D.S. Third Year (Main) Examination, July-2026",
"GENERAL MEDICINE — Paper I | BDS-301",
"Time: 3 Hours • Maximum Marks: 70 • Model Answers"))
story.append(SP(10))
# =========================================================
# SECTION A
# =========================================================
story.append(section_banner(s, "SECTION A — Marks: 35"))
story.append(SP(8))
# ─── Q.1 ─────────────────────────────────────────────────
story.append(q_box(s, "Q.1 (10 Marks)",
"What is infective endocarditis? Discuss clinical features and investigations. "
"What prophylaxis would you give to a patient coming for tooth extraction in a case of Mitral Stenosis?"))
story.append(SP(6))
story.append(SH("Definition"))
story.append(B("Infective endocarditis (IE) is a microbial infection of the endocardial surface of the "
"heart, most commonly involving the cardiac valves. It is characterized by the formation "
"of vegetations — masses of fibrin, platelets, microorganisms, and inflammatory cells — "
"on valve leaflets or other endocardial structures."))
story.append(SP())
story.append(SH("Classification"))
story.append(BUL("<b>Acute IE:</b> Caused by virulent organisms (S. aureus); rapid destruction, high mortality if untreated."))
story.append(BUL("<b>Subacute IE (SBE):</b> Caused by low-virulence organisms (viridans streptococci); insidious onset."))
story.append(BUL("<b>Native valve IE / Prosthetic valve IE / IE in IV drug users</b>"))
story.append(SP())
story.append(SH("Causative Organisms"))
story.append(BUL("Streptococcus viridans — most common in native valve IE (dental source)"))
story.append(BUL("Staphylococcus aureus — most virulent; commonest overall in many series; IV drug users"))
story.append(BUL("Enterococcus faecalis — GI/GU source"))
story.append(BUL("HACEK organisms (Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella)"))
story.append(BUL("Culture-negative IE: Coxiella, Bartonella, Tropheryma whipplei"))
story.append(SP())
story.append(SH("Clinical Features"))
story.append(BOLD("Constitutional Symptoms:"))
story.append(BUL("Prolonged fever (most consistent finding), night sweats, weight loss, malaise, anorexia"))
story.append(BOLD("Cardiac Features:"))
story.append(BUL("New or changing murmur (regurgitant murmur most common)"))
story.append(BUL("Signs of heart failure: dyspnea, pulmonary edema, raised JVP"))
story.append(BOLD("Embolic Phenomena:"))
story.append(BUL("Stroke / TIA, splenic infarction, renal infarction, pulmonary embolism (right-sided IE)"))
story.append(BOLD("Peripheral/Immunological Stigmata (classic signs):"))
story.append(BUL("<b>Osler nodes</b> — tender nodules on finger/toe pulps (immune complex deposition)"))
story.append(BUL("<b>Janeway lesions</b> — non-tender hemorrhagic macules on palms/soles (septic emboli)"))
story.append(BUL("<b>Roth spots</b> — oval retinal hemorrhages with pale center"))
story.append(BUL("<b>Splinter hemorrhages</b> — linear subungual hemorrhages"))
story.append(BUL("<b>Clubbing</b> — in chronic/subacute IE"))
story.append(BUL("<b>Petechiae</b> — conjunctival, mucosal"))
story.append(BUL("Splenomegaly"))
story.append(SP())
story.append(SH("Duke Criteria (Diagnosis)"))
story.append(B("<b>Definite IE:</b> 2 major, OR 1 major + 3 minor, OR 5 minor criteria"))
story.append(BOLD("Major Criteria:"))
story.append(BUL("Positive blood cultures: ≥2 separate cultures with typical IE organism, or persistently positive"))
story.append(BUL("Echocardiographic evidence: vegetation, abscess, new valve dehiscence, new regurgitation"))
story.append(BOLD("Minor Criteria:"))
story.append(BUL("Predisposing heart condition or IV drug use"))
story.append(BUL("Fever >38°C"))
story.append(BUL("Vascular phenomena (emboli, Janeway lesions)"))
story.append(BUL("Immunological phenomena (Osler nodes, Roth spots, positive RF)"))
story.append(BUL("Positive blood culture not meeting major criteria"))
story.append(SP())
story.append(SH("Investigations"))
story.append(BUL("<b>Blood cultures (MOST IMPORTANT):</b> 3 sets from different sites, before antibiotics"))
story.append(BUL("<b>Echocardiography:</b> TTE first; TEE if TTE negative but high suspicion (detects vegetations >1–2 mm)"))
story.append(BUL("<b>CBC:</b> normocytic normochromic anemia, leukocytosis, thrombocytopenia"))
story.append(BUL("<b>ESR and CRP:</b> markedly elevated"))
story.append(BUL("<b>Urine analysis:</b> microscopic hematuria, proteinuria (immune complex nephritis)"))
story.append(BUL("<b>Rheumatoid factor:</b> positive in ~50% of subacute cases"))
story.append(BUL("<b>Chest X-ray:</b> cardiomegaly, pulmonary edema, septic emboli (right-sided)"))
story.append(BUL("<b>ECG:</b> conduction defects (AV block suggests aortic root abscess)"))
story.append(BUL("<b>CT/MRI:</b> embolic complications (stroke, abscesses)"))
story.append(SP())
story.append(SH("Antibiotic Prophylaxis for Tooth Extraction in Mitral Stenosis"))
story.append(B("Mitral Stenosis (MS) is a high-risk valvular condition. Dental procedures that involve "
"manipulation of gingival tissue or the periapical region of teeth can cause transient "
"bacteremia and seed damaged valves."))
story.append(SP(4))
story.append(BOLD("Indications for Prophylaxis (AHA 2021 Guidelines):"))
story.append(BUL("Prosthetic cardiac valve"))
story.append(BUL("Previous IE"))
story.append(BUL("Congenital heart disease (unrepaired cyanotic CHD; repaired within 6 months)"))
story.append(BUL("Cardiac transplant with valvulopathy"))
story.append(B("<i>Note: Uncomplicated rheumatic mitral stenosis without a prosthetic valve is NOT a "
"standard indication per current AHA guidelines. However, many Indian guidelines and "
"clinical practice still recommend prophylaxis for moderate–severe MS especially in endemic areas.</i>"))
story.append(SP(4))
story.append(BOLD("Recommended Regimen:"))
data = [
["Situation", "Drug", "Dose (Adult)", "Timing"],
["Standard (oral)", "Amoxicillin", "2 g PO", "30–60 min before procedure"],
["Unable to take oral", "Ampicillin / Cefazolin", "2 g / 1 g IV or IM", "30–60 min before"],
["Penicillin allergic (oral)", "Azithromycin or Clarithromycin", "500 mg PO", "30–60 min before"],
["Penicillin allergic (oral)", "Cephalexin*", "2 g PO", "30–60 min before"],
["Pen-allergic (parenteral)", "Cefazolin / Ceftriaxone", "1 g IM/IV", "30–60 min before"],
]
t = Table(data, colWidths=[3.5*cm, 4*cm, 4*cm, 5.5*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), DARK_BLUE),
('TEXTCOLOR', (0,0), (-1,0), white),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,-1), 8.5),
('ROWBACKGROUNDS', (0,1), (-1,-1), [white, ALT_ROW]),
('GRID', (0,0), (-1,-1), 0.5, grey),
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('TOPPADDING', (0,0), (-1,-1), 4),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
]))
story.append(t)
story.append(B("<i>*Avoid cephalosporins if previous anaphylaxis/urticaria/angioedema with penicillin (cross-reactivity risk).</i>"))
story.append(SP(8))
# ─── Q.2 ─────────────────────────────────────────────────
story.append(q_box(s, "Q.2 (10 Marks)",
"What is Diabetes mellitus type II? How will you treat a patient of type II Diabetes who comes with hypoglycemia?"))
story.append(SP(6))
story.append(SH("Diabetes Mellitus Type II — Definition"))
story.append(B("Type 2 Diabetes Mellitus (T2DM) is a chronic metabolic disorder characterized by "
"progressive insulin secretory defect on a background of insulin resistance, resulting "
"in chronic hyperglycemia and long-term damage to various organs."))
story.append(SP())
story.append(SH("Pathophysiology"))
story.append(BUL("Insulin resistance in muscle, liver, and adipose tissue → hyperglycemia"))
story.append(BUL("Progressive beta-cell dysfunction → inadequate compensatory insulin secretion"))
story.append(BUL("Increased hepatic glucose production (gluconeogenesis)"))
story.append(BUL("Ominous octet: insulin resistance, beta-cell failure, impaired incretin effect, "
"hyperglucagonemia, increased lipolysis, increased renal glucose reabsorption, "
"neurotransmitter dysfunction, gut microbiome changes"))
story.append(SP())
story.append(SH("Diagnostic Criteria (ADA)"))
story.append(BUL("Fasting plasma glucose ≥ 126 mg/dL (7.0 mmol/L)"))
story.append(BUL("2-hour plasma glucose ≥ 200 mg/dL during 75g OGTT"))
story.append(BUL("HbA1c ≥ 6.5%"))
story.append(BUL("Random plasma glucose ≥ 200 mg/dL with classic symptoms"))
story.append(SP())
story.append(SH("Clinical Features"))
story.append(BUL("Often asymptomatic for years; discovered on routine screening"))
story.append(BUL("Classical symptoms: polydipsia, polyuria, polyphagia, weight loss"))
story.append(BUL("Recurrent infections: skin, urinary tract, fungal"))
story.append(BUL("Blurring of vision, fatigue, paresthesias"))
story.append(BUL("Long-standing: peripheral neuropathy, retinopathy, nephropathy, macrovascular disease"))
story.append(SP())
story.append(SH("Treatment of Hypoglycemia in Type 2 DM"))
story.append(BOLD("Definition of Hypoglycemia:"))
story.append(BUL("Blood glucose < 70 mg/dL (3.9 mmol/L) — alert value"))
story.append(BUL("Level 2: < 54 mg/dL (3.0 mmol/L) — clinically significant"))
story.append(BUL("Level 3: Severe cognitive impairment requiring external assistance"))
story.append(SP())
story.append(BOLD("Common Causes in T2DM:"))
story.append(BUL("Excess insulin or sulfonylurea dose"))
story.append(BUL("Missed meals / inadequate carbohydrate intake"))
story.append(BUL("Unaccustomed exercise"))
story.append(BUL("Alcohol consumption"))
story.append(BUL("Renal impairment (reduced drug clearance)"))
story.append(SP())
story.append(BOLD("Clinical Features of Hypoglycemia:"))
story.append(BUL("<b>Autonomic (adrenergic):</b> sweating, palpitations, tremor, anxiety, pallor, hunger"))
story.append(BUL("<b>Neuroglycopenic:</b> confusion, drowsiness, slurred speech, visual disturbances, seizures, coma"))
story.append(SP())
story.append(BOLD("Management — 'Rule of 15':"))
story.append(BUL("<b>Conscious patient (mild–moderate):</b>"))
story.append(BUL2("Give 15–20 g fast-acting carbohydrate: 4–6 glucose tablets, 150 mL fruit juice, "
"or 3–4 teaspoons sugar in water"))
story.append(BUL2("Recheck BG after 15 minutes; repeat if still < 70 mg/dL"))
story.append(BUL2("Follow with complex carbohydrate snack once BG normalized"))
story.append(BUL("<b>Unconscious or unable to swallow (severe):</b>"))
story.append(BUL2("IV access: Give 25–50 mL of 50% Dextrose (D50W) IV slowly (or 75–150 mL of 25% dextrose)"))
story.append(BUL2("If IV access not available: Glucagon 1 mg SC/IM"))
story.append(BUL2("Monitor BG every 15–30 minutes"))
story.append(BUL2("Once conscious: oral feeding of complex carbohydrates"))
story.append(BUL("<b>Sulfonylurea-induced hypoglycemia:</b> Prolonged; Octreotide 50–100 mcg SC q8h may be used"))
story.append(SP())
story.append(BOLD("After Stabilization:"))
story.append(BUL("Identify and correct precipitating cause"))
story.append(BUL("Review and adjust antidiabetic regimen"))
story.append(BUL("Patient education on hypoglycemia recognition and prevention"))
story.append(BUL("If repeated severe episodes: consider glucagon kit prescription"))
story.append(SP(8))
# ─── Q.3 ─────────────────────────────────────────────────
story.append(q_box(s, "Q.3 (10 Marks)",
"Enumerate various causes of breathlessness. How will you manage a case of Acute Exacerbation of COPD?"))
story.append(SP(6))
story.append(SH("Causes of Breathlessness (Dyspnea)"))
story.append(BOLD("Respiratory Causes:"))
story.append(BUL("Obstructive: COPD, bronchial asthma, bronchiectasis"))
story.append(BUL("Restrictive: Pulmonary fibrosis, pleural effusion, pneumothorax"))
story.append(BUL("Infections: Pneumonia, tuberculosis, lung abscess"))
story.append(BUL("Vascular: Pulmonary embolism, pulmonary hypertension"))
story.append(BUL("Neoplasm: Bronchogenic carcinoma, mediastinal masses"))
story.append(BOLD("Cardiac Causes:"))
story.append(BUL("Left heart failure, acute pulmonary edema, pericardial effusion"))
story.append(BUL("Valvular heart disease (mitral stenosis, aortic stenosis)"))
story.append(BOLD("Hematological:"))
story.append(BUL("Severe anemia, methemoglobinemia"))
story.append(BOLD("Metabolic/Other:"))
story.append(BUL("Diabetic ketoacidosis (Kussmaul breathing), metabolic acidosis"))
story.append(BUL("Obesity hypoventilation, neuromuscular disorders, anxiety/panic attacks"))
story.append(SP())
story.append(SH("Management of Acute Exacerbation of COPD (AECOPD)"))
story.append(B("An acute exacerbation is defined as an acute worsening of respiratory symptoms beyond normal "
"day-to-day variation requiring a change in medication."))
story.append(SP())
story.append(BOLD("Initial Assessment:"))
story.append(BUL("ABG: assess hypoxemia (PaO2 < 60 mmHg) and hypercapnia (PaCO2 > 45 mmHg)"))
story.append(BUL("SpO2, ECG, CXR, CBC, sputum culture, blood cultures"))
story.append(SP())
story.append(BOLD("1. Controlled Oxygen Therapy:"))
story.append(BUL("Target SpO2: 88–92% (NOT 100%!) — avoid hypercapnic drive suppression"))
story.append(BUL("Use Venturi mask: start at 24–28% FiO2"))
story.append(BUL("Reassess ABG after 30–60 minutes"))
story.append(SP())
story.append(BOLD("2. Bronchodilators (Mainstay of Treatment):"))
story.append(BUL("Short-acting beta-2 agonist: Salbutamol (2.5 mg) nebulization every 20–30 min (or q4–6h)"))
story.append(BUL("Short-acting anticholinergic: Ipratropium bromide (500 mcg) nebulization — add to salbutamol"))
story.append(BUL("IV aminophylline can be added in severe cases (with caution)"))
story.append(SP())
story.append(BOLD("3. Systemic Corticosteroids:"))
story.append(BUL("Prednisolone 40 mg orally for 5 days (or IV hydrocortisone 200 mg)"))
story.append(BUL("Reduces treatment failure and length of hospital stay"))
story.append(SP())
story.append(BOLD("4. Antibiotics (if indicated):"))
story.append(BUL("Indicated if: increased sputum purulence + increased dyspnea, OR requiring mechanical ventilation"))
story.append(BUL("Organisms: S. pneumoniae, H. influenzae, M. catarrhalis"))
story.append(BUL("Mild–moderate: Amoxicillin/Clavulanate or Azithromycin; Severe: Quinolone (Levofloxacin)"))
story.append(SP())
story.append(BOLD("5. Non-Invasive Ventilation (NIV/BiPAP):"))
story.append(BUL("Indication: pH < 7.35, PaCO2 > 45 mmHg, RR > 25/min despite initial therapy"))
story.append(BUL("Reduces need for intubation, ICU mortality, and length of stay"))
story.append(SP())
story.append(BOLD("6. Invasive Mechanical Ventilation (IMV):"))
story.append(BUL("If NIV fails or patient deteriorates: pH < 7.25, severe encephalopathy, respiratory arrest"))
story.append(SP())
story.append(BOLD("7. Supportive Measures:"))
story.append(BUL("IV fluids for dehydration"))
story.append(BUL("Heparin prophylaxis (DVT prevention)"))
story.append(BUL("Nutrition support"))
story.append(BUL("Treat precipitating cause (pneumonia, pneumothorax, cardiac failure)"))
story.append(SP(8))
# ─── Q.4 ─────────────────────────────────────────────────
story.append(q_box(s, "Q.4 (15 Marks)",
"Write short note on (any three): (a) Beta-Blockers Indications, Contraindications & Side Effects "
"(b) Management of cardiac arrest (c) Management of Acute Viral Hepatitis "
"(d) Management of CAP (Community Acquired Pneumonia)"))
story.append(SP(6))
# 4a
story.append(BOLD("(a) Beta-Blockers — Indications, Contraindications & Side Effects"))
story.append(HR())
story.append(B("<b>Beta-blockers (β-adrenoceptor antagonists)</b> block catecholamine effects on β1 and β2 receptors, "
"reducing heart rate, contractility, conduction velocity, and blood pressure."))
story.append(BOLD("Indications:"))
story.append(BUL("Hypertension (especially with coexisting angina, MI, heart failure)"))
story.append(BUL("Angina pectoris (stable; all forms except Prinzmetal's)"))
story.append(BUL("Post-MI (reduce mortality by 25–30%)"))
story.append(BUL("Heart failure with reduced EF (carvedilol, bisoprolol, metoprolol succinate — 'cardioprotective three')"))
story.append(BUL("Tachyarrhythmias: SVT, rate control in AF/AFL, ventricular arrhythmias"))
story.append(BUL("Hyperthyroidism / thyroid storm (symptom control)"))
story.append(BUL("Pheochromocytoma (only after adequate alpha-blockade)"))
story.append(BUL("Anxiety / performance anxiety (propranolol)"))
story.append(BUL("Migraine prophylaxis, essential tremor"))
story.append(BUL("Hypertrophic obstructive cardiomyopathy (HOCM)"))
story.append(BUL("Portal hypertension (variceal bleeding prophylaxis)"))
story.append(SP())
story.append(BOLD("Contraindications:"))
story.append(BUL("<b>Absolute:</b> Severe bradycardia (HR < 50 bpm), 2nd/3rd degree AV block, cardiogenic shock"))
story.append(BUL("<b>Absolute:</b> Severe decompensated heart failure (acute), sick sinus syndrome"))
story.append(BUL("<b>Relative:</b> Bronchial asthma / severe COPD (especially non-selective agents)"))
story.append(BUL("<b>Relative:</b> Diabetes (masks hypoglycemia symptoms, except sweating)"))
story.append(BUL("<b>Relative:</b> Peripheral vascular disease (worsens intermittent claudication)"))
story.append(BUL("<b>Relative:</b> Prinzmetal's angina (vasospasm may worsen)"))
story.append(SP())
story.append(BOLD("Side Effects:"))
story.append(BUL("Bradycardia, AV block, hypotension"))
story.append(BUL("Bronchospasm (especially non-selective, e.g., propranolol)"))
story.append(BUL("Fatigue, lethargy, exercise intolerance"))
story.append(BUL("Cold extremities, Raynaud's phenomenon"))
story.append(BUL("Masking of hypoglycemic symptoms"))
story.append(BUL("Sexual dysfunction (impotence)"))
story.append(BUL("Depression, nightmares, insomnia (CNS penetrating agents: propranolol)"))
story.append(BUL("Rebound hypertension / angina if stopped abruptly — ALWAYS taper"))
story.append(SP(8))
# 4b
story.append(BOLD("(b) Management of Cardiac Arrest"))
story.append(HR())
story.append(B("<b>Cardiac arrest</b> is the sudden cessation of effective cardiac mechanical activity resulting "
"in absence of circulation. Immediate intervention is life-saving."))
story.append(BOLD("Basic Life Support (BLS) — 'CAB' sequence:"))
story.append(BUL("<b>C — Compressions:</b> 30 chest compressions; rate 100–120/min; depth 5–6 cm; full recoil; minimize interruptions"))
story.append(BUL("<b>A — Airway:</b> Head-tilt chin-lift / jaw thrust; clear airway"))
story.append(BUL("<b>B — Breathing:</b> 2 rescue breaths (30:2 ratio); or continuous 10 breaths/min if advanced airway"))
story.append(BOLD("Defibrillation (AED):"))
story.append(BUL("Attach AED ASAP — analyze rhythm — shock if VF/pulseless VT"))
story.append(BUL("Resume CPR immediately after shock for 2 minutes before re-analyzing"))
story.append(BOLD("Advanced Cardiac Life Support (ACLS):"))
story.append(BUL("<b>Shockable rhythms (VF/pulseless VT):</b> Defibrillate → CPR 2 min → Epinephrine 1 mg IV q3–5 min → "
"Amiodarone 300 mg IV (2nd dose 150 mg) → shock → repeat"))
story.append(BUL("<b>Non-shockable (PEA/Asystole):</b> CPR + Epinephrine 1 mg IV q3–5 min → treat reversible causes"))
story.append(BUL("<b>Reversible causes — 'Hs and Ts':</b> Hypoxia, Hypovolemia, Hypo/Hyperkalemia, Hypothermia, "
"Tension pneumothorax, Tamponade, Toxins, Thrombosis (PE/MI)"))
story.append(BOLD("Post-Resuscitation Care:"))
story.append(BUL("Targeted Temperature Management (TTM): 32–36°C for 24 hours"))
story.append(BUL("12-lead ECG: consider emergent PCI if STEMI"))
story.append(BUL("IV access, intubation, monitoring (SpO2, ETCO2, continuous ECG, urine output)"))
story.append(BUL("Hemodynamic stabilization, neuroprotection, ICU care"))
story.append(SP(8))
# 4c
story.append(BOLD("(c) Management of Acute Viral Hepatitis"))
story.append(HR())
story.append(B("<b>Acute viral hepatitis</b> is inflammation of the liver caused by hepatotropic viruses "
"(HAV, HBV, HCV, HDV, HEV). Most cases are self-limiting."))
story.append(BOLD("General Management (Supportive — cornerstone):"))
story.append(BUL("Rest: bed rest during symptomatic phase; no complete bed rest needed"))
story.append(BUL("Diet: High-carbohydrate, low-fat, adequate calorie diet; small frequent meals"))
story.append(BUL("Avoid alcohol completely"))
story.append(BUL("Adequate hydration (oral/IV)"))
story.append(BUL("Avoid hepatotoxic drugs: NSAIDs, paracetamol in high doses, isoniazid"))
story.append(BUL("Symptom management: antiemetics (metoclopramide) for nausea; antipruritics for cholestatic itch"))
story.append(BOLD("Specific Antiviral Treatment:"))
story.append(BUL("<b>HAV and HEV:</b> No antiviral; supportive care; isolation, notify contacts"))
story.append(BUL("<b>Acute HBV:</b> Antiviral (Tenofovir/Entecavir) only if: severe acute HBV, liver failure, "
"or immunosuppressed"))
story.append(BUL("<b>Acute HCV:</b> Treat with Direct-Acting Antivirals (DAAs) early to prevent chronicity "
"(e.g., Sofosbuvir + Ledipasvir for 8–12 weeks)"))
story.append(BOLD("Indications for Hospitalization:"))
story.append(BUL("Inability to maintain oral hydration, PT > 3× normal, encephalopathy, hypoglycemia"))
story.append(BOLD("Acute Liver Failure (ALF) — Emergency Management:"))
story.append(BUL("ICU admission, N-acetylcysteine infusion, lactulose for encephalopathy"))
story.append(BUL("Correct coagulopathy with FFP/Vitamin K, manage cerebral edema"))
story.append(BUL("Liver transplant evaluation if criteria met (King's College Criteria)"))
story.append(BOLD("Prevention:"))
story.append(BUL("HAV/HBV vaccination, safe water, food hygiene, blood product screening"))
story.append(SP(8))
# 4d
story.append(BOLD("(d) Management of Community-Acquired Pneumonia (CAP)"))
story.append(HR())
story.append(B("<b>CAP</b> is an acute infection of the pulmonary parenchyma in a patient who "
"acquired it in the community, not in a hospital or long-term care facility."))
story.append(BOLD("Assessment of Severity — CURB-65 Score:"))
story.append(BUL("C — Confusion (new); U — Urea > 7 mmol/L; R — RR ≥ 30/min; B — BP < 90/60 mmHg; age ≥ 65"))
story.append(BUL("Score 0–1: Outpatient; Score 2: Consider hospital; Score ≥3: Hospital/ICU"))
story.append(BOLD("Antibiotic Treatment:"))
story.append(BUL("<b>Mild (outpatient):</b> Amoxicillin 500 mg TDS × 5–7 days; or Azithromycin (atypical cover)"))
story.append(BUL("<b>Moderate (ward):</b> IV Amoxicillin-Clavulanate + Azithromycin; or IV Ceftriaxone + Azithromycin"))
story.append(BUL("<b>Severe (ICU):</b> IV Piperacillin-Tazobactam + Respiratory Fluoroquinolone; "
"or IV Ceftriaxone + Azithromycin; add Vancomycin if MRSA suspected"))
story.append(BOLD("Supportive Treatment:"))
story.append(BUL("Oxygen: maintain SpO2 > 94%"))
story.append(BUL("IV fluids for dehydration/sepsis"))
story.append(BUL("Antipyretics: paracetamol"))
story.append(BUL("Physiotherapy, deep breathing exercises"))
story.append(BUL("VTE prophylaxis in hospitalized patients"))
story.append(BOLD("Response Monitoring:"))
story.append(BUL("Clinical improvement expected in 48–72 hours; follow-up CXR at 6 weeks"))
story.append(BUL("Step-down to oral antibiotics when hemodynamically stable and tolerating oral intake"))
story.append(BOLD("Prevention:"))
story.append(BUL("Pneumococcal vaccine (PCV13, PPSV23), Influenza vaccine"))
story.append(SP(10))
# =========================================================
# SECTION B
# =========================================================
story.append(PageBreak())
story.append(section_banner(s, "SECTION B — Marks: 35", color=GREEN))
story.append(SP(8))
# ─── Q.5 ─────────────────────────────────────────────────
story.append(q_box(s, "Q.5 (10 Marks)",
"Describe the clinical features, diagnosis and management of Acute Gastroenteritis (AGE)."))
story.append(SP(6))
story.append(SH("Definition"))
story.append(B("Acute gastroenteritis is an inflammation of the gastrointestinal tract (stomach and small/large intestine) "
"characterized by acute onset of diarrhea (≥3 loose stools/day), with or without nausea, vomiting, "
"abdominal cramps, and fever, typically lasting < 14 days."))
story.append(SP())
story.append(SH("Etiology"))
story.append(BUL("<b>Viral (most common):</b> Norovirus (commonest worldwide), Rotavirus (children), Adenovirus, Astrovirus"))
story.append(BUL("<b>Bacterial:</b> E. coli (ETEC — traveler's diarrhea), Salmonella, Shigella, Campylobacter, "
"Vibrio cholerae, C. difficile, Staph. aureus (preformed toxin)"))
story.append(BUL("<b>Parasitic:</b> Giardia lamblia, Entamoeba histolytica, Cryptosporidium"))
story.append(SP())
story.append(SH("Clinical Features"))
story.append(BOLD("Symptoms:"))
story.append(BUL("Acute onset of diarrhea: watery (viral/toxin) or bloody (invasive bacteria — dysentery)"))
story.append(BUL("Nausea and vomiting (often precede diarrhea in viral)"))
story.append(BUL("Colicky abdominal pain / cramping"))
story.append(BUL("Low-grade fever (viral); high fever with chills (invasive bacteria)"))
story.append(BUL("Tenesmus (feeling of incomplete evacuation) — suggests colitis"))
story.append(BOLD("Signs of Dehydration:"))
story.append(BUL("<b>Mild (< 5%):</b> Thirst, slight dryness of mucous membranes"))
story.append(BUL("<b>Moderate (5–10%):</b> Sunken eyes, dry mouth, reduced skin turgor, oliguria"))
story.append(BUL("<b>Severe (> 10%):</b> Altered consciousness, hypotension, tachycardia, absent urine output"))
story.append(SP())
story.append(SH("Diagnosis"))
story.append(BUL("<b>Clinical diagnosis</b> in most cases; investigations in severe/persistent cases"))
story.append(BUL("Stool microscopy and culture: if bloody diarrhea, high fever, immunocompromised, travelers"))
story.append(BUL("Stool for ova and parasites; stool PCR panels (viral)"))
story.append(BUL("CBC: leukocytosis in bacterial; CBC normal/lymphocytosis in viral"))
story.append(BUL("Serum electrolytes, BUN/Cr: assess dehydration and electrolyte imbalance"))
story.append(BUL("C. difficile toxin assay: if recent antibiotic use or nosocomial diarrhea"))
story.append(SP())
story.append(SH("Management"))
story.append(BOLD("1. Rehydration — Most Important:"))
story.append(BUL("<b>Mild–moderate dehydration:</b> Oral Rehydration Solution (ORS) — WHO formula (NaCl, KCl, Na-citrate, glucose)"))
story.append(BUL2("Adults: 200–400 mL after each loose stool"))
story.append(BUL("<b>Severe dehydration:</b> IV Ringer's Lactate or Normal Saline"))
story.append(BUL2("First hour: 30 mL/kg, then reassess and continue 70 mL/kg over next 2.5 hours"))
story.append(BOLD("2. Diet:"))
story.append(BUL("Continue age-appropriate diet; avoid fasting (speeds recovery)"))
story.append(BUL("BRAT diet (banana, rice, applesauce, toast) — bland, easily digestible"))
story.append(BUL("Avoid dairy, fatty foods, caffeine, alcohol during acute phase"))
story.append(BOLD("3. Antibiotic Therapy:"))
story.append(BUL("NOT routinely required (most are viral and self-limiting)"))
story.append(BUL("<b>Indications:</b> High fever, bloody diarrhea, severe dehydration, immunocompromised, "
"traveler's diarrhea, cholera, Giardia, amoebiasis"))
story.append(BUL("Empiric: Ciprofloxacin 500 mg BD × 3–5 days or Azithromycin"))
story.append(BUL("C. difficile: Metronidazole (mild) or Oral Vancomycin (severe)"))
story.append(BUL("Amoebiasis: Metronidazole + Diloxanide furoate"))
story.append(BOLD("4. Antidiarrheal Agents:"))
story.append(BUL("Loperamide: for watery diarrhea without fever/blood (adults only)"))
story.append(BUL("Avoid in dysentery (bloody diarrhea) — prolongs infection"))
story.append(BOLD("5. Zinc Supplementation:"))
story.append(BUL("WHO recommends 20 mg/day × 10–14 days in children (reduces severity and recurrence)"))
story.append(SP(8))
# ─── Q.6 ─────────────────────────────────────────────────
story.append(q_box(s, "Q.6 (10 Marks)",
"Define Acute Coronary Syndrome (ACS). Describe the spectrum of ACS — Unstable Angina, NSTEMI & STEMI."))
story.append(SP(6))
story.append(SH("Definition of ACS"))
story.append(B("Acute Coronary Syndrome (ACS) is an umbrella term encompassing a spectrum of acute "
"myocardial ischemic conditions caused by rupture or erosion of an atherosclerotic plaque "
"with subsequent thrombus formation, resulting in partial or complete coronary artery occlusion."))
story.append(SP())
story.append(SH("Pathophysiology"))
story.append(BUL("Atherosclerotic plaque rupture/erosion → platelet aggregation → thrombus formation"))
story.append(BUL("Partial occlusion → NSTEMI / UA; Complete occlusion → STEMI"))
story.append(BUL("Results in myocardial ischemia → injury → necrosis (infarction)"))
story.append(SP())
story.append(SH("Spectrum of ACS"))
# Comparison Table
data = [
["Feature", "Unstable Angina (UA)", "NSTEMI", "STEMI"],
["Coronary Occlusion", "Partial", "Partial/near-complete", "Complete"],
["Myocardial Necrosis", "None", "Present (subendocardial)", "Present (transmural)"],
["Cardiac Biomarkers\n(Troponin)", "Normal", "Elevated", "Markedly elevated"],
["ECG Changes", "ST depression,\nT-wave inversion\nor Normal", "ST depression,\nT-wave inversion", "ST elevation,\nnew LBBB,\nQ waves later"],
["Chest Pain", "At rest, new onset,\nor crescendo pattern", "Prolonged (>20 min)\nat rest", "Prolonged,\nsevere, crushing"],
["Treatment Priority", "Anti-ischemic +\nAntiplatelet", "Anticoagulation +\nEarly invasive", "EMERGENT\nReperfusion"],
]
t = Table(data, colWidths=[3.5*cm, 4.2*cm, 4.2*cm, 5.1*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), DARK_BLUE),
('TEXTCOLOR', (0,0), (-1,0), white),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTNAME', (0,0), (0,-1), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,-1), 8.5),
('ROWBACKGROUNDS', (0,1), (-1,-1), [white, ALT_ROW]),
('GRID', (0,0), (-1,-1), 0.5, grey),
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
]))
story.append(t)
story.append(SP(6))
story.append(SH("Clinical Features of ACS"))
story.append(BUL("Chest pain: central, crushing/squeezing, radiating to left arm, jaw, neck, back"))
story.append(BUL("Dyspnea, diaphoresis, nausea, vomiting"))
story.append(BUL("Anxiety, sense of impending doom"))
story.append(BUL("Silent MI (no chest pain): elderly, diabetics, women"))
story.append(SP())
story.append(SH("Management Overview"))
story.append(BOLD("Initial Management (All ACS — 'MONA' + 'BATMAN'):"))
story.append(BUL("<b>M</b>orphine: 2–4 mg IV for pain (use cautiously — may worsen outcomes in some studies)"))
story.append(BUL("<b>O</b>xygen: if SpO2 < 90%"))
story.append(BUL("<b>N</b>itrates: sublingual GTN → IV nitroglycerin (avoid in hypotension, inferior MI with RV involvement)"))
story.append(BUL("<b>A</b>spirin: 300 mg loading dose STAT + Clopidogrel/Ticagrelor (dual antiplatelet)"))
story.append(BUL("<b>B</b>eta-blocker: oral (if HR > 60, BP > 100, no shock); reduces infarct size"))
story.append(BUL("<b>A</b>nticoagulant: UFH (60 U/kg IV bolus) or LMWH (Enoxaparin); or Fondaparinux"))
story.append(BUL("<b>T</b>hrombolysis / PCI: for STEMI"))
story.append(BUL("<b>A</b>CE inhibitor: within 24h if EF < 40%, anterior STEMI, hypertension"))
story.append(BUL("<b>N</b>itrates: ongoing IV for hemodynamic benefit"))
story.append(SP())
story.append(BOLD("STEMI — Reperfusion Strategy (Time-Sensitive):"))
story.append(BUL("<b>Primary PCI:</b> Door-to-balloon ≤ 90 min — preferred if available"))
story.append(BUL("<b>Thrombolysis:</b> If PCI not available within 120 min of FMC; give within 30 min of presentation"))
story.append(BUL2("Streptokinase 1.5 million IU IV over 60 min, OR"))
story.append(BUL2("Alteplase (tPA) 15 mg IV bolus → 0.75 mg/kg over 30 min → 0.5 mg/kg over 60 min"))
story.append(BOLD("NSTEMI/UA — Early Invasive Strategy:"))
story.append(BUL("Coronary angiography within 24h (very high risk) or 72h (high risk)"))
story.append(BUL("PCI/CABG based on anatomy"))
story.append(SP(8))
# ─── Q.7 ─────────────────────────────────────────────────
story.append(q_box(s, "Q.7 (10 Marks)",
"Discuss various causes of anemia. Describe clinical features of and how will you manage a case of megaloblastic anemia?"))
story.append(SP(6))
story.append(SH("Classification of Anemia"))
story.append(BOLD("By MCV (Morphological Classification):"))
story.append(BUL("<b>Microcytic (MCV < 80 fL):</b> Iron deficiency anemia (most common), Thalassemia, "
"Sideroblastic anemia, Anemia of chronic disease"))
story.append(BUL("<b>Normocytic (MCV 80–100 fL):</b> Aplastic anemia, Hemolytic anemia, Acute blood loss, "
"Anemia of CKD, Early combined deficiency"))
story.append(BUL("<b>Macrocytic (MCV > 100 fL):</b> Megaloblastic (B12/folate deficiency), "
"Non-megaloblastic (hypothyroidism, alcoholism, liver disease, drugs)"))
story.append(SP())
story.append(SH("Megaloblastic Anemia"))
story.append(B("Megaloblastic anemia is a macrocytic anemia caused by impaired DNA synthesis due to "
"deficiency of Vitamin B12 (cobalamin) and/or Folic acid, leading to defective nuclear "
"maturation and cell division, while cytoplasmic growth continues (nuclear-cytoplasmic dissociation)."))
story.append(SP())
story.append(SH("Causes"))
story.append(BOLD("Vitamin B12 Deficiency:"))
story.append(BUL("Pernicious anemia (autoimmune destruction of gastric parietal cells → absent intrinsic factor)"))
story.append(BUL("Strict vegetarian/vegan diet"))
story.append(BUL("Gastrectomy, ileal resection, Crohn's disease"))
story.append(BUL("Fish tapeworm (D. latum), bacterial overgrowth"))
story.append(BUL("Nitrous oxide exposure (inactivates B12)"))
story.append(BOLD("Folic Acid Deficiency:"))
story.append(BUL("Poor dietary intake (alcoholics, elderly, poverty)"))
story.append(BUL("Increased demand: pregnancy, hemolytic anemia, malignancy"))
story.append(BUL("Malabsorption: celiac disease, tropical sprue"))
story.append(BUL("Drugs: Methotrexate, Phenytoin, Sulfasalazine, Trimethoprim (DHFR inhibitors)"))
story.append(SP())
story.append(SH("Clinical Features"))
story.append(BOLD("Symptoms of Anemia:"))
story.append(BUL("Fatigue, weakness, pallor, dyspnea on exertion, palpitations"))
story.append(BOLD("GI Features:"))
story.append(BUL("Glossitis (beefy red, smooth tongue — Hunter's glossitis), angular stomatitis"))
story.append(BUL("Anorexia, weight loss, diarrhea, constipation"))
story.append(BOLD("Neurological Features (B12 Deficiency only — 'Subacute Combined Degeneration of Spinal Cord'):"))
story.append(BUL("Symmetrical paresthesias (hands and feet — glove and stocking pattern)"))
story.append(BUL("Loss of vibration sense and proprioception (posterior column)"))
story.append(BUL("Spasticity, exaggerated reflexes → paraparesis (lateral column)"))
story.append(BUL("Dementia, memory impairment, irritability, depression ('megaloblastic madness')"))
story.append(BOLD("Other:"))
story.append(BUL("Lemon-yellow pallor (mild icterus + pallor due to ineffective erythropoiesis + hemolysis)"))
story.append(BUL("Splenomegaly (mild)"))
story.append(SP())
story.append(SH("Investigations"))
story.append(BUL("<b>CBC:</b> Macrocytic anemia (MCV > 100 fL), leukopenia, thrombocytopenia (pancytopenia)"))
story.append(BUL("<b>Peripheral blood film:</b> Macro-ovalocytes, hypersegmented neutrophils (≥5 lobes in >5% neutrophils)"))
story.append(BUL("<b>Serum B12:</b> < 200 pg/mL (deficient); Serum folate < 2 ng/mL"))
story.append(BUL("<b>Bone marrow (if needed):</b> Megaloblasts, giant metamyelocytes, hypercellular marrow"))
story.append(BUL("<b>LDH and indirect bilirubin:</b> Elevated (ineffective erythropoiesis)"))
story.append(BUL("<b>Serum methylmalonic acid (MMA):</b> Elevated in B12 deficiency (not folate)"))
story.append(BUL("<b>Homocysteine:</b> Elevated in both B12 and folate deficiency"))
story.append(BUL("<b>Schilling test:</b> Differentiates pernicious anemia from dietary deficiency"))
story.append(BUL("<b>Anti-intrinsic factor antibodies + anti-parietal cell antibodies:</b> Pernicious anemia"))
story.append(SP())
story.append(SH("Management"))
story.append(BOLD("Vitamin B12 Deficiency:"))
story.append(BUL("Cyanocobalamin or Hydroxocobalamin 1000 mcg IM daily × 7 days → weekly × 4 weeks → monthly lifelong "
"(if pernicious anemia or malabsorption)"))
story.append(BUL("Oral B12 1000–2000 mcg/day: adequate for dietary deficiency with normal gut"))
story.append(BUL("Reticulocytosis peaks at day 5–7; Hb normalizes in 1–2 months"))
story.append(BOLD("Folic Acid Deficiency:"))
story.append(BUL("Folic acid 5 mg orally once daily × 4 months (or until underlying cause treated)"))
story.append(BUL("<b>IMPORTANT:</b> Always rule out and treat B12 deficiency FIRST before giving folate alone — "
"folate can mask hematological features but worsen neurological damage of B12 deficiency"))
story.append(BOLD("Dietary Advice:"))
story.append(BUL("B12 sources: meat, fish, eggs, dairy products"))
story.append(BUL("Folate sources: green leafy vegetables, legumes, citrus fruits"))
story.append(BUL("Pregnant women: folic acid 400–800 mcg daily (5 mg if previous NTD) — prevents neural tube defects"))
story.append(BOLD("Treat Underlying Cause:"))
story.append(BUL("Discontinue offending drugs, treat celiac disease, manage pernicious anemia"))
story.append(SP(8))
# ─── Q.8 ─────────────────────────────────────────────────
story.append(q_box(s, "Q.8 (15 Marks)",
"Write short note on (any three): (a) Diseases having different teeth staining/altered denture "
"(b) Bell's Palsy (c) Clinical features of Tetanus (d) First line ATT (Anti-Tuberculous Treatment) drugs"))
story.append(SP(6))
# 8a
story.append(BOLD("(a) Diseases having Teeth Staining / Altered Denture"))
story.append(HR())
story.append(BOLD("Intrinsic Staining (within tooth structure):"))
story.append(BUL("<b>Tetracycline staining:</b> Yellow-brown/grey bands; absorbed into developing teeth if given "
"to children < 8 years or pregnant women; fluorescence under UV light"))
story.append(BUL("<b>Fluorosis (Dental):</b> Mottled enamel with white opacities or brown stains; "
"caused by excess fluoride intake (>1.5 mg/L water) during enamel formation"))
story.append(BUL("<b>Amelogenesis imperfecta:</b> Hereditary enamel defect — yellow/brown/white opaque teeth"))
story.append(BUL("<b>Dentinogenesis imperfecta:</b> Hereditary dentin defect; teeth appear opalescent blue-grey "
"or brown; associated with Osteogenesis Imperfecta (Type I collagen defect)"))
story.append(BUL("<b>Erythroblastosis fetalis (HDN):</b> Hemolytic disease of newborn — green/brown staining "
"from bilirubin incorporation into forming teeth"))
story.append(BUL("<b>Porphyria (Erythropoietic):</b> Reddish-brown staining (erythrodontia) — red fluorescence under Wood's lamp"))
story.append(BUL("<b>Alkaptonuria:</b> Dark brownish-black staining"))
story.append(BUL("<b>Sickle cell disease / Thalassemia:</b> Enamel hypoplasia, delayed eruption, malocclusion"))
story.append(BUL("<b>Congenital syphilis:</b> Hutchinson's incisors (notched, peg-shaped); Mulberry molars"))
story.append(BOLD("Extrinsic Staining (on tooth surface):"))
story.append(BUL("Tobacco (yellow-brown), chlorhexidine mouthwash (dark brown), iron supplements (black), "
"coffee/tea (yellow-brown), chromogenic bacteria (green/orange in children)"))
story.append(BOLD("Systemic diseases causing altered dentition:"))
story.append(BUL("<b>Rickets:</b> Enamel hypoplasia, delayed eruption, increased caries"))
story.append(BUL("<b>Hypothyroidism:</b> Delayed dental eruption, macroglossia affecting occlusion"))
story.append(BUL("<b>Down syndrome:</b> Microdontia, hypodontia, delayed eruption, Class III malocclusion"))
story.append(BUL("<b>Ectodermal dysplasia:</b> Anodontia/hypodontia, conical teeth"))
story.append(SP(8))
# 8b
story.append(BOLD("(b) Bell's Palsy"))
story.append(HR())
story.append(B("<b>Bell's palsy</b> is an acute, unilateral, idiopathic lower motor neuron (LMN) facial nerve palsy "
"involving the 7th cranial nerve. It is the most common cause of unilateral facial nerve paralysis (70% of cases)."))
story.append(BOLD("Etiology:"))
story.append(BUL("Herpes Simplex Virus type 1 (HSV-1) reactivation is the most accepted cause"))
story.append(BUL("VZV, HHV-6 also implicated; inflammatory edema causing compression in facial canal (narrow bony canal)"))
story.append(BOLD("Clinical Features:"))
story.append(BUL("Acute onset (usually <72 hours) of unilateral facial weakness/paralysis"))
story.append(BUL("<b>Upper + lower face involved</b> (LMN palsy) — cannot raise eyebrow, wrinkle forehead"))
story.append(BUL("Bell's phenomenon: eyeball rolls upward when attempting to close eye (hallmark)"))
story.append(BUL("Inability to close eye → lagophthalmos → exposure keratitis (corneal complication)"))
story.append(BUL("Loss of taste in anterior 2/3 of tongue (chorda tympani involvement)"))
story.append(BUL("Hyperacusis (loudness intolerance — nerve to stapedius involvement)"))
story.append(BUL("Retroauricular pain, post-auricular pain (early symptom)"))
story.append(BUL("Drooling, difficulty eating and speaking"))
story.append(BOLD("Difference from UMN (Central) Facial Palsy:"))
story.append(BUL("UMN palsy: Upper face spared (forehead spared); LMN palsy: Entire face including forehead involved"))
story.append(BOLD("Investigations:"))
story.append(BUL("Mainly clinical; Blood glucose (exclude diabetic mononeuropathy)"))
story.append(BUL("MRI brain: if atypical features, slow progression, or no improvement by 3 months"))
story.append(BOLD("Treatment:"))
story.append(BUL("<b>Corticosteroids (first-line):</b> Prednisolone 60 mg/day × 5 days, tapered over 10 days; "
"most effective if started within 72 hours of onset"))
story.append(BUL("<b>Antivirals:</b> Acyclovir or Valacyclovir (add to steroids; benefit debated but recommended)"))
story.append(BUL("<b>Eye care:</b> Lubricating eye drops, eye patch at night — prevent corneal injury"))
story.append(BUL("<b>Physiotherapy:</b> Facial exercises to maintain muscle tone"))
story.append(BUL("<b>Prognosis:</b> 85% recover fully within 3–6 months; worst prognosis if complete paralysis + older age"))
story.append(SP(8))
# 8c
story.append(BOLD("(c) Clinical Features of Tetanus"))
story.append(HR())
story.append(B("<b>Tetanus</b> is a non-communicable, potentially fatal acute infectious disease caused by the "
"neurotoxin (tetanospasmin) of <i>Clostridium tetani</i>, a Gram-positive spore-forming anaerobe."))
story.append(BOLD("Pathophysiology:"))
story.append(BUL("Tetanospasmin → transported to CNS retroaxonally → blocks glycine/GABA release in spinal cord "
"→ uninhibited motor discharge → sustained muscle spasm"))
story.append(BOLD("Incubation Period:"))
story.append(BUL("3–21 days (average 7–10 days); shorter IP = more severe disease"))
story.append(BOLD("Forms:"))
story.append(BUL("<b>Generalized (most common):</b> Affects entire body"))
story.append(BUL("<b>Localized:</b> Spasms restricted to site of injury"))
story.append(BUL("<b>Cephalic:</b> Cranial nerve involvement; trismus + facial nerve palsy (rare, poor prognosis)"))
story.append(BUL("<b>Neonatal:</b> Via contaminated umbilical cord stump; high mortality"))
story.append(BOLD("Clinical Features of Generalized Tetanus:"))
story.append(BUL("<b>Trismus (Lockjaw):</b> First and most consistent symptom; masseter muscle spasm preventing mouth opening"))
story.append(BUL("<b>Risus sardonicus:</b> Grotesque grinning facial expression due to facial muscle spasm"))
story.append(BUL("<b>Dysphagia:</b> Difficulty swallowing"))
story.append(BUL("<b>Nuchal rigidity:</b> Neck stiffness"))
story.append(BUL("<b>Opisthotonus:</b> Severe arching of the back with neck extension — due to paraspinal muscle spasm"))
story.append(BUL("<b>Tonic convulsions / Tetanic spasms:</b> Painful, violent generalized spasms triggered by minor stimuli "
"(touch, light, noise) superimposed on tonic rigidity"))
story.append(BUL("<b>Autonomic dysfunction:</b> Tachycardia, hypertension, sweating, hyperpyrexia"))
story.append(BUL("<b>Board-like rigidity of abdomen</b>"))
story.append(BUL("Laryngospasm and respiratory muscle spasm → respiratory failure (main cause of death)"))
story.append(BUL("Consciousness preserved (important diagnostic feature — differentiates from meningitis)"))
story.append(BOLD("Complications:"))
story.append(BUL("Respiratory failure, aspiration pneumonia, fractures (vertebral from spasms), rhabdomyolysis"))
story.append(BOLD("Management Overview:"))
story.append(BUL("Tetanus immune globulin (TIG) 3000–6000 IU IM (neutralize free toxin)"))
story.append(BUL("Wound debridement + Metronidazole 500 mg IV q6h × 7–10 days"))
story.append(BUL("Diazepam (control spasms); Muscle relaxants; Mechanical ventilation if needed"))
story.append(BUL("ICU care: quiet room, minimal stimulation, nutrition support"))
story.append(SP(8))
# 8d
story.append(BOLD("(d) First-Line ATT (Anti-Tuberculous Treatment) Drugs"))
story.append(HR())
story.append(B("The WHO-recommended first-line regimen for pulmonary TB (drug-sensitive): "
"<b>2HRZE / 4HR</b> — 2 months intensive phase + 4 months continuation phase"))
story.append(SP(4))
drug_data = [
["Drug", "Dose\n(Adult)", "Mechanism of Action", "Key Side Effects"],
["Isoniazid (H)", "5 mg/kg\n(max 300 mg)\nDaily oral", "Inhibits mycolic acid synthesis\n(InhA/KatG)",
"Peripheral neuropathy\n(give Pyridoxine B6)\nHepatotoxicity\nSLE-like syndrome"],
["Rifampicin (R)", "10 mg/kg\n(max 600 mg)\nDaily oral", "Inhibits RNA polymerase\n(rpoB gene)",
"Orange-red discoloration of body fluids\nHepatotoxicity\nDrug interactions (CYP450 inducer)\nFlu-like syndrome"],
["Pyrazinamide (Z)", "25 mg/kg\n(max 2g)\nDaily oral", "Disrupts membrane potential\n(acidic pH — intracellular bacilli)",
"Hyperuricemia / Gout\nHepatotoxicity\nArthralgia"],
["Ethambutol (E)", "15–25 mg/kg\nDaily oral", "Inhibits arabinogalactan\nsynthesis (embB gene)",
"Optic neuritis (color vision loss,\nreduced acuity)\nPeripheral neuropathy\n[Monitor visual acuity monthly]"],
]
t = Table(drug_data, colWidths=[3.2*cm, 2.8*cm, 4.8*cm, 6.2*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), DARK_BLUE),
('TEXTCOLOR', (0,0), (-1,0), white),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTNAME', (0,0), (0,-1), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,-1), 8),
('ROWBACKGROUNDS', (0,1), (-1,-1), [white, ALT_ROW]),
('GRID', (0,0), (-1,-1), 0.5, grey),
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
]))
story.append(t)
story.append(SP(6))
story.append(BOLD("Regimen Details:"))
story.append(BUL("<b>Intensive phase (2 months):</b> HRZE daily — reduces bacillary load rapidly"))
story.append(BUL("<b>Continuation phase (4 months):</b> HR daily — eliminates remaining organisms"))
story.append(BUL("<b>Total duration:</b> 6 months (new cases); 9 months if CNS TB or disseminated TB"))
story.append(BUL("<b>DOTS (Directly Observed Therapy Short-course):</b> WHO-recommended strategy"))
story.append(SP())
story.append(BOLD("Drug Monitoring:"))
story.append(BUL("Baseline: LFTs, serum uric acid, visual acuity and color vision, CBC"))
story.append(BUL("Stop all drugs if hepatotoxicity (ALT > 3× ULN with symptoms, or > 5× ULN asymptomatic)"))
story.append(BUL("Ethambutol: Regular visual acuity monitoring monthly"))
story.append(BUL("Isoniazid: Pyridoxine (Vitamin B6) 25–50 mg/day co-prescribed to prevent peripheral neuropathy"))
story.append(SP())
story.append(BOLD("Drug-Resistant TB:"))
story.append(BUL("MDR-TB (resistant to H + R): Longer regimen (18–24 months); Second-line drugs (Fluoroquinolones, etc.)"))
story.append(BUL("XDR-TB: Resistant to H, R + Fluoroquinolone + one injectable; challenging management"))
story.append(SP(6))
# Footer
story.append(HR())
story.append(Paragraph(
"<i>Answers compiled from standard medical textbooks including Braunwald's Heart Disease, "
"Goldman-Cecil Medicine, Harrison's Principles of Internal Medicine, and Robbins Pathology. "
"BDS-301 General Medicine — July 2026 Examination Paper.</i>",
s['note']))
return story
# ─────────────────────────────────────────────────────────────────────────────
# BUILD PDF
# ─────────────────────────────────────────────────────────────────────────────
def add_page_number(canvas_obj, doc):
canvas_obj.saveState()
canvas_obj.setFont('Helvetica', 8)
canvas_obj.setFillColor(HexColor('#888888'))
canvas_obj.drawCentredString(A4[0]/2, 20, f"Page {doc.page} | BDS-301 General Medicine — July 2026 | Model Answers")
canvas_obj.restoreState()
doc = SimpleDocTemplate(
OUTPUT_PATH,
pagesize=A4,
leftMargin=2*cm, rightMargin=2*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="BDS-301 General Medicine Paper-I Answers",
author="Orris Medical AI",
subject="BDS Third Year Examination July 2026"
)
s = build_styles()
story = build_story(s)
doc.build(story, onFirstPage=add_page_number, onLaterPages=add_page_number)
print(f"PDF generated: {OUTPUT_PATH}")
cd /tmp/workspace/bds-exam-answers && python generate_pdf.py 2>&1
ls -lh /tmp/workspace/bds-exam-answers/BDS301_GM_Paper1_Answers.pdf
BDS301 GM Paper1 Answers
PDF Document · PDF