Sabhi antibiotics ki naam list and used aur mechanical ki pdf for medical student ke liye
mkdir -p /home/daytona/workspace/antibiotics-pdf && ls /home/daytona/workspace/
~/antibiotics-pdf/make_antibiotics_pdf.py
#!/usr/bin/env python3
"""
Antibiotics Complete Guide PDF for Medical Students
Covers: Classification, Mechanism of Action, Uses, Side Effects
"""
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import mm, cm
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.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
OUTPUT_PATH = "/home/daytona/workspace/antibiotics-pdf/Antibiotics_Complete_Guide.pdf"
# ─── Colour palette ──────────────────────────────────────────────────────────
DARK_BLUE = colors.HexColor("#1a3a5c")
MED_BLUE = colors.HexColor("#2E6DA4")
LIGHT_BLUE = colors.HexColor("#d6e8f7")
TEAL = colors.HexColor("#17788a")
LIGHT_TEAL = colors.HexColor("#d0f0f5")
GREEN = colors.HexColor("#2e7d32")
LIGHT_GREEN = colors.HexColor("#e8f5e9")
ORANGE = colors.HexColor("#e65100")
LIGHT_ORANGE= colors.HexColor("#fff3e0")
RED = colors.HexColor("#c62828")
LIGHT_RED = colors.HexColor("#ffebee")
PURPLE = colors.HexColor("#6a1b9a")
LIGHT_PURPLE= colors.HexColor("#f3e5f5")
YELLOW_BG = colors.HexColor("#fffde7")
GREY_ROW = colors.HexColor("#f5f5f5")
WHITE = colors.white
BLACK = colors.black
# ─── Styles ──────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()
title_style = ParagraphStyle("Title", parent=styles["Title"],
fontSize=26, textColor=WHITE, alignment=TA_CENTER,
spaceAfter=4, fontName="Helvetica-Bold")
subtitle_style = ParagraphStyle("Subtitle", parent=styles["Normal"],
fontSize=13, textColor=LIGHT_BLUE, alignment=TA_CENTER,
spaceAfter=2, fontName="Helvetica")
h1 = ParagraphStyle("H1", fontSize=15, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_LEFT,
spaceBefore=10, spaceAfter=6, leftIndent=8)
h2 = ParagraphStyle("H2", fontSize=12, textColor=DARK_BLUE,
fontName="Helvetica-Bold", spaceBefore=8, spaceAfter=4, leftIndent=4)
body = ParagraphStyle("Body", fontSize=9.5, leading=13,
fontName="Helvetica", spaceBefore=3, spaceAfter=3, leftIndent=4,
alignment=TA_JUSTIFY)
body_small = ParagraphStyle("BodySm", fontSize=8.5, leading=11,
fontName="Helvetica", spaceBefore=2, spaceAfter=2)
bold_body = ParagraphStyle("BoldBody", fontSize=9.5, leading=13,
fontName="Helvetica-Bold", spaceBefore=3, spaceAfter=3)
cell_style = ParagraphStyle("Cell", fontSize=8, leading=10,
fontName="Helvetica", spaceBefore=1, spaceAfter=1)
cell_bold = ParagraphStyle("CellBold", fontSize=8, leading=10,
fontName="Helvetica-Bold", spaceBefore=1, spaceAfter=1)
note_style = ParagraphStyle("Note", fontSize=8.5, leading=11,
fontName="Helvetica-Oblique", textColor=colors.HexColor("#555555"),
spaceBefore=4, spaceAfter=4, leftIndent=8)
# ─── Helper: coloured section header ─────────────────────────────────────────
def section_header(text, bg_color=MED_BLUE):
tbl = Table([[Paragraph(text, h1)]], colWidths=[175*mm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0, 0), (-1, -1), bg_color),
("BOTTOMPADDING", (0, 0), (-1, -1), 6),
("TOPPADDING", (0, 0), (-1, -1), 6),
("LEFTPADDING", (0, 0), (-1, -1), 10),
("ROUNDEDCORNERS", [4]),
]))
return tbl
# ─── Helper: standard drug table ─────────────────────────────────────────────
def drug_table(header_row, data_rows, col_widths, header_color=MED_BLUE):
p = lambda txt, st=cell_style: Paragraph(str(txt), st)
pb = lambda txt: Paragraph(str(txt), cell_bold)
hdr = [pb(c) for c in header_row]
rows = [[p(c) for c in row] for row in data_rows]
tbl = Table([hdr] + rows, colWidths=col_widths, repeatRows=1)
style = TableStyle([
("BACKGROUND", (0, 0), (-1, 0), header_color),
("TEXTCOLOR", (0, 0), (-1, 0), WHITE),
("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"),
("FONTSIZE", (0, 0), (-1, 0), 9),
("BOTTOMPADDING", (0, 0), (-1, 0), 7),
("TOPPADDING", (0, 0), (-1, 0), 7),
("ROWBACKGROUNDS", (0, 1), (-1, -1), [WHITE, GREY_ROW]),
("FONTSIZE", (0, 1), (-1, -1), 8),
("TOPPADDING", (0, 1), (-1, -1), 5),
("BOTTOMPADDING", (0, 1), (-1, -1), 5),
("LEFTPADDING", (0, 0), (-1, -1), 5),
("RIGHTPADDING", (0, 0), (-1, -1), 5),
("GRID", (0, 0), (-1, -1), 0.5, colors.HexColor("#cccccc")),
("VALIGN", (0, 0), (-1, -1), "TOP"),
])
tbl.setStyle(style)
return tbl
# ─── Cover page elements ──────────────────────────────────────────────────────
def cover_page():
elems = []
# Title banner
title_tbl = Table([
[Paragraph("ANTIBIOTICS", title_style)],
[Paragraph("COMPLETE GUIDE", title_style)],
[Paragraph("Medical Students ke liye Sampoorna Margdarshika", subtitle_style)],
], colWidths=[175*mm])
title_tbl.setStyle(TableStyle([
("BACKGROUND", (0, 0), (-1, -1), DARK_BLUE),
("TOPPADDING", (0, 0), (-1, -1), 12),
("BOTTOMPADDING", (0, 0), (-1, -1), 12),
("ROUNDEDCORNERS", [8]),
]))
elems.append(Spacer(1, 15*mm))
elems.append(title_tbl)
elems.append(Spacer(1, 8*mm))
# Info box
info_data = [
[Paragraph("<b>Ismein Shamil Hai (Contents):</b>", bold_body)],
[Paragraph("• Sabhi major antibiotic classes ki classification", body)],
[Paragraph("• Har antibiotic ka Mechanism of Action (MOA)", body)],
[Paragraph("• Clinical uses (Kab use karein)", body)],
[Paragraph("• Important side effects aur contraindications", body)],
[Paragraph("• Bacterial coverage (Gram+, Gram-, Anaerobes, Atypicals)", body)],
[Paragraph("• Resistance mechanisms", body)],
[Paragraph("• Quick-reference mnemonics", body)],
]
info_tbl = Table(info_data, colWidths=[175*mm])
info_tbl.setStyle(TableStyle([
("BACKGROUND", (0, 0), (-1, -1), LIGHT_BLUE),
("LEFTPADDING", (0, 0), (-1, -1), 14),
("TOPPADDING", (0, 0), (-1, -1), 4),
("BOTTOMPADDING", (0, 0), (-1, -1), 4),
("BOX", (0, 0), (-1, -1), 1.5, MED_BLUE),
("ROUNDEDCORNERS", [6]),
]))
elems.append(info_tbl)
elems.append(Spacer(1, 6*mm))
# Source credit
src = Table([[Paragraph(
"<i>Sources: Lee's Essential Otolaryngology | Jawetz Medical Microbiology | "
"Katzung Pharmacology | Goodman & Gilman's Pharmacology</i>", note_style)]],
colWidths=[175*mm])
src.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,-1), YELLOW_BG),
("BOX",(0,0),(-1,-1),0.8, colors.HexColor("#e0c800")),
("LEFTPADDING",(0,0),(-1,-1),10),
("TOPPADDING",(0,0),(-1,-1),6),
("BOTTOMPADDING",(0,0),(-1,-1),6)]))
elems.append(src)
elems.append(PageBreak())
return elems
# ─── Section 1: Overview / Classification ────────────────────────────────────
def section_overview():
elems = []
elems.append(section_header("1. ANTIBIOTICS KI CLASSIFICATION (Overview)", DARK_BLUE))
elems.append(Spacer(1, 4*mm))
elems.append(Paragraph(
"Antibiotics ko unke <b>target site</b> (jis jagah par kaam karte hain) ke hisab se classify kiya jaata hai:", body))
elems.append(Spacer(1, 3*mm))
overview_data = [
["Target", "Class", "Examples"],
["Cell Wall Synthesis", "Beta-lactams\n(Penicillins, Cephalosporins,\nCarbapenems, Monobactams)\nGlycopeptides", "Amoxicillin, Ceftriaxone,\nMeropenem, Aztreonam,\nVancomycin"],
["Cell Membrane", "Polymyxins\nLipopeptides", "Colistin, Polymyxin B\nDaptomycin"],
["Protein Synthesis\n(30S Ribosome)", "Aminoglycosides\nTetracyclines", "Gentamicin, Amikacin\nDoxycycline, Minocycline"],
["Protein Synthesis\n(50S Ribosome)", "Macrolides\nLincosamides\nChloramphenicol\nOxazolidinones", "Azithromycin, Erythromycin\nClindamycin\nChloramphenicol\nLinezolid"],
["DNA / RNA Synthesis", "Fluoroquinolones\nNitroimidazoles\nNitrofurans\nRifamycins", "Ciprofloxacin, Levofloxacin\nMetronidazole\nNitrofurantoin\nRifampicin"],
["Folic Acid Synthesis", "Sulfonamides\nDiaminopyrimidines", "Sulfamethoxazole\nTrimethoprim (TMP-SMX)"],
]
col_w = [35*mm, 60*mm, 80*mm]
elems.append(drug_table(overview_data[0], overview_data[1:], col_w, DARK_BLUE))
elems.append(Spacer(1, 4*mm))
elems.append(Paragraph(
"<b>Bactericidal vs Bacteriostatic:</b>", bold_body))
bc_data = [
["Bactericidal (Bacteria ko Maarta Hai)", "Bacteriostatic (Bacteria ki Growth Rokta Hai)"],
["Beta-lactams, Aminoglycosides, Fluoroquinolones,\nGlycopeptides, Polymyxins, Metronidazole",
"Tetracyclines, Macrolides, Clindamycin,\nChloramphenicol, Sulfonamides, TMP"],
]
bc_tbl = Table(bc_data, colWidths=[87.5*mm, 87.5*mm])
bc_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,0), GREEN), ("BACKGROUND", (1,0), (1,0), ORANGE),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 8.5),
("BACKGROUND", (0,1), (0,1), LIGHT_GREEN),
("BACKGROUND", (1,1), (1,1), LIGHT_ORANGE),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#aaaaaa")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING",(0,0),(-1,-1),6),
]))
elems.append(bc_tbl)
elems.append(PageBreak())
return elems
# ─── Section 2: Beta-lactams ──────────────────────────────────────────────────
def section_betalactam():
elems = []
elems.append(section_header("2. BETA-LACTAM ANTIBIOTICS", MED_BLUE))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>Mechanism of Action (MOA):</b> Beta-lactam ring, <b>Penicillin-Binding Proteins (PBPs)</b> se bind karta hai "
"aur <b>transpeptidase enzyme</b> ko inhibit karta hai. Isse cell wall ka peptidoglycan cross-linking nahi ho paata "
"aur bacteria ka cell wall weak hokar lysis ho jaata hai. Ye <b>Bactericidal</b> hote hain.", body))
elems.append(Spacer(1, 3*mm))
# Penicillins
elems.append(Paragraph("A. Penicillins", h2))
pen_data = [
["Drug Name", "Spectrum/Coverage", "Clinical Use (Kab Dein)", "Side Effects"],
["Benzyl Penicillin\n(Pen G IV)", "Narrow: GP cocci, Strep,\nNeisseria, Treponema", "Syphilis, Meningococcal\nmeningitis, Rheumatic fever", "Allergy/anaphylaxis,\nDiarrhea"],
["Penicillin V\n(Pen V oral)", "Narrow: GP only", "Strep throat, dental infections", "GI upset, allergy"],
["Ampicillin", "Extended: GP + some GN\n(H. influenzae, E. coli,\nListeria)", "Meningitis (Listeria),\nUTI, Typhoid", "Rash (especially in EBV),\namoxicillin rash"],
["Amoxicillin", "Same as Ampicillin\n(better oral bioavailability)", "Otitis media, Sinusitis,\nStrep throat, H. pylori\n(triple therapy)", "Rash, diarrhea"],
["Amoxicillin-\nClavulanate\n(Co-amoxiclav)", "Extended + beta-lactamase\nresistant: MSSA, Moraxella,\nH. influenzae", "URTI, LRTI, skin infections,\nbites (animal/human)", "Diarrhea, hepatotoxicity,\nCholestatic jaundice"],
["Ampicillin-\nSulbactam", "Same as above +\nAcinetobacter (Sulbactam)", "HAP, skin infections,\nIntra-abdominal", "GI side effects, allergy"],
["Piperacillin-\nTazobactam\n(Pip-Tazo)", "Broadest penicillin:\nPseudomonas, GN, anaerobes,\nsome MSSA", "Severe HAP, febrile\nneutropenia, sepsis", "Hypokalemia, electrolyte\nimbalance, hepatitis"],
["Dicloxacillin /\nFlcloxacillin", "Narrow: MSSA only\n(Penicillinase-resistant)", "MSSA skin, bone, joint\ninfections", "GI upset (take on empty\nstomach)"],
["Methicillin /\nOxacillin", "MSSA only", "MSSA bacteremia,\nendocarditis", "Interstitial nephritis\n(methicillin)"],
]
col_w = [35*mm, 45*mm, 55*mm, 40*mm]
elems.append(drug_table(pen_data[0], pen_data[1:], col_w, MED_BLUE))
elems.append(Spacer(1, 4*mm))
# Cephalosporins
elems.append(Paragraph("B. Cephalosporins (Generations ke mutabiq)", h2))
ceph_data = [
["Generation", "Drug Names", "Coverage", "Clinical Use"],
["1st Generation\n(1G)", "Cefazolin (IV)\nCephalexin (oral)\nCefadroxil (oral)", "MSSA, Strep, oral flora\n(GP dominant)", "Surgical prophylaxis,\nSkin infections, UTI\n(uncomplicated)"],
["2nd Generation\n(2G)", "Cefuroxime\nCefoxitin\nCefprozil\nCefaclor", "Extended GP + H. influenzae,\nMoraxella; Cefoxitin:\nanaerobes (B. fragilis)", "Sinusitis, Otitis media,\nPelvic inflammatory\ndisease (cefoxitin)"],
["3rd Generation\n(3G)", "Ceftriaxone (IV)\nCefotaxime (IV)\nCefixime (oral)\nCeftazidime*\nCefpodoxime (oral)", "Good GN coverage, CSF\npenetration; Ceftazidime:\nPseudomonas (*)", "Meningitis (ceftriaxone),\nGonorrhea, Community\nPneumonia, Typhoid"],
["4th Generation\n(4G)", "Cefepime (IV)", "GP + GN + Pseudomonas\n(broader than 3G)", "Febrile neutropenia,\nHAP, Meningitis"],
["5th Generation\n(5G)", "Ceftaroline (IV)\nCeftolozane", "MRSA coverage! +\nGN spectrum", "MRSA skin/soft tissue,\nCAP (Ceftaroline)"],
["Anti-MRSA +\nPseudomonas", "Ceftazidime-\nAvibactam\nCeftolozane-\nTazobactam", "MDR GN including\nKPC Klebsiella, ESBL", "Complicated UTI,\nHAP, MDR infections"],
]
col_w = [30*mm, 42*mm, 55*mm, 48*mm]
elems.append(drug_table(ceph_data[0], ceph_data[1:], col_w, TEAL))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>Mnemonic - Cephalosporin Generations:</b> "
"<i>\"1G = GP ka Raja, 2G = Haemophilus bhi aaya, 3G = GN ka Badshah + CSF, "
"4G = Pseudomonas bhi, 5G = MRSA bhi haara\"</i>", note_style))
elems.append(Spacer(1, 3*mm))
# Carbapenems + Monobactams
elems.append(Paragraph("C. Carbapenems", h2))
carb_data = [
["Drug Name", "Coverage", "Clinical Use", "Side Effects / Notes"],
["Imipenem-\nCilastatin", "Broadest: GP, GN,\nPseudomonas, anaerobes\n(NOT MRSA, NOT Stenotrophomonas)", "Severe mixed infections,\nFebrile neutropenia,\nIntra-abdominal sepsis", "Seizures (dose-dependent),\nNausea; Cilastatin = renal\nprotection"],
["Meropenem", "Similar to imipenem;\nbetter CNS penetration", "Meningitis, Severe HAP,\nCNS infections", "Less seizures than\nimipenem"],
["Ertapenem", "No Pseudomonas,\nNo Acinetobacter coverage!\nGood community GN", "Community-acquired\ninfections, Diabetic foot,\nIntra-abdominal", "Once-daily dosing;\nDo NOT use for Pseudo"],
["Doripenem", "Similar to meropenem +\nbetter Pseudomonas", "Complicated UTI, HAP,\nMDR GN infections", "Rarely used alone"],
["Meropenem-\nVaborbactam", "KPC-producing\nEnterobacteriaceae (MDR)", "CRE infections", "Novel beta-lactamase\ninhibitor combination"],
]
col_w = [38*mm, 48*mm, 50*mm, 39*mm]
elems.append(drug_table(carb_data[0], carb_data[1:], col_w, colors.HexColor("#1565c0")))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph("D. Monobactams", h2))
mono_data = [
["Drug", "Coverage", "Use", "Special Feature"],
["Aztreonam", "ONLY Gram-negative aerobic\nbacteria (no GP, no anaerobes);\nPseudomonas coverage", "UTI, HAP caused by GN;\nUseful in penicillin-allergic\npatients (minimal cross-reactivity)", "Safe in penicillin allergy;\nNo Gram-positive coverage"],
]
elems.append(drug_table(mono_data[0], mono_data[1:], [38*mm, 50*mm, 55*mm, 32*mm], colors.HexColor("#00838f")))
elems.append(PageBreak())
return elems
# ─── Section 3: Glycopeptides ────────────────────────────────────────────────
def section_glycopeptides():
elems = []
elems.append(section_header("3. GLYCOPEPTIDES", colors.HexColor("#6a1b9a")))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>MOA:</b> D-Ala-D-Ala terminus se bind karke <b>cell wall synthesis ko inhibit</b> karte hain. "
"Beta-lactams se alag target hai, isliye beta-lactam resistance wale bacteria par bhi kaam karte hain. "
"<b>Bactericidal</b> (GP ke liye).", body))
elems.append(Spacer(1, 3*mm))
glyco_data = [
["Drug", "Coverage", "Clinical Use", "Side Effects / Monitoring"],
["Vancomycin\n(IV / Oral)", "GP only: MRSA, MRSE,\nCoNS, Enterococcus,\nC. difficile (oral only -\nnot absorbed)", "MRSA bacteremia/endocarditis,\nMRSA meningitis, MRSA\npneumonia, C. diff (oral)\nHospital-acquired infections",
"Red Man Syndrome (infusion\nrelated - rate-dependent),\nNephrotoxicity + Ototoxicity\n(with aminoglycosides),\nMonitor: Trough/AUC levels"],
["Teicoplanin\n(IV/IM)", "Similar to vancomycin;\nMRSA, Enterococcus,\nC. difficile", "MRSA, Osteomyelitis,\nendocarditis, OPAT therapy\n(long-acting)", "Less nephrotoxic than\nvancomycin; Weekly dosing\npossible"],
["Dalbavancin\n(IV)", "MRSA, Strep, Enterococcus\n(not VRE)", "Skin & soft tissue infections\n(ABSSSI)", "Once-weekly / single-dose;\nlong half-life"],
["Oritavancin\n(IV)", "MRSA + VRE (unique!)", "ABSSSI", "Single dose treatment;\nbifunctional MOA (also\ndisrupts membrane)"],
]
col_w = [30*mm, 45*mm, 55*mm, 45*mm]
elems.append(drug_table(glyco_data[0], glyco_data[1:], col_w, colors.HexColor("#6a1b9a")))
elems.append(Spacer(1, 4*mm))
elems.append(Paragraph(
"<b>Vancomycin Red Man Syndrome:</b> Yeh allergy nahi hai! Yeh mast cell degranulation se hota hai "
"rapid infusion ke wajah se. Treatment: Infusion slow karo + antihistamines dedo.", note_style))
elems.append(Spacer(1, 3*mm))
# Lipopeptides
elems.append(section_header("4. LIPOPEPTIDES", colors.HexColor("#558b2f")))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>MOA:</b> Bacterial cell membrane ko directly disrupt karte hain - calcium-dependent insertion from "
"<b>lipid tail</b>. Membrane depolarization se ion leakage aur cell death. <b>Bactericidal</b>.", body))
elems.append(Spacer(1, 3*mm))
lip_data = [
["Drug", "Coverage", "Clinical Use", "Side Effects / Notes"],
["Daptomycin\n(IV)", "GP only: MRSA, VRE,\nEnterococcus, Strep\n(NOT for pneumonia!)", "MRSA bacteremia, Endocarditis,\nVRE infections, Skin infections\n(ABSSSI)", "Myopathy / CK elevation\n(monitor weekly CPK);\n<b>INACTIVATED by surfactant</b>\n- DO NOT use for pneumonia!\nMonitor LFTs"],
]
elems.append(drug_table(lip_data[0], lip_data[1:], [30*mm, 42*mm, 55*mm, 48*mm], colors.HexColor("#558b2f")))
elems.append(PageBreak())
return elems
# ─── Section 5: Aminoglycosides ──────────────────────────────────────────────
def section_aminoglycosides():
elems = []
elems.append(section_header("5. AMINOGLYCOSIDES", colors.HexColor("#e65100")))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>MOA:</b> <b>30S ribosomal subunit</b> se irreversibly bind karte hain. mRNA-ribosome complex me "
"misreading hoti hai, galat amino acids insert hote hain aur faulty proteins banti hain jo cell membrane "
"damage karti hain. <b>Bactericidal + Concentration-dependent</b> killing. "
"Active transport se bacteria ke andar jaate hain (anaerobes me kaam nahi karte - no oxygen-dependent transport).", body))
elems.append(Spacer(1, 3*mm))
ag_data = [
["Drug Name", "Coverage", "Clinical Use", "Toxicity / Monitoring"],
["Gentamicin\n(IV/IM)", "Aerobic GN: E. coli,\nKlebsiella, Pseudomonas,\nProteus, Serratia;\nSynergy: Enterococcus + GP", "Severe GN sepsis, UTI,\nPneumonia, Endocarditis\n(synergy with penicillin),\nPelvic inflammatory disease", "Nephrotoxicity (proximal\ntubule), Ototoxicity\n(irreversible - vestibular\n> cochlear);\nMonitor: Trough levels,\nCr, U/E"],
["Amikacin\n(IV/IM)", "Broadest aminoglycoside:\nMDR GN including MDR\nPseudomonas, Acinetobacter,\nNTM (non-tuberculous)", "MDR GN infections,\nTB (2nd line), NTM,\nFebrile neutropenia", "Same as gentamicin;\nResistant to modifying\nenzymes (most stable)"],
["Tobramycin\n(IV/Inhaled)", "Similar to gentamicin;\nbetter Pseudomonas\nactivity", "CF lung infections\n(inhaled), Pseudomonas\npneumonia, eye drops", "Inhaled: less systemic\ntoxicity; Eye drops:\nconjunctivitis"],
["Streptomycin\n(IM)", "Mycobacteria (TB),\nBrucella, Plague,\nTularemia, Enterococcus\n(synergy)", "TB (1st line historically),\nPlague, Brucellosis,\nEnterococcal endocarditis", "Most ototoxic (cochlear\ndamage - hearing loss);\nHistorical TB use"],
["Neomycin\n(oral/topical)", "GN bowel flora", "Hepatic encephalopathy\n(reduce NH3), bowel prep\nbefore surgery, topical\nwound care", "Too toxic for systemic\nuse; Minimal absorption\norally; Topical: contact\ndermatitis"],
["Spectinomycin\n(IM)", "Gonorrhea (N. gonorrhoeae)", "Gonorrhea in penicillin-\nallergic patients", "Alternative - rarely\nused now"],
]
col_w = [32*mm, 48*mm, 52*mm, 43*mm]
elems.append(drug_table(ag_data[0], ag_data[1:], col_w, colors.HexColor("#e65100")))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>Mnemonic - Aminoglycoside Toxicity: \"ANTE\"</b> - "
"<b>A</b>nalactin nahi, <b>N</b>ephrotoxic, <b>T</b>eratogenic, <b>E</b>ar (Ototoxic). "
"Remember: <b>Neomycin = Never give systemic</b>", note_style))
elems.append(PageBreak())
return elems
# ─── Section 6: Tetracyclines ────────────────────────────────────────────────
def section_tetracyclines():
elems = []
elems.append(section_header("6. TETRACYCLINES", colors.HexColor("#00695c")))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>MOA:</b> <b>30S ribosomal subunit</b> se reversibly bind karte hain (A site block karte hain) "
"aur aminoacyl-tRNA ka attachment rokta hai. Result: protein synthesis rukti hai. "
"<b>Bacteriostatic</b>. Broad-spectrum coverage hai including atypicals, intracellular organisms.", body))
elems.append(Spacer(1, 3*mm))
tet_data = [
["Drug", "Coverage", "Clinical Use", "Side Effects / Contraindications"],
["Doxycycline", "Broad: GP + GN +\nAtypicals (Mycoplasma,\nChlamydia, Rickettsia,\nCoxiella, Brucella,\nBorrelia), malaria", "Community pneumonia\n(CAP - atypicals),\nSTIs (Chlamydia),\nLyme disease, Malaria\nprophylaxis, Anthrax,\nAcne vulgaris, RMSF",
"Photosensitivity (avoid\nsun!), GI upset (take with\nfood), Esophageal ulcers\n(don't lie down after),\n<b>CI: Pregnancy,\nChildren <8 yrs</b>\n(tooth discoloration,\nbone stunting)"],
["Minocycline", "Similar + MRSA\n(skin MRSA), also\nNocardia", "MRSA skin infections,\nAcne (moderate-severe),\nRA (adjunct)", "Vestibular toxicity\n(dizziness, vertigo),\nAutoimmune hepatitis,\nSLE-like syndrome"],
["Tetracycline\n(plain)", "Broad: atypicals, H. pylori,\nRickettsia, Chlamydia", "H. pylori eradication,\nAcne, Rosacea,\nChlamydia, Brucella", "Most GI side effects;\nbeing replaced by\ndoxycycline"],
["Tigecycline\n(IV)", "Very broad: MRSA, VRE,\nMDR GN (not Pseudomonas!),\nAcinetobacter, anaerobes", "MDR infections,\nIntra-abdominal (cIAI),\nSkin infections (cSSSI),\nCAP", "Nausea/vomiting (most\ncommon); Increased\nmortality in severe HAP;\nAvoid in pregnancy;\nHigher MICs for Pseudo"],
["Omadacycline\n(oral/IV)", "MRSA, atypicals,\nCommunity pathogens", "CAP, ABSSSI\n(newer agent)", "Similar to doxycycline;\nonce-daily dosing"],
]
col_w = [30*mm, 48*mm, 52*mm, 45*mm]
elems.append(drug_table(tet_data[0], tet_data[1:], col_w, colors.HexColor("#00695c")))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>Tetracycline + Dairy / Antacids:</b> Calcium, Magnesium, Iron se chelation hoti hai - absorption "
"significantly reduce hoti hai. Always take on empty stomach (except doxycycline - can take with food for GI).", note_style))
elems.append(PageBreak())
return elems
# ─── Section 7: Macrolides ───────────────────────────────────────────────────
def section_macrolides():
elems = []
elems.append(section_header("7. MACROLIDES & LINCOSAMIDES", colors.HexColor("#ad1457")))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>Macrolide MOA:</b> <b>50S ribosomal subunit</b> (23S rRNA) se bind karke <b>translocation step</b> "
"ko block karte hain. Peptide chain ka elongation nahi hota. <b>Bacteriostatic</b> (high conc me bactericidal). "
"Intracellular organisms ke liye excellent - high tissue concentration achieves hoti hai.", body))
elems.append(Spacer(1, 3*mm))
mac_data = [
["Drug", "Coverage", "Clinical Use", "Side Effects / Drug Interactions"],
["Azithromycin\n(Z-pack)", "Atypicals (Mycoplasma,\nChlamydia, Legionella),\nStrep, H. influenzae,\nMoraxella, NTM, Gonorrhea", "CAP (atypicals),\nChlamydia STI,\nMAC prophylaxis\n(HIV), Otitis media,\nGonorrhea (+ceftriaxone)",
"GI motility (diarrhea),\nQTc prolongation\n(especially with other\nQT drugs), Hepatotoxicity;\nFew CYP interactions\n(short half-life is advantage)"],
["Clarithromycin", "Atypicals, H. pylori,\nMAC, Bartonella,\nStrep, MSSA", "H. pylori (triple/quad\ntherapy), MAC treatment\n(HIV), CAP, Sinusitis", "Most GI SE of macrolides;\nStrong CYP3A4 inhibitor\n(many drug interactions!);\nQTc prolongation;\nMetallic taste; CI:\nPregnancy (teratogen)"],
["Erythromycin", "Strep, Atypicals,\nCampylobacter,\nChlamydia (historical)", "Historical CAP,\nGI motility agent\n(motilin agonist),\nBordetella pertussis", "Most GI side effects;\nStrong CYP3A4 inhibitor;\nIV: thrombophlebitis;\nQTc prolongation;\nOtotoxic at high IV doses"],
["Fidaxomicin\n(oral)", "C. difficile ONLY\n(narrow spectrum)", "C. difficile infection\n(CDI) - lower recurrence\nthan oral vancomycin", "Minimal systemic\nabsorption; GI upset;\nMore expensive"],
]
col_w = [30*mm, 45*mm, 50*mm, 50*mm]
elems.append(drug_table(mac_data[0], mac_data[1:], col_w, colors.HexColor("#ad1457")))
elems.append(Spacer(1, 4*mm))
# Lincosamides
elems.append(Paragraph("Lincosamides", h2))
elems.append(Paragraph(
"<b>MOA:</b> 50S subunit se bind karta hai - macrolides jaisa lekin alag binding site. "
"<b>Bacteriostatic</b>. Anaerobic coverage bahut achi hai.", body))
elems.append(Spacer(1, 2*mm))
lin_data = [
["Drug", "Coverage", "Clinical Use", "Side Effects"],
["Clindamycin\n(oral/IV)", "GP (MRSA - esp. CA-MRSA,\nStrep) + Anaerobes above\nthe diaphragm (B. fragilis\nCOVERAGE VARIABLE);\nToxoplasma (combo)", "CA-MRSA skin infections,\nAspiration pneumonia,\nOropharyngeal anaerobes,\nBite wounds, Dental\ninfections, PCP (with\nprimaquine), Toxoplasma",
"<b>C. difficile colitis</b>\n(most notorious SE - can\ncause PMC!), Diarrhea,\nNMJ blockade (rare),\nPseudo-membranous colitis"],
]
col_w = [30*mm, 48*mm, 55*mm, 42*mm]
elems.append(drug_table(lin_data[0], lin_data[1:], col_w, colors.HexColor("#880e4f")))
elems.append(PageBreak())
return elems
# ─── Section 8: Fluoroquinolones ─────────────────────────────────────────────
def section_fluoroquinolones():
elems = []
elems.append(section_header("8. FLUOROQUINOLONES", colors.HexColor("#1565c0")))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>MOA:</b> Bacterial <b>DNA gyrase (topoisomerase II)</b> aur <b>topoisomerase IV</b> ko inhibit karte "
"hain. DNA strand breakage hoti hai aur bacteria ka DNA replicate nahi ho paata. "
"<b>Bactericidal + Concentration-dependent</b> killing.", body))
elems.append(Spacer(1, 3*mm))
fq_data = [
["Drug", "Coverage (Generation)", "Clinical Use", "Side Effects / CI"],
["Ciprofloxacin\n(oral/IV)", "2nd gen: Best GN coverage\n+ Pseudomonas; NO reliable\nGP or anaerobe coverage;\nAtypicals", "Complicated UTI/Pyelonephritis,\nTraveler's diarrhea, Typhoid,\nAnthrax, Pseudomonas UTI,\nProstatitis, Gonorrhea", "QTc prolongation,\nCNS toxicity (seizures,\npsychosis), Tendinopathy/\nTendon rupture (esp.\nAchilles + fluoride steroids),\nPhototoxicity,\nCI: Pregnancy, children\n(<18 yrs in most cases),\nMyasthenia gravis"],
["Levofloxacin\n(oral/IV)", "3rd gen: MSSA + Strep +\nGN + Pseudomonas +\nAtypicals (Respiratory FQ)", "CAP, HAP, Complicated\nUTI, Pyelonephritis,\nTB (2nd line), Anthrax,\nSinusitis", "Same class effects;\nLess Pseudomonas than\ncipro; Good for CAP"],
["Moxifloxacin\n(oral/IV)", "4th gen: MSSA + Strep +\nGN + Anaerobes + Atypicals;\nNO Pseudomonas coverage!", "CAP (best for atypicals),\nSinusitis, Intra-abdominal\n(anaerobic coverage),\nSkin infections",
"Same + Highest QTc risk\nof all FQs; NO renal\nadjustment needed;\nCSF penetration good"],
["Norfloxacin\n(oral)", "1st gen: Only urinary\ntract levels adequate;\nGN (E. coli, Klebsiella)", "Uncomplicated UTI,\nGI decontamination\nin cirrhosis", "Obsolete in most\ncountries; poor tissue\npenetration"],
["Delafloxacin\n(oral/IV)", "MRSA + GN + Atypicals\n(newer broad spectrum)", "ABSSSI with MRSA,\nCAP", "Similar class effects;\nActive in acidic pH\n(useful in abscesses)"],
["Ofloxacin\n(oral/ear drops)", "Similar to ciprofloxacin\nplus Chlamydia", "STIs, Otitis externa,\n(ear drops), Leprosy\n(MDT combination)", "Similar class effects"],
]
col_w = [32*mm, 50*mm, 53*mm, 40*mm]
elems.append(drug_table(fq_data[0], fq_data[1:], col_w, colors.HexColor("#1565c0")))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>Fluoroquinolone Black Box Warning (FDA):</b> Tendinitis aur tendon rupture, peripheral neuropathy, "
"CNS effects, aur aortic aneurysm/dissection ka risk. Elderly aur steroid users me zyada risk.", note_style))
elems.append(PageBreak())
return elems
# ─── Section 9: DNA/Anaerobic antibiotics ────────────────────────────────────
def section_dna_others():
elems = []
elems.append(section_header("9. DNA / ANAEROBIC ANTIBIOTICS + MISC", colors.HexColor("#37474f")))
elems.append(Spacer(1, 3*mm))
misc_data = [
["Drug", "Class", "MOA", "Coverage", "Clinical Use", "Side Effects"],
["Metronidazole\n(Flagyl)\noral/IV", "Nitroimidazole", "Enters bacteria, reduced to\nreactive nitro radical by\nelectron transport chain,\ndamages DNA & proteins.\nBactericidal.", "Anaerobes (esp. B. fragilis,\nC. difficile, Bacteroides),\nProtozoa (Giardia,\nTrichomonas, Amoeba)", "C. diff infection, BV,\nTrichomonas, Giardia,\nAmoebic dysentery/liver\nabscess, Intra-abdominal\ninfections (+ ceftriaxone)",
"Metallic taste, Nausea,\nDisulfiram reaction\n(no alcohol!),\nPeripheral neuropathy\n(long-term), Headache;\nCI: 1st trimester\npregnancy"],
["Nitrofurantoin\n(Macrobid)\noral only", "Nitrofuran", "Converted to reactive\nintermediates that damage\nbacterial DNA, ribosomes,\ncell membrane.", "GP + GN urinary pathogens:\nE. coli, S. saprophyticus,\nEnterococcus; NOT\nPseudomonas or Proteus", "Uncomplicated cystitis\n(UTI) in women,\nUTI prophylaxis,\nPregnancy UTI (except\nnear term)",
"Pulmonary fibrosis\n(long-term use),\nHemolytic anemia\n(G6PD deficiency!),\nPeripheral neuropathy;\nCI: GFR <30 (no urine\nconcentration);\nAvoid at term pregnancy"],
["Trimethoprim-\nSulfamethoxazole\n(TMP-SMX,\nCo-trimoxazole)", "Sulfonamide +\nDihydrofolate\nreductase\ninhibitor", "SMX: Inhibits dihydropteroate\nsynthase (PABA analogue);\nTMP: Inhibits DHFR; Together:\nSequential blockade of folate\nsynthesis. Bactericidal (synergy).", "Broad GP + GN:\nCA-MRSA, E. coli,\nKlebsiella, Listeria,\nPneumocystis jirovecii\n(PCP), Toxoplasma", "UTI, CA-MRSA skin\ninfections, PCP treatment/\nprophylaxis (HIV),\nToxoplasma prophylaxis,\nPneumocystis pneumonia,\nTraveler's diarrhea,\nNocardia",
"SJS/TEN (sulfa),\nCytopenias (bone marrow),\nHyperkalemia (TMP blocks\nK secretion), Increases\nwarfarin levels, Renal\n(crystalluria - hydrate!),\nHepato-toxicity;\nCI: G6PD, Pregnancy\n(term)"],
["Rifampicin\n(Rifampin)", "Rifamycin", "Binds DNA-dependent\nRNA polymerase beta\nsubunit, inhibits bacterial\ntranscription (mRNA\nsynthesis). Bactericidal.", "Mycobacteria (TB, leprosy),\nMRSA (in combination only),\nNeisseria meningitidis\n(prophylaxis)", "TB (1st line: RIPE),\nLeprosy (MDT),\nMRSA biofilm infections\n(combo), Meningococcal\nchemoprophylaxis,\nH. influenzae prophylaxis",
"Orange-red discoloration\n(urine, tears, sweat - warn\npatient!), Hepatotoxicity,\nStrong CYP450 inducer\n(many drug interactions -\nOCP, warfarin, HIV drugs),\nFlu-like syndrome\n(intermittent use)"],
["Chloramphenicol\n(oral/IV/eye)", "Amphenicol", "50S ribosomal subunit bind;\nblocks peptidyl transferase\nstep. Bacteriostatic (can be\nbactericidal for some).", "Broad: GP + GN + anaerobes\n+ rickettsiae + spirochetes;\nGood CSF penetration", "Typhoid fever, Brain\nabscess, Bacterial\nmeningitis (penicillin\nallergy), Rickettsial\ninfections, Eye infections\n(topical)",
"Gray Baby Syndrome\n(neonates - UDP\nglucuronyl transferase\ndeficiency), Aplastic\nanemia (idiosyncratic),\nReversible bone marrow\nsuppression (dose-related);\nNow rarely used systemically"],
["Linezolid\n(Zyvox)\noral/IV", "Oxazolidinone", "Binds 23S rRNA of 50S\nsubunit at initiation complex\nformation (30S-50S join) -\nblocks protein synthesis\ninitiation. Bacteriostatic.", "GP only: MRSA, VRE,\nMDR Strep, MDR TB\n(XDR-TB)", "MRSA pneumonia,\nMRSA bacteremia\n(alternative), VRE\ninfections, XDR-TB\n(combination)",
"Myelosuppression\n(thrombocytopenia esp.\n>2 weeks use), Serotonin\nsyndrome (with SSRIs,\nMAOIs!), Peripheral/\noptic neuropathy\n(long-term), Lactic\nacidosis; Monitor CBC\nweekly; MAO inhibitor\nproperties"],
["Tedizolid\n(oral/IV)", "Oxazolidinone\n(2nd gen)", "Same as linezolid;\nbetter selectivity", "MRSA, VRE", "ABSSSI (6-day course\nvs 10-day linezolid)", "Less myelosuppression;\nno MAO inhibitor activity"],
]
col_w = [28*mm, 22*mm, 38*mm, 32*mm, 30*mm, 25*mm]
tbl = drug_table(misc_data[0], misc_data[1:], col_w, colors.HexColor("#37474f"))
elems.append(tbl)
elems.append(PageBreak())
return elems
# ─── Section 10: Anti-TB / Special ──────────────────────────────────────────
def section_antitb():
elems = []
elems.append(section_header("10. ANTI-TUBERCULOSIS DRUGS (RIPE)", colors.HexColor("#4e342e")))
elems.append(Spacer(1, 3*mm))
elems.append(Paragraph(
"<b>1st Line TB Drugs - RIPE Mnemonic:</b> <b>R</b>ifampicin + <b>I</b>soniazid + <b>P</b>yrazinamide + "
"<b>E</b>thambutol (+ Streptomycin = RIPES). Initial 2 months: RIPE, Continuation 4 months: RI.", body))
elems.append(Spacer(1, 3*mm))
tb_data = [
["Drug", "MOA", "Side Effects (Key)", "Notes"],
["Rifampicin (R)", "RNA polymerase inhibitor\n(bactericidal)", "Orange secretions, Hepatitis,\nCYP450 inducer (drug interactions!)", "Monitor LFTs; Turns urine\norange-red"],
["Isoniazid (H/I)", "Inhibits mycolic acid synthesis\n(InhA enzyme); prodrug\nactivated by KatG enzyme\n(bactericidal)", "Peripheral neuropathy\n(B6/pyridoxine deficiency),\nDrug-induced lupus (SLE),\nHepatitis (acetylators!),\nSideroblastic anemia", "Give pyridoxine (B6)\nprophylactically; Fast vs\nslow acetylators"],
["Pyrazinamide (Z)", "Disrupts membrane energy\n(acidic pH - in macrophages);\nprodrug activated by PncA\n(bactericidal intracellular)", "Hyperuricemia (gout),\nHepatitis, Arthralgias,\nRash", "Active only in acid pH\n(inside macrophages);\nCritical for 1st 2 months"],
["Ethambutol (E)", "Inhibits arabinosyl transferase\n(arabinogalactan synthesis)\n(bacteriostatic)", "Optic neuritis (vision change,\nred-green color blindness!),\nRetrobulbar neuritis", "Monitor vision monthly;\nBaseline visual acuity;\nCI: age <6 (can't test\nvision reliably)"],
["Streptomycin (S)", "30S ribosome inhibitor\n(aminoglycoside)\n(bactericidal)", "Ototoxicity (hearing loss -\ncochlear), Nephrotoxicity", "IM injection; 5th drug\nin some regimens"],
["Pyridoxine (B6)", "Not antibiotic - supplement", "Prevents INH peripheral\nneuropathy", "Always co-prescribe\nwith isoniazid"],
["2nd Line: Bedaquiline", "ATP synthase inhibitor\n(bactericidal) - novel MOA!", "QTc prolongation,\nHepatotoxicity, Nausea", "MDR-TB and XDR-TB"],
["2nd Line: Delamanid", "Mycolic acid synthesis\ninhibitor (different from INH)", "QTc prolongation,\nNausea", "MDR-TB; Used with\nbedaquiline (avoid\nQTc risk)"],
["2nd Line: Pretomanid", "Dual MOA: mycolic acid\ninhibitor + reactive nitrogen\nspecies (bactericidal)", "Peripheral neuropathy,\nHematological toxicity", "XDR-TB (BPaL regimen)"],
]
col_w = [32*mm, 52*mm, 55*mm, 36*mm]
elems.append(drug_table(tb_data[0], tb_data[1:], col_w, colors.HexColor("#4e342e")))
elems.append(PageBreak())
return elems
# ─── Section 11: Resistance Mechanisms ──────────────────────────────────────
def section_resistance():
elems = []
elems.append(section_header("11. ANTIBIOTIC RESISTANCE MECHANISMS", colors.HexColor("#b71c1c")))
elems.append(Spacer(1, 3*mm))
resist_data = [
["Mechanism", "How it Works", "Antibiotics Affected", "Examples"],
["Enzymatic\nInactivation", "Bacteria enzymes antibiotic\nko chemically modify/destroy\nkarte hain", "Beta-lactams (beta-lactamases),\nAminoglycosides (modifying\nenzymes), Chloramphenicol\n(acetyltransferase)", "MRSA, ESBL E. coli,\nKPC Klebsiella,\nNDM-producing bacteria"],
["Target Site\nModification", "Antibiotic ka binding site\nbadal jaata hai - affinity\nkam ho jaati hai", "Beta-lactams (PBP2a in MRSA),\nGlycopeptides (D-Ala-D-Lac\nin VRE), FQ (mutant gyrase),\nMacrolides (methylated 23S)", "MRSA (mecA gene),\nVRE (vanA/B),\nFQ-resistant salmonella"],
["Reduced Permeability\n(Porin changes)", "Outer membrane porins delete\nya modify hote hain - drug\nandar nahi ja paata", "Beta-lactams in Pseudomonas\n(OprD porin loss),\nCarbapenems", "Carbapenem-resistant\nPseudomonas aeruginosa"],
["Efflux Pumps", "Active transport pumps drug\nko cell se bahar phenk dete\nhain (ATP-dependent)", "Tetracyclines, FQs, Macrolides,\nBeta-lactams (GN),\nChloramphenicol", "MDR Pseudomonas,\nMDR Acinetobacter,\nMRSA (NorA pump)"],
["Biofilm Formation", "Extracellular matrix bacteria\nko protect karta hai - drug\npenetration bahut kam", "Most antibiotics less effective\nin biofilm state; 100-1000x\nhigher MIC needed", "S. aureus on prosthetics,\nP. aeruginosa in CF,\nCoNS on catheters"],
["Bypassing\nTarget Pathway", "Bacteria alternate pathway\nuse karta hai same function\nke liye", "Sulfonamides (alternative\nfolate uptake), TMP\n(alternate DHFR)", "Sulfonamide-resistant\nbacteria using\nexogenous folate"],
]
col_w = [32*mm, 48*mm, 52*mm, 43*mm]
elems.append(drug_table(resist_data[0], resist_data[1:], col_w, colors.HexColor("#b71c1c")))
elems.append(Spacer(1, 5*mm))
# Quick coverage summary
elems.append(section_header("12. QUICK COVERAGE REFERENCE", colors.HexColor("#1b5e20")))
elems.append(Spacer(1, 3*mm))
qr_data = [
["Organism", "Drug(s) of Choice (1st Line)", "Alternatives"],
["MSSA (Methicillin-sensitive\nS. aureus)", "Nafcillin/Oxacillin (IV), Cefazolin\n(IV), Dicloxacillin/Flucloxacillin (oral)", "Clindamycin, TMP-SMX, Doxycycline"],
["CA-MRSA (skin, soft tissue)", "TMP-SMX, Doxycycline,\nClindamycin (if D-zone neg)", "Linezolid, Vancomycin (severe)"],
["HA-MRSA (bacteremia,\npneumonia)", "Vancomycin (IV) or\nDaptomycin (bacteremia only)", "Linezolid (pneumonia), Ceftaroline"],
["Streptococcus pneumoniae\n(meningitis)", "Ceftriaxone + Vancomycin\n(pending sensitivities)", "Meropenem + Vancomycin"],
["Pseudomonas aeruginosa", "Piperacillin-tazobactam or\nCefepime or Meropenem +/-\nAminoglycoside", "Ciprofloxacin, Aztreonam,\nColistin (MDR)"],
["C. difficile (mild-mod)", "Vancomycin oral (125mg QID) or\nFidaxomicin (preferred - less relapse)", "Metronidazole (mild, resource limited)"],
["Atypical pneumonia\n(Mycoplasma, Chlamydophila)", "Azithromycin or Doxycycline", "Levofloxacin, Clarithromycin"],
["Legionella pneumophila", "Azithromycin or Levofloxacin", "Doxycycline, Moxifloxacin"],
["Anaerobes (below diaphragm)", "Metronidazole, Piperacillin-\ntazobactam, Meropenem", "Clindamycin (above diaphragm),\nCefoxitin, Moxifloxacin"],
["ESBL-producing GN", "Meropenem/Ertapenem", "Ceftazidime-avibactam,\nTemocillin (limited regions)"],
["VRE (Vancomycin-resistant\nEnterococcus)", "Linezolid or Daptomycin", "Tedizolid, Oritavancin"],
["Neisseria gonorrhoeae", "Ceftriaxone 500mg IM single dose\n+ Doxycycline (if chlamydia\nnot excluded)", "Azithromycin (if cephalosporin\nallergy + sensitivities known)"],
]
col_w = [42*mm, 75*mm, 58*mm]
elems.append(drug_table(qr_data[0], qr_data[1:], col_w, colors.HexColor("#1b5e20")))
elems.append(PageBreak())
return elems
# ─── Assemble & Build ────────────────────────────────────────────────────────
def build_pdf():
doc = SimpleDocTemplate(
OUTPUT_PATH,
pagesize=A4,
rightMargin=15*mm, leftMargin=15*mm,
topMargin=15*mm, bottomMargin=15*mm,
title="Antibiotics Complete Guide - Medical Students",
author="Medical Library Reference",
)
story = []
story += cover_page()
story += section_overview()
story += section_betalactam()
story += section_glycopeptides()
story += section_aminoglycosides()
story += section_tetracyclines()
story += section_macrolides()
story += section_fluoroquinolones()
story += section_dna_others()
story += section_antitb()
story += section_resistance()
doc.build(story)
print(f"PDF created: {OUTPUT_PATH}")
if __name__ == "__main__":
build_pdf()
cd /home/daytona/workspace/antibiotics-pdf && python3 make_antibiotics_pdf.py 2>&1
ls -lh /home/daytona/workspace/antibiotics-pdf/
Antibiotics Complete Guide
PDF Document · PDF
| Target | Class | Examples |
|---|---|---|
| Cell Wall Synthesis | Beta-lactams, Glycopeptides | Amoxicillin, Vancomycin |
| Cell Membrane | Polymyxins, Lipopeptides | Colistin, Daptomycin |
| Protein (30S) | Aminoglycosides, Tetracyclines | Gentamicin, Doxycycline |
| Protein (50S) | Macrolides, Lincosamides, Linezolid | Azithromycin, Clindamycin |
| DNA/RNA | Fluoroquinolones, Metronidazole, Rifampicin | Ciprofloxacin, Flagyl |
| Folic Acid | Sulfonamides, TMP | TMP-SMX |
Pdf writing me banker do
fc-list | grep -i "noto.*devanagari\|noto.*hindi\|lohit.*devanagari\|mukti\|gargi\|mangal" | head -20
fc-list | grep -i "noto\|hindi\|urdu\|nastaliq\|devanagari" | head -20
fc-list | head -30 && python3 -c "from reportlab.pdfbase.cidfonts import UnicodeCIDFont; print('CID ok')" 2>&1
find /usr/share/fonts /usr/local/share/fonts ~/.fonts 2>/dev/null | grep -i "\.ttf\|\.otf" | head -20
pip install --quiet reportlab bidi arabic-reshaper 2>&1 | tail -3
# Download Google Noto Devanagari font mkdir -p /home/daytona/workspace/antibiotics-pdf/fonts curl -sL "https://github.com/googlefonts/noto-fonts/raw/main/hinted/ttf/NotoSansDevanagari/NotoSansDevanagari-Regular.ttf" \ -o /home/daytona/workspace/antibiotics-pdf/fonts/NotoSansDevanagari-Regular.ttf && echo "OK" || echo "FAIL"
# Download Bold variant too curl -sL "https://github.com/googlefonts/noto-fonts/raw/main/hinted/ttf/NotoSansDevanagari/NotoSansDevanagari-Bold.ttf" \ -o /home/daytona/workspace/antibiotics-pdf/fonts/NotoSansDevanagari-Bold.ttf && echo "BOLD OK" || echo "BOLD FAIL" ls -lh /home/daytona/workspace/antibiotics-pdf/fonts/
python3 -c " from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont from reportlab.platypus import SimpleDocTemplate, Paragraph from reportlab.lib.styles import ParagraphStyle from reportlab.lib.pagesizes import A4 pdfmetrics.registerFont(TTFont('Devanagari', '/home/daytona/workspace/antibiotics-pdf/fonts/NotoSansDevanagari-Regular.ttf')) pdfmetrics.registerFont(TTFont('Devanagari-Bold', '/home/daytona/workspace/antibiotics-pdf/fonts/NotoSansDevanagari-Bold.ttf')) style = ParagraphStyle('test', fontName='Devanagari', fontSize=14) doc = SimpleDocTemplate('/tmp/test_hindi.pdf', pagesize=A4) doc.build([Paragraph('एंटीबायोटिक्स की पूरी जानकारी - मेडिकल छात्रों के लिए', style)]) print('Hindi PDF test OK') " 2>&1
~/antibiotics-pdf/make_hindi_antibiotics.py
#!/usr/bin/env python3
"""
Antibiotics Complete Guide - Hindi PDF for Medical Students
"""
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import mm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
# Register fonts
FONT_REG = '/home/daytona/workspace/antibiotics-pdf/fonts/NotoSansDevanagari-Regular.ttf'
FONT_BOLD = '/home/daytona/workspace/antibiotics-pdf/fonts/NotoSansDevanagari-Bold.ttf'
pdfmetrics.registerFont(TTFont('Hindi', FONT_REG))
pdfmetrics.registerFont(TTFont('HindiBold', FONT_BOLD))
OUTPUT = "/home/daytona/workspace/antibiotics-pdf/Antibiotics_Hindi_Guide.pdf"
# Colours
DARK_BLUE = colors.HexColor("#1a3a5c")
MED_BLUE = colors.HexColor("#2E6DA4")
LIGHT_BLUE = colors.HexColor("#d6e8f7")
TEAL = colors.HexColor("#17788a")
GREEN = colors.HexColor("#2e7d32")
LIGHT_GREEN = colors.HexColor("#e8f5e9")
ORANGE = colors.HexColor("#e65100")
LIGHT_ORANGE = colors.HexColor("#fff3e0")
RED = colors.HexColor("#c62828")
LIGHT_RED = colors.HexColor("#ffebee")
PURPLE = colors.HexColor("#6a1b9a")
YELLOW_BG = colors.HexColor("#fffde7")
GREY_ROW = colors.HexColor("#f0f4f8")
WHITE = colors.white
# Styles
def S(name, font='Hindi', size=10, color=colors.black, align=TA_LEFT,
bold=False, sb=3, sa=3, li=0, leading=None):
return ParagraphStyle(name,
fontName='HindiBold' if bold else font,
fontSize=size,
textColor=color,
alignment=align,
spaceBefore=sb, spaceAfter=sa,
leftIndent=li,
leading=leading or max(size*1.4, 12))
title_st = S('T', size=24, color=WHITE, align=TA_CENTER, bold=True, sb=4, sa=4)
sub_st = S('S', size=12, color=LIGHT_BLUE, align=TA_CENTER, sb=2, sa=2)
h1_st = S('H1', size=14, color=WHITE, bold=True, sb=6, sa=4, li=6)
h2_st = S('H2', size=11, color=DARK_BLUE, bold=True, sb=8, sa=4, li=4)
body_st = S('B', size=9, align=TA_JUSTIFY, sb=2, sa=2, li=4)
bold_st = S('BB', size=9, bold=True, sb=2, sa=2, li=4)
cell_st = S('C', size=7.5, sb=1, sa=1, leading=10)
cellb_st = S('CB', size=7.5, bold=True, sb=1, sa=1, leading=10)
note_st = S('N', size=8, color=colors.HexColor("#444444"), sb=3, sa=3, li=8, leading=11)
warn_st = S('W', size=8.5, color=RED, bold=True, sb=2, sa=2, li=6)
def sec_hdr(text, bg=MED_BLUE):
t = Table([[Paragraph(text, h1_st)]], colWidths=[175*mm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0),(-1,-1), bg),
('TOPPADDING', (0,0),(-1,-1), 7),
('BOTTOMPADDING', (0,0),(-1,-1), 7),
('LEFTPADDING', (0,0),(-1,-1), 10),
]))
return t
def dtable(hdr, rows, widths, hcol=MED_BLUE):
p = lambda t: Paragraph(str(t), cell_st)
pb = lambda t: Paragraph(str(t), cellb_st)
data = [[pb(c) for c in hdr]] + [[p(c) for c in r] for r in rows]
t = Table(data, colWidths=widths, repeatRows=1)
t.setStyle(TableStyle([
('BACKGROUND', (0,0),(-1,0), hcol),
('TEXTCOLOR', (0,0),(-1,0), WHITE),
('FONTNAME', (0,0),(-1,0), 'HindiBold'),
('FONTSIZE', (0,0),(-1,0), 8.5),
('TOPPADDING', (0,0),(-1,0), 6),
('BOTTOMPADDING', (0,0),(-1,0), 6),
('ROWBACKGROUNDS',(0,1),(-1,-1), [WHITE, GREY_ROW]),
('FONTSIZE', (0,1),(-1,-1), 7.5),
('TOPPADDING', (0,1),(-1,-1), 4),
('BOTTOMPADDING', (0,1),(-1,-1), 4),
('LEFTPADDING', (0,0),(-1,-1), 5),
('RIGHTPADDING', (0,0),(-1,-1), 5),
('GRID', (0,0),(-1,-1), 0.4, colors.HexColor("#cccccc")),
('VALIGN', (0,0),(-1,-1), 'TOP'),
]))
return t
def infobox(lines, bg=LIGHT_BLUE, border=MED_BLUE):
rows = [[Paragraph(l, body_st)] for l in lines]
t = Table(rows, colWidths=[175*mm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0),(-1,-1), bg),
('LEFTPADDING', (0,0),(-1,-1), 14),
('TOPPADDING', (0,0),(-1,-1), 4),
('BOTTOMPADDING', (0,0),(-1,-1), 4),
('BOX', (0,0),(-1,-1), 1.5, border),
]))
return t
# ─── COVER ───────────────────────────────────────────────────────────────────
def cover():
e = []
banner = Table([
[Paragraph("एंटीबायोटिक्स", title_st)],
[Paragraph("सम्पूर्ण मार्गदर्शिका", title_st)],
[Paragraph("(Antibiotics Complete Guide)", sub_st)],
[Paragraph("मेडिकल छात्रों के लिए - Hindi में", sub_st)],
], colWidths=[175*mm])
banner.setStyle(TableStyle([
('BACKGROUND', (0,0),(-1,-1), DARK_BLUE),
('TOPPADDING', (0,0),(-1,-1), 10),
('BOTTOMPADDING', (0,0),(-1,-1), 10),
]))
e.append(Spacer(1, 12*mm))
e.append(banner)
e.append(Spacer(1, 6*mm))
e.append(infobox([
"इस PDF में क्या है:",
"• सभी एंटीबायोटिक वर्गों की सूची (Classification)",
"• हर एंटीबायोटिक का कार्य-तंत्र (Mechanism of Action - MOA)",
"• कब और किस बीमारी में दें (Clinical Uses)",
"• दुष्प्रभाव और सावधानियाँ (Side Effects & Contraindications)",
"• बैक्टीरियल कवरेज - Gram+, Gram-, Anaerobes, Atypicals",
"• Resistance के तरीके",
"• Quick Reference Chart",
"• Hindi में याद करने के Mnemonics",
]))
e.append(Spacer(1, 5*mm))
src = Table([[Paragraph(
"स्रोत: Lee's Essential Otolaryngology | Jawetz Medical Microbiology | "
"Katzung Pharmacology | Goodman & Gilman's Pharmacology", note_st)]],
colWidths=[175*mm])
src.setStyle(TableStyle([
('BACKGROUND',(0,0),(-1,-1), YELLOW_BG),
('BOX',(0,0),(-1,-1), 0.8, colors.HexColor("#ccaa00")),
('LEFTPADDING',(0,0),(-1,-1),10),
('TOPPADDING',(0,0),(-1,-1),5),
('BOTTOMPADDING',(0,0),(-1,-1),5),
]))
e.append(src)
e.append(PageBreak())
return e
# ─── SECTION 1: OVERVIEW ─────────────────────────────────────────────────────
def sec_overview():
e = []
e.append(sec_hdr("१. एंटीबायोटिक्स का वर्गीकरण (Classification)", DARK_BLUE))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"एंटीबायोटिक्स को उनके <b>लक्ष्य स्थान (Target Site)</b> के आधार पर वर्गीकृत किया जाता है "
"जहाँ वे बैक्टीरिया पर कार्य करते हैं:", body_st))
e.append(Spacer(1,2*mm))
ov = [
["लक्ष्य (Target)", "वर्ग (Class)", "उदाहरण (Examples)"],
["कोशिका भित्ति संश्लेषण\n(Cell Wall Synthesis)",
"Beta-Lactams:\nPenicillins, Cephalosporins,\nCarbapenems, Monobactams\nGlycopeptides",
"Amoxicillin, Ceftriaxone,\nMeropenem, Aztreonam,\nVancomycin, Teicoplanin"],
["कोशिका झिल्ली\n(Cell Membrane)",
"Polymyxins\nLipopeptides",
"Colistin, Polymyxin B\nDaptomycin"],
["प्रोटीन संश्लेषण\n30S Ribosome",
"Aminoglycosides\nTetracyclines",
"Gentamicin, Amikacin\nDoxycycline, Minocycline"],
["प्रोटीन संश्लेषण\n50S Ribosome",
"Macrolides\nLincosamides\nChloramphenicol\nOxazolidinones",
"Azithromycin, Erythromycin\nClindamycin\nChloramphenicol\nLinezolid"],
["DNA / RNA संश्लेषण",
"Fluoroquinolones\nNitroimidazoles\nNitrofurans\nRifamycins",
"Ciprofloxacin, Levofloxacin\nMetronidazole\nNitrofurantoin\nRifampicin"],
["फोलिक एसिड संश्लेषण\n(Folic Acid Synthesis)",
"Sulfonamides\nDHF Reductase Inhibitors",
"Sulfamethoxazole\nTrimethoprim (TMP-SMX)"],
]
e.append(dtable(ov[0], ov[1:], [45*mm, 65*mm, 65*mm], DARK_BLUE))
e.append(Spacer(1,4*mm))
e.append(Paragraph("<b>Bactericidal बनाम Bacteriostatic:</b>", bold_st))
bc = Table([
[Paragraph("Bactericidal - बैक्टीरिया को मारता है", cellb_st),
Paragraph("Bacteriostatic - बैक्टीरिया की वृद्धि रोकता है", cellb_st)],
[Paragraph("Beta-Lactams, Aminoglycosides, Fluoroquinolones,\nGlycopeptides, Polymyxins, Metronidazole, Daptomycin", cell_st),
Paragraph("Tetracyclines, Macrolides, Clindamycin,\nChloramphenicol, Sulfonamides, TMP, Linezolid", cell_st)],
], colWidths=[87.5*mm, 87.5*mm])
bc.setStyle(TableStyle([
('BACKGROUND',(0,0),(0,0), GREEN), ('BACKGROUND',(1,0),(1,0), ORANGE),
('TEXTCOLOR',(0,0),(-1,0), WHITE),
('BACKGROUND',(0,1),(0,1), LIGHT_GREEN), ('BACKGROUND',(1,1),(1,1), LIGHT_ORANGE),
('GRID',(0,0),(-1,-1), 0.5, colors.HexColor("#aaa")),
('TOPPADDING',(0,0),(-1,-1),5), ('BOTTOMPADDING',(0,0),(-1,-1),5),
('LEFTPADDING',(0,0),(-1,-1),6), ('VALIGN',(0,0),(-1,-1),'TOP'),
]))
e.append(bc)
e.append(PageBreak())
return e
# ─── SECTION 2: BETA-LACTAMS ─────────────────────────────────────────────────
def sec_betalactam():
e = []
e.append(sec_hdr("२. Beta-Lactam एंटीबायोटिक्स", MED_BLUE))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"<b>कार्य-तंत्र (MOA):</b> Beta-Lactam की रिंग, <b>Penicillin-Binding Proteins (PBPs)</b> से जुड़ती है "
"और <b>Transpeptidase एंजाइम</b> को रोकती है। इससे Cell Wall का Peptidoglycan Cross-Linking नहीं हो पाता "
"और बैक्टीरिया की दीवार कमज़ोर होकर टूट जाती है। ये <b>Bactericidal</b> होते हैं।", body_st))
e.append(Spacer(1,3*mm))
# Penicillins
e.append(Paragraph("A. Penicillins", h2_st))
pd = [
["दवा का नाम", "Coverage / Spectrum", "उपयोग (Clinical Use)", "दुष्प्रभाव (Side Effects)"],
["Benzyl Penicillin\n(Pen G - IV)",
"Narrow: GP cocci,\nStreptococcus, Neisseria,\nTreponema pallidum",
"उपदंश (Syphilis), Meningococcal\nMeningitis, Rheumatic Fever",
"Allergy / Anaphylaxis,\nDiarrhea"],
["Penicillin V\n(Pen V - Oral)",
"Narrow: GP bacteria only",
"Strep Throat, Dental Infections",
"GI upset, Allergy"],
["Amoxicillin\n(Oral)",
"Extended: GP + कुछ GN\n(H. influenzae, E. coli,\nListeria)",
"Otitis Media, Sinusitis,\nStrep Throat, H. pylori\n(Triple Therapy)",
"Rash, Diarrhea,\nEBV में Maculopapular Rash"],
["Amoxicillin-\nClavulanate\n(Co-Amoxiclav)",
"Extended + Beta-Lactamase\nResistant: MSSA, Moraxella,\nH. influenzae",
"URTI, LRTI,\nत्वचा संक्रमण (Skin Infections),\nजानवर/इंसान का काटना (Bites)",
"Diarrhea, Hepatotoxicity,\nCholestatic Jaundice"],
["Piperacillin-\nTazobactam\n(Pip-Tazo)",
"सबसे विस्तृत Penicillin:\nPseudomonas, GN, Anaerobes,\nMSSA",
"गंभीर HAP, Febrile Neutropenia,\nSepsis, Intra-abdominal",
"Hypokalemia, Hepatitis,\nElectrolyte imbalance"],
["Dicloxacillin /\nFlucloxacillin\n(Oral)",
"Narrow: MSSA only\n(Penicillinase-Resistant)",
"MSSA की त्वचा, हड्डी,\nजोड़ों के संक्रमण",
"GI Upset (खाली पेट न लें)"],
]
e.append(dtable(pd[0], pd[1:], [32*mm, 45*mm, 52*mm, 46*mm], MED_BLUE))
e.append(Spacer(1,4*mm))
# Cephalosporins
e.append(Paragraph("B. Cephalosporins (पीढ़ी के अनुसार / Generations)", h2_st))
cd = [
["पीढ़ी", "दवाएँ", "Coverage", "उपयोग"],
["1st Generation\n(पहली पीढ़ी)",
"Cefazolin (IV)\nCephalexin (Oral)\nCefadroxil (Oral)",
"MSSA, Streptococcus,\nOral Flora (GP Dominant)",
"शल्य चिकित्सा रोकथाम (Surgical Prophylaxis),\nत्वचा संक्रमण, UTI (uncomplicated)"],
["2nd Generation\n(दूसरी पीढ़ी)",
"Cefuroxime\nCefoxitin\nCefaclor",
"GP + H. influenzae,\nMoraxella;\nCefoxitin: Anaerobes",
"Sinusitis, Otitis Media,\nPelvic Inflammatory Disease (Cefoxitin)"],
["3rd Generation\n(तीसरी पीढ़ी)",
"Ceftriaxone (IV)\nCefotaxime (IV)\nCeftazidime* (IV)\nCefixime (Oral)",
"अच्छी GN Coverage,\nCSF Penetration;\nCeftazidime: Pseudomonas",
"Meningitis (Ceftriaxone),\nटाइफाइड, Gonorrhea,\nSAP / Community Pneumonia"],
["4th Generation\n(चौथी पीढ़ी)",
"Cefepime (IV)",
"GP + GN + Pseudomonas\n(3rd Generation से विस्तृत)",
"Febrile Neutropenia,\nHAP, Meningitis"],
["5th Generation\n(पाँचवीं पीढ़ी)",
"Ceftaroline (IV)\nCeftolozane-Tazobactam",
"MRSA Coverage!\n+ GN Spectrum",
"MRSA त्वचा/नरम ऊतक,\nCAP (Ceftaroline);\nMDR GN"],
]
e.append(dtable(cd[0], cd[1:], [28*mm, 38*mm, 50*mm, 59*mm], TEAL))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"याद करें (Mnemonic): '1G = GP का राजा | 2G = Haemophilus भी आया | "
"3G = GN का बादशाह + CSF | 4G = Pseudomonas भी | 5G = MRSA भी हारा'", note_st))
e.append(Spacer(1,3*mm))
# Carbapenems
e.append(Paragraph("C. Carbapenems (सबसे शक्तिशाली Beta-Lactams)", h2_st))
cab = [
["दवा", "Coverage", "उपयोग", "महत्त्वपूर्ण बातें"],
["Imipenem-\nCilastatin",
"सबसे विस्तृत: GP, GN,\nPseudomonas, Anaerobes\n(MRSA नहीं)",
"गंभीर Mixed Infections,\nFebrile Neutropenia,\nIntra-Abdominal Sepsis",
"दौरे (Seizures) - dose-dependent;\nCilastatin = गुर्दों की रक्षा"],
["Meropenem",
"Imipenem जैसा +\nबेहतर CNS Penetration",
"Meningitis, गंभीर HAP,\nCNS Infections, MDR GN",
"Seizures कम;\nMeningitis में पसंद"],
["Ertapenem",
"Pseudomonas नहीं!\nAcinetobacter नहीं!\nसामुदायिक GN bacteria",
"Community Infections,\nDiabetic Foot,\nIntra-Abdominal",
"एक बार रोज़ (Once Daily);\nPseudomonas में मत दें!"],
]
e.append(dtable(cab[0], cab[1:], [35*mm, 47*mm, 50*mm, 43*mm],
colors.HexColor("#1565c0")))
e.append(Spacer(1,3*mm))
e.append(Paragraph("D. Monobactams", h2_st))
mb = [
["दवा", "Coverage", "उपयोग", "विशेष बात"],
["Aztreonam",
"केवल Gram-Negative\nAerobic Bacteria\n(Pseudomonas Coverage)",
"GN UTI, HAP;\nPenicillin Allergy\nवाले मरीज़ों के लिए",
"Penicillin Allergy में\nसुरक्षित; GP Coverage नहीं"],
]
e.append(dtable(mb[0], mb[1:], [32*mm, 48*mm, 52*mm, 43*mm],
colors.HexColor("#00838f")))
e.append(PageBreak())
return e
# ─── SECTION 3: GLYCOPEPTIDES + LIPOPEPTIDES ─────────────────────────────────
def sec_glyco():
e = []
e.append(sec_hdr("३. Glycopeptides", PURPLE))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"<b>कार्य-तंत्र (MOA):</b> Cell Wall के <b>D-Ala-D-Ala</b> terminus से जुड़ता है और "
"<b>Cell Wall Synthesis</b> को रोकता है। Beta-Lactams से अलग Target है, इसलिए "
"Beta-Lactam Resistant बैक्टीरिया पर भी काम करता है। <b>Bactericidal (GP के लिए)</b>।", body_st))
e.append(Spacer(1,3*mm))
gd = [
["दवा", "Coverage", "उपयोग", "दुष्प्रभाव / निगरानी"],
["Vancomycin\n(IV / Oral)",
"केवल GP: MRSA, MRSE,\nEnterococcus,\nC. difficile (Oral only -\nअवशोषित नहीं होता)",
"MRSA Bacteremia / Endocarditis,\nMRSA Meningitis,\nMRSA Pneumonia,\nC. diff (Oral),\nHospital-Acquired Infections",
"Red Man Syndrome (infusion\nrate-dependent - Allergy नहीं!),\nNephrotoxicity + Ototoxicity\n(Aminoglycosides के साथ),\nMonitor: Trough / AUC"],
["Teicoplanin\n(IV/IM)",
"Vancomycin जैसा:\nMRSA, Enterococcus,\nC. difficile",
"MRSA, Osteomyelitis,\nEndocarditis,\nOPAT (Long-Acting)",
"Vancomycin से कम\nNephrotoxic;\nसाप्ताहिक खुराक संभव"],
]
e.append(dtable(gd[0], gd[1:], [30*mm, 43*mm, 55*mm, 47*mm], PURPLE))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"Red Man Syndrome: यह Allergy नहीं है! तेज़ Infusion से Mast Cell Degranulation होता है। "
"इलाज: Infusion धीमा करें + Antihistamine दें।", note_st))
e.append(Spacer(1,4*mm))
e.append(sec_hdr("४. Lipopeptides", colors.HexColor("#558b2f")))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"<b>कार्य-तंत्र (MOA):</b> Calcium-Dependent तरीके से Bacterial Cell Membrane में घुस जाता है, "
"Membrane को Depolarize करता है → Ion Leakage → Cell Death। <b>Bactericidal</b>।", body_st))
e.append(Spacer(1,3*mm))
lp = [
["दवा", "Coverage", "उपयोग", "महत्त्वपूर्ण दुष्प्रभाव"],
["Daptomycin\n(IV)",
"केवल GP: MRSA, VRE,\nEnterococcus, Streptococcus\n(Pneumonia में नहीं!)",
"MRSA Bacteremia,\nEndocarditis,\nVRE Infections,\nत्वचा संक्रमण",
"Myopathy / CPK बढ़ना\n(CPK weekly monitor करें!);\nSurfactant से निष्क्रिय होता है -\nनिमोनिया में मत दें!\nLFTs Monitor करें"],
]
e.append(dtable(lp[0], lp[1:], [30*mm, 43*mm, 52*mm, 50*mm],
colors.HexColor("#558b2f")))
e.append(PageBreak())
return e
# ─── SECTION 5: AMINOGLYCOSIDES ──────────────────────────────────────────────
def sec_amino():
e = []
e.append(sec_hdr("५. Aminoglycosides", ORANGE))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"<b>कार्य-तंत्र (MOA):</b> <b>30S Ribosomal Subunit</b> से <b>अपरिवर्तनीय रूप से (Irreversibly)</b> "
"जुड़ते हैं। mRNA की Misreading होती है, गलत Amino Acids डलती हैं और खराब Proteins बनती हैं "
"जो Cell Membrane को नुकसान पहुँचाती हैं। <b>Bactericidal + Concentration-Dependent Killing</b>। "
"Anaerobes में काम नहीं करते (Oxygen-dependent transport चाहिए)।", body_st))
e.append(Spacer(1,3*mm))
ad = [
["दवा", "Coverage", "उपयोग", "विषाक्तता / निगरानी"],
["Gentamicin\n(IV/IM)",
"Aerobic GN: E. coli,\nKlebsiella, Pseudomonas,\nProteus, Serratia;\nSynergy: Enterococcus",
"गंभीर GN Sepsis,\nUTI, Pneumonia,\nEndocarditis (Penicillin\nके साथ Synergy)",
"Nephrotoxicity\n(Proximal Tubule),\nOtotoxicity - अपरिवर्तनीय!\n(Vestibular > Cochlear);\nTrough Levels Monitor"],
["Amikacin\n(IV/IM)",
"सबसे विस्तृत Aminoglycoside:\nMDR GN, MDR Pseudomonas,\nAcinetobacter, NTM (TB)",
"MDR GN Infections,\nTB (2nd Line), NTM,\nFebrile Neutropenia",
"Gentamicin जैसा;\nModifying Enzymes से\nProof - सबसे Stable"],
["Tobramycin\n(IV/Inhaled)",
"Gentamicin जैसा +\nPseudomonas में बेहतर",
"CF Lung Infections\n(Inhaled), Pseudomonas\nPneumonia, Eye Drops",
"Inhaled: कम Systemic\nToxicity;\nEye Drops: Conjunctivitis"],
["Streptomycin\n(IM)",
"Mycobacteria (TB),\nBrucella, Plague,\nTularemia",
"TB (Historical 1st Line),\nBrucellosis, Plague,\nEnterococcal Endocarditis",
"सबसे अधिक Ototoxic\n(Cochlear - बहरापन);\nNephrotoxicity"],
["Neomycin\n(Oral/Topical)",
"GN Bowel Flora",
"Hepatic Encephalopathy\n(NH3 कम करने),\nBowel Prep Surgery,\nTopical घाव",
"Systemic Use के लिए\nबहुत विषाक्त;\nContact Dermatitis (Topical)"],
]
e.append(dtable(ad[0], ad[1:], [30*mm, 45*mm, 50*mm, 50*mm], ORANGE))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"याद करें: 'ANTE' = Anaerobes में काम नहीं, Nephrotoxic, Teratogenic, Ear (Ototoxic)। "
"Neomycin = कभी Systemic मत दें!", note_st))
e.append(PageBreak())
return e
# ─── SECTION 6: TETRACYCLINES ────────────────────────────────────────────────
def sec_tetracycline():
e = []
e.append(sec_hdr("६. Tetracyclines", colors.HexColor("#00695c")))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"<b>कार्य-तंत्र (MOA):</b> <b>30S Ribosomal Subunit</b> से <b>Reversibly</b> जुड़ते हैं "
"(A-Site Block), Aminoacyl-tRNA का जुड़ाव रोकते हैं → Protein Synthesis रुकती है। "
"<b>Bacteriostatic</b>। Intracellular Organisms के लिए उत्कृष्ट।", body_st))
e.append(Spacer(1,3*mm))
td = [
["दवा", "Coverage", "उपयोग", "दुष्प्रभाव / सावधानी"],
["Doxycycline\n(Oral/IV)",
"GP + GN + Atypicals:\nMycoplasma, Chlamydia,\nRickettsia, Coxiella,\nBorrelia, Brucella;\nMalaria",
"Community Pneumonia (CAP),\nChlamydia STI,\nLyme Disease, Malaria Prophylaxis,\nAnthrax, मुँहासे (Acne),\nRocky Mountain Spotted Fever",
"Photosensitivity (धूप से बचें!),\nGI Upset,\nEsophageal Ulcers (लेटें नहीं),\nCI: गर्भावस्था,\n8 साल से छोटे बच्चे!\n(दाँत पीले, हड्डी रुकना)"],
["Minocycline\n(Oral)",
"Doxycycline जैसा +\nCA-MRSA, Nocardia",
"MRSA त्वचा Infections,\nAcne (moderate-severe),\nRA (Adjunct)",
"Vestibular Toxicity\n(चक्कर, Vertigo),\nAutoimmune Hepatitis,\nSLE-Like Syndrome"],
["Tetracycline\n(Plain - Oral)",
"Broad: Atypicals,\nH. pylori, Rickettsia,\nChlamydia",
"H. pylori उन्मूलन,\nAcne, Rosacea,\nChlamydia",
"सबसे अधिक GI दुष्प्रभाव;\nDoxycycline से बदल दिया"],
["Tigecycline\n(IV)",
"बहुत विस्तृत: MRSA, VRE,\nMDR GN (Pseudomonas नहीं!),\nAcinetobacter, Anaerobes",
"MDR Infections,\nIntra-Abdominal (cIAI),\nत्वचा संक्रमण (cSSSI), CAP",
"उबकाई/उल्टी (सबसे सामान्य);\nHAP में Mortality बढ़ सकती है;\nगर्भावस्था में नहीं"],
]
e.append(dtable(td[0], td[1:], [30*mm, 45*mm, 52*mm, 48*mm],
colors.HexColor("#00695c")))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"महत्त्वपूर्ण: Tetracycline + Dairy / Antacids = Chelation → Absorption बहुत कम हो जाती है। "
"Calcium, Magnesium, Iron के साथ न लें।", note_st))
e.append(PageBreak())
return e
# ─── SECTION 7: MACROLIDES + LINCOSAMIDES ────────────────────────────────────
def sec_macrolide():
e = []
e.append(sec_hdr("७. Macrolides और Lincosamides", colors.HexColor("#ad1457")))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"<b>Macrolide MOA:</b> <b>50S Ribosomal Subunit</b> (23S rRNA) से जुड़कर "
"<b>Translocation Step</b> को Block करते हैं। Peptide Chain का Elongation नहीं होता। "
"<b>Bacteriostatic</b>। Intracellular Organisms के लिए बेहतरीन।", body_st))
e.append(Spacer(1,3*mm))
md = [
["दवा", "Coverage", "उपयोग", "दुष्प्रभाव / Drug Interactions"],
["Azithromycin\n(Z-Pack, Oral/IV)",
"Atypicals: Mycoplasma,\nChlamydia, Legionella;\nStreptococcus, H. influenzae,\nMoraxella, NTM",
"CAP (Atypicals),\nChlamydia STI,\nMAC Prophylaxis (HIV),\nOtitis Media,\nGonorrhea (+Ceftriaxone)",
"GI Motility (Diarrhea),\nQTc Prolongation!\n(अन्य QT दवाओं के साथ),\nHepatotoxicity;\nCYP Interactions कम"],
["Clarithromycin\n(Oral)",
"Atypicals, H. pylori,\nMAC, Bartonella,\nStreptococcus, MSSA",
"H. pylori (Triple/Quad Therapy),\nMAC Treatment (HIV),\nCAP, Sinusitis",
"सबसे अधिक GI Side Effects;\nStrong CYP3A4 Inhibitor\n(बहुत Drug Interactions!);\nQTc Prolongation;\nCI: गर्भावस्था"],
["Erythromycin\n(Oral/IV)",
"Streptococcus, Atypicals,\nCampylobacter",
"Historical CAP,\nGI Motility Agent\n(Motilin Agonist),\nBordetella Pertussis",
"सबसे अधिक GI Side Effects;\nStrong CYP3A4 Inhibitor;\nQTc Prolongation;\nIV: Thrombophlebitis"],
]
e.append(dtable(md[0], md[1:], [30*mm, 42*mm, 52*mm, 51*mm],
colors.HexColor("#ad1457")))
e.append(Spacer(1,4*mm))
e.append(Paragraph("Lincosamides", h2_st))
e.append(Paragraph(
"<b>MOA:</b> 50S Subunit से जुड़ता है - Macrolides जैसा लेकिन अलग Binding Site। "
"<b>Bacteriostatic</b>। Anaerobic Coverage बहुत अच्छी है।", body_st))
e.append(Spacer(1,2*mm))
ld = [
["दवा", "Coverage", "उपयोग", "दुष्प्रभाव"],
["Clindamycin\n(Oral/IV)",
"GP (CA-MRSA,\nStreptococcus) +\nAnaerobes (ऊपर\nDiaphragm के)",
"CA-MRSA त्वचा संक्रमण,\nAspiration Pneumonia,\nOropharyngeal Anaerobes,\nDental Infections,\nToxoplasma (combo)",
"C. difficile Colitis\n(सबसे बड़ा दुष्प्रभाव!),\nDiarrhea,\nPseudomembranous Colitis"],
]
e.append(dtable(ld[0], ld[1:], [30*mm, 43*mm, 55*mm, 47*mm],
colors.HexColor("#880e4f")))
e.append(PageBreak())
return e
# ─── SECTION 8: FLUOROQUINOLONES ─────────────────────────────────────────────
def sec_fq():
e = []
e.append(sec_hdr("८. Fluoroquinolones", colors.HexColor("#1565c0")))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"<b>कार्य-तंत्र (MOA):</b> Bacterial <b>DNA Gyrase (Topoisomerase II)</b> और "
"<b>Topoisomerase IV</b> को Inhibit करते हैं। DNA Strand Breakage होती है → DNA Replication रुकती है। "
"<b>Bactericidal + Concentration-Dependent Killing</b>।", body_st))
e.append(Spacer(1,3*mm))
fqd = [
["दवा", "Coverage", "उपयोग", "दुष्प्रभाव / सावधानी"],
["Ciprofloxacin\n(Oral/IV)",
"2nd Gen: सबसे अच्छी\nGN Coverage + Pseudomonas;\nAtypicals;\nGP Coverage अच्छी नहीं",
"Complicated UTI / Pyelonephritis,\nYatri Diarrhea (Traveler's),\nटाइफाइड, Anthrax, Prostatitis,\nGonorrhea",
"QTc Prolongation,\nCNS Toxicity (दौरे, मनोविकृति),\nTendinopathy / Tendon Rupture!\n(Achilles),\nPhotosensitivity;\nCI: गर्भावस्था,\n18 साल से कम, Myasthenia Gravis"],
["Levofloxacin\n(Oral/IV)\n'Respiratory FQ'",
"3rd Gen: MSSA + Strep +\nGN + Pseudomonas +\nAtypicals",
"CAP (Respiratory FQ),\nHAP, Complicated UTI,\nTB (2nd Line), Sinusitis",
"Class Effects;\nCAP में पसंद;\nCipro से कम Pseudomonas"],
["Moxifloxacin\n(Oral/IV)\n'4th Gen'",
"4th Gen: MSSA + Strep +\nGN + Anaerobes + Atypicals;\nPseudomonas Coverage नहीं!",
"CAP (Atypicals के लिए सर्वश्रेष्ठ),\nSinusitis,\nIntra-Abdominal (Anaerobes)",
"सबसे अधिक QTc Risk!\nGुर्दे की खुराक समायोजन नहीं;\nCSF Penetration अच्छी"],
["Ofloxacin\n(Oral/Ear drops)",
"Cipro जैसा +\nChlamydia",
"STIs, Otitis Externa\n(कान की बूँदें),\nLeprosy (MDT)",
"Class Effects;\nकान की बूँदें: Local only"],
]
e.append(dtable(fqd[0], fqd[1:], [32*mm, 48*mm, 52*mm, 43*mm],
colors.HexColor("#1565c0")))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"FDA Black Box Warning: Tendinitis और Tendon Rupture, Peripheral Neuropathy, CNS Effects, "
"Aortic Aneurysm / Dissection का खतरा। बुज़ुर्गों और Steroid लेने वालों में अधिक जोखिम।", note_st))
e.append(PageBreak())
return e
# ─── SECTION 9: DNA / MISC ───────────────────────────────────────────────────
def sec_misc():
e = []
e.append(sec_hdr("९. DNA / Miscellaneous एंटीबायोटिक्स", colors.HexColor("#37474f")))
e.append(Spacer(1,3*mm))
misc = [
["दवा", "वर्ग", "MOA (कार्य-तंत्र)", "Coverage", "उपयोग", "दुष्प्रभाव"],
["Metronidazole\n(Flagyl)\nOral/IV",
"Nitroimidazole",
"Bacteria में जाकर Electron\nTransport Chain द्वारा\nReactive Nitro Radical बनता है\n→ DNA और Proteins को\nनुकसान → Bactericidal",
"Anaerobes (B. fragilis,\nC. difficile, Bacteroides),\nProtozoa (Giardia,\nTrichomonas, Amoeba)",
"C. diff Infection, BV,\nTrichomonas, Giardia,\nAmoebic Dysentery /\nLiver Abscess,\nIntra-Abdominal",
"धातु जैसा स्वाद (Metallic Taste),\nमितली, Disulfiram Reaction\n(शराब बिल्कुल नहीं!),\nPeripheral Neuropathy,\nCI: 1st Trimester गर्भावस्था"],
["Nitrofurantoin\n(Macrobid)\nOral only",
"Nitrofuran",
"Reactive Intermediates बनाता है\n→ DNA, Ribosomes,\nCell Membrane को नुकसान",
"GP + GN Urinary Pathogens:\nE. coli, S. saprophyticus,\nEnterococcus;\nPseudomonas / Proteus नहीं",
"Uncomplicated Cystitis (UTI),\nUTI Prophylaxis,\nगर्भावस्था में UTI\n(Term के पास नहीं)",
"Pulmonary Fibrosis (Long-term),\nHemolytic Anemia (G6PD!),\nPeripheral Neuropathy;\nCI: GFR <30,\nTerm गर्भावस्था"],
["TMP-SMX\n(Co-Trimoxazole)\nOral/IV",
"Sulfonamide +\nDHFR Inhibitor",
"SMX: PABA Analogue -\nDihydropteroate Synthase Block;\nTMP: DHFR Inhibit;\nमिलकर: Folate Synthesis\nका Sequential Blockade\n→ Bactericidal (Synergy)",
"Broad: CA-MRSA,\nE. coli, Klebsiella,\nListeria, Pneumocystis\njirovecii (PCP),\nToxoplasma",
"UTI, CA-MRSA त्वचा,\nPCP Treatment/Prophylaxis\n(HIV), Toxoplasma,\nTraveler's Diarrhea,\nNocardia",
"SJS/TEN (Sulfa!),\nCytopenias (Bone Marrow),\nHyperkalemia (TMP),\nWarfarin बढ़ाता है,\nHepatotoxicity;\nCI: G6PD, गर्भावस्था"],
["Rifampicin\n(Rifampin)\nOral/IV",
"Rifamycin",
"DNA-Dependent RNA\nPolymerase Beta Subunit\nसे जुड़ता है → Transcription\n(mRNA Synthesis) रुकती है\n→ Bactericidal",
"Mycobacteria (TB, Leprosy),\nMRSA (Combination only),\nNeisseria meningitidis\n(Prophylaxis)",
"TB (1st Line: RIPE),\nLeprosy (MDT),\nMRSA Biofilm (Combo),\nMeningococcal Prophylaxis",
"नारंगी-लाल मूत्र / आँसू!\n(मरीज़ को बताएँ),\nHepatotoxicity,\nStrong CYP450 Inducer\n(बहुत Drug Interactions!);\nFlu-Like Syndrome"],
["Chloramphenicol\n(Oral/IV/Eye)",
"Amphenicol",
"50S Ribosome से जुड़कर\nPeptidyl Transferase\nStep Block करता है\n→ Bacteriostatic",
"Broad: GP+GN+Anaerobes\n+Rickettsiae;\nबेहतरीन CSF Penetration",
"Typhoid Fever,\nBrain Abscess,\nMeningitis (Allergy),\nRickettsial Infections,\nकान / आँख (Topical)",
"Gray Baby Syndrome!\n(Neonates),\nAplastic Anemia\n(Idiosyncratic),\nBone Marrow Suppression"],
["Linezolid\n(Zyvox)\nOral/IV",
"Oxazolidinone",
"50S Ribosome के 23S rRNA\nसे जुड़ता है, 30S-50S\nजोड़ (Initiation Complex)\nको Block करता है\n→ Bacteriostatic",
"केवल GP: MRSA, VRE,\nMDR Streptococcus,\nXDR-TB",
"MRSA Pneumonia,\nMRSA Bacteremia,\nVRE Infections, XDR-TB",
"Myelosuppression\n(Thrombocytopenia!),\nSerotonin Syndrome\n(SSRIs / MAOIs के साथ!),\nPeripheral / Optic Neuropathy;\nWeekly CBC Monitor"],
]
e.append(dtable(misc[0], misc[1:], [25*mm, 18*mm, 35*mm, 30*mm, 32*mm, 35*mm],
colors.HexColor("#37474f")))
e.append(PageBreak())
return e
# ─── SECTION 10: ANTI-TB ─────────────────────────────────────────────────────
def sec_tb():
e = []
e.append(sec_hdr("१०. TB-विरोधी दवाएँ (Anti-TB Drugs - RIPE)", colors.HexColor("#4e342e")))
e.append(Spacer(1,3*mm))
e.append(Paragraph(
"<b>1st Line TB Drugs - RIPE याद करें:</b> "
"<b>R</b>ifampicin + <b>I</b>soniazid + <b>P</b>yrazinamide + <b>E</b>thambutol। "
"शुरुआती 2 महीने: RIPE | बाद के 4 महीने: RI (केवल दो दवाएँ)।", body_st))
e.append(Spacer(1,3*mm))
tbd = [
["दवा", "MOA (कार्य-तंत्र)", "प्रमुख दुष्प्रभाव", "महत्त्वपूर्ण बातें"],
["Rifampicin (R)",
"RNA Polymerase Inhibitor\n(Bactericidal)",
"नारंगी-लाल स्राव,\nHepatitis,\nCYP450 Inducer\n(Drug Interactions!)",
"LFTs Monitor करें;\nमूत्र नारंगी-लाल होना\nसामान्य है"],
["Isoniazid\n(H / INH)",
"Mycolic Acid Synthesis Inhibit\n(InhA Enzyme); KatG\nद्वारा Activate होती है\n(Bactericidal)",
"Peripheral Neuropathy\n(B6 / Pyridoxine कमी),\nDrug-Induced Lupus,\nHepatitis,\nSideroblastic Anemia",
"Pyridoxine (B6) हमेशा\nसाथ दें!\nFast vs Slow Acetylators"],
["Pyrazinamide\n(Z / PZA)",
"Membrane Energy Disruption\n(Acidic pH में - Macrophages\nके अंदर);\nPncA Enzyme द्वारा Activate\n(Bactericidal Intracellular)",
"Hyperuricemia (गठिया - Gout),\nHepatitis,\nJoints में दर्द (Arthralgias),\nRash",
"केवल Acidic pH में Active\n(Macrophage के अंदर);\nपहले 2 महीनों में जरूरी"],
["Ethambutol\n(E)",
"Arabinosyl Transferase Inhibit\n→ Arabinogalactan\nSynthesis Block\n(Bacteriostatic)",
"Optic Neuritis!\n(दृष्टि परिवर्तन,\nलाल-हरे रंग का अंधापन)",
"हर महीने दृष्टि जाँच;\nBaseline Visual Acuity;\nCI: 6 साल से छोटे बच्चे"],
["Streptomycin\n(S)",
"30S Ribosome Inhibitor\n(Aminoglycoside)\n(Bactericidal)",
"Ototoxicity (बहरापन - Cochlear),\nNephrotoxicity",
"IM इंजेक्शन;\nकुछ Regimens में 5वीं दवा"],
["Pyridoxine\n(Vitamin B6)",
"एंटीबायोटिक नहीं - Supplement",
"INH की Peripheral\nNeuropathy रोकता है",
"Isoniazid के साथ\nहमेशा दें"],
["Bedaquiline\n(2nd Line MDR-TB)",
"ATP Synthase Inhibitor\n(Bactericidal) - नया MOA!",
"QTc Prolongation,\nHepatotoxicity, मितली",
"MDR-TB और XDR-TB\nके लिए"],
]
e.append(dtable(tbd[0], tbd[1:], [32*mm, 48*mm, 52*mm, 43*mm],
colors.HexColor("#4e342e")))
e.append(PageBreak())
return e
# ─── SECTION 11: RESISTANCE ──────────────────────────────────────────────────
def sec_resistance():
e = []
e.append(sec_hdr("११. Antibiotic Resistance के तरीके", RED))
e.append(Spacer(1,3*mm))
rd = [
["तरीका (Mechanism)", "कैसे काम करता है", "प्रभावित दवाएँ", "उदाहरण"],
["एंजाइम द्वारा निष्क्रियता\n(Enzymatic Inactivation)",
"बैक्टीरिया के एंजाइम\nएंटीबायोटिक को नष्ट\nकर देते हैं",
"Beta-Lactams (Beta-Lactamases),\nAminoglycosides (Modifying Enzymes),\nChloramphenicol (Acetyltransferase)",
"MRSA, ESBL E. coli,\nKPC Klebsiella,\nNDM Bacteria"],
["Target Site में बदलाव\n(Target Modification)",
"एंटीबायोटिक की\nBinding Site बदल जाती है",
"Beta-Lactams (PBP2a - MRSA),\nGlycopeptides (D-Ala-D-Lac - VRE),\nFQ (mutant Gyrase),\nMacrolides (methylated 23S)",
"MRSA (mecA gene),\nVRE (vanA/B),\nFQ-resistant Salmonella"],
["कम प्रवेश्यता\n(Reduced Permeability)",
"Outer Membrane Porin\nचैनल बंद या बदल\nजाते हैं",
"Beta-Lactams (Pseudomonas),\nCarbapenems (OprD Porin Loss)",
"Carbapenem-Resistant\nPseudomonas"],
["Efflux Pumps",
"ATP-Dependent Pumps\nदवा को Cell से\nबाहर निकाल देते हैं",
"Tetracyclines, FQs,\nMacrolides, Chloramphenicol",
"MDR Pseudomonas,\nMDR Acinetobacter,\nMRSA (NorA Pump)"],
["Biofilm निर्माण\n(Biofilm Formation)",
"Extracellular Matrix\nबैक्टीरिया को बचाता है,\nदवा अंदर नहीं जा पाती",
"अधिकांश दवाएँ 100-1000x\nअधिक MIC की जरूरत",
"S. aureus (Prosthetics),\nPseudomonas (CF),\nCoNS (Catheters)"],
["वैकल्पिक रास्ता\n(Bypass Target)",
"बैक्टीरिया उसी काम\nके लिए अलग रास्ता\nइस्तेमाल करता है",
"Sulfonamides (बाहर से Folate),\nTMP (Alternate DHFR)",
"Sulfonamide-Resistant\nBacteria"],
]
e.append(dtable(rd[0], rd[1:], [32*mm, 45*mm, 55*mm, 43*mm], RED))
e.append(Spacer(1,5*mm))
# Quick Reference
e.append(sec_hdr("१२. Quick Reference - कौन सी दवा कब दें", colors.HexColor("#1b5e20")))
e.append(Spacer(1,3*mm))
qrd = [
["बैक्टीरिया / संक्रमण", "पहली पसंद (1st Line)", "विकल्प (Alternative)"],
["MSSA",
"Nafcillin/Oxacillin (IV),\nCefazolin (IV),\nDicloxacillin (Oral)",
"Clindamycin, TMP-SMX,\nDoxycycline"],
["CA-MRSA (त्वचा)",
"TMP-SMX, Doxycycline,\nClindamycin",
"Linezolid,\nVancomycin (गंभीर)"],
["HA-MRSA (Bacteremia,\nPneumonia)",
"Vancomycin (IV) या\nDaptomycin (Bacteremia only)",
"Linezolid (Pneumonia),\nCeftaroline"],
["Streptococcus pneumoniae\n(Meningitis)",
"Ceftriaxone + Vancomycin\n(Sensitivity आने तक)",
"Meropenem + Vancomycin"],
["Pseudomonas aeruginosa",
"Pip-Tazo या Cefepime\nया Meropenem +/-\nAminoglycoside",
"Ciprofloxacin, Aztreonam,\nColistin (MDR के लिए)"],
["C. difficile (CDI)",
"Vancomycin Oral (125mg QID)\nया Fidaxomicin (कम Relapse)",
"Metronidazole (हल्का,\nसंसाधन सीमित)"],
["Atypical Pneumonia\n(Mycoplasma, Chlamydophila)",
"Azithromycin या Doxycycline",
"Levofloxacin, Clarithromycin"],
["Legionella",
"Azithromycin या\nLevofloxacin",
"Doxycycline, Moxifloxacin"],
["Anaerobes (Diaphragm के नीचे)",
"Metronidazole,\nPip-Tazo, Meropenem",
"Clindamycin (ऊपर Diaphragm),\nCefoxitin, Moxifloxacin"],
["VRE (Vancomycin-Resistant\nEnterococcus)",
"Linezolid या Daptomycin",
"Tedizolid, Oritavancin"],
["Neisseria gonorrhoeae",
"Ceftriaxone 500mg IM\n(Single Dose) +\nDoxycycline",
"Azithromycin (Sensitivity\nज्ञात हो तो)"],
]
e.append(dtable(qrd[0], qrd[1:], [42*mm, 72*mm, 61*mm],
colors.HexColor("#1b5e20")))
e.append(PageBreak())
return e
# ─── SECTION 13: MNEMONICS ───────────────────────────────────────────────────
def sec_mnemonics():
e = []
e.append(sec_hdr("१३. याद करने के टिप्स (Mnemonics)", colors.HexColor("#4a148c")))
e.append(Spacer(1,4*mm))
mn = [
["विषय", "Mnemonic / याद करने का तरीका"],
["TB 1st Line Drugs",
"RIPE = Rifampicin | Isoniazid | Pyrazinamide | Ethambutol\n"
"'RIPE सेब की तरह - पकी हुई TB ठीक करो'"],
["Aminoglycoside Toxicity",
"ANTE = Anaerobes में काम नहीं | Nephrotoxic | Teratogenic | Ear (Ototoxic)\n"
"Neomycin = Never Systemic (NN)"],
["Tetracycline CI",
"DAMP = Dental discoloration | Age <8 | Metallic teeth | Pregnancy\n"
"'DAMP जगह में मत दो Tetracycline'"],
["Cephalosporin Generations",
"1G = GP का राजा (PECKed = Proteus, E. coli, Klebsiella NOT covered)\n"
"3G = Meningitis, Typhoid, Gonorrhea\n"
"5G = MRSA भी हारा"],
["Vancomycin Red Man",
"RED MAN = Rate-related, Everyone can get it, Diphenhydramine treat it,\n"
"Mast cell degranulation, Allergy नहीं! Not IgE mediated"],
["Daptomycin - Pneumonia में नहीं",
"'Dap = DAP karo Pneumonia से - Surfactant Inactivates Daptomycin'\n"
"(Pulmonary Surfactant निष्क्रिय करता है)"],
["Metronidazole + Alcohol",
"'Metro में Alcohol की मनाही' = Disulfiram Reaction (nausea, flush, BP drop)"],
["Linezolid Interactions",
"'Line = LINE करो SSRIs से दूर' = Serotonin Syndrome का खतरा\n"
"Also: MAO Inhibitor properties → Check all medications"],
["Chloramphenicol - Gray Baby",
"'Gray Baby = नवजात को Gray मत करो' = UDP-Glucuronyl Transferase Deficiency\n"
"अप्लास्टिक एनीमिया (Aplastic Anemia) = Idiosyncratic (dose independent)"],
["Fluoroquinolone CI",
"'FQ = Feet (Tendon), Fetus (Pregnancy CI), फ़र्क (Myasthenia Gravis)'\n"
"QTc, CNS effects, Photosensitivity याद रखें"],
["Isoniazid side effects",
"'INH = I Need Help (Pyridoxine) + Hepatitis + Neuropathy + High Uric acid (नहीं - PZA)\n"
"INH = NeuropathY → Give B6 | Drug-Induced Lupus | Hepatitis'"],
]
t = dtable(mn[0], mn[1:], [50*mm, 125*mm], colors.HexColor("#4a148c"))
e.append(t)
e.append(Spacer(1,5*mm))
# Final note
closing = Table([[Paragraph(
"यह PDF Lee's Essential Otolaryngology, Jawetz Medical Microbiology, "
"Katzung's Pharmacology, और Goodman & Gilman's Pharmacology पर आधारित है। "
"यह केवल शैक्षणिक उद्देश्य के लिए है। हमेशा नवीनतम दिशानिर्देशों और "
"clinical context के अनुसार दवाएँ दें।", note_st)]],
colWidths=[175*mm])
closing.setStyle(TableStyle([
('BACKGROUND',(0,0),(-1,-1), YELLOW_BG),
('BOX',(0,0),(-1,-1), 1, colors.HexColor("#ccaa00")),
('LEFTPADDING',(0,0),(-1,-1),10),
('TOPPADDING',(0,0),(-1,-1),7),
('BOTTOMPADDING',(0,0),(-1,-1),7),
]))
e.append(closing)
return e
# ─── BUILD ────────────────────────────────────────────────────────────────────
def build():
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=15*mm, leftMargin=15*mm,
topMargin=15*mm, bottomMargin=15*mm,
title="Antibiotics Hindi Guide - Medical Students",
author="Medical Library Reference",
)
story = []
story += cover()
story += sec_overview()
story += sec_betalactam()
story += sec_glyco()
story += sec_amino()
story += sec_tetracycline()
story += sec_macrolide()
story += sec_fq()
story += sec_misc()
story += sec_tb()
story += sec_resistance()
story += sec_mnemonics()
doc.build(story)
print(f"PDF created: {OUTPUT}")
if __name__ == "__main__":
build()