Intensified Diarrhoea Control Fortnight (IDCF)/ORS-Zinc Week. Create a detailed and descriptive ppt

Reading File
Reading File
Searching the Web

Intensified Diarrhoea Control Fortnight IDCF ORS Zinc Week India program details 2024 2025

Reading File
Reading Web Page

https://nhm.gov.in/index1.php?lang=1&level=0&linkid=501&lid=…

Finding Sources
Reading File
Reading File
Finding Sources
Running Command

mkdir -p /tmp/workspace/IDCF-PPT

Writing File

~/IDCF-PPT/create_ppt.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
from io import BytesIO

# ─── Color Palette ───────────────────────────────────────────────
TEAL_DARK   = RGBColor(0x00, 0x6A, 0x6A)   # header bg, accents
TEAL_MID    = RGBColor(0x00, 0x96, 0x88)   # sub-headers
TEAL_LIGHT  = RGBColor(0xB2, 0xDF, 0xDB)   # light fill
ORANGE      = RGBColor(0xE6, 0x5C, 0x00)   # highlight / key figures
YELLOW      = RGBColor(0xFF, 0xC1, 0x07)   # icon accent
WHITE       = RGBColor(0xFF, 0xFF, 0xFF)
DARK_TEXT   = RGBColor(0x21, 0x21, 0x21)
LIGHT_GRAY  = RGBColor(0xF5, 0xF5, 0xF5)
GRAY_TEXT   = RGBColor(0x55, 0x55, 0x55)
GREEN       = RGBColor(0x2E, 0x7D, 0x32)
LIGHT_GREEN = RGBColor(0xC8, 0xE6, 0xC9)
BLUE        = RGBColor(0x15, 0x65, 0xC0)
LIGHT_BLUE  = RGBColor(0xBB, 0xDE, 0xFB)
RED         = RGBColor(0xC6, 0x28, 0x28)
LIGHT_RED   = RGBColor(0xFF, 0xCD, 0xD2)

prs = Presentation()
prs.slide_width  = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]

# ─── Helper: add rectangle ───────────────────────────────────────
def add_rect(slide, x, y, w, h, fill_color, line_color=None, line_width=None):
    shape = slide.shapes.add_shape(1, Inches(x), Inches(y), Inches(w), Inches(h))
    shape.fill.solid()
    shape.fill.fore_color.rgb = fill_color
    if line_color:
        shape.line.color.rgb = line_color
        if line_width:
            shape.line.width = Pt(line_width)
    else:
        shape.line.fill.background()
    return shape

# ─── Helper: add textbox ─────────────────────────────────────────
def add_text(slide, text, x, y, w, h, font_size, color, bold=False,
             align=PP_ALIGN.LEFT, italic=False, wrap=True, anchor=MSO_ANCHOR.TOP):
    tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = wrap
    tf.vertical_anchor = anchor
    tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0
    p = tf.paragraphs[0]
    p.alignment = align
    run = p.add_run()
    run.text = text
    run.font.size = Pt(font_size)
    run.font.color.rgb = color
    run.font.bold = bold
    run.font.italic = italic
    return tb

# ─── Helper: add multi-paragraph textbox ─────────────────────────
def add_multiline(slide, lines, x, y, w, h, font_size, color, bold=False,
                  align=PP_ALIGN.LEFT, line_spacing=None, wrap=True):
    tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = wrap
    tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0
    for i, line in enumerate(lines):
        if i == 0:
            p = tf.paragraphs[0]
        else:
            p = tf.add_paragraph()
        p.alignment = align
        if line_spacing:
            from pptx.util import Pt as _Pt
            from pptx.oxml.ns import qn
            from lxml import etree
            pPr = p._pPr
            if pPr is None:
                pPr = p._p.get_or_add_pPr()
            lnSpc = etree.SubElement(pPr, qn('a:lnSpc'))
            spcPct = etree.SubElement(lnSpc, qn('a:spcPct'))
            spcPct.set('val', str(int(line_spacing * 1000)))
        run = p.add_run()
        run.text = line
        run.font.size = Pt(font_size)
        run.font.color.rgb = color
        run.font.bold = bold
    return tb

# ─── Helper: header bar ──────────────────────────────────────────
def add_header(slide, title, subtitle=None):
    add_rect(slide, 0, 0, 13.333, 1.05, TEAL_DARK)
    add_rect(slide, 0, 1.05, 13.333, 0.07, ORANGE)
    add_text(slide, title, 0.35, 0.08, 12.5, 0.65, 28, WHITE, bold=True, align=PP_ALIGN.LEFT)
    if subtitle:
        add_text(slide, subtitle, 0.35, 0.7, 12.5, 0.38, 14, TEAL_LIGHT, bold=False, align=PP_ALIGN.LEFT)

# ─── Helper: footer ──────────────────────────────────────────────
def add_footer(slide, text="Source: NHM, MoHFW, GoI  |  Park's Textbook of PSM"):
    add_rect(slide, 0, 7.22, 13.333, 0.28, TEAL_DARK)
    add_text(slide, text, 0.3, 7.24, 12.7, 0.24, 9, TEAL_LIGHT, align=PP_ALIGN.LEFT)

# ─── Helper: bullet block ────────────────────────────────────────
def bullet_block(slide, bullets, x, y, w, h, font_size=12, color=DARK_TEXT, bullet_char="●"):
    tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = 0; tf.margin_right = 0
    tf.margin_top = Pt(2); tf.margin_bottom = Pt(2)
    for i, (b_char, txt) in enumerate(bullets):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.alignment = PP_ALIGN.LEFT
        r1 = p.add_run()
        r1.text = b_char + "  "
        r1.font.size = Pt(font_size)
        r1.font.color.rgb = TEAL_MID
        r1.font.bold = True
        r2 = p.add_run()
        r2.text = txt
        r2.font.size = Pt(font_size)
        r2.font.color.rgb = color

# ==================================================================
#  SLIDE 1 – TITLE SLIDE
# ==================================================================
slide = prs.slides.add_slide(blank)
# Full background gradient-like blocks
add_rect(slide, 0, 0, 13.333, 7.5, TEAL_DARK)
add_rect(slide, 0, 4.6, 13.333, 2.9, RGBColor(0x00, 0x4D, 0x4D))
# Big orange accent bar
add_rect(slide, 0, 2.15, 0.18, 2.0, ORANGE)
# Title
add_text(slide, "Intensified Diarrhoea Control Fortnight", 0.5, 0.7, 12.3, 1.0, 36, WHITE, bold=True, align=PP_ALIGN.LEFT)
add_text(slide, "(IDCF) / ORS-Zinc Week", 0.5, 1.65, 12.3, 0.75, 30, YELLOW, bold=True, align=PP_ALIGN.LEFT)
# Tagline
add_rect(slide, 0.5, 2.5, 9.5, 0.6, ORANGE)
add_text(slide, '"Zero Child Deaths Due to Childhood Diarrhoea"', 0.6, 2.52, 9.3, 0.56, 16, WHITE, bold=True, align=PP_ALIGN.LEFT)
# Sub info
add_multiline(slide, [
    "Ministry of Health & Family Welfare, Government of India",
    "National Health Mission (NHM)  |  Observed annually since 2014",
    "Pre-Monsoon / Monsoon Season  —  July–August",
], 0.5, 3.3, 10, 1.1, 14, TEAL_LIGHT, align=PP_ALIGN.LEFT)
# Right accent box
add_rect(slide, 10.2, 3.0, 2.9, 3.5, RGBColor(0x00, 0x4D, 0x4D))
add_text(slide, "🩺", 10.7, 3.2, 2.0, 1.0, 48, WHITE, align=PP_ALIGN.CENTER)
add_text(slide, "Child Health", 10.5, 4.1, 2.4, 0.4, 13, TEAL_LIGHT, bold=True, align=PP_ALIGN.CENTER)
add_text(slide, "ORS  |  Zinc  |  WASH", 10.3, 4.5, 2.7, 0.4, 12, YELLOW, bold=False, align=PP_ALIGN.CENTER)
add_text(slide, "Prevention  |  Treatment", 10.3, 4.9, 2.7, 0.4, 12, TEAL_LIGHT, align=PP_ALIGN.CENTER)

# ==================================================================
#  SLIDE 2 – BACKGROUND & BURDEN OF DIARRHOEA
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Background & Burden of Childhood Diarrhoea", "Why diarrhoea control is a national priority")

# Left column – stat boxes
stats = [
    ("~1.3 Million",  "child deaths globally/year\ndue to diarrhoea (WHO)"),
    ("2nd Leading",   "cause of under-5 mortality\nworldwide"),
    ("~13%",          "of under-5 deaths in India\nattributed to diarrhoea"),
    ("Preventable",   "Most deaths are preventable\nwith ORS + Zinc"),
]
for i, (val, desc) in enumerate(stats):
    col = i % 2
    row = i // 2
    bx = 0.4 + col * 3.3
    by = 1.35 + row * 2.2
    add_rect(slide, bx, by, 3.0, 1.9, TEAL_DARK)
    add_text(slide, val, bx+0.1, by+0.08, 2.8, 0.75, 22, YELLOW, bold=True, align=PP_ALIGN.CENTER)
    add_text(slide, desc, bx+0.1, by+0.78, 2.8, 1.0, 11, WHITE, align=PP_ALIGN.CENTER, wrap=True)

# Right column – narrative
add_rect(slide, 7.0, 1.3, 6.0, 5.75, WHITE)
add_rect(slide, 7.0, 1.3, 0.08, 5.75, TEAL_MID)
bullets_bg = [
    ("▶", "Diarrhoea remains a leading killer of children under 5 in low- and middle-income countries."),
    ("▶", "In India, it is prevalent especially during summer/monsoon season and in flood-affected areas."),
    ("▶", "Dehydration from diarrhoea is the primary cause of death — easily preventable with timely ORS."),
    ("▶", "ORS coverage: 50.6% (NFHS-4, 2015-16) → 60.6% (NFHS-5, 2019-21) — still far from 90% target."),
    ("▶", "Zinc coverage: 20.3% (NFHS-3, 2005-06) → 30.5% (NFHS-4, 2015-16) — significant gap remains."),
    ("▶", "India Action Plan for Pneumonia & Diarrhoea (IAPPD) targets 90% ORS & Zinc coverage by 2025."),
    ("▶", "High-risk groups: under-5 children, urban slum dwellers, rural disadvantaged communities."),
]
bullet_block(slide, bullets_bg, 7.2, 1.5, 5.7, 5.3, 11.5, DARK_TEXT)
add_footer(slide)

# ==================================================================
#  SLIDE 3 – WHAT IS IDCF?
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "What is IDCF?", "Intensified Diarrhoea Control Fortnight — Overview")

# Definition box
add_rect(slide, 0.35, 1.3, 12.65, 1.3, TEAL_DARK)
add_rect(slide, 0.35, 2.6, 12.65, 0.05, ORANGE)
add_text(slide,
    "IDCF is a two-week national campaign observed annually during the pre-monsoon/monsoon season (July–August) "
    "by the Ministry of Health & Family Welfare, GoI, under the National Health Mission. "
    "It aims to eliminate child deaths due to diarrhoea through intensive community outreach, ORS & Zinc distribution, "
    "WASH promotion, and health system strengthening.",
    0.5, 1.35, 12.3, 1.2, 13, WHITE, wrap=True)

# 4 pillars
pillars = [
    (TEAL_DARK,  "🏠", "Community\nOutreach",      "ASHAs & ANMs visit households\nwith under-5 children;\ndistribute ORS packets door-to-door"),
    (ORANGE,     "💊", "ORS + Zinc\nDistribution",  "Free ORS & Zinc co-pack provided\nat health facilities, sub-centres\nand ASHA households"),
    (GREEN,      "🚿", "WASH &\nHygiene",           "Safe water, handwashing,\nsanitation promotion;\nfood hygiene messaging"),
    (BLUE,       "📋", "Health System\nStrengthening","ORS-Zinc corners in facilities;\ntrained health workers;\nadequate supply pre-positioning"),
]
for i, (col, icon, title, desc) in enumerate(pillars):
    bx = 0.35 + i * 3.25
    by = 2.85
    add_rect(slide, bx, by, 3.0, 0.65, col)
    add_text(slide, icon + "  " + title, bx+0.1, by+0.05, 2.8, 0.55, 13.5, WHITE, bold=True, align=PP_ALIGN.CENTER)
    add_rect(slide, bx, by+0.65, 3.0, 2.4, WHITE)
    add_rect(slide, bx, by+0.65, 3.0, 0.04, col)
    add_text(slide, desc, bx+0.12, by+0.72, 2.76, 2.2, 11.5, DARK_TEXT, wrap=True, align=PP_ALIGN.LEFT)

# Bottom note
add_rect(slide, 0.35, 6.35, 12.65, 0.65, LIGHT_GREEN)
add_text(slide, "Launched in 2014 • Observed every year • Coordinated by MoHFW in collaboration with State/UT Governments, WHO, UNICEF, and civil society organisations", 0.5, 6.4, 12.3, 0.55, 11.5, GREEN, bold=True, align=PP_ALIGN.CENTER)
add_footer(slide)

# ==================================================================
#  SLIDE 4 – GOALS & OBJECTIVES
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Goals & Objectives of IDCF", "National targets and programme goals")

# Goal box
add_rect(slide, 0.35, 1.3, 12.65, 0.85, ORANGE)
add_text(slide, "🎯  GOAL:  Achieve ZERO child deaths due to childhood diarrhoea across all States/UTs",
         0.5, 1.35, 12.3, 0.75, 16, WHITE, bold=True, align=PP_ALIGN.CENTER)

# Objectives
objectives = [
    ("1", "Increase ORS coverage to 90%\nby 2025 (IAPPD target)",          TEAL_DARK,  "ORS use in diarrhoea\nepisodes in under-5\nchildren"),
    ("2", "Increase Zinc coverage to 90%\nby 2025 (IAPPD target)",          TEAL_MID,   "Zinc supplementation\nreduces severity &\nduration of diarrhoea"),
    ("3", "Reduce under-5 mortality due\nto dehydration from diarrhoea",    GREEN,      "Early rehydration\nsaves lives"),
    ("4", "Improve knowledge of ORS\npreparation among caregivers",         BLUE,       "Urban slum & rural\ncommunities are\npriority groups"),
]
for i, (num, obj, col, note) in enumerate(objectives):
    bx = 0.35 + i * 3.25
    by = 2.4
    add_rect(slide, bx, by, 3.0, 3.7, WHITE)
    add_rect(slide, bx, by, 3.0, 0.55, col)
    add_text(slide, num, bx+0.1, by+0.05, 0.45, 0.45, 22, WHITE, bold=True, align=PP_ALIGN.CENTER)
    add_text(slide, "Objective", bx+0.55, by+0.1, 2.35, 0.35, 11, WHITE, bold=True)
    add_text(slide, obj, bx+0.12, by+0.65, 2.76, 1.2, 12.5, DARK_TEXT, bold=True, wrap=True)
    add_rect(slide, bx+0.1, by+1.9, 2.8, 0.04, col)
    add_text(slide, "Rationale:", bx+0.12, by+2.0, 2.76, 0.3, 10, GRAY_TEXT, bold=True)
    add_text(slide, note, bx+0.12, by+2.3, 2.76, 1.3, 11, GRAY_TEXT, wrap=True)

# NFHS Data summary
add_rect(slide, 0.35, 6.3, 12.65, 0.78, LIGHT_BLUE)
add_text(slide, "NFHS Data:  ORS Coverage  50.6% (2015-16)  →  60.6% (2019-21)   |   Zinc Coverage  30.5% (2015-16)  →  Target: 90% by 2025",
         0.5, 6.35, 12.3, 0.68, 12, BLUE, bold=True, align=PP_ALIGN.CENTER)
add_footer(slide)

# ==================================================================
#  SLIDE 5 – THREE-FOLD STRATEGY
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Three-Fold IDCF Strategy", "Core framework for programme implementation")

# Strategy circles / boxes
strategies = [
    (TEAL_DARK, "STRATEGY 1",
     "Improved Availability & Use\nof ORS at Households",
     [("●", "ASHAs pre-position ORS packets in all households with under-5 children"),
      ("●", "Door-to-door distribution during the fortnight by ASHAs & ANMs"),
      ("●", "Demonstration of correct ORS preparation technique to mothers/caregivers"),
      ("●", "Awareness of when to administer ORS and how much fluid to give"),
      ("●", "ASHA incentive linked to ORS distribution and household visits"),
     ]),
    (GREEN, "STRATEGY 2",
     "Facility-Level Strengthening\nfor Diarrhoea Case Management",
     [("●", "Establishment of ORS-Zinc Corners at Sub-Centre, PHC, CHC, District Hospital levels"),
      ("●", "Adequate stock of ORS sachets & Zinc tablets pre-positioned before the fortnight"),
      ("●", "Training of health workers in IMNCI (Integrated Management of Neonatal & Childhood Illnesses)"),
      ("●", "Free treatment including ORS, Zinc, IV fluids where needed"),
      ("●", "Referral pathways for severe dehydration and complications"),
     ]),
    (BLUE, "STRATEGY 3",
     "Advocacy, BCC & Community\nAwareness Generation",
     [("●", "IEC/BCC activities: community meetings, wall paintings, posters, radio/TV messages"),
      ("●", "Village Health & Nutrition Days (VHNDs) — diarrhoea management sessions"),
      ("●", "WASH promotion: safe water, handwashing with soap, sanitation & food hygiene"),
      ("●", "Community mobilization through AWWs, ASHAs, SHGs and PRIs"),
      ("●", "Special focus on high-priority/vulnerable communities and flood-prone areas"),
     ]),
]
for i, (col, label, title, bullets) in enumerate(strategies):
    bx = 0.3 + i * 4.35
    by = 1.3
    add_rect(slide, bx, by, 4.1, 0.55, col)
    add_text(slide, label, bx+0.1, by+0.08, 3.9, 0.4, 13, WHITE, bold=True, align=PP_ALIGN.CENTER)
    add_rect(slide, bx, by+0.55, 4.1, 0.75, RGBColor(0xE0,0xF2,0xF1) if col==TEAL_DARK else (LIGHT_GREEN if col==GREEN else LIGHT_BLUE))
    add_text(slide, title, bx+0.1, by+0.6, 3.9, 0.65, 12, col, bold=True, wrap=True, align=PP_ALIGN.CENTER)
    add_rect(slide, bx, by+1.3, 4.1, 4.85, WHITE)
    bullet_block(slide, bullets, bx+0.1, by+1.4, 3.85, 4.6, 11, DARK_TEXT)

add_footer(slide)

# ==================================================================
#  SLIDE 6 – KEY ACTIVITIES DURING IDCF
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Key Activities During IDCF", "What happens on the ground during the fortnight")

# Timeline-style activity list
phases = [
    ("PRE-FORTNIGHT\n(Preparatory Phase)", TEAL_DARK, [
        "State/district level planning meetings and sensitisation workshops",
        "Pre-positioning of ORS & Zinc stocks at all levels of health system",
        "Training/refresher for ASHAs, ANMs, AWWs on diarrhoea management",
        "Preparation of IEC materials, communication plans",
        "Mapping of households with under-5 children in each village",
    ]),
    ("DURING FORTNIGHT\n(Campaign Phase)", ORANGE, [
        "Door-to-door visits by ASHAs to all households with under-5 children",
        "Free ORS packet distribution + demonstration of preparation",
        "Zinc tablet supply along with ORS (co-pack approach)",
        "Community-level awareness activities: street plays, meetings",
        "ORS-Zinc Corners operational 24x7 at health facilities",
        "Village Health & Nutrition Days focused on diarrhoea",
        "Surveillance of diarrhoea cases & deaths; rapid reporting",
    ]),
    ("POST-FORTNIGHT\n(Review & Monitoring)", GREEN, [
        "Data compilation: ORS/Zinc distributed, households covered",
        "Reporting on diarrhoea morbidity & mortality indicators",
        "District/state review meetings — lessons learned",
        "Supply chain gap analysis and replenishment",
        "Score card preparation based on HMIS data",
    ]),
]
for i, (phase, col, acts) in enumerate(phases):
    bx = 0.3 + i * 4.35
    by = 1.3
    add_rect(slide, bx, by, 4.1, 0.8, col)
    add_text(slide, phase, bx+0.1, by+0.08, 3.9, 0.65, 12, WHITE, bold=True, align=PP_ALIGN.CENTER)
    add_rect(slide, bx, by+0.8, 4.1, 5.35, WHITE)
    bullets = [("▸", a) for a in acts]
    bullet_block(slide, bullets, bx+0.12, by+0.92, 3.84, 5.1, 11, DARK_TEXT)

add_footer(slide)

# ==================================================================
#  SLIDE 7 – ORS (Oral Rehydration Solution)
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Oral Rehydration Solution (ORS)", "The first-line treatment for diarrhoea-induced dehydration")

# Left: what is ORS + composition
add_rect(slide, 0.3, 1.3, 5.7, 5.75, WHITE)
add_rect(slide, 0.3, 1.3, 5.7, 0.5, TEAL_DARK)
add_text(slide, "What is ORS?", 0.45, 1.33, 5.4, 0.44, 14, WHITE, bold=True)

ors_bullets = [
    ("●", "A simple, inexpensive, and effective solution to treat dehydration."),
    ("●", "WHO/UNICEF recommended LOW OSMOLARITY ORS (245 mOsm/L)."),
    ("●", "Composition per litre of water:"),
    ("  –", "Sodium chloride: 2.6 g"),
    ("  –", "Glucose (anhydrous): 13.5 g"),
    ("  –", "Potassium chloride: 1.5 g"),
    ("  –", "Trisodium citrate: 2.9 g"),
    ("  –", "Osmolarity: 245 mOsm/L"),
    ("●", "Works by stimulating glucose-coupled sodium absorption in intestinal mucosa."),
    ("●", "Available as ready-made sachets at all government health facilities for FREE."),
    ("●", "Home preparation: 1 litre clean water + 6 tsp sugar + ½ tsp salt."),
]
bullet_block(slide, ors_bullets, 0.45, 1.9, 5.4, 5.0, 11, DARK_TEXT)

# Middle: dosage
add_rect(slide, 6.2, 1.3, 3.5, 5.75, WHITE)
add_rect(slide, 6.2, 1.3, 3.5, 0.5, TEAL_MID)
add_text(slide, "Dosage & Administration", 6.35, 1.33, 3.3, 0.44, 13, WHITE, bold=True)

dose_bullets = [
    ("▶", "Plan A (No dehydration):\n50–100 mL after each loose stool;\ncontinue feeding"),
    ("▶", "Plan B (Some dehydration):\n75 mL/kg over 4 hours\n(ORS Therapy Corner in facility)"),
    ("▶", "Plan C (Severe dehydration):\nIV Ringer's Lactate/NS;\nurgent referral"),
    ("▶", "Continue breastfeeding\nthroughout ORS treatment"),
    ("▶", "Encourage extra fluids:\ndal water, rice water, coconut water"),
    ("▶", "Do NOT give: anti-diarrhoeal\ndrugs, antibiotics (unless dysentery)"),
]
bullet_block(slide, dose_bullets, 6.35, 1.9, 3.3, 5.0, 11, DARK_TEXT)

# Right: impact
add_rect(slide, 9.9, 1.3, 3.1, 5.75, WHITE)
add_rect(slide, 9.9, 1.3, 3.1, 0.5, GREEN)
add_text(slide, "Impact & Evidence", 10.05, 1.33, 2.9, 0.44, 13, WHITE, bold=True)

impact_bullets = [
    ("✓", "Reduces case-fatality rate of diarrhoea by >90%"),
    ("✓", "Global use of ORS has saved >50 million children since 1978"),
    ("✓", "Low-osmolarity ORS reduces need for IV fluids by ~33%"),
    ("✓", "Reduces stool output & vomiting compared to standard ORS"),
    ("✓", "Cost-effective: ORS packet costs < ₹5"),
    ("✓", "Safe for all age groups including neonates"),
    ("✓", "Endorsed by WHO, UNICEF, IAP, MoHFW"),
]
bullet_block(slide, impact_bullets, 10.05, 1.9, 2.9, 5.0, 11.5, DARK_TEXT)

add_footer(slide)

# ==================================================================
#  SLIDE 8 – ZINC SUPPLEMENTATION
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Zinc Supplementation in Diarrhoea", "A critical adjunct to ORS therapy")

# Top intro
add_rect(slide, 0.3, 1.3, 12.7, 0.8, TEAL_DARK)
add_text(slide, "WHO/UNICEF recommend Zinc supplementation for ALL children with diarrhoea. It reduces the duration and severity of acute diarrhoea and prevents recurrence for the next 2-3 months.",
         0.45, 1.35, 12.4, 0.7, 13, WHITE, wrap=True)

# Three columns
cols_data = [
    (TEAL_MID, "Mechanism of Action", [
        ("●", "Maintains mucosal integrity of the gut wall"),
        ("●", "Enhances brush-border enzyme activity"),
        ("●", "Modulates intestinal fluid/electrolyte absorption"),
        ("●", "Boosts immune response — T-cell & NK cell function"),
        ("●", "Reduces intestinal permeability"),
        ("●", "Antioxidant properties protect enterocytes"),
        ("●", "Stimulates repair of damaged intestinal mucosa"),
    ]),
    (GREEN, "Dosage & Duration", [
        ("●", "Children < 6 months:  10 mg/day × 14 days"),
        ("●", "Children ≥ 6 months:  20 mg/day × 14 days"),
        ("●", "Dispersible tablet: dissolved in small amount\nof breast milk, ORS, or water"),
        ("●", "Given alongside ORS — not a substitute"),
        ("●", "Start as early as possible after diarrhoea onset"),
        ("●", "Complete full 14-day course even if diarrhoea resolves"),
        ("●", "Available FREE at all public health facilities"),
    ]),
    (ORANGE, "Benefits & Evidence", [
        ("✓", "Reduces duration of acute diarrhoea by ~25%"),
        ("✓", "Reduces stool frequency & volume significantly"),
        ("✓", "Lowers risk of subsequent diarrhoeal episodes\nby ~25% over following 2-3 months"),
        ("✓", "Reduces risk of pneumonia in malnourished children"),
        ("✓", "Improves appetite and nutritional recovery"),
        ("✓", "Cost-effective: <₹10 for a 14-day course"),
        ("✓", "Cochrane reviews confirm strong evidence base"),
    ]),
]
for i, (col, title, bullets) in enumerate(cols_data):
    bx = 0.3 + i * 4.35
    by = 2.25
    add_rect(slide, bx, by, 4.1, 0.5, col)
    add_text(slide, title, bx+0.1, by+0.07, 3.9, 0.38, 13, WHITE, bold=True, align=PP_ALIGN.CENTER)
    add_rect(slide, bx, by+0.5, 4.1, 4.55, WHITE)
    bullet_block(slide, bullets, bx+0.12, by+0.62, 3.84, 4.3, 11, DARK_TEXT)

# Bottom box
add_rect(slide, 0.3, 7.0, 12.7, 0.28, LIGHT_BLUE)
add_text(slide, "ORS + Zinc Co-pack: MoHFW provides a combined ORS-Zinc co-pack to simplify administration and ensure both are given together at community level.",
         0.45, 7.02, 12.4, 0.25, 10, BLUE, bold=True, wrap=True)
add_footer(slide)

# ==================================================================
#  SLIDE 9 – ROLES & RESPONSIBILITIES
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Roles & Responsibilities", "Stakeholders in IDCF implementation")

roles = [
    (TEAL_DARK, "MoHFW / NHM\n(Central Level)", [
        "Issue operational guidelines & directives",
        "Procure & supply ORS-Zinc co-packs nationally",
        "Coordinate with WHO, UNICEF, USAID, NGOs",
        "Monitor programme through HMIS",
        "Launch & publicize the campaign nationally",
    ]),
    (ORANGE, "State / UT Health\nDepartments", [
        "State-level planning, coordination & funding",
        "Train district health officers",
        "Ensure adequate drug supply chain",
        "Review HMIS data & state scorecards",
        "IEC/BCC campaign management at state level",
    ]),
    (BLUE, "District Health\nTeam (CMHO/CMO)", [
        "Microplan for each block/PHC area",
        "Ensure training of all frontline workers",
        "Monitor day-by-day progress of fortnight",
        "Daily reporting to state health directorate",
        "Manage ORS-Zinc Corners at district hospital",
    ]),
    (GREEN, "ASHA / ANM /\nAWW (Frontline)", [
        "Door-to-door visits to all under-5 households",
        "Distribute ORS packets + Zinc tablets",
        "Demonstrate ORS preparation techniques",
        "Counsel mothers on feeding, hygiene, when to seek care",
        "Report diarrhoea cases; facilitate referrals",
    ]),
]
for i, (col, role, duties) in enumerate(roles):
    bx = 0.3 + i * 3.26
    by = 1.3
    add_rect(slide, bx, by, 3.05, 0.7, col)
    add_text(slide, role, bx+0.08, by+0.08, 2.9, 0.58, 12.5, WHITE, bold=True, align=PP_ALIGN.CENTER)
    add_rect(slide, bx, by+0.7, 3.05, 5.35, WHITE)
    bullet_block(slide, [("▸", d) for d in duties], bx+0.1, by+0.8, 2.88, 5.1, 11, DARK_TEXT)

add_footer(slide)

# ==================================================================
#  SLIDE 10 – ORS-ZINC CORNERS
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "ORS-Zinc Corners", "Dedicated diarrhoea management spaces in health facilities")

# Definition
add_rect(slide, 0.3, 1.3, 12.7, 0.8, TEAL_DARK)
add_text(slide, "ORS-Zinc Corners are dedicated, clearly marked spaces at health facilities (Sub-Centres, PHCs, CHCs, District Hospitals) where children with diarrhoea receive prompt assessment and treatment with ORS and Zinc.",
         0.45, 1.35, 12.4, 0.7, 13, WHITE, wrap=True)

# Left: setup
add_rect(slide, 0.3, 2.3, 6.0, 4.75, WHITE)
add_rect(slide, 0.3, 2.3, 6.0, 0.5, TEAL_MID)
add_text(slide, "Setup & Requirements", 0.45, 2.33, 5.8, 0.44, 14, WHITE, bold=True)
setup = [
    ("●", "Clearly labeled 'ORS-Zinc Corner' with signage in local language"),
    ("●", "Adequate stock of ORS sachets (all formulations), Zinc dispersible tablets"),
    ("●", "Measuring containers for proper ORS preparation"),
    ("●", "Registers for recording cases, treatment given, and follow-up"),
    ("●", "Educational charts/posters on ORS preparation and feeding"),
    ("●", "Trained health worker (nurse/ANM) stationed during OPD hours"),
    ("●", "Protocol for managing all 3 dehydration plans (A, B, C)"),
    ("●", "Referral pathways displayed and functional"),
    ("●", "Toilet/hand-washing facilities adjacent to corner"),
]
bullet_block(slide, setup, 0.45, 2.9, 5.7, 4.0, 11, DARK_TEXT)

# Right: activities
add_rect(slide, 6.5, 2.3, 6.5, 4.75, WHITE)
add_rect(slide, 6.5, 2.3, 6.5, 0.5, GREEN)
add_text(slide, "Activities at ORS-Zinc Corner", 6.65, 2.33, 6.3, 0.44, 14, WHITE, bold=True)
activities = [
    ("✓", "Assess degree of dehydration using standard clinical criteria"),
    ("✓", "Administer ORS as per Plan A/B; arrange IV for Plan C"),
    ("✓", "Provide Zinc tablets as per age group (10 mg or 20 mg × 14 days)"),
    ("✓", "Counsel caregiver on home care, feeding, danger signs"),
    ("✓", "Follow-up visit scheduled if needed"),
    ("✓", "Register all cases in diarrhoea treatment register"),
    ("✓", "Report zero deaths — escalate any diarrhoea death immediately"),
    ("✓", "Provide health education: hygiene, safe water, breastfeeding"),
]
bullet_block(slide, activities, 6.65, 2.9, 6.2, 4.0, 11, DARK_TEXT)

add_footer(slide)

# ==================================================================
#  SLIDE 11 – IAPPD & POLICY FRAMEWORK
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Policy Framework & Linkages", "IDCF within the broader national health architecture")

frameworks = [
    (TEAL_DARK, "IAPPD", "India Action Plan for\nPneumonia & Diarrhoea",
     "Target: 90% ORS & Zinc coverage by 2025\nLaunched in 4 high-IMR states: UP, MP, Bihar, Rajasthan\nIntegrated approach: prevention + treatment + WASH"),
    (BLUE, "NHM / RMNCH+A", "National Health Mission\n(Reproductive, Maternal,\nNewborn, Child & Adolescent Health)",
     "IDCF is a key child health intervention\nUnder-5 diarrhoea management = core NHM goal\nScorecard monitoring via HMIS"),
    (GREEN, "IMNCI", "Integrated Management of\nNeonatal & Childhood Illness",
     "Provides clinical protocol for diarrhoea management\nTrains health workers at all facility levels\nGuides triage, assessment and treatment plans"),
    (ORANGE, "WHO/UNICEF", "Global & International\nGuidelines",
     "WHO recommends ORS + Zinc as standard of care\nLow-osmolarity ORS adopted globally\nZinc endorsed in 2004 by WHO/UNICEF joint statement"),
]
for i, (col, abbr, full, details) in enumerate(frameworks):
    bx = 0.3 + i * 3.26
    by = 1.3
    add_rect(slide, bx, by, 3.05, 0.65, col)
    add_text(slide, abbr, bx+0.1, by+0.08, 2.85, 0.5, 16, WHITE, bold=True, align=PP_ALIGN.CENTER)
    add_rect(slide, bx, by+0.65, 3.05, 1.0, RGBColor(0xE0,0xF7,0xFA) if col==TEAL_DARK else (LIGHT_BLUE if col==BLUE else (LIGHT_GREEN if col==GREEN else RGBColor(0xFF,0xF3,0xE0))))
    add_text(slide, full, bx+0.1, by+0.7, 2.85, 0.9, 11, col, bold=True, wrap=True, align=PP_ALIGN.CENTER)
    add_rect(slide, bx, by+1.65, 3.05, 4.35, WHITE)
    add_multiline(slide, details.split('\n'), bx+0.12, by+1.72, 2.82, 4.2, 11, DARK_TEXT)

add_footer(slide)

# ==================================================================
#  SLIDE 12 – ASSESSMENT OF DEHYDRATION
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Assessment of Dehydration", "Clinical classification to guide treatment plan (WHO/IMNCI)")

# Table header
cols_widths = [3.8, 3.0, 3.0, 3.2]
col_x = [0.3, 4.1, 7.1, 10.1]
headers = ["Clinical Sign", "Plan A\n(No Dehydration)", "Plan B\n(Some Dehydration)", "Plan C\n(Severe Dehydration)"]
header_colors = [TEAL_DARK, GREEN, ORANGE, RED]
for j, (hdr, col, cx, cw) in enumerate(zip(headers, header_colors, col_x, cols_widths)):
    add_rect(slide, cx, 1.3, cw-0.05, 0.65, col)
    add_text(slide, hdr, cx+0.08, 1.32, cw-0.15, 0.6, 12.5, WHITE, bold=True, align=PP_ALIGN.CENTER)

rows = [
    ("General Condition", "Well, alert", "Restless, irritable", "Lethargic/unconscious"),
    ("Eyes",              "Normal",      "Sunken",              "Very sunken & dry"),
    ("Tears",             "Present",     "Absent",              "Absent"),
    ("Mouth & Tongue",    "Moist",       "Dry",                 "Very dry"),
    ("Thirst",            "Normal",      "Thirsty, drinks eagerly", "Unable to drink"),
    ("Skin Pinch",        "Goes back quickly", "Slow (< 2 sec)", "Very slow (≥ 2 sec)"),
    ("Treatment Plan",    "Plan A: ORS at home;\nContinue feeding",
                          "Plan B: ORS 75 mL/kg in 4h\nat ORS corner",
                          "Plan C: IV Ringer's Lactate\n+ urgent referral"),
]
row_colors = [LIGHT_GRAY, WHITE, LIGHT_GRAY, WHITE, LIGHT_GRAY, WHITE, LIGHT_BLUE]
for r, (row_data, bg) in enumerate(zip(rows, row_colors)):
    ry = 1.95 + r * 0.72
    rh = 0.68 if r < 6 else 0.85
    for j, (cell, cx, cw) in enumerate(zip(row_data, col_x, cols_widths)):
        bg_use = bg if j > 0 else LIGHT_GRAY
        if r == 6:
            bg_use = LIGHT_GREEN if j==1 else (RGBColor(0xFF,0xF3,0xE0) if j==2 else (LIGHT_RED if j==3 else LIGHT_BLUE))
        add_rect(slide, cx, ry, cw-0.05, rh, bg_use, GRAY_TEXT, 0.3)
        fcol = GREEN if j==1 and r==6 else (ORANGE if j==2 and r==6 else (RED if j==3 and r==6 else DARK_TEXT))
        add_text(slide, cell, cx+0.08, ry+0.04, cw-0.2, rh-0.08, 10.5, fcol, bold=(r==6), wrap=True)

add_footer(slide)

# ==================================================================
#  SLIDE 13 – KEY MESSAGES / BCC
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Key Behaviour Change Communication (BCC) Messages", "Core messages for community awareness during IDCF")

messages = [
    (TEAL_DARK, "💧", "Start ORS Early",
     "Begin ORS at the FIRST loose stool — do not wait.\nDo not stop feeding or breastfeeding.\nGive extra fluids with every loose motion."),
    (ORANGE, "💊", "Complete Zinc Course",
     "Give Zinc tablet daily for 14 days even if\ndiarrhoea has stopped.\nZinc protects the child for next 2-3 months."),
    (GREEN, "🍽️", "Continue Feeding",
     "Do NOT withhold food or milk.\nContinue breastfeeding on demand.\nGive semi-solid/easily digestible foods."),
    (BLUE, "🚰", "Safe Water & Hygiene",
     "Use only boiled/purified water.\nWash hands with soap before food & after toilet.\nStore drinking water in clean, covered vessels."),
    (RGBColor(0x6A, 0x1B, 0x9A), "🏥", "Seek Care Early",
     "Go to nearest health facility if:\n• Child is not able to drink\n• Sunken eyes, very weak\n• Blood in stool, high fever"),
    (RGBColor(0xBF, 0x36, 0x0C), "🚫", "What NOT to Do",
     "Do NOT give:\n• Anti-diarrhoeal drugs (Lomotil, Imodium)\n• Antibiotics without prescription\n• Sweetened juices or carbonated drinks"),
]
for i, (col, icon, title, msg) in enumerate(messages):
    col_n = i % 3
    row_n = i // 3
    bx = 0.3 + col_n * 4.35
    by = 1.35 + row_n * 2.85
    add_rect(slide, bx, by, 4.1, 2.6, WHITE)
    add_rect(slide, bx, by, 4.1, 0.55, col)
    add_text(slide, icon + "  " + title, bx+0.12, by+0.08, 3.86, 0.42, 13, WHITE, bold=True)
    add_text(slide, msg, bx+0.12, by+0.65, 3.86, 1.88, 11, DARK_TEXT, wrap=True)

add_footer(slide)

# ==================================================================
#  SLIDE 14 – MONITORING & EVALUATION
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Monitoring & Evaluation", "Indicators, tools, and reporting mechanisms")

# Left: key indicators
add_rect(slide, 0.3, 1.3, 6.2, 5.75, WHITE)
add_rect(slide, 0.3, 1.3, 6.2, 0.5, TEAL_DARK)
add_text(slide, "Key Performance Indicators", 0.45, 1.33, 6.0, 0.44, 14, WHITE, bold=True)
indicators = [
    ("1.", "% under-5 children with diarrhoea who received ORS"),
    ("2.", "% under-5 children with diarrhoea who received Zinc"),
    ("3.", "% households with under-5 children visited by ASHA"),
    ("4.", "No. of ORS packets distributed per target household"),
    ("5.", "No. of ORS-Zinc Corners established and functional"),
    ("6.", "Under-5 diarrhoea case fatality rate"),
    ("7.", "No. of health workers trained in diarrhoea management"),
    ("8.", "Stock-out rate of ORS/Zinc at facility level"),
    ("9.", "Coverage of VHND sessions on diarrhoea"),
    ("10.", "HMIS data: monthly diarrhoea morbidity and mortality"),
]
bullet_block(slide, indicators, 0.45, 1.9, 5.9, 5.0, 11, DARK_TEXT)

# Right: monitoring tools + challenges
add_rect(slide, 6.7, 1.3, 6.3, 2.7, WHITE)
add_rect(slide, 6.7, 1.3, 6.3, 0.5, GREEN)
add_text(slide, "Monitoring Tools & Mechanisms", 6.85, 1.33, 6.1, 0.44, 13, WHITE, bold=True)
tools = [
    ("●", "HMIS (Health Management Information System) — monthly reporting"),
    ("●", "District / State Score Cards — RMNCH+A framework"),
    ("●", "Field supervisory visits by MOs & block supervisors"),
    ("●", "ASHA daily visit reports & beneficiary registers"),
    ("●", "NHM quarterly reviews at national level"),
]
bullet_block(slide, tools, 6.85, 1.9, 6.0, 2.0, 11, DARK_TEXT)

add_rect(slide, 6.7, 4.2, 6.3, 2.85, WHITE)
add_rect(slide, 6.7, 4.2, 6.3, 0.5, ORANGE)
add_text(slide, "Challenges & Way Forward", 6.85, 4.23, 6.1, 0.44, 13, WHITE, bold=True)
challenges = [
    ("▶", "Supply chain gaps: ORS stock-outs at sub-centre level"),
    ("▶", "Low Zinc coverage compared to ORS (30% vs 60%)"),
    ("▶", "Knowledge gap on ORS preparation in urban slums"),
    ("▶", "Cultural practices: withholding food/fluids during diarrhoea"),
    ("▶", "Under-reporting of diarrhoea deaths at community level"),
    ("▶", "Need for sustained year-round focus beyond the fortnight"),
]
bullet_block(slide, challenges, 6.85, 4.8, 6.0, 2.1, 11, DARK_TEXT)

add_footer(slide)

# ==================================================================
#  SLIDE 15 – ACHIEVEMENTS & WAY FORWARD
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
add_header(slide, "Achievements & Way Forward", "Progress made and the road to zero diarrhoea deaths")

# Achievement timeline / cards
achvs = [
    (TEAL_DARK, "2014", "IDCF\nLaunched", "First national fortnight\nobserved across all states;\noperational guidelines issued"),
    (TEAL_MID,  "2015-19", "Scale-up", "Annual IDCFs conducted;\nORS-Zinc co-pack introduced;\nORS corners established"),
    (GREEN,     "2019-21", "Coverage\nGrowth", "ORS: 50.6% → 60.6%\n(NFHS-4 to NFHS-5);\nZinc awareness improving"),
    (ORANGE,    "2024", "STOP Diarrhoea\nCampaign", "Union Health Minister launches\nnational campaign; two-phase\npreparatory + campaign model"),
    (BLUE,      "2025\nTarget", "90% Coverage\nGoal", "IAPPD target: 90% ORS\n& Zinc coverage;\nNHP 2019 child mortality goal"),
]
for i, (col, year, title, desc) in enumerate(achvs):
    bx = 0.3 + i * 2.62
    by = 1.3
    add_rect(slide, bx, by, 2.5, 0.5, col)
    add_text(slide, year, bx+0.08, by+0.05, 2.35, 0.42, 13, WHITE, bold=True, align=PP_ALIGN.CENTER)
    add_rect(slide, bx, by+0.5, 2.5, 0.65, RGBColor(0xE0,0xF2,0xF1))
    add_text(slide, title, bx+0.08, by+0.52, 2.35, 0.6, 12, col, bold=True, wrap=True, align=PP_ALIGN.CENTER)
    add_rect(slide, bx, by+1.15, 2.5, 2.5, WHITE)
    add_text(slide, desc, bx+0.1, by+1.2, 2.3, 2.38, 10.5, DARK_TEXT, wrap=True, align=PP_ALIGN.LEFT)

# Way Forward
add_rect(slide, 0.3, 5.15, 12.7, 0.5, ORANGE)
add_text(slide, "🔭  Way Forward", 0.5, 5.17, 12.3, 0.42, 14, WHITE, bold=True)

add_rect(slide, 0.3, 5.65, 12.7, 1.42, WHITE)
wf_points = [
    "Sustain year-round ORS & Zinc promotion beyond the fortnight",
    "Address urban slum & tribal populations with targeted microplans",
    "Strengthen supply chain to eliminate stock-outs at last mile",
    "Integrate WASH with diarrhoea control programmes",
    "Use digital tools/mobile apps for real-time ASHA reporting",
    "Scale up ORS preparation demonstration in community meetings",
]
tb = slide.shapes.add_textbox(Inches(0.4), Inches(5.7), Inches(12.5), Inches(1.3))
tf = tb.text_frame; tf.word_wrap = True
tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0
for k, wf in enumerate(wf_points):
    p = tf.paragraphs[0] if k == 0 else tf.add_paragraph()
    p.alignment = PP_ALIGN.LEFT
    r1 = p.add_run(); r1.text = "★  "; r1.font.size = Pt(10); r1.font.color.rgb = ORANGE; r1.font.bold = True
    r2 = p.add_run(); r2.text = wf + ("   " if k < 5 else ""); r2.font.size = Pt(10.5); r2.font.color.rgb = DARK_TEXT

add_footer(slide)

# ==================================================================
#  SLIDE 16 – THANK YOU / SUMMARY
# ==================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, TEAL_DARK)
add_rect(slide, 0, 3.5, 13.333, 4.0, RGBColor(0x00, 0x4D, 0x4D))
add_rect(slide, 0, 3.42, 13.333, 0.12, ORANGE)

add_text(slide, "Key Takeaways", 0.5, 0.35, 12.3, 0.65, 30, WHITE, bold=True, align=PP_ALIGN.CENTER)
add_rect(slide, 0.5, 1.1, 12.3, 0.04, ORANGE)

# Summary bullets
takeaways = [
    "🎯  IDCF = national campaign (annual, July-Aug) to achieve ZERO child deaths from diarrhoea",
    "💧  ORS is the first-line treatment — start at first loose stool, continue breastfeeding",
    "💊  Zinc (14 days) reduces duration by 25% and prevents recurrence for 2-3 months",
    "🏠  ASHA/ANM do door-to-door ORS + Zinc distribution to all under-5 households",
    "🏥  ORS-Zinc Corners at every health facility for assessment and treatment (Plans A/B/C)",
    "📊  Target: 90% ORS & Zinc coverage by 2025 (IAPPD/NFHS gap still to close)",
    "🚰  WASH + feeding continuation are non-negotiable alongside ORS/Zinc",
]
tb2 = slide.shapes.add_textbox(Inches(0.8), Inches(1.22), Inches(11.7), Inches(2.1))
tf2 = tb2.text_frame; tf2.word_wrap = True
tf2.margin_left = 0; tf2.margin_right = 0; tf2.margin_top = 0; tf2.margin_bottom = 0
for k, t in enumerate(takeaways):
    p = tf2.paragraphs[0] if k == 0 else tf2.add_paragraph()
    p.alignment = PP_ALIGN.LEFT
    r = p.add_run(); r.text = t; r.font.size = Pt(13); r.font.color.rgb = WHITE

add_text(slide, "Thank You", 0.5, 3.6, 12.3, 0.85, 36, YELLOW, bold=True, align=PP_ALIGN.CENTER)
add_text(slide, "Ministry of Health & Family Welfare, Government of India", 0.5, 4.55, 12.3, 0.4, 14, TEAL_LIGHT, align=PP_ALIGN.CENTER)
add_text(slide, "National Health Mission  |  Intensified Diarrhoea Control Fortnight", 0.5, 4.95, 12.3, 0.35, 13, TEAL_LIGHT, align=PP_ALIGN.CENTER)
add_text(slide, "Sources: NHM (nhm.gov.in)  |  Park's Textbook of Preventive & Social Medicine  |  WHO/UNICEF Guidelines  |  NFHS-4, NFHS-5", 
         0.5, 6.6, 12.3, 0.35, 10, TEAL_LIGHT, align=PP_ALIGN.CENTER)

# Save
output_path = "/tmp/workspace/IDCF-PPT/IDCF_ORS_Zinc_Week.pptx"
prs.save(output_path)
print(f"Saved: {output_path}")
print(f"Slides: {len(prs.slides)}")
Running Command

cd /tmp/workspace/IDCF-PPT && python create_ppt.py 2>&1

Running Command

ls -lh /tmp/workspace/IDCF-PPT/

Your presentation is ready for download:

IDCF ORS Zinc Week

Presentation · PPTX


Presentation Overview — 16 Slides

The deck uses a professional teal/orange/green color scheme with structured headers, footers, and data boxes throughout.
#Slide TitleKey Content
1Title SlideIDCF / ORS-Zinc Week — "Zero Child Deaths" tagline
2Background & BurdenWHO/India stats, NFHS coverage gaps, why action is needed
3What is IDCF?Definition, 4 pillars: outreach, distribution, WASH, facility strengthening
4Goals & ObjectivesZero deaths goal, IAPPD 90% ORS/Zinc target by 2025, NFHS data
5Three-Fold StrategyHousehold ORS availability / Facility-level strengthening / Advocacy & BCC
6Key ActivitiesPre-fortnight prep → Campaign phase → Post-fortnight review
7ORSComposition, low-osmolarity ORS, Plan A/B/C dosage, impact (>50M lives saved)
8Zinc SupplementationMechanism, dosage (10 mg/<6m, 20 mg/≥6m × 14 days), 25% reduction in duration
9Roles & ResponsibilitiesMoHFW / State / District / ASHA-ANM-AWW
10ORS-Zinc CornersSetup requirements, activities at corners, 24x7 operation
11Policy FrameworkIAPPD, NHM/RMNCH+A, IMNCI, WHO/UNICEF linkages
12Assessment of DehydrationFull clinical table: Plans A, B, C with signs and treatment
13BCC Key MessagesStart ORS early / Complete Zinc / Continue feeding / WASH / When to seek care / What NOT to do
14Monitoring & Evaluation10 KPIs, HMIS tools, challenges, way forward
15Achievements & Way ForwardTimeline 2014-2025, STOP Diarrhoea 2024 campaign, scale-up plan
16Summary / Thank You7 key takeaways, sources cited
Sources used: NHM (nhm.gov.in), Park's Textbook of Preventive & Social Medicine, WHO/UNICEF Guidelines, NFHS-4 & NFHS-5, IAPPD, PMC research article on ORS/Zinc coverage in India.

Create pdf

Reading File
Writing File

~/IDCF-PPT/create_pdf.py

"""
Convert IDCF PPT content to PDF using ReportLab (same 16-slide content, same color scheme).
"""
from reportlab.lib.pagesizes import landscape, A4
from reportlab.lib.units import inch, cm
from reportlab.lib.colors import HexColor, white, black
from reportlab.pdfgen import canvas
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.platypus import Paragraph
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_RIGHT
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import textwrap

PAGE_W, PAGE_H = landscape(A4)  # 842 x 595 pts

# ── Colors ────────────────────────────────────────────────────────
TEAL_DARK   = HexColor("#006A6A")
TEAL_MID    = HexColor("#009688")
TEAL_LIGHT  = HexColor("#B2DFDB")
ORANGE      = HexColor("#E65C00")
YELLOW      = HexColor("#FFC107")
DARK_TEXT   = HexColor("#212121")
LIGHT_GRAY  = HexColor("#F5F5F5")
GRAY_TEXT   = HexColor("#555555")
GREEN       = HexColor("#2E7D32")
LIGHT_GREEN = HexColor("#C8E6C9")
BLUE        = HexColor("#1565C0")
LIGHT_BLUE  = HexColor("#BBDEFB")
RED         = HexColor("#C62828")
LIGHT_RED   = HexColor("#FFCDD2")
WHITE_C     = HexColor("#FFFFFF")
TEAL_DARKER = HexColor("#004D4D")

def draw_rect(c, x, y, w, h, fill, stroke=None, stroke_w=0.5):
    c.saveState()
    if stroke:
        c.setStrokeColor(stroke)
        c.setLineWidth(stroke_w)
    else:
        c.setStrokeColor(fill)
    c.setFillColor(fill)
    c.rect(x, y, w, h, fill=1, stroke=1 if stroke else 0)
    c.restoreState()

def draw_text(c, text, x, y, w, h, size, color, bold=False, align="left", wrap_text=True):
    """Draw text with word wrap inside a bounding box. y is bottom-left."""
    c.saveState()
    c.setFillColor(color)
    font = "Helvetica-Bold" if bold else "Helvetica"
    c.setFont(font, size)
    
    lines = []
    if wrap_text:
        # estimate chars per line
        avg_char = size * 0.55
        chars_per_line = max(1, int(w / avg_char))
        for raw_line in text.split('\n'):
            if raw_line.strip() == '':
                lines.append('')
            else:
                wrapped = textwrap.wrap(raw_line, width=chars_per_line) or ['']
                lines.extend(wrapped)
    else:
        lines = text.split('\n')
    
    line_h = size * 1.35
    total_h = len(lines) * line_h
    
    # vertical centering within box
    start_y = y + h - size * 1.1
    
    for i, line in enumerate(lines):
        ly = start_y - i * line_h
        if ly < y - 2:
            break
        if align == "center":
            tw = c.stringWidth(line, font, size)
            lx = x + (w - tw) / 2
        elif align == "right":
            tw = c.stringWidth(line, font, size)
            lx = x + w - tw
        else:
            lx = x
        c.drawString(lx, ly, line)
    c.restoreState()

def header_bar(c, title, subtitle=None):
    draw_rect(c, 0, PAGE_H - 55, PAGE_W, 55, TEAL_DARK)
    draw_rect(c, 0, PAGE_H - 58, PAGE_W, 3, ORANGE)
    draw_text(c, title, 20, PAGE_H - 42, PAGE_W - 40, 28, 18, WHITE_C, bold=True, align="left", wrap_text=False)
    if subtitle:
        draw_text(c, subtitle, 20, PAGE_H - 58, PAGE_W - 40, 18, 10, TEAL_LIGHT, bold=False, align="left", wrap_text=False)

def footer_bar(c, text="Source: NHM, MoHFW, GoI  |  Park's Textbook of PSM  |  WHO/UNICEF Guidelines"):
    draw_rect(c, 0, 0, PAGE_W, 18, TEAL_DARK)
    draw_text(c, text, 10, 3, PAGE_W - 20, 12, 7.5, TEAL_LIGHT, align="left", wrap_text=False)

def bg(c):
    draw_rect(c, 0, 0, PAGE_W, PAGE_H, LIGHT_GRAY)

def section_box(c, x, y, w, h, title, title_color, body_lines, body_color=None, font_size=9):
    body_color = body_color or DARK_TEXT
    draw_rect(c, x, y + h - 20, w, 20, title_color)
    draw_text(c, title, x + 5, y + h - 18, w - 10, 16, 9.5, WHITE_C, bold=True)
    draw_rect(c, x, y, w, h - 20, WHITE_C)
    ty = y + h - 26
    for line in body_lines:
        if ty < y + 4:
            break
        draw_text(c, line, x + 6, ty, w - 12, 12, font_size, body_color, wrap_text=False)
        ty -= font_size * 1.4

c = canvas.Canvas("/tmp/workspace/IDCF-PPT/IDCF_ORS_Zinc_Week.pdf", pagesize=landscape(A4))
c.setTitle("Intensified Diarrhoea Control Fortnight (IDCF) / ORS-Zinc Week")
c.setAuthor("Ministry of Health & Family Welfare, Government of India")
c.setSubject("National Health Mission - Child Health Programme")

# ══════════════════════════════════════════════════════════════════
# SLIDE 1 — TITLE
# ══════════════════════════════════════════════════════════════════
draw_rect(c, 0, 0, PAGE_W, PAGE_H, TEAL_DARK)
draw_rect(c, 0, 0, PAGE_W, 130, TEAL_DARKER)
draw_rect(c, 0, 235, 10, 95, ORANGE)  # left accent bar

draw_text(c, "Intensified Diarrhoea Control Fortnight", 25, 430, 700, 50, 28, WHITE_C, bold=True)
draw_text(c, "(IDCF) / ORS-Zinc Week", 25, 390, 700, 40, 24, YELLOW, bold=True)

draw_rect(c, 25, 330, 560, 38, ORANGE)
draw_text(c, '"Zero Child Deaths Due to Childhood Diarrhoea"', 30, 340, 550, 26, 13, WHITE_C, bold=True)

draw_text(c, "Ministry of Health & Family Welfare, Government of India", 25, 300, 700, 20, 12, TEAL_LIGHT)
draw_text(c, "National Health Mission (NHM)  |  Observed Annually Since 2014", 25, 282, 700, 16, 11, TEAL_LIGHT)
draw_text(c, "Pre-Monsoon / Monsoon Season  —  July-August", 25, 264, 700, 16, 11, TEAL_LIGHT)

draw_rect(c, 660, 200, 160, 190, TEAL_DARKER)
draw_text(c, "Child Health", 665, 355, 150, 20, 12, TEAL_LIGHT, bold=True, align="center")
draw_text(c, "ORS  |  Zinc  |  WASH", 665, 335, 150, 16, 10, YELLOW, align="center")
draw_text(c, "Prevention  |  Treatment", 665, 315, 150, 16, 10, TEAL_LIGHT, align="center")
draw_text(c, "Under-5 Children", 665, 298, 150, 16, 10, TEAL_LIGHT, align="center")
draw_text(c, "Since: 2014", 665, 215, 150, 16, 11, YELLOW, align="center", bold=True)

c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 2 — BACKGROUND & BURDEN
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Background & Burden of Childhood Diarrhoea", "Why diarrhoea control is a national priority")

stats = [
    ("~1.3 Million", "Child deaths globally/year\ndue to diarrhoea (WHO)"),
    ("2nd Leading",  "Cause of under-5 mortality\nworldwide"),
    ("~13%",         "Under-5 deaths in India\nattributed to diarrhoea"),
    ("Preventable",  "Most deaths preventable\nwith ORS + Zinc"),
]
for i, (val, desc) in enumerate(stats):
    col = i % 2; row = i // 2
    bx = 15 + col * 185; by = PAGE_H - 195 - row * 130
    draw_rect(c, bx, by, 175, 115, TEAL_DARK)
    draw_text(c, val, bx + 5, by + 72, 165, 32, 16, YELLOW, bold=True, align="center")
    draw_text(c, desc, bx + 5, by + 35, 165, 38, 9, WHITE_C, align="center")

bullets = [
    "Diarrhoea is a leading killer of children under 5 in low- and middle-income countries.",
    "In India, it peaks during summer/monsoon season and in flood-affected regions.",
    "Dehydration from diarrhoea is the primary cause of death — easily prevented with timely ORS.",
    "ORS coverage rose from 50.6% (NFHS-4, 2015-16) to 60.6% (NFHS-5, 2019-21). Target: 90%.",
    "Zinc coverage: 20.3% (NFHS-3) -> 30.5% (NFHS-4). Massive gap vs 90% IAPPD target.",
    "India Action Plan for Pneumonia & Diarrhoea (IAPPD) targets 90% ORS & Zinc coverage by 2025.",
    "High-risk groups: under-5 children, urban slum dwellers, rural disadvantaged communities.",
    "National Health Policy 2019: childhood mortality target of 23 per 1,000 live births by 2025.",
    "Majority of diarrhoea deaths occur at home before reaching a health facility — hence IDCF.",
]
draw_rect(c, 395, PAGE_H - 460, 430, 390, WHITE_C)
draw_rect(c, 395, PAGE_H - 460, 5, 390, TEAL_MID)
ty = PAGE_H - 88
for b in bullets:
    draw_text(c, "  > " + b, 403, ty, 415, 14, 8.5, DARK_TEXT, wrap_text=False)
    ty -= 40

footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 3 — WHAT IS IDCF?
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "What is IDCF?", "Intensified Diarrhoea Control Fortnight — Overview")

draw_rect(c, 15, PAGE_H - 130, PAGE_W - 30, 68, TEAL_DARK)
draw_rect(c, 15, PAGE_H - 132, PAGE_W - 30, 3, ORANGE)
defn = ("IDCF is a two-week national campaign observed annually during the pre-monsoon/monsoon season "
        "(July-August) by the Ministry of Health & Family Welfare, GoI, under the National Health Mission. "
        "It aims to eliminate child deaths due to diarrhoea through intensive community outreach, "
        "ORS & Zinc distribution, WASH promotion, and health system strengthening.")
draw_text(c, defn, 20, PAGE_H - 127, PAGE_W - 40, 60, 9.5, WHITE_C, wrap_text=True)

pillars = [
    (TEAL_DARK, "Community Outreach",       ["ASHAs & ANMs visit every household", "with under-5 children during fortnight", "Door-to-door ORS packet distribution", "Counselling on diarrhoea management"]),
    (ORANGE,    "ORS + Zinc Distribution",  ["Free ORS-Zinc co-pack at all facilities", "Pre-positioned at ASHA households", "Zinc 14-day course with every ORS kit", "Available at sub-centres, PHC, CHC, DH"]),
    (GREEN,     "WASH & Hygiene Promotion", ["Safe water use and storage", "Handwashing with soap promotion", "Food hygiene and sanitation messaging", "Open defecation free village focus"]),
    (BLUE,      "Health System Strengthen.", ["ORS-Zinc Corners at every facility", "Trained health workers (IMNCI)", "Adequate supply chain pre-positioning", "24x7 diarrhoea management services"]),
]
for i, (col, title, lines) in enumerate(pillars):
    bx = 15 + i * 206; by = 30
    draw_rect(c, bx, by + 200, 200, 25, col)
    draw_text(c, title, bx + 3, by + 204, 194, 20, 9.5, WHITE_C, bold=True, align="center")
    draw_rect(c, bx, by, 200, 200, WHITE_C)
    ty2 = by + 192
    for line in lines:
        draw_text(c, "  * " + line, bx + 5, ty2, 188, 13, 8.8, DARK_TEXT)
        ty2 -= 42

draw_rect(c, 15, 22, PAGE_W - 30, 18, LIGHT_GREEN)
draw_text(c, "Launched 2014  *  Annual national campaign  *  Coordinated by MoHFW with States/UTs, WHO, UNICEF",
          20, 25, PAGE_W - 40, 14, 8.5, GREEN, bold=True, align="center")
footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 4 — GOALS & OBJECTIVES
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Goals & Objectives of IDCF", "National targets and programme goals")

draw_rect(c, 15, PAGE_H - 118, PAGE_W - 30, 55, ORANGE)
draw_text(c, "GOAL:  Achieve ZERO Child Deaths Due to Childhood Diarrhoea Across All States/UTs",
          20, PAGE_H - 104, PAGE_W - 40, 40, 13, WHITE_C, bold=True, align="center")

objectives = [
    (TEAL_DARK, "Objective 1", "Increase ORS Coverage to 90%",
     ["IAPPD target by 2025", "NFHS-5: 60.6% — gap of 29.4%", "Focus on rural and tribal areas", "Demonstration of ORS preparation"]),
    (TEAL_MID, "Objective 2", "Increase Zinc Coverage to 90%",
     ["IAPPD target by 2025", "NFHS-4: only 30.5% — huge gap", "14-day course for every episode", "Co-pack approach with ORS"]),
    (GREEN, "Objective 3", "Reduce Under-5 Diarrhoea Deaths",
     ["Early ORS prevents dehydration", "Zinc reduces severity by 25%", "Timely referral for Plan C cases", "Zero tolerance for diarrhoea deaths"]),
    (BLUE, "Objective 4", "Improve Caregiver Knowledge",
     ["ORS preparation demonstration", "Feeding continuation counselling", "Danger signs recognition", "Urban slum focus — knowledge gap"]),
]
for i, (col, label, title, pts) in enumerate(objectives):
    bx = 15 + i * 206; by = 35
    draw_rect(c, bx, by + 260, 200, 20, col)
    draw_text(c, label, bx + 3, by + 263, 194, 16, 8.5, WHITE_C, bold=True, align="center")
    draw_rect(c, bx, by + 218, 200, 42, HexColor("#E0F2F1") if col==TEAL_DARK else (LIGHT_BLUE if col==BLUE else (LIGHT_GREEN if col==GREEN else HexColor("#E0F7FA"))))
    draw_text(c, title, bx + 3, by + 230, 194, 36, 9.5, col, bold=True, align="center")
    draw_rect(c, bx, by, 200, 218, WHITE_C)
    ty2 = by + 208
    for pt in pts:
        draw_text(c, "  > " + pt, bx + 5, ty2, 188, 14, 9, DARK_TEXT)
        ty2 -= 47

draw_rect(c, 15, 22, PAGE_W - 30, 14, LIGHT_BLUE)
draw_text(c, "NFHS Data:  ORS 50.6% (2015-16) -> 60.6% (2019-21)  |  Zinc 30.5% (2015-16)  |  Target: 90% by 2025 (IAPPD)",
          20, 24, PAGE_W - 40, 12, 8, BLUE, bold=True, align="center")
footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 5 — THREE-FOLD STRATEGY
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Three-Fold IDCF Strategy", "Core framework for programme implementation")

strategies = [
    (TEAL_DARK, "STRATEGY 1", "Improved Availability & Use of ORS at Households",
     ["ASHAs pre-position ORS in all households with under-5 children",
      "Door-to-door distribution during fortnight by ASHAs & ANMs",
      "Demonstration of correct ORS preparation to mothers/caregivers",
      "Awareness of when to give ORS and how much fluid to provide",
      "ASHA incentive linked to ORS distribution and household visits",
      "Ensuring ORS is available at home BEFORE diarrhoea occurs"]),
    (GREEN, "STRATEGY 2", "Facility Strengthening for Diarrhoea Case Management",
     ["ORS-Zinc Corners at Sub-Centre, PHC, CHC, District Hospital",
      "Adequate ORS sachets & Zinc tablets pre-positioned before fortnight",
      "Training of health workers in IMNCI protocols",
      "Free ORS, Zinc, IV fluids where clinically indicated",
      "Referral pathways for severe dehydration (Plan C) cases",
      "24x7 availability of diarrhoea management services"]),
    (BLUE, "STRATEGY 3", "Advocacy, BCC & Community Awareness Generation",
     ["IEC/BCC: community meetings, wall paintings, posters, radio/TV",
      "Village Health & Nutrition Days (VHNDs) on diarrhoea",
      "WASH: safe water, handwashing with soap, sanitation",
      "Community mobilisation via AWWs, ASHAs, SHGs, PRIs",
      "Special focus on flood-prone areas & vulnerable communities",
      "School health activities and adolescent awareness sessions"]),
]
for i, (col, label, title, pts) in enumerate(strategies):
    bx = 15 + i * 276; by = 30
    draw_rect(c, bx, by + 460, 268, 28, col)
    draw_text(c, label, bx + 3, by + 465, 262, 22, 11, WHITE_C, bold=True, align="center")
    draw_rect(c, bx, by + 415, 268, 45, TEAL_LIGHT if col==TEAL_DARK else (LIGHT_GREEN if col==GREEN else LIGHT_BLUE))
    draw_text(c, title, bx + 4, by + 425, 260, 38, 9.5, col, bold=True, align="center")
    draw_rect(c, bx, by, 268, 415, WHITE_C)
    ty2 = by + 403
    for pt in pts:
        draw_text(c, "  >> " + pt, bx + 5, ty2, 256, 15, 9, DARK_TEXT)
        ty2 -= 62

footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 6 — KEY ACTIVITIES
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Key Activities During IDCF", "What happens on the ground during the fortnight")

phases = [
    (TEAL_DARK, "PRE-FORTNIGHT (Preparatory Phase)",
     ["State/district planning meetings & sensitisation workshops",
      "Pre-positioning ORS & Zinc stocks at all levels",
      "Training/refresher for ASHAs, ANMs, AWWs",
      "Preparation of IEC materials & communication plans",
      "Mapping households with under-5 children in each village",
      "Coordination with NGOs, UNICEF, WHO at state level"]),
    (ORANGE, "DURING FORTNIGHT (Campaign Phase)",
     ["Door-to-door ASHA visits to all households with under-5 children",
      "Free ORS packet distribution + preparation demonstration",
      "Zinc tablet supply alongside ORS (co-pack approach)",
      "Community awareness: street plays, meetings, IEC",
      "ORS-Zinc Corners operational 24x7 at health facilities",
      "Village Health & Nutrition Days focused on diarrhoea",
      "Surveillance of diarrhoea cases & deaths; rapid reporting"]),
    (GREEN, "POST-FORTNIGHT (Review & Monitoring)",
     ["Data compilation: ORS/Zinc distributed, households covered",
      "Reporting on diarrhoea morbidity & mortality indicators",
      "District/state review meetings — lessons learned",
      "Supply chain gap analysis and replenishment planning",
      "Scorecard preparation based on HMIS data",
      "Plan for year-round sustenance of activities"]),
]
for i, (col, phase, acts) in enumerate(phases):
    bx = 15 + i * 276; by = 30
    draw_rect(c, bx, by + 460, 268, 35, col)
    draw_text(c, phase, bx + 3, by + 466, 262, 28, 9.5, WHITE_C, bold=True, align="center")
    draw_rect(c, bx, by, 268, 460, WHITE_C)
    ty2 = by + 448
    for act in acts:
        draw_text(c, "  > " + act, bx + 5, ty2, 256, 15, 9, DARK_TEXT)
        ty2 -= 62

footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 7 — ORS
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Oral Rehydration Solution (ORS)", "The first-line treatment for diarrhoea-induced dehydration")

draw_rect(c, 15, PAGE_H - 120, 255, 62, WHITE_C)
draw_rect(c, 15, PAGE_H - 120, 255, 22, TEAL_DARK)
draw_text(c, "What is ORS?", 20, PAGE_H - 118, 245, 18, 10, WHITE_C, bold=True)
ors_pts = ["Simple, inexpensive, effective rehydration therapy",
           "WHO/UNICEF: LOW OSMOLARITY ORS (245 mOsm/L)",
           "Composition per litre of water:",
           "  NaCl: 2.6 g | KCl: 1.5 g | Glucose: 13.5 g",
           "  Trisodium citrate: 2.9 g | Osmolarity: 245 mOsm/L",
           "Mechanism: glucose-coupled Na+ absorption",
           "Available FREE at all govt health facilities",
           "Home prep: 1L clean water + 6 tsp sugar + 1/2 tsp salt"]
ty = PAGE_H - 104
for p in ors_pts:
    draw_text(c, p, 20, ty, 244, 13, 8.5, DARK_TEXT); ty -= 17

draw_rect(c, 280, PAGE_H - 120, 255, 62, WHITE_C)
draw_rect(c, 280, PAGE_H - 120, 255, 22, TEAL_MID)
draw_text(c, "Dosage & Administration (Plans)", 285, PAGE_H - 118, 245, 18, 10, WHITE_C, bold=True)
dose_pts = ["PLAN A (No dehydration):",
            "  50-100 mL ORS after each loose stool",
            "  Continue feeding; breastfeed on demand",
            "PLAN B (Some dehydration):",
            "  75 mL/kg over 4 hours at ORS Corner",
            "  Reassess every 1-2 hours",
            "PLAN C (Severe dehydration):",
            "  IV Ringer's Lactate/Normal Saline",
            "  Urgent hospital referral"]
ty = PAGE_H - 104
for p in dose_pts:
    bold_flag = p.startswith("PLAN")
    draw_text(c, p, 285, ty, 244, 13, 8.5, DARK_TEXT, bold=bold_flag); ty -= 17

draw_rect(c, 545, PAGE_H - 120, 280, 62, WHITE_C)
draw_rect(c, 545, PAGE_H - 120, 280, 22, GREEN)
draw_text(c, "Evidence & Impact", 550, PAGE_H - 118, 270, 18, 10, WHITE_C, bold=True)
imp_pts = ["Reduces case-fatality rate by >90%",
           "Saved >50 million children since 1978",
           "Low-osmolarity ORS reduces IV fluid need by ~33%",
           "Reduces stool output and vomiting vs standard ORS",
           "Cost-effective: ORS sachet < Rs 5",
           "Safe for all ages including neonates",
           "Endorsed by WHO, UNICEF, IAP, MoHFW"]
ty = PAGE_H - 104
for p in imp_pts:
    draw_text(c, p, 550, ty, 268, 13, 8.5, DARK_TEXT); ty -= 17

draw_rect(c, 15, 30, PAGE_W - 30, 320, WHITE_C)
draw_rect(c, 15, 338, PAGE_W - 30, 22, TEAL_DARK)
draw_text(c, "Key Points to Remember", 20, 342, PAGE_W - 40, 18, 10, WHITE_C, bold=True)
key_pts = [
    "Begin ORS at the VERY FIRST loose stool — do not wait until dehydration develops.",
    "Do NOT stop breastfeeding or complementary feeding during diarrhoea — continue normal diet.",
    "Give small sips of ORS frequently — do not give large amounts at once to avoid vomiting.",
    "If child vomits, wait 10 minutes and restart ORS more slowly (1 teaspoon every 2-3 minutes).",
    "ORS does not stop diarrhoea — it replaces fluid lost. It prevents dangerous dehydration.",
    "Give extra fluids (coconut water, rice water, dal water) in addition to ORS between episodes.",
    "Do NOT give anti-diarrhoeal medicines (Lomotil, Imodium) — they are dangerous in children.",
]
ty = 337
for kp in key_pts:
    ty -= 43
    draw_text(c, "  >> " + kp, 20, ty, PAGE_W - 40, 15, 8.8, DARK_TEXT)

footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 8 — ZINC
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Zinc Supplementation in Diarrhoea", "A critical adjunct to ORS therapy")

draw_rect(c, 15, PAGE_H - 115, PAGE_W - 30, 52, TEAL_DARK)
draw_text(c, "WHO/UNICEF recommend Zinc for ALL children with diarrhoea. It reduces duration and severity of acute diarrhoea and prevents recurrence for 2-3 months.",
          20, PAGE_H - 107, PAGE_W - 40, 42, 10, WHITE_C, wrap_text=True)

cols = [
    (TEAL_MID, "Mechanism of Action",
     ["Maintains mucosal integrity of gut wall",
      "Enhances brush-border enzyme activity",
      "Modulates intestinal fluid & electrolyte transport",
      "Boosts immune response (T-cells, NK cells)",
      "Reduces intestinal permeability",
      "Antioxidant — protects enterocytes from damage",
      "Stimulates repair of damaged intestinal mucosa",
      "Reduces pro-inflammatory cytokine production"]),
    (GREEN, "Dosage & Duration",
     ["Children < 6 months:  10 mg/day x 14 days",
      "Children >= 6 months:  20 mg/day x 14 days",
      "Dispersible tablet — dissolve in breast milk or ORS",
      "Given alongside ORS — not a replacement",
      "Start as early as possible after onset",
      "Complete FULL 14-day course even if diarrhoea stops",
      "Available FREE at all public health facilities",
      "Co-packaged with ORS in IDCF distribution"]),
    (ORANGE, "Benefits & Evidence",
     ["Reduces duration of acute diarrhoea by ~25%",
      "Reduces stool frequency and stool volume significantly",
      "Lowers risk of subsequent episodes by ~25% (2-3 mths)",
      "Reduces risk of pneumonia in malnourished children",
      "Improves appetite and nutritional recovery",
      "Cost-effective: <Rs 10 for a 14-day course",
      "Cochrane systematic reviews — strong evidence base",
      "WHO/UNICEF joint statement (2004) recommends routine use"]),
]
for i, (col, title, pts) in enumerate(cols):
    bx = 15 + i * 276; by = 30
    draw_rect(c, bx, by + 410, 268, 22, col)
    draw_text(c, title, bx + 3, by + 414, 262, 18, 9.5, WHITE_C, bold=True, align="center")
    draw_rect(c, bx, by, 268, 410, WHITE_C)
    ty2 = by + 400
    for pt in pts:
        draw_text(c, "  > " + pt, bx + 5, ty2, 256, 15, 9, DARK_TEXT)
        ty2 -= 47

draw_rect(c, 15, 22, PAGE_W - 30, 14, LIGHT_BLUE)
draw_text(c, "ORS + Zinc Co-pack: MoHFW provides combined ORS-Zinc co-pack to simplify administration and ensure both are given together at community level.",
          20, 24, PAGE_W - 40, 12, 8, BLUE, bold=True, align="center")
footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 9 — ROLES & RESPONSIBILITIES
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Roles & Responsibilities", "Stakeholders in IDCF implementation at all levels")

roles = [
    (TEAL_DARK, "MoHFW / NHM\n(Central Level)",
     ["Issue operational guidelines and programme directives",
      "Procure and supply ORS-Zinc co-packs nationally",
      "Coordinate with WHO, UNICEF, NGOs and partners",
      "Monitor programme via HMIS and national scorecards",
      "Launch and publicize the campaign nationally",
      "Develop IEC/BCC materials for national rollout"]),
    (ORANGE, "State / UT Health\nDepartments",
     ["State-level planning, coordination and fund allocation",
      "Train district health officers (CHMOs/CMOs)",
      "Ensure robust ORS-Zinc supply chain in the state",
      "Review HMIS data and prepare state scorecards",
      "State-level IEC/BCC campaign management",
      "Monitor high-priority/flood-prone districts"]),
    (BLUE, "District Health Team\n(CHMO/CMO/MO)",
     ["Microplan for each block and PHC catchment area",
      "Ensure training of all frontline health workers",
      "Monitor day-by-day progress during the fortnight",
      "Daily reporting to state health directorate",
      "Manage ORS-Zinc Corners at district hospital",
      "Rapid response to any diarrhoea death reports"]),
    (GREEN, "ASHA / ANM / AWW\n(Frontline Workers)",
     ["Door-to-door visits to all under-5 households",
      "Distribute ORS packets + Zinc tablets",
      "Demonstrate ORS preparation technique to mothers",
      "Counsel on feeding, hygiene, and when to seek care",
      "Report diarrhoea cases and facilitate referrals",
      "Maintain beneficiary registers and daily reports"]),
]
for i, (col, role, duties) in enumerate(roles):
    bx = 15 + i * 206; by = 30
    draw_rect(c, bx, by + 440, 200, 35, col)
    draw_text(c, role, bx + 3, by + 443, 194, 30, 9.5, WHITE_C, bold=True, align="center")
    draw_rect(c, bx, by, 200, 440, WHITE_C)
    ty2 = by + 428
    for d in duties:
        draw_text(c, "  > " + d, bx + 5, ty2, 188, 14, 8.8, DARK_TEXT)
        ty2 -= 68

footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 10 — ORS-ZINC CORNERS
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "ORS-Zinc Corners", "Dedicated diarrhoea management spaces in health facilities")

draw_rect(c, 15, PAGE_H - 115, PAGE_W - 30, 52, TEAL_DARK)
draw_text(c, ("ORS-Zinc Corners are dedicated, clearly marked spaces at health facilities (Sub-Centres, PHCs, CHCs, "
              "District Hospitals) where children with diarrhoea receive prompt assessment and treatment with ORS and Zinc."),
          20, PAGE_H - 107, PAGE_W - 40, 42, 10, WHITE_C, wrap_text=True)

draw_rect(c, 15, 30, 400, 398, WHITE_C)
draw_rect(c, 15, 408, 400, 22, TEAL_MID)
draw_text(c, "Setup & Requirements", 20, 412, 390, 18, 10, WHITE_C, bold=True)
setup = ["Clearly labeled 'ORS-Zinc Corner' with local-language signage",
         "Adequate stock: ORS sachets (all formulations) + Zinc tablets",
         "Measuring containers for proper ORS preparation",
         "Registers for recording cases, treatment given, follow-up",
         "Educational charts/posters on ORS preparation and feeding",
         "Trained health worker (nurse/ANM) stationed during OPD hours",
         "Protocol for all 3 dehydration plans (A, B, C) displayed",
         "Referral pathways clearly displayed and functional",
         "Toilet/handwashing facilities adjacent to the corner",
         "Zero stock-out policy — immediate escalation if stock low"]
ty = 398
for s in setup:
    draw_text(c, "  > " + s, 20, ty, 388, 14, 8.8, DARK_TEXT); ty -= 37

draw_rect(c, 427, 30, 398, 398, WHITE_C)
draw_rect(c, 427, 408, 398, 22, GREEN)
draw_text(c, "Activities at ORS-Zinc Corner", 432, 412, 388, 18, 10, WHITE_C, bold=True)
activities = ["Assess degree of dehydration using standard WHO/IMNCI criteria",
              "Administer ORS as per Plan A/B; arrange IV fluids for Plan C",
              "Provide Zinc tablets as per age group (10 mg or 20 mg x 14 days)",
              "Counsel caregiver: home care, feeding continuation, danger signs",
              "Schedule follow-up visit at 1-2 days if some dehydration",
              "Register all cases in diarrhoea treatment register (daily line list)",
              "Report zero diarrhoea deaths — escalate any death immediately",
              "Provide health education: hygiene, safe water, breastfeeding",
              "Ensure caregiver knows how to prepare ORS before discharge",
              "Document and report to HMIS monthly"]
ty = 398
for a in activities:
    draw_text(c, "  > " + a, 432, ty, 386, 14, 8.8, DARK_TEXT); ty -= 37

footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 11 — POLICY FRAMEWORK
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Policy Framework & Linkages", "IDCF within the broader national health architecture")

frameworks = [
    (TEAL_DARK, "IAPPD", "India Action Plan for Pneumonia & Diarrhoea",
     ["Target: 90% ORS & Zinc coverage by 2025",
      "Launched in 4 high-IMR states: UP, MP, Bihar, Rajasthan",
      "Integrated approach: prevention + treatment + WASH",
      "Aligns with global GAPPD framework (WHO/UNICEF)"]),
    (BLUE, "NHM / RMNCH+A", "National Health Mission — Child Health",
     ["IDCF is a key NHM child health intervention",
      "Under-5 diarrhoea management = core NHM goal",
      "Scorecard monitoring via HMIS every month",
      "Linked to child mortality reduction targets (NHP 2019)"]),
    (GREEN, "IMNCI", "Integrated Management of Neonatal & Childhood Illness",
     ["Clinical protocol for diarrhoea case management",
      "Trains health workers at all facility levels",
      "Guides triage, assessment and treatment plans A/B/C",
      "Community IMNCI (C-IMNCI) for ASHA/AWW level"]),
    (ORANGE, "WHO / UNICEF", "Global Evidence & International Guidelines",
     ["WHO recommends ORS + Zinc as standard of care",
      "Low-osmolarity ORS adopted globally since 2004",
      "Zinc endorsed in WHO/UNICEF joint statement (2004)",
      "UNICEF provides ORS/Zinc supply procurement support"]),
]
for i, (col, abbr, full, pts) in enumerate(frameworks):
    bx = 15 + i * 206; by = 30
    draw_rect(c, bx, by + 440, 200, 28, col)
    draw_text(c, abbr, bx + 3, by + 447, 194, 22, 14, WHITE_C, bold=True, align="center")
    light = HexColor("#E0F7FA") if col==TEAL_DARK else (LIGHT_BLUE if col==BLUE else (LIGHT_GREEN if col==GREEN else HexColor("#FFF3E0")))
    draw_rect(c, bx, by + 395, 200, 45, light)
    draw_text(c, full, bx + 3, by + 405, 194, 38, 8.5, col, bold=True, align="center")
    draw_rect(c, bx, by, 200, 395, WHITE_C)
    ty2 = by + 383
    for pt in pts:
        draw_text(c, "  > " + pt, bx + 5, ty2, 188, 14, 9, DARK_TEXT)
        ty2 -= 90

footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 12 — ASSESSMENT OF DEHYDRATION
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Assessment of Dehydration", "Clinical classification to guide treatment plan (WHO/IMNCI)")

col_x   = [15,  185, 365, 545, 725]
col_w   = [168, 178, 178, 178, 109]
headers = ["Clinical Sign", "Plan A\n(No Dehydration)", "Plan B\n(Some Dehydration)", "Plan C\n(Severe Dehydration)"]
hcols   = [TEAL_DARK, GREEN, ORANGE, RED]
for j in range(4):
    draw_rect(c, col_x[j], PAGE_H - 120, col_w[j] - 3, 62, hcols[j])
    draw_text(c, headers[j], col_x[j]+4, PAGE_H - 110, col_w[j]-10, 50, 9.5, WHITE_C, bold=True, align="center")

rows = [
    ("General Condition", "Well, alert",       "Restless, irritable",          "Lethargic/unconscious"),
    ("Eyes",              "Normal",             "Sunken",                       "Very sunken & dry"),
    ("Tears",             "Present",            "Absent",                       "Absent"),
    ("Mouth / Tongue",    "Moist",              "Dry",                          "Very dry"),
    ("Thirst",            "Normal, drinks OK",  "Thirsty, drinks eagerly",      "Drinks poorly/not able"),
    ("Skin Pinch",        "Goes back quickly",  "Slow (< 2 sec)",               "Very slow (>=2 sec)"),
    ("Treatment",         "Plan A: ORS at home; continue feeding",
                          "Plan B: 75 mL/kg ORS over 4h at ORS corner",
                          "Plan C: IV Ringer's Lactate; urgent referral"),
]
row_bgs = [LIGHT_GRAY, WHITE_C, LIGHT_GRAY, WHITE_C, LIGHT_GRAY, WHITE_C, LIGHT_BLUE]
rh = 52
for r, (row_data, bg_c) in enumerate(zip(rows, row_bgs)):
    ry = PAGE_H - 172 - r * rh
    for j, cell in enumerate(row_data):
        use_bg = bg_c if j > 0 else LIGHT_GRAY
        if r == 6:
            use_bg = LIGHT_GREEN if j==1 else (HexColor("#FFF3E0") if j==2 else (LIGHT_RED if j==3 else LIGHT_BLUE))
        fcol = GREEN if (j==1 and r==6) else (ORANGE if (j==2 and r==6) else (RED if (j==3 and r==6) else DARK_TEXT))
        draw_rect(c, col_x[j], ry, col_w[j]-3, rh-2, use_bg, GRAY_TEXT, 0.3)
        draw_text(c, cell, col_x[j]+5, ry+4, col_w[j]-12, rh-6, 8.5, fcol, bold=(r==6), wrap_text=True)

footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 13 — BCC KEY MESSAGES
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Key Behaviour Change Communication (BCC) Messages", "Core messages for community awareness during IDCF")

msgs = [
    (TEAL_DARK, "Start ORS Early",
     ["Begin ORS at the FIRST loose stool — do not wait",
      "Do not stop breastfeeding or normal feeding",
      "Give extra fluids with every loose motion",
      "Small sips frequently — avoid large boluses"]),
    (ORANGE, "Complete Zinc Course",
     ["Give Zinc daily for FULL 14 days",
      "Continue even after diarrhoea resolves",
      "Zinc protects child for next 2-3 months",
      "Dissolve tablet in small amount of ORS/milk"]),
    (GREEN, "Continue Feeding",
     ["Do NOT withhold food or breastmilk",
      "Breastfeed on demand throughout illness",
      "Give semi-solid, easily digestible foods",
      "Increase feeding during recovery phase"]),
    (BLUE, "Safe Water & Hygiene",
     ["Use only boiled/purified drinking water",
      "Wash hands with soap before food & after toilet",
      "Store water in clean, covered containers",
      "Wash fruits/vegetables; cook food thoroughly"]),
    (HexColor("#6A1B9A"), "Seek Care Early — Danger Signs",
     ["Child not able to drink anything",
      "Sunken eyes, very weak/lethargic",
      "Blood in stool, very high fever",
      "Vomiting everything given — go to facility"]),
    (HexColor("#BF360C"), "What NOT to Do",
     ["Do NOT give anti-diarrhoeal drugs (Lomotil)",
      "Do NOT give antibiotics without prescription",
      "Do NOT give sweetened juices/cold drinks",
      "Do NOT withhold ORS fearing more diarrhoea"]),
]
for i, (col, title, pts) in enumerate(msgs):
    cn = i % 3; rn = i // 3
    bx = 15 + cn * 276; by = PAGE_H - 200 - rn * 210
    draw_rect(c, bx, by + 145, 268, 28, col)
    draw_text(c, title, bx+5, by+150, 258, 22, 10.5, WHITE_C, bold=True)
    draw_rect(c, bx, by, 268, 145, WHITE_C)
    ty2 = by + 135
    for pt in pts:
        draw_text(c, "  > " + pt, bx+5, ty2, 256, 14, 9, DARK_TEXT); ty2 -= 32

footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 14 — MONITORING & EVALUATION
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Monitoring & Evaluation", "Indicators, tools, and reporting mechanisms")

draw_rect(c, 15, 30, 390, 460, WHITE_C)
draw_rect(c, 15, 470, 390, 22, TEAL_DARK)
draw_text(c, "Key Performance Indicators", 20, 474, 380, 18, 10, WHITE_C, bold=True)
kpis = ["1. % under-5 with diarrhoea who received ORS",
        "2. % under-5 with diarrhoea who received Zinc",
        "3. % households with under-5 visited by ASHA",
        "4. No. of ORS packets distributed per household",
        "5. No. of ORS-Zinc Corners established & functional",
        "6. Under-5 diarrhoea case-fatality rate",
        "7. No. of health workers trained in diarrhoea mgmt",
        "8. Stock-out rate of ORS/Zinc at facility level",
        "9. Coverage of VHND sessions on diarrhoea",
        "10. HMIS: monthly diarrhoea morbidity & mortality"]
ty = 460
for k in kpis:
    draw_text(c, k, 20, ty, 378, 14, 8.8, DARK_TEXT); ty -= 43

draw_rect(c, 420, 265, 405, 225, WHITE_C)
draw_rect(c, 420, 470, 405, 22, GREEN)
draw_text(c, "Monitoring Tools & Mechanisms", 425, 474, 395, 18, 10, WHITE_C, bold=True)
tools = ["HMIS (Health Management Information System) — monthly",
         "District/State Score Cards — RMNCH+A framework",
         "Field supervisory visits by MOs & block supervisors",
         "ASHA daily visit reports & beneficiary registers",
         "NHM quarterly reviews at national level",
         "Real-time mobile reporting during campaign phase"]
ty = 460
for t in tools:
    draw_text(c, "  > " + t, 425, ty, 393, 14, 8.8, DARK_TEXT); ty -= 36

draw_rect(c, 420, 30, 405, 220, WHITE_C)
draw_rect(c, 420, 232, 405, 22, ORANGE)
draw_text(c, "Challenges & Way Forward", 425, 236, 395, 18, 10, WHITE_C, bold=True)
challenges = ["Supply chain gaps: ORS stock-outs at sub-centre level",
              "Low Zinc coverage (30%) vs ORS coverage (60%)",
              "Knowledge gap on ORS preparation in urban slums",
              "Cultural practice: withholding food/fluids during diarrhoea",
              "Under-reporting of diarrhoea deaths at community level",
              "Need for sustained year-round focus beyond fortnight"]
ty = 223
for ch in challenges:
    draw_text(c, "  > " + ch, 425, ty, 393, 14, 8.8, DARK_TEXT); ty -= 35

footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 15 — ACHIEVEMENTS & WAY FORWARD
# ══════════════════════════════════════════════════════════════════
bg(c)
header_bar(c, "Achievements & Way Forward", "Progress made and the road to zero diarrhoea deaths")

achvs = [
    (TEAL_DARK, "2014", "IDCF Launched",
     ["First national fortnight across all states", "Operational guidelines issued by MoHFW", "ORS-Zinc as standard community care"]),
    (TEAL_MID, "2015-19", "Scale-up Phase",
     ["Annual IDCFs conducted in all states/UTs", "ORS-Zinc co-pack introduced nationally", "ORS-Zinc Corners established in facilities"]),
    (GREEN, "2019-21", "Coverage Growth",
     ["ORS: 50.6% -> 60.6% (NFHS-4 to NFHS-5)", "Zinc awareness improving in rural areas", "Facility-based management strengthened"]),
    (ORANGE, "2024", "STOP Diarrhoea Campaign",
     ["Launched by Union Health Minister JP Nadda", "Two-phase: preparatory (Jun 14-30) + campaign", "Enhanced coordination with all states/UTs"]),
    (BLUE, "Target 2025", "90% Coverage Goal",
     ["IAPPD: 90% ORS & Zinc coverage target", "NHP 2019: <23 child deaths per 1000 LB", "Zero diarrhoea deaths — national ambition"]),
]
for i, (col, year, title, pts) in enumerate(achvs):
    bx = 15 + i * 166; by = 225
    draw_rect(c, bx, by + 200, 160, 28, col)
    draw_text(c, year, bx+3, by+205, 154, 22, 11, WHITE_C, bold=True, align="center")
    light = HexColor("#E0F2F1") if col==TEAL_DARK else (HexColor("#E0F7FA") if col==TEAL_MID else (LIGHT_GREEN if col==GREEN else (HexColor("#FFF3E0") if col==ORANGE else LIGHT_BLUE)))
    draw_rect(c, bx, by + 158, 160, 42, light)
    draw_text(c, title, bx+3, by+165, 154, 35, 9.5, col, bold=True, align="center")
    draw_rect(c, bx, by, 160, 158, WHITE_C)
    ty2 = by + 148
    for pt in pts:
        draw_text(c, "  > " + pt, bx+4, ty2, 150, 14, 8.5, DARK_TEXT); ty2 -= 46

draw_rect(c, 15, 185, PAGE_W - 30, 28, ORANGE)
draw_text(c, "Way Forward", 20, 192, PAGE_W - 40, 22, 12, WHITE_C, bold=True)
draw_rect(c, 15, 30, PAGE_W - 30, 155, WHITE_C)
wf = ["Sustain year-round ORS & Zinc promotion beyond the fortnight — not just 2 weeks of the year",
      "Address urban slum & tribal populations with targeted microplans and dedicated ASHAs",
      "Strengthen supply chain to eliminate ORS/Zinc stock-outs at last-mile sub-centre level",
      "Integrate WASH programming tightly with diarrhoea control for sustainable prevention",
      "Use digital/mobile tools for real-time ASHA reporting and programme monitoring",
      "Scale up ORS preparation demonstration in community meetings, AWC sessions, schools"]
ty = 173
for w in wf:
    draw_text(c, "  * " + w, 20, ty, PAGE_W - 40, 14, 8.8, DARK_TEXT); ty -= 24

footer_bar(c)
c.showPage()

# ══════════════════════════════════════════════════════════════════
# SLIDE 16 — SUMMARY / THANK YOU
# ══════════════════════════════════════════════════════════════════
draw_rect(c, 0, 0, PAGE_W, PAGE_H, TEAL_DARK)
draw_rect(c, 0, 0, PAGE_W, 140, TEAL_DARKER)
draw_rect(c, 0, 140, PAGE_W, 5, ORANGE)

draw_text(c, "Key Takeaways", 20, PAGE_H - 50, PAGE_W - 40, 35, 20, WHITE_C, bold=True, align="center")
draw_rect(c, 20, PAGE_H - 58, PAGE_W - 40, 3, ORANGE)

takeaways = [
    "IDCF = National annual campaign (July-Aug) by MoHFW/NHM to achieve ZERO child deaths from diarrhoea",
    "ORS is the first-line treatment — start at first loose stool, continue breastfeeding throughout",
    "Zinc (14-day course) reduces diarrhoea duration by ~25% and prevents recurrence for 2-3 months",
    "ASHA/ANM do door-to-door ORS + Zinc distribution to all households with under-5 children",
    "ORS-Zinc Corners at every health facility for clinical assessment and treatment (Plans A, B, C)",
    "Target: 90% ORS & Zinc coverage by 2025 (IAPPD) — current NFHS gap must be urgently closed",
    "WASH promotion + continuation of feeding are essential alongside ORS/Zinc for full recovery",
]
ty = PAGE_H - 75
for tk in takeaways:
    draw_text(c, "  >>  " + tk, 25, ty, PAGE_W - 50, 20, 10.5, WHITE_C); ty -= 44

draw_text(c, "Thank You", 20, 165, PAGE_W - 40, 55, 32, YELLOW, bold=True, align="center")
draw_text(c, "Ministry of Health & Family Welfare, Government of India", 20, 130, PAGE_W - 40, 22, 12, TEAL_LIGHT, align="center")
draw_text(c, "National Health Mission  |  Intensified Diarrhoea Control Fortnight", 20, 112, PAGE_W - 40, 18, 10.5, TEAL_LIGHT, align="center")
draw_text(c, "Sources: NHM (nhm.gov.in)  |  Park's Textbook of PSM  |  WHO/UNICEF Guidelines  |  NFHS-4, NFHS-5  |  IAPPD",
          20, 18, PAGE_W - 40, 16, 9, TEAL_LIGHT, align="center")

c.showPage()
c.save()
print("PDF saved: /tmp/workspace/IDCF-PPT/IDCF_ORS_Zinc_Week.pdf")
print(f"Slides: 16")
Running Command

cd /tmp/workspace/IDCF-PPT && python create_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/IDCF-PPT/

Your PDF is ready:

IDCF ORS Zinc Week

PDF Document · PDF

The PDF is a 16-page landscape A4 document covering all the same content as the PPTX, rendered with the same teal/orange/green color scheme using ReportLab. All 16 slides are included:
  1. Title Slide
  2. Background & Burden
  3. What is IDCF?
  4. Goals & Objectives
  5. Three-Fold Strategy
  6. Key Activities (Pre/During/Post-Fortnight)
  7. ORS - Composition, Dosage, Evidence
  8. Zinc Supplementation
  9. Roles & Responsibilities
  10. ORS-Zinc Corners
  11. Policy Framework (IAPPD, NHM, IMNCI, WHO/UNICEF)
  12. Assessment of Dehydration (Clinical Table - Plans A/B/C)
  13. BCC Key Messages
  14. Monitoring & Evaluation
  15. Achievements & Way Forward
  16. Summary / Thank You
This is a shared conversation. Sign in to Orris to start your own chat.