How to study pathology in 2nd year BHMS

Searching the Web

how to study pathology 2nd year BHMS homeopathy tips strategy

Finding Sources
Finding Sources
Reading Web Page

https://www.quora.com/How-do-I-study-for-BHMS-2nd-year-all-s…

Finding Sources
Finding Sources
Finding Sources
Searching the Web

BHMS 2nd year pathology syllabus India CCIM topics general systemic pathology

Reading Web Page

https://www.muhs.ac.in/upload/syllabus/2nd_year_BHMS_amended…

I now have everything I need to give a thorough, syllabus-specific answer. Here it is:

How to Study Pathology in 2nd Year BHMS

Understanding the Exam Structure First

Based on the official BHMS syllabus (MUHS/Parul University pattern), Pathology is split across two papers:
PaperSectionTopicsMarks
Paper ISection AGeneral Pathology50
Paper ISection BSystemic Pathology50
Paper IISection ABacteriology + Fungi/Parasites50
Paper IISection BVirology, Clinical Micro, Immunopathology50
Practicals (100 marks) include histopathology slides, spotting, and viva. Don't ignore them.

The BHMS-Specific Mindset

The official syllabus instruction is explicit: "All topics in general and systemic pathology must be correlated, at each juncture, with homoeopathic principles." This means you are NOT studying pathology the same way an MBBS student does. Every topic should be understood through two lenses:
  1. Conventional understanding - what is happening at the cellular/tissue level
  2. Miasmatic correlation - how Hahnemann, Kent, HA Roberts, and JH Allen interpreted these disease states (e.g., Psora = functional disturbance, Sycosis = overgrowth/infiltration, Syphilis = destructive/necrotic changes)
When you can map cell injury → necrosis → gangrene → syphilitic miasm, you remember it forever.

General Pathology - Topic Priority List

These are your Paper I, Section A topics (50 marks). Master these in order:

High Priority (always come in exams)

  1. Cell injury and cellular adaptations - reversible vs. irreversible injury, necrosis types (coagulative, liquefactive, caseous, fat, fibrinoid, gangrenous), apoptosis vs. necrosis
  2. Inflammation and repair - acute vs. chronic, cardinal signs, exudate vs. transudate, chemical mediators (histamine, prostaglandins, leukotrienes, cytokines), healing by primary and secondary intention
  3. Neoplasia - benign vs. malignant, nomenclature, carcinogenesis, oncogenes, tumour markers
  4. Immunity / Immunopathology - hypersensitivity types I-IV, autoimmunity, immunodeficiency

Medium Priority

  1. Thrombosis, embolism, infarction (know the differences clearly)
  2. Oedema and shock
  3. Haemorrhage and hyperaemia
  4. Necrosis and gangrene (distinguish 6 types)
  5. Amyloidosis
  6. Degeneration and atrophy

Foundational (understand once, recall always)

  • Ischaemia, pyrexia, hyperplasia, hypertrophy, metaplasia, anaplasia, regeneration, infection

Systemic Pathology - Paper I Section B

Study system by system. For each system, know:
  • Common diseases (e.g., TB, pneumonia, cirrhosis, glomerulonephritis)
  • Gross pathology appearance
  • Microscopic (histopathology) features
  • Clinical features correlation
Priority systems: Cardiovascular, Respiratory, GIT/Liver, Renal, Haematopoietic (blood disorders - anaemia, leukaemia)

Best Books to Use

PurposeBook
Primary textbookRobbins & Kumar - Basic Pathology (9th/10th ed.) - available in your library
Quick revisionHarsh Mohan - Textbook of Pathology (very popular among BHMS/MBBS students)
Short notes/MCQsSparsh Gupta's Pathology or similar short notes book
BHMS-specificPathology and Microbiology by Dr. Praful Barvalia (covers miasmatic correlations)
HistopathologyAny histopathology atlas or your practical journal
Robbins Basic Pathology is available in this library - it covers every general pathology topic in the syllabus with clear diagrams. Use it for understanding concepts deeply. Then use Harsh Mohan for exam-oriented revision.

Day-to-Day Study Strategy

Step 1: Build a foundation (first 4-6 weeks)

  • Read Chapter 1 of Robbins (Cell injury, adaptations) thoroughly. This is the base for everything.
  • Don't just memorise - draw flowcharts. Example: Draw the sequence from normal cell → stress → adaptation (hypertrophy/atrophy/metaplasia) → injury → reversible → irreversible → necrosis/apoptosis.

Step 2: Topic-by-topic progression

  • Do one topic per 2-3 days for major chapters (Inflammation, Neoplasia), one per day for smaller ones.
  • After reading, write a 1-page summary in your own words.
  • Add the miasmatic angle at the end of each summary.

Step 3: Histopathology from day 1

  • Attend all practicals. Histology slides appear in exams.
  • Maintain a practical journal with neat diagrams of each slide - examiners check this.
  • Learn to identify: granuloma (TB), Reed-Sternberg cells (Hodgkin's), glomerulonephritis patterns, carcinoma vs. sarcoma on slides.

Step 4: Micro alongside Pathology

  • Study relevant microbiology with the pathology topic. Example: when studying pneumonia pathology, simultaneously study Streptococcus pneumoniae from bacteriology. This double-reinforcement saves time later.

Step 5: Revision cycle

  • Every Sunday, revise the week's topics using only your 1-page summaries.
  • Make mnemonics for lists (e.g., chemical mediators of inflammation, types of necrosis).
  • Start MCQ practice after 6-8 weeks of content.

Practical Exam Tips

  • Spotting (20 marks, 4 spottings): Practice identifying gross specimens and slides by their key features. Make a spotting list with 2-3 identifying features per specimen.
  • Histopathology slides (10 marks, 2 slides): Know the staining technique, what to look for under low/high power.
  • Viva: Examiners frequently ask about miasmatic correlations, so prepare 5-10 key correlations (e.g., tuberculosis = syphilitic miasm, warts = sycotic miasm).
  • Journal/Record (5 marks): Keep it neat and complete from the start - easy marks.

Weekly Schedule Template

DayActivity
Monday-WednesdayNew topic (theory reading + notes)
ThursdayHistopathology/Practical relevance of that topic
FridayMiasmatic correlation + write summary
SaturdayMCQs on the week's topics
SundayWeekly revision of all summaries + previous week revision

Common Mistakes to Avoid

  • Skipping general pathology to rush to systemic - General Path is the language. Without it, systemic makes no sense.
  • Ignoring practicals - 100 marks are at stake.
  • Memorising without understanding - Pathology is a "why" subject. If you understand why cell injury causes the features it does, you never forget it.
  • Not making the homeopathic connection - This is what separates BHMS pathology from MBBS. Your examiners will test it.
  • Leaving microbiology (Paper II) to the last minute - It's a separate 200-mark paper. Plan for it from month 2.

The single most important thing: read Robbins for understanding, use Harsh Mohan for answering exam questions, and always end each topic with a homeopathic/miasmatic summary. That combination covers theory, practicals, and viva all at once.

Create a study schedule/timetable for BHMS pathology 2nd year,

Asking for Preferences

Mnemonic and notes for pathology

Asking for Preferences
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Running Command

mkdir -p /home/daytona/workspace/bhms-pathology && ls /home/daytona/workspace/bhms-pathology/

Writing File

~/bhms-pathology/generate_pathology_notes.py

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

OUTPUT = "/home/daytona/workspace/bhms-pathology/BHMS_Pathology_Mnemonics_Notes.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=2*cm, leftMargin=2*cm,
    topMargin=2.2*cm, bottomMargin=2.2*cm,
    title="BHMS 2nd Year General Pathology – Mnemonics & Notes",
    author="Orris"
)

W = A4[0] - 4*cm  # usable width

# ── Color palette ──────────────────────────────────────────────────────────────
C_DARK   = colors.HexColor("#1a2e44")   # deep navy
C_TEAL   = colors.HexColor("#0d7377")   # teal accent
C_GOLD   = colors.HexColor("#f0a500")   # gold highlight
C_MINT   = colors.HexColor("#e8f8f5")   # light mint bg
C_CREAM  = colors.HexColor("#fffbf0")   # cream bg
C_RED    = colors.HexColor("#c0392b")   # important/mnemonic red
C_PURPLE = colors.HexColor("#6c3483")   # miasm purple
C_LGREY  = colors.HexColor("#f4f6f9")   # table alt row

SS = getSampleStyleSheet()

def style(name, parent="Normal", **kw):
    return ParagraphStyle(name, parent=SS[parent], **kw)

# styles
sTitle   = style("sTitle",   "Title",  fontSize=22, textColor=C_DARK,
                 spaceAfter=4, spaceBefore=0, alignment=TA_CENTER,
                 fontName="Helvetica-Bold")
sSub     = style("sSub",     "Normal", fontSize=11, textColor=C_TEAL,
                 spaceAfter=6, alignment=TA_CENTER, fontName="Helvetica")
sH1      = style("sH1",      "Normal", fontSize=14, textColor=colors.white,
                 spaceBefore=14, spaceAfter=4, fontName="Helvetica-Bold",
                 leftIndent=0, backColor=C_DARK, borderPad=5)
sH2      = style("sH2",      "Normal", fontSize=12, textColor=C_TEAL,
                 spaceBefore=10, spaceAfter=3, fontName="Helvetica-Bold",
                 leftIndent=2)
sBody    = style("sBody",    "Normal", fontSize=9.5, leading=14,
                 spaceAfter=4, alignment=TA_JUSTIFY, textColor=colors.HexColor("#2c2c2c"))
sBullet  = style("sBullet",  "Normal", fontSize=9.5, leading=13,
                 leftIndent=14, firstLineIndent=-10, spaceAfter=2,
                 textColor=colors.HexColor("#2c2c2c"))
sMnem    = style("sMnem",    "Normal", fontSize=10.5, leading=15,
                 textColor=C_RED, fontName="Helvetica-Bold",
                 spaceBefore=4, spaceAfter=2)
sMnemExp = style("sMnemExp", "Normal", fontSize=9.5, leading=13,
                 leftIndent=14, textColor=colors.HexColor("#5d0b0b"), spaceAfter=4)
sMiasm   = style("sMiasm",   "Normal", fontSize=9.5, leading=13,
                 textColor=C_PURPLE, fontName="Helvetica-BoldOblique",
                 spaceBefore=3, spaceAfter=5)
sKP      = style("sKP",      "Normal", fontSize=9.5, leading=13,
                 leftIndent=14, firstLineIndent=-10, spaceAfter=2,
                 textColor=colors.HexColor("#1a4a1a"))
sNote    = style("sNote",    "Normal", fontSize=8.8, leading=12,
                 textColor=colors.HexColor("#555555"), leftIndent=8,
                 fontName="Helvetica-Oblique", spaceAfter=6)
sFooter  = style("sFooter",  "Normal", fontSize=8, textColor=colors.grey,
                 alignment=TA_CENTER)

def h1(text):
    return [
        Spacer(1, 4),
        Paragraph(f"  {text}", sH1),
        Spacer(1, 2),
    ]

def h2(text):
    return [Paragraph(text, sH2)]

def body(text):
    return [Paragraph(text, sBody)]

def bullet(items, symbol="•"):
    return [Paragraph(f"{symbol}  {it}", sBullet) for it in items]

def mnemonic(label, expansion, tip=""):
    out = [Paragraph(f"🧠  {label}", sMnem),
           Paragraph(expansion, sMnemExp)]
    if tip:
        out.append(Paragraph(f"💡 {tip}", sNote))
    return out

def miasm(text):
    return [Paragraph(f"☯  Miasmatic Note: {text}", sMiasm)]

def keypoint(items):
    return [Paragraph(f"★  {it}", sKP) for it in items]

def hr():
    return [HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#cccccc"), spaceAfter=4, spaceBefore=2)]

def box_table(rows, header=None, col_widths=None):
    """Generic 2-column comparison table."""
    data = []
    if header:
        data.append(header)
    data.extend(rows)
    if col_widths is None:
        col_widths = [W*0.45, W*0.55]
    ts = TableStyle([
        ("BACKGROUND",   (0,0), (-1,0), C_DARK),
        ("TEXTCOLOR",    (0,0), (-1,0), colors.white),
        ("FONTNAME",     (0,0), (-1,0), "Helvetica-Bold"),
        ("FONTSIZE",     (0,0), (-1,-1), 9),
        ("ROWBACKGROUNDS",(0,1),(-1,-1), [C_CREAM, C_MINT]),
        ("GRID",         (0,0), (-1,-1), 0.4, colors.HexColor("#bbbbbb")),
        ("VALIGN",       (0,0), (-1,-1), "TOP"),
        ("LEFTPADDING",  (0,0), (-1,-1), 6),
        ("RIGHTPADDING", (0,0), (-1,-1), 6),
        ("TOPPADDING",   (0,0), (-1,-1), 4),
        ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ])
    if not header:
        ts.add("BACKGROUND", (0,0), (-1,0), C_MINT)
        ts.add("TEXTCOLOR",  (0,0), (-1,0), C_DARK)
    t = Table(data, colWidths=col_widths, style=ts, hAlign="LEFT")
    return [t, Spacer(1, 6)]

# ══════════════════════════════════════════════════════════════════════════════
# BUILD CONTENT
# ══════════════════════════════════════════════════════════════════════════════
story = []

# ── COVER ──────────────────────────────────────────────────────────────────────
story.append(Spacer(1, 2*cm))
story.append(Paragraph("BHMS 2nd Year", sSub))
story.append(Paragraph("General Pathology", sTitle))
story.append(Paragraph("Mnemonics & Quick Notes", sTitle))
story.append(Spacer(1, 6))
story.append(HRFlowable(width="80%", thickness=2, color=C_GOLD, hAlign="CENTER"))
story.append(Spacer(1, 8))
story.append(Paragraph("Covering all CCIM syllabus topics · Robbins-based · With Miasmatic Correlations", sSub))
story.append(Spacer(1, 1.5*cm))

toc_items = [
    "1. Introduction to Pathology",
    "2. Cell Injury & Cellular Adaptations",
    "3. Necrosis & Apoptosis",
    "4. Inflammation (Acute & Chronic)",
    "5. Mediators of Inflammation",
    "6. Tissue Repair & Wound Healing",
    "7. Immunity & Hypersensitivity",
    "8. Neoplasia",
    "9. Haemodynamic Disorders (Thrombosis, Embolism, Oedema, Shock)",
    "10. Degeneration, Amyloidosis & Pigmentation Disorders",
    "11. Miscellaneous (Gangrene, Infarction, Pyrexia, Infection)",
]
toc_data = [[Paragraph("TABLE OF CONTENTS", style("tocH","Normal",fontSize=10,
             fontName="Helvetica-Bold", textColor=colors.white))]]
for item in toc_items:
    toc_data.append([Paragraph(item, style("tocI","Normal",fontSize=9,textColor=C_DARK,leading=14))])
toc_ts = TableStyle([
    ("BACKGROUND",  (0,0), (-1,0), C_DARK),
    ("BACKGROUND",  (0,1), (-1,-1), C_CREAM),
    ("GRID",        (0,0), (-1,-1), 0.3, colors.HexColor("#cccccc")),
    ("LEFTPADDING", (0,0), (-1,-1), 10),
    ("TOPPADDING",  (0,0), (-1,-1), 5),
    ("BOTTOMPADDING",(0,0),(-1,-1), 5),
])
story.append(Table(toc_data, colWidths=[W*0.75], style=toc_ts, hAlign="CENTER"))
story.append(PageBreak())

# ══════════════════════════════════════════════════════════════════════════════
# 1. INTRODUCTION TO PATHOLOGY
# ══════════════════════════════════════════════════════════════════════════════
story += h1("1. INTRODUCTION TO PATHOLOGY")
story += body("Pathology is the scientific study of <b>structural and functional changes</b> in cells, tissues, and organs that underlie disease. It bridges basic sciences and clinical medicine.")
story += h2("Four Aspects of a Disease (CAMP)")
story += mnemonic("CAMP",
    "C – Cause (Aetiology)\nA – Abnormal cell/tissue changes (Morphology)\nM – Mechanism (Pathogenesis)\nP – Physiological/functional consequences (Clinical significance)",
    "Every time you study a disease, answer these 4 questions.")
story += h2("Types of Pathology")
story += bullet([
    "<b>General Pathology:</b> Reactions of cells to abnormal stimuli (applies to all diseases)",
    "<b>Systemic/Special Pathology:</b> Disease processes in specific organs or systems",
    "<b>Clinical Pathology:</b> Lab-based diagnosis (haematology, biochemistry, microbiology)",
])
story += miasm("Psora = functional/disturbed reactions; Sycosis = excess/overgrowth; Syphilis = destruction/necrosis. All pathological processes can be mapped to these.")
story += hr()

# ══════════════════════════════════════════════════════════════════════════════
# 2. CELL INJURY & ADAPTATIONS
# ══════════════════════════════════════════════════════════════════════════════
story += h1("2. CELL INJURY &amp; CELLULAR ADAPTATIONS")
story += h2("Causes of Cell Injury")
story += mnemonic("HITTING",
    "H – Hypoxia / Ischaemia\nI – Immunologic reactions\nT – Toxins &amp; Drugs\nT – Trauma / Physical agents\nI – Infection (micro-organisms)\nN – Nutritional imbalances\nG – Genetic defects",
    "The 7 major causes of cell injury from Robbins Ch.1")
story += h2("Cellular Adaptations (HAMHA)")
story += mnemonic("HAMHA",
    "H – Hypertrophy (↑ cell size)\nA – Atrophy (↓ cell size)\nM – Metaplasia (one cell type → another)\nH – Hyperplasia (↑ cell number)\nA – Anaplasia (loss of differentiation – seen in malignancy)",
    "Reversible adaptations except anaplasia. Know the stimulus for each.")
story += h2("Reversible vs. Irreversible Cell Injury")
story += box_table(
    [
        [Paragraph("<b>Feature</b>", sBody), Paragraph("<b>Reversible</b>", sBody), Paragraph("<b>Irreversible</b>", sBody)],
        ["Cellular swelling", "Yes", "Yes → blebbing"],
        ["Mitochondria", "Swelling only", "Densities + rupture"],
        ["Plasma membrane", "Intact", "Disrupted"],
        ["DNA", "Normal", "Fragmentation"],
        ["Lysosomes", "Intact", "Ruptured"],
        ["Outcome", "Recovery if cause removed", "Cell death (necrosis/apoptosis)"],
    ],
    col_widths=[W*0.28, W*0.36, W*0.36],
    header=None
)
story += h2("Key Mechanisms of Irreversible Injury (DOMED)")
story += mnemonic("DOMED",
    "D – DNA damage\nO – Oxidative stress (free radicals)\nM – Mitochondrial dysfunction\nE – ER stress / misfolded proteins\nD – Disruption of membrane (calcium influx)",
    "These 5 mechanisms converge to cause cell death in most serious injuries.")
story += keypoint([
    "Calcium influx is the FINAL COMMON PATHWAY of cell injury leading to irreversible damage",
    "Free radicals cause injury by lipid peroxidation, protein cross-linking, and DNA breaks",
    "ER stress triggers the Unfolded Protein Response (UPR) – if overwhelmed → apoptosis",
])
story += miasm("Hypoxic cell injury (ischaemia) represents the acute Syphilitic destructive process at the cellular level.")
story += hr()

# ══════════════════════════════════════════════════════════════════════════════
# 3. NECROSIS & APOPTOSIS
# ══════════════════════════════════════════════════════════════════════════════
story += h1("3. NECROSIS &amp; APOPTOSIS")
story += h2("Types of Necrosis (CALF-CG)")
story += mnemonic("CALF-CG",
    "C – Coagulative necrosis (most common; all organs EXCEPT brain; e.g., MI)\nA – Aseptic liquefactive = liquefactive (brain, abscess)\nL – Liquefactive necrosis (bacterial infection, brain infarct)\nF – Fat necrosis (pancreas, breast trauma – chalky white deposits)\nC – Caseous necrosis (TB – cheese-like; soft, crumbly)\nG – Gangrenous necrosis (limbs; dry/wet/gas types)",
    "Add Fibrinoid necrosis (immune complex deposition in vessel walls) as the 7th type.")
story += box_table(
    [
        [Paragraph("<b>Type</b>", sBody), Paragraph("<b>Example/Cause</b>", sBody), Paragraph("<b>Microscopy</b>", sBody)],
        ["Coagulative",  "Myocardial infarction",        "Ghost outlines of cells preserved"],
        ["Liquefactive", "Brain infarct, abscess",        "Liquefied centre, pus cells"],
        ["Caseous",      "Tuberculosis",                  "Amorphous granular material + giant cells"],
        ["Fat",          "Acute pancreatitis",            "Saponification – chalky white areas"],
        ["Fibrinoid",    "Vasculitis, malignant HTN",     "Pink homogeneous vessel wall"],
        ["Gangrenous",   "Limb ischaemia, diabetes",      "Dry: coagulative; Wet: liquefactive mixed"],
    ],
    col_widths=[W*0.22, W*0.38, W*0.40],
    header=None
)
story += h2("Apoptosis vs. Necrosis")
story += box_table(
    rows=[
        [Paragraph("<b>Feature</b>", sBody), Paragraph("<b>Apoptosis</b>", sBody), Paragraph("<b>Necrosis</b>", sBody)],
        ["Cell size",     "Shrinks",              "Swells"],
        ["Nucleus",       "Pyknosis → karyorrhexis", "Karyolysis"],
        ["Membrane",      "Intact (blebbing)",    "Disrupted"],
        ["Inflammation",  "None",                 "Present"],
        ["Initiators",    "Caspases",             "No caspases"],
        ["Energy (ATP)",  "Required",             "Not required"],
        ["Pathological?", "Can be normal (e.g., embryogenesis, immune cells)", "Always pathological"],
    ],
    col_widths=[W*0.25, W*0.37, W*0.38],
    header=None
)
story += mnemonic("Apoptosis = A.P.O.P.T.O.S.I.S",
    "A – Absent inflammation\nP – Programmed\nO – Orderly\nP – Pyknotic nucleus\nT – Tiny (cell shrinks)\nO – Own machinery (caspases)\nS – Safe (membrane intact)\nI – Individual cells\nS – Signal-mediated",
    "Contrasts with NECROSIS which is disorderly, inflammatory, and involves groups of cells.")
story += keypoint([
    "Apoptosis: intrinsic pathway (mitochondria, Bcl-2 family) + extrinsic pathway (death receptors Fas/TNF-R)",
    "Caspase-3 is the EXECUTIONER caspase – final common pathway of apoptosis",
    "Nuclear changes: Pyknosis (condensation) → Karyorrhexis (fragmentation) → Karyolysis (dissolution)",
])
story += miasm("Necrosis → Syphilitic miasm (destructive). Uncontrolled apoptosis in chronic disease → also Syphilitic. Excess cell proliferation (failure of apoptosis) → Sycotic miasm.")
story += hr()

# ══════════════════════════════════════════════════════════════════════════════
# 4. INFLAMMATION
# ══════════════════════════════════════════════════════════════════════════════
story += h1("4. INFLAMMATION")
story += h2("Cardinal Signs of Acute Inflammation")
story += mnemonic("PRISH",
    "P – Pain (Dolor)\nR – Redness (Rubor)\nI – (i)mmobility / Loss of function (Functio laesa)\nS – Swelling (Tumor)\nH – Heat (Calor)",
    "Classic 5 cardinal signs. Celsus described first 4; Virchow added the 5th (loss of function).")
story += h2("Vascular Events in Acute Inflammation (VIVID)")
story += mnemonic("VIVID",
    "V – Vasodilatation (arterioles dilate → ↑ blood flow → redness &amp; heat)\nI – Increased vascular permeability (gaps between endothelial cells)\nV – Vascular stasis (blood slows down → leukocytes marginate)\nI – Interstitial fluid increases (oedema / exudate)\nD – Diapedesis (leukocytes migrate through vessel wall)",
    "Sequence: transient vasoconstriction → vasodilation → increased permeability → stasis → cell emigration")
story += h2("Steps of Leukocyte Recruitment (MARBLE)")
story += mnemonic("MARBLE",
    "M – Margination (leukocytes move to periphery of vessel)\nA – Adhesion/Rolling (selectins: P-selectin, E-selectin)\nR – Rolling to firm Adhesion (integrins: ICAM-1, VCAM-1)\nB – Beyond (transmigration / diapedesis through vessel wall)\nL – Locomotion (chemotaxis toward stimulus)\nE – Engulfment (phagocytosis + killing)",
    "Deficiency of CD18 (LFA-1 integrin) = Leukocyte Adhesion Deficiency – recurrent bacterial infections.")
story += h2("Exudate vs. Transudate")
story += box_table(
    rows=[
        [Paragraph("<b>Feature</b>", sBody), Paragraph("<b>Exudate</b>", sBody), Paragraph("<b>Transudate</b>", sBody)],
        ["Cause",       "Inflammation",             "Hydrostatic/osmotic imbalance"],
        ["Protein",     "High (>3g/dL)",            "Low (<3g/dL)"],
        ["Specific gravity", ">1.020",              "<1.012"],
        ["Cells",       "Many WBCs",                "Few cells"],
        ["Colour",      "Turbid",                   "Clear"],
        ["Example",     "Pneumonia, empyema",        "CCF, nephrotic syndrome"],
    ],
    col_widths=[W*0.28, W*0.36, W*0.36],
    header=None
)
story += h2("Morphological Types of Acute Inflammation (SFPU)")
story += mnemonic("SFPU",
    "S – Serous (watery; e.g., blisters, pleural effusion)\nF – Fibrinous (fibrin-rich; e.g., pericarditis – 'bread &amp; butter')\nP – Purulent/Suppurative (pus = neutrophils + necrotic debris; abscess)\nU – Ulcerative (surface epithelium lost; e.g., peptic ulcer)",
    "Know the example for each type – examiners love asking these.")
story += h2("Chronic Inflammation")
story += bullet([
    "<b>Definition:</b> Inflammation of prolonged duration (weeks–months) with simultaneous active injury and healing",
    "<b>Cells:</b> Macrophages (dominant), lymphocytes, plasma cells, eosinophils, mast cells, fibroblasts",
    "<b>Causes:</b> Persistent infection (TB, syphilis), autoimmune disease, prolonged chemical/foreign body exposure",
    "<b>Granulomatous inflammation:</b> Specialised chronic inflammation; central necrosis surrounded by macrophages (epithelioid) + Langhans giant cells + lymphocytes",
])
story += mnemonic("Granuloma causes – SAINT",
    "S – Sarcoidosis (non-caseating)\nA – Actinomycosis\nI – Infection (TB – caseating; Leprosy)\nN – Neoplasm (Hodgkin lymphoma)\nT – Talc / Foreign body",
    "TB granuloma = caseating; Sarcoid = non-caseating. Key exam distinction.")
story += miasm("Acute inflammation = Psoric reaction (first-line defence). Chronic inflammation with tissue destruction = Syphilitic. Granuloma formation (encapsulation) = Sycotic.")
story += hr()

# ══════════════════════════════════════════════════════════════════════════════
# 5. MEDIATORS OF INFLAMMATION
# ══════════════════════════════════════════════════════════════════════════════
story += h1("5. MEDIATORS OF INFLAMMATION")
story += mnemonic("CHIPS-KC",
    "C – Complement (C3a, C5a – chemotaxis, opsonisation, MAC)\nH – Histamine (mast cells/platelets – immediate vascular permeability)\nI – IL-1 &amp; IL-6 (fever, acute phase response)\nP – Prostaglandins (vasodilation, pain, fever)\nS – Serotonin (platelets – vascular permeability)\nK – Kinins (bradykinin – pain, vasodilation)\nC – Cytokines (TNF, chemokines – leukocyte recruitment)",
    "Source, action, and pharmacology (NSAIDs block COX → prostaglandins; steroids block phospholipase A2).")
story += box_table(
    rows=[
        [Paragraph("<b>Mediator</b>", sBody), Paragraph("<b>Source</b>", sBody), Paragraph("<b>Key Action</b>", sBody)],
        ["Histamine",     "Mast cells, basophils, platelets",    "↑ Permeability (early, immediate)"],
        ["Prostaglandins","Arachidonic acid via COX",            "Vasodilation, pain, fever"],
        ["Leukotrienes",  "Arachidonic acid via LOX",            "Bronchoconstriction, ↑ permeability"],
        ["C3a &amp; C5a", "Complement cascade",                  "Chemotaxis, anaphylatoxin (histamine release)"],
        ["TNF-α",         "Macrophages, T cells, mast cells",    "Endothelial activation, fever, cachexia"],
        ["IL-1",          "Macrophages, endothelium, epithelium","Fever (hypothalamic), acute phase response"],
        ["Bradykinin",    "Plasma kininogens",                   "Pain, vasodilation, ↑ permeability"],
        ["PAF",           "Mast cells, neutrophils",             "Platelet aggregation, bronchoconstriction"],
    ],
    col_widths=[W*0.25, W*0.37, W*0.38],
    header=None
)
story += keypoint([
    "NSAIDs (aspirin, ibuprofen) block COX → inhibit prostaglandins (anti-inflammatory, antipyretic, analgesic)",
    "Corticosteroids block phospholipase A2 → inhibit BOTH prostaglandins AND leukotrienes",
    "C5a = most powerful chemotactic factor from complement; also an anaphylatoxin",
    "Arachidonic acid: COX pathway → prostaglandins (PGE2, PGI2) + thromboxane; LOX pathway → leukotrienes",
])
story += hr()

# ══════════════════════════════════════════════════════════════════════════════
# 6. TISSUE REPAIR & WOUND HEALING
# ══════════════════════════════════════════════════════════════════════════════
story += h1("6. TISSUE REPAIR &amp; WOUND HEALING")
story += h2("Types of Cells by Regenerative Ability")
story += mnemonic("LABILE-STABLE-PERMANENT",
    "LABILE cells – divide continuously (always in cell cycle)\n   → Epidermis, GI epithelium, bone marrow, lymphoid tissue\nSTABLE cells – quiescent; can re-enter cell cycle when stimulated\n   → Liver, kidney tubules, smooth muscle, fibroblasts\nPERMANENT cells – cannot regenerate (terminally differentiated)\n   → Neurons, cardiac muscle cells, skeletal muscle cells (minimal)",
    "Liver is STABLE → it can regenerate after partial hepatectomy (up to 70% resection).")
story += h2("Steps of Wound Healing (IRON-FIRM)")
story += mnemonic("IRON-FIRM",
    "I – Inflammation (first 24-48 hrs; neutrophils clean wound)\nR – Re-epithelialization (epidermis migrates from edges)\nO – Organise (granulation tissue forms: angiogenesis + fibroblasts)\nN – New vessels (angiogenesis driven by VEGF)\nF – Fibroplasia (fibroblasts proliferate, deposit collagen)\nI – Integration (collagen matures; type III → type I)\nR – Remodelling (MMP enzymes remodel matrix; scar contracts)\nM – Max strength (scar reaches 70-80% original strength by 3 months)",
    "Granulation tissue = new capillaries + fibroblasts + macrophages. NOT same as granuloma.")
story += h2("Healing by Primary vs. Secondary Intention")
story += box_table(
    rows=[
        [Paragraph("<b>Feature</b>", sBody), Paragraph("<b>Primary Intention</b>", sBody), Paragraph("<b>Secondary Intention</b>", sBody)],
        ["Wound edges",    "Approximated (sutured)",         "Widely separated, open"],
        ["Tissue loss",    "Minimal",                        "Significant"],
        ["Granulation tissue","Little",                      "Abundant"],
        ["Scar",           "Thin, neat",                     "Large, broad"],
        ["Contraction",    "Minimal",                        "Significant (myofibroblasts)"],
        ["Example",        "Surgical incision",              "Chronic ulcer, abscess cavity"],
    ],
    col_widths=[W*0.25, W*0.37, W*0.38],
    header=None
)
story += h2("Factors Impairing Wound Healing (DIVAS)")
story += mnemonic("DIVAS",
    "D – Diabetes mellitus (poor vascularity, immune dysfunction)\nI – Infection (prolongs inflammation)\nV – Vitamin deficiency (Vit C: collagen synthesis; Vit A: re-epithelialization; Zinc: enzyme cofactors)\nA – Anaemia / Inadequate blood supply\nS – Steroids (suppress inflammation, inhibit fibroplasia)",
    "Foreign body, malnutrition, and old age are also important factors.")
story += miasm("Repair and regeneration = Psoric tendency (the healthy restoring tendency). Excessive scar / keloid = Sycotic (hyper-proliferative). Chronic non-healing wound = Syphilitic.")
story += hr()

# ══════════════════════════════════════════════════════════════════════════════
# 7. IMMUNITY & HYPERSENSITIVITY
# ══════════════════════════════════════════════════════════════════════════════
story += h1("7. IMMUNITY &amp; HYPERSENSITIVITY")
story += h2("Types of Hypersensitivity (ACID)")
story += mnemonic("ACID",
    "A – Anaphylactic / Immediate (Type I) – IgE mediated\nC – Cytotoxic (Type II) – IgG/IgM vs. cell-surface antigens\nI – Immune-complex (Type III) – Ag-Ab complexes deposited in tissues\nD – Delayed-type / Cell-mediated (Type IV) – T-cell mediated",
    "Types I, II, III are antibody-mediated (humoral). Type IV is T-cell mediated (cellular).")
story += box_table(
    rows=[
        [Paragraph("<b>Type</b>", sBody), Paragraph("<b>Mechanism</b>", sBody), Paragraph("<b>Example</b>", sBody)],
        ["I – Anaphylactic",    "IgE on mast cells → degranulation",              "Allergic rhinitis, asthma, anaphylaxis, urticaria"],
        ["II – Cytotoxic",      "IgG/IgM + complement → cell lysis",              "Autoimmune haemolytic anaemia, transfusion reaction, Graves disease"],
        ["III – Immune complex","Ag-Ab complexes → complement → inflammation",     "SLE, post-streptococcal GN, serum sickness, Arthus reaction"],
        ["IV – Delayed (DTH)",  "Sensitized T-cells (CD4/CD8) → macrophage activ.","TB (Mantoux), contact dermatitis, graft rejection"],
    ],
    col_widths=[W*0.22, W*0.40, W*0.38],
    header=None
)
story += keypoint([
    "Type I: Sensitization (1st exposure) → IgE formed → binds mast cell Fc receptors. 2nd exposure → cross-linking → degranulation",
    "Type III: Deposited in kidney glomeruli (GN), joints (arthritis), blood vessels (vasculitis) → LOW complement levels",
    "Type IV: ONLY type NOT antibody mediated. NO complement. Takes 48-72 hrs (hence 'delayed')",
    "SLE is a mix of Type II and Type III hypersensitivity",
])
story += miasm("Hypersensitivity disorders = Psoric (functional, reactive). Autoimmune destruction = Syphilitic. Chronic fibrosing conditions from immune reactions = Sycotic.")
story += hr()

# ══════════════════════════════════════════════════════════════════════════════
# 8. NEOPLASIA
# ══════════════════════════════════════════════════════════════════════════════
story += h1("8. NEOPLASIA")
story += h2("Benign vs. Malignant Tumours (DISC-MEND)")
story += mnemonic("BENIGN vs. MALIGNANT – 7 Differences (DICES)",
    "D – Differentiation (Benign: well-differentiated; Malignant: poorly/anaplastic)\nI – Invasion (Benign: no invasion; Malignant: invades locally)\nC – Capsule (Benign: encapsulated; Malignant: not encapsulated)\nE – Edges (Benign: smooth; Malignant: irregular)\nS – Spread / Metastasis (Benign: NEVER metastasizes; Malignant: DOES)",
    "Rate of growth: Benign = slow; Malignant = rapid. Necrosis: only in malignant.")
story += h2("Tumour Nomenclature")
story += box_table(
    rows=[
        [Paragraph("<b>Cell of Origin</b>", sBody), Paragraph("<b>Benign</b>", sBody), Paragraph("<b>Malignant</b>", sBody)],
        ["Epithelial (glandular)",   "Adenoma",          "Adenocarcinoma"],
        ["Epithelial (squamous)",    "Papilloma",        "Squamous cell carcinoma"],
        ["Connective tissue (fat)",  "Lipoma",           "Liposarcoma"],
        ["Connective tissue (bone)", "Osteoma",          "Osteosarcoma"],
        ["Smooth muscle",           "Leiomyoma",        "Leiomyosarcoma"],
        ["Blood vessels",           "Haemangioma",      "Angiosarcoma"],
        ["Lymphoid tissue",         "—",                "Lymphoma / Leukaemia"],
        ["Melanocytes",             "Naevus (mole)",    "Melanoma"],
    ],
    col_widths=[W*0.35, W*0.30, W*0.35],
    header=None
)
story += h2("Hallmarks of Cancer (SASH-AEIR)")
story += mnemonic("SASH-AEIR (8 Hallmarks – Hanahan &amp; Weinberg)",
    "S – Self-sufficiency in growth signals (oncogene activation)\nA – Avoiding apoptosis\nS – Sustained angiogenesis (VEGF)\nH – HanAhling immune destruction\nA – Activating invasion and metastasis\nE – Evading growth suppressors (p53, Rb mutation)\nI – Inducing genomic instability &amp; mutation\nR – Replicative immortality (telomerase activation)",
    "Two enabling characteristics: tumour-promoting inflammation + deregulating cellular energetics.")
story += h2("Routes of Metastasis (SLID)")
story += mnemonic("SLID",
    "S – Seeding of body cavities (e.g., ovarian → peritoneum)\nL – Lymphatic spread (most common for CARCINOMAS)\nI – Implantation / Direct extension (rare, iatrogenic)\nD – Direct blood-borne (Haematogenous – most common for SARCOMAS)",
    "Carcinomas → lymphatics first. Sarcomas → blood vessels first. Brain mets: lung &gt; breast &gt; kidney &gt; melanoma.")
story += keypoint([
    "Oncogenes (accelerators): RAS, MYC, HER2/neu – gain of function mutations",
    "Tumour suppressor genes (brakes): TP53 (guardian of genome), RB (retinoblastoma) – loss of function",
    "p53 is the MOST COMMONLY mutated gene in human cancers",
    "Carcinogenesis stages: Initiation → Promotion → Progression",
    "Chemical carcinogens: aflatoxin (liver), asbestos (mesothelioma), benzene (leukaemia), aniline dye (bladder)",
])
story += miasm("Neoplasia = quintessential Sycotic miasm (uncontrolled growth, excess cell proliferation). Tumour necrosis + invasion = Syphilitic overlay.")
story += hr()

# ══════════════════════════════════════════════════════════════════════════════
# 9. HAEMODYNAMIC DISORDERS
# ══════════════════════════════════════════════════════════════════════════════
story += h1("9. HAEMODYNAMIC DISORDERS")

story += h2("Virchow's Triad (Thrombosis)")
story += mnemonic("EHS",
    "E – Endothelial injury (most important; e.g., atherosclerosis, hypertension)\nH – Haemodynamic disturbance (stasis or turbulence; e.g., atrial fibrillation, DVT)\nS – Hypercoagulability of blood (inherited: Factor V Leiden; acquired: pregnancy, malignancy)",
    "Remember: all 3 elements identified by Rudolf Virchow in 1856. At least one is present in every thrombosis.")
story += h2("Types of Embolism")
story += mnemonic("FAT BAG",
    "F – Fat embolism (long bone fractures)\nA – Air/Gas embolism (surgery, IV lines, decompression sickness)\nT – Thrombo-embolism (most common! DVT → pulmonary embolism)\nB – Bacterial/Septic embolism (infective endocarditis)\nA – Amniotic fluid embolism (obstetric emergency)\nG – Gaseous embolism (nitrogen – caisson disease / the bends)",
    "Pulmonary thromboembolism is the MOST COMMON type; originates from deep veins of leg (DVT).")
story += h2("Types of Shock (COHN-S)")
story += mnemonic("COHN-S",
    "C – Cardiogenic (pump failure: MI, cardiac tamponade)\nO – Obstructive (outflow obstruction: PE, tension pneumothorax)\nH – Hypovolaemic (blood/fluid loss: haemorrhage, burns, diarrhoea)\nN – Neurogenic (loss of vasomotor tone: spinal injury)\nS – Septic/Distributive (bacterial toxins → widespread vasodilation)",
    "All types end in: ↓ cardiac output → ↓ tissue perfusion → multi-organ failure.")
story += h2("Oedema Mechanisms (HOLI)")
story += mnemonic("HOLI",
    "H – Hydrostatic pressure ↑ (e.g., right heart failure → peripheral oedema)\nO – Oncotic (colloid osmotic) pressure ↓ (hypoalbuminaemia: nephrotic, cirrhosis, malnutrition)\nL – Lymphatic obstruction (lymphoedema: filariasis, post-mastectomy)\nI – Inflammation → ↑ vascular permeability (inflammatory oedema)",
    "Pulmonary oedema in LEFT heart failure; peripheral oedema in RIGHT heart failure.")
story += miasm("Thrombosis / vascular obstruction → Syphilitic (destructive, irreversible). Oedema/accumulations → Sycotic (excess fluid, retention).")
story += hr()

# ══════════════════════════════════════════════════════════════════════════════
# 10. DEGENERATION, AMYLOIDOSIS & PIGMENTATION
# ══════════════════════════════════════════════════════════════════════════════
story += h1("10. DEGENERATION, AMYLOIDOSIS &amp; PIGMENTATION")
story += h2("Types of Degeneration")
story += bullet([
    "<b>Cloudy swelling (hydropic degeneration):</b> Earliest reversible change; cell swells with water",
    "<b>Fatty change (steatosis):</b> Lipid accumulation in cell; seen in liver (alcohol, malnutrition), heart, kidney",
    "<b>Hyaline degeneration:</b> Homogeneous, glassy pink material (e.g., hyaline arteriolosclerosis, Mallory bodies in liver)",
    "<b>Mucinous degeneration:</b> Excess mucin; e.g., myxoedema, mucinous carcinoma",
    "<b>Amyloid degeneration:</b> Abnormal protein deposit in tissues",
])
story += h2("Amyloidosis – Key Facts")
story += mnemonic("AMYLOID",
    "A – Abnormal protein (beta-pleated sheet configuration)\nM – Multiple organs affected (kidney, heart, liver, spleen)\nY – Yellow-green birefringence with Congo Red stain under POLARISED light\nL – Low solubility (insoluble extracellular deposits)\nO – Often associated with chronic disease or plasma cell dyscrasias\nI – Immunoglobulin light chains (AL amyloid) OR SAA protein (AA amyloid)\nD – Diagnosis: Congo Red staining of biopsy",
    "Apple-green birefringence under polarised light with Congo Red = PATHOGNOMONIC of amyloid.")
story += box_table(
    rows=[
        [Paragraph("<b>Type</b>", sBody), Paragraph("<b>Precursor Protein</b>", sBody), Paragraph("<b>Associated Condition</b>", sBody)],
        ["AL amyloid",    "Immunoglobulin light chains",    "Multiple myeloma, primary amyloidosis"],
        ["AA amyloid",    "Serum amyloid A protein",        "Rheumatoid arthritis, TB, Crohn disease"],
        ["Aβ amyloid",    "Amyloid precursor protein (APP)","Alzheimer disease"],
        ["ATTR amyloid",  "Transthyretin (TTR)",            "Senile systemic / familial amyloidosis"],
    ],
    col_widths=[W*0.22, W*0.38, W*0.40],
    header=None
)
story += h2("Pigmentation Disorders")
story += box_table(
    rows=[
        [Paragraph("<b>Pigment</b>", sBody), Paragraph("<b>Type</b>", sBody), Paragraph("<b>Condition / Example</b>", sBody)],
        ["Melanin",    "Endogenous",  "↑: Addison disease, melanoma; ↓: Albinism, Vitiligo"],
        ["Haemosiderin","Endogenous", "Haemochromatosis (iron overload), haemolysis"],
        ["Bilirubin",  "Endogenous",  "Jaundice (pre/intra/post-hepatic)"],
        ["Lipofuscin", "Endogenous",  "'Wear and tear' pigment; brown atrophy in elderly hearts"],
        ["Carbon",     "Exogenous",   "Anthracosis (lung); coal worker's pneumoconiosis"],
        ["Tattoo ink", "Exogenous",   "Skin (persists in macrophages in dermis)"],
    ],
    col_widths=[W*0.22, W*0.22, W*0.56],
    header=None
)
story += hr()

# ══════════════════════════════════════════════════════════════════════════════
# 11. MISCELLANEOUS IMPORTANT TOPICS
# ══════════════════════════════════════════════════════════════════════════════
story += h1("11. MISCELLANEOUS – GANGRENE, INFARCTION, PYREXIA, INFECTION")
story += h2("Types of Gangrene")
story += box_table(
    rows=[
        [Paragraph("<b>Type</b>", sBody), Paragraph("<b>Features</b>", sBody), Paragraph("<b>Example</b>", sBody)],
        ["Dry gangrene",   "Coagulative necrosis; dry, mummified; clear line of demarcation; less infection", "Atherosclerosis, Buerger disease (limbs)"],
        ["Wet gangrene",   "Liquefactive; foul smell; no clear line; spreads rapidly; bacterial infection", "Bowel infarction, diabetes foot"],
        ["Gas gangrene",   "Wet + gas bubbles; caused by Clostridium perfringens; crepitus; life-threatening", "Contaminated wounds, post-op"],
    ],
    col_widths=[W*0.22, W*0.42, W*0.36],
    header=None
)
story += h2("Infarction")
story += bullet([
    "<b>Definition:</b> Area of ischaemic necrosis caused by occlusion of vascular supply (arterial or venous)",
    "<b>Red (haemorrhagic) infarct:</b> Loose tissues (lung, gut) or dual blood supply (liver) or venous occlusion",
    "<b>White (anaemic) infarct:</b> Solid organs with end-arterial supply (heart, spleen, kidney)",
    "<b>Septic infarct:</b> From infected thrombus/embolus → becomes abscess",
])
story += mnemonic("Infarct Colour – RAWW",
    "R – Red = venous occlusion / dual blood supply\nA – Anaemic (white) = arterial occlusion in solid organs\nW – Wet / Septic = infected\nW – Watershed infarcts = border zones between 2 arterial territories",
    "Myocardial infarction → white/pale infarct (coagulative necrosis). Brain infarct → red if haemorrhagic.")
story += h2("Pyrexia (Fever)")
story += bullet([
    "<b>Definition:</b> Regulated ↑ in body temperature above normal (>37.2°C oral / >37.8°C oral 'fever')",
    "<b>Pyrogens:</b> Exogenous (LPS, bacterial toxins) → stimulate monocytes/macrophages → endogenous pyrogens (IL-1, IL-6, TNF) → act on hypothalamus → ↑ prostaglandins (PGE2) → reset thermostat upwards",
    "<b>Antipyretic mechanism of aspirin/paracetamol:</b> Inhibit COX → ↓ PGE2 → lower set point",
])
story += h2("Infection vs. Inflammation")
story += bullet([
    "<b>Infection:</b> Invasion and multiplication of microorganisms in host tissues causing injury",
    "<b>Inflammation:</b> Tissue RESPONSE to infection or any injurious stimulus",
    "All infections cause inflammation, but not all inflammation is due to infection",
    "<b>Sepsis:</b> Life-threatening systemic dysregulated immune response to infection → SIRS → organ failure",
])
story += miasm("Infection/inflammation = primarily Psoric (the organism defending). Destruction of tissue during infection = Syphilitic overlay. Chronic persistent infection = Sycotic (organism persisting despite defence).")
story += hr()

# ══════════════════════════════════════════════════════════════════════════════
# QUICK REFERENCE – ALL MNEMONICS
# ══════════════════════════════════════════════════════════════════════════════
story += PageBreak()
story += h1("QUICK REFERENCE – ALL MNEMONICS AT A GLANCE")
all_mnemonics = [
    ("CAMP",        "Aspects of disease: Cause, Abnormal morphology, Mechanism, Pathophysiology"),
    ("HITTING",     "Causes of cell injury: Hypoxia, Immunologic, Toxins, Trauma, Infection, Nutrition, Genetics"),
    ("HAMHA",       "Cellular adaptations: Hypertrophy, Atrophy, Metaplasia, Hyperplasia, Anaplasia"),
    ("DOMED",       "Irreversible injury mechanisms: DNA, Oxidative stress, Mitochondria, ER stress, Disruption of membrane"),
    ("CALF-CG",     "Types of necrosis: Coagulative, Aseptic liquefactive, Liquefactive, Fat, Caseous, Gangrenous"),
    ("APOPTOSIS",   "Features of apoptosis: Absent inflam., Programmed, Orderly, Pyknosis, Tiny, Own machinery, Safe, Individual, Signal"),
    ("PRISH",       "Cardinal signs: Pain, Redness, Immobility, Swelling, Heat"),
    ("VIVID",       "Vascular events in inflammation: Vasodilation, ↑ permeability, Vascular stasis, Interstitial fluid, Diapedesis"),
    ("MARBLE",      "Leukocyte recruitment: Margination, Adhesion, Rolling→firm, Beyond (transmigration), Locomotion, Engulfment"),
    ("SFPU",        "Types of acute inflammation: Serous, Fibrinous, Purulent, Ulcerative"),
    ("SAINT",       "Granuloma causes: Sarcoidosis, Actinomycosis, Infection (TB), Neoplasm, Talc/Foreign body"),
    ("CHIPS-KC",    "Mediators: Complement, Histamine, IL-1/6, Prostaglandins, Serotonin, Kinins, Cytokines"),
    ("LABILE-STABLE-PERMANENT", "Cell types by regeneration: Labile (always dividing), Stable (quiescent), Permanent (non-dividing)"),
    ("IRON-FIRM",   "Steps of wound healing"),
    ("DIVAS",       "Factors impairing healing: Diabetes, Infection, Vitamins deficiency, Anaemia, Steroids"),
    ("ACID",        "Hypersensitivity types: Anaphylactic (I), Cytotoxic (II), Immune complex (III), Delayed (IV)"),
    ("DICES",       "Benign vs. Malignant: Differentiation, Invasion, Capsule, Edges, Spread"),
    ("SASH-AEIR",   "Hallmarks of cancer (Hanahan & Weinberg 8 hallmarks)"),
    ("FAT BAG",     "Types of embolism: Fat, Air, Thrombo, Bacterial, Amniotic fluid, Gas"),
    ("EHS",         "Virchow's triad: Endothelial injury, Haemodynamic disturbance, hypercoagulability (S)"),
    ("COHN-S",      "Types of shock: Cardiogenic, Obstructive, Hypovolaemic, Neurogenic, Septic"),
    ("HOLI",        "Oedema mechanisms: Hydrostatic ↑, Oncotic ↓, Lymphatic obstruction, Inflammation"),
    ("AMYLOID",     "Amyloid: Abnormal protein, Multiple organs, Yellow-green with Congo Red, Low solubility, Often chronic, Immunoglobulin/SAA, Diagnosis=biopsy"),
    ("RAWW",        "Infarct colour: Red=venous, Anaemic=arterial, Wet=infected, Watershed=border zone"),
]

mnem_table_data = [[
    Paragraph("<b>Mnemonic</b>", style("mth","Normal",fontSize=9,fontName="Helvetica-Bold",textColor=colors.white)),
    Paragraph("<b>Stands For</b>", style("mth","Normal",fontSize=9,fontName="Helvetica-Bold",textColor=colors.white)),
]]
for i, (m, exp) in enumerate(all_mnemonics):
    bg = C_CREAM if i % 2 == 0 else C_MINT
    mnem_table_data.append([
        Paragraph(f"<font color='#c0392b'><b>{m}</b></font>", style("mc","Normal",fontSize=9,fontName="Helvetica-Bold")),
        Paragraph(exp, style("me","Normal",fontSize=8.5,leading=12)),
    ])

mts = TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), C_DARK),
    ("ROWBACKGROUNDS",(0,1), (-1,-1), [C_CREAM, C_MINT]),
    ("GRID",          (0,0), (-1,-1), 0.3, colors.HexColor("#cccccc")),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("RIGHTPADDING",  (0,0), (-1,-1), 6),
    ("TOPPADDING",    (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
])
story.append(Table(mnem_table_data, colWidths=[W*0.25, W*0.75], style=mts, hAlign="LEFT"))

# ── FOOTER PAGE ──────────────────────────────────────────────────────────────
story.append(PageBreak())
story.append(Spacer(1, 3*cm))
story.append(HRFlowable(width="80%", thickness=2, color=C_GOLD, hAlign="CENTER"))
story.append(Spacer(1, 10))
story.append(Paragraph("BHMS 2nd Year – General Pathology Mnemonics &amp; Notes", 
             style("fc","Normal",fontSize=13,fontName="Helvetica-Bold",textColor=C_DARK,alignment=TA_CENTER)))
story.append(Spacer(1, 6))
story.append(Paragraph("Based on: Robbins &amp; Kumar Basic Pathology | CCIM BHMS Syllabus", 
             style("fc2","Normal",fontSize=9,textColor=colors.grey,alignment=TA_CENTER)))
story.append(Spacer(1, 6))
story.append(Paragraph("Study Tip: Read Robbins for concepts → Use Harsh Mohan for exam answers → End each topic with miasmatic correlation.",
             style("fc3","Normal",fontSize=9,textColor=C_TEAL,alignment=TA_CENTER,fontName="Helvetica-Oblique")))
story.append(Spacer(1, 20))
story.append(HRFlowable(width="80%", thickness=0.5, color=colors.HexColor("#cccccc"), hAlign="CENTER"))

# ── BUILD ────────────────────────────────────────────────────────────────────
def add_page_number(canvas, doc):
    canvas.saveState()
    canvas.setFont("Helvetica", 8)
    canvas.setFillColor(colors.grey)
    canvas.drawString(2*cm, 1.2*cm, "BHMS 2nd Year | General Pathology Mnemonics & Notes")
    canvas.drawRightString(A4[0]-2*cm, 1.2*cm, f"Page {doc.page}")
    canvas.restoreState()

doc.build(story, onFirstPage=add_page_number, onLaterPages=add_page_number)
print(f"PDF created: {OUTPUT}")
Running Command

cd /home/daytona/workspace/bhms-pathology && python generate_pathology_notes.py

Running Command

grep -n "PageBreak\|story +=" /home/daytona/workspace/bhms-pathology/generate_pathology_notes.py | head -30

Editing File

~/bhms-pathology/generate_pathology_notes.py

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/bhms-pathology/generate_pathology_notes.py'
Running Command

cd /home/daytona/workspace/bhms-pathology && python generate_pathology_notes.py

Your PDF is ready! Download it here:

BHMS Pathology Mnemonics Notes

PDF Document · PDF


Here's a summary of everything packed inside the PDF:

What's Included (11 Chapters)

#TopicKey Mnemonics
1Introduction to PathologyCAMP (4 aspects of disease)
2Cell Injury & AdaptationsHITTING (causes), HAMHA (adaptations), DOMED (irreversible mechanisms)
3Necrosis & ApoptosisCALF-CG (6 types of necrosis), APOPTOSIS acrostic
4InflammationPRISH (cardinal signs), VIVID (vascular events), MARBLE (leukocyte steps), SAINT (granuloma causes)
5Mediators of InflammationCHIPS-KC (all major mediators) + full table
6Tissue Repair & HealingLABILE-STABLE-PERMANENT, IRON-FIRM (healing steps), DIVAS (factors impairing healing)
7Immunity & HypersensitivityACID (4 types) + comparison table
8NeoplasiaDICES (benign vs malignant), SASH-AEIR (8 hallmarks), FAT BAG + tumour nomenclature table
9Haemodynamic DisordersEHS (Virchow's triad), COHN-S (shock types), HOLI (oedema)
10Degeneration & AmyloidosisAMYLOID mnemonic + Congo Red staining key point + pigmentation table
11Gangrene, Infarction, PyrexiaRAWW (infarct colours) + gangrene comparison table
Last page has all 24 mnemonics in a single quick-reference table - perfect for last-minute revision before exams.
Every chapter also includes a Miasmatic Correlation note (Psora/Sycosis/Syphilis) for BHMS-specific viva preparation.
This is a shared conversation. Sign in to Orris to start your own chat.