Make presentation on AIDS FROM KPARK HARDISON

Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Running Command

mkdir -p /home/daytona/workspace/aids-presentation && ls /home/daytona/workspace/

Writing File

~/aids-presentation/create_aids_pptx.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "AIDS – Acquired Immuno-Deficiency Syndrome";
pres.author = "Park's Textbook of Preventive and Social Medicine";

// ─── Color palette ───────────────────────────────────────────────────────────
const C = {
  darkBg:    "0A1628",   // Deep navy – title / conclusion
  midBg:     "112240",   // Slightly lighter navy
  cardBg:    "152B4E",   // Card background
  accent:    "E63946",   // Red accent (HIV red ribbon)
  accent2:   "F4A261",   // Warm amber
  white:     "FFFFFF",
  offWhite:  "E8EEF4",
  gray:      "A8B8CC",
  green:     "2EC4B6",   // Teal green for positive info
  yellow:    "FFD166",   // Highlight
};

// ─── Helper functions ─────────────────────────────────────────────────────────
function addSlide(bg = C.darkBg) {
  const s = pres.addSlide();
  s.background = { color: bg };
  return s;
}

function slideTitle(slide, text, y = 0.25, color = C.accent) {
  slide.addText(text, {
    x: 0.4, y, w: 9.2, h: 0.55,
    fontSize: 22, bold: true, color,
    fontFace: "Calibri", align: "left",
  });
  // Underline bar
  slide.addShape(pres.ShapeType.rect, {
    x: 0.4, y: y + 0.55, w: 9.2, h: 0.04,
    fill: { color: C.accent }, line: { color: C.accent },
  });
}

function card(slide, x, y, w, h, bgColor = C.cardBg) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w, h,
    fill: { color: bgColor },
    line: { color: C.accent, width: 1.2 },
    rectRadius: 0.08,
  });
}

function bullet(text, sub = false) {
  return {
    text,
    options: {
      bullet: sub ? { indent: 20 } : true,
      fontSize: sub ? 13 : 14.5,
      color: sub ? C.gray : C.offWhite,
      bold: false,
      breakLine: true,
      paraSpaceAfter: sub ? 2 : 5,
    },
  };
}

function headerBullet(text) {
  return {
    text,
    options: {
      bullet: false,
      fontSize: 15,
      color: C.yellow,
      bold: true,
      breakLine: true,
      paraSpaceAfter: 3,
    },
  };
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 1 – Title
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.darkBg);

  // Left red ribbon bar
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 0.18, h: 5.625,
    fill: { color: C.accent }, line: { color: C.accent },
  });

  // Top subtle band
  s.addShape(pres.ShapeType.rect, {
    x: 0.18, y: 0, w: 9.82, h: 0.12,
    fill: { color: C.midBg }, line: { color: C.midBg },
  });

  s.addText("AIDS", {
    x: 0.55, y: 0.6, w: 8.9, h: 1.5,
    fontSize: 80, bold: true, color: C.accent,
    fontFace: "Calibri", align: "left",
    charSpacing: 12,
  });

  s.addText("Acquired Immuno-Deficiency Syndrome", {
    x: 0.55, y: 2.1, w: 8.9, h: 0.65,
    fontSize: 26, bold: false, color: C.offWhite,
    fontFace: "Calibri", align: "left",
  });

  s.addShape(pres.ShapeType.rect, {
    x: 0.55, y: 2.82, w: 5.5, h: 0.04,
    fill: { color: C.accent2 }, line: { color: C.accent2 },
  });

  s.addText("Based on Park's Textbook of Preventive and Social Medicine", {
    x: 0.55, y: 3.0, w: 8.9, h: 0.45,
    fontSize: 15, color: C.gray, fontFace: "Calibri", align: "left",
  });

  s.addText("K. Park · Preventive & Social Medicine", {
    x: 0.55, y: 3.55, w: 8.9, h: 0.4,
    fontSize: 13, color: C.accent2, fontFace: "Calibri",
    align: "left", italic: true,
  });

  // Bottom ribbon
  s.addShape(pres.ShapeType.rect, {
    x: 0.18, y: 5.28, w: 9.82, h: 0.345,
    fill: { color: C.midBg }, line: { color: C.midBg },
  });
  s.addText("Community Medicine · HIV/AIDS", {
    x: 0.5, y: 5.3, w: 9.2, h: 0.3,
    fontSize: 11, color: C.gray, align: "left",
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 2 – Overview / Definition
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.midBg);
  slideTitle(s, "Definition & Overview");

  card(s, 0.4, 1.0, 9.2, 3.9);

  s.addText([
    { text: "AIDS", options: { bold: true, color: C.accent, fontSize: 18, breakLine: false } },
    { text: " (Acquired Immuno-Deficiency Syndrome)", options: { bold: false, color: C.offWhite, fontSize: 15, breakLine: true } },
  ], { x: 0.7, y: 1.15, w: 8.6, h: 0.55, paraSpaceAfter: 6 });

  s.addText([
    bullet("A fatal illness caused by HIV (Human Immuno-deficiency Virus) — a retrovirus"),
    bullet("HIV breaks down the body's immune system, leaving victims vulnerable to:"),
    bullet("Life-threatening opportunistic infections", true),
    bullet("Neurological disorders", true),
    bullet("Unusual malignancies (e.g. Kaposi sarcoma)", true),
    bullet("AIDS is the LAST (end) stage of HIV infection"),
    bullet("Once infected, a person remains infected for life"),
    bullet("Called our 'modern pandemic' — affects both industrialized and developing countries"),
    bullet("Also known as 'slim disease' due to severe wasting, particularly in Africa"),
  ], { x: 0.7, y: 1.8, w: 8.6, h: 2.9, fontFace: "Calibri" });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 3 – Global Epidemiology
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.darkBg);
  slideTitle(s, "Global Problem Statement");

  // Three stat boxes
  const stats = [
    { val: "38 Million", label: "People living\nwith HIV (2019)", color: C.accent },
    { val: "1.7 Million", label: "New HIV infections\n(2019)", color: C.accent2 },
    { val: "690,000", label: "AIDS-related deaths\n(2019)", color: C.yellow },
  ];

  stats.forEach((st, i) => {
    const x = 0.4 + i * 3.15;
    card(s, x, 1.0, 2.9, 1.7, C.cardBg);
    s.addText(st.val, {
      x: x + 0.1, y: 1.1, w: 2.7, h: 0.75,
      fontSize: 28, bold: true, color: st.color, align: "center", fontFace: "Calibri",
    });
    s.addText(st.label, {
      x: x + 0.1, y: 1.85, w: 2.7, h: 0.7,
      fontSize: 12, color: C.gray, align: "center", fontFace: "Calibri",
    });
  });

  // Types of HIV epidemics
  s.addText("Types of HIV Epidemics (WHO/UNAIDS)", {
    x: 0.4, y: 2.85, w: 9.2, h: 0.4,
    fontSize: 15, bold: true, color: C.yellow, fontFace: "Calibri",
  });

  const epTypes = [
    { title: "Low-level", desc: "HIV exists but never spread substantially. Prevalence < 5% in any subpopulation.", color: C.green },
    { title: "Concentrated", desc: "Spread rapidly in a defined subpopulation but < 1% in urban pregnant women.", color: C.accent2 },
    { title: "Generalized", desc: "Firmly established in general population. Prevalence > 1% in pregnant women.", color: C.accent },
  ];

  epTypes.forEach((ep, i) => {
    const x = 0.4 + i * 3.15;
    card(s, x, 3.3, 2.9, 1.95, C.cardBg);
    s.addShape(pres.ShapeType.rect, {
      x: x, y: 3.3, w: 2.9, h: 0.32,
      fill: { color: ep.color }, line: { color: ep.color },
    });
    s.addText(ep.title, {
      x: x + 0.1, y: 3.32, w: 2.7, h: 0.28,
      fontSize: 12, bold: true, color: C.darkBg, align: "center",
    });
    s.addText(ep.desc, {
      x: x + 0.1, y: 3.66, w: 2.7, h: 1.5,
      fontSize: 11, color: C.offWhite, align: "left", fontFace: "Calibri",
    });
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 4 – India Epidemiology
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.midBg);
  slideTitle(s, "HIV in India – Epidemiology");

  card(s, 0.4, 1.0, 4.4, 4.3);
  s.addText("Key Statistics", {
    x: 0.6, y: 1.1, w: 4.0, h: 0.4,
    fontSize: 14, bold: true, color: C.yellow,
  });
  s.addText([
    bullet("2.1 million people living with HIV (2017)"),
    bullet("Adult HIV prevalence: 0.2%"),
    bullet("87,000 new infections in 2017"),
    bullet("69,000 AIDS-related deaths (2017)"),
    bullet("South & South-East India accounts for ~55% of national HIV burden"),
    bullet("States with highest prevalence: Andhra Pradesh, Telangana, Manipur, Maharashtra, Karnataka, Tamil Nadu, Nagaland"),
  ], { x: 0.6, y: 1.55, w: 4.0, h: 3.5, fontFace: "Calibri" });

  card(s, 5.1, 1.0, 4.5, 4.3);
  s.addText("High-Risk Groups (India)", {
    x: 5.3, y: 1.1, w: 4.1, h: 0.4,
    fontSize: 14, bold: true, color: C.accent,
  });
  s.addText([
    headerBullet("Female Sex Workers (FSW)"),
    bullet("HIV prevalence ~1.3% (2017)", true),
    bullet("77.4% reached with HIV prevention", true),
    headerBullet("People who inject drugs (IDU)"),
    bullet("6.3% living with HIV (2017)", true),
    bullet("High in NE states (Manipur 12.1%)", true),
    headerBullet("Transgender/Hijras"),
    bullet("3.1% HIV prevalence (2017)", true),
    headerBullet("Migrant Workers"),
    bullet("0.2% living with HIV; ~7.2 million migrant workers", true),
  ], { x: 5.3, y: 1.55, w: 4.1, h: 3.5, fontFace: "Calibri" });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 5 – Etiology / Agent Factors
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.darkBg);
  slideTitle(s, "Etiology – The Virus (HIV)");

  card(s, 0.4, 1.0, 9.2, 4.3);

  s.addText([
    headerBullet("Causative Agent"),
    bullet("Human Immuno-deficiency Virus (HIV) — a retrovirus"),
    bullet("Two types: HIV-1 (major global cause) and HIV-2"),
    bullet("Contains RNA and reverse transcriptase enzyme; uses host cell DNA to replicate"),
    bullet("Primarily targets CD4+ T-helper lymphocytes, also B-cells, macrophages, nerve cells"),
    bullet("HIV mutates rapidly — new strains continually developing"),
    headerBullet("Stability of Virus"),
    bullet("Easily killed by heat"),
    bullet("Inactivated by ether, acetone, ethanol (20%), beta-propiolactone (1:400 dilution)"),
    bullet("Relatively resistant to ionizing radiation and ultraviolet light"),
    headerBullet("Reservoir & Source of Infection"),
    bullet("Reservoir: Cases and carriers (life-long infection)"),
    bullet("Highest virus concentration: Blood, semen, CSF"),
    bullet("Lower concentration: Tears, saliva, breast milk, urine, cervical/vaginal secretions"),
    bullet("Also isolated in: Brain tissue, lymph nodes, bone marrow cells, skin"),
  ], { x: 0.65, y: 1.15, w: 8.7, h: 4.0, fontFace: "Calibri" });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 6 – Modes of Transmission
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.midBg);
  slideTitle(s, "Modes of Transmission");

  const routes = [
    {
      title: "Sexual Transmission",
      icon: "01",
      color: C.accent,
      items: ["Heterosexual contact (most common globally)", "Homosexual/bisexual contact (common in West)", "Multiple sexual partners increases risk", "Anal intercourse carries highest risk"],
    },
    {
      title: "Blood-borne",
      icon: "02",
      color: C.accent2,
      items: ["Blood transfusion & blood products", "Needle/syringe sharing (IV drug users)", "Haemophiliacs receiving clotting factors", "Organ transplants from infected donors"],
    },
    {
      title: "Mother to Child",
      icon: "03",
      color: C.yellow,
      items: ["In utero (transplacental)", "During delivery (intrapartum)", "Breast feeding (postnatal)", "Risk: 15–40% without intervention"],
    },
    {
      title: "Occupational",
      icon: "04",
      color: C.green,
      items: ["Needle-stick injuries in healthcare workers", "Risk ~0.3% per percutaneous exposure", "Much less common route overall"],
    },
  ];

  routes.forEach((r, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.4 + col * 4.7;
    const y = 1.1 + row * 2.3;
    card(s, x, y, 4.5, 2.15, C.cardBg);
    s.addShape(pres.ShapeType.rect, {
      x, y, w: 4.5, h: 0.38,
      fill: { color: r.color }, line: { color: r.color },
    });
    s.addText(r.title, {
      x: x + 0.1, y: y + 0.04, w: 4.3, h: 0.3,
      fontSize: 13, bold: true, color: C.darkBg, fontFace: "Calibri",
    });
    s.addText(r.items.map(t => "• " + t).join("\n"), {
      x: x + 0.1, y: y + 0.44, w: 4.3, h: 1.65,
      fontSize: 11.5, color: C.offWhite, fontFace: "Calibri",
      valign: "top",
    });
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 7 – Immunology
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.darkBg);
  slideTitle(s, "Immunology of HIV Infection");

  card(s, 0.4, 1.0, 5.5, 4.3);
  s.addText("Pathogenesis", {
    x: 0.6, y: 1.1, w: 5.1, h: 0.4,
    fontSize: 15, bold: true, color: C.yellow,
  });
  s.addText([
    bullet("HIV selectively infects CD4+ T-helper lymphocytes"),
    bullet("Also infects: B-cells, macrophages, nerve cells"),
    bullet("Virus reproduction destroys infected T-helper cells"),
    bullet("Results in low overall white blood cell count"),
    bullet("Normal helper:suppressor ratio = 2:1 (reversed in AIDS)"),
    bullet("Decreased T-helper to T-suppressor cell ratio is hallmark"),
    bullet("HIV can pass through blood-brain barrier — causes neurological abnormalities"),
    bullet("As CD4 count drops, risk of opportunistic infections rises sharply"),
  ], { x: 0.6, y: 1.55, w: 5.1, h: 3.6, fontFace: "Calibri" });

  card(s, 6.1, 1.0, 3.5, 4.3);
  s.addText("CD4 Count & Disease", {
    x: 6.25, y: 1.1, w: 3.2, h: 0.4,
    fontSize: 14, bold: true, color: C.accent,
  });

  const stages = [
    { range: "> 500", label: "Normal / Early infection", color: C.green },
    { range: "200–500", label: "Immune suppression begins", color: C.accent2 },
    { range: "~100", label: "Serious fungal & parasitic infections (PCP, Toxoplasma)", color: C.yellow },
    { range: "< 50", label: "Late OI: CMV retinitis", color: C.accent },
    { range: "< 200", label: "AIDS diagnosis (USA definition)", color: C.accent },
  ];

  stages.forEach((st, i) => {
    card(s, 6.15, 1.55 + i * 0.74, 3.35, 0.68, C.midBg);
    s.addText(st.range, {
      x: 6.2, y: 1.58 + i * 0.74, w: 0.9, h: 0.6,
      fontSize: 11, bold: true, color: st.color, align: "center",
    });
    s.addText(st.label, {
      x: 7.15, y: 1.58 + i * 0.74, w: 2.3, h: 0.6,
      fontSize: 10.5, color: C.offWhite, fontFace: "Calibri", valign: "middle",
    });
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 8 – Clinical Stages
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.midBg);
  slideTitle(s, "Clinical Stages of HIV Infection");

  const stages = [
    {
      num: "I",
      title: "Initial Infection",
      color: C.green,
      desc: "Mild illness (fever, sore throat, rash) in ~70%. Most have no symptoms for first 5 years. Window period: 2–12 weeks before antibodies appear — highly infectious, tests negative.",
    },
    {
      num: "II",
      title: "Asymptomatic Carrier State",
      color: C.accent2,
      desc: "HIV antibodies present but no overt disease signs. May have Persistent Generalized Lymphadenopathy (PGL). Duration unclear but can last years.",
    },
    {
      num: "III",
      title: "AIDS-Related Complex (ARC)",
      color: C.yellow,
      desc: "Immune damage without full AIDS criteria. Features: diarrhoea > 1 month, fatigue, >10% weight loss, fever, night sweats, oral thrush, lymphadenopathy. Decreased T-helper cells.",
    },
    {
      num: "IV",
      title: "AIDS (End Stage)",
      color: C.accent,
      desc: "End-stage of HIV. Opportunistic infections: TB, Kaposi sarcoma (early); Candida oesophagitis, Cryptococcal meningitis, PCP, Toxoplasma encephalitis (CD4 ~100); CMV retinitis (CD4 <50). 'Slim disease' wasting.",
    },
  ];

  stages.forEach((st, i) => {
    const x = 0.4 + i * 2.38;
    // Header band
    s.addShape(pres.ShapeType.rect, {
      x, y: 1.05, w: 2.25, h: 0.46,
      fill: { color: st.color }, line: { color: st.color },
    });
    s.addText(`Stage ${st.num}`, {
      x: x + 0.05, y: 1.08, w: 2.15, h: 0.38,
      fontSize: 13, bold: true, color: C.darkBg, align: "center",
    });

    card(s, x, 1.51, 2.25, 3.8, C.cardBg);
    s.addText(st.title, {
      x: x + 0.08, y: 1.58, w: 2.1, h: 0.52,
      fontSize: 12, bold: true, color: st.color, fontFace: "Calibri",
    });
    s.addText(st.desc, {
      x: x + 0.08, y: 2.15, w: 2.1, h: 3.0,
      fontSize: 11, color: C.offWhite, fontFace: "Calibri", valign: "top",
    });
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 9 – WHO Case Definition for AIDS
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.darkBg);
  slideTitle(s, "WHO Case Definition for AIDS Surveillance");

  s.addText("For adults/adolescents (>12 years): ≥2 MAJOR signs + ≥1 MINOR sign (not due to non-HIV cause)", {
    x: 0.4, y: 1.0, w: 9.2, h: 0.45,
    fontSize: 13, color: C.gray, fontFace: "Calibri", italic: true,
  });

  // Major signs box
  card(s, 0.4, 1.55, 4.4, 2.4);
  s.addShape(pres.ShapeType.rect, {
    x: 0.4, y: 1.55, w: 4.4, h: 0.38,
    fill: { color: C.accent }, line: { color: C.accent },
  });
  s.addText("MAJOR SIGNS", {
    x: 0.5, y: 1.57, w: 4.2, h: 0.32,
    fontSize: 13, bold: true, color: C.white, align: "center",
  });
  s.addText([
    bullet("Weight loss ≥ 10% of body weight"),
    bullet("Chronic diarrhoea for > 1 month"),
    bullet("Prolonged fever > 1 month (intermittent or constant)"),
  ], { x: 0.55, y: 2.0, w: 4.1, h: 1.8, fontFace: "Calibri" });

  // Minor signs box
  card(s, 5.2, 1.55, 4.4, 2.4);
  s.addShape(pres.ShapeType.rect, {
    x: 5.2, y: 1.55, w: 4.4, h: 0.38,
    fill: { color: C.accent2 }, line: { color: C.accent2 },
  });
  s.addText("MINOR SIGNS", {
    x: 5.3, y: 1.57, w: 4.2, h: 0.32,
    fontSize: 13, bold: true, color: C.darkBg, align: "center",
  });
  s.addText([
    bullet("Persistent cough > 1 month"),
    bullet("Generalized pruritic dermatitis"),
    bullet("History of herpes zoster"),
    bullet("Oropharyngeal candidiasis"),
    bullet("Chronic progressive/disseminated herpes simplex"),
    bullet("Generalized lymphadenopathy"),
  ], { x: 5.35, y: 2.0, w: 4.1, h: 1.8, fontFace: "Calibri" });

  // Special note
  card(s, 0.4, 4.1, 9.2, 1.1, C.cardBg);
  s.addText([
    { text: "Special: ", options: { bold: true, color: C.yellow, fontSize: 13 } },
    { text: "Generalized Kaposi sarcoma OR Cryptococcal meningitis alone is sufficient for diagnosis.", options: { color: C.offWhite, fontSize: 13 } },
  ], { x: 0.6, y: 4.2, w: 8.8, h: 0.5 });
  s.addText("Bangui Definition (1985, revised 1994). Specificity good; sensitivity ~50% due to missed HIV-related TB cases.", {
    x: 0.6, y: 4.68, w: 8.8, h: 0.42,
    fontSize: 11, color: C.gray, italic: true,
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 10 – Diagnosis
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.midBg);
  slideTitle(s, "Diagnosis of HIV/AIDS");

  const tests = [
    {
      name: "ELISA", type: "Screening", color: C.green,
      desc: "HIV antibody detection. Sensitivity >99.9%. First-line test. Repeatedly reactive results must be confirmed.",
    },
    {
      name: "Western Blot", type: "Confirmatory", color: C.accent2,
      desc: "Detects antibody to viral core protein (p24) and envelope glycoprotein (gp41). Specificity (with ELISA) >99.99%.",
    },
    {
      name: "Rapid Tests", type: "Point-of-Care", color: C.yellow,
      desc: "Simple, cheap, reliable kits. Results read on spot without lab backup. HIV self-testing kits also available.",
    },
    {
      name: "Virus Isolation", type: "Research", color: C.accent,
      desc: "HIV recovered from cultured lymphocytes. Expensive; requires extensive lab support. Used mainly in research.",
    },
  ];

  tests.forEach((t, i) => {
    const x = 0.4 + i * 2.38;
    card(s, x, 1.05, 2.25, 3.2, C.cardBg);
    s.addShape(pres.ShapeType.rect, {
      x, y: 1.05, w: 2.25, h: 0.35,
      fill: { color: t.color }, line: { color: t.color },
    });
    s.addText(t.type, {
      x: x + 0.05, y: 1.07, w: 2.15, h: 0.28,
      fontSize: 10, bold: true, color: C.darkBg, align: "center",
    });
    s.addText(t.name, {
      x: x + 0.08, y: 1.46, w: 2.1, h: 0.5,
      fontSize: 15, bold: true, color: t.color, fontFace: "Calibri",
    });
    s.addText(t.desc, {
      x: x + 0.08, y: 2.0, w: 2.1, h: 2.1,
      fontSize: 11.5, color: C.offWhite, fontFace: "Calibri",
    });
  });

  // CD4 count
  card(s, 0.4, 4.4, 9.2, 1.0);
  s.addText([
    { text: "CD4 Count: ", options: { bold: true, color: C.yellow, fontSize: 13 } },
    { text: "Most widely used prognostic marker. Normal >950 cells/μL. ", options: { color: C.offWhite, fontSize: 13 } },
    { text: "AIDS defined when CD4 <200 cells/μL (USA definition). ", options: { color: C.accent, fontSize: 13, bold: true } },
    { text: "CD4 <20% of lymphocytes = high risk of progression to AIDS.", options: { color: C.offWhite, fontSize: 13 } },
  ], { x: 0.6, y: 4.5, w: 8.8, h: 0.75 });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 11 – Treatment / ART
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.darkBg);
  slideTitle(s, "Treatment – Antiretroviral Therapy (ART)");

  card(s, 0.4, 1.0, 5.5, 4.3);
  s.addText("ART Principles", {
    x: 0.6, y: 1.1, w: 5.1, h: 0.4,
    fontSize: 15, bold: true, color: C.yellow,
  });
  s.addText([
    bullet("No cure currently exists for HIV/AIDS"),
    bullet("ART suppresses viral replication — does not eliminate the virus"),
    bullet("Goal: Undetectable viral load = untransmittable (U=U)"),
    bullet("WHO recommends: All HIV-positive individuals should receive ART"),
    bullet("Early treatment prevents progression to AIDS"),
    bullet("Reduces HIV transmission to others"),
    headerBullet("Drug Classes Used in ART"),
    bullet("NRTIs: Zidovudine (AZT), Lamivudine, Tenofovir", true),
    bullet("NNRTIs: Efavirenz, Nevirapine", true),
    bullet("Protease Inhibitors: Lopinavir, Ritonavir", true),
    bullet("Integrase Inhibitors: Dolutegravir (preferred)", true),
    bullet("Standard first-line regimen: TDF + 3TC + DTG (WHO 2021)", true),
  ], { x: 0.6, y: 1.55, w: 5.1, h: 3.6, fontFace: "Calibri" });

  card(s, 6.1, 1.0, 3.5, 4.3);
  s.addText("India (NACO) ART", {
    x: 6.25, y: 1.1, w: 3.2, h: 0.4,
    fontSize: 14, bold: true, color: C.accent,
  });
  s.addText([
    bullet("Free ART available at 700+ ART centres in India"),
    bullet("NACP provides free CD4 testing"),
    bullet("Cotrimoxazole preventive therapy given to all HIV+ patients"),
    bullet("PMTCT: Prevention of Mother-to-Child Transmission"),
    bullet("Nevirapine given to mother and newborn at delivery"),
    bullet("Routine HIV testing at ANC clinics"),
    bullet("Target: 95-95-95 by 2025 (UNAIDS)"),
    bullet("95% of HIV+ people know status", true),
    bullet("95% on treatment", true),
    bullet("95% virally suppressed", true),
  ], { x: 6.25, y: 1.55, w: 3.2, h: 3.6, fontFace: "Calibri" });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 12 – Prevention & Control
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.midBg);
  slideTitle(s, "Prevention & Control of AIDS");

  const sections = [
    {
      title: "Primary Prevention",
      color: C.green,
      items: [
        "Health education & public awareness",
        "Promote safe sex (ABC: Abstinence, Be faithful, Condom use)",
        "Condom promotion – male & female condoms",
        "Needle exchange programmes for IDUs",
        "Safe blood supply – mandatory HIV screening of blood",
        "Safe injection practices; avoid sharing needles",
        "Pre-exposure prophylaxis (PrEP) for high-risk individuals",
      ],
    },
    {
      title: "Targeted Interventions",
      color: C.accent2,
      items: [
        "High-risk group programmes: FSW, MSM, IDU, hijras",
        "STI treatment reduces HIV acquisition risk",
        "Male circumcision reduces risk in men by ~60%",
        "Prevention for PLHIV (positive prevention)",
        "Link workers scheme for bridge populations",
        "Migrant worker outreach programmes",
      ],
    },
    {
      title: "Mother-to-Child (PMTCT)",
      color: C.yellow,
      items: [
        "Routine HIV testing at antenatal clinics (ANC)",
        "ART given to all HIV+ pregnant women",
        "Nevirapine to mother (at delivery) & infant",
        "Safe delivery practices",
        "Counsel on infant feeding (avoid breastfeeding if safe alternative exists)",
        "Target: Zero new child infections",
      ],
    },
    {
      title: "Health System Measures",
      color: C.accent,
      items: [
        "Universal precautions in healthcare settings",
        "Post-exposure prophylaxis (PEP) for health workers",
        "Voluntary Counselling & Testing (ICTC)",
        "HIV surveillance – sentinel surveillance system",
        "Link ART (LART) centres for decentralized care",
        "National AIDS Control Programme (NACP)",
      ],
    },
  ];

  sections.forEach((sec, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.4 + col * 4.7;
    const y = 1.1 + row * 2.3;
    card(s, x, y, 4.5, 2.2, C.cardBg);
    s.addShape(pres.ShapeType.rect, {
      x, y, w: 4.5, h: 0.36,
      fill: { color: sec.color }, line: { color: sec.color },
    });
    s.addText(sec.title, {
      x: x + 0.1, y: y + 0.03, w: 4.3, h: 0.3,
      fontSize: 12, bold: true, color: C.darkBg, align: "center",
    });
    s.addText(sec.items.map(t => "• " + t).join("\n"), {
      x: x + 0.1, y: y + 0.42, w: 4.3, h: 1.7,
      fontSize: 10.5, color: C.offWhite, fontFace: "Calibri", valign: "top",
    });
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 13 – National AIDS Control Programme (India)
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.darkBg);
  slideTitle(s, "National AIDS Control Programme (NACP) – India");

  card(s, 0.4, 1.0, 9.2, 4.35);

  s.addText([
    headerBullet("NACP I (1992–1999)"),
    bullet("Focused on surveillance, blood safety, IEC, STI treatment", true),
    headerBullet("NACP II (1999–2006)"),
    bullet("Scale-up of prevention services; targeted interventions for high-risk groups; free ART started (2004)", true),
    headerBullet("NACP III (2007–2012)"),
    bullet("Halt and reverse the epidemic; link with RNTCP for HIV-TB; 1,000+ ART centres; ICTC expansion", true),
    headerBullet("NACP IV (2012–2017)"),
    bullet("Accelerating reversal; Integration with National Health Mission (NHM); Intensified IEC", true),
    headerBullet("NACP V / National Strategic Plan 2017–2024"),
    bullet("Target: End AIDS by 2030 (SDG 3.3); 95-95-95 strategy", true),
    bullet("Focus on key populations, adolescents, migrant workers", true),
    bullet("TasP: Treatment as Prevention; PrEP rollout for high-risk groups", true),
    headerBullet("Key Components"),
    bullet("NACO (National AIDS Control Organisation) — nodal agency; SACS in each state", true),
    bullet("Sentinel Surveillance System for monitoring HIV trends", true),
    bullet("Integrated Counselling & Testing Centres (ICTC) — >25,000 sites", true),
    bullet("Link ART Centres, Community Care Centres (CCC)", true),
  ], { x: 0.65, y: 1.15, w: 8.7, h: 4.05, fontFace: "Calibri" });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 14 – Conclusion
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = addSlide(C.darkBg);

  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 0.18, h: 5.625,
    fill: { color: C.accent }, line: { color: C.accent },
  });

  s.addText("Key Takeaways", {
    x: 0.55, y: 0.3, w: 9.0, h: 0.55,
    fontSize: 28, bold: true, color: C.accent2, fontFace: "Calibri",
  });

  const points = [
    { icon: "1", text: "HIV/AIDS is a global pandemic — 38 million people living with HIV (2019); India has ~2.1 million PLHIV." },
    { icon: "2", text: "HIV progresses through 4 stages: Initial infection → Asymptomatic carrier → ARC → AIDS (end stage)." },
    { icon: "3", text: "Diagnosis: ELISA (screening) + Western Blot (confirmatory); CD4 <200 = AIDS by US definition." },
    { icon: "4", text: "ART can suppress viral load to undetectable; no cure yet but treatment is highly effective." },
    { icon: "5", text: "Prevention: Safe sex (ABC), condoms, needle exchange, blood safety, PMTCT, PrEP." },
    { icon: "6", text: "India's NACP aims to end AIDS by 2030 using the 95-95-95 UNAIDS strategy." },
  ];

  points.forEach((p, i) => {
    const y = 1.05 + i * 0.73;
    s.addShape(pres.ShapeType.ellipse, {
      x: 0.45, y: y + 0.06, w: 0.4, h: 0.4,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addText(p.icon, {
      x: 0.45, y: y + 0.06, w: 0.4, h: 0.4,
      fontSize: 13, bold: true, color: C.white, align: "center", valign: "middle",
    });
    s.addText(p.text, {
      x: 1.0, y: y, w: 8.5, h: 0.58,
      fontSize: 13, color: C.offWhite, fontFace: "Calibri", valign: "middle",
    });
  });

  s.addShape(pres.ShapeType.rect, {
    x: 0.18, y: 5.28, w: 9.82, h: 0.345,
    fill: { color: C.midBg }, line: { color: C.midBg },
  });
  s.addText("Source: Park's Textbook of Preventive and Social Medicine | NACO | UNAIDS 2019", {
    x: 0.5, y: 5.3, w: 9.2, h: 0.3,
    fontSize: 10, color: C.gray, align: "left",
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// Save
// ─────────────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/aids-presentation/AIDS_KPark.pptx" })
  .then(() => console.log("Saved: AIDS_KPark.pptx"))
  .catch(err => { console.error(err); process.exit(1); });
Running Command

cd /home/daytona/workspace/aids-presentation && node create_aids_pptx.js

Running Command

ls -lh /home/daytona/workspace/aids-presentation/AIDS_KPark.pptx

Your presentation is ready! Download it here:

AIDS KPark

Presentation · PPTX


Here is what's included across 14 slides, directly sourced from Park's Textbook of Preventive and Social Medicine:
SlideTopic
1Title slide (bold red-ribbon design)
2Definition & Overview of AIDS
3Global Problem Statement (WHO/UNAIDS epidemic types)
4HIV in India - Epidemiology & High-risk groups
5Etiology - The HIV virus, stability, reservoir & sources
6Modes of Transmission (sexual, blood-borne, MTCT, occupational)
7Immunology - CD4+ T-cell pathogenesis + CD4 count ladder
8Clinical Stages I-IV (Initial infection → ARC → AIDS)
9WHO Case Definition for AIDS (Bangui definition, major/minor signs)
10Diagnosis - ELISA, Western Blot, rapid tests, CD4 count
11Treatment - ART principles, drug classes, NACO ART in India
12Prevention & Control (4-panel: primary, targeted, PMTCT, health system)
13National AIDS Control Programme (NACP I-V, key components)
14Key Takeaways / Conclusion
Design: Deep navy background with red-accent theme (HIV red ribbon), color-coded information cards, and a professional layout throughout.

This is not a readable format

Running Command

python /home/daytona/skills/pptx/scripts/thumbnail.py /home/daytona/workspace/aids-presentation/AIDS_KPark.pptx 2>&1 | head -20

Reading File
Reading File
Running Command

find /home/daytona/workspace/aids-presentation -name "*.jpg" -o -name "*.png" 2>/dev/null; ls /home/daytona/workspace/aids-presentation/

Running Command

cd /home/daytona/workspace/aids-presentation && python /home/daytona/skills/pptx/scripts/thumbnail.py AIDS_KPark.pptx && ls -la *.jpg 2>/dev/null || ls -la

Reading File
Writing File

~/aids-presentation/create_aids_v2.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "AIDS – Acquired Immuno-Deficiency Syndrome";

// ─── Palette ──────────────────────────────────────────────────────────────────
const C = {
  darkBg:   "0D1B2A",   // Deep navy
  midBg:    "1B2B3D",   // Mid navy
  accent:   "E63946",   // Red
  amber:    "F4A261",   // Amber
  yellow:   "FFD166",   // Yellow
  teal:     "2EC4B6",   // Teal
  white:    "FFFFFF",
  offWhite: "E8EEF4",
  gray:     "8FA8BE",
};

// ─── Helpers ──────────────────────────────────────────────────────────────────
function slide(bg) {
  const s = pres.addSlide();
  s.background = { color: bg || C.darkBg };
  return s;
}

// Left accent bar (consistent visual element)
function leftBar(s, color) {
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 0.15, h: 5.625,
    fill: { color: color || C.accent }, line: { color: color || C.accent },
  });
}

// Section heading
function heading(s, text, color) {
  s.addText(text, {
    x: 0.35, y: 0.22, w: 9.4, h: 0.65,
    fontSize: 28, bold: true, color: color || C.yellow,
    fontFace: "Calibri", align: "left",
  });
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 0.88, w: 9.3, h: 0.05,
    fill: { color: C.accent }, line: { color: C.accent },
  });
}

// Simple bullet list – returns array for addText
function bullets(items) {
  return items.map((item, idx) => ({
    text: item.text,
    options: {
      bullet: item.sub ? { indent: 25 } : { code: "2022" },
      fontSize: item.sub ? 17 : 19,
      color: item.sub ? C.gray : C.offWhite,
      bold: item.bold || false,
      breakLine: true,
      paraSpaceAfter: item.sub ? 3 : 7,
      fontFace: "Calibri",
    },
  }));
}

// Full-width colored header band above a content area
function bandHeader(s, text, color, y) {
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: y, w: 9.3, h: 0.5,
    fill: { color: color }, line: { color: color },
  });
  s.addText(text, {
    x: 0.45, y: y + 0.04, w: 9.1, h: 0.42,
    fontSize: 17, bold: true, color: C.darkBg, fontFace: "Calibri",
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 1 – Title
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.darkBg);
  leftBar(s, C.accent);

  s.addText("AIDS", {
    x: 0.4, y: 0.7, w: 9.2, h: 1.9,
    fontSize: 110, bold: true, color: C.accent,
    fontFace: "Calibri", align: "left", charSpacing: 10,
  });

  s.addText("Acquired Immuno-Deficiency Syndrome", {
    x: 0.4, y: 2.5, w: 9.2, h: 0.7,
    fontSize: 28, color: C.offWhite, fontFace: "Calibri", align: "left",
  });

  s.addShape(pres.ShapeType.rect, {
    x: 0.4, y: 3.3, w: 6.0, h: 0.05,
    fill: { color: C.amber }, line: { color: C.amber },
  });

  s.addText("Based on Park's Textbook of Preventive & Social Medicine", {
    x: 0.4, y: 3.5, w: 9.0, h: 0.5,
    fontSize: 18, color: C.gray, fontFace: "Calibri", italic: true,
  });

  s.addText("Community Medicine  |  HIV/AIDS", {
    x: 0.4, y: 5.1, w: 9.0, h: 0.4,
    fontSize: 14, color: C.gray, fontFace: "Calibri",
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 2 – What is AIDS?
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.midBg);
  leftBar(s, C.accent);
  heading(s, "What is AIDS?");

  s.addText(bullets([
    { text: "AIDS = Acquired Immuno-Deficiency Syndrome", bold: true },
    { text: "Caused by HIV — Human Immuno-deficiency Virus (a retrovirus)" },
    { text: "HIV destroys the immune system, leaving victims vulnerable to:", bold: true },
    { text: "Life-threatening opportunistic infections", sub: true },
    { text: "Neurological disorders", sub: true },
    { text: "Unusual malignancies (e.g. Kaposi sarcoma)", sub: true },
    { text: "AIDS is the LAST (end) stage of HIV infection", bold: true },
    { text: "Once infected → infected for life (no cure yet)" },
    { text: "Also called 'slim disease' due to severe weight loss in Africa" },
    { text: "Called our modern pandemic — affects all countries worldwide" },
  ]), { x: 0.35, y: 1.05, w: 9.3, h: 4.3 });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 3 – Global Burden
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.darkBg);
  leftBar(s, C.amber);
  heading(s, "Global Burden (2019)", C.amber);

  // Three big stat boxes side by side
  const stats = [
    { val: "38 Million", label: "People living with HIV", color: C.accent },
    { val: "1.7 Million", label: "New HIV infections", color: C.amber },
    { val: "690,000", label: "AIDS-related deaths", color: C.yellow },
  ];

  stats.forEach((st, i) => {
    const x = 0.35 + i * 3.2;
    s.addShape(pres.ShapeType.roundRect, {
      x, y: 1.1, w: 3.0, h: 2.1,
      fill: { color: C.midBg }, line: { color: st.color, width: 2.5 },
      rectRadius: 0.1,
    });
    s.addText(st.val, {
      x: x + 0.1, y: 1.25, w: 2.8, h: 0.9,
      fontSize: 32, bold: true, color: st.color,
      align: "center", fontFace: "Calibri",
    });
    s.addText(st.label, {
      x: x + 0.1, y: 2.15, w: 2.8, h: 0.75,
      fontSize: 17, color: C.offWhite, align: "center", fontFace: "Calibri",
    });
  });

  // Types of HIV epidemics
  s.addText("WHO/UNAIDS Epidemic Types", {
    x: 0.35, y: 3.4, w: 9.3, h: 0.45,
    fontSize: 20, bold: true, color: C.yellow, fontFace: "Calibri",
  });

  const ep = [
    { name: "Low-level", desc: "HIV prevalence < 5% in any subpopulation", color: C.teal },
    { name: "Concentrated", desc: "Prevalence >5% in subpopulation; <1% in urban pregnant women", color: C.amber },
    { name: "Generalized", desc: "Prevalence >1% in pregnant women — general population", color: C.accent },
  ];

  ep.forEach((e, i) => {
    const x = 0.35 + i * 3.2;
    s.addShape(pres.ShapeType.rect, {
      x, y: 3.9, w: 3.0, h: 0.35,
      fill: { color: e.color }, line: { color: e.color },
    });
    s.addText(e.name, {
      x: x + 0.05, y: 3.92, w: 2.9, h: 0.28,
      fontSize: 14, bold: true, color: C.darkBg, align: "center",
    });
    s.addText(e.desc, {
      x: x + 0.05, y: 4.3, w: 2.9, h: 0.95,
      fontSize: 14, color: C.offWhite, fontFace: "Calibri", align: "left",
    });
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 4 – HIV in India
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.midBg);
  leftBar(s, C.teal);
  heading(s, "HIV in India – Key Facts", C.teal);

  s.addText(bullets([
    { text: "2.1 million people living with HIV (2017)", bold: true },
    { text: "Adult HIV prevalence: 0.2%" },
    { text: "87,000 new infections in 2017" },
    { text: "69,000 AIDS-related deaths in 2017" },
    { text: "South & South-East India: ~55% of national HIV burden" },
    { text: "High-prevalence states: Andhra Pradesh, Telangana, Manipur, Maharashtra, Karnataka, Tamil Nadu, Nagaland", bold: true },
  ]), { x: 0.35, y: 1.05, w: 9.3, h: 3.1 });

  s.addText("High-Risk Groups", {
    x: 0.35, y: 4.1, w: 9.3, h: 0.4,
    fontSize: 19, bold: true, color: C.amber, fontFace: "Calibri",
  });

  s.addText(
    "Female Sex Workers (1.3%)  •  People who inject drugs (6.3%)  •  Transgender (3.1%)  •  MSM  •  Migrant workers",
    {
      x: 0.35, y: 4.55, w: 9.3, h: 0.75,
      fontSize: 17, color: C.offWhite, fontFace: "Calibri",
    }
  );
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 5 – The Virus
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.darkBg);
  leftBar(s, C.accent);
  heading(s, "The Virus – HIV");

  s.addText(bullets([
    { text: "HIV (Human Immuno-deficiency Virus) — a retrovirus", bold: true },
    { text: "Two types: HIV-1 (global pandemic) and HIV-2" },
    { text: "Contains RNA + reverse transcriptase; uses host cell DNA to replicate" },
    { text: "Primarily infects CD4+ T-helper lymphocytes", bold: true },
    { text: "Also infects: B-cells, macrophages, nerve cells", sub: true },
    { text: "Mutates rapidly — new strains continually develop" },
    { text: "Virus stability:", bold: true },
    { text: "Killed by heat; inactivated by ether, acetone, 20% ethanol", sub: true },
    { text: "Relatively resistant to UV light and ionizing radiation", sub: true },
    { text: "Found in: blood, semen, CSF (high); saliva, breast milk, urine, tears (low)", bold: true },
  ]), { x: 0.35, y: 1.05, w: 9.3, h: 4.3 });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 6 – Modes of Transmission
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.midBg);
  leftBar(s, C.amber);
  heading(s, "Modes of Transmission", C.amber);

  // 4 boxes in 2x2 layout - larger fonts
  const routes = [
    {
      title: "1. Sexual",
      color: C.accent,
      items: ["Heterosexual (commonest globally)", "Homosexual / bisexual", "Multiple partners, anal intercourse = higher risk"],
    },
    {
      title: "2. Blood-borne",
      color: C.amber,
      items: ["Blood transfusion & blood products", "Needle / syringe sharing (IV drug users)", "Organ transplants from infected donors"],
    },
    {
      title: "3. Mother to Child (MTCT)",
      color: C.yellow,
      items: ["In utero (transplacental)", "During delivery (intrapartum)", "Breastfeeding — risk 15–40% without ART"],
    },
    {
      title: "4. Occupational",
      color: C.teal,
      items: ["Needle-stick injuries", "Risk ~0.3% per percutaneous exposure", "Healthcare workers"],
    },
  ];

  routes.forEach((r, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.35 + col * 4.75;
    const y = 1.1 + row * 2.2;

    s.addShape(pres.ShapeType.rect, {
      x, y, w: 4.6, h: 0.45,
      fill: { color: r.color }, line: { color: r.color },
    });
    s.addText(r.title, {
      x: x + 0.1, y: y + 0.05, w: 4.4, h: 0.36,
      fontSize: 16, bold: true, color: C.darkBg, fontFace: "Calibri",
    });

    s.addShape(pres.ShapeType.roundRect, {
      x, y: y + 0.45, w: 4.6, h: 1.65,
      fill: { color: C.darkBg }, line: { color: r.color, width: 1.2 },
      rectRadius: 0.05,
    });
    s.addText(r.items.map(t => "• " + t).join("\n"), {
      x: x + 0.12, y: y + 0.52, w: 4.4, h: 1.5,
      fontSize: 15, color: C.offWhite, fontFace: "Calibri", valign: "top",
    });
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 7 – Immunology
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.darkBg);
  leftBar(s, C.teal);
  heading(s, "How HIV Damages the Immune System", C.teal);

  s.addText(bullets([
    { text: "HIV attacks CD4+ T-helper lymphocytes (key immune cells)", bold: true },
    { text: "When virus replicates, it destroys infected T-helper cells" },
    { text: "Result: Low overall white blood cell count" },
    { text: "Normal helper:suppressor ratio = 2:1 → reversed in AIDS", bold: true },
    { text: "HIV crosses the blood-brain barrier → neurological damage" },
    { text: "As CD4 count falls, risk of opportunistic infections rises:" },
    { text: "CD4 < 500 → immune suppression begins", sub: true },
    { text: "CD4 ~100 → fungal/parasitic infections (PCP, Toxoplasma)", sub: true },
    { text: "CD4 < 50 → CMV retinitis, late-stage infections", sub: true },
    { text: "CD4 < 200 = AIDS (US diagnostic definition)", bold: true, sub: false },
  ]), { x: 0.35, y: 1.05, w: 9.3, h: 4.3 });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 8 – Clinical Stages (one stage per column, larger text)
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.midBg);
  leftBar(s, C.accent);
  heading(s, "Clinical Stages of HIV Infection");

  const stages = [
    {
      num: "Stage I",
      title: "Initial Infection",
      color: C.teal,
      desc: "Mild illness: fever, sore throat, rash (~70%). No symptoms for ~5 years. Window period 2–12 weeks — infectious but tests negative.",
    },
    {
      num: "Stage II",
      title: "Asymptomatic Carrier",
      color: C.amber,
      desc: "Antibodies present, no overt disease. May have Persistent Generalized Lymphadenopathy (PGL). Can last for years.",
    },
    {
      num: "Stage III",
      title: "AIDS-Related Complex (ARC)",
      color: C.yellow,
      desc: "Diarrhoea >1 month, fatigue, >10% weight loss, fever, night sweats, oral thrush, lymphadenopathy. Decreased T-helper cells.",
    },
    {
      num: "Stage IV",
      title: "AIDS – End Stage",
      color: C.accent,
      desc: "TB, Kaposi sarcoma (early). PCP, Cryptococcal meningitis, Toxoplasma encephalitis (CD4~100). CMV retinitis (CD4<50). Wasting.",
    },
  ];

  stages.forEach((st, i) => {
    const x = 0.35 + i * 2.4;
    // Number badge
    s.addShape(pres.ShapeType.rect, {
      x, y: 1.05, w: 2.25, h: 0.45,
      fill: { color: st.color }, line: { color: st.color },
    });
    s.addText(st.num, {
      x: x + 0.05, y: 1.07, w: 2.15, h: 0.38,
      fontSize: 16, bold: true, color: C.darkBg, align: "center", fontFace: "Calibri",
    });
    s.addShape(pres.ShapeType.roundRect, {
      x, y: 1.5, w: 2.25, h: 3.85,
      fill: { color: C.darkBg }, line: { color: st.color, width: 1.5 },
      rectRadius: 0.07,
    });
    s.addText(st.title, {
      x: x + 0.1, y: 1.6, w: 2.1, h: 0.6,
      fontSize: 15, bold: true, color: st.color, fontFace: "Calibri",
    });
    s.addText(st.desc, {
      x: x + 0.1, y: 2.25, w: 2.1, h: 2.9,
      fontSize: 14, color: C.offWhite, fontFace: "Calibri", valign: "top",
    });
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 9 – WHO Case Definition (Bangui)
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.darkBg);
  leftBar(s, C.yellow);
  heading(s, "WHO Case Definition for AIDS", C.yellow);

  s.addText("Adults/adolescents (>12 yrs):  ≥2 Major signs  +  ≥1 Minor sign  (not due to a non-HIV cause)", {
    x: 0.35, y: 1.0, w: 9.3, h: 0.5,
    fontSize: 17, color: C.gray, fontFace: "Calibri", italic: true,
  });

  // MAJOR SIGNS
  bandHeader(s, "MAJOR SIGNS", C.accent, 1.6);
  s.addText(
    "• Weight loss ≥ 10% of body weight\n• Chronic diarrhoea for > 1 month\n• Prolonged fever > 1 month (intermittent or constant)",
    {
      x: 0.45, y: 2.15, w: 9.1, h: 1.1,
      fontSize: 18, color: C.offWhite, fontFace: "Calibri",
    }
  );

  // MINOR SIGNS
  bandHeader(s, "MINOR SIGNS", C.amber, 3.35);
  s.addText(
    "• Persistent cough > 1 month    • Generalized pruritic dermatitis    • History of herpes zoster\n• Oropharyngeal candidiasis    • Chronic herpes simplex    • Generalized lymphadenopathy",
    {
      x: 0.45, y: 3.9, w: 9.1, h: 1.0,
      fontSize: 17, color: C.offWhite, fontFace: "Calibri",
    }
  );

  s.addText("Special: Generalized Kaposi sarcoma OR Cryptococcal meningitis alone = sufficient for AIDS diagnosis", {
    x: 0.35, y: 5.05, w: 9.3, h: 0.4,
    fontSize: 15, bold: true, color: C.yellow, fontFace: "Calibri",
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 10 – Diagnosis
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.midBg);
  leftBar(s, C.teal);
  heading(s, "Diagnosis", C.teal);

  // Two rows of 2 boxes
  const tests = [
    {
      name: "ELISA",
      type: "Screening Test",
      color: C.teal,
      desc: "Detects HIV antibodies.\nSensitivity > 99.9%.\nFirst-line test — reactive results must be confirmed.",
    },
    {
      name: "Western Blot",
      type: "Confirmatory Test",
      color: C.amber,
      desc: "Detects antibody to p24 (core) and gp41 (envelope).\nSpecificity (with ELISA) > 99.99%.",
    },
    {
      name: "Rapid Tests",
      type: "Point-of-Care",
      color: C.yellow,
      desc: "Simple, cheap, bedside kits.\nResults read immediately — no lab needed.\nHIV self-testing kits now available.",
    },
    {
      name: "CD4 Count",
      type: "Monitoring / Staging",
      color: C.accent,
      desc: "Normal: > 950 cells/μL.\nCD4 < 200 = AIDS (USA definition).\nCD4 < 20% of lymphocytes = high progression risk.",
    },
  ];

  tests.forEach((t, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.35 + col * 4.75;
    const y = 1.1 + row * 2.2;

    s.addShape(pres.ShapeType.rect, {
      x, y, w: 4.6, h: 0.42,
      fill: { color: t.color }, line: { color: t.color },
    });
    s.addText(t.type, {
      x: x + 0.1, y: y + 0.04, w: 4.4, h: 0.34,
      fontSize: 14, bold: true, color: C.darkBg, fontFace: "Calibri",
    });

    s.addShape(pres.ShapeType.roundRect, {
      x, y: y + 0.42, w: 4.6, h: 1.68,
      fill: { color: C.darkBg }, line: { color: t.color, width: 1.2 },
      rectRadius: 0.05,
    });
    s.addText(t.name, {
      x: x + 0.12, y: y + 0.5, w: 4.4, h: 0.5,
      fontSize: 20, bold: true, color: t.color, fontFace: "Calibri",
    });
    s.addText(t.desc, {
      x: x + 0.12, y: y + 1.05, w: 4.4, h: 1.0,
      fontSize: 15, color: C.offWhite, fontFace: "Calibri",
    });
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 11 – Treatment / ART
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.darkBg);
  leftBar(s, C.accent);
  heading(s, "Treatment – Antiretroviral Therapy (ART)");

  s.addText(bullets([
    { text: "No cure exists — ART suppresses viral replication but does not eliminate HIV", bold: true },
    { text: "WHO recommendation: ALL HIV+ individuals should receive ART" },
    { text: "Goal: Undetectable viral load = Untransmittable (U=U)" },
    { text: "Key drug classes:" },
    { text: "NRTIs: Tenofovir (TDF), Lamivudine (3TC), Zidovudine (AZT)", sub: true },
    { text: "NNRTIs: Efavirenz, Nevirapine", sub: true },
    { text: "Protease Inhibitors: Lopinavir/Ritonavir", sub: true },
    { text: "Integrase Inhibitors: Dolutegravir (DTG) — preferred 1st line", sub: true },
    { text: "WHO 1st-line regimen: TDF + 3TC + DTG", bold: true },
    { text: "India (NACO): Free ART at 700+ centres; Cotrimoxazole prophylaxis for all HIV+ patients" },
  ]), { x: 0.35, y: 1.05, w: 9.3, h: 4.3 });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 12 – Prevention
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.midBg);
  leftBar(s, C.teal);
  heading(s, "Prevention of AIDS", C.teal);

  const cols = [
    {
      title: "Primary Prevention",
      color: C.teal,
      items: [
        "Health education & awareness",
        "ABC: Abstain, Be faithful, use Condoms",
        "Condom promotion (male & female)",
        "Needle exchange for IDUs",
        "Safe blood supply — mandatory HIV screening",
        "PrEP for high-risk individuals",
      ],
    },
    {
      title: "Secondary / Targeted",
      color: C.amber,
      items: [
        "Targeted interventions: FSW, MSM, IDU, hijras",
        "STI treatment reduces HIV risk",
        "Male circumcision reduces risk by ~60%",
        "PMTCT: ART for HIV+ pregnant women",
        "Post-exposure prophylaxis (PEP)",
        "Voluntary Counselling & Testing (ICTC)",
      ],
    },
  ];

  cols.forEach((col, i) => {
    const x = 0.35 + i * 4.75;

    s.addShape(pres.ShapeType.rect, {
      x, y: 1.1, w: 4.6, h: 0.48,
      fill: { color: col.color }, line: { color: col.color },
    });
    s.addText(col.title, {
      x: x + 0.1, y: 1.14, w: 4.4, h: 0.38,
      fontSize: 17, bold: true, color: C.darkBg, fontFace: "Calibri",
    });

    s.addText(col.items.map(t => "• " + t).join("\n"), {
      x: x + 0.1, y: 1.65, w: 4.45, h: 3.7,
      fontSize: 16.5, color: C.offWhite, fontFace: "Calibri", valign: "top",
      paraSpaceAfter: 6,
    });
  });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 13 – NACP India
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.darkBg);
  leftBar(s, C.amber);
  heading(s, "National AIDS Control Programme (NACP)", C.amber);

  s.addText(bullets([
    { text: "NACP I (1992–1999): Surveillance, blood safety, IEC, STI treatment", bold: true },
    { text: "NACP II (1999–2006): Scale-up prevention; free ART started 2004", bold: true },
    { text: "NACP III (2007–2012): Halt and reverse epidemic; HIV-TB linkage; 1,000+ ART centres", bold: true },
    { text: "NACP IV (2012–2017): Accelerating reversal; integration with NHM" },
    { text: "Target 2030: End AIDS (SDG 3.3) — 95-95-95 UNAIDS strategy:", bold: true },
    { text: "95% of HIV+ people know their status", sub: true },
    { text: "95% of those diagnosed are on treatment", sub: true },
    { text: "95% of those on treatment are virally suppressed", sub: true },
    { text: "Key bodies: NACO (national) + SACS (state) + ICTC + ART Centres + CCC" },
  ]), { x: 0.35, y: 1.05, w: 9.3, h: 4.3 });
}

// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 14 – Conclusion
// ─────────────────────────────────────────────────────────────────────────────
{
  const s = slide(C.darkBg);
  leftBar(s, C.accent);

  s.addText("Key Takeaways", {
    x: 0.35, y: 0.22, w: 9.3, h: 0.65,
    fontSize: 30, bold: true, color: C.amber, fontFace: "Calibri",
  });
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 0.88, w: 9.3, h: 0.05,
    fill: { color: C.accent }, line: { color: C.accent },
  });

  const points = [
    { n: "1", t: "AIDS is the end-stage of HIV — 38 million people living with HIV globally (2019)." },
    { n: "2", t: "HIV progresses: Initial infection → Asymptomatic carrier → ARC → AIDS." },
    { n: "3", t: "Diagnosis: ELISA (screening) → Western Blot (confirmatory); CD4 < 200 = AIDS." },
    { n: "4", t: "ART suppresses viral load — no cure yet, but life-saving if started early." },
    { n: "5", t: "Prevention: safe sex (ABC), condoms, needle exchange, safe blood, PMTCT." },
    { n: "6", t: "India's NACP targets ending AIDS by 2030 via 95-95-95 UNAIDS strategy." },
  ];

  points.forEach((p, i) => {
    const y = 1.05 + i * 0.74;
    s.addShape(pres.ShapeType.ellipse, {
      x: 0.38, y: y + 0.07, w: 0.42, h: 0.42,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addText(p.n, {
      x: 0.38, y: y + 0.07, w: 0.42, h: 0.42,
      fontSize: 15, bold: true, color: C.white,
      align: "center", valign: "middle",
    });
    s.addText(p.t, {
      x: 0.92, y: y, w: 8.7, h: 0.62,
      fontSize: 17, color: C.offWhite, fontFace: "Calibri", valign: "middle",
    });
  });

  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.32, w: 10, h: 0.3,
    fill: { color: C.midBg }, line: { color: C.midBg },
  });
  s.addText("Source: Park's Textbook of Preventive and Social Medicine  |  NACO  |  UNAIDS 2019", {
    x: 0.35, y: 5.34, w: 9.3, h: 0.24,
    fontSize: 11, color: C.gray,
  });
}

// ─── Save ─────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/aids-presentation/AIDS_KPark_v2.pptx" })
  .then(() => console.log("Saved: AIDS_KPark_v2.pptx"))
  .catch(err => { console.error(err); process.exit(1); });
Running Command

cd /home/daytona/workspace/aids-presentation && node create_aids_v2.js

Running Command

cd /home/daytona/workspace/aids-presentation && python /home/daytona/skills/pptx/scripts/thumbnail.py AIDS_KPark_v2.pptx && ls *.jpg

Reading File
Reading File
This is much better - text is clearly readable across all slides. The fonts are large and legible, the color coding is consistent, and each slide has a clear focus. The presentation looks clean and professional now.

AIDS KPark v2

Presentation · PPTX

Here is what changed in v2:
  • Font sizes increased - body text is now 17-20pt (was 10-13pt)
  • Less content per slide - each slide covers one topic cleanly
  • No cramped multi-column cards - replaced with full-width layouts and 2-column max
  • Clear visual hierarchy - colored header bands, bold key terms, teal/amber/yellow accent system
  • Slide 8 (Clinical Stages) - 4-column layout with larger text per stage box
  • Slides 9 & 11 - single-column layouts, everything easy to read at a glance
14 slides total covering: Definition → Global burden → India epidemiology → The virus → Transmission → Immunology → Clinical stages → WHO case definition → Diagnosis → Treatment → Prevention → NACP → Key Takeaways.
This is a shared conversation. Sign in to Orris to start your own chat.