Hey I have neet pg on August 30 Give me a topic to read everyday high yield to get atleast 400 marks now You should send me topics to read.
| Day | Date | Subject | Topic |
|---|---|---|---|
| 1 | Jul 15 (Today) | Medicine | Diabetes - diagnosis, insulin types, oral hypoglycemics, complications |
| 2 | Jul 16 | Medicine | Hypertension - JNC guidelines, drug classes, hypertensive emergencies |
| 3 | Jul 17 | Medicine | Heart Failure - types, pathophysiology, drug management (RAAS, diuretics) |
| 4 | Jul 18 | Pharmacology | Autonomic drugs - adrenergic, cholinergic agonists & antagonists |
| 5 | Jul 19 | Pharmacology | Antihypertensives, diuretics, antiarrhythmics |
| 6 | Jul 20 | Pharmacology | Antibiotics - mechanisms, resistance, drug of choice for infections |
| 7 | Jul 21 | Revision | Revise all of Week 1 - do MCQs |
| Day | Date | Subject | Topic |
|---|---|---|---|
| 8 | Jul 22 | Surgery | Thyroid - goiter, carcinoma, investigations, surgery |
| 9 | Jul 23 | Surgery | Breast cancer - staging, lymph nodes, treatment |
| 10 | Jul 24 | Surgery | GI surgery - appendix, intestinal obstruction, hernia |
| 11 | Jul 25 | Anatomy | Brachial plexus - roots, trunks, cords, nerve injuries |
| 12 | Jul 26 | Anatomy | Head & Neck - cranial nerves, triangles of neck, sinuses |
| 13 | Jul 27 | Anatomy | Lower limb nerves, perineum, clinical anatomy spots |
| 14 | Jul 28 | Revision | Revise Week 2 + MCQs |
| Day | Date | Subject | Topic |
|---|---|---|---|
| 15 | Jul 29 | Pathology | Neoplasia - oncogenes, tumor markers, carcinogenesis |
| 16 | Jul 30 | Pathology | Blood disorders - anemias (iron def, B12, hemolytic), leukemias |
| 17 | Jul 31 | Pathology | Inflammation, wound healing, cell injury & necrosis |
| 18 | Aug 1 | Microbiology | Bacteria - gram stain, culture media, exotoxins/endotoxins |
| 19 | Aug 2 | Microbiology | Viruses - hepatitis, herpes, HIV, dengue |
| 20 | Aug 3 | Microbiology | Parasitology - malaria, kala azar, filaria, tapeworms |
| 21 | Aug 4 | Revision | Revise Week 3 + MCQs |
| Day | Date | Subject | Topic |
|---|---|---|---|
| 22 | Aug 5 | OBG | Normal labor - stages, partogram, mechanism of labor |
| 23 | Aug 6 | OBG | High-risk pregnancy - PIH, PPH, APH, placenta previa |
| 24 | Aug 7 | OBG | Gynecology - PCOD, endometriosis, fibroid, contraception |
| 25 | Aug 8 | Pediatrics | Neonatal topics - Apgar, birth asphyxia, jaundice, NEC |
| 26 | Aug 9 | Pediatrics | Developmental milestones, vaccines (NIS), growth charts |
| 27 | Aug 10 | Pediatrics | Pediatric emergencies - febrile seizures, intussusception, croup |
| 28 | Aug 11 | Revision | Revise Week 4 + MCQs |
| Day | Date | Subject | Topic |
|---|---|---|---|
| 29 | Aug 12 | PSM | Epidemiology - study designs, bias, screening tests, sensitivity/specificity |
| 30 | Aug 13 | PSM | National health programs - TB (NTEP), malaria, leprosy, RMNCH |
| 31 | Aug 14 | PSM | Nutrition, vaccines, vital statistics, Bhore committee |
| 32 | Aug 15 | Biochemistry | Enzymes, vitamins, minerals - deficiencies & clinical features |
| 33 | Aug 16 | Biochemistry | Metabolism - glycolysis, TCA cycle, HMP shunt, fatty acids |
| 34 | Aug 17 | Physiology | Cardiac physiology - action potential, ECG, cardiac cycle |
| 35 | Aug 18 | Revision | Revise Week 5 + MCQs |
| Day | Date | Subject | Topic |
|---|---|---|---|
| 36 | Aug 19 | ENT | Ear - otitis media, CSOM, cholesteatoma, hearing tests |
| 37 | Aug 20 | ENT | Nose & throat - epistaxis, sinusitis, tonsillitis, voice disorders |
| 38 | Aug 21 | Ophthalmology | Glaucoma, cataract, retinal detachment, diabetic retinopathy |
| 39 | Aug 22 | Ophthalmology | Cornea, uveitis, squint, refraction errors |
| 40 | Aug 23 | Dermatology | Leprosy, psoriasis, pemphigus, SLE skin findings |
| 41 | Aug 24 | Dermatology | Skin infections - fungal, STIs, vitiligo, drug reactions |
| 42 | Aug 25 | Revision | Revise Week 6 + MCQs |
| Day | Date | Focus |
|---|---|---|
| 43 | Aug 26 | Rapid Revision: Medicine + Pharmacology high-yield one-liners |
| 44 | Aug 27 | Rapid Revision: Surgery + Pathology + Micro one-liners |
| 45 | Aug 28 | Rapid Revision: OBG + Peds + PSM one-liners |
| 46 | Aug 29 | Light revision only - Go through mnemonics, relax, sleep early |
Make into a Word document with table in it
mkdir -p /tmp/workspace/neet-pg && ls /tmp/workspace/neet-pg/
~/neet-pg/create_study_plan.py
from docx import Document
from docx.shared import Pt, Inches, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
from docx.oxml import OxmlElement
doc = Document()
# Page margins
from docx.shared import Inches
section = doc.sections[0]
section.top_margin = Inches(0.8)
section.bottom_margin = Inches(0.8)
section.left_margin = Inches(1.0)
section.right_margin = Inches(1.0)
# Default style
style = doc.styles["Normal"]
style.font.name = "Arial"
style.font.size = Pt(11)
# βββ Helper: shade a table row βββββββββββββββββββββββββββββββββββββββββββββββ
def shade_cell(cell, hex_color):
tc = cell._tc
tcPr = tc.get_or_add_tcPr()
shd = OxmlElement('w:shd')
shd.set(qn('w:val'), 'clear')
shd.set(qn('w:color'), 'auto')
shd.set(qn('w:fill'), hex_color)
tcPr.append(shd)
def set_cell_font(cell, bold=False, size=10, color=None, center=False):
for para in cell.paragraphs:
if center:
para.alignment = WD_ALIGN_PARAGRAPH.CENTER
for run in para.runs:
run.font.bold = bold
run.font.size = Pt(size)
run.font.name = "Arial"
if color:
run.font.color.rgb = RGBColor.from_string(color)
def add_cell_text(cell, text, bold=False, size=10, color=None, center=False):
cell.text = text
set_cell_font(cell, bold=bold, size=size, color=color, center=center)
# βββ TITLE βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
title = doc.add_heading("NEET PG 2026 β 46-Day High-Yield Study Plan", level=1)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
title_run = title.runs[0]
title_run.font.color.rgb = RGBColor(0x1A, 0x4E, 0x7C)
title_run.font.size = Pt(16)
# Subtitle
sub = doc.add_paragraph("Target: 400+ Marks | Exam Date: August 30, 2026 | Start Date: July 15, 2026")
sub.alignment = WD_ALIGN_PARAGRAPH.CENTER
for run in sub.runs:
run.font.size = Pt(11)
run.font.bold = True
run.font.color.rgb = RGBColor(0x8B, 0x00, 0x00)
doc.add_paragraph("")
# βββ STRATEGY BOX ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
strat = doc.add_paragraph()
strat_run = strat.add_run("π Strategy: 1β2 topics per day + evening revision of previous day. "
"Solve NEET PG PYQs (2018β2025) daily β covers ~60% of exam content.")
strat_run.font.size = Pt(10)
strat_run.font.italic = True
strat_run.font.color.rgb = RGBColor(0x2E, 0x6B, 0x2E)
doc.add_paragraph("")
# βββ WEEK DATA βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
weeks = [
{
"title": "WEEK 1 (July 15β21) β Medicine & Pharmacology",
"color": "D6E4F0",
"header_color": "1A4E7C",
"rows": [
("1", "Jul 15", "Medicine", "Diabetes β diagnosis, insulin types, oral hypoglycemics, complications"),
("2", "Jul 16", "Medicine", "Hypertension β JNC guidelines, drug classes, hypertensive emergencies"),
("3", "Jul 17", "Medicine", "Heart Failure β types, pathophysiology, drug management (RAAS, diuretics)"),
("4", "Jul 18", "Pharmacology", "Autonomic drugs β adrenergic, cholinergic agonists & antagonists"),
("5", "Jul 19", "Pharmacology", "Antihypertensives, diuretics, antiarrhythmics"),
("6", "Jul 20", "Pharmacology", "Antibiotics β mechanisms, resistance, drug of choice for infections"),
("7", "Jul 21", "REVISION DAY", "Revise all of Week 1 β solve MCQs"),
]
},
{
"title": "WEEK 2 (July 22β28) β Surgery & Anatomy",
"color": "D5F0E4",
"header_color": "1A6B3C",
"rows": [
("8", "Jul 22", "Surgery", "Thyroid β goiter, carcinoma, investigations, surgery"),
("9", "Jul 23", "Surgery", "Breast cancer β staging, lymph nodes, treatment"),
("10", "Jul 24", "Surgery", "GI surgery β appendix, intestinal obstruction, hernia"),
("11", "Jul 25", "Anatomy", "Brachial plexus β roots, trunks, cords, nerve injuries"),
("12", "Jul 26", "Anatomy", "Head & Neck β cranial nerves, triangles of neck, sinuses"),
("13", "Jul 27", "Anatomy", "Lower limb nerves, perineum, clinical anatomy spots"),
("14", "Jul 28", "REVISION DAY", "Revise Week 2 + MCQs"),
]
},
{
"title": "WEEK 3 (July 29 β August 4) β Pathology & Microbiology",
"color": "F0EAD6",
"header_color": "7C4E1A",
"rows": [
("15", "Jul 29", "Pathology", "Neoplasia β oncogenes, tumor markers, carcinogenesis"),
("16", "Jul 30", "Pathology", "Blood disorders β anemias (iron def, B12, hemolytic), leukemias"),
("17", "Jul 31", "Pathology", "Inflammation, wound healing, cell injury & necrosis"),
("18", "Aug 1", "Microbiology", "Bacteria β gram stain, culture media, exotoxins/endotoxins"),
("19", "Aug 2", "Microbiology", "Viruses β hepatitis, herpes, HIV, dengue"),
("20", "Aug 3", "Microbiology", "Parasitology β malaria, kala azar, filaria, tapeworms"),
("21", "Aug 4", "REVISION DAY", "Revise Week 3 + MCQs"),
]
},
{
"title": "WEEK 4 (August 5β11) β OBG & Pediatrics",
"color": "F0D6E4",
"header_color": "7C1A4E",
"rows": [
("22", "Aug 5", "OBG", "Normal labor β stages, partogram, mechanism of labor"),
("23", "Aug 6", "OBG", "High-risk pregnancy β PIH, PPH, APH, placenta previa"),
("24", "Aug 7", "OBG", "Gynecology β PCOD, endometriosis, fibroid, contraception"),
("25", "Aug 8", "Pediatrics", "Neonatal topics β Apgar, birth asphyxia, jaundice, NEC"),
("26", "Aug 9", "Pediatrics", "Developmental milestones, vaccines (NIS), growth charts"),
("27", "Aug 10", "Pediatrics", "Pediatric emergencies β febrile seizures, intussusception, croup"),
("28", "Aug 11", "REVISION DAY", "Revise Week 4 + MCQs"),
]
},
{
"title": "WEEK 5 (August 12β18) β PSM, Biochemistry & Physiology",
"color": "E4D6F0",
"header_color": "4E1A7C",
"rows": [
("29", "Aug 12", "PSM", "Epidemiology β study designs, bias, screening tests, sensitivity/specificity"),
("30", "Aug 13", "PSM", "National health programs β TB (NTEP), malaria, leprosy, RMNCH"),
("31", "Aug 14", "PSM", "Nutrition, vaccines, vital statistics, Bhore committee"),
("32", "Aug 15", "Biochemistry", "Enzymes, vitamins, minerals β deficiencies & clinical features"),
("33", "Aug 16", "Biochemistry", "Metabolism β glycolysis, TCA cycle, HMP shunt, fatty acids"),
("34", "Aug 17", "Physiology", "Cardiac physiology β action potential, ECG, cardiac cycle"),
("35", "Aug 18", "REVISION DAY", "Revise Week 5 + MCQs"),
]
},
{
"title": "WEEK 6 (August 19β25) β ENT, Ophthalmology & Dermatology",
"color": "D6F0EE",
"header_color": "1A7C6B",
"rows": [
("36", "Aug 19", "ENT", "Ear β otitis media, CSOM, cholesteatoma, hearing tests"),
("37", "Aug 20", "ENT", "Nose & throat β epistaxis, sinusitis, tonsillitis, voice disorders"),
("38", "Aug 21", "Ophthalmology", "Glaucoma, cataract, retinal detachment, diabetic retinopathy"),
("39", "Aug 22", "Ophthalmology", "Cornea, uveitis, squint, refraction errors"),
("40", "Aug 23", "Dermatology", "Leprosy, psoriasis, pemphigus, SLE skin findings"),
("41", "Aug 24", "Dermatology", "Skin infections β fungal, STIs, vitiligo, drug reactions"),
("42", "Aug 25", "REVISION DAY", "Revise Week 6 + MCQs"),
]
},
{
"title": "FINAL STRETCH (August 26β29) β Rapid Revision",
"color": "FFF3CD",
"header_color": "856404",
"rows": [
("43", "Aug 26", "Rapid Revision", "Medicine + Pharmacology high-yield one-liners & mnemonics"),
("44", "Aug 27", "Rapid Revision", "Surgery + Pathology + Microbiology one-liners"),
("45", "Aug 28", "Rapid Revision", "OBG + Pediatrics + PSM one-liners"),
("46", "Aug 29", "EXAM EVE", "Light revision only β mnemonics, relax, sleep early by 10 PM"),
]
},
]
COL_WIDTHS = [Inches(0.45), Inches(0.75), Inches(1.3), Inches(4.0)]
for week in weeks:
# Week heading
wh = doc.add_heading(week["title"], level=2)
wh.alignment = WD_ALIGN_PARAGRAPH.LEFT
wh_run = wh.runs[0]
r, g, b = (int(week["header_color"][i:i+2], 16) for i in (0, 2, 4))
wh_run.font.color.rgb = RGBColor(r, g, b)
wh_run.font.size = Pt(12)
# Table
tbl = doc.add_table(rows=1, cols=4)
tbl.style = "Table Grid"
# Header row
hdr_cells = tbl.rows[0].cells
for cell in hdr_cells:
shade_cell(cell, week["header_color"])
headers = ["Day", "Date", "Subject", "Topic"]
for i, h in enumerate(headers):
add_cell_text(hdr_cells[i], h, bold=True, size=10, color="FFFFFF", center=True)
# Set column widths on header
for i, w in enumerate(COL_WIDTHS):
hdr_cells[i].width = w
# Data rows
for idx, (day, date, subj, topic) in enumerate(week["rows"]):
row_cells = tbl.add_row().cells
is_revision = "REVISION" in subj or "EXAM EVE" in subj or "Rapid Revision" in subj
fill = "FFE6CC" if is_revision else week["color"]
for cell in row_cells:
shade_cell(cell, fill)
add_cell_text(row_cells[0], day, bold=True, size=10, center=True)
add_cell_text(row_cells[1], date, bold=False, size=10, center=True)
add_cell_text(row_cells[2], subj, bold=True if is_revision else False, size=10)
add_cell_text(row_cells[3], topic, bold=False, size=10)
for i, w in enumerate(COL_WIDTHS):
row_cells[i].width = w
doc.add_paragraph("")
# βββ HIGH-YIELD SUBJECT BREAKDOWN ββββββββββββββββββββββββββββββββββββββββββββ
doc.add_heading("High-Yield Subject Weightage (400+ Strategy)", level=2)
hy_run = doc.paragraphs[-1].runs[0]
hy_run.font.color.rgb = RGBColor(0x8B, 0x00, 0x00)
hy_run.font.size = Pt(12)
hy_table = doc.add_table(rows=1, cols=3)
hy_table.style = "Table Grid"
hy_hdr = hy_table.rows[0].cells
for cell in hy_hdr:
shade_cell(cell, "1A4E7C")
for i, h in enumerate(["Subject", "Approx Questions", "Key Focus Areas"]):
add_cell_text(hy_hdr[i], h, bold=True, size=10, color="FFFFFF", center=True)
hy_data = [
("Medicine", "30β35 Qs", "Diabetes, HTN, Heart Failure, Thyroid, Nephrology"),
("Surgery", "20β25 Qs", "Thyroid, Breast, GI, Trauma, Hernias"),
("Pharmacology", "20β25 Qs", "Drug mechanisms, DOC, Toxicology"),
("PSM", "20 Qs", "Epidemiology, National Programs, Biostatistics"),
("OBG", "20 Qs", "Normal & High-risk Pregnancy, Gynecology"),
("Pathology", "20 Qs", "Tumor markers, Anemias, Inflammation"),
("Microbiology", "15β18 Qs", "Bacteria, Viruses, Parasites"),
("Pediatrics", "15β18 Qs", "Milestones, Vaccines, Neonatal"),
("Anatomy", "12β15 Qs", "Brachial plexus, Cranial nerves, Clinical spots"),
("Biochemistry", "10β12 Qs", "Vitamins, Enzymes, Metabolic pathways"),
("Physiology", "10β12 Qs", "Cardiac, Renal, Respiratory physiology"),
("ENT", "8β10 Qs", "CSOM, Epistaxis, Hearing tests"),
("Ophthalmology", "8β10 Qs", "Glaucoma, Cataract, Retinal disorders"),
("Dermatology", "6β8 Qs", "Leprosy, Psoriasis, Pemphigus"),
]
hy_col_widths = [Inches(1.5), Inches(1.5), Inches(3.5)]
for i, (subj, qs, focus) in enumerate(hy_data):
row = hy_table.add_row().cells
fill = "EAF4FF" if i % 2 == 0 else "FFFFFF"
for cell in row:
shade_cell(cell, fill)
add_cell_text(row[0], subj, bold=True, size=10)
add_cell_text(row[1], qs, bold=False, size=10, center=True)
add_cell_text(row[2], focus, bold=False, size=10)
for j, w in enumerate(hy_col_widths):
row[j].width = w
doc.add_paragraph("")
# βββ FOOTER NOTE βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
footer_para = doc.add_paragraph()
footer_run = footer_para.add_run(
"Tip: Solve NEET PG Previous Year Questions (2018β2025) daily alongside topics. "
"That alone covers ~60% of what appears in the exam. "
"Good luck β You've got this! πͺ"
)
footer_run.font.size = Pt(10)
footer_run.font.italic = True
footer_run.font.bold = True
footer_run.font.color.rgb = RGBColor(0x2E, 0x6B, 0x2E)
footer_para.alignment = WD_ALIGN_PARAGRAPH.CENTER
# βββ SAVE ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
out_path = "/tmp/workspace/neet-pg/NEET_PG_2026_Study_Plan.docx"
doc.save(out_path)
print(f"Saved: {out_path}")
cd /tmp/workspace/neet-pg && python3 create_study_plan.py
NEET PG 2026 Study Plan
Word Document Β· DOCX
Send me information to know high yield for today
| Type | Key Feature |
|---|---|
| Type 1 DM | Autoimmune destruction of beta cells β absolute insulin deficiency |
| Type 2 DM | Insulin resistance + relative insulin deficiency |
| MODY | Monogenic; autosomal dominant; young, non-obese, family history |
| Gestational DM | First detected in pregnancy |
| Secondary DM | Pancreatitis, Cushing's, acromegaly, steroids |
| Test | Normal | Pre-Diabetes | Diabetes |
|---|---|---|---|
| Fasting Plasma Glucose | <100 mg/dL | 100-125 mg/dL | β₯ 126 mg/dL |
| 2-hr OGTT (75g) | <140 mg/dL | 140-199 mg/dL | β₯ 200 mg/dL |
| HbA1c | <5.7% | 5.7-6.4% | β₯ 6.5% |
| Random glucose + symptoms | - | - | β₯ 200 mg/dL |
NEET PG pearl: Two abnormal tests required for confirmation (unless symptomatic random glucose β₯200). HbA1c reflects average glucose over 3 months. - Tintinalli's Emergency Medicine
| Type | Examples | Onset | Peak | Duration |
|---|---|---|---|---|
| Ultra rapid / Inhaled | Afrezza | 10-20 min | Very quick | ~3 hr |
| Rapid-acting | Lispro, Aspart, Glulisine | 15-30 min | 30-90 min | 3-5 hr |
| Short-acting | Regular (Humulin R) | 30-60 min | 2-4 hr | 6-8 hr |
| Intermediate-acting | NPH (Humulin N) | 1-2 hr | 4-10 hr | 12-18 hr |
| Long-acting | Glargine (Lantus), Detemir (Levemir) | 1-2 hr | No peak | 20-24 hr |
| Ultra long-acting | Degludec (Tresiba) | 1-2 hr | No peak | >42 hr |
Mnemonics: "LAG = Long-Acting Glargine" | Rapid-acting = given 15 min before meal; Regular = given 30 min before meal

| Complication | Key Points |
|---|---|
| Retinopathy | Leading cause of blindness; microaneurysms β hard exudates β cotton wool spots β new vessels (proliferative); treat with laser photocoagulation / anti-VEGF |
| Nephropathy | Kimmelstiel-Wilson nodules (pathognomonic); microalbuminuria β proteinuria β ESRD; ACEi/ARB are protective |
| Neuropathy | Glove and stocking sensory loss; autonomic (gastroparesis, orthostatic hypotension, ED); treat with Pregabalin, TCAs, duloxetine |
DCCT Trial: Tight glycemic control (HbA1c <7%) reduced retinopathy progression by 76% - Miller's Anesthesia
| Feature | DKA | HHS (HONK) |
|---|---|---|
| Type | Mainly T1DM | Mainly T2DM |
| Glucose | 250-600 mg/dL | >600 mg/dL |
| pH | <7.3 | Normal/near normal |
| Ketones | +++++ | Absent or mild |
| Osmolality | Mildly elevated | >320 mOsm/kg |
| Mortality | 1-5% | 15-20% |
| Treatment | IV fluids + Insulin (Regular) + K+ | IV fluids (main), slow correction |
| Parameter | Target |
|---|---|
| HbA1c | <7% (general) |
| Fasting glucose | 80-130 mg/dL |
| Post-meal glucose | <180 mg/dL |
| BP | <130/80 mmHg |
| LDL | <100 mg/dL (<70 in high CV risk) |
Sources: Lippincott Illustrated Reviews Pharmacology | Tintinalli's Emergency Medicine | Rosen's Emergency Medicine | The Washington Manual of Medical Therapeutics
Act as a senior medical illustrator, NEET PG faculty, and UI/UX designer. Create a PREMIUM, 4K (3840Γ2160), Apple-quality medical infographic for NEET PG / INICET in a DARK DOCTOR RANKER THEME. Style: β’ Black matte background with subtle gold accents β’ Premium typography (Apple keynote style) β’ Clean spacing with modern medical UI β’ High contrast with color coding β’ Professional medical illustration quality β’ Suitable for iPad study and printing Topic: [INSERT TOPIC] Layout: Create ONE infographic slide only. Include the following sections: ββββββββββββββββββββββ 1. TITLE ββββββββββββββββββββββ Large bold title with emoji/icon Example: β‘ WPW (Wolff-Parkinson-White Syndrome) Subtitle: NEET PG Ranker Edition ββββββββββββββββββββββ 2. CLINICAL VIGNETTE ββββββββββββββββββββββ Create a realistic NEET PG clinical scenario. Include: β’ Age β’ Sex β’ Risk factors β’ Symptoms β’ Examination findings β’ ECG/X-ray/Echo is shown β’ Ask: "What is the most likely diagnosis?" Add a realistic medical illustration/cartoon of the patient showing the symptoms. ββββββββββββββββββββββ 3. REAL ECG/X-RAY/ECHO IMAGE ββββββββββββββββββββββ Use a realistic medical-quality ECG (or X-ray/Echo depending on topic). Draw ARROWS directly on the image pointing to ALL important abnormalities. Label each abnormality with callouts. Example for WPW: β Short PR interval β Delta wave β Wide QRS β Secondary ST-T changes Example for STEMI: β ST elevation β Reciprocal ST depression β Hyperacute T wave The annotations should be extremely clear. ββββββββββββββββββββββ 4. ECG / IMAGE FEATURES ββββββββββββββββββββββ Provide concise bullet points highlighting the diagnostic features. ββββββββββββββββββββββ 5. NEET PG ASKABLE POINTS β ββββββββββββββββββββββ Include the most commonly tested facts. Examples: β Most repeated PYQ β Spot diagnosis β Image-based question β Next best step β Culprit artery β First investigation β Gold standard β Best management β Contraindications ββββββββββββββββββββββ 6. HIGH-YIELD TRAP POINTS β οΈ ββββββββββββββββββββββ Include common mistakes and confusing differentials tested in NEET PG. ββββββββββββββββββββββ 7. DIAGNOSTIC ALGORITHM ββββββββββββββββββββββ Create a beautiful flowchart with arrows showing diagnosis step-by-step. Use colored decision boxes. ββββββββββββββββββββββ 8. MANAGEMENT ALGORITHM ββββββββββββββββββββββ Flowchart with: Initial management β Stable vs unstable β Drug of choice β Definitive management Use arrows and icons. ββββββββββββββββββββββ 9. CLINICAL PEARLS π ββββββββββββββββββββββ 3β5 one-liners that are commonly asked. ββββββββββββββββββββββ 10. MNEMONICS π§ ββββββββββββββββββββββ Create memorable mnemonics. ββββββββββββββββββββββ 11. ONE-LINER REVISION β‘ ββββββββββββββββββββββ 5 rapid-fire facts for last-minute revision. ββββββββββββββββββββββ 12. IMAGE-BASED PYQ ALERT πΈ ββββββββββββββββββββββ Highlight exactly what the examiner expects students to identify from the image. ββββββββββββββββββββββ 13. DESIGN REQUIREMENTS ββββββββββββββββββββββ β’ Use icons β’ Color-code important facts β’ Highlight keywords in yellow or gold β’ Use arrows extensively β’ Use professional medical illustrations β’ Include realistic anatomical diagrams where relevant β’ Ensure text is readable when viewed on an iPad β’ Avoid clutter β’ Maintain Apple-style minimalism with premium aesthetics Output: Generate a single polished infographic slide ready for NEET PG revision, suitable for printing or digital flashcards. Make it for the above topic
Which topic should this premium infographic cover?
mkdir -p /tmp/workspace/neet-infographic && ls /tmp/workspace/neet-infographic/
~/neet-infographic/dm_infographic.py
from PIL import Image, ImageDraw, ImageFont
import math, os, textwrap
# βββ CANVAS ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
W, H = 3840, 2160
img = Image.new("RGB", (W, H), (10, 10, 14))
draw = ImageDraw.Draw(img)
# βββ COLOUR PALETTE ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
BG = (10, 10, 14)
PANEL = (18, 18, 26)
PANEL2 = (22, 22, 34)
GOLD = (212, 175, 55)
GOLD_SOFT = (180, 148, 40)
GOLD_DIM = (100, 82, 20)
WHITE = (255, 255, 255)
OFFWHITE = (220, 220, 230)
GRAY = (140, 140, 160)
LGRAY = (80, 80, 100)
RED = (220, 60, 60)
RED_SOFT = (180, 50, 50)
GREEN = (60, 200, 100)
GREEN_DIM = (30, 100, 55)
BLUE = (80, 160, 255)
BLUE_DIM = (30, 70, 140)
CYAN = (60, 220, 210)
PURPLE = (160, 80, 220)
ORANGE = (255, 150, 50)
YELLOW = (255, 220, 50)
TEAL = (40, 180, 170)
# βββ FONTS βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def font(size, bold=False):
candidates_bold = [
"/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf",
"/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf",
"/usr/share/fonts/truetype/freefont/FreeSansBold.ttf",
]
candidates = [
"/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf",
"/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf",
"/usr/share/fonts/truetype/freefont/FreeSans.ttf",
]
paths = candidates_bold if bold else candidates
for p in paths:
if os.path.exists(p):
return ImageFont.truetype(p, size)
return ImageFont.load_default()
F_TITLE = font(90, bold=True)
F_TITLE2 = font(72, bold=True)
F_HEAD = font(52, bold=True)
F_SUBHEAD = font(40, bold=True)
F_BODY = font(34)
F_BODY_B = font(34, bold=True)
F_SMALL = font(28)
F_SMALL_B = font(28, bold=True)
F_MICRO = font(24)
F_MICRO_B = font(24, bold=True)
F_NANO = font(20)
# βββ HELPERS βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def rect(x, y, w, h, fill, radius=18, outline=None, outline_w=2):
draw.rounded_rectangle([x, y, x+w, y+h], radius=radius, fill=fill,
outline=outline, width=outline_w)
def txt(text, x, y, fnt, fill=WHITE, anchor="la"):
draw.text((x, y), text, font=fnt, fill=fill, anchor=anchor)
def txt_center(text, cx, y, fnt, fill=WHITE):
draw.text((cx, y), text, font=fnt, fill=fill, anchor="mt")
def badge(x, y, text, bg, fg=WHITE, fnt=None, pad_x=18, pad_y=8, radius=12):
fnt = fnt or F_SMALL_B
bb = fnt.getbbox(text)
tw, th = bb[2]-bb[0], bb[3]-bb[1]
rect(x, y, tw+pad_x*2, th+pad_y*2, bg, radius=radius)
draw.text((x+pad_x, y+pad_y), text, font=fnt, fill=fg)
return tw+pad_x*2, th+pad_y*2
def hline(y, x1, x2, color=GOLD_DIM, w=2):
draw.line([(x1,y),(x2,y)], fill=color, width=w)
def vline(x, y1, y2, color=GOLD_DIM, w=2):
draw.line([(x,y1),(x,y2)], fill=color, width=w)
def arrow(x1, y1, x2, y2, color=GOLD, w=3, head=18):
draw.line([(x1,y1),(x2,y2)], fill=color, width=w)
angle = math.atan2(y2-y1, x2-x1)
for da in [0.5, -0.5]:
ax = x2 - head*math.cos(angle-da)
ay = y2 - head*math.sin(angle-da)
draw.line([(x2,y2),(int(ax),int(ay))], fill=color, width=w)
def section_header(x, y, w, title, icon="", color=GOLD):
rect(x, y, w, 58, PANEL2, radius=10, outline=color, outline_w=2)
draw.line([(x, y+58), (x+w, y+58)], fill=color, width=2)
txt(f"{icon} {title}", x+20, y+10, F_SUBHEAD, fill=color)
return y+62
def bullet(x, y, text, color=GOLD, fnt=None, max_w=None):
fnt = fnt or F_SMALL
draw.ellipse([x, y+10, x+12, y+22], fill=color)
if max_w:
lines = textwrap.wrap(text, width=max(10, max_w//18))
for i, line in enumerate(lines):
txt(line, x+22, y+i*32, fnt, fill=OFFWHITE)
return 32 * len(lines)
else:
txt(text, x+22, y, fnt, fill=OFFWHITE)
return 36
# βββ BACKGROUND GRID (subtle) βββββββββββββββββββββββββββββββββββββββββββββββββ
for gx in range(0, W, 120):
draw.line([(gx,0),(gx,H)], fill=(20,20,30), width=1)
for gy in range(0, H, 120):
draw.line([(0,gy),(W,gy)], fill=(20,20,30), width=1)
# βββ TOP GOLD BORDER ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
draw.rectangle([0,0,W,6], fill=GOLD)
draw.rectangle([0,H-6,W,H], fill=GOLD)
draw.rectangle([0,0,6,H], fill=GOLD)
draw.rectangle([W-6,0,W,H], fill=GOLD)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 1 β TITLE BAR
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
rect(0, 0, W, 150, (14, 14, 20), radius=0)
draw.rectangle([0,145,W,150], fill=GOLD)
txt_center("π©Ί DIABETES MELLITUS", W//2, 18, F_TITLE, fill=GOLD)
txt_center("NEET PG / INICET β’ Ranker Edition β’ Day 1 β’ High-Yield Mastery", W//2, 108, F_SMALL_B, fill=GRAY)
# Top right badge
badge(W-340, 18, "β HIGH YIELD", (50,35,0), GOLD, F_SMALL_B, pad_x=16, pad_y=10)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# LAYOUT: 3-column below header
# COL1: x=30 w=1100 (Clinical + Diagnosis)
# COL2: x=1160 w=1280 (Insulin + OHA)
# COL3: x=2470 w=1340 (Complications + Algorithm + Pearls)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TOP = 165
C1X, C1W = 30, 1100
C2X, C2W = 1160, 1280
C3X, C3W = 2470, 1340
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# COLUMN 1
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# ββ CLINICAL VIGNETTE ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
rect(C1X, TOP, C1W, 380, PANEL, radius=16, outline=BLUE, outline_w=2)
y = section_header(C1X, TOP, C1W, "CLINICAL VIGNETTE", "π", BLUE)
# Patient cartoon (simple SVG-style drawing using PIL shapes)
px, py = C1X+C1W-200, TOP+60
# Body silhouette
draw.ellipse([px-28, py, px+28, py+56], fill=(80,60,40)) # head
draw.rectangle([px-24, py+56, px+24, py+180], fill=(60,80,120)) # body
draw.rectangle([px-40, py+80, px-24, py+160], fill=(60,80,120)) # L arm
draw.rectangle([px+24, py+80, px+40, py+160], fill=(60,80,120)) # R arm
draw.rectangle([px-22, py+180, px-4, py+250], fill=(40,50,80)) # L leg
draw.rectangle([px+4, py+180, px+22, py+250], fill=(40,50,80)) # R leg
# Symptom arrows
draw.line([(px+32, py+30),(px+80, py+20)], fill=YELLOW, width=2)
txt("Polyuria", px+82, py+10, F_NANO, fill=YELLOW)
draw.line([(px+32, py+55),(px+80, py+55)], fill=CYAN, width=2)
txt("Polydipsia", px+82, py+48, F_NANO, fill=CYAN)
draw.line([(px+32, py+80),(px+80, py+80)], fill=RED, width=2)
txt("Wt Loss", px+82, py+73, F_NANO, fill=RED)
# Water drops (polyuria visual)
for i in range(3):
draw.ellipse([px-6+i*8, py+255, px+2+i*8, py+268], fill=CYAN)
vx = C1X+14
txt("A 45-yr male, obese (BMI 32), smoker, presents with", vx, y+4, F_SMALL, fill=OFFWHITE)
txt("3 months of polydipsia, polyuria, nocturia Γ4/night,", vx, y+36, F_SMALL, fill=OFFWHITE)
txt("blurred vision & tingling in both feet.", vx, y+68, F_SMALL, fill=OFFWHITE)
txt("FBS: 186 mg/dL | HbA1c: 8.9% | Urine: glucose++", vx, y+104, F_SMALL_B, fill=YELLOW)
txt("BP: 148/92 mmHg | BMI: 32 | Acanthosis nigricans β", vx, y+136, F_SMALL, fill=OFFWHITE)
# Q box
rect(C1X+10, y+175, C1W-20, 52, (0,40,80), radius=10, outline=BLUE, outline_w=2)
txt("β Most likely diagnosis? β TYPE 2 DIABETES MELLITUS", C1X+20, y+188, F_SMALL_B, fill=BLUE)
txt("Next step? β Confirm with repeat FBS / HbA1c", C1X+20, y+218, F_NANO, fill=CYAN)
# ββ DIAGNOSIS CRITERIA βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
DY = TOP+390
rect(C1X, DY, C1W, 320, PANEL, radius=16, outline=GOLD, outline_w=2)
y2 = section_header(C1X, DY, C1W, "DIAGNOSIS CRITERIA (ADA)", "π¬", GOLD)
headers = ["Test", "Normal", "Pre-DM", "DIABETES β"]
col_xs = [C1X+14, C1X+280, C1X+490, C1X+680]
col_fills= [GOLD, GREEN, ORANGE, RED]
for i,(h,cx) in enumerate(zip(headers, col_xs)):
txt(h, cx, y2+2, F_SMALL_B, fill=col_fills[i])
rows = [
("Fasting Plasma Glucose", "<100", "100β125", "β₯ 126 mg/dL"),
("2-hr OGTT (75g)", "<140", "140β199", "β₯ 200 mg/dL"),
("HbA1c", "<5.7%", "5.7β6.4%", "β₯ 6.5%"),
("Random + symptoms", "β", "β", "β₯ 200 mg/dL"),
]
for ri, row in enumerate(rows):
ry = y2+36+ri*50
bg = (22,22,34) if ri%2==0 else (26,26,40)
rect(C1X+4, ry-4, C1W-8, 46, bg, radius=8)
for ci,(cell,cx) in enumerate(zip(row,col_xs)):
clr = OFFWHITE
if ci == 3: clr = RED
elif ci == 2: clr = ORANGE
txt(cell, cx, ry+4, F_SMALL, fill=clr)
rect(C1X+4, y2+236, C1W-8, 40, (0,30,0), radius=8, outline=GREEN, outline_w=1)
txt("β‘ 2 abnormal tests needed to confirm (unless symptomatic random β₯200)", C1X+16, y2+246, F_NANO, fill=GREEN)
# ββ TRAP POINTS ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TY = DY+330
rect(C1X, TY, C1W, 270, PANEL, radius=16, outline=RED, outline_w=2)
y3 = section_header(C1X, TY, C1W, "HIGH-YIELD TRAP POINTS β οΈ", "β οΈ", RED)
traps = [
"HbA1c FALSE LOW: Hemolytic anemia, Sickle cell (short RBC life)",
"HbA1c FALSE HIGH: Iron/B12 deficiency anemia (long RBC life)",
"Metformin β LACTIC ACIDOSIS (not hypoglycemia) β contraindicated in eGFR <30",
"SGLT-2 inhibitors β EUGLYCEMIC DKA (glucose may be normal!)",
"Glyburide unsafe in renal failure; use Glipizide or Glimepiride",
"DKA mainly T1DM but can occur in T2DM (stressor / omitted insulin)",
]
for i,t in enumerate(traps):
ry = y3+4+i*38
col = RED if i<2 else ORANGE
draw.ellipse([C1X+10, ry+10, C1X+22, ry+22], fill=col)
txt(t, C1X+28, ry, F_NANO, fill=OFFWHITE)
# ββ MNEMONICS ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
MY = TY+280
rect(C1X, MY, C1W, 230, PANEL, radius=16, outline=PURPLE, outline_w=2)
y4 = section_header(C1X, MY, C1W, "MNEMONICS π§ ", "π§ ", PURPLE)
mns = [
('3 Ps of DM', '"Poly-Uria, Poly-Dipsia, Poly-Phagia"'),
('Weight GAIN drugs', '"SIT" β Sulfonylureas, Insulin, TZDs'),
('Weight LOSS drugs', '"MSG" β Metformin, SGLT-2, GLP-1'),
('Lactic Acidosis', '"Metformin + 3 Rs: Renal/Respiratory/Running-dry"'),
('DKA mnemonic', '"KUSSMAUL" β K+ lost, Urine glucose+, Sugar highβ¦'),
]
for i,(title,body) in enumerate(mns):
ry = y4+2+i*40
txt(f"πΉ {title}:", C1X+10, ry, F_NANO, fill=PURPLE)
txt(body, C1X+10, ry+20, F_NANO, fill=OFFWHITE)
# ββ ONE-LINER REVISION βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
OY = MY+240
rect(C1X, OY, C1W, 235, PANEL, radius=16, outline=CYAN, outline_w=2)
y5 = section_header(C1X, OY, C1W, "ONE-LINER REVISION β‘", "β‘", CYAN)
oneliners = [
"DOC T2DM = Metformin | DOC pregnancy = Insulin",
"Kimmelstiel-Wilson nodule = Diabetic nephropathy (pathognomonic)",
"DCCT trial: tight control β βretinopathy 76%",
"Empagliflozin = cardio + nephroprotective (EMPA-REG trial)",
"HbA1c target = <7% | Reflects last 3 months glucose",
]
for i,l in enumerate(oneliners):
ry = y5+4+i*40
bg = (0,40,50) if i%2==0 else PANEL2
rect(C1X+4, ry, C1W-8, 36, bg, radius=6)
txt(f"β‘ {l}", C1X+14, ry+6, F_NANO, fill=CYAN)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# COLUMN 2 β INSULIN + ORAL AGENTS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# ββ INSULIN TABLE ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
rect(C2X, TOP, C2W, 420, PANEL, radius=16, outline=GOLD, outline_w=2)
iy = section_header(C2X, TOP, C2W, "INSULIN TYPES", "π", GOLD)
# Draw insulin kinetics chart
CX, CY = C2X+C2W-340, TOP+80
CW, CH = 310, 200
rect(CX, CY, CW, CH, (14,14,22), radius=8, outline=LGRAY, outline_w=1)
txt("Onset / Peak / Duration", CX+10, CY+6, F_NANO, fill=GRAY)
# Axes
draw.line([(CX+20, CY+CH-20), (CX+CW-10, CY+CH-20)], fill=GRAY, width=2)
draw.line([(CX+20, CY+20), (CX+20, CY+CH-20)], fill=GRAY, width=2)
txt("Timeβ", CX+CW-40, CY+CH-18, F_NANO, fill=GRAY)
# Curves (simplified bell-shaped)
def draw_curve(draw, cx, cy, start_x, peak_x, end_x, peak_y, base_y, color, label):
pts = []
for sx in range(start_x, end_x+1, 3):
t = (sx - start_x)/(end_x-start_x)
# bell shape
val = math.sin(math.pi * t)
y_pt = base_y - val*(base_y-peak_y)
pts.append((cx+sx, cy+y_pt))
for i in range(len(pts)-1):
draw.line([pts[i], pts[i+1]], fill=color, width=3)
if len(pts)>1:
draw.text((cx+start_x, cy+peak_y-18), label, font=ImageFont.truetype(
"/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf",18) if os.path.exists(
"/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf") else ImageFont.load_default(),
fill=color)
import os as _os
_base = CY+CH-22
draw_curve(draw, CX, 0, 22, 55, 115, _base-90, _base, (100,200,255), "Rapid")
draw_curve(draw, CX, 0, 30, 80, 160, _base-70, _base, YELLOW, "Regular")
draw_curve(draw, CX, 0, 40, 120, 220, _base-55, _base, ORANGE, "NPH")
draw_curve(draw, CX, 0, 45, 160, 295, _base-30, _base, GREEN, "Glargine")
ins_rows = [
("Ultra-Rapid/Inhaled", "Afrezza", "10-20m", "~20m", "~3h", CYAN),
("Rapid-Acting", "Lispro/Aspart/Glulisine","15-30m","1-2h","3-5h", BLUE),
("Short-Acting", "Regular (Humulin R)", "30-60m", "2-4h", "6-8h", YELLOW),
("Intermediate", "NPH (Humulin N)", "1-2h", "4-10h","12-18h",ORANGE),
("Long-Acting", "Glargine/Detemir", "1-2h", "None","20-24h",GREEN),
("Ultra-Long", "Degludec (Tresiba)", "1-2h", "None", ">42h", (120,200,80)),
]
ih = ["Type", "Examples", "Onset", "Peak", "Duration"]
ih_xs = [C2X+8, C2X+220, C2X+560, C2X+680, C2X+790]
for i,(h,hx) in enumerate(zip(ih,ih_xs)):
txt(h, hx, iy+4, F_SMALL_B, fill=GOLD)
for ri, (tp,ex,on,pk,dur,col) in enumerate(ins_rows):
rry = iy+40+ri*52
bg = (20,20,32) if ri%2==0 else (26,26,40)
rect(C2X+4, rry, C2W-8, 48, bg, radius=6)
txt(tp, C2X+8, rry+10, F_NANO, fill=col)
txt(ex, C2X+220, rry+10, F_NANO, fill=OFFWHITE)
txt(on, C2X+560, rry+10, F_SMALL_B, fill=col)
txt(pk, C2X+680, rry+10, F_NANO, fill=OFFWHITE)
txt(dur,C2X+790, rry+10, F_NANO, fill=OFFWHITE)
# Pearl under insulin table
rect(C2X+4, iy+358, C2W-8, 36, (0,30,50), radius=6, outline=CYAN, outline_w=1)
txt("π Rapid β 15 min before meal | Regular β 30 min | Glargine = NO peak (basal)", C2X+14, iy+368, F_NANO, fill=CYAN)
# ββ ORAL HYPOGLYCEMICS βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
OHY = TOP+430
rect(C2X, OHY, C2W, 680, PANEL, radius=16, outline=GREEN, outline_w=2)
oy = section_header(C2X, OHY, C2W, "ORAL HYPOGLYCEMIC AGENTS", "π", GREEN)
oha = [
("A. METFORMIN", "1st line T2DM","AMPK β βhepatic gluconeogenesis","No hypoglycemia, βweight, cardioprotective","Lactic acidosis (eGFR<30,contrast,alcohol)", GOLD),
("B. SULFONYLUREAS", "2nd line","Block K-ATP on Ξ²-cellsβinsulin release","Rapid βsugar","Hypoglycemia, weightβ; Glyburide UNSAFE in renal Fx", YELLOW),
("C. MEGLITINIDES", "Postprandial","Block K-ATP (shorter)","Flexible dosing","Hypoglycemia; don't combine with SU", ORANGE),
("D. TZDs (Glitazones)","Insulin sensitizer","PPAR-Ξ³ agonist","βinsulin resistance","Heart failure, fractures, bladder Ca (Pioglitazone)", RED),
("E. DPP-4 INHIBITORS","T2DM + renal","βGLP-1/GIP, glucose-dependent","Weight neutral, no hypoglycemia","Pancreatitis (rare); Linagliptin = no dose adj.", CYAN),
("F. GLP-1 AGONISTS", "T2DM + CVD","βInsulin, βglucagon, gastric emptying","βWeight, cardioprotective (LIRA/SEMA)","Nausea, pancreatitis (rare)", GREEN),
("G. SGLT-2 INHIBITORS","T2DM + CKD/HF","Block glucose reabsorption in PCT","βCV events, nephroprotective","UTI/genital infxn; Euglycemic DKA; amputation (Cana)", BLUE),
("H. Ξ±-GLUCOSIDASE INH.","Post-meal Ξ","Delay CHO absorption in gut","Post-meal glucose control","Flatulence, diarrhea (GI side effects)", PURPLE),
]
for i,(name,use,mech,adv,se,col) in enumerate(oha):
ry = oy+i*80
bg = (18,22,28) if i%2==0 else (22,18,28)
rect(C2X+4, ry, C2W-8, 76, bg, radius=8)
# Color bar left
draw.rectangle([C2X+4, ry, C2X+10, ry+76], fill=col)
txt(name, C2X+18, ry+4, F_NANO, fill=col)
txt(f"Use: {use}", C2X+18, ry+26, F_NANO, fill=GRAY)
txt(f"MOA: {mech}", C2X+18, ry+46, F_NANO, fill=OFFWHITE)
txt(f"β {se}", C2X+480, ry+4, F_NANO, fill=RED)
txt(f"β {adv}", C2X+480, ry+26, F_NANO, fill=GREEN)
# ββ HbA1c TARGETS ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TGY = OHY+690
rect(C2X, TGY, C2W, 155, PANEL, radius=16, outline=GOLD, outline_w=2)
ty = section_header(C2X, TGY, C2W, "GLYCEMIC TARGETS", "π―", GOLD)
targets = [
("HbA1c General", "<7%", GOLD),
("Fasting Glucose", "80-130 mg/dL", GREEN),
("Post-meal Glucose", "<180 mg/dL", ORANGE),
("BP Target", "<130/80 mmHg", BLUE),
("LDL Target", "<100 (<70 high risk)", RED),
]
for i,(tname,tval,tcol) in enumerate(targets):
tx = C2X + 20 + (i%3)*400
tyy = ty + 10 + (i//3)*55
rect(tx, tyy, 360, 48, (20,20,32), radius=8, outline=tcol, outline_w=1)
txt(f"{tname}: ", tx+10, tyy+8, F_NANO, fill=GRAY)
txt(tval, tx+10, tyy+26, F_SMALL_B, fill=tcol)
# ββ NEET PG ASKABLE POINTS βββββββββββββββββββββββββββββββββββββββββββββββββββ
APY = TGY+165
rect(C2X, APY, C2W, 345, PANEL, radius=16, outline=YELLOW, outline_w=2)
ay = section_header(C2X, APY, C2W, "NEET PG ASKABLE POINTS β", "β", YELLOW)
askable = [
("β 1st line T2DM", "METFORMIN", GOLD),
("β DOC in Pregnancy", "INSULIN (+ Metformin/Glib ok)", GREEN),
("β DOC renal failure", "LINAGLIPTIN (no dose adj.)", CYAN),
("β Causes euglycemic DKA","SGLT-2 INHIBITORS", RED),
("β Pathognomonic renal", "KIMMELSTIEL-WILSON NODULE", YELLOW),
("β Gold std DM monitor", "HbA1c (3-month average)", GOLD),
("β DCCT Trial", "Tight control βretinopathy 76%", BLUE),
("β Cardioprotective DOC", "EMPAGLIFLOZIN / LIRAGLUTIDE", GREEN),
]
for i,(q,a,col) in enumerate(askable):
ry = ay+4+i*38
bg = (25,25,20) if i%2==0 else PANEL2
rect(C2X+4, ry, C2W-8, 34, bg, radius=6)
txt(q, C2X+10, ry+6, F_NANO, fill=col)
txt(f"β {a}", C2X+420, ry+6, F_SMALL_B, fill=WHITE)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# COLUMN 3 β COMPLICATIONS + ALGORITHMS + PEARLS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# ββ ACUTE COMPLICATIONS: DKA vs HHS ββββββββββββββββββββββββββββββββββββββββββ
rect(C3X, TOP, C3W, 310, PANEL, radius=16, outline=RED, outline_w=2)
cy3 = section_header(C3X, TOP, C3W, "ACUTE COMPLICATIONS: DKA vs HHS", "π¨", RED)
comp_h = ["Feature","DKA","HHS (HONK)"]
comp_xs = [C3X+10, C3X+380, C3X+760]
for h,cx in zip(comp_h,comp_xs):
txt(h, cx, cy3+2, F_SMALL_B, fill=GOLD)
comp_rows = [
("DM Type", "Mainly T1DM", "Mainly T2DM"),
("Glucose", "250β600 mg/dL", ">600 mg/dL β "),
("pH", "<7.3 (acidosis)", "Normal / β mild"),
("Ketones", "+++ (strong)", "Absent / trace"),
("Osmolality", "Mildly elevated", ">320 mOsm/kg β "),
("Mortality", "1β5%", "15β20% (higher!)"),
("Key Treatment", "Fluids+Insulin+K+", "Aggressive fluids"),
]
for ri,row in enumerate(comp_rows):
ry = cy3+36+ri*32
bg = (30,10,10) if ri%2==0 else (22,10,10)
rect(C3X+4, ry-2, C3W-8, 30, bg, radius=4)
txt(row[0], comp_xs[0], ry+2, F_NANO, fill=GRAY)
txt(row[1], comp_xs[1], ry+2, F_NANO, fill=OFFWHITE)
clr = RED if "β " in row[2] else GREEN if "Normal" in row[2] else OFFWHITE
txt(row[2], comp_xs[2], ry+2, F_NANO, fill=clr)
# DKA trigger note
rect(C3X+4, cy3+262, C3W-8, 32, (40,0,0), radius=6)
txt("β‘ Most common precipitant: INFECTION | Precipitants: Missed insulin, MI, Surgery", C3X+12, cy3+270, F_NANO, fill=RED)
# ββ CHRONIC COMPLICATIONS ββββββββββββββββββββββββββββββββββββββββββββββββββββ
CCY = TOP+320
rect(C3X, CCY, C3W, 330, PANEL, radius=16, outline=ORANGE, outline_w=2)
ccy = section_header(C3X, CCY, C3W, "CHRONIC COMPLICATIONS", "π«", ORANGE)
# Microvascular section
rect(C3X+8, ccy+4, C3W-16, 36, (30,20,0), radius=6, outline=ORANGE, outline_w=1)
txt("MICROVASCULAR (Hyperglycemia-driven β tight control helps!)", C3X+18, ccy+12, F_NANO, fill=ORANGE)
micro = [
("RETINOPATHY", "Microaneurysmsβexudatesβcotton woolβnew vessels (proliferative)", "Laser photocoag / anti-VEGF", RED),
("NEPHROPATHY", "Kimmelstiel-Wilson nodules; microalbuminuriaβproteinuriaβESRD", "ACEi/ARB + SGLT-2i", BLUE),
("NEUROPATHY", "Glove-stocking sensory loss; autonomic: gastroparesis, ED", "Pregabalin, TCAs, Duloxetine", GREEN),
]
for i,(name,desc,tx,col) in enumerate(micro):
ry = ccy+46+i*64
rect(C3X+8, ry, C3W-16, 60, PANEL2, radius=8)
draw.rectangle([C3X+8, ry, C3X+14, ry+60], fill=col)
txt(name, C3X+22, ry+4, F_SMALL_B, fill=col)
txt(desc, C3X+22, ry+26, F_NANO, fill=OFFWHITE)
txt(f"Rx: {tx}", C3X+22, ry+44, F_NANO, fill=GREEN)
# Macrovascular
rect(C3X+8, ccy+240, C3W-16, 30, (30,0,30), radius=6, outline=PURPLE, outline_w=1)
txt("MACROVASCULAR: CAD | Stroke | Peripheral Arterial Disease | Diabetic Foot", C3X+18, ccy+248, F_NANO, fill=PURPLE)
rect(C3X+4, ccy+278, C3W-8, 34, (0,20,40), radius=6)
txt("π‘ Annual foot exam + ophthalmology + microalbuminuria screening mandatory!", C3X+14, ccy+288, F_NANO, fill=CYAN)
# ββ DIAGNOSTIC ALGORITHM βββββββββββββββββββββββββββββββββββββββββββββββββββββ
DAY = CCY+340
rect(C3X, DAY, C3W, 310, PANEL, radius=16, outline=TEAL, outline_w=2)
day2 = section_header(C3X, DAY, C3W, "DIAGNOSTIC ALGORITHM", "π", TEAL)
def flow_box(x, y, w, h, text, bg, fg=WHITE, fnt=None, outline=None):
fnt = fnt or F_NANO
rect(x, y, w, h, bg, radius=10, outline=outline or bg)
bb = fnt.getbbox(text)
tw = bb[2]-bb[0]
draw.text((x+(w-tw)//2, y+(h-30)//2), text, font=fnt, fill=fg)
bw, bh, gx = 180, 46, C3X
# Row 1
flow_box(C3X+50, day2+4, 320, bh, "Symptoms / Risk Factors Present", (0,60,80), CYAN, F_NANO, TEAL)
arrow(C3X+210, day2+52, C3X+210, day2+74, TEAL, w=3)
# Row 2
flow_box(C3X+50, day2+76, 320, bh, "FBS / Random Glucose / HbA1c", (30,30,0), YELLOW, F_NANO, GOLD)
arrow(C3X+210, day2+124, C3X+210, day2+144, TEAL, w=3)
# Branch
flow_box(C3X+50, day2+146, 140, bh, "Abnormal Γ2\nβ DIABETES", RED_SOFT, WHITE, F_NANO)
flow_box(C3X+210, day2+146, 160, bh, "Borderline\nβ PRE-DM", (50,30,0), ORANGE, F_NANO)
flow_box(C3X+390, day2+146, 140, bh, "Normal\nβ Monitor", GREEN_DIM, WHITE, F_NANO)
arrow(C3X+120, day2+194, C3X+120, day2+216, RED, w=2)
flow_box(C3X+50, day2+218, 140, bh, "Classify T1 / T2\nStart Rx", (50,0,50), PURPLE, F_NANO)
# OGTT note
flow_box(C3X+660, day2+4, C3W-670, 120,
"OGTT: Reserved for\nsuspected DM with\nnormal FBS", PANEL2, GRAY, F_NANO, LGRAY)
txt("π‘ 2 separate tests\n needed to confirm", C3X+670, day2+130, F_NANO, fill=GRAY)
# ββ MANAGEMENT ALGORITHM βββββββββββββββββββββββββββββββββββββββββββββββββββββ
MAY = DAY+320
rect(C3X, MAY, C3W, 350, PANEL, radius=16, outline=GREEN, outline_w=2)
may2 = section_header(C3X, MAY, C3W, "MANAGEMENT ALGORITHM", "βοΈ", GREEN)
# Top box
flow_box(C3X+80, may2+4, 400, 46, "NEW T2DM DIAGNOSIS", (0,50,0), GREEN, F_SMALL_B, GREEN)
arrow(C3X+280, may2+52, C3X+280, may2+72, GREEN, w=3)
# Lifestyle
flow_box(C3X+80, may2+74, 400, 40, "Lifestyle: Diet + Exercise + Weight loss", (20,30,20), OFFWHITE, F_NANO, LGRAY)
arrow(C3X+280, may2+116, C3X+280, may2+136, GREEN, w=3)
# Metformin
flow_box(C3X+80, may2+138, 400, 40, "START METFORMIN (1st line)", (0,40,0), GOLD, F_NANO, GREEN)
arrow(C3X+280, may2+180, C3X+280, may2+200, GREEN, w=3)
# If not controlled - split
flow_box(C3X+10, may2+202, 240, 40, "HbA1c still >7%\nAdd 2nd drug", (30,0,0), RED, F_NANO)
txt("β", C3X+130, may2+244, F_HEAD, fill=RED)
flow_box(C3X+10, may2+266, 240, 60, "+SGLT-2i (if CKD/CVD)\n+GLP-1 (if obese)\n+SU (if cost issue)", (20,0,30), PURPLE, F_NANO)
flow_box(C3X+380, may2+202, 260, 40, "T1DM / DKA /\nHbA1c >10%", (0,0,40), BLUE, F_NANO)
txt("β", C3X+510, may2+244, F_HEAD, fill=BLUE)
flow_box(C3X+380, may2+266, 260, 60, "INSULIN\n(Basal-Bolus\nor Pump)", (0,0,50), CYAN, F_NANO)
# Emergency box
flow_box(C3X+680, may2+200, C3W-690, 128, "EMERGENCY\nDKA/HHS:\nIV Fluids (NS)\n+ Regular Insulin\n+ K+ correction", (40,0,0), RED, F_NANO, RED)
# ββ CLINICAL PEARLS ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
CPY = MAY+360
rect(C3X, CPY, C3W, 230, PANEL, radius=16, outline=GOLD, outline_w=2)
cpy2 = section_header(C3X, CPY, C3W, "CLINICAL PEARLS π", "π", GOLD)
pearls = [
"DM diagnosis requires 2 abnormal tests (unless symptomatic random β₯200 mg/dL)",
"Insulin half-life = 3β10 mins; liver+kidney degrade it",
"Counterregulatory hormones: Glucagon, Epi, Cortisol, GH β all raise glucose",
"Acanthosis nigricans = insulin resistance marker (T2DM / PCOD)",
"Diabetic nephropathy = most common cause of CKD/ESRD in developed world",
]
for i,p in enumerate(pearls):
ry = cpy2+4+i*40
draw.polygon([(C3X+10, ry+10), (C3X+22, ry+5), (C3X+22, ry+20)], fill=GOLD)
txt(p, C3X+28, ry+4, F_NANO, fill=OFFWHITE)
# ββ PYQ IMAGE ALERT ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PIY = CPY+240
rect(C3X, PIY, C3W, 175, (10,5,0), radius=16, outline=YELLOW, outline_w=3)
piy2 = section_header(C3X, PIY, C3W, "IMAGE-BASED PYQ ALERT πΈ", "πΈ", YELLOW)
pyqs = [
"π· Fundus photo β microaneurysms / cotton wool β DIABETIC RETINOPATHY",
"π· Renal biopsy β nodular glomerulosclerosis β KIMMELSTIEL-WILSON",
"π· ECG with prolonged PR + wide QRS in DKA setting β HYPERKALEMIA",
"π· Foot photo β painless ulcer, absent pulses β DIABETIC FOOT",
]
for i,p in enumerate(pyqs):
txt(p, C3X+10, piy2+4+i*36, F_NANO, fill=YELLOW if i==0 else OFFWHITE)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# FOOTER
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
draw.rectangle([0, H-56, W, H-6], fill=(14,14,20))
draw.line([(0, H-56), (W, H-56)], fill=GOLD, width=2)
txt_center("π©Ί NEET PG / INICET 2026 β’ Diabetes Mellitus β’ Ranker Edition β’ Day 1 of 46 β’ orris.care", W//2, H-48, F_NANO, fill=GRAY)
txt("β HIGH YIELD", C3X+C3W-180, H-48, F_NANO, fill=GOLD)
# βββ SAVE βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
out = "/tmp/workspace/neet-infographic/DM_NEET_PG_Ranker.png"
img.save(out, "PNG", dpi=(300,300))
print(f"Saved {W}x{H} at: {out}")
print(f"File size: {os.path.getsize(out)/1024/1024:.1f} MB")
cd /tmp/workspace/neet-infographic && python3 dm_infographic.py 2>&1
Make it
Premium 4K medical infographic poster for NEET PG exam, dark matte black background, gold accent borders, Apple keynote style UI design. Topic: DIABETES MELLITUS - Ranker Edition. Layout has these sections arranged in a beautiful 3-column grid: TOP HEADER: Large bold title "π©Ί DIABETES MELLITUS" in gold metallic font, subtitle "NEET PG Ranker Edition β’ Day 1 β’ High Yield" in gray. Gold top and bottom border lines. LEFT COLUMN (dark navy panels with gold/blue borders): 1. CLINICAL VIGNETTE panel: 45yr obese male, polyuria, polydipsia, HbA1c 8.9% - with a small medical illustration of a patient with symptom callout arrows. Blue border panel. 2. DIAGNOSIS CRITERIA table: color-coded rows - Normal/Pre-DM/Diabetes with FBS, OGTT, HbA1c values highlighted in green/orange/red. 3. TRAP POINTS panel: red border, 6 bullet points about HbA1c false values, metformin lactic acidosis, SGLT2 euglycemic DKA. 4. MNEMONICS panel: purple border with 3P mnemonic, MSG for weight loss drugs. 5. ONE-LINER REVISION: cyan border with 5 rapid fire facts. CENTER COLUMN (dark panels): 1. INSULIN TYPES table: 6 rows with ultra-rapid to ultra-long, onset/peak/duration, color-coded in cyan/blue/yellow/orange/green. Gold border. Insulin kinetics graph on right showing bell curves. 2. ORAL HYPOGLYCEMIC AGENTS: 8 drug classes (Metformin, Sulfonylureas, Meglitinides, TZDs, DPP4i, GLP1, SGLT2i, Alpha-GI) each in colored left-bar cards with MOA, advantages, side effects. 3. GLYCEMIC TARGETS: small colored badges showing HbA1c <7%, BP <130/80 etc. 4. NEET PG ASKABLE POINTS: yellow border, Q&A format pairs like "DOC T2DM β METFORMIN". RIGHT COLUMN (dark panels): 1. DKA vs HHS comparison table: red border, feature rows comparing glucose levels, pH, ketones, osmolality, mortality. 2. CHRONIC COMPLICATIONS: orange border - Retinopathy, Nephropathy, Neuropathy with Kimmelstiel-Wilson nodule callout. 3. DIAGNOSTIC ALGORITHM: teal flowchart with colored decision boxes and arrows. 4. MANAGEMENT ALGORITHM: green flowchart - New T2DM β Lifestyle β Metformin β Add 2nd drug. 5. CLINICAL PEARLS: gold diamond icons, 5 one-liners. 6. IMAGE PYQ ALERT: yellow border, fundus/biopsy image descriptions. FOOTER: "NEET PG / INICET 2026 β’ Diabetes Mellitus β’ Ranker Edition" in gray on dark bar. Style: Pure black matte #0A0A0E background, gold #D4AF37 accents, crisp white typography, color-coded sections, professional medical UI dashboard aesthetic, premium Apple-style spacing, suitable for 4K iPad study and printing. Ultra high detail, no clutter, every panel clearly labeled.
400, message: Got more than 4194304 bytes when reading: b'data: {"candidates": [{"content": {"role": "model","parts": [{"inlineData": {"mimeType": "image/png"...'.
We encountered an error while processing your request. Please try again or reach out to us for help.
Can u send the above topic in a pdf
mkdir -p /tmp/workspace/neet-pdf && ls /tmp/workspace/neet-pdf/
~/neet-pdf/create_dm_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm, cm
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, HRFlowable, KeepTogether)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT
from reportlab.platypus import PageBreak
from reportlab.lib.colors import HexColor, white, black
# βββ COLORS ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
BG_DARK = HexColor("#0A0A0E")
GOLD = HexColor("#D4AF37")
GOLD_SOFT = HexColor("#C9A227")
DARK_NAVY = HexColor("#12121A")
PANEL = HexColor("#16161F")
RED = HexColor("#DC3545")
GREEN = HexColor("#28A745")
BLUE = HexColor("#4A90D9")
CYAN = HexColor("#17A2B8")
ORANGE = HexColor("#FD7E14")
YELLOW = HexColor("#FFC107")
PURPLE = HexColor("#6F42C1")
TEAL = HexColor("#20C997")
GRAY = HexColor("#888899")
OFFWHITE = HexColor("#DCDCE8")
W, H = A4 # 210 x 297 mm
# βββ DOC βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc = SimpleDocTemplate(
"/tmp/workspace/neet-pdf/DM_NEET_PG_Ranker.pdf",
pagesize=A4,
leftMargin=12*mm, rightMargin=12*mm,
topMargin=10*mm, bottomMargin=10*mm,
title="Diabetes Mellitus - NEET PG Ranker Edition",
author="NEET PG Study Plan"
)
# βββ PAGE BACKGROUND + BORDER ββββββββββββββββββββββββββββββββββββββββββββββββ
def on_page(canvas, doc):
canvas.saveState()
# Dark background
canvas.setFillColor(BG_DARK)
canvas.rect(0, 0, W, H, fill=1, stroke=0)
# Gold border
canvas.setStrokeColor(GOLD)
canvas.setLineWidth(3)
canvas.rect(6, 6, W-12, H-12, fill=0, stroke=1)
# Top gold bar
canvas.setFillColor(GOLD)
canvas.rect(6, H-14, W-12, 5, fill=1, stroke=0)
# Bottom gold bar
canvas.rect(6, 9, W-12, 5, fill=1, stroke=0)
# Footer text
canvas.setFont("Helvetica", 7)
canvas.setFillColor(GRAY)
canvas.drawCentredString(W/2, 4*mm,
"NEET PG / INICET 2026 β’ Diabetes Mellitus β’ Ranker Edition β’ Day 1 of 46")
# Page number
canvas.setFillColor(GOLD)
canvas.drawRightString(W-15*mm, 4*mm, f"Pg {doc.page}")
canvas.restoreState()
# βββ STYLES ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
styles = getSampleStyleSheet()
def S(name, **kw):
"""Quick style factory."""
base = kw.pop("parent", "Normal")
s = ParagraphStyle(name, parent=styles[base], **kw)
return s
# Base styles
sNormal = S("sNormal", textColor=OFFWHITE, fontSize=8, leading=11, fontName="Helvetica")
sBold = S("sBold", textColor=OFFWHITE, fontSize=8, leading=11, fontName="Helvetica-Bold")
sSmall = S("sSmall", textColor=GRAY, fontSize=7, leading=9, fontName="Helvetica")
sSmallB = S("sSmallB", textColor=OFFWHITE, fontSize=7, leading=9, fontName="Helvetica-Bold")
sGold = S("sGold", textColor=GOLD, fontSize=8, leading=11, fontName="Helvetica-Bold")
sRed = S("sRed", textColor=RED, fontSize=8, leading=11, fontName="Helvetica-Bold")
sGreen = S("sGreen", textColor=GREEN, fontSize=8, leading=11, fontName="Helvetica-Bold")
sBlue = S("sBlue", textColor=BLUE, fontSize=8, leading=11, fontName="Helvetica-Bold")
sCyan = S("sCyan", textColor=CYAN, fontSize=8, leading=11, fontName="Helvetica-Bold")
sOrange = S("sOrange", textColor=ORANGE, fontSize=8, leading=11, fontName="Helvetica-Bold")
sYellow = S("sYellow", textColor=YELLOW, fontSize=8, leading=11, fontName="Helvetica-Bold")
sPurple = S("sPurple", textColor=PURPLE, fontSize=8, leading=11, fontName="Helvetica-Bold")
sTeal = S("sTeal", textColor=TEAL, fontSize=8, leading=11, fontName="Helvetica-Bold")
sTitle = S("sTitle", textColor=GOLD, fontSize=22, leading=26, fontName="Helvetica-Bold", alignment=TA_CENTER)
sSubtitle = S("sSubtitle", textColor=GRAY, fontSize=9, leading=12, fontName="Helvetica", alignment=TA_CENTER)
sSecHead = S("sSecHead", textColor=GOLD, fontSize=10, leading=13, fontName="Helvetica-Bold")
sBullet = S("sBullet", textColor=OFFWHITE, fontSize=7.5, leading=10, fontName="Helvetica",
leftIndent=10, firstLineIndent=-8)
def P(text, style=None):
style = style or sNormal
return Paragraph(text, style)
def HR(color=GOLD, thickness=1, w="100%"):
return HRFlowable(width=w, thickness=thickness, color=color, spaceAfter=3, spaceBefore=3)
def section_title(text, icon="", color=GOLD, bg=None):
bg = bg or DARK_NAVY
data = [[P(f"{icon} {text}", S("sh", textColor=color, fontSize=10, leading=13,
fontName="Helvetica-Bold"))]]
t = Table(data, colWidths=[W - 24*mm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0), (-1,-1), 5),
("LINEBELOW", (0,0), (-1,-1), 2, color),
("LINEABOVE", (0,0), (-1,-1), 1, color),
]))
return t
def two_col_table(data, col_widths, row_colors=None, header_bg=DARK_NAVY, header_fg=GOLD):
"""Generic styled table."""
style_cmds = [
("BACKGROUND", (0,0), (-1,0), header_bg),
("TEXTCOLOR", (0,0), (-1,0), header_fg),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 7.5),
("LEADING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING",(0,0), (-1,-1), 3),
("TEXTCOLOR", (0,1), (-1,-1), OFFWHITE),
("ROWBACKGROUNDS", (0,1), (-1,-1), [HexColor("#141420"), HexColor("#1A1A28")]),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#333344")),
("GRID", (0,0), (-1,-1), 0.3, HexColor("#222233")),
]
t = Table(data, colWidths=col_widths)
t.setStyle(TableStyle(style_cmds))
return t
# βββ STORY βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story = []
SP = lambda n=4: Spacer(1, n)
CW = W - 24*mm # content width
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# PAGE 1 HEADER
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(SP(8))
story.append(P("π©Ί DIABETES MELLITUS", sTitle))
story.append(SP(3))
story.append(P("NEET PG / INICET 2026 β’ Ranker Edition β’ Day 1 β’ High-Yield Mastery", sSubtitle))
story.append(HR(GOLD, 2))
story.append(SP(4))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 1 β CLINICAL VIGNETTE
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("CLINICAL VIGNETTE", "π", BLUE))
story.append(SP(3))
vignette_data = [[
P("<b>Patient:</b> 45-year-old male, obese (BMI 32), smoker, family H/o DM", sNormal),
P("<b>Symptoms:</b> 3 months polydipsia, polyuria, nocturia Γ4/night, blurred vision, tingling feet", sNormal),
],[
P("<b>Examination:</b> Acanthosis nigricans present, BP 148/92 mmHg", sNormal),
P("<b>Investigations:</b> FBS 186 mg/dL | HbA1c 8.9% | Urine: glucose ++", sYellow),
],[
P("β <b>Most likely diagnosis?</b>", sBlue),
P("β TYPE 2 DIABETES MELLITUS", S("ans", textColor=GREEN, fontSize=9, leading=12, fontName="Helvetica-Bold")),
],[
P("β <b>Next best step?</b>", sBlue),
P("β Confirm with repeat FBS or HbA1c (2 abnormal tests required)", sNormal),
]]
vt = Table(vignette_data, colWidths=[CW*0.5, CW*0.5])
vt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), HexColor("#0D1520")),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#1A2A40")),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0), (-1,-1), 5),
("BOX", (0,0), (-1,-1), 1.5, BLUE),
("ROWBACKGROUNDS", (0,0), (-1,-1), [HexColor("#0D1520"), HexColor("#111825")]),
]))
story.append(vt)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 2 β DIAGNOSIS CRITERIA
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("DIAGNOSIS CRITERIA (ADA)", "π¬", GOLD))
story.append(SP(3))
diag_data = [
[P("Test", sGold), P("Normal", sGold), P("Pre-Diabetes", sGold), P("DIABETES β", sGold)],
[P("Fasting Plasma Glucose", sBold), P("< 100 mg/dL", sGreen),
P("100β125 mg/dL", sOrange), P("β₯ 126 mg/dL", sRed)],
[P("2-hr OGTT (75g)", sBold), P("< 140 mg/dL", sGreen),
P("140β199 mg/dL", sOrange), P("β₯ 200 mg/dL", sRed)],
[P("HbA1c", sBold), P("< 5.7%", sGreen),
P("5.7β6.4%", sOrange), P("β₯ 6.5%", sRed)],
[P("Random glucose + symptoms", sBold), P("β", sSmall),
P("β", sSmall), P("β₯ 200 mg/dL", sRed)],
]
dt = Table(diag_data, colWidths=[CW*0.38, CW*0.18, CW*0.22, CW*0.22])
dt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), HexColor("#1A1500")),
("BACKGROUND", (0,1), (-1,-1), HexColor("#141420")),
("ROWBACKGROUNDS",(0,1), (-1,-1), [HexColor("#141420"), HexColor("#1A1A28")]),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 7.5),
("LEADING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1.5, GOLD),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#333344")),
("TEXTCOLOR", (1,1), (1,-1), GREEN),
("TEXTCOLOR", (2,1), (2,-1), ORANGE),
("TEXTCOLOR", (3,1), (3,-1), RED),
]))
story.append(dt)
story.append(SP(3))
# Pearl note
pearl_note = Table([[P("β‘ 2 separate abnormal tests required to confirm diagnosis (unless symptomatic random glucose β₯200 mg/dL)",
S("pearl", textColor=GREEN, fontSize=7.5, leading=10, fontName="Helvetica-Bold"))]], colWidths=[CW])
pearl_note.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1), HexColor("#001500")),
("BOX",(0,0),(-1,-1), 1, GREEN),
("LEFTPADDING",(0,0),(-1,-1),8), ("TOPPADDING",(0,0),(-1,-1),4),
("BOTTOMPADDING",(0,0),(-1,-1),4),
]))
story.append(pearl_note)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 3 β INSULIN TYPES
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("INSULIN TYPES", "π", GOLD))
story.append(SP(3))
ins_data = [
[P("Type", sGold), P("Brand Examples", sGold), P("Onset", sGold), P("Peak", sGold), P("Duration", sGold)],
[P("Ultra-Rapid / Inhaled", sCyan), P("Afrezza (inhaled)", sNormal), P("10β20 min", sCyan), P("~20 min", sNormal), P("~3 hrs", sNormal)],
[P("Rapid-Acting", sBlue), P("Lispro, Aspart, Glulisine", sNormal),P("15β30 min", sBlue), P("30β90 min", sNormal), P("3β5 hrs", sNormal)],
[P("Short-Acting", sYellow), P("Regular (Humulin R, Novolin R)", sNormal), P("30β60 min", sYellow), P("2β4 hrs", sNormal), P("6β8 hrs", sNormal)],
[P("Intermediate", sOrange), P("NPH (Humulin N, Novolin N)", sNormal),P("1β2 hrs", sOrange), P("4β10 hrs", sNormal), P("12β18 hrs", sNormal)],
[P("Long-Acting", sGreen), P("Glargine (Lantus), Detemir (Levemir)", sNormal), P("1β2 hrs", sGreen), P("NO PEAK β", sRed), P("20β24 hrs", sNormal)],
[P("Ultra Long-Acting", S("ulg", textColor=HexColor("#90EE90"), fontSize=8, fontName="Helvetica-Bold")),
P("Degludec (Tresiba)", sNormal), P("1β2 hrs", sNormal), P("No peak", sNormal), P("> 42 hrs", sNormal)],
]
it = Table(ins_data, colWidths=[CW*0.25, CW*0.28, CW*0.15, CW*0.16, CW*0.16])
it.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), HexColor("#1A1500")),
("ROWBACKGROUNDS",(0,1),(-1,-1),[HexColor("#141420"),HexColor("#1A1A28")]),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 7.5),
("LEADING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1.5, GOLD),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#333344")),
("TEXTCOLOR", (0,0), (-1,0), GOLD),
]))
story.append(it)
story.append(SP(3))
ins_pearl = Table([[P("π Rapid-acting: give 15 min before meal | Regular: give 30 min before meal | Glargine = NO peak (true basal) | Never give NPH IV",
S("ip", textColor=CYAN, fontSize=7.5, leading=10, fontName="Helvetica-Bold"))]], colWidths=[CW])
ins_pearl.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1), HexColor("#001520")),
("BOX",(0,0),(-1,-1),1,CYAN),
("LEFTPADDING",(0,0),(-1,-1),8),("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4),
]))
story.append(ins_pearl)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 4 β ORAL HYPOGLYCEMICS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("ORAL HYPOGLYCEMIC AGENTS", "π", GREEN))
story.append(SP(3))
oha_data = [
[P("Class / Drug", sGold), P("Mechanism (MOA)", sGold), P("Advantage", sGold), P("Side Effects β ", sGold)],
[P("METFORMIN\n(1st line T2DM)", S("mf", textColor=GOLD, fontSize=7.5, fontName="Helvetica-Bold")),
P("βAMPK β βhepatic gluconeogenesis, βperipheral uptake", sNormal),
P("No hypoglycemia, weight neutral/loss, cardioprotective", sGreen),
P("Lactic acidosis (eGFR<30, contrast, alcohol, liver failure)", sRed)],
[P("SULFONYLUREAS\nGlipizide, Glimepiride\nGlyburide", sYellow),
P("Block K-ATP channels on Ξ²-cells β depolarization β CaΒ²βΊ influx β insulin release", sNormal),
P("Rapid glucose β, cheap, widely used", sGreen),
P("Hypoglycemia, weight gain. Glyburide UNSAFE in renal failure", sRed)],
[P("MEGLITINIDES\nRepaglinide, Nateglinide", sOrange),
P("Same as SU but faster onset, shorter action. Postprandial regulators", sNormal),
P("Flexible dosing with irregular meals", sGreen),
P("Hypoglycemia. Don't combine with SU (overlapping MOA)", sRed)],
[P("TZDs (GLITAZONES)\nPioglitazone, Rosiglitazone", S("tzd", textColor=RED, fontSize=7.5, fontName="Helvetica-Bold")),
P("PPAR-Ξ³ agonist β βinsulin sensitivity in fat + muscle", sNormal),
P("βinsulin resistance, βTG (Pioglitazone)", sGreen),
P("Fluid retention, heart failure, fractures, bladder cancer (Pioglitazone)", sRed)],
[P("DPP-4 INHIBITORS\nSitagliptin, Linagliptin\nSaxagliptin", sCyan),
P("Inhibit DPP-4 β βGLP-1/GIP β glucose-dependent insulin release", sNormal),
P("Weight neutral, no hypoglycemia. Linagliptin = no dose adjustment in CKD", sGreen),
P("Pancreatitis (rare). Saxagliptin β βhospitalization for HF", sRed)],
[P("GLP-1 AGONISTS\nSemaglutide, Liraglutide\nExenatide, Dulaglutide", sGreen),
P("βInsulin, βglucagon, βgastric emptying, βsatiety", sNormal),
P("Weight loss, cardioprotective (LEADER/SUSTAIN trials)", sGreen),
P("Nausea, vomiting, pancreatitis. SC injection (except Semaglutide oral)", sRed)],
[P("SGLT-2 INHIBITORS\nEmpagliflozin, Dapagliflozin\nCanagliflozin", sBlue),
P("Block SGLT-2 in PCT β glycosuria β βblood glucose", sNormal),
P("Weight loss, βBP, cardioprotective + nephroprotective (EMPA-REG)", sGreen),
P("UTI/genital infections, EUGLYCEMIC DKA, amputation risk (Cana)", sRed)],
[P("Ξ±-GLUCOSIDASE INH.\nAcarbose, Miglitol", sPurple),
P("Delay CHO absorption in intestine β blunt post-meal glucose rise", sNormal),
P("Post-prandial glucose control, weight neutral", sGreen),
P("Flatulence, diarrhea (GI side effects - main limiting factor)", sRed)],
]
ohat = Table(oha_data, colWidths=[CW*0.2, CW*0.28, CW*0.25, CW*0.27])
ohat.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), HexColor("#001500")),
("ROWBACKGROUNDS",(0,1),(-1,-1),[HexColor("#141420"),HexColor("#1A1A28")]),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 7),
("LEADING", (0,0), (-1,-1), 9.5),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1.5, GREEN),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#333344")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TEXTCOLOR", (0,0), (-1,0), GOLD),
]))
story.append(ohat)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# PAGE 2
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(SP(8))
story.append(P("π©Ί DIABETES MELLITUS β Page 2", S("p2t", textColor=GOLD, fontSize=14, leading=18, fontName="Helvetica-Bold", alignment=TA_CENTER)))
story.append(HR(GOLD, 2))
story.append(SP(4))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 5 β DKA vs HHS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("ACUTE COMPLICATIONS: DKA vs HHS (HONK)", "π¨", RED))
story.append(SP(3))
dka_data = [
[P("Feature", sGold), P("DKA", sGold), P("HHS / HONK", sGold)],
[P("DM Type", sBold), P("Mainly Type 1 DM", sNormal), P("Mainly Type 2 DM", sNormal)],
[P("Blood Glucose", sBold), P("250β600 mg/dL", sNormal), P("> 600 mg/dL β", sRed)],
[P("pH", sBold), P("< 7.3 (metabolic acidosis)", sRed), P("Normal or mildly β", sGreen)],
[P("Ketones", sBold), P("Strongly positive +++", sRed), P("Absent or trace", sGreen)],
[P("Bicarbonate", sBold), P("< 15 mEq/L", sRed), P("Normal", sGreen)],
[P("Serum Osmolality", sBold),P("Mildly elevated", sNormal), P("> 320 mOsm/kg β", sRed)],
[P("Consciousness", sBold), P("Usually alert", sNormal), P("Stupor/Coma common β ", sRed)],
[P("Mortality", sBold), P("1β5%", sGreen), P("15β20% (much higher!)", sRed)],
[P("Key Treatment", sBold), P("IV Fluids (NS) + Regular Insulin IV + KβΊ correction", sNormal),
P("Aggressive IV Fluids (main), cautious insulin", sNormal)],
]
dkat = Table(dka_data, colWidths=[CW*0.28, CW*0.36, CW*0.36])
dkat.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), HexColor("#200000")),
("ROWBACKGROUNDS",(0,1),(-1,-1),[HexColor("#140000"),HexColor("#1A0000")]),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 7.5),
("LEADING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1.5, RED),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#330000")),
("TEXTCOLOR", (0,0), (-1,0), GOLD),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(dkat)
story.append(SP(3))
precip = Table([[P("β‘ Most common precipitant = INFECTION | Others: Missed insulin, MI, Surgery, New diagnosis, Steroids, Stress",
S("pr", textColor=RED, fontSize=7.5, leading=10, fontName="Helvetica-Bold"))]], colWidths=[CW])
precip.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1),HexColor("#1A0000")),
("BOX",(0,0),(-1,-1),1,RED),
("LEFTPADDING",(0,0),(-1,-1),8),("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4),
]))
story.append(precip)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 6 β CHRONIC COMPLICATIONS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("CHRONIC COMPLICATIONS", "π«", ORANGE))
story.append(SP(3))
comp_data = [
[P("Complication", sGold), P("Pathology / Features", sGold), P("Key Points", sGold), P("Treatment", sGold)],
[P("RETINOPATHY\n(Microvascular)", S("ret", textColor=RED, fontSize=7.5, fontName="Helvetica-Bold")),
P("Microaneurysms β Hard exudates β Cotton wool spots (IRMA) β New vessel formation (Proliferative)", sNormal),
P("5th leading cause of blindness worldwide. T1DM: screen 3β5 yrs after onset. T2DM: screen at diagnosis annually", sNormal),
P("Laser photocoagulation / Anti-VEGF (bevacizumab). Vitrectomy for vitreous haemorrhage", sGreen)],
[P("NEPHROPATHY\n(Microvascular)", S("nep", textColor=BLUE, fontSize=7.5, fontName="Helvetica-Bold")),
P("Kimmelstiel-Wilson NODULES (pathognomonic). Microalbuminuria (30β300 mg/day) β Macroalbuminuria β ESRD", sNormal),
P("Most common cause of ESRD in developed world. Annual microalbuminuria screening mandatory", sNormal),
P("ACEi/ARB (first-line for albuminuria), SGLT-2 inhibitors (nephroprotective)", sGreen)],
[P("NEUROPATHY\n(Microvascular)", S("neu", textColor=GREEN, fontSize=7.5, fontName="Helvetica-Bold")),
P("Distal symmetric polyneuropathy (glove-stocking). Autonomic: gastroparesis, orthostatic hypotension, ED, neurogenic bladder", sNormal),
P("Most common complication overall. Loss of protective sensation β Diabetic foot", sNormal),
P("Pregabalin, Duloxetine, TCAs (amitriptyline). Capsaicin cream. Good glycemic control", sGreen)],
[P("MACROVASCULAR\n(CVD)", S("cvd", textColor=PURPLE, fontSize=7.5, fontName="Helvetica-Bold")),
P("CAD (2β4Γ increased risk), Stroke, Peripheral Arterial Disease, Diabetic Foot (neuropathy + PAD + infection)", sNormal),
P("Diabetic foot: painless ulcer, absent pulses, callus. Charcot joint = neuropathic arthropathy", sNormal),
P("Statin, Aspirin, ACEi/ARB, BP control. Empagliflozin/Liraglutide for CV risk reduction", sGreen)],
]
compt = Table(comp_data, colWidths=[CW*0.18, CW*0.28, CW*0.28, CW*0.26])
compt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), HexColor("#1A0C00")),
("ROWBACKGROUNDS",(0,1),(-1,-1),[HexColor("#141420"),HexColor("#1A1A28")]),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 7),
("LEADING", (0,0), (-1,-1), 9.5),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1.5, ORANGE),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#333344")),
("TEXTCOLOR", (0,0), (-1,0), GOLD),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(compt)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 7 β GLYCEMIC TARGETS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("GLYCEMIC & METABOLIC TARGETS", "π―", GOLD))
story.append(SP(3))
tgt_data = [
[P("Parameter", sGold), P("Target", sGold), P("Notes", sGold)],
[P("HbA1c (General)", sBold), P("< 7.0%", sGreen), P("Reassess every 3 months")],
[P("HbA1c (Elderly/fragile)", sBold),P("< 8.0%", sOrange), P("Avoid tight control β hypoglycemia risk")],
[P("Fasting Plasma Glucose", sBold), P("80β130 mg/dL", sGreen), P("β")],
[P("Post-meal (2-hr) Glucose", sBold),P("< 180 mg/dL", sGreen), P("Check 2 hrs after first bite")],
[P("BP Target", sBold), P("< 130/80 mmHg", sBlue), P("ACEi/ARB preferred if albuminuria")],
[P("LDL Cholesterol", sBold), P("< 100 mg/dL", sYellow), P("< 70 mg/dL if high CV risk")],
]
tgtt = Table(tgt_data, colWidths=[CW*0.32, CW*0.22, CW*0.46])
tgtt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), HexColor("#1A1500")),
("ROWBACKGROUNDS",(0,1),(-1,-1),[HexColor("#141420"),HexColor("#1A1A28")]),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 7.5),
("LEADING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1.5, GOLD),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#333344")),
("TEXTCOLOR", (0,0), (-1,-1), OFFWHITE),
("TEXTCOLOR", (0,0), (-1,0), GOLD),
]))
story.append(tgtt)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 8 β NEET PG ASKABLE POINTS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("NEET PG ASKABLE POINTS β", "β", YELLOW))
story.append(SP(3))
ask_data = [
[P("β Question", sYellow), P("β Answer", sYellow)],
[P("1st line drug for T2DM", sNormal), P("METFORMIN", sGold)],
[P("DOC in pregnancy", sNormal), P("INSULIN (Metformin/Glibenclamide: acceptable in some guidelines)", sGreen)],
[P("DOC in renal failure (CKD)", sNormal), P("LINAGLIPTIN (no dose adjustment needed)", sCyan)],
[P("Drug causing euglycemic DKA", sNormal), P("SGLT-2 INHIBITORS (glucose may be normal!)", sRed)],
[P("Pathognomonic lesion of diabetic nephropathy", sNormal), P("KIMMELSTIEL-WILSON NODULE (nodular glomerulosclerosis)", sYellow)],
[P("Gold standard to monitor DM control", sNormal), P("HbA1c (reflects 3-month average glucose)", sGold)],
[P("DCCT Trial significance", sNormal), P("Tight glycemic control reduced retinopathy progression by 76%", sBlue)],
[P("Best drug for T2DM + Heart failure + CKD", sNormal), P("SGLT-2 INHIBITOR (Empagliflozin/Dapagliflozin)", sGreen)],
[P("Counterregulatory hormones in DKA", sNormal), P("Glucagon, Epinephrine, Cortisol, Growth Hormone (all βglucose)", sOrange)],
[P("Insulin half-life", sNormal), P("3β10 minutes | Degraded by liver and kidney", sNormal)],
[P("Acanthosis nigricans indicates", sNormal), P("INSULIN RESISTANCE (seen in T2DM, PCOD, obesity)", sNormal)],
]
askt = Table(ask_data, colWidths=[CW*0.4, CW*0.6])
askt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), HexColor("#1A1500")),
("ROWBACKGROUNDS",(0,1),(-1,-1),[HexColor("#141420"),HexColor("#1A1A28")]),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 7.5),
("LEADING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1.5, YELLOW),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#333322")),
("TEXTCOLOR", (0,0), (-1,0), YELLOW),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(askt)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# PAGE 3
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(SP(8))
story.append(P("π©Ί DIABETES MELLITUS β Page 3", S("p3t", textColor=GOLD, fontSize=14, leading=18, fontName="Helvetica-Bold", alignment=TA_CENTER)))
story.append(HR(GOLD, 2))
story.append(SP(4))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 9 β TRAP POINTS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("HIGH-YIELD TRAP POINTS β οΈ", "β οΈ", RED))
story.append(SP(3))
traps = [
("HbA1c is FALSELY LOW in:", "Hemolytic anemia, Sickle cell disease, G6PD deficiency (short RBC lifespan β less glycation)", RED),
("HbA1c is FALSELY HIGH in:", "Iron deficiency anemia, B12/folate deficiency, splenectomy (longer RBC lifespan β more glycation)", ORANGE),
("Metformin causes:", "LACTIC ACIDOSIS β NOT hypoglycemia. Contraindicated in eGFR <30, contrast dye use, liver failure, alcoholism", RED),
("SGLT-2 inhibitors cause:", "EUGLYCEMIC DKA β glucose may be normal/near-normal! Easy to miss. Think SGLT-2 in DKA with normal glucose", RED),
("Glyburide is unsafe in:", "Renal failure β prolonged action β severe hypoglycemia. Use Glipizide or Glimepiride instead", ORANGE),
("TZDs (Pioglitazone):", "Associated with bladder cancer (long-term use), heart failure, fractures. Avoid if any of these present", ORANGE),
("DKA can occur in T2DM:", "Not exclusive to T1DM! Infection, missed insulin, or stressor can precipitate DKA even in T2DM", YELLOW),
("Sulfonylurea + Meglitinide:", "NEVER combine β same mechanism (K-ATP block), additive hypoglycemia, no added benefit", RED),
]
trap_rows = [[P(f"β {q}", S(f"tq{i}", textColor=c, fontSize=7.5, fontName="Helvetica-Bold")),
P(ans, sNormal)] for i,(q,ans,c) in enumerate(traps)]
trap_rows.insert(0, [P("Trap", sGold), P("Explanation", sGold)])
trapt = Table(trap_rows, colWidths=[CW*0.32, CW*0.68])
trapt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), HexColor("#200000")),
("ROWBACKGROUNDS",(0,1),(-1,-1),[HexColor("#180000"),HexColor("#1A0505")]),
("FONTSIZE", (0,0), (-1,-1), 7.5),
("LEADING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1.5, RED),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#330000")),
("TEXTCOLOR", (0,0), (-1,0), GOLD),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(trapt)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 10 β MNEMONICS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("MNEMONICS π§ ", "π§ ", PURPLE))
story.append(SP(3))
mnemonics = [
("3 Ps of Diabetes", '"Poly-Uria β’ Poly-Dipsia β’ Poly-Phagia" (+Weight loss in T1)'),
("Weight GAIN drugs", '"SIT" β Sulfonylureas + Insulin + TZDs'),
("Weight LOSS drugs", '"MSG" β Metformin + SGLT-2 inhibitors + GLP-1 agonists'),
("Metformin CI", '"ALE" β Acute kidney injury + Liver failure + Excessive alcohol'),
("DKA precipitants", '"5 Is" β Infection, Insulin (missed), Infarction, Ischemia, Iatrogenic (steroids)'),
("SGLT-2 benefits", '"CUPS" β CVD protection + UTI risk + Pressure (BP) β + Sugar in urine'),
("TZD side effects", '"FLAP" β Fluid retention + Liver (monitor LFTs) + fracturA + Pioglitazone = bladder Ca'),
]
mn_data = [[P(t, S("mn", textColor=PURPLE, fontSize=7.5, fontName="Helvetica-Bold")),
P(b, sNormal)] for t,b in mnemonics]
mn_data.insert(0, [P("Mnemonic Topic", sGold), P("Remember As", sGold)])
mnt = Table(mn_data, colWidths=[CW*0.3, CW*0.7])
mnt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), HexColor("#100020")),
("ROWBACKGROUNDS",(0,1),(-1,-1),[HexColor("#0E0018"),HexColor("#130020")]),
("FONTSIZE", (0,0), (-1,-1), 7.5),
("LEADING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1.5, PURPLE),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#220033")),
("TEXTCOLOR", (0,0), (-1,0), GOLD),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(mnt)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 11 β CLINICAL PEARLS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("CLINICAL PEARLS π", "π", GOLD))
story.append(SP(3))
pearls = [
"DM diagnosis requires 2 abnormal tests on separate occasions β unless the patient is symptomatic with random glucose β₯200 mg/dL.",
"HbA1c is the gold standard for monitoring but cannot be used for diagnosis in haemolytic anaemia or sickle cell disease.",
"Counterregulatory hormones (glucagon, epinephrine, cortisol, GH) ALL raise blood glucose β released in stress/hypoglycemia.",
"Diabetic nephropathy is the most common cause of end-stage renal disease (ESRD) in developed countries.",
"DCCT trial: tight HbA1c control (<7%) reduced retinopathy by 76%, nephropathy by 50%, neuropathy by 60%.",
"Empagliflozin (EMPA-REG OUTCOME) and Liraglutide (LEADER trial) β first drugs proven to reduce cardiovascular mortality in T2DM.",
"Charcot joint (neuropathic arthropathy) = painless, destructive joint disease in DM neuropathy. X-ray: 'bag of bones' appearance.",
]
for i, pearl in enumerate(pearls):
p_row = Table([[P(f"π {pearl}", S(f"p{i}", textColor=OFFWHITE if i%2==0 else HexColor("#E8E8F0"),
fontSize=7.5, leading=10, fontName="Helvetica"))]], colWidths=[CW])
p_row.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1), HexColor("#1A1400") if i%2==0 else HexColor("#141200")),
("LEFTPADDING",(0,0),(-1,-1),10),("TOPPADDING",(0,0),(-1,-1),5),
("BOTTOMPADDING",(0,0),(-1,-1),5),("RIGHTPADDING",(0,0),(-1,-1),8),
("LINEBELOW",(0,0),(-1,-1),0.5, HexColor("#2A2200")),
("BOX",(0,0),(-1,-1),0.5,GOLD_SOFT) if i==0 else ("LINEAFTER",(0,0),(-1,-1),0,HexColor("#000")),
]))
story.append(p_row)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 12 β ONE-LINER RAPID REVISION
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("ONE-LINER RAPID REVISION β‘", "β‘", CYAN))
story.append(SP(3))
oneliners = [
("DOC T2DM", "Metformin"),
("DOC Pregnancy DM", "Insulin (Metformin acceptable in some guidelines)"),
("DOC CKD / Renal failure", "Linagliptin (no dose adjustment)"),
("Pathognomonic renal lesion", "Kimmelstiel-Wilson nodule"),
("HbA1c target", "< 7% (reflects last 3 months blood glucose)"),
("Cardioprotective DM drugs", "Empagliflozin, Liraglutide, Semaglutide"),
("Drug causing lactic acidosis", "Metformin (in hypoxia/renal failure)"),
("Drug causing euglycemic DKA", "SGLT-2 inhibitors"),
("DCCT trial", "Tight control β βretinopathy 76%"),
("Acanthosis nigricans", "= Insulin resistance marker"),
("Rapid-acting insulin before meal", "Give 15 minutes before eating"),
("Regular insulin before meal", "Give 30 minutes before eating"),
("Glargine peak", "NO peak β true flat basal insulin"),
("Kimmelstiel-Wilson = pathognomonic of", "Diabetic nephropathy"),
("EMPA-REG trial drug", "Empagliflozin β βCV mortality in T2DM"),
]
ol_data = [[P(f"β‘ {q}", S(f"olq{i}", textColor=CYAN, fontSize=7.5, fontName="Helvetica-Bold")),
P(f"β {a}", S(f"ola{i}", textColor=OFFWHITE, fontSize=7.5, fontName="Helvetica"))]
for i,(q,a) in enumerate(oneliners)]
ol_data.insert(0, [P("Question", sGold), P("Answer", sGold)])
olt = Table(ol_data, colWidths=[CW*0.42, CW*0.58])
olt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), HexColor("#001520")),
("ROWBACKGROUNDS",(0,1),(-1,-1),[HexColor("#001018"),HexColor("#001520")]),
("FONTSIZE", (0,0), (-1,-1), 7.5),
("LEADING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1.5, CYAN),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#001525")),
("TEXTCOLOR", (0,0), (-1,0), GOLD),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(olt)
story.append(SP(6))
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 13 β IMAGE PYQ ALERT
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_title("IMAGE-BASED PYQ ALERT πΈ", "πΈ", YELLOW))
story.append(SP(3))
pyq_data = [
[P("Image Shown", sYellow), P("What Examiner Expects You to Identify", sYellow)],
[P("π· Fundus photograph", sNormal),
P("Microaneurysms (earliest), hard exudates, cotton wool spots, new vessels (neovascularization) β Diagnose DIABETIC RETINOPATHY and stage it", sNormal)],
[P("π· Renal biopsy (PAS stain)", sNormal),
P("Nodular glomerulosclerosis = KIMMELSTIEL-WILSON NODULES β Pathognomonic of DIABETIC NEPHROPATHY", sGold)],
[P("π· ECG in DKA context", sNormal),
P("Peaked/tall T waves, widened QRS, sine wave pattern β HYPERKALEMIA complicating DKA. Always check KβΊ before giving insulin", sRed)],
[P("π· Foot photograph", sNormal),
P("Painless punched-out ulcer over pressure points, absent ankle/dorsalis pedis pulse, callus formation β DIABETIC FOOT (neuropathic + ischemic)", sNormal)],
[P("π· X-ray foot / ankle", sNormal),
P("Bone destruction, fractures, joint dislocation with preserved soft tissue β CHARCOT JOINT (neuropathic arthropathy) in DM neuropathy", sNormal)],
[P("π· CT/MRI brain in DM patient", sNormal),
P("Lacunar infarcts, multiple small vessel disease β DIABETIC MACROVASCULAR disease (cerebrovascular). Look for hypertension co-morbidity", sNormal)],
]
pyqt = Table(pyq_data, colWidths=[CW*0.25, CW*0.75])
pyqt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), HexColor("#1A1500")),
("ROWBACKGROUNDS",(0,1),(-1,-1),[HexColor("#141408"),HexColor("#1A1A10")]),
("FONTSIZE", (0,0), (-1,-1), 7.5),
("LEADING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1.5, YELLOW),
("LINEBELOW", (0,0), (-1,-1), 0.5, HexColor("#333300")),
("TEXTCOLOR", (0,0), (-1,0), GOLD),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(pyqt)
story.append(SP(8))
# End note
end_note = Table([[P("π End of Day 1 β’ Diabetes Mellitus β’ Next: Day 2 β HYPERTENSION β’ Keep going! πͺ",
S("end", textColor=GOLD, fontSize=9, leading=12, fontName="Helvetica-Bold", alignment=TA_CENTER))]], colWidths=[CW])
end_note.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1), HexColor("#1A1500")),
("BOX",(0,0),(-1,-1),2,GOLD),
("LEFTPADDING",(0,0),(-1,-1),10),("TOPPADDING",(0,0),(-1,-1),8),("BOTTOMPADDING",(0,0),(-1,-1),8),
("ALIGN",(0,0),(-1,-1),"CENTER"),
]))
story.append(end_note)
# βββ BUILD βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc.build(story, onFirstPage=on_page, onLaterPages=on_page)
print("PDF created: /tmp/workspace/neet-pdf/DM_NEET_PG_Ranker.pdf")
import os
size = os.path.getsize("/tmp/workspace/neet-pdf/DM_NEET_PG_Ranker.pdf")
print(f"File size: {size/1024:.1f} KB")
cd /tmp/workspace/neet-pdf && python3 create_dm_pdf.py 2>&1
DM NEET PG Ranker
PDF Document Β· PDF
| Page | Sections |
|---|---|
| Page 1 | Clinical Vignette + Diagnosis Criteria (ADA) + Insulin Types table + Oral Hypoglycemic Agents (all 8 classes) |
| Page 2 | DKA vs HHS comparison + Chronic Complications (Retinopathy/Nephropathy/Neuropathy/CVD) + Glycemic Targets + NEET PG Askable Points Q&A |
| Page 3 | Trap Points + Mnemonics + Clinical Pearls + One-liner Rapid Revision (15 facts) + Image-Based PYQ Alert |
i finsishe d only day 1 of diabetes sne dme the other days in different chats
"Send me high yield notes for Day X - [Topic]"
| Day | Date | Topic |
|---|---|---|
| β 1 | Jul 15 | |
| 2 | Jul 16 | Hypertension - JNC guidelines, drug classes, hypertensive emergencies |
| 3 | Jul 17 | Heart Failure - types, pathophysiology, drug management |
| 4 | Jul 18 | Autonomic Drugs - adrenergic, cholinergic agonists & antagonists |
| 5 | Jul 19 | Antihypertensives, Diuretics, Antiarrhythmics |
| 6 | Jul 20 | Antibiotics - mechanisms, resistance, drug of choice |
| 7 | Jul 21 | REVISION - Week 1 MCQs |
| Day | Date | Topic |
|---|---|---|
| 8 | Jul 22 | Thyroid - goiter, carcinoma, investigations, surgery |
| 9 | Jul 23 | Breast Cancer - staging, lymph nodes, treatment |
| 10 | Jul 24 | GI Surgery - appendix, intestinal obstruction, hernia |
| 11 | Jul 25 | Brachial Plexus - roots, trunks, cords, nerve injuries |
| 12 | Jul 26 | Head & Neck - cranial nerves, triangles, sinuses |
| 13 | Jul 27 | Lower Limb Nerves - perineum, clinical anatomy spots |
| 14 | Jul 28 | REVISION - Week 2 MCQs |
| Day | Date | Topic |
|---|---|---|
| 15 | Jul 29 | Neoplasia - oncogenes, tumor markers, carcinogenesis |
| 16 | Jul 30 | Blood Disorders - anemias, leukemias |
| 17 | Jul 31 | Inflammation & Cell Injury - wound healing, necrosis |
| 18 | Aug 1 | Bacteriology - gram stain, culture media, exotoxins |
| 19 | Aug 2 | Virology - hepatitis, herpes, HIV, dengue |
| 20 | Aug 3 | Parasitology - malaria, kala azar, filaria, tapeworms |
| 21 | Aug 4 | REVISION - Week 3 MCQs |
| Day | Date | Topic |
|---|---|---|
| 22 | Aug 5 | Normal Labor - stages, partogram, mechanism |
| 23 | Aug 6 | High-Risk Pregnancy - PIH, PPH, APH, placenta previa |
| 24 | Aug 7 | Gynecology - PCOD, endometriosis, fibroid, contraception |
| 25 | Aug 8 | Neonatal - Apgar, birth asphyxia, jaundice, NEC |
| 26 | Aug 9 | Developmental Milestones - vaccines, growth charts |
| 27 | Aug 10 | Pediatric Emergencies - febrile seizures, intussusception |
| 28 | Aug 11 | REVISION - Week 4 MCQs |
| Day | Date | Topic |
|---|---|---|
| 29 | Aug 12 | Epidemiology - study designs, bias, sensitivity/specificity |
| 30 | Aug 13 | National Health Programs - NTEP, malaria, leprosy, RMNCH |
| 31 | Aug 14 | Nutrition & Vital Statistics - vaccines, Bhore committee |
| 32 | Aug 15 | Vitamins & Enzymes - deficiencies, clinical features |
| 33 | Aug 16 | Metabolism - glycolysis, TCA, HMP shunt, fatty acids |
| 34 | Aug 17 | Cardiac Physiology - action potential, ECG, cardiac cycle |
| 35 | Aug 18 | REVISION - Week 5 MCQs |
| Day | Date | Topic |
|---|---|---|
| 36 | Aug 19 | Ear - otitis media, CSOM, cholesteatoma, hearing tests |
| 37 | Aug 20 | Nose & Throat - epistaxis, sinusitis, tonsillitis |
| 38 | Aug 21 | Glaucoma & Cataract - retinal detachment, diabetic retinopathy |
| 39 | Aug 22 | Cornea & Squint - uveitis, refraction errors |
| 40 | Aug 23 | Leprosy & Psoriasis - pemphigus, SLE skin findings |
| 41 | Aug 24 | Skin Infections - fungal, STIs, vitiligo, drug reactions |
| 42 | Aug 25 | REVISION - Week 6 MCQs |
| Day | Date | Topic |
|---|---|---|
| 43 | Aug 26 | Rapid Revision - Medicine + Pharmacology one-liners |
| 44 | Aug 27 | Rapid Revision - Surgery + Pathology + Micro one-liners |
| 45 | Aug 28 | Rapid Revision - OBG + Peds + PSM one-liners |
| 46 | Aug 29 | EXAM EVE - Light revision, mnemonics, sleep by 10 PM π |
"I'm preparing for NEET PG on Aug 30. Send me high-yield notes for Day 2 - Hypertension in the same format as Day 1 (clinical vignette, diagnosis, drugs, complications, trap points, mnemonics, one-liners, MCQs)"
Create a PDF for Day 2-7 (all of Week 1)
~/neet-pdf/week1_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import mm
from reportlab.lib.styles import ParagraphStyle
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, HRFlowable, PageBreak, KeepTogether)
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.lib.colors import HexColor
# ββ PALETTE ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
BG = HexColor("#0A0A0E")
GOLD = HexColor("#D4AF37")
GOLD_S = HexColor("#C9A227")
DNAV = HexColor("#12121A")
PANEL = HexColor("#16161F")
RED = HexColor("#DC3545")
GREEN = HexColor("#28A745")
BLUE = HexColor("#4A90D9")
CYAN = HexColor("#17A2B8")
ORANGE = HexColor("#FD7E14")
YELLOW = HexColor("#FFC107")
PURPLE = HexColor("#6F42C1")
TEAL = HexColor("#20C997")
GRAY = HexColor("#888899")
OW = HexColor("#DCDCE8")
R10 = HexColor("#140000"); R20 = HexColor("#1A0000")
G10 = HexColor("#001400"); G20 = HexColor("#001A00")
B10 = HexColor("#000E1A"); B20 = HexColor("#001020")
P10 = HexColor("#0E0018"); P20 = HexColor("#130020")
D10 = HexColor("#141420"); D20 = HexColor("#1A1A28")
Y10 = HexColor("#1A1400"); Y20 = HexColor("#141200")
T10 = HexColor("#001414"); T20 = HexColor("#001A1A")
W, H = A4
CW = W - 24*mm
doc = SimpleDocTemplate(
"/tmp/workspace/neet-pdf/NEET_PG_Week1_Days2to7.pdf",
pagesize=A4,
leftMargin=12*mm, rightMargin=12*mm,
topMargin=10*mm, bottomMargin=12*mm,
title="NEET PG Week 1 β Days 2-7 Ranker Notes",
author="NEET PG Study Plan"
)
def on_page(canvas, doc):
canvas.saveState()
canvas.setFillColor(BG)
canvas.rect(0,0,W,H,fill=1,stroke=0)
canvas.setStrokeColor(GOLD); canvas.setLineWidth(3)
canvas.rect(5,5,W-10,H-10,fill=0,stroke=1)
canvas.setFillColor(GOLD)
canvas.rect(5,H-13,W-10,5,fill=1,stroke=0)
canvas.rect(5,8,W-10,5,fill=1,stroke=0)
canvas.setFont("Helvetica",7); canvas.setFillColor(GRAY)
canvas.drawCentredString(W/2,4*mm,"NEET PG / INICET 2026 β’ Week 1 Ranker Notes β’ Days 2β7 β’ Medicine & Pharmacology")
canvas.setFillColor(GOLD)
canvas.drawRightString(W-15*mm,4*mm,f"Pg {doc.page}")
canvas.restoreState()
def S(name,**kw):
return ParagraphStyle(name,**kw)
sN = S("N", fontName="Helvetica", fontSize=7.5,leading=10,textColor=OW)
sB = S("B", fontName="Helvetica-Bold", fontSize=7.5,leading=10,textColor=OW)
sSm = S("Sm", fontName="Helvetica", fontSize=7, leading=9, textColor=GRAY)
sG = S("G", fontName="Helvetica-Bold", fontSize=7.5,leading=10,textColor=GOLD)
sR = S("R", fontName="Helvetica-Bold", fontSize=7.5,leading=10,textColor=RED)
sGr = S("Gr", fontName="Helvetica-Bold", fontSize=7.5,leading=10,textColor=GREEN)
sBl = S("Bl", fontName="Helvetica-Bold", fontSize=7.5,leading=10,textColor=BLUE)
sCy = S("Cy", fontName="Helvetica-Bold", fontSize=7.5,leading=10,textColor=CYAN)
sOr = S("Or", fontName="Helvetica-Bold", fontSize=7.5,leading=10,textColor=ORANGE)
sYe = S("Ye", fontName="Helvetica-Bold", fontSize=7.5,leading=10,textColor=YELLOW)
sPu = S("Pu", fontName="Helvetica-Bold", fontSize=7.5,leading=10,textColor=PURPLE)
sTe = S("Te", fontName="Helvetica-Bold", fontSize=7.5,leading=10,textColor=TEAL)
def P(t,s=None): from reportlab.platypus import Paragraph; return Paragraph(t,s or sN)
def SP(n=4): return Spacer(1,n)
def HR(c=GOLD,t=1): return HRFlowable(width="100%",thickness=t,color=c,spaceAfter=2,spaceBefore=2)
def sec(title, icon, color, bg=None):
bg = bg or HexColor("#12121A")
st = S(f"sh{title[:4]}", fontName="Helvetica-Bold", fontSize=10, leading=13, textColor=color)
t = Table([[P(f"{icon} {title}", st)]], colWidths=[CW])
t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1),bg),
("LEFTPADDING",(0,0),(-1,-1),8),("RIGHTPADDING",(0,0),(-1,-1),8),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LINEBELOW",(0,0),(-1,-1),2,color),("LINEABOVE",(0,0),(-1,-1),1,color),
]))
return t
def tbl(data, widths, box=GOLD, bg1=D10, bg2=D20, hdr_bg=Y10, hdr_fg=GOLD):
style = [
("BACKGROUND",(0,0),(-1,0),hdr_bg),
("FONTNAME",(0,0),(-1,0),"Helvetica-Bold"),
("TEXTCOLOR",(0,0),(-1,0),hdr_fg),
("ROWBACKGROUNDS",(0,1),(-1,-1),[bg1,bg2]),
("FONTSIZE",(0,0),(-1,-1),7),
("LEADING",(0,0),(-1,-1),9.5),
("LEFTPADDING",(0,0),(-1,-1),5),("RIGHTPADDING",(0,0),(-1,-1),5),
("TOPPADDING",(0,0),(-1,-1),3),("BOTTOMPADDING",(0,0),(-1,-1),3),
("BOX",(0,0),(-1,-1),1.5,box),
("LINEBELOW",(0,0),(-1,-1),0.4,HexColor("#2A2A3A")),
("VALIGN",(0,0),(-1,-1),"TOP"),
]
t = Table(data, colWidths=widths)
t.setStyle(TableStyle(style))
return t
def note(text, fg, bg):
t = Table([[P(text, S(f"nt{text[:3]}", fontName="Helvetica-Bold", fontSize=7.5, leading=10, textColor=fg))]], colWidths=[CW])
t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1),bg),("BOX",(0,0),(-1,-1),1,fg),
("LEFTPADDING",(0,0),(-1,-1),8),("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4),
]))
return t
def day_header(day, date, subject, topic, color):
st_d = S(f"dh{day}", fontName="Helvetica-Bold", fontSize=16, leading=20, textColor=color)
st_s = S(f"dhs{day}", fontName="Helvetica-Bold", fontSize=11, leading=14, textColor=GOLD)
st_t = S(f"dht{day}", fontName="Helvetica", fontSize=9, leading=12, textColor=GRAY)
st_dt = S(f"dhd{day}", fontName="Helvetica", fontSize=8, leading=11, textColor=GRAY)
data = [[P(f"DAY {day}", st_d), P(f"{subject}", st_s), P(f"{topic}", st_t), P(date, st_dt)]]
t = Table(data, colWidths=[CW*0.12, CW*0.22, CW*0.52, CW*0.14])
t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1),HexColor("#0D0D18")),
("BOX",(0,0),(-1,-1),2.5,color),
("LEFTPADDING",(0,0),(-1,-1),10),("RIGHTPADDING",(0,0),(-1,-1),8),
("TOPPADDING",(0,0),(-1,-1),8),("BOTTOMPADDING",(0,0),(-1,-1),8),
("VALIGN",(0,0),(-1,-1),"MIDDLE"),
("LINEBEFORE",(0,0),(0,-1),6,color),
]))
return t
story = []
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# COVER PAGE
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [SP(30)]
cov_title = S("ct", fontName="Helvetica-Bold", fontSize=26, leading=32, textColor=GOLD, alignment=TA_CENTER)
cov_sub = S("cs", fontName="Helvetica-Bold", fontSize=13, leading=17, textColor=OW, alignment=TA_CENTER)
cov_sm = S("cm", fontName="Helvetica", fontSize=9, leading=13, textColor=GRAY, alignment=TA_CENTER)
story += [
P("NEET PG 2026", cov_title), SP(6),
P("WEEK 1 β RANKER NOTES", S("w1", fontName="Helvetica-Bold", fontSize=20, leading=24, textColor=OW, alignment=TA_CENTER)), SP(4),
HR(GOLD,2), SP(8),
]
cover_data = [
[P("π
Days Covered", sG), P("Day 2 β Day 7 (July 16β21, 2026)", sN)],
[P("π Subjects", sG), P("Medicine β’ Pharmacology", sN)],
[P("π― Target", sG), P("400+ marks | NEET PG August 30, 2026", sN)],
[P("π Day 2", sBl), P("Hypertension β Classification, JNC guidelines, drug management, emergencies", sN)],
[P("π Day 3", S("d3c",fontName="Helvetica-Bold",fontSize=7.5,leading=10,textColor=CYAN)),
P("Heart Failure β HFrEF vs HFpEF, staging, GDMT drugs, acute management", sN)],
[P("π Day 4", sOr), P("Autonomic Pharmacology β Adrenergic & Cholinergic receptors, agonists, antagonists", sN)],
[P("π Day 5", sPu), P("Antihypertensives, Diuretics, Antiarrhythmics β mechanisms, clinical use", sN)],
[P("π Day 6", sYe), P("Antibiotics β classes, mechanisms, resistance, drug of choice for infections", sN)],
[P("π Day 7", sGr), P("REVISION DAY β Week 1 high-yield MCQ review & rapid recall", sN)],
]
ct = Table(cover_data, colWidths=[CW*0.22, CW*0.78])
ct.setStyle(TableStyle([
("ROWBACKGROUNDS",(0,0),(-1,-1),[HexColor("#0D0D18"),HexColor("#121220")]),
("BOX",(0,0),(-1,-1),2,GOLD),("LINEBELOW",(0,0),(-1,-1),0.5,HexColor("#222233")),
("LEFTPADDING",(0,0),(-1,-1),10),("TOPPADDING",(0,0),(-1,-1),6),("BOTTOMPADDING",(0,0),(-1,-1),6),
("RIGHTPADDING",(0,0),(-1,-1),8),("VALIGN",(0,0),(-1,-1),"MIDDLE"),
]))
story += [ct, SP(12), HR(GOLD,2), SP(6)]
story += [P("Study tip: Read each day's notes β solve 20 PYQ MCQs β review trap points before sleeping π",
S("tip", fontName="Helvetica-Bold", fontSize=9, leading=12, textColor=GREEN, alignment=TA_CENTER)), SP(4)]
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# DAY 2 β HYPERTENSION
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [SP(6), day_header(2,"Jul 16","MEDICINE","Hypertension β Classification, Diagnosis, Management & Emergencies", BLUE), SP(5)]
story.append(sec("CLASSIFICATION (JNC 8 / ACC/AHA 2017)", "π", BLUE))
story.append(SP(3))
ht_cls = tbl([
[P("Category",sG), P("Systolic (mmHg)",sG), P("Diastolic (mmHg)",sG), P("Action",sG)],
[P("Normal",sGr), P("< 120",sGr), P("< 80",sGr), P("Reassure, lifestyle",sN)],
[P("Elevated (Pre-HTN)",sOr), P("120β129",sOr), P("< 80",sN), P("Lifestyle modification",sN)],
[P("Stage 1 HTN",sYe), P("130β139",sYe), P("80β89",sYe), P("Lifestyle Β± 1 drug",sN)],
[P("Stage 2 HTN",sR), P("β₯ 140",sR), P("β₯ 90",sR), P("2 drugs combination",sN)],
[P("Hypertensive Crisis",sR), P("β₯ 180",sR), P("β₯ 120",sR), P("Emergency or Urgency",sR)],
],
[CW*0.26,CW*0.22,CW*0.22,CW*0.30], box=BLUE, bg1=B10, bg2=B20, hdr_bg=HexColor("#001020"))
story += [ht_cls, SP(3),
note("β‘ JNC 7: Stage 1 = 140β159/90β99 | Stage 2 = β₯160/100 | ACC/AHA 2017 lowered threshold to 130/80 | Know BOTH for NEET PG!", BLUE, B10),
SP(5)]
story.append(sec("HYPERTENSIVE EMERGENCY vs URGENCY", "π¨", RED))
story.append(SP(3))
emg = tbl([
[P("Feature",sG), P("Emergency",sG), P("Urgency",sG)],
[P("BP",sB), P("β₯ 180/120 mmHg + end-organ damage",sR), P("β₯ 180/120 mmHg, NO organ damage",sOr)],
[P("End-organ damage",sB), P("YES β Brain, Heart, Kidney, Eyes",sR), P("NO",sGr)],
[P("Symptoms",sB), P("Chest pain, SOB, confusion, papilledema, oliguria",sN), P("Severe headache, usually asymptomatic",sN)],
[P("Treatment",sB), P("IV drugs: Nitroprusside, Labetalol, Nicardipine, Hydralazine",sGr), P("Oral drugs: Captopril, Labetalol, Clonidine",sGr)],
[P("BP reduction goal",sB), P("β by 25% in 1st hour, then to 160/100 over 2β6 hrs",sN), P("Gradually over 24β48 hours",sN)],
],
[CW*0.22,CW*0.39,CW*0.39], box=RED, bg1=R10, bg2=R20, hdr_bg=HexColor("#1A0000"))
story += [emg, SP(3),
note("β Nitroprusside = most potent IV vasodilator (risk: cyanide toxicity with prolonged use) | Labetalol IV = preferred in aortic dissection, eclampsia", RED, R10),
SP(5)]
story.append(sec("ANTIHYPERTENSIVE DRUGS β FIRST-LINE CHOICES", "π", GREEN))
story.append(SP(3))
htdrug = tbl([
[P("Class",sG), P("Examples",sG), P("MOA",sG), P("Special Indications",sG), P("Contraindications β ",sG)],
[P("ACE Inhibitors",sBl), P("Enalapril, Lisinopril, Ramipril",sN),
P("Block ACE β βAngII β βvasoconstriction, βaldosterone",sN),
P("DM nephropathy, HF, post-MI, CKD with proteinuria",sGr),
P("Pregnancy (teratogenic), bilateral RAS, hyperkalemia, angioedema",sR)],
[P("ARBs",sBl), P("Losartan, Valsartan, Telmisartan",sN),
P("Block AT1 receptor β same as ACEi without bradykinin",sN),
P("ACEi intolerance (no cough), DM nephropathy, HF",sGr),
P("Pregnancy, bilateral RAS. Never combine ACEi + ARB",sR)],
[P("CCBs (DHP)",sOr), P("Amlodipine, Nifedipine, Felodipine",sN),
P("Block L-type CaΒ²βΊ channels β vasodilation",sN),
P("Elderly, isolated systolic HTN, angina, Raynaud's",sGr),
P("Heart failure (short-acting nifedipine). Amlodipine safe in HF",sR)],
[P("CCBs (Non-DHP)",sPu), P("Diltiazem, Verapamil",sN),
P("Block CaΒ²βΊ in heart + vessels β βHR, βcontractility",sN),
P("SVT, AF with rapid rate control, angina",sGr),
P("Heart block, HF with systolic dysfunction, WPW",sR)],
[P("Thiazide Diuretics",sCy), P("Hydrochlorothiazide, Chlorthalidone, Indapamide",sN),
P("Block Na-Cl cotransporter in DCT β natriuresis",sN),
P("Elderly, isolated systolic HTN, osteoporosis (Chlorthalidone)",sGr),
P("Gout (βuric acid), hypokalemia, hyponatremia",sR)],
[P("Ξ²-Blockers",sYe), P("Metoprolol, Atenolol, Carvedilol, Bisoprolol",sN),
P("Block Ξ²1 (heart) β βHR, βCO. Carvedilol = Ξ±+Ξ² block",sN),
P("Post-MI, HF (carvedilol/bisoprolol), SVT, anxiety-related HTN",sGr),
P("Asthma/COPD, heart block, peripheral vascular disease",sR)],
[P("Ξ±1-Blockers",sTe), P("Prazosin, Doxazosin, Terazosin",sN),
P("Block Ξ±1 β βperipheral resistance β vasodilation",sN),
P("HTN + BPH (dual benefit), pheochromocytoma (Phenoxybenzamine)",sGr),
P("First-dose hypotension (syncope), reflex tachycardia",sR)],
],
[CW*0.14,CW*0.21,CW*0.22,CW*0.22,CW*0.21], box=GREEN, bg1=G10, bg2=G20, hdr_bg=HexColor("#001500"))
story += [htdrug, SP(5)]
story.append(sec("DRUG OF CHOICE β SPECIAL SITUATIONS", "β", YELLOW))
story.append(SP(3))
htdoc = tbl([
[P("Condition",sG), P("Drug of Choice",sG), P("Avoid",sG)],
[P("DM + HTN",sN), P("ACEi or ARB (nephroprotective)",sGr), P("Thiazides (worsen glucose), Ξ²-blockers (mask hypoglycemia)",sR)],
[P("HTN in Pregnancy",sN), P("Methyldopa (safest), Labetalol, Nifedipine",sGr), P("ACEi, ARBs (teratogenic), Thiazides",sR)],
[P("HTN + HF",sN), P("ACEi + Ξ²-blocker + Spironolactone + Loop diuretic",sGr), P("Verapamil, Diltiazem, Hydralazine alone",sR)],
[P("HTN + Angina",sN), P("Ξ²-blocker or CCB (Amlodipine)",sGr), P("Hydralazine (reflex tachycardia)",sR)],
[P("HTN + Gout",sN), P("Losartan (uricosuric effect)",sGr), P("Thiazides, Ξ²-blockers (βuric acid)",sR)],
[P("HTN + Asthma/COPD",sN), P("Amlodipine (CCB) or ACEi/ARB",sGr), P("Ξ²-blockers (bronchoconstriction)",sR)],
[P("Hypertensive Emergency",sN), P("IV Nitroprusside, IV Labetalol, IV Nicardipine",sGr), P("Sublingual nifedipine (abrupt BP drop β stroke)",sR)],
[P("Pheochromocytoma",sN), P("Phenoxybenzamine (Ξ±-block FIRST), then Ξ²-block",sGr), P("Ξ²-blocker ALONE (paradoxical HTN crisis!)",sR)],
[P("Isolated systolic HTN (elderly)",sN), P("Thiazide or long-acting DHP CCB (Amlodipine)",sGr), P("β",sN)],
],
[CW*0.3,CW*0.4,CW*0.3], box=YELLOW, bg1=Y10, bg2=Y20, hdr_bg=HexColor("#1A1400"))
story += [htdoc, SP(3),
note("β TRAP: In pheochromocytoma β give Ξ±-blocker FIRST, Ξ²-blocker second. Ξ² alone = hypertensive crisis (unopposed Ξ±). | Sublingual nifedipine = BANNED for HTN emergency", RED, R10),
SP(3)]
story.append(sec("MNEMONICS & ONE-LINERS", "π§ ", PURPLE))
story.append(SP(3))
mnemo_ht = tbl([
[P("Topic",sG), P("Mnemonic / Fact",sG)],
[P("1st line HTN (ACC/AHA 2017)",sB), P("'ACBT' β ACEi/ARB, CCB, Ξ²-blocker, Thiazide β all acceptable 1st line",sN)],
[P("ACEi side effects",sBl), P("'ACE' β Angioedema, Cough (dry), Elevated KβΊ (hyperkalemia)",sN)],
[P("Resistant HTN",sOr), P("BP uncontrolled on 3 drugs (including diuretic). Add Spironolactone as 4th",sN)],
[P("Malignant HTN",sR), P("Severe HTN + papilledema Β± renal failure. Fundus = flame hemorrhages, cotton wool spots",sN)],
[P("White coat HTN",sCy), P("High BP in clinic, normal at home. Confirm with 24-hr ABPM (ambulatory BP monitoring)",sN)],
[P("Secondary HTN causes",sYe), P("'CRAP' β Coarctation, Renal artery stenosis, Aldosteronism (Conn's), Pheochromocytoma",sN)],
],
[CW*0.28,CW*0.72], box=PURPLE, bg1=P10, bg2=P20, hdr_bg=HexColor("#100020"))
story += [mnemo_ht, SP(4)]
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# DAY 3 β HEART FAILURE
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [SP(6), day_header(3,"Jul 17","MEDICINE","Heart Failure β HFrEF vs HFpEF, Staging, Drugs, Acute Management", CYAN), SP(5)]
story.append(sec("CLASSIFICATION OF HEART FAILURE", "β€οΈ", CYAN))
story.append(SP(3))
hf_cls = tbl([
[P("Type",sG), P("LVEF",sG), P("Pathology",sG), P("Common Causes",sG)],
[P("HFrEF (Systolic HF)",sR), P("< 40%",sR), P("βContractility, dilated ventricle (eccentric hypertrophy)",sN),
P("IHD (most common), DCM, myocarditis, alcohol",sN)],
[P("HFmrEF (Mid-range)",sOr), P("40β49%",sOr), P("Intermediate phenotype",sN), P("Recovering HFrEF, ischemic",sN)],
[P("HFpEF (Diastolic HF)",sBl), P("β₯ 50%",sBl), P("βCompliance, stiff ventricle (concentric hypertrophy)",sN),
P("HTN (most common), DM, obesity, aging",sN)],
],
[CW*0.22,CW*0.10,CW*0.35,CW*0.33], box=CYAN, bg1=T10, bg2=T20, hdr_bg=HexColor("#001414"))
story += [hf_cls, SP(3),
note("β Most common cause of HFrEF = Ischemic Heart Disease | HFpEF = Hypertension | NEET PG loves LVEF cutoffs!", CYAN, T10),
SP(5)]
story.append(sec("NYHA FUNCTIONAL CLASSIFICATION", "π", GOLD))
story.append(SP(3))
nyha = tbl([
[P("Class",sG), P("Symptoms",sG), P("Activity Level",sG)],
[P("Class I",sGr), P("No symptoms, no limitation",sN), P("Normal physical activity β NO symptoms",sN)],
[P("Class II",sYe), P("Slight limitation",sN), P("Comfortable at rest; symptoms with MODERATE exertion",sN)],
[P("Class III",sOr), P("Marked limitation",sN), P("Comfortable at rest; symptoms with MINIMAL exertion",sN)],
[P("Class IV",sR), P("Symptoms at rest",sR), P("Unable to carry out ANY activity without discomfort",sR)],
],
[CW*0.12,CW*0.35,CW*0.53], box=GOLD, bg1=D10, bg2=D20, hdr_bg=Y10)
story += [nyha, SP(5)]
story.append(sec("ACC/AHA STAGING (AβD)", "π", ORANGE))
story.append(SP(3))
acc_stg = tbl([
[P("Stage",sG), P("Description",sG), P("Treatment",sG)],
[P("Stage A",sGr), P("At RISK β HTN, DM, CAD, family H/o CM. No structural disease",sN), P("Risk factor modification (control HTN, DM, lipids)",sN)],
[P("Stage B",sYe), P("Structural disease, NO symptoms (e.g., asymptomatic LV dysfunction)",sN), P("ACEi + Ξ²-blocker",sN)],
[P("Stage C",sOr), P("Structural disease + CURRENT or PRIOR symptoms",sN), P("GDMT: ACEi/ARB/ARNI + Ξ²-blocker + MRA + SGLT2i",sN)],
[P("Stage D",sR), P("Refractory HF despite optimal therapy (end-stage)",sR), P("Advanced Rx: LVAD, transplant, palliative care",sN)],
],
[CW*0.12,CW*0.45,CW*0.43], box=ORANGE, bg1=HexColor("#140800"), bg2=HexColor("#1A0F00"), hdr_bg=HexColor("#1A0C00"))
story += [acc_stg, SP(5)]
story.append(sec("GDMT β DRUGS PROVEN TO REDUCE MORTALITY IN HFrEF β", "π", GREEN))
story.append(SP(3))
gdmt = tbl([
[P("Drug Class",sG), P("Examples",sG), P("Benefit",sG), P("Key Points / Contraindications",sG)],
[P("ACE Inhibitors",sBl), P("Enalapril, Lisinopril, Ramipril",sN),
P("βMortality ~23%. 1st line. Reduce preload + afterload",sGr),
P("Start low, titrate up. Avoid if K>5.5 or Cr>3. Cause dry cough",sN)],
[P("ARBs",sBl), P("Losartan, Valsartan, Candesartan",sN),
P("Same benefit as ACEi; use if ACEi-intolerant (cough/angioedema)",sGr),
P("Never combine ACEi + ARB (dual RAAS blockade = harm)",sR)],
[P("ARNI",sGr), P("Sacubitril/Valsartan (ENTRESTO)",sN),
P("βMortality vs ACEi alone (PARADIGM-HF trial). Superior to ACEi!",sGr),
P("Replace ACEi (washout 36h before switching). Preferred in Stage C",sN)],
[P("Ξ²-Blockers",sYe), P("Carvedilol, Bisoprolol, Metoprolol succinate",sN),
P("βMortality ~34%. Start when STABLE, low dose, titrate slowly",sGr),
P("Only 3 Ξ²-blockers proven in HF: Carvedilol, Bisoprolol, Metoprolol XL. NOT atenolol",sR)],
[P("MRA (Aldosterone Antagonist)",sOr), P("Spironolactone, Eplerenone",sN),
P("βMortality in NYHA III/IV (RALES trial β Spironolactone)",sGr),
P("Risk: hyperkalemia (avoid if K>5 or eGFR<30)",sR)],
[P("SGLT-2 Inhibitors",sCy), P("Dapagliflozin, Empagliflozin",sN),
P("βHF hospitalization in both HFrEF AND HFpEF (DAPA-HF, EMPEROR trials)",sGr),
P("Newest addition to GDMT. Given regardless of DM status",sN)],
[P("Loop Diuretics",sPu), P("Furosemide, Torsemide, Bumetanide",sN),
P("Symptom relief (dyspnea, edema). Do NOT reduce mortality",sN),
P("Monitor KβΊ, Cr. Furosemide IV in acute decompensation",sN)],
[P("Ivabradine",sTe), P("Corlanor",sN),
P("βHR without affecting contractility. Add if HR >70 on max Ξ²-blocker + sinus rhythm",sGr),
P("Only for HFrEF in sinus rhythm with HR β₯70 on max Ξ²-blocker",sN)],
[P("Hydralazine + Nitrate",sR), P("Hydralazine + ISDN",sN),
P("Alternative if ACEi/ARB not tolerated; especially African-Americans (A-HeFT trial)",sGr),
P("Vasodilator combination. Used in renal failure when ACEi/ARB contraindicated",sN)],
],
[CW*0.17,CW*0.20,CW*0.31,CW*0.32], box=GREEN, bg1=G10, bg2=G20, hdr_bg=HexColor("#001500"))
story += [gdmt, SP(3),
note("β PILLAR of HFrEF: ACEi/ARNI + Ξ²-blocker (Carvedilol/Bisoprolol) + MRA + SGLT2i = 'Fantastic Four' | PARADIGM-HF: ARNI > ACEi | RALES: Spironolactone βmortality 30%", GREEN, G10),
SP(5)]
story.append(sec("ACUTE DECOMPENSATED HF β MANAGEMENT", "π¨", RED))
story.append(SP(3))
adhf = tbl([
[P("Step",sG), P("Action",sG), P("Drugs/Details",sG)],
[P("1. Position",sN), P("Sit up (high Fowler's), oxygen",sN), P("SpO2 target β₯95%",sN)],
[P("2. Diuresis",sN), P("IV Furosemide STAT",sN), P("40β80 mg IV; double oral dose if on chronic diuretic",sN)],
[P("3. Vasodilators",sN), P("IV Nitroglycerine or Nitroprusside",sN), P("Reduce preload/afterload. Avoid if SBP <90",sN)],
[P("4. Inotropes",sN), P("If cardiogenic shock: Dobutamine (1st line)",sN), P("βcontractility. Dopamine: low dose renal protection (controversial)",sN)],
[P("5. Monitoring",sN), P("Fluid balance, daily weight, electrolytes",sN), P("Target negative fluid balance 0.5β1 L/day",sN)],
],
[CW*0.14,CW*0.38,CW*0.48], box=RED, bg1=R10, bg2=R20, hdr_bg=HexColor("#1A0000"))
story += [adhf, SP(3)]
story.append(sec("HIGH-YIELD ONE-LINERS & TRAPS", "β‘", YELLOW))
story.append(SP(3))
hf_ol = tbl([
[P("β Fact",sG), P("Answer",sG)],
[P("Best initial investigation for HF",sN), P("Echo (2D echo with Doppler) β measures LVEF",sGr)],
[P("BNP/NT-proBNP use",sN), P("Diagnosis + monitoring. High BNP = worse prognosis",sN)],
[P("Only Ξ²-blockers proven in HF",sN), P("Carvedilol, Bisoprolol, Metoprolol succinate (NOT atenolol, propranolol)",sR)],
[P("Contraindicated drug in HFrEF",sN), P("Verapamil, Diltiazem (non-DHP CCB), short-acting nifedipine",sR)],
[P("Drug of choice: HF + AF",sN), P("Digoxin (controls rate AND improves symptoms β DIG trial)",sN)],
[P("PARADIGM-HF trial",sN), P("Sacubitril/Valsartan > Enalapril in reducing HF mortality",sGr)],
[P("Pulsus alternans",sN), P("Alternating strong/weak pulse β sign of severe LV dysfunction",sR)],
[P("S3 gallop significance",sN), P("Pathological in adults = dilated, failing ventricle (volume overload)",sR)],
],
[CW*0.4,CW*0.6], box=YELLOW, bg1=Y10, bg2=Y20, hdr_bg=HexColor("#1A1400"))
story += [hf_ol, SP(4)]
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# DAY 4 β AUTONOMIC PHARMACOLOGY
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [SP(6), day_header(4,"Jul 18","PHARMACOLOGY","Autonomic Drugs β Adrenergic & Cholinergic Receptors, Agonists & Antagonists", ORANGE), SP(5)]
story.append(sec("AUTONOMIC RECEPTOR SUMMARY", "π", ORANGE))
story.append(SP(3))
auto_rec = tbl([
[P("Receptor",sG), P("Location",sG), P("Effect of Stimulation",sG), P("Clinical Relevance",sG)],
[P("Ξ±1",sOr), P("Vascular smooth muscle, prostate, eye (dilator)",sN), P("Vasoconstriction, mydriasis, βurethral tone",sN), P("Prazosin (BPH + HTN); Phenylephrine (nasal decongestant)",sN)],
[P("Ξ±2",sOr), P("Presynaptic terminals, pancreas (Ξ²-cells)",sN), P("βNE release (presynaptic), βinsulin",sN), P("Clonidine (central Ξ±2 agonist β βBP); Methyldopa (pregnancy HTN)",sN)],
[P("Ξ²1",sYe), P("Heart, kidney (JGA)",sN), P("βHR, βcontractility, βrenin release",sN), P("Dobutamine (selective Ξ²1 agonist); Ξ²-blockers for HTN/HF",sN)],
[P("Ξ²2",sYe), P("Bronchi, uterus, vascular SM, liver",sN), P("Bronchodilation, βuterine contractions, vasodilation, glycogenolysis",sN), P("Salbutamol (asthma), Ritodrine (tocolysis), Terbutaline",sN)],
[P("Ξ²3",sGr), P("Adipose tissue, detrusor (bladder)",sN), P("Lipolysis, bladder relaxation",sN), P("Mirabegron (Ξ²3 agonist for overactive bladder)",sN)],
[P("M1",sCy), P("CNS, gastric parietal cells",sN), P("Cognitive functions, βgastric acid",sN), P("Pirenzepine (peptic ulcer β selective M1 blocker)",sN)],
[P("M2",sCy), P("Heart (SA/AV nodes)",sN), P("βHR, βconduction",sN), P("Atropine blocks M2 β βHR (used in bradycardia)",sN)],
[P("M3",sCy), P("Gland cells, smooth muscle, endothelium",sN), P("βSecretions, smooth muscle contraction, vasodilation (via NO)",sN), P("Tiotropium (M3 block in COPD); Bethanechol (M3 agonist β urinary retention)",sN)],
[P("Nicotinic (Nm)",sPu), P("NMJ (skeletal muscle)",sN), P("Muscle contraction",sN), P("Succinylcholine, non-depolarizing NMBs block this",sN)],
[P("Nicotinic (Nn)",sPu), P("Autonomic ganglia, adrenal medulla",sN), P("Ganglionic transmission, catecholamine release",sN), P("Hexamethonium (ganglion blocker β historical HTN Rx)",sN)],
],
[CW*0.09,CW*0.25,CW*0.28,CW*0.38], box=ORANGE, bg1=HexColor("#140800"), bg2=HexColor("#1A0F00"), hdr_bg=HexColor("#1A0C00"))
story += [auto_rec, SP(5)]
story.append(sec("ADRENERGIC AGONISTS", "β²", YELLOW))
story.append(SP(3))
adren_ag = tbl([
[P("Drug",sG), P("Receptor Selectivity",sG), P("Clinical Use",sG), P("Key Points",sG)],
[P("Epinephrine (Adrenaline)",sYe), P("Ξ±1, Ξ±2, Ξ²1, Ξ²2 (all)",sN), P("Anaphylaxis (1st line), cardiac arrest, local anesthetic adjuvant",sGr), P("IM epinephrine 0.5 mg for anaphylaxis. Low dose = Ξ² (vasodilation); High dose = Ξ± (vasoconstriction)",sN)],
[P("Norepinephrine",sOr), P("Ξ±1, Ξ±2, Ξ²1 (no Ξ²2)",sN), P("Septic shock (vasopressor of choice), cardiogenic shock",sGr), P("βBP by βSVR. Risk: reflex bradycardia",sN)],
[P("Dopamine",sCy), P("D1 (low), Ξ²1 (med), Ξ±1 (high dose)",sN), P("Cardiogenic shock, HF, oliguria. Dose-dependent",sGr), P("1β3 ΞΌg/kg/min = renal vasodilation | 3β10 = Ξ²1 (βCO) | >10 = Ξ±1 (vasoconstriction)",sN)],
[P("Dobutamine",sBl), P("Ξ²1 > Ξ²2 (selective)",sN), P("Acute HF / cardiogenic shock, stress echocardiography",sGr), P("βcontractility, βCO without much βHR. Dobutamine stress echo = dx CAD",sN)],
[P("Phenylephrine",sR), P("Ξ±1 (selective)",sN), P("Nasal decongestant, hypotension in spinal anesthesia, SVT",sN), P("Pure vasoconstrictor β reflex bradycardia. No cardiac effect",sN)],
[P("Salbutamol/Albuterol",sGr), P("Ξ²2 (selective)",sN), P("Asthma (SABA), hyperkalemia (shifts KβΊ into cells), tocolysis",sGr), P("SABA = short-acting Ξ²2 agonist. Given by inhaler. Tachycardia at high doses",sN)],
[P("Isoproterenol",sPu), P("Ξ²1, Ξ²2 (non-selective)",sN), P("AV block (historical), bronchospasm. Rarely used",sN), P("βHR + bronchodilation. Replaced by selective agents",sN)],
],
[CW*0.17,CW*0.22,CW*0.30,CW*0.31], box=YELLOW, bg1=Y10, bg2=Y20, hdr_bg=HexColor("#1A1400"))
story += [adren_ag, SP(5)]
story.append(sec("CHOLINERGIC AGONISTS & ANTAGONISTS", "π΅", CYAN))
story.append(SP(3))
chol = tbl([
[P("Drug",sG), P("Type",sG), P("Use",sG), P("Key Points / Side Effects",sG)],
[P("Acetylcholine",sCy), P("Direct agonist (all M+N)",sN), P("Research only (very short acting)",sN), P("Broken down by AChE immediately",sN)],
[P("Bethanechol",sCy), P("Direct M (M3) selective",sN), P("Urinary retention, post-op ileus, GERD",sGr), P("NOT broken down by AChE. No nicotinic action",sN)],
[P("Pilocarpine",sCy), P("Direct M agonist",sN), P("Glaucoma (miosis β open drainage angle), SjΓΆgren's syndrome (dry mouth)",sGr), P("Given as eye drops. Also used in Horner's test",sN)],
[P("Carbachol",sCy), P("Direct M+N agonist",sN), P("Glaucoma, intraocular HTN",sN), P("Resistant to AChE. Both muscarinic + nicotinic activity",sN)],
[P("Neostigmine",sGr), P("Indirect (anti-AChE) β reversible",sN), P("Myasthenia gravis (diagnosis + Rx), reversal of NMB, post-op ileus",sGr), P("Does NOT cross BBB. Also used in Tensilon test",sN)],
[P("Physostigmine",sGr), P("Indirect (anti-AChE) β reversible",sN), P("Atropine overdose antidote, glaucoma",sGr), P("Crosses BBB (treats central anticholinergic syndrome)",sN)],
[P("Organophosphates",sR), P("Irreversible anti-AChE",sN), P("Insecticides (toxic). Nerve agents: Sarin, VX",sR), P("SLUDGE toxidrome. Antidote: Atropine + Pralidoxime (2-PAM) within 24h",sR)],
[P("Atropine",sOr), P("Anticholinergic (M blocker)",sN), P("Bradycardia, organophosphate poisoning, pre-op (dry secretions), motion sickness",sGr), P("Blocks M2 β βHR. 'Hot as hare, dry as bone, red as beet, blind as bat, mad as hatter'",sN)],
[P("Scopolamine",sOr), P("Anticholinergic (M blocker)",sN), P("Motion sickness (transdermal patch), pre-op sedation",sGr), P("More CNS sedation than atropine. Applied behind ear",sN)],
[P("Ipratropium",sOr), P("Inhaled M blocker",sN), P("COPD (1st line bronchodilator), asthma (adjunct)",sGr), P("Does NOT cross BBB. Minimal systemic effects",sN)],
[P("Glycopyrrolate",sOr), P("M blocker (quaternary)",sN), P("Pre-op (βsecretions), peptic ulcer, hyperhidrosis",sN), P("Does NOT cross BBB. Longer duration than atropine",sN)],
],
[CW*0.17,CW*0.20,CW*0.28,CW*0.35], box=CYAN, bg1=T10, bg2=T20, hdr_bg=HexColor("#001414"))
story += [chol, SP(3),
note("β SLUDGE = Salivation, Lacrimation, Urination, Defecation, GI cramps, Emesis (organophosphate toxidrome) | Antidote: Atropine (large doses) + Pralidoxime (reactivates AChE if given within 24 hrs)", RED, R10),
SP(3)]
story.append(sec("ADRENERGIC ANTAGONISTS (BLOCKERS)", "βΌ", PURPLE))
story.append(SP(3))
adren_blk = tbl([
[P("Drug",sG), P("Selectivity",sG), P("Clinical Use",sG), P("Important Side Effects",sG)],
[P("Propranolol",sPu), P("Non-selective Ξ² (Ξ²1+Ξ²2)",sN), P("HTN, angina, arrhythmias, thyrotoxicosis, migraine prophylaxis, tremor",sN), P("Bronchoconstriction (Ξ²2 block), hypoglycemia masking, βTG",sR)],
[P("Metoprolol / Atenolol",sBl), P("Selective Ξ²1",sN), P("HTN, angina, HF, post-MI, AF rate control",sGr), P("Less bronchospasm than propranolol. Atenolol: renal excretion",sN)],
[P("Carvedilol",sGr), P("Non-selective Ξ² + Ξ±1",sN), P("HF (mortality benefit!), HTN, post-MI",sGr), P("Vasodilation (Ξ±1 block) + βHR/contractility. Best in HF",sN)],
[P("Labetalol",sTe), P("Ξ±1 + Ξ² (4:1 ratio)",sN), P("HTN emergency (IV), HTN in pregnancy",sGr), P("IV in emergencies. Safe in pregnancy",sN)],
[P("Esmolol",sYe), P("Ultra-short Ξ²1 selective",sN), P("Intraoperative HTN, SVT, aortic dissection (βHR rapidly)",sGr), P("Half-life ~9 min. Metabolized by RBC esterases",sN)],
[P("Prazosin / Doxazosin",sOr), P("Selective Ξ±1",sN), P("HTN + BPH, Raynaud's, pheochromocytoma (short-acting)",sGr), P("First-dose syncope (postural hypotension). Take at bedtime",sR)],
[P("Phenoxybenzamine",sR), P("Non-selective Ξ± (irreversible)",sN), P("Pheochromocytoma pre-op (FIRST drug given)",sGr), P("Irreversible. Given days before surgery to prevent HTN crisis",sN)],
[P("Phentolamine",sR), P("Non-selective Ξ± (reversible)",sN), P("Pheochromocytoma crisis, norepinephrine extravasation",sGr), P("Short-acting. Reversal agent for Ξ±1 vasoconstriction",sN)],
],
[CW*0.18,CW*0.20,CW*0.30,CW*0.32], box=PURPLE, bg1=P10, bg2=P20, hdr_bg=HexColor("#100020"))
story += [adren_blk, SP(4)]
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# DAY 5 β ANTIHYPERTENSIVES, DIURETICS, ANTIARRHYTHMICS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [SP(6), day_header(5,"Jul 19","PHARMACOLOGY","Antihypertensives, Diuretics & Antiarrhythmics β Mechanisms & Clinical Use", PURPLE), SP(5)]
story.append(sec("DIURETICS β COMPLETE HIGH-YIELD TABLE", "π§", BLUE))
story.append(SP(3))
diur = tbl([
[P("Class",sG), P("Site of Action",sG), P("Mechanism",sG), P("Uses",sG), P("Side Effects",sG)],
[P("Loop Diuretics",sR), P("Thick ascending loop of Henle",sN), P("Block Na-K-2Cl cotransporter (NKCC2)",sN),
P("Acute pulmonary edema, HF, hypercalcemia, acute kidney injury",sGr),
P("Hypokalemia, hyponatremia, hypocalcemia, ototoxicity (esp. ethacrynic acid), hyperuricemia",sR)],
[P("Thiazides",sCy), P("Distal convoluted tubule (DCT)",sN), P("Block NaCl cotransporter (NCC)",sN),
P("HTN (1st line), nephrogenic DI, osteoporosis, hypercalciuria",sGr),
P("Hypokalemia, hyponatremia, hyperuricemia (gout), hyperglycemia, hypercalcemia",sR)],
[P("K-sparing (MRA)",sOr), P("Cortical collecting duct",sN), P("Block aldosterone receptor β βNa retention, βK retention",sN),
P("HF (Spironolactoneβmortality), hyperaldosteronism, ascites, hirsutism",sGr),
P("Hyperkalemia! Spironolactone: gynecomastia (anti-androgen effect); Eplerenone: more selective",sR)],
[P("K-sparing (direct)",sYe), P("Collecting duct",sN), P("Block ENaC (epithelial Na channel) β βNa reabsorption",sN),
P("Combination diuretic (with thiazide/loop). Amiloride: Li toxicity prevention",sGr),
P("Hyperkalemia. Triamterene: renal stones, folate deficiency",sR)],
[P("CAI (Acetazolamide)",sGr), P("Proximal tubule",sN), P("Block carbonic anhydrase β βHCO3 reabsorption β metabolic acidosis",sN),
P("Glaucoma, altitude sickness, metabolic alkalosis, idiopathic intracranial HTN",sGr),
P("Metabolic acidosis, hypokalemia, sulfa allergy",sR)],
[P("Osmotic (Mannitol)",sBl), P("Proximal tubule + loop",sN), P("βtubular osmolality β βwater reabsorption",sN),
P("βICP (cerebral edema), glaucoma (acute), forced diuresis in poisoning",sGr),
P("Initial pulmonary edema (volume expansion before diuresis), hyponatremia",sR)],
],
[CW*0.14,CW*0.17,CW*0.22,CW*0.23,CW*0.24], box=BLUE, bg1=B10, bg2=B20, hdr_bg=HexColor("#001020"))
story += [diur, SP(3),
note("β Only diuretic that βCa excretion = Loop diuretics | Thiazides βCa (useful in hypercalciuria/stones) | Ototoxicity = Loop (Furosemide, Ethacrynic acid) | Ethacrynic acid: safe in sulfa allergy", BLUE, B10),
SP(5)]
story.append(sec("ANTIARRHYTHMICS β VAUGHAN WILLIAMS CLASSIFICATION", "β‘", YELLOW))
story.append(SP(3))
antiarr = tbl([
[P("Class",sG), P("Drugs",sG), P("Mechanism",sG), P("Use",sG), P("Key Toxicity",sG)],
[P("Ia β Na channel\n(moderate)",sYe), P("Quinidine, Procainamide, Disopyramide",sN),
P("Block Na channels + K channels β βAP duration, βQT",sN),
P("AF, VT, WPW",sN),
P("Quinidine: cinchonism (tinnitus), TdP. Procainamide: drug-induced lupus. Disopyramide: anticholinergic",sR)],
[P("Ib β Na channel\n(fast off)",sYe), P("Lidocaine, Mexiletine, Phenytoin",sN),
P("Block Na channels in ischemic tissue. βAP duration",sN),
P("Ventricular arrhythmias, acute VT/VF (Lidocaine IV)",sGr),
P("Lidocaine: CNS toxicity (seizures, confusion). Phenytoin: for digoxin toxicity arrhythmia",sN)],
[P("Ic β Na channel\n(slow off)",sYe), P("Flecainide, Propafenone",sN),
P("Markedly slow Na channel conduction, minimal effect on repolarization",sN),
P("AF, SVT, WPW in structurally normal hearts (FLEC-CAF, CAST)",sN),
P("CAST trial: βmortality in post-MI patients! Only for structurally normal hearts",sR)],
[P("Class II β Ξ²-blockers",sBl), P("Metoprolol, Atenolol, Propranolol, Esmolol",sN),
P("Block Ξ²1 β βSA/AV node automaticity, βconduction velocity",sN),
P("AF rate control, SVT, post-MI arrhythmias, AVNRT",sGr),
P("Bradycardia, heart block, bronchoconstriction. Esmolol: ultra-short IV",sN)],
[P("Class III β K channel",sOr), P("Amiodarone, Sotalol, Ibutilide, Dofetilide",sN),
P("Block K channels β βrepolarization, βQT interval",sN),
P("Amiodarone: most effective (AF, VT, VF, WPW, CPR). Sotalol: AF, VT",sGr),
P("Amiodarone toxicity: Pulmonary fibrosis, Thyroid (hypo/hyper), Liver, Corneal deposits, Skin (photosensitivity/blue-grey), Peripheral neuropathy",sR)],
[P("Class IV β CCB",sPu), P("Verapamil, Diltiazem",sN),
P("Block L-type CaΒ²βΊ β βSA/AV node conduction β βHR",sN),
P("SVT (AVNRT), AF rate control, hypertrophic CM",sGr),
P("AV block, heart failure (negative inotrope). NEVER with Ξ²-blockers (complete heart block)",sR)],
[P("Others",sTe), P("Adenosine, Digoxin, Magnesium",sN),
P("Adenosine: ultra-short block of AV node (A1 receptor). Digoxin: vagal β. Mg: TdP",sN),
P("Adenosine: AVNRT (drug of choice). Digoxin: AF + HF rate. Mg IV: Torsades de Pointes",sGr),
P("Adenosine: transient asystole, bronchoconstriction. Contraindicated in asthma, WPW",sR)],
],
[CW*0.16,CW*0.19,CW*0.22,CW*0.20,CW*0.23], box=YELLOW, bg1=Y10, bg2=Y20, hdr_bg=HexColor("#1A1400"))
story += [antiarr, SP(3),
note("β Amiodarone = most broadly effective antiarrhythmic | CAST trial = Ic drugs βmortality post-MI | Adenosine DOC for AVNRT | TdP β IV Magnesium | Drug-induced lupus = Procainamide, Hydralazine, Isoniazid", YELLOW, Y10),
SP(3)]
story.append(sec("HIGH-YIELD DRUG TRAPS & ONE-LINERS", "β οΈ", RED))
story.append(SP(3))
day5_traps = tbl([
[P("Trap",sG), P("Explanation",sG)],
[P("β Ic drugs post-MI",sR), P("Flecainide/Propafenone CONTRAINDICATED post-MI β CAST trial showed βmortality (proarrhythmic in ischemic heart)",sN)],
[P("β Amiodarone thyroid",sR), P("Contains 37% iodine β can cause BOTH hypo and hyperthyroidism. Check TFTs before + regularly during therapy",sN)],
[P("β Ethacrynic acid",sOr), P("Only loop diuretic safe in sulfa allergy. Most ototoxic of all loop diuretics",sN)],
[P("β Spironolactone gynecomastia",sOr), P("Anti-androgenic effect β gynecomastia, menstrual irregularities. Use Eplerenone instead (selective MRA)",sN)],
[P("β Thiazide paradox",sCy), P("Thiazides TREAT nephrogenic DI by causing mild volume depletion β βproximal reabsorption β βurine output",sN)],
[P("β Adenosine in asthma",sR), P("CONTRAINDICATED in asthma (bronchoconstriction via A1 receptors). Use Verapamil instead for SVT in asthma",sN)],
],
[CW*0.28,CW*0.72], box=RED, bg1=R10, bg2=R20, hdr_bg=HexColor("#1A0000"))
story += [day5_traps, SP(4)]
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# DAY 6 β ANTIBIOTICS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [SP(6), day_header(6,"Jul 20","PHARMACOLOGY","Antibiotics β Classes, Mechanisms, Resistance & Drug of Choice", TEAL), SP(5)]
story.append(sec("ANTIBIOTIC MECHANISMS OF ACTION", "π¦ ", TEAL))
story.append(SP(3))
ab_moa = tbl([
[P("Mechanism",sG), P("Antibiotic Classes",sG), P("Examples",sG)],
[P("Inhibit Cell Wall Synthesis\n(Ξ²-lactam ring)",sTe), P("Penicillins, Cephalosporins,\nCarbapenems, Monobactams",sN),
P("Amoxicillin, Cloxacillin, Piperacillin | Cefazolin, Ceftriaxone, Cefepime | Meropenem, Imipenem | Aztreonam",sN)],
[P("Inhibit Cell Wall Synthesis\n(non-Ξ²-lactam)",sTe), P("Glycopeptides, Bacitracin",sN),
P("Vancomycin (inhibits transpeptidation via D-Ala-D-Ala binding), Teicoplanin, Bacitracin",sN)],
[P("Inhibit 30S Ribosome",sYe), P("Aminoglycosides, Tetracyclines",sN),
P("Aminoglycosides: bind 16S rRNA β misread mRNA. Tetracyclines: block aminoacyl-tRNA binding",sN)],
[P("Inhibit 50S Ribosome",sOr), P("Macrolides, Clindamycin, Chloramphenicol, Linezolid, Streptogramins",sN),
P("Azithromycin (23S rRNA), Erythromycin, Clindamycin (transpeptidation), Chloramphenicol (peptidyl transferase), Linezolid (initiation)",sN)],
[P("Inhibit DNA Gyrase/Topoisomerase",sBl), P("Fluoroquinolones",sN),
P("Ciprofloxacin (gram-neg, DNA gyrase), Levofloxacin (gram-pos + neg, Topoisomerase IV)",sN)],
[P("Inhibit RNA Polymerase",sR), P("Rifampicin",sN),
P("Rifampicin: inhibits DNA-dependent RNA polymerase. Used in TB, leprosy, meningococcal prophylaxis",sN)],
[P("Inhibit Folate Synthesis",sGr), P("Sulfonamides, Trimethoprim",sN),
P("Sulfonamides: block PABA β dihydropteroate synthase. Trimethoprim: blocks DHFR. Cotrimoxazole = SMX+TMP (synergistic)",sN)],
[P("Disrupt Cell Membrane",sCy), P("Polymyxins, Daptomycin",sN),
P("Polymyxin B, Colistin: detergent-like disruption of gram-neg outer membrane. Daptomycin: gram-pos only",sN)],
[P("Inhibit Mycolic Acid Synthesis",sTe), P("Isoniazid, Ethionamide",sN),
P("INH inhibits InhA (enoyl-ACP reductase) β blocks mycolic acid synthesis in mycobacteria",sN)],
],
[CW*0.24,CW*0.28,CW*0.48], box=TEAL, bg1=T10, bg2=T20, hdr_bg=HexColor("#001414"))
story += [ab_moa, SP(5)]
story.append(sec("DRUG OF CHOICE FOR COMMON INFECTIONS β", "β", GOLD))
story.append(SP(3))
doc_inf = tbl([
[P("Infection / Organism",sG), P("Drug of Choice",sG), P("Alternative",sG)],
[P("Strep throat (Group A Strep)",sN), P("Penicillin V / Amoxicillin",sGr), P("Azithromycin (penicillin allergy)",sN)],
[P("Staphylococcal (MSSA)",sN), P("Cloxacillin / Nafcillin",sGr), P("Cefazolin, Vancomycin (if allergic)",sN)],
[P("MRSA",sN), P("VANCOMYCIN (IV)",sR), P("Linezolid, Daptomycin, TMP-SMX (mild skin)",sN)],
[P("Pneumococcal pneumonia",sN), P("Amoxicillin / Penicillin G (sensitive strains)",sGr), P("Ceftriaxone, Azithromycin",sN)],
[P("Atypical pneumonia (Mycoplasma, Chlamydia)",sN), P("Azithromycin / Doxycycline",sGr), P("Levofloxacin",sN)],
[P("Legionella pneumophila",sN), P("Azithromycin or Levofloxacin",sGr), P("Rifampicin (add in severe cases)",sN)],
[P("UTI (E. coli) β uncomplicated",sN), P("Nitrofurantoin or TMP-SMX",sGr), P("Ciprofloxacin",sN)],
[P("UTI β pyelonephritis",sN), P("Ciprofloxacin or Levofloxacin (oral)",sGr), P("Ceftriaxone IV (hospitalized)",sN)],
[P("TB (1st line regimen)",sN), P("RIPE: Rifampicin + Isoniazid + Pyrazinamide + Ethambutol Γ 2 months",sR), P("Then RI Γ 4 months",sN)],
[P("Leprosy (paucibacillary)",sN), P("Dapsone + Rifampicin Γ 6 months",sGr), P("β",sN)],
[P("Leprosy (multibacillary)",sN), P("Dapsone + Rifampicin + Clofazimine Γ 12 months",sGr), P("β",sN)],
[P("Meningococcal meningitis",sN), P("Penicillin G IV (confirmed) / Ceftriaxone",sGr), P("Prophylaxis: Rifampicin / Ciprofloxacin",sN)],
[P("Typhoid fever",sN), P("Azithromycin (uncomplicated) / Ceftriaxone IV",sGr), P("Ciprofloxacin (if sensitive)",sN)],
[P("Cholera",sN), P("Tetracycline / Doxycycline",sGr), P("Azithromycin (children/pregnancy)",sN)],
[P("Plague (Yersinia pestis)",sN), P("Streptomycin (DOC) / Gentamicin",sR), P("Doxycycline, Ciprofloxacin",sN)],
[P("Anaerobic infections",sN), P("Metronidazole (below diaphragm), Clindamycin (above diaphragm)",sGr), P("Amoxicillin-Clavulanate",sN)],
[P("Pseudomonas aeruginosa",sN), P("Piperacillin-Tazobactam or Cefepime or Meropenem",sR), P("Ciprofloxacin + Aminoglycoside",sN)],
[P("Clostridium difficile (C.diff)",sN), P("Oral Vancomycin or Fidaxomicin",sGr), P("Metronidazole (mild cases only)",sN)],
],
[CW*0.35,CW*0.35,CW*0.30], box=GOLD, bg1=D10, bg2=D20, hdr_bg=Y10)
story += [doc_inf, SP(5)]
story.append(sec("ANTIBIOTIC RESISTANCE MECHANISMS", "β οΈ", RED))
story.append(SP(3))
resist = tbl([
[P("Mechanism",sG), P("Example",sG), P("Organism",sG)],
[P("Ξ²-lactamase production",sR), P("Destroys Ξ²-lactam ring of penicillins/cephalosporins",sN), P("S. aureus, E. coli, H. influenzae",sN)],
[P("Extended-spectrum Ξ²-lactamase (ESBL)",sR), P("Resistant to most cephalosporins. Treat with Carbapenems",sN), P("E. coli, Klebsiella (hospital-acquired)",sN)],
[P("Altered PBP (Penicillin-Binding Protein)",sR), P("PBP2a in MRSA β no binding of Ξ²-lactams",sN), P("MRSA, PRSP (Penicillin-resistant Strep pneumo)",sN)],
[P("Enzymatic modification",sYe), P("Aminoglycoside modifying enzymes (phosphorylation, acetylation)",sN), P("Gram-neg bacilli",sN)],
[P("Efflux pumps",sOr), P("Actively pump out tetracyclines, fluoroquinolones",sN), P("Pseudomonas, MRSA",sN)],
[P("Target site modification",sOr), P("Altered ribosome (macrolide resistance in S. pyogenes), altered DNA gyrase (quinolone resistance)",sN), P("Multiple organisms",sN)],
[P("Reduced permeability",sCy), P("Loss of outer membrane porins β carbapenems can't enter",sN), P("Carbapenem-resistant Enterobacteriaceae (CRE / KPC)",sN)],
],
[CW*0.28,CW*0.44,CW*0.28], box=RED, bg1=R10, bg2=R20, hdr_bg=HexColor("#1A0000"))
story += [resist, SP(3)]
story.append(sec("ANTIBIOTIC TOXICITY HIGH-YIELD", "β οΈ", ORANGE))
story.append(SP(3))
abtox = tbl([
[P("Drug",sG), P("Toxicity",sG), P("Mechanism / Notes",sG)],
[P("Aminoglycosides\n(Gentamicin, Streptomycin)",sOr), P("Nephrotoxicity + Ototoxicity (vestibular/cochlear)",sR), P("Accumulate in renal tubules + cochlear hair cells. Monitor levels (trough). Synergistic with Loop diuretics β βototoxicity",sN)],
[P("Vancomycin",sOr), P("Red Man Syndrome, nephrotoxicity, ototoxicity",sR), P("Red Man = histamine release (non-allergic) due to rapid infusion. Infuse over β₯60 min",sN)],
[P("Tetracyclines",sYe), P("Teeth discoloration, bone growth inhibition, photosensitivity",sR), P("AVOID in pregnancy, children <8 years (deposits in bone/teeth)",sN)],
[P("Chloramphenicol",sR), P("Gray baby syndrome, aplastic anemia",sR), P("Inhibits mito ribosomes β Gray baby: cardiovascular collapse in neonates (immature glucuronidation)",sN)],
[P("Fluoroquinolones",sBl), P("Tendinopathy (Achilles tendon rupture), QT prolongation, cartilage damage",sR), P("AVOID in children, pregnancy. Drug interaction with antacids (chelation β βabsorption)",sN)],
[P("Rifampicin",sOr), P("Hepatotoxicity, orange discoloration of body fluids, drug interactions",sR), P("Powerful CYP450 inducer β βlevels of oral contraceptives, warfarin, many drugs",sN)],
[P("Isoniazid (INH)",sYe), P("Peripheral neuropathy, hepatotoxicity, drug-induced lupus",sR), P("Give Pyridoxine (B6) prophylactically. INH inhibits CYP2E1. Slow acetylators at higher risk",sN)],
[P("Metronidazole",sCy), P("Metallic taste, disulfiram-like reaction with alcohol, peripheral neuropathy",sR), P("AVOID alcohol during and 48hrs after treatment",sN)],
[P("Sulfonamides",sGr), P("Crystalluria (drink plenty of water), Stevens-Johnson syndrome, hemolytic anemia (G6PD)",sR), P("Contraindicated in G6PD deficiency. Keep urine alkaline",sN)],
[P("Linezolid",sTe), P("Serotonin syndrome (with SSRIs/MAOIs), thrombocytopenia, lactic acidosis",sR), P("MAO inhibitor activity β avoid SSRIs, tyramine-rich food",sN)],
],
[CW*0.22,CW*0.28,CW*0.50], box=ORANGE, bg1=HexColor("#140800"), bg2=HexColor("#1A0F00"), hdr_bg=HexColor("#1A0C00"))
story += [abtox, SP(4)]
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# DAY 7 β REVISION DAY
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [SP(6), day_header(7,"Jul 21","REVISION","Week 1 Rapid Recall β High-Yield MCQs & One-Liners for Medicine & Pharmacology", GREEN), SP(5)]
story.append(sec("RAPID FIRE REVISION β WEEK 1 ONE-LINERS", "β‘", CYAN))
story.append(SP(3))
rev_ol = tbl([
[P("β‘ Question",sG), P("β Answer",sG)],
# HTN
[P("ACC/AHA 2017: HTN defined as",sCy), P("β₯ 130/80 mmHg",sGr)],
[P("HTN + Pregnancy DOC",sCy), P("Methyldopa (safest), Labetalol, Nifedipine",sGr)],
[P("HTN + Gout DOC",sCy), P("Losartan (uricosuric β βuric acid)",sGr)],
[P("Pheochromocytoma β Ξ±-blocker first drug",sCy), P("Phenoxybenzamine (give BEFORE Ξ²-blocker)",sR)],
[P("DOC Hypertensive emergency in aortic dissection",sCy), P("IV Esmolol (ultra-short Ξ²1 block) or IV Labetalol",sGr)],
[P("Most common secondary HTN cause",sCy), P("Renovascular HTN (renal artery stenosis)",sN)],
# HF
[P("3 Ξ²-blockers proven in HFrEF",sBl), P("Carvedilol, Bisoprolol, Metoprolol succinate (NOT atenolol)",sGr)],
[P("PARADIGM-HF trial drug",sBl), P("Sacubitril/Valsartan (ENTRESTO) > Enalapril",sGr)],
[P("RALES trial significance",sBl), P("Spironolactone βmortality 30% in NYHA III/IV HF",sGr)],
[P("Best initial test to diagnose HF",sBl), P("2D Echo (measures LVEF)",sGr)],
[P("Inotrope of choice in cardiogenic shock",sBl), P("Dobutamine",sGr)],
[P("HFpEF most common cause",sBl), P("Hypertension",sGr)],
# Autonomic
[P("Organophosphate toxidrome",sOr), P("SLUDGE β Salivation, Lacrimation, Urination, Defecation, GI cramps, Emesis",sN)],
[P("Antidote organophosphate poisoning",sOr), P("Atropine (large doses) + Pralidoxime (2-PAM) within 24 hrs",sGr)],
[P("DOC motion sickness",sOr), P("Scopolamine (transdermal patch)",sN)],
[P("Ξ²2 agonist for tocolysis",sOr), P("Ritodrine / Terbutaline",sN)],
[P("Mirabegron mechanism",sOr), P("Ξ²3 agonist β bladder detrusor relaxation (overactive bladder)",sN)],
# Diuretics
[P("Diuretic for nephrogenic DI",sPu), P("Thiazide diuretics (paradoxical effect)",sGr)],
[P("Only safe loop diuretic in sulfa allergy",sPu), P("Ethacrynic acid (most ototoxic)",sR)],
[P("Mannitol use",sPu), P("βICP (cerebral edema), glaucoma, forced diuresis in poisoning",sN)],
# Antiarrhythmics
[P("DOC for AVNRT (SVT)",sYe), P("Adenosine IV (1st line). Verapamil IV (if adenosine CI)",sGr)],
[P("Adenosine contraindicated in",sYe), P("Asthma, WPW syndrome",sR)],
[P("TdP (Torsades de Pointes) treatment",sYe), P("IV Magnesium sulphate",sGr)],
[P("CAST trial showed",sYe), P("Ic antiarrhythmics (Flecainide) βmortality post-MI",sR)],
[P("Amiodarone thyroid complication",sYe), P("Both hypo AND hyperthyroidism (37% iodine content)",sR)],
# Antibiotics
[P("MRSA drug of choice",sTe), P("Vancomycin IV",sGr)],
[P("C. difficile treatment",sTe), P("Oral Vancomycin or Fidaxomicin",sGr)],
[P("Gray baby syndrome",sTe), P("Chloramphenicol (immature glucuronidation in neonates)",sR)],
[P("Rifampicin drug interaction",sTe), P("CYP450 inducer β βOCPs, warfarin, many drugs",sR)],
[P("TB 1st line regimen",sTe), P("RIPE Γ 2 months β RI Γ 4 months",sGr)],
[P("Antibiotic for Pseudomonas",sTe), P("Pip-Taz or Cefepime or Meropenem",sGr)],
],
[CW*0.42,CW*0.58], box=CYAN, bg1=T10, bg2=T20, hdr_bg=HexColor("#001414"))
story += [rev_ol, SP(5)]
story.append(sec("WEEK 1 β EXAM STRATEGY CHECKLIST β
", "β
", GREEN))
story.append(SP(3))
check = tbl([
[P("Topic",sG), P("Must Know Cold",sG), P("Most Likely Exam Format",sG)],
[P("Hypertension",sBl), P("ACC/AHA staging, DOC for special situations, Pheo management, HTN emergency drugs",sN), P("Image-based (fundus), clinical scenario, drug choice question",sN)],
[P("Heart Failure",sCy), P("LVEF cutoffs, NYHA classes, 3 proven Ξ²-blockers, GDMT drugs, PARADIGM-HF, RALES",sN), P("LVEF-based clinical question, drug of choice, trial name",sN)],
[P("Autonomic Pharmacology",sOr), P("Receptor chart, organophosphate SLUDGE, atropine effects, receptor selectivity of each drug",sN), P("Receptor identification, antidote, clinical toxidrome",sN)],
[P("Diuretics",sPu), P("Site of action, electrolyte effects (Ca, K, Na), ototoxicity, thiazide paradox in DI",sN), P("Electrolyte disorder, mechanism-based, drug choice in clinical scenario",sN)],
[P("Antiarrhythmics",sYe), P("Vaughan Williams classification, CAST trial, Amiodarone toxicity, Adenosine CI, TdP Rx",sN), P("ECG interpretation + drug choice, toxicity identification",sN)],
[P("Antibiotics",sTe), P("Mechanism table, DOC table (TB/MRSA/Typhoid), toxicity table, resistance mechanisms",sN), P("Drug of choice, toxicity, resistance mechanism",sN)],
],
[CW*0.17,CW*0.46,CW*0.37], box=GREEN, bg1=G10, bg2=G20, hdr_bg=HexColor("#001500"))
story += [check, SP(6)]
# Final motivation
end = Table([[P(
"π Week 1 Complete! β’ Day 8 Next: THYROID (Surgery) β’ Keep the momentum going! πͺ",
S("en", fontName="Helvetica-Bold", fontSize=10, leading=13, textColor=GOLD, alignment=TA_CENTER)
)]], colWidths=[CW])
end.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1),HexColor("#1A1500")),
("BOX",(0,0),(-1,-1),2.5,GOLD),
("TOPPADDING",(0,0),(-1,-1),10),("BOTTOMPADDING",(0,0),(-1,-1),10),
("ALIGN",(0,0),(-1,-1),"CENTER"),
]))
story.append(end)
# ββ BUILD βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc.build(story, onFirstPage=on_page, onLaterPages=on_page)
import os
path = "/tmp/workspace/neet-pdf/NEET_PG_Week1_Days2to7.pdf"
print(f"Done! {os.path.getsize(path)/1024:.1f} KB β {path}")
cd /tmp/workspace/neet-pdf && python3 week1_pdf.py 2>&1
NEET PG Week1 Days2to7
PDF Document Β· PDF
| Day | Date | Content Inside |
|---|---|---|
| Day 2 | Jul 16 | HTN classification (JNC 7 + ACC/AHA 2017), Emergency vs Urgency table, All antihypertensive drug classes (MOA, indications, CIs), DOC for 9 special situations, Mnemonics |
| Day 3 | Jul 17 | HFrEF vs HFpEF (LVEF cutoffs), NYHA classes, ACC/AHA stages A-D, All GDMT drugs with trial names (PARADIGM-HF, RALES, DAPA-HF), Acute decompensated HF management |
| Day 4 | Jul 18 | Complete receptor chart (Ξ±1/Ξ±2/Ξ²1/Ξ²2/Ξ²3/M1/M2/M3/Nn/Nm), All adrenergic agonists with dose-dependent dopamine table, All cholinergic drugs, SLUDGE toxidrome + antidote, All adrenergic antagonists |
| Day 5 | Jul 19 | All 6 diuretic classes (site, MOA, uses, SE), Vaughan Williams antiarrhythmic classification (Classes I-IV + others), CAST trial, Amiodarone toxicities, High-yield traps |
| Day 6 | Jul 20 | 9 antibiotic mechanisms, DOC for 18 common infections (MRSA, TB, typhoid, plague, C.diff...), 7 resistance mechanisms, Antibiotic toxicity table (10 drugs) |
| Day 7 | Jul 21 | 31 rapid-fire Q&A one-liners covering all 5 topics, Exam strategy checklist for each subject |
I WANT THE TOPIC FOR DAY 2 IN ANOTHER CHAT NEW ONE
I'm preparing for NEET PG on August 30, 2026. I'm following a 46-day study plan and today is Day 2.Send me complete high-yield notes for: Day 2 β HYPERTENSION (Classification, JNC guidelines, drug classes, hypertensive emergencies, drug of choice for special situations, trap points, mnemonics, one-liners, and MCQs)Format: Same style as Day 1 Diabetes notes β clinical vignette, diagnosis table, drug tables, complications, trap points, mnemonics, and rapid-fire one-liners.Also make a PDF of it in dark ranker theme.
SEND ME DAY 2
Can u send me the planto study in a pdf