Make a presentation ppt on naco 2026 guidelines in md medicine level

Reading File
Searching the Web

NACO 2026 guidelines HIV AIDS India National AIDS Control Organisation

Reading File
Reading File
Reading Web Page

https://www.differentiatedservicedelivery.org/wp-content/upl…

Searching the Web

NACO HIV care treatment guidelines 2025 2026 ART regimen India update

Reading Web Page

https://www.who.int/news/item/07-01-2026-who-releases-update…

Finding Sources
Running Command

mkdir -p /tmp/workspace/naco2026-ppt && ls /tmp/workspace/naco2026-ppt/

Are you gonna make it?

Banay ne bhai

Writing File

~/naco2026-ppt/build_pptx.py

from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.util import Inches, Pt
import copy

prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)

blank = prs.slide_layouts[6]

# ── COLOUR PALETTE ──────────────────────────────────────────────────────────
RED       = RGBColor(0xC0, 0x20, 0x20)   # deep red (NACO / AIDS ribbon)
DARK_NAVY = RGBColor(0x0D, 0x2B, 0x55)   # dark navy
MID_BLUE  = RGBColor(0x1A, 0x5C, 0x96)   # mid blue
ORANGE    = RGBColor(0xE8, 0x6B, 0x1A)   # accent orange
WHITE     = RGBColor(0xFF, 0xFF, 0xFF)
LIGHT_BG  = RGBColor(0xF4, 0xF7, 0xFB)   # near-white slide bg
YELLOW    = RGBColor(0xFF, 0xD7, 0x00)
GRAY_TEXT = RGBColor(0x33, 0x33, 0x33)
LIGHT_RED = RGBColor(0xF9, 0xE6, 0xE6)
TEAL      = RGBColor(0x00, 0x7B, 0x83)

def add_rect(slide, l, t, w, h, fill, alpha=None):
    shape = slide.shapes.add_shape(1, Inches(l), Inches(t), Inches(w), Inches(h))
    shape.fill.solid()
    shape.fill.fore_color.rgb = fill
    shape.line.fill.background()
    return shape

def add_textbox(slide, l, t, w, h, text, size, bold=False, color=WHITE,
                align=PP_ALIGN.LEFT, wrap=True, italic=False):
    tb = slide.shapes.add_textbox(Inches(l), Inches(t), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = wrap
    tf.margin_left = Pt(0); tf.margin_right = Pt(0)
    tf.margin_top = Pt(0);  tf.margin_bottom = Pt(0)
    p = tf.paragraphs[0]
    p.alignment = align
    run = p.add_run()
    run.text = text
    run.font.size = Pt(size)
    run.font.bold = bold
    run.font.italic = italic
    run.font.color.rgb = color
    run.font.name = "Calibri"
    return tb

def add_multiline_tb(slide, l, t, w, h, lines, size, color=GRAY_TEXT,
                     bold=False, spacing=None, align=PP_ALIGN.LEFT):
    """lines = list of (text, bold_override, color_override)"""
    tb = slide.shapes.add_textbox(Inches(l), Inches(t), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = Pt(2); tf.margin_right = Pt(2)
    tf.margin_top = Pt(2);  tf.margin_bottom = Pt(2)
    first = True
    for item in lines:
        if isinstance(item, str):
            txt, b, c = item, bold, color
        else:
            txt = item[0]
            b   = item[1] if len(item) > 1 else bold
            c   = item[2] if len(item) > 2 else color
        if first:
            p = tf.paragraphs[0]; first = False
        else:
            p = tf.add_paragraph()
        p.alignment = align
        if spacing:
            p.space_before = Pt(spacing)
        run = p.add_run()
        run.text = txt
        run.font.size = Pt(size)
        run.font.bold = b
        run.font.color.rgb = c
        run.font.name = "Calibri"
    return tb

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 1 β€” TITLE SLIDE
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)

# Full background
add_rect(s, 0, 0, 13.333, 7.5, DARK_NAVY)

# Red accent bar left
add_rect(s, 0, 0, 0.45, 7.5, RED)

# Gold/orange accent top bar
add_rect(s, 0.45, 0, 12.883, 0.12, ORANGE)

# Bottom strip
add_rect(s, 0.45, 7.2, 12.883, 0.3, MID_BLUE)

# AIDS ribbon icon (text symbol)
add_textbox(s, 11.8, 0.8, 1.2, 1.2, "πŸŽ—", 48, color=RED, align=PP_ALIGN.CENTER)

# Main title
add_textbox(s, 0.7, 1.3, 10.5, 1.4,
            "NACO GUIDELINES 2026",
            40, bold=True, color=WHITE, align=PP_ALIGN.LEFT)

# Subtitle
add_textbox(s, 0.7, 2.75, 10.5, 0.7,
            "National AIDS Control Organisation β€” HIV Care & Treatment",
            22, bold=False, color=ORANGE, align=PP_ALIGN.LEFT)

# Line
add_rect(s, 0.7, 3.5, 9.5, 0.04, ORANGE)

add_textbox(s, 0.7, 3.65, 10.5, 0.55,
            "MD Medicine Postgraduate Seminar  |  NACP-V (2021–2026)",
            17, bold=False, color=RGBColor(0xCC, 0xDD, 0xFF), align=PP_ALIGN.LEFT)

add_textbox(s, 0.7, 4.3, 10.5, 0.5,
            "Incorporating WHO Updated Recommendations β€” January 2026",
            15, bold=False, color=RGBColor(0xAA, 0xBB, 0xDD), align=PP_ALIGN.LEFT, italic=True)

# Bottom credits
add_textbox(s, 0.7, 6.5, 11, 0.55,
            "Reference: NACO National Guidelines for HIV Care & Treatment 2021  |  WHO HIV Clinical Management Guidelines 2026",
            11, bold=False, color=RGBColor(0x88, 0x99, 0xBB), align=PP_ALIGN.LEFT)

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 2 β€” OVERVIEW / INDEX
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, DARK_NAVY)
add_rect(s, 0, 1.05, 0.07, 6.45, RED)

add_textbox(s, 0.3, 0.18, 12, 0.7, "OUTLINE OF PRESENTATION", 26, bold=True, color=WHITE)

topics = [
    ("1", "Epidemiology & India HIV Burden 2025–26"),
    ("2", "NACP-V Goals & 95-95-95 Targets"),
    ("3", "HIV Diagnosis β€” Testing Algorithm"),
    ("4", "ART Initiation β€” Treat All Policy"),
    ("5", "First-Line ART Regimens (Adults & Special Populations)"),
    ("6", "Second-Line & Third-Line ART"),
    ("7", "WHO 2026 Updates β€” New Recommendations"),
    ("8", "Opportunistic Infection Prophylaxis & Management"),
    ("9", "HIV-TB Co-infection"),
    ("10", "PPTCT β€” Prevention of Parent-to-Child Transmission"),
    ("11", "PrEP & PEP"),
    ("12", "Monitoring β€” Viral Load, CD4, Treatment Failure"),
    ("13", "ART in Special Populations"),
    ("14", "Key Summary & Take-Home Points"),
]

col1 = topics[:7]
col2 = topics[7:]

for i, (num, title) in enumerate(col1):
    y = 1.2 + i * 0.76
    add_rect(s, 0.3, y, 0.5, 0.5, RED)
    add_textbox(s, 0.3, y+0.05, 0.5, 0.4, num, 14, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_textbox(s, 0.9, y+0.05, 5.5, 0.5, title, 13, bold=False, color=DARK_NAVY)

for i, (num, title) in enumerate(col2):
    y = 1.2 + i * 0.76
    add_rect(s, 6.9, y, 0.5, 0.5, MID_BLUE)
    add_textbox(s, 6.9, y+0.05, 0.5, 0.4, num, 14, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_textbox(s, 7.45, y+0.05, 5.5, 0.5, title, 13, bold=False, color=DARK_NAVY)

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 3 β€” EPIDEMIOLOGY
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, RED)
add_rect(s, 0, 1.05, 0.07, 6.45, ORANGE)

add_textbox(s, 0.3, 0.15, 12, 0.75, "EPIDEMIOLOGY β€” HIV BURDEN IN INDIA", 26, bold=True, color=WHITE)

# Stat boxes
stats = [
    ("~24 Lakh", "PLHIV in India\n(2023 estimate)"),
    ("~65,000", "New infections\nper year"),
    ("~42,000", "AIDS-related\ndeaths/year"),
    ("78%", "Adults on ART\n(Treatment Coverage)"),
]
for i, (val, label) in enumerate(stats):
    x = 0.4 + i * 3.2
    add_rect(s, x, 1.2, 2.9, 1.5, DARK_NAVY)
    add_textbox(s, x, 1.3, 2.9, 0.85, val, 28, bold=True, color=YELLOW, align=PP_ALIGN.CENTER)
    add_textbox(s, x, 2.1, 2.9, 0.6, label, 11, bold=False, color=WHITE, align=PP_ALIGN.CENTER)

add_rect(s, 0.3, 2.95, 12.5, 0.04, ORANGE)

bullets = [
    "β–Ά  India has the 3rd largest HIV epidemic globally after South Africa and Nigeria",
    "β–Ά  High risk groups: Men who have sex with men (MSM), People who inject drugs (PWID), Sex workers, Transgender persons",
    "β–Ά  States with highest burden: Maharashtra, Andhra Pradesh, Karnataka, Tamil Nadu, Telangana, Manipur",
    "β–Ά  Sexual transmission accounts for ~86% of new infections; PWID ~5%; PPTCT ~4%",
    "β–Ά  NACP-V target: Reduce new infections & AIDS-related deaths by 80% by 2026 (from 2010 baseline)",
    "β–Ά  Global target: End AIDS as public health threat by 2030 (UNAIDS 95-95-95 framework)",
]
add_multiline_tb(s, 0.3, 3.05, 12.5, 4.2, bullets, 13.5, color=DARK_NAVY, spacing=3)

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 4 β€” 95-95-95 TARGETS
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, MID_BLUE)
add_rect(s, 0, 1.05, 0.07, 6.45, RED)

add_textbox(s, 0.3, 0.15, 12, 0.75, "NACP-V GOALS & UNAIDS 95-95-95 TARGETS", 26, bold=True, color=WHITE)

boxes = [
    (RED,      "95%",  "1st 95",  "Of all PLHIV\nknow their\nHIV status"),
    (MID_BLUE, "95%",  "2nd 95",  "Of those who\nknow their status\nare on ART"),
    (TEAL,     "95%",  "3rd 95",  "Of those on ART\nachieve viral\nsuppression"),
]
for i, (col, pct, label, desc) in enumerate(boxes):
    x = 0.8 + i * 4.1
    add_rect(s, x, 1.2, 3.5, 3.8, col)
    add_textbox(s, x, 1.3, 3.5, 1.2, pct, 52, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_textbox(s, x, 2.5, 3.5, 0.5, label, 16, bold=True, color=YELLOW, align=PP_ALIGN.CENTER)
    add_textbox(s, x, 3.05, 3.5, 0.95, desc, 13, color=WHITE, align=PP_ALIGN.CENTER)

add_rect(s, 0.3, 5.2, 12.5, 0.04, ORANGE)

nacp_goals = [
    "NACP-V Strategic Objectives (2021–2026):",
    "β€’ Zero new HIV infections (esp. vertical transmission β€” EMTCT goal)",
    "β€’ Zero AIDS-related deaths (universal access to free ART & OI management)",
    "β€’ Zero discrimination (legal protection, stigma reduction, rights-based approach)",
    "β€’ India's current status: ~78% diagnosed, ~72% on ART, ~89% virally suppressed (among those on ART)",
]
add_multiline_tb(s, 0.3, 5.3, 12.5, 2.0, nacp_goals, 13, color=DARK_NAVY, spacing=2)

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 5 β€” HIV TESTING / DIAGNOSIS
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, DARK_NAVY)
add_rect(s, 0, 1.05, 0.07, 6.45, TEAL)

add_textbox(s, 0.3, 0.15, 12, 0.75, "HIV DIAGNOSIS β€” TESTING ALGORITHM (NACO)", 26, bold=True, color=WHITE)

# Algorithm boxes
steps = [
    (MID_BLUE, "STEP 1 β€” Screening", "Rapid antibody test (ELISA / Rapid Kit 1)\nUsed at ICTC/PPTCT/Blood banks\nReactive β†’ proceed to Step 2"),
    (TEAL,     "STEP 2 β€” Confirmatory", "Repeat reactive with different Rapid Kit 2\n(different antigen / format)\nReactive β†’ proceed to Step 3"),
    (ORANGE,   "STEP 3 β€” Tie-breaker", "Third rapid kit (Kit 3) or Western Blot\nALL 3 reactive = HIV Positive\nDiscordant β†’ HIV-indeterminate β†’ repeat in 14 days"),
]
for i, (col, title, desc) in enumerate(steps):
    x = 0.4 + i * 4.2
    add_rect(s, x, 1.15, 3.8, 0.55, col)
    add_textbox(s, x, 1.2, 3.8, 0.45, title, 13, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_rect(s, x, 1.7, 3.8, 1.6, RGBColor(0xEE, 0xF4, 0xFB))
    add_textbox(s, x+0.1, 1.75, 3.6, 1.5, desc, 12, color=DARK_NAVY)

# Arrows between boxes
for xi in [4.2, 8.4]:
    add_textbox(s, xi, 1.9, 0.4, 0.5, "β†’", 22, bold=True, color=RED, align=PP_ALIGN.CENTER)

add_rect(s, 0.3, 3.45, 12.5, 0.04, MID_BLUE)

points = [
    ("NAT Testing:", "Nucleic Acid Testing β€” used for blood bank screening to detect window period donations"),
    ("Window Period:", "~3–4 weeks (4th gen Ag/Ab), 6 weeks (3rd gen Ab), 3 months (2nd gen). Repeat if high-risk exposure"),
    ("4th Generation tests:", "Detect both p24 Antigen AND anti-HIV antibodies simultaneously β€” reduces window period"),
    ("HIV RNA PCR:", "Used for infant diagnosis <18 months (maternal antibodies confound serology); also virological monitoring"),
    ("CD4 count:", "Not for diagnosis; used at baseline for staging, OI prophylaxis guidance, and monitoring"),
    ("WHO Clinical Staging:", "Stage 1 (Asymptomatic) β†’ Stage 2 (Mild) β†’ Stage 3 (Advanced) β†’ Stage 4 (AIDS-defining)"),
]
y = 3.55
for label, text in points:
    add_multiline_tb(s, 0.4, y, 12.3, 0.45,
                     [(f"● {label}  ", True, RED), (text, False, DARK_NAVY)],
                     12, spacing=0)
    y += 0.5

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 6 β€” ART INITIATION / TREAT ALL
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, RED)
add_rect(s, 0, 1.05, 0.07, 6.45, ORANGE)

add_textbox(s, 0.3, 0.15, 12, 0.75, "ART INITIATION β€” TREAT ALL POLICY", 26, bold=True, color=WHITE)

# Big callout box
add_rect(s, 0.4, 1.15, 12.3, 1.0, DARK_NAVY)
add_textbox(s, 0.5, 1.2, 12.1, 0.9,
            "TREAT ALL:  Initiate ART in ALL HIV-positive individuals regardless of CD4 count or WHO clinical stage",
            19, bold=True, color=YELLOW, align=PP_ALIGN.CENTER)

add_rect(s, 0.3, 2.3, 12.5, 0.04, ORANGE)

col_l = [
    ("When to START:", True, RED),
    ("β€’ All PLHIV β€” regardless of CD4 count or stage (Treat All, since 2017)", False, DARK_NAVY),
    ("β€’ Preferred: Same-day ART (rapid initiation) if patient is ready & no contraindication", False, DARK_NAVY),
    ("β€’ Within 3–5 days if baseline workup needed", False, DARK_NAVY),
    ("", False, DARK_NAVY),
    ("Deferral Situations (temporary):", True, RED),
    ("β€’ Active cryptococcal meningitis β€” defer ART 4–6 weeks post antifungal Rx", False, DARK_NAVY),
    ("β€’ Active TB with CD4 >50 β€” defer ART 8 weeks (start antitubercular first)", False, DARK_NAVY),
    ("β€’ Active TB with CD4 <50 β€” start ART within 2 weeks of ATT", False, DARK_NAVY),
    ("β€’ Severe OI β€” stabilize first, then start ART", False, DARK_NAVY),
]

col_r = [
    ("Benefits of Early ART:", True, MID_BLUE),
    ("β€’ Prevents disease progression & AIDS-defining events", False, DARK_NAVY),
    ("β€’ Reduces incident TB by ~65%", False, DARK_NAVY),
    ("β€’ Prevents HIV transmission (U=U: Undetectable = Untransmittable)", False, DARK_NAVY),
    ("β€’ Reduces non-AIDS co-morbidities (CVD, renal, malignancy)", False, DARK_NAVY),
    ("", False, DARK_NAVY),
    ("IRIS β€” Immune Reconstitution Inflammatory Syndrome:", True, MID_BLUE),
    ("β€’ Paradoxical worsening after ART start", False, DARK_NAVY),
    ("β€’ Most common with TB, Cryptococcus, CMV", False, DARK_NAVY),
    ("β€’ Management: Continue ART; steroids for severe IRIS", False, DARK_NAVY),
]

add_multiline_tb(s, 0.35, 2.4, 6.2, 4.9, col_l, 12, spacing=1)
add_multiline_tb(s, 6.8, 2.4, 6.2, 4.9, col_r, 12, spacing=1)

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 7 β€” FIRST LINE ART REGIMENS
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, MID_BLUE)
add_rect(s, 0, 1.05, 0.07, 6.45, RED)

add_textbox(s, 0.3, 0.15, 12, 0.75, "FIRST-LINE ART REGIMENS β€” ADULTS & ADOLESCENTS", 26, bold=True, color=WHITE)

# Table header
cols_w = [4.0, 3.8, 4.8]
cols_x = [0.3, 4.35, 8.2]
headers = ["Regimen", "Components", "Notes / Indications"]
for i, (hdr, cx, cw) in enumerate(zip(headers, cols_x, cols_w)):
    add_rect(s, cx, 1.1, cw-0.05, 0.52, DARK_NAVY)
    add_textbox(s, cx+0.05, 1.15, cw-0.1, 0.42, hdr, 13, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

rows = [
    ("TLD\n(Preferred)", "TDF + 3TC + DTG\n(Tenofovir + Lamivudine\n+ Dolutegravir)", "WHO 2026 & NACO preferred\nFirst-line for MOST adults\nHigh barrier to resistance"),
    ("TLE\n(Alternative)", "TDF + 3TC + EFV 400mg\n(Efavirenz low dose)", "When DTG not available or\nNeuropsychiatric side-effects\nto DTG"),
    ("ABC/3TC + DTG", "Abacavir + Lamivudine\n+ Dolutegravir", "When TDF contraindicated\n(CrCl <50 mL/min)\nTest HLA-B*5701 before ABC"),
    ("DTG + 3TC\n(2-drug, WHO 2026)", "Dolutegravir + Lamivudine", "NEW WHO 2026 rec.\nTreatment simplification\nfor virally stable adults"),
]
row_colors = [LIGHT_RED, RGBColor(0xE8, 0xF4, 0xFF), RGBColor(0xE8, 0xFF, 0xF0), RGBColor(0xFF, 0xF8, 0xE0)]

for ri, (r0, r1, r2) in enumerate(rows):
    y = 1.65 + ri * 1.18
    rh = 1.15
    for ci, (txt, cx, cw, rc) in enumerate(zip([r0,r1,r2], cols_x, cols_w, [row_colors[ri]]*3)):
        add_rect(s, cx, y, cw-0.05, rh, rc)
        bold_f = (ci == 0)
        col_f = RED if ci == 0 else DARK_NAVY
        add_textbox(s, cx+0.08, y+0.08, cw-0.2, rh-0.1, txt, 11.5, bold=bold_f, color=col_f)

# Bottom note
add_rect(s, 0.3, 6.45, 12.5, 0.05, ORANGE)
add_textbox(s, 0.3, 6.55, 12.5, 0.8,
            "TDF = Tenofovir Disoproxil Fumarate  |  3TC = Lamivudine  |  DTG = Dolutegravir  |  EFV = Efavirenz  |  ABC = Abacavir  |  INSTI = Integrase Strand Transfer Inhibitor",
            10.5, color=RGBColor(0x44, 0x44, 0x66), italic=True)

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 8 β€” SECOND LINE & THIRD LINE ART
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, DARK_NAVY)
add_rect(s, 0, 1.05, 0.07, 6.45, TEAL)

add_textbox(s, 0.3, 0.15, 12, 0.75, "SECOND-LINE & THIRD-LINE ART", 26, bold=True, color=WHITE)

# Left column β€” 2nd line
add_rect(s, 0.3, 1.12, 5.9, 0.5, RED)
add_textbox(s, 0.35, 1.17, 5.8, 0.4, "SECOND-LINE ART", 15, bold=True, color=WHITE)

sl = [
    ("Indication:", "Virological failure on 1st line (VL >1000 c/mL on 2 readings 3 months apart after enhanced adherence counselling)"),
    ("Backbone change:", "Switch BOTH NRTIs:\n  β€’ If 1st line had TDF β†’ switch to AZT + 3TC\n  β€’ If 1st line had AZT β†’ switch to TDF + 3TC"),
    ("Add Boosted PI:", "LPV/r (Lopinavir/ritonavir) β€” standard 2nd line\nDRV/r (Darunavir/ritonavir) β€” WHO 2026 PREFERRED over LPV/r or ATV/r"),
    ("Preferred 2nd line\n(WHO 2026):", "AZT + 3TC + DRV/r\n(or TDF + 3TC + DRV/r if prior AZT-based 1st line)"),
    ("Key point:", "Genotype resistance testing preferred before 2nd line switch if available"),
]
y = 1.7
for label, text in sl:
    add_rect(s, 0.3, y, 1.5, 0.58, MID_BLUE)
    add_textbox(s, 0.32, y+0.05, 1.46, 0.48, label, 10, bold=True, color=WHITE)
    add_rect(s, 1.82, y, 4.35, 0.58, RGBColor(0xEE, 0xF4, 0xFB))
    add_textbox(s, 1.9, y+0.04, 4.2, 0.5, text, 10.5, color=DARK_NAVY)
    y += 0.64

# Right column β€” 3rd line
add_rect(s, 6.9, 1.12, 6.0, 0.5, TEAL)
add_textbox(s, 6.95, 1.17, 5.9, 0.4, "THIRD-LINE ART", 15, bold=True, color=WHITE)

tl = [
    ("Indication:", "Virological failure on 2nd line (PVL >10,000 c/mL confirmed; or PVL 1000–10,000: repeat after 3 months)"),
    ("Management:", "Referral to Paediatric/Adult Centre of Excellence (PCoE / SACEP)"),
    ("Drugs used:", "New drug classes β€” minimal cross-resistance:\nβ€’ Darunavir/ritonavir (if not already used)\nβ€’ Raltegravir / Dolutegravir (if INSTI-naive)\nβ€’ Etravirine (NNRTI 2nd gen)\nβ€’ Maraviroc (CCR5 antagonist)"),
    ("Principle:", "β‰₯2 fully active drugs from β‰₯2 different drug classes"),
    ("Genotype testing:", "Mandatory before 3rd line initiation"),
]
y = 1.7
for label, text in tl:
    add_rect(s, 6.9, y, 1.5, 0.68, ORANGE)
    add_textbox(s, 6.92, y+0.05, 1.46, 0.58, label, 10, bold=True, color=WHITE)
    add_rect(s, 8.42, y, 4.45, 0.68, RGBColor(0xF0, 0xFB, 0xF8))
    add_textbox(s, 8.5, y+0.04, 4.3, 0.6, text, 10.5, color=DARK_NAVY)
    y += 0.74

add_rect(s, 0.3, 6.55, 12.5, 0.04, ORANGE)
add_textbox(s, 0.3, 6.62, 12.5, 0.7,
            "WHO 2026 Update: DRV/r replaces LPV/r and ATV/r as the preferred boosted PI in second-line regimens.  |  Tenofovir and Abacavir may be reused in subsequent regimens.",
            11, color=RED, italic=True, bold=True)

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 9 β€” WHO 2026 UPDATES
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, DARK_NAVY)
add_rect(s, 0, 0, 13.333, 1.05, ORANGE)
add_rect(s, 0, 1.05, 0.07, 6.45, YELLOW)

add_textbox(s, 0.3, 0.1, 12, 0.8, "WHO 2026 HIV GUIDELINES β€” KEY UPDATES (January 2026)", 24, bold=True, color=DARK_NAVY)

updates = [
    ("πŸ”΄", "DTG-based regimens CONFIRMED as preferred option for INITIAL and SUBSEQUENT HIV treatment across all populations"),
    ("πŸ”΄", "DRV/r (Darunavir/Ritonavir) is now PREFERRED boosted PI β€” replaces ATV/r and LPV/r in 2nd-line regimens"),
    ("πŸ”΄", "Long-Acting Injectable ART: CAB-LA (Cabotegravir LA) + RPV-LA (Rilpivirine LA) β€” recommended for adults/adolescents who struggle with daily oral adherence"),
    ("πŸ”΄", "Oral 2-Drug Regimens (e.g., DTG + 3TC) β€” recommended as treatment simplification for clinically stable, virally suppressed adults"),
    ("πŸ”΄", "Tenofovir (TDF/TAF) and Abacavir CAN be reused in subsequent regimens based on improved outcomes evidence"),
    ("πŸ”΅", "TB Preventive Therapy (TPT): 1HP (Isoniazid + Rifapentine weekly x4 wks) now a viable short-course option for PLHIV"),
    ("πŸ”΅", "Vertical Transmission: Updated guidance on ARV prophylaxis for infants β€” strengthened options to achieve EMTCT"),
    ("πŸ”΅", "Viral suppression target: <200 copies/mL (operational) or <50 copies/mL (laboratory) β€” both valid for monitoring"),
]

for i, (icon, text) in enumerate(updates):
    y = 1.1 + i * 0.76
    col = RED if icon == "πŸ”΄" else MID_BLUE
    add_rect(s, 0.3, y, 0.45, 0.62, col)
    add_textbox(s, 0.3, y+0.08, 0.45, 0.46, icon, 14, align=PP_ALIGN.CENTER)
    add_textbox(s, 0.85, y+0.08, 12.1, 0.55, text, 13, color=WHITE)

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 10 β€” OI PROPHYLAXIS & MANAGEMENT
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, TEAL)
add_rect(s, 0, 1.05, 0.07, 6.45, RED)

add_textbox(s, 0.3, 0.15, 12.5, 0.75, "OPPORTUNISTIC INFECTION PROPHYLAXIS & MANAGEMENT", 24, bold=True, color=WHITE)

# Table
hdrs = ["OI", "When (CD4)", "Prophylaxis Drug", "Treatment Drug", "Duration"]
hw   = [1.8, 1.5, 2.5, 3.5, 2.0]
hx   = [0.3, 2.12, 3.65, 6.18, 9.7]
for h, cx, cw in zip(hdrs, hx, hw):
    add_rect(s, cx, 1.1, cw-0.05, 0.48, DARK_NAVY)
    add_textbox(s, cx+0.05, 1.15, cw-0.1, 0.38, h, 12, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

rows = [
    ("PCP\n(P. jirovecii)", "<200\nor stage 3/4", "Co-trimoxazole\n(TMP-SMX DS OD)", "TMP-SMX high dose\nx 21 days", "Until CD4 >200\nfor β‰₯3 months"),
    ("Toxoplasma", "<100\n(or Toxo IgG+)", "Co-trimoxazole DS BD\nor TMP-SMX DS OD", "Pyrimeth+Sulfadiazine\n+ Folinic acid x 6wk", "Secondary: lifelong\nuntil CD4 >200"),
    ("MAC", "<50", "Azithromycin 1200mg\nweekly", "Clarithromycin +\nEthambutol Β± Rifabutin", "Lifelong unless\nCD4 >100 sustained"),
    ("Cryptococcus\n(secondary)", "After treatment\ncomplete", "Fluconazole 200mg OD", "Amphotericin B +\nFlucytosine (induction)", "Consolidation:\nFluconazole 400mg x8wk\nMaintenance: 200mg lifelong"),
    ("CMV Retinitis", "<50", "No routine prophylaxis;\nscreen at CD4 <50", "Ganciclovir IV /\nValganciclovir oral", "Until CD4 >100\nfor β‰₯3–6 months"),
]
row_bgs = [LIGHT_RED, RGBColor(0xE8,0xF4,0xFF), RGBColor(0xE8,0xFF,0xF0), RGBColor(0xFF,0xF8,0xE0), RGBColor(0xF0,0xEC,0xFF)]

for ri, row in enumerate(rows):
    y = 1.62 + ri * 1.0
    rh = 0.95
    for ci, (txt, cx, cw) in enumerate(zip(row, hx, hw)):
        add_rect(s, cx, y, cw-0.05, rh, row_bgs[ri])
        fc = RED if ci == 0 else DARK_NAVY
        add_textbox(s, cx+0.06, y+0.06, cw-0.15, rh-0.1, txt, 10.5, color=fc, bold=(ci==0))

add_rect(s, 0.3, 6.65, 12.5, 0.04, TEAL)
add_textbox(s, 0.3, 6.7, 12.5, 0.65,
            "Co-trimoxazole Prophylaxis (CTX) is given to ALL PLHIV with CD4 <200 or WHO Stage 3/4. Stop CTX when CD4 >200 for β‰₯3 months on ART.",
            11.5, color=MID_BLUE, bold=True)

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 11 β€” HIV-TB CO-INFECTION
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, RED)
add_rect(s, 0, 1.05, 0.07, 6.45, MID_BLUE)

add_textbox(s, 0.3, 0.15, 12.5, 0.75, "HIV-TB CO-INFECTION", 26, bold=True, color=WHITE)

add_rect(s, 0.3, 1.1, 12.5, 0.65, DARK_NAVY)
add_textbox(s, 0.4, 1.18, 12.3, 0.52,
            "TB is the MOST COMMON OI and leading cause of death in PLHIV in India. Risk of TB is 20x higher in PLHIV vs HIV-negative individuals.",
            14, color=YELLOW, bold=True)

# Two columns
left = [
    ("Diagnosis:", "β€’ Screen ALL PLHIV for TB at every visit (4-symptom screen: cough, fever, weight loss, night sweats)\nβ€’ GeneXpert MTB/RIF first-line rapid test\nβ€’ AFB smear Β± culture (LJ / MGIT)\nβ€’ CXR: may be atypical β€” miliary, lower-lobe, no cavitation\nβ€’ CBNAAT useful for extrapulmonary TB"),
    ("TB Treatment in PLHIV:", "β€’ Standard 2HRZE + 4HR (rifampicin-based)\nβ€’ Same regimen as HIV-negative\nβ€’ Toxicity monitoring more important\nβ€’ Drug interactions with ART must be managed"),
    ("ART-ATT Interaction:", "β€’ Rifampicin induces CYP3A4 β†’ reduces PI and INSTI levels\nβ€’ Use EFV 600mg OD (not DTG) with rifampicin-based ATT\nβ€’ OR: use DTG 50mg BD (double dose) with rifampicin\nβ€’ AVOID: LPV/r or ATV/r with rifampicin"),
]
right = [
    ("When to Start ART:", "β€’ CD4 <50: Start ART within 2 WEEKS of ATT\nβ€’ CD4 β‰₯50: Start ART within 8 WEEKS of ATT\nβ€’ TB Meningitis: Defer ART 8 weeks (IRIS risk is high)\nβ€’ NEVER delay ATT for ART workup"),
    ("TB Preventive Therapy (TPT):", "β€’ Indicated for ALL PLHIV without active TB\nβ€’ 6H: Isoniazid 300mg OD x 6 months (NACO standard)\nβ€’ 3HP: Isoniazid + Rifapentine weekly x 12 wks (WHO)\nβ€’ 1HP: Isoniazid + Rifapentine weekly x 4 wks (WHO 2026 new rec)\nβ€’ Rule out active TB before starting TPT"),
    ("Drug-Resistant TB:", "β€’ XDR-TB: Use ART regimens that avoid drug interactions\nβ€’ Avoid rifampicin-based regimens β†’ use Bedaquiline-based\nβ€’ Bedaquiline: QTc prolongation β€” monitor with ART (EFV-QTc)"),
]

y = 1.9
for label, text in left:
    add_rect(s, 0.3, y, 1.4, 0.38, MID_BLUE)
    add_textbox(s, 0.32, y+0.04, 1.36, 0.3, label, 10, bold=True, color=WHITE)
    add_rect(s, 1.72, y, 4.7, 0.38, RGBColor(0xEE, 0xF4, 0xFB))
    add_textbox(s, 1.8, y+0.02, 4.6, 0.5, text, 9.5, color=DARK_NAVY)
    y += 1.42

y = 1.9
for label, text in right:
    add_rect(s, 6.8, y, 1.5, 0.38, RED)
    add_textbox(s, 6.82, y+0.04, 1.46, 0.3, label, 10, bold=True, color=WHITE)
    add_rect(s, 8.32, y, 4.7, 0.38, LIGHT_RED)
    add_textbox(s, 8.4, y+0.02, 4.6, 0.5, text, 9.5, color=DARK_NAVY)
    y += 1.42

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 12 β€” PPTCT
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, MID_BLUE)
add_rect(s, 0, 1.05, 0.07, 6.45, ORANGE)

add_textbox(s, 0.3, 0.15, 12.5, 0.75, "PPTCT β€” PREVENTION OF PARENT-TO-CHILD TRANSMISSION", 24, bold=True, color=WHITE)

# Transmission risk boxes
risks = [
    ("No ARV\nBreastfeeding", "30–45%"),
    ("No ARV\nNo Breastfeeding", "20–25%"),
    ("Short course ARV\nBreastfeeding", "15–25%"),
    ("Full ART\nNo Breastfeeding", "<2%"),
]
for i, (label, risk) in enumerate(risks):
    x = 0.4 + i * 3.2
    col = RED if i < 2 else (ORANGE if i==2 else TEAL)
    add_rect(s, x, 1.1, 2.9, 1.1, col)
    add_textbox(s, x, 1.15, 2.9, 0.52, risk, 26, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_textbox(s, x, 1.67, 2.9, 0.5, label, 11, color=WHITE, align=PP_ALIGN.CENTER)

add_rect(s, 0.3, 2.35, 12.5, 0.04, MID_BLUE)

cols_data = [
    [
        ("Testing:", "All pregnant women offered HIV testing at 1st ANC visit (opt-out PPTCT)\nRepeat test at 3rd trimester if initially negative"),
        ("ART in Pregnancy:", "Start TLE or TLD (TDF + 3TC + DTG preferred)\nLifelong ART for ALL HIV+ pregnant women regardless of CD4\nOption B+ β€” lifelong ART initiated at ANC, continued postpartum"),
        ("Labour:", "Institutional delivery mandatory\nAvoid ARM, episiotomy unless necessary\nNo contraindication to vaginal delivery"),
    ],
    [
        ("Infant Prophylaxis:", "Nevirapine (NVP) 2mg/kg OD for 6 weeks (if mother on ART for >4 weeks)\nNVP + AZT if mother NOT on ART or on ART <4 weeks (high risk)"),
        ("Infant Feeding:", "Exclusive breastfeeding x 6 months with maternal ART\n(Formula feeding ONLY if replacement feeding is AFASS*)\n*Affordable, Feasible, Acceptable, Sustainable, Safe"),
        ("Infant Diagnosis:", "HIV DNA PCR (NAT) at 6 weeks and 6 months of age\nIf NAT positive β†’ start infant ART immediately\nIf NAT negative but breastfed β†’ test again 6 wks after cessation"),
    ]
]

y = 2.45
for label, text in cols_data[0]:
    add_rect(s, 0.3, y, 1.5, 0.42, MID_BLUE)
    add_textbox(s, 0.32, y+0.05, 1.46, 0.32, label, 10, bold=True, color=WHITE)
    add_textbox(s, 1.82, y+0.03, 4.6, 0.55, text, 10, color=DARK_NAVY)
    y += 1.3

y = 2.45
for label, text in cols_data[1]:
    add_rect(s, 6.8, y, 1.5, 0.42, ORANGE)
    add_textbox(s, 6.82, y+0.05, 1.46, 0.32, label, 10, bold=True, color=WHITE)
    add_textbox(s, 8.32, y+0.03, 4.7, 0.55, text, 10, color=DARK_NAVY)
    y += 1.3

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 13 β€” PrEP & PEP
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, DARK_NAVY)
add_rect(s, 0, 1.05, 0.07, 6.45, TEAL)

add_textbox(s, 0.3, 0.15, 12.5, 0.75, "PrEP (PRE-EXPOSURE PROPHYLAXIS) & PEP (POST-EXPOSURE PROPHYLAXIS)", 22, bold=True, color=WHITE)

# PrEP column
add_rect(s, 0.3, 1.1, 6.0, 0.5, TEAL)
add_textbox(s, 0.35, 1.15, 5.9, 0.4, "PrEP", 18, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

prep_items = [
    ("Indication:", "HIV-negative persons at high risk:\nMSM, Sex workers, discordant couples, PWID"),
    ("Drug:", "TDF + FTC (Tenofovir + Emtricitabine) OD β€” Daily PrEP\nOR: Cabotegravir LA (CAB-LA) injectable q8 weeks (WHO 2026)"),
    ("Protocol:", "β€’ Confirm HIV-negative status before starting\nβ€’ Baseline renal function (eGFR)\nβ€’ Repeat HIV test every 3 months\nβ€’ STI screening every 6 months"),
    ("Efficacy:", "Daily oral PrEP: ~90–99% reduction in HIV acquisition\nCAB-LA: Superior to TDF/FTC in MSM (HPTN 083 trial)"),
    ("2-1-1 (Event-driven):", "For MSM: 2 pills 2–24h before sex, 1 pill 24h after,\n1 pill 48h after (Truvada only β€” NOT for PWID or women)"),
]
y = 1.68
for label, text in prep_items:
    add_rect(s, 0.3, y, 1.4, 0.5, RGBColor(0x00, 0x7B, 0x83))
    add_textbox(s, 0.32, y+0.06, 1.36, 0.38, label, 9.5, bold=True, color=WHITE)
    add_rect(s, 1.72, y, 4.55, 0.5, RGBColor(0xE8, 0xFB, 0xFB))
    add_textbox(s, 1.8, y+0.04, 4.45, 0.55, text, 10, color=DARK_NAVY)
    y += 0.58

# PEP column
add_rect(s, 6.9, 1.1, 6.0, 0.5, RED)
add_textbox(s, 6.95, 1.15, 5.9, 0.4, "PEP", 18, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

pep_items = [
    ("Indication:", "Potential HIV exposure (occupational or non-occupational):\nNeedle stick, sexual assault, condom failure, PWID needle sharing"),
    ("Timing:", "Start ASAP β€” within 72 hours of exposure\nDelay >72 hours: PEP NOT recommended (ineffective)"),
    ("Duration:", "28 days of continuous ART (full 4-week course is mandatory)"),
    ("Preferred Regimen\n(NACO):", "TDF + 3TC (or FTC) + DTG 50mg OD\nAlternative: TDF + 3TC + LPV/r (if DTG unavailable)"),
    ("Monitoring:", "β€’ Baseline HIV test; repeat at 6 wks, 3 months, 6 months\nβ€’ Check renal function (TDF toxicity)\nβ€’ Counsel on safer sex during PEP course"),
    ("Counselling:", "Address: adherence, side effects, risk reduction,\npartner testing, linkage to care if HIV+ confirmed"),
]
y = 1.68
for label, text in pep_items:
    add_rect(s, 6.9, y, 1.5, 0.5, RED)
    add_textbox(s, 6.92, y+0.06, 1.46, 0.38, label, 9.5, bold=True, color=WHITE)
    add_rect(s, 8.42, y, 4.45, 0.5, LIGHT_RED)
    add_textbox(s, 8.5, y+0.04, 4.35, 0.55, text, 10, color=DARK_NAVY)
    y += 0.58

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 14 β€” MONITORING (VL, CD4, Treatment Failure)
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, MID_BLUE)
add_rect(s, 0, 1.05, 0.07, 6.45, ORANGE)

add_textbox(s, 0.3, 0.15, 12.5, 0.75, "MONITORING β€” VIRAL LOAD, CD4 & TREATMENT FAILURE", 24, bold=True, color=WHITE)

# Monitoring schedule table
add_rect(s, 0.3, 1.1, 12.5, 0.5, DARK_NAVY)
for hdr, cx, cw in [("Parameter", 0.3, 2.5), ("Baseline", 2.82, 2.5), ("3 Months", 5.34, 2.5), ("6 Months", 7.86, 2.5), ("12 Months+", 10.38, 2.42)]:
    add_textbox(s, cx+0.05, 1.15, cw-0.1, 0.38, hdr, 12, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

mon_rows = [
    ("Viral Load", "Yes", "Yes\n(assess adherence)", "Yes\n(target <1000 c/mL)", "Every 6 months\n(target <50 c/mL)"),
    ("CD4 Count", "Yes", "Yes", "Yes\n(not mandatory if VL stable)", "Every 6–12 months;\ndiscontinue if VL suppressed & stable"),
    ("LFT/RFT/CBC", "Yes\n(baseline)", "If symptomatic", "If symptomatic", "Annually or as needed"),
    ("HBsAg/HCV", "Yes", "β€”", "β€”", "Repeat if new risk exposure"),
    ("Lipid Profile", "Yes (EFV/LPV)", "β€”", "β€”", "Annually on PI regimens"),
]
row_bg2 = [RGBColor(0xF5,0xF5,0xFF), LIGHT_RED, RGBColor(0xF0,0xFB,0xF0), RGBColor(0xFF,0xFB,0xED), RGBColor(0xF5,0xF0,0xFF)]
for ri, row in enumerate(mon_rows):
    y = 1.63 + ri * 0.72
    for ci, (txt, cx, cw) in enumerate(zip(row, [0.3,2.82,5.34,7.86,10.38], [2.5,2.5,2.5,2.5,2.42])):
        add_rect(s, cx, y, cw-0.05, 0.68, row_bg2[ri])
        fc = RED if ci==0 else DARK_NAVY
        add_textbox(s, cx+0.08, y+0.06, cw-0.18, 0.56, txt, 10.5, color=fc, bold=(ci==0), align=PP_ALIGN.CENTER)

add_rect(s, 0.3, 5.25, 12.5, 0.04, MID_BLUE)

failure_defs = [
    ("Virological Failure:", "VL >1000 c/mL on 2 readings 3 months apart AFTER Enhanced Adherence Counselling (EAC) x3 sessions"),
    ("Immunological Failure:", "CD4 <250 after clinical failure  OR  Persistent CD4 <100  (confirm with VL before switching)"),
    ("Clinical Failure:", "New or recurrent WHO Stage 3/4 event after β‰₯6 months on ART (rule out IRIS first)"),
    ("EAC:", "3 Enhanced Adherence Counselling sessions over 3 months before confirming virological failure and switching"),
]
y = 5.35
for label, text in failure_defs:
    add_multiline_tb(s, 0.4, y, 12.4, 0.45,
                     [(f"β–Ά {label}  ", True, RED), (text, False, DARK_NAVY)], 11.5, spacing=0)
    y += 0.5

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 15 β€” ART IN SPECIAL POPULATIONS
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, LIGHT_BG)
add_rect(s, 0, 0, 13.333, 1.05, DARK_NAVY)
add_rect(s, 0, 1.05, 0.07, 6.45, ORANGE)

add_textbox(s, 0.3, 0.15, 12.5, 0.75, "ART IN SPECIAL POPULATIONS", 26, bold=True, color=WHITE)

populations = [
    (MID_BLUE, "Pregnancy",
     "β€’ TDF + 3TC + DTG preferred (Option B+)\n"
     "β€’ Avoid EFV in 1st trimester (neural tube defect risk β€” though evidence reassuring with low-dose)\n"
     "β€’ Monitor: NTDs if DTG started peri-conception (small increased risk β€” counsel patient)\n"
     "β€’ Lifelong ART regardless of CD4"),
    (TEAL, "Renal Impairment\n(CrCl <50 mL/min)",
     "β€’ AVOID TDF (nephrotoxic)\n"
     "β€’ Use ABC + 3TC + DTG or AZT + 3TC + DTG\n"
     "β€’ TAF (Tenofovir Alafenamide) safer for kidneys (not yet widely available in India)\n"
     "β€’ Monitor creatinine, phosphate, proteinuria"),
    (ORANGE, "Hepatic Disease\n(HBV/HCV Co-infection)",
     "β€’ If HBV co-infected: Always include TDF in ART (TDF treats both HIV & HBV)\n"
     "β€’ AVOID: stopping TDF suddenly (HBV flare)\n"
     "β€’ HCV co-infection: DAA therapy preferred (ledipasvir/sofosbuvir); check drug interactions\n"
     "β€’ LFT monitoring mandatory"),
    (RED, "Children (<15 yrs)",
     "β€’ Preferred: ABC + 3TC + DTG (weight-based dosing)\n"
     "β€’ <3 years: LPV/r-based (DTG granules now available)\n"
     "β€’ Diagnosis by NAT (DNA PCR) <18 months\n"
     "β€’ EFV-based regimens in older children (>3 yrs)"),
    (RGBColor(0x5A, 0x1F, 0x7A), "TB-HIV\n(See Slide 11)",
     "β€’ Use EFV 600mg or DTG 50mg BD with rifampicin-based ATT\n"
     "β€’ AVOID LPV/r or ATV/r with rifampicin (reduced PI levels)\n"
     "β€’ Start ART timing depends on CD4 count"),
    (RGBColor(0x1A, 0x6B, 0x3A), "Cryptococcal Meningitis",
     "β€’ DEFER ART 4–6 weeks after antifungal induction\n"
     "β€’ Induction: Amphotericin B + Flucytosine x 2 wks\n"
     "β€’ Consolidation: Fluconazole 400mg OD x 8 wks\n"
     "β€’ Maintenance: Fluconazole 200mg OD (lifelong until CD4 >200)"),
]

positions = [(0.3, 1.1), (6.9, 1.1), (0.3, 2.95), (6.9, 2.95), (0.3, 4.8), (6.9, 4.8)]
for (x, y), (col, title, content) in zip(positions, populations):
    add_rect(s, x, y, 6.2, 1.72, col)
    add_textbox(s, x+0.1, y+0.06, 6.0, 0.48, title, 13, bold=True, color=WHITE)
    add_textbox(s, x+0.1, y+0.55, 6.0, 1.12, content, 10.5, color=WHITE)

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 16 β€” TAKE-HOME SUMMARY
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, DARK_NAVY)
add_rect(s, 0, 0, 13.333, 1.05, RED)
add_rect(s, 0, 1.05, 0.07, 6.45, YELLOW)

add_textbox(s, 0.3, 0.15, 12.5, 0.75, "KEY SUMMARY β€” TAKE-HOME POINTS", 26, bold=True, color=WHITE)

key_points = [
    ("1", "TREAT ALL β€” Start ART in ALL HIV+ individuals immediately, regardless of CD4 or stage. Prefer same-day initiation."),
    ("2", "TLD (TDF+3TC+DTG) is the PREFERRED first-line ART for most adults (NACO & WHO 2026 confirmed)."),
    ("3", "WHO 2026 Update: DRV/r is the NEW preferred boosted PI (replaces LPV/r and ATV/r) for second-line ART."),
    ("4", "WHO 2026: Long-acting injectable ART (CAB-LA + RPV-LA) recommended for adherence-challenged patients."),
    ("5", "WHO 2026: Oral 2-drug regimen (DTG + 3TC) is an option for stable, virally suppressed adults."),
    ("6", "HIV-TB: ATT first. Add ART within 2 weeks if CD4 <50, within 8 weeks if CD4 β‰₯50. Use EFV or DTG BD with rifampicin."),
    ("7", "Viral Load is the GOLD STANDARD for monitoring ART. Target VL <1000 c/mL; do EAC x3 before switching."),
    ("8", "CTX prophylaxis for ALL PLHIV with CD4 <200 or WHO Stage 3/4. Stop only after sustained CD4 >200 on ART."),
    ("9", "PPTCT Option B+: All HIV+ pregnant women on lifelong ART (TDF+3TC+DTG preferred)."),
    ("10", "PEP must start within 72 hours. Preferred regimen: TDF + 3TC + DTG x 28 days."),
    ("11", "U=U: Undetectable = Untransmittable β€” virally suppressed PLHIV do NOT transmit HIV sexually."),
    ("12", "NACP-V target (2026): 80% reduction in new infections & deaths vs 2010 baseline; 95-95-95 framework."),
]

for i, (num, point) in enumerate(key_points):
    col = i % 2
    row = i // 2
    x = 0.3 if col == 0 else 6.9
    y = 1.1 + row * 1.05
    add_rect(s, x, y, 0.45, 0.85, RED if col==0 else ORANGE)
    add_textbox(s, x, y+0.18, 0.45, 0.45, num, 15, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_rect(s, x+0.45, y, 5.9, 0.85, RGBColor(0x14, 0x35, 0x65))
    add_textbox(s, x+0.55, y+0.1, 5.75, 0.68, point, 11, color=WHITE)

# ════════════════════════════════════════════════════════════════════════════
# SLIDE 17 β€” REFERENCES / THANK YOU
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank)
add_rect(s, 0, 0, 13.333, 7.5, DARK_NAVY)
add_rect(s, 0, 0, 13.333, 0.12, RED)
add_rect(s, 0, 7.38, 13.333, 0.12, ORANGE)
add_rect(s, 0, 1.05, 0.07, 6.3, RED)

add_textbox(s, 0.3, 0.18, 12.5, 0.75, "REFERENCES & ACKNOWLEDGEMENTS", 22, bold=True, color=WHITE)

refs = [
    "1.  National Guidelines for HIV Care and Treatment 2021. National AIDS Control Organisation (NACO), Ministry of Health & Family Welfare, Govt. of India.",
    "2.  WHO Updated Recommendations on HIV Clinical Management β€” January 7, 2026. World Health Organization, Geneva.",
    "3.  NACP-V National Strategic Plan on HIV/AIDS & STIs (2021–2026). NACO, MoHFW, India.",
    "4.  National HIV Counselling and Testing Guidelines 2024. NACO / FOGSI. December 2024.",
    "5.  Goldman-Cecil Medicine, 27th Edition β€” Chapter 353: HIV/AIDS Management.",
    "6.  India HIV Estimates 2023: Technical Brief. NACO & ICMR-NIMS, New Delhi.",
    "7.  WHO Consolidated Guidelines on HIV, Viral Hepatitis and STIs for Key Populations, 2022.",
    "8.  UNAIDS Global AIDS Update 2025: Progress Towards 95-95-95 Targets.",
    "9.  NACO Operational Guidelines for ART Services, 2022.",
    "10. National Guidelines on Prevention, Management and Control of RTI/STI, MOH&FW, 2014.",
]
add_multiline_tb(s, 0.4, 1.15, 12.3, 5.2, refs, 12.5, color=RGBColor(0xCC, 0xDD, 0xFF), spacing=4)

add_rect(s, 2.5, 6.3, 8.3, 0.04, ORANGE)
add_textbox(s, 0.3, 6.4, 12.5, 0.7,
            "NACO Helpline: 1097 (Toll Free, 24Γ—7)  |  www.naco.gov.in  |  PLHIV Support: ART Centres across India",
            14, bold=True, color=ORANGE, align=PP_ALIGN.CENTER)

# ════════════════════════════════════════════════════════════════════════════
# SAVE
# ════════════════════════════════════════════════════════════════════════════
output = "/tmp/workspace/naco2026-ppt/NACO_2026_HIV_Guidelines_MD_Medicine.pptx"
prs.save(output)
print(f"Saved: {output}")
Running Command

cd /tmp/workspace/naco2026-ppt && python build_pptx.py

Running Command

python3 -c " from pptx import Presentation prs = Presentation('/tmp/workspace/naco2026-ppt/NACO_2026_HIV_Guidelines_MD_Medicine.pptx') print(f'Total slides: {len(prs.slides)}') for i, slide in enumerate(prs.slides, 1): texts = [sh.text_frame.text.strip()[:60] for sh in slide.shapes if sh.has_text_frame and sh.text_frame.text.strip()] print(f' Slide {i:2d}: {texts[0] if texts else \"(empty)\"}') "

Lo bhai, tayyar hai! πŸŽ‰ Download karo:

NACO 2026 HIV Guidelines MD Medicine

Presentation Β· PPTX


Presentation mein kya-kya hai β€” 17 slides, MD Medicine level:

SlideTopic
1Title Slide β€” NACO 2026 Guidelines
2Outline / Index
3Epidemiology β€” India HIV burden (24 lakh PLHIV, ~65K new infections/yr)
4NACP-V Goals & UNAIDS 95-95-95 Targets
5HIV Diagnosis β€” NACO 3-kit testing algorithm, NAT, window period
6ART Initiation β€” Treat All policy, deferral situations, IRIS
7First-Line ART (TLD preferred, TLE alternative, 2-drug regimen)
8Second-Line & Third-Line ART with failure criteria
9WHO 2026 New Updates β€” DRV/r, CAB-LA, 2-drug regimen, TPT
10OI Prophylaxis table (PCP, Toxo, MAC, Cryptococcus, CMV)
11HIV-TB Co-infection β€” timing, drug interactions, rifampicin + DTG/EFV
12PPTCT β€” transmission risks table, Option B+, infant prophylaxis
13PrEP (TDF/FTC, CAB-LA) & PEP (TDF+3TC+DTG)
14Monitoring β€” VL, CD4, treatment failure definitions, EAC
15ART in Special Populations (pregnancy, renal, HBV, children, crypto)
16Key Take-Home 12 points
17References & Acknowledgements
Design: Dark navy/red color scheme, color-coded tables, stat boxes, and clear clinical tables β€” MD seminar-ready. πŸ’ͺ
This is a shared conversation. Sign in to Orris to start your own chat.