Slide Distribution: Slide 1: Introduction of the Family Slide 2: Socio-demographic Profile Slide 3: Health Status & Problems Identified Slide 4: Interventions / Health Education Provided Slide 5: Before and After Changes observed after adopting the family Iec activities Diabetes and hypertension Personal hygiene Malaria Tree plantation Heat stroke Health camp Obesity Make a presentable ppt with light professional background and use tables and flow chart accordingly
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not found"
mkdir -p /home/daytona/workspace/family-health-ppt
~/family-health-ppt/generate.js
const pptxgen = require("pptxgenjs");
let pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
pres.title = 'Family Health Adoption - Community Health Program';
// ─── COLOR PALETTE ───────────────────────────────────────────
const C = {
navy: "1B3A6B", // dominant dark blue
teal: "1A7F8E", // supporting teal
lightTeal: "D6EEF2", // light teal bg
mint: "E8F7F5", // very light mint
white: "FFFFFF",
offWhite: "F4F8FB",
accent: "F0A500", // warm amber accent
accentLt: "FFF3CD", // light amber
text: "1C2B3A", // dark text
subtext: "4A6274", // muted text
green: "2E7D32",
greenLt: "E8F5E9",
red: "C62828",
redLt: "FFEBEE",
orange: "E65100",
orangeLt: "FFF3E0",
purple: "4A148C",
purpleLt: "F3E5F5",
};
// ─── HELPER: slide background ────────────────────────────────
function setLightBg(slide) {
slide.background = { color: C.offWhite };
}
// ─── HELPER: Header bar ──────────────────────────────────────
function addHeader(slide, title, subtitle) {
// Top decorative bar
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 10, h: 0.85,
fill: { color: C.navy }, line: { color: C.navy }
});
// Accent left strip
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 0.18, h: 0.85,
fill: { color: C.accent }, line: { color: C.accent }
});
slide.addText(title, {
x: 0.28, y: 0, w: 9.4, h: 0.85,
fontSize: 22, bold: true, color: C.white,
valign: "middle", fontFace: "Calibri", margin: 4
});
if (subtitle) {
slide.addText(subtitle, {
x: 0.28, y: 0.82, w: 9.4, h: 0.32,
fontSize: 11, color: C.teal, italic: true,
fontFace: "Calibri", margin: 2
});
}
// Bottom thin accent line
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0.85, w: 10, h: 0.04,
fill: { color: C.accent }, line: { color: C.accent }
});
}
// ─── HELPER: footer ──────────────────────────────────────────
function addFooter(slide, text) {
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 5.45, w: 10, h: 0.175,
fill: { color: C.navy }, line: { color: C.navy }
});
slide.addText(text || "Community Health & Family Adoption Program", {
x: 0.2, y: 5.44, w: 9.6, h: 0.185,
fontSize: 8.5, color: C.white, valign: "middle", fontFace: "Calibri"
});
}
// ─── HELPER: section card ────────────────────────────────────
function addCard(slide, x, y, w, h, fillColor, borderColor) {
slide.addShape(pres.ShapeType.roundRect, {
x, y, w, h,
fill: { color: fillColor || C.white },
line: { color: borderColor || C.teal, pt: 1.2 },
rectRadius: 0.08
});
}
// ═══════════════════════════════════════════════════════════════
// SLIDE 1 – INTRODUCTION OF THE FAMILY (Title / Hero slide)
// ═══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
// Full gradient-like background split
s.background = { color: C.offWhite };
// Left dark panel
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 4.2, h: 5.625,
fill: { color: C.navy }, line: { color: C.navy }
});
// Amber accent stripe
s.addShape(pres.ShapeType.rect, {
x: 4.2, y: 0, w: 0.12, h: 5.625,
fill: { color: C.accent }, line: { color: C.accent }
});
// Program label
s.addText("COMMUNITY HEALTH PROGRAM", {
x: 0.3, y: 0.45, w: 3.7, h: 0.35,
fontSize: 9, bold: true, color: C.accent, charSpacing: 2,
fontFace: "Calibri", valign: "middle"
});
// Main title
s.addText("Introduction\nof the Family", {
x: 0.3, y: 0.9, w: 3.7, h: 1.5,
fontSize: 30, bold: true, color: C.white,
fontFace: "Calibri", valign: "top"
});
s.addText("Slide 1 — Family Profile Overview", {
x: 0.3, y: 2.5, w: 3.7, h: 0.35,
fontSize: 11, color: "A0B4C8", italic: true, fontFace: "Calibri"
});
// Decorative circle icons on left
const icons = [
{ y: 3.1, text: "🏠", label: "Family Home Visit" },
{ y: 3.7, text: "👨👩👧👦", label: "Multi-generation Family" },
{ y: 4.3, text: "📋", label: "Health Profile Documented" },
];
icons.forEach(ic => {
s.addText(ic.text, { x: 0.3, y: ic.y, w: 0.5, h: 0.42, fontSize: 18 });
s.addText(ic.label, {
x: 0.85, y: ic.y, w: 3.1, h: 0.42,
fontSize: 11, color: "C8D8E8", fontFace: "Calibri", valign: "middle"
});
});
// Right panel — Family details table
s.addText("FAMILY INTRODUCTION", {
x: 4.5, y: 0.3, w: 5.3, h: 0.4,
fontSize: 13, bold: true, color: C.navy, charSpacing: 1, fontFace: "Calibri"
});
const rows = [
[{ text: "Parameter", options: { bold: true, color: C.white, fill: C.navy } },
{ text: "Details", options: { bold: true, color: C.white, fill: C.navy } }],
["Family Name", "Kumar Family (Adopted Family)"],
["Head of Family", "Mr. Ramesh Kumar (45 yrs)"],
["Address", "Village: Rajanpur, District: XYZ"],
["Type of Family", "Nuclear Family"],
["Total Members", "4 (2 Adults, 2 Children)"],
["Religion", "Hindu"],
["Caste", "General"],
["Mother Tongue", "Hindi"],
["Duration of Stay", "15 years in the same locality"],
["House Type", "Pucca House"],
["Source of Water", "Municipal tap water"],
["Toilet Facility", "Available (private)"],
["Monthly Income", "₹ 18,000 (approx.)"],
];
let tableData = rows.map((r, i) => {
if (i === 0) return r;
return [
{ text: r[0], options: { bold: true, color: C.navy, fill: i % 2 === 0 ? C.lightTeal : C.white } },
{ text: r[1], options: { color: C.text, fill: i % 2 === 0 ? C.lightTeal : C.white } }
];
});
s.addTable(tableData, {
x: 4.4, y: 0.78, w: 5.4, h: 4.5,
fontSize: 10, fontFace: "Calibri",
border: { type: "solid", color: "C8D8E8", pt: 0.5 },
rowH: 0.3,
colW: [1.9, 3.5]
});
addFooter(s, "Community Health & Family Adoption Program | Slide 1 of 5");
}
// ═══════════════════════════════════════════════════════════════
// SLIDE 2 – SOCIO-DEMOGRAPHIC PROFILE
// ═══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setLightBg(s);
addHeader(s, "Slide 2 — Socio-Demographic Profile", "Detailed demographic breakdown of the adopted family");
// Left column: Members table
s.addText("👥 Family Members", {
x: 0.25, y: 1.05, w: 4.6, h: 0.34,
fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri"
});
const memberRows = [
[
{ text: "Member", options: { bold: true, color: C.white, fill: C.navy } },
{ text: "Age", options: { bold: true, color: C.white, fill: C.navy } },
{ text: "Sex", options: { bold: true, color: C.white, fill: C.navy } },
{ text: "Occupation", options: { bold: true, color: C.white, fill: C.navy } },
{ text: "Education", options: { bold: true, color: C.white, fill: C.navy } },
],
[
{ text: "Mr. Ramesh Kumar", options: { bold: true, fill: C.lightTeal, color: C.text } },
{ text: "45", options: { fill: C.lightTeal, color: C.text } },
{ text: "Male", options: { fill: C.lightTeal, color: C.text } },
{ text: "Farmer", options: { fill: C.lightTeal, color: C.text } },
{ text: "10th Pass", options: { fill: C.lightTeal, color: C.text } },
],
[
{ text: "Mrs. Sunita Devi", options: { bold: true, fill: C.white, color: C.text } },
{ text: "40", options: { fill: C.white, color: C.text } },
{ text: "Female", options: { fill: C.white, color: C.text } },
{ text: "Homemaker", options: { fill: C.white, color: C.text } },
{ text: "8th Pass", options: { fill: C.white, color: C.text } },
],
[
{ text: "Ankit Kumar (Son)", options: { bold: true, fill: C.lightTeal, color: C.text } },
{ text: "18", options: { fill: C.lightTeal, color: C.text } },
{ text: "Male", options: { fill: C.lightTeal, color: C.text } },
{ text: "Student", options: { fill: C.lightTeal, color: C.text } },
{ text: "12th", options: { fill: C.lightTeal, color: C.text } },
],
[
{ text: "Priya Kumari (Dtr)", options: { bold: true, fill: C.white, color: C.text } },
{ text: "14", options: { fill: C.white, color: C.text } },
{ text: "Female", options: { fill: C.white, color: C.text } },
{ text: "Student", options: { fill: C.white, color: C.text } },
{ text: "9th", options: { fill: C.white, color: C.text } },
],
];
s.addTable(memberRows, {
x: 0.25, y: 1.42, w: 4.55, h: 1.7,
fontSize: 9.5, fontFace: "Calibri",
border: { type: "solid", color: "C8D8E8", pt: 0.5 },
rowH: 0.32,
colW: [1.35, 0.42, 0.48, 0.92, 1.38]
});
// Socio-economic indicators (left lower)
s.addText("📊 Socio-Economic Indicators", {
x: 0.25, y: 3.22, w: 4.6, h: 0.34,
fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri"
});
const ecoRows = [
[
{ text: "Indicator", options: { bold: true, color: C.white, fill: C.teal } },
{ text: "Status", options: { bold: true, color: C.white, fill: C.teal } }
],
["BPL / APL Status", "APL (Above Poverty Line)"],
["Ration Card", "Available"],
["Aadhar Card", "All members enrolled"],
["Health Insurance", "PM-JAY (Ayushman Bharat)"],
["Immunization", "Up-to-date for children"],
].map((r, i) => {
if (i === 0) return r;
return [
{ text: r[0], options: { bold: true, color: C.navy, fill: i % 2 === 0 ? C.lightTeal : C.white } },
{ text: r[1], options: { color: C.text, fill: i % 2 === 0 ? C.lightTeal : C.white } }
];
});
s.addTable(ecoRows, {
x: 0.25, y: 3.58, w: 4.55, h: 1.68,
fontSize: 9.5, fontFace: "Calibri",
border: { type: "solid", color: "C8D8E8", pt: 0.5 },
rowH: 0.28,
colW: [2.3, 2.25]
});
// Right column: Living environment
s.addText("🏠 Living Environment", {
x: 5.1, y: 1.05, w: 4.65, h: 0.34,
fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri"
});
const envCards = [
{ label: "House Type", val: "Pucca", color: C.greenLt, border: C.green },
{ label: "Rooms", val: "3 rooms", color: C.lightTeal, border: C.teal },
{ label: "Ventilation", val: "Adequate", color: C.greenLt, border: C.green },
{ label: "Drinking Water", val: "Tap water (treated)", color: C.lightTeal, border: C.teal },
{ label: "Sanitation", val: "Private toilet", color: C.greenLt, border: C.green },
{ label: "Waste Disposal", val: "Municipal collection", color: C.lightTeal, border: C.teal },
{ label: "Cooking Fuel", val: "LPG (clean fuel)", color: C.accentLt, border: C.accent },
{ label: "Animals at home", val: "1 cow, 2 goats", color: C.orangeLt, border: C.orange },
];
envCards.forEach((card, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const cx = 5.1 + col * 2.38;
const cy = 1.48 + row * 0.72;
addCard(s, cx, cy, 2.2, 0.62, card.color, card.border);
s.addText(card.label, {
x: cx + 0.08, y: cy + 0.02, w: 2.05, h: 0.26,
fontSize: 9, bold: true, color: C.navy, fontFace: "Calibri", valign: "middle"
});
s.addText(card.val, {
x: cx + 0.08, y: cy + 0.3, w: 2.05, h: 0.26,
fontSize: 10, color: C.text, fontFace: "Calibri", valign: "middle"
});
});
// Per capita income box
addCard(s, 5.1, 4.48, 4.65, 0.78, C.accentLt, C.accent);
s.addText("Per Capita Monthly Income", {
x: 5.2, y: 4.5, w: 4.45, h: 0.3,
fontSize: 10, bold: true, color: C.navy, fontFace: "Calibri"
});
s.addText("₹ 18,000 ÷ 4 members = ₹ 4,500 per capita / month", {
x: 5.2, y: 4.82, w: 4.45, h: 0.3,
fontSize: 10.5, color: C.text, fontFace: "Calibri", bold: true
});
addFooter(s, "Community Health & Family Adoption Program | Slide 2 of 5");
}
// ═══════════════════════════════════════════════════════════════
// SLIDE 3 – HEALTH STATUS & PROBLEMS IDENTIFIED
// ═══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setLightBg(s);
addHeader(s, "Slide 3 — Health Status & Problems Identified", "Assessment findings from initial family health visit");
// ── Health status table ──────────────────────────────────────
s.addText("🩺 Health Status of Family Members", {
x: 0.25, y: 1.02, w: 9.5, h: 0.32,
fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri"
});
const hRows = [
[
{ text: "Member", options: { bold: true, color: C.white, fill: C.navy } },
{ text: "Age", options: { bold: true, color: C.white, fill: C.navy } },
{ text: "Current Health Status", options: { bold: true, color: C.white, fill: C.navy } },
{ text: "Problems Identified", options: { bold: true, color: C.white, fill: C.navy } },
{ text: "Severity", options: { bold: true, color: C.white, fill: C.navy } },
],
[
{ text: "Mr. Ramesh Kumar", options: { bold: true, color: C.text, fill: C.lightTeal } },
{ text: "45 yrs", options: { color: C.text, fill: C.lightTeal } },
{ text: "Known diabetic, hypertensive", options: { color: C.text, fill: C.lightTeal } },
{ text: "Uncontrolled BP & Blood Sugar, Overweight (BMI 28)", options: { color: C.text, fill: C.lightTeal } },
{ text: "High", options: { bold: true, color: C.red, fill: C.redLt } },
],
[
{ text: "Mrs. Sunita Devi", options: { bold: true, color: C.text, fill: C.white } },
{ text: "40 yrs", options: { color: C.text, fill: C.white } },
{ text: "Mild anaemia, obesity", options: { color: C.text, fill: C.white } },
{ text: "Low Hb (9.8 g/dL), BMI 30, Poor diet habits", options: { color: C.text, fill: C.white } },
{ text: "Moderate", options: { bold: true, color: C.orange, fill: C.orangeLt } },
],
[
{ text: "Ankit Kumar", options: { bold: true, color: C.text, fill: C.lightTeal } },
{ text: "18 yrs", options: { color: C.text, fill: C.lightTeal } },
{ text: "Generally healthy", options: { color: C.text, fill: C.lightTeal } },
{ text: "Poor personal hygiene, irregular meals", options: { color: C.text, fill: C.lightTeal } },
{ text: "Low", options: { bold: true, color: C.green, fill: C.greenLt } },
],
[
{ text: "Priya Kumari", options: { bold: true, color: C.text, fill: C.white } },
{ text: "14 yrs", options: { color: C.text, fill: C.white } },
{ text: "Generally healthy", options: { color: C.text, fill: C.white } },
{ text: "Inadequate sleep, mobile screen overuse", options: { color: C.text, fill: C.white } },
{ text: "Low", options: { bold: true, color: C.green, fill: C.greenLt } },
],
];
s.addTable(hRows, {
x: 0.25, y: 1.38, w: 9.5, h: 1.75,
fontSize: 9.5, fontFace: "Calibri",
border: { type: "solid", color: "C8D8E8", pt: 0.5 },
rowH: 0.38,
colW: [1.6, 0.6, 2.0, 3.4, 1.0]
});
// ── Problems summary boxes ───────────────────────────────────
s.addText("⚠️ Priority Health Problems", {
x: 0.25, y: 3.22, w: 9.5, h: 0.32,
fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri"
});
const problems = [
{ icon: "🩸", title: "Diabetes", desc: "Uncontrolled blood\nsugar – FBS 198 mg/dL", color: C.redLt, border: C.red },
{ icon: "❤️", title: "Hypertension", desc: "BP: 150/94 mmHg\n(Stage 2)", color: C.redLt, border: C.red },
{ icon: "🏋️", title: "Obesity", desc: "BMI >28 in 2 members;\nhigh waist circumference", color: C.orangeLt, border: C.orange },
{ icon: "🦟", title: "Malaria Risk", desc: "Stagnant water near\nhouse; no bed nets", color: C.purpleLt, border: C.purple },
{ icon: "🧼", title: "Poor Hygiene", desc: "Infrequent handwash;\nunsanitary food habits", color: C.accentLt, border: C.accent },
{ icon: "🌡️", title: "Heat Stroke Risk", desc: "Outdoor field work\nin peak summer heat", color: C.orangeLt, border: C.orange },
];
problems.forEach((p, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const cx = 0.25 + col * 3.27;
const cy = 3.6 + row * 1.1;
addCard(s, cx, cy, 3.1, 0.98, p.color, p.border);
s.addText(p.icon + " " + p.title, {
x: cx + 0.1, y: cy + 0.06, w: 2.9, h: 0.3,
fontSize: 11, bold: true, color: C.navy, fontFace: "Calibri"
});
s.addText(p.desc, {
x: cx + 0.1, y: cy + 0.38, w: 2.9, h: 0.52,
fontSize: 9.5, color: C.subtext, fontFace: "Calibri"
});
});
addFooter(s, "Community Health & Family Adoption Program | Slide 3 of 5");
}
// ═══════════════════════════════════════════════════════════════
// SLIDE 4 – INTERVENTIONS / HEALTH EDUCATION (IEC ACTIVITIES)
// ═══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setLightBg(s);
addHeader(s, "Slide 4 — Interventions & Health Education Provided", "IEC Activities conducted for the adopted family");
// ── IEC Activity flowchart (vertical linear) ─────────────────
// Title column labels
s.addText("IEC ACTIVITY", {
x: 0.25, y: 1.0, w: 2.4, h: 0.28,
fontSize: 9, bold: true, color: C.white, fontFace: "Calibri",
align: "center",
fill: { color: C.teal }
});
// Workaround: use shape + text
s.addShape(pres.ShapeType.rect, {
x: 0.25, y: 1.0, w: 2.4, h: 0.28,
fill: { color: C.teal }, line: { color: C.teal }
});
s.addText("IEC ACTIVITY", {
x: 0.25, y: 1.0, w: 2.4, h: 0.28,
fontSize: 9, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle"
});
s.addShape(pres.ShapeType.rect, {
x: 2.7, y: 1.0, w: 2.4, h: 0.28,
fill: { color: C.teal }, line: { color: C.teal }
});
s.addText("KEY MESSAGE", {
x: 2.7, y: 1.0, w: 2.4, h: 0.28,
fontSize: 9, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle"
});
s.addShape(pres.ShapeType.rect, {
x: 5.15, y: 1.0, w: 2.4, h: 0.28,
fill: { color: C.teal }, line: { color: C.teal }
});
s.addText("METHOD USED", {
x: 5.15, y: 1.0, w: 2.4, h: 0.28,
fontSize: 9, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle"
});
s.addShape(pres.ShapeType.rect, {
x: 7.6, y: 1.0, w: 2.15, h: 0.28,
fill: { color: C.teal }, line: { color: C.teal }
});
s.addText("TARGET MEMBER(S)", {
x: 7.6, y: 1.0, w: 2.15, h: 0.28,
fontSize: 9, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle"
});
// IEC activities data
const iecData = [
{
no: "1",
activity: "🩸 Diabetes &\nHypertension",
message: "Diet control, medication adherence, regular BP/sugar monitoring, exercise",
method: "Counselling, pamphlets, demonstration",
target: "Mr. Ramesh Kumar (Primary)"
},
{
no: "2",
activity: "🧼 Personal Hygiene",
message: "Handwashing technique, oral hygiene, clean clothing, nail hygiene",
method: "Demonstration, flip chart",
target: "Entire Family"
},
{
no: "3",
activity: "🦟 Malaria\nPrevention",
message: "Eliminate stagnant water, use bed nets, repellents, early reporting of fever",
method: "Home visit, poster display",
target: "Entire Family"
},
{
no: "4",
activity: "🌳 Tree Plantation",
message: "Plant trees around home; improve air quality and reduce heat island effect",
method: "Community activity, sapling distribution",
target: "Entire Family"
},
{
no: "5",
activity: "🌡️ Heat Stroke\nPrevention",
message: "Stay hydrated, avoid outdoor work 11am–4pm, wear light cotton clothes",
method: "IEC cards, verbal counselling",
target: "Mr. Ramesh Kumar\n(outdoor worker)"
},
{
no: "6",
activity: "🏕️ Health Camp",
message: "Free check-up, BP, blood sugar, Hb screening; referral if needed",
method: "Camp at community centre",
target: "Entire Family"
},
{
no: "7",
activity: "⚖️ Obesity\nManagement",
message: "Balanced diet, reduce refined sugar/fat, 30 min walk daily, BMI tracking",
method: "Diet chart, counselling",
target: "Mr. Ramesh &\nMrs. Sunita"
},
];
const rowColors = [C.white, C.lightTeal];
const rowH = 0.54;
const startY = 1.32;
iecData.forEach((row, i) => {
const y = startY + i * rowH;
const bg = rowColors[i % 2];
// Row background
s.addShape(pres.ShapeType.rect, {
x: 0.25, y, w: 9.5, h: rowH - 0.03,
fill: { color: bg }, line: { color: "C8D8E8", pt: 0.5 }
});
// Activity
s.addText(row.activity, {
x: 0.3, y: y + 0.04, w: 2.3, h: rowH - 0.1,
fontSize: 9.5, bold: true, color: C.navy, fontFace: "Calibri", valign: "middle"
});
// Message
s.addText(row.message, {
x: 2.72, y: y + 0.04, w: 2.38, h: rowH - 0.1,
fontSize: 8.8, color: C.text, fontFace: "Calibri", valign: "middle"
});
// Method
s.addText(row.method, {
x: 5.17, y: y + 0.04, w: 2.38, h: rowH - 0.1,
fontSize: 8.8, color: C.subtext, fontFace: "Calibri", valign: "middle", italic: true
});
// Target
s.addText(row.target, {
x: 7.62, y: y + 0.04, w: 2.1, h: rowH - 0.1,
fontSize: 8.8, color: C.text, fontFace: "Calibri", valign: "middle"
});
// Vertical dividers
[2.7, 5.15, 7.6].forEach(dx => {
s.addShape(pres.ShapeType.line, {
x: dx, y, w: 0, h: rowH - 0.03,
line: { color: "C8D8E8", pt: 0.8 }
});
});
});
addFooter(s, "Community Health & Family Adoption Program | Slide 4 of 5 | IEC = Information, Education & Communication");
}
// ═══════════════════════════════════════════════════════════════
// SLIDE 5 – BEFORE AND AFTER CHANGES
// ═══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setLightBg(s);
addHeader(s, "Slide 5 — Before & After Changes Observed", "Outcomes after adopting the family and providing health interventions");
// ── FLOWCHART: Intervention cycle ────────────────────────────
// Title
s.addText("Intervention Flow", {
x: 0.25, y: 1.0, w: 9.5, h: 0.28,
fontSize: 10.5, bold: true, color: C.teal, fontFace: "Calibri", align: "center"
});
// Flowchart boxes across top
const flowSteps = [
{ label: "Family\nAdoption", color: C.navy, textColor: C.white },
{ label: "Health\nAssessment", color: C.teal, textColor: C.white },
{ label: "IEC\nActivities", color: C.accent, textColor: C.white },
{ label: "Follow-up\n& Monitoring", color: C.teal, textColor: C.white },
{ label: "Improved\nHealth Outcomes", color: C.green, textColor: C.white },
];
flowSteps.forEach((step, i) => {
const fx = 0.3 + i * 1.9;
// Box
s.addShape(pres.ShapeType.roundRect, {
x: fx, y: 1.3, w: 1.6, h: 0.62,
fill: { color: step.color }, line: { color: step.color },
rectRadius: 0.08
});
s.addText(step.label, {
x: fx, y: 1.3, w: 1.6, h: 0.62,
fontSize: 9.5, bold: true, color: step.textColor, fontFace: "Calibri",
align: "center", valign: "middle"
});
// Arrow (not after last)
if (i < flowSteps.length - 1) {
s.addShape(pres.ShapeType.rect, {
x: fx + 1.6, y: 1.57, w: 0.28, h: 0.06,
fill: { color: C.subtext }, line: { color: C.subtext }
});
// Arrowhead
s.addShape(pres.ShapeType.rect, {
x: fx + 1.86, y: 1.53, w: 0.06, h: 0.14,
fill: { color: C.subtext }, line: { color: C.subtext }
});
}
});
// ── Before / After comparison table ─────────────────────────
s.addText("📊 Before vs After Comparison", {
x: 0.25, y: 2.08, w: 9.5, h: 0.32,
fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri"
});
const baRows = [
[
{ text: "Health Indicator", options: { bold: true, color: C.white, fill: C.navy } },
{ text: "⛔ BEFORE Adoption", options: { bold: true, color: C.white, fill: C.red } },
{ text: "✅ AFTER Adoption", options: { bold: true, color: C.white, fill: C.green } },
{ text: "Change Observed", options: { bold: true, color: C.white, fill: C.teal } },
],
[
{ text: "Blood Pressure (Father)", options: { bold: true, fill: C.lightTeal, color: C.navy } },
{ text: "150/94 mmHg (uncontrolled)", options: { fill: C.redLt, color: C.red } },
{ text: "128/82 mmHg (controlled)", options: { fill: C.greenLt, color: C.green } },
{ text: "↓ Significant improvement", options: { fill: C.lightTeal, color: C.teal, bold: true } },
],
[
{ text: "Blood Sugar (Father)", options: { bold: true, fill: C.white, color: C.navy } },
{ text: "FBS: 198 mg/dL (high)", options: { fill: C.redLt, color: C.red } },
{ text: "FBS: 138 mg/dL (near normal)", options: { fill: C.greenLt, color: C.green } },
{ text: "↓ Better glycaemic control", options: { fill: C.white, color: C.teal, bold: true } },
],
[
{ text: "Haemoglobin (Mother)", options: { bold: true, fill: C.lightTeal, color: C.navy } },
{ text: "Hb: 9.8 g/dL (anaemic)", options: { fill: C.redLt, color: C.red } },
{ text: "Hb: 11.2 g/dL (improved)", options: { fill: C.greenLt, color: C.green } },
{ text: "↑ Iron-rich diet + supplements", options: { fill: C.lightTeal, color: C.teal, bold: true } },
],
[
{ text: "BMI / Obesity", options: { bold: true, fill: C.white, color: C.navy } },
{ text: "BMI 28–30 (overweight/obese)", options: { fill: C.redLt, color: C.red } },
{ text: "BMI 25–26 (approaching normal)", options: { fill: C.greenLt, color: C.green } },
{ text: "↓ Diet + exercise adherence", options: { fill: C.white, color: C.teal, bold: true } },
],
[
{ text: "Personal Hygiene", options: { bold: true, fill: C.lightTeal, color: C.navy } },
{ text: "Irregular handwash, poor habits", options: { fill: C.redLt, color: C.red } },
{ text: "Regular handwash technique adopted", options: { fill: C.greenLt, color: C.green } },
{ text: "✔ Behaviour change achieved", options: { fill: C.lightTeal, color: C.teal, bold: true } },
],
[
{ text: "Malaria Prevention", options: { bold: true, fill: C.white, color: C.navy } },
{ text: "No bed nets; stagnant water present", options: { fill: C.redLt, color: C.red } },
{ text: "Bed nets used; water cleared", options: { fill: C.greenLt, color: C.green } },
{ text: "✔ Vector breeding reduced", options: { fill: C.white, color: C.teal, bold: true } },
],
[
{ text: "Tree Plantation", options: { bold: true, fill: C.lightTeal, color: C.navy } },
{ text: "Barren yard; no shade", options: { fill: C.redLt, color: C.red } },
{ text: "5 saplings planted; shaded area", options: { fill: C.greenLt, color: C.green } },
{ text: "✔ Environmental improvement", options: { fill: C.lightTeal, color: C.teal, bold: true } },
],
[
{ text: "Health Camp Attendance", options: { bold: true, fill: C.white, color: C.navy } },
{ text: "Never attended; no screening", options: { fill: C.redLt, color: C.red } },
{ text: "Attended 2 camps; referral done", options: { fill: C.greenLt, color: C.green } },
{ text: "✔ Health-seeking improved", options: { fill: C.white, color: C.teal, bold: true } },
],
];
s.addTable(baRows, {
x: 0.25, y: 2.44, w: 9.5, h: 2.82,
fontSize: 9, fontFace: "Calibri",
border: { type: "solid", color: "C8D8E8", pt: 0.5 },
rowH: 0.29,
colW: [2.2, 2.3, 2.5, 2.5]
});
addFooter(s, "Community Health & Family Adoption Program | Slide 5 of 5 | Outcomes after sustained IEC interventions");
}
// ═══════════════════════════════════════════════════════════════
// WRITE FILE
// ═══════════════════════════════════════════════════════════════
pres.writeFile({ fileName: "/home/daytona/workspace/family-health-ppt/Family_Health_Adoption_Program.pptx" })
.then(() => console.log("✅ PPT saved successfully!"))
.catch(err => console.error("❌ Error:", err));
cd /home/daytona/workspace/family-health-ppt && node generate.js 2>&1
ls -lh /home/daytona/workspace/family-health-ppt/Family_Health_Adoption_Program.pptx
Family Health Adoption Program
Presentation · PPTX