'Rasayana Therapy in Long-term Asthma Control' give the information with classical references for poster presentation on this topic as a PG scholar from the department of Kaumarabhritya
Rasayana therapy asthma bronchial
Rasayana therapy Tamaka Shwasa asthma classical Ayurvedic references Charaka Ashtanga Hridayam Kaumarabhritya
https://www.jetir.org/papers/JETIR2310697.pdf
Rasayana Ayurveda immunomodulation children respiratory
Rasayana Chyawanprash Agastyaharitaki Haritaki bronchial asthma children Kaumarabhritya classical texts Charaka Sushruta verse
Charaka Samhita Rasayana Adhyaya definition Chikitsa Sthana 1 Ashtanga Hridayam Uttarasthana Kaumarabhritya Shwasa chikitsa classical verse
Chyawanprash Ashwagandha Pippali asthma children clinical trial
https://www.carakasamhitaonline.com/index.php/Rasayana
Withania somnifera Tinospora Piper longum immunomodulation airway inflammation
Can you prepare a poster with same information
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"
mkdir -p /home/daytona/workspace/rasayana-poster && node -e "require('pptxgenjs'); console.log('pptxgenjs OK')"
~/rasayana-poster/create_poster.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
// Custom A0-like poster layout (33.1" x 46.8" scaled down for PPTX; use wide ratio 1:1.4)
// We'll use 36" x 48" as custom inches (standard poster size)
pres.defineLayout({ name: "POSTER", width: 36, height: 48 });
pres.layout = "POSTER";
pres.title = "Rasayana Therapy in Long-term Asthma Control";
pres.author = "PG Scholar, Kaumarabhritya";
// ── COLOR PALETTE ──────────────────────────────────────────────────────────────
const C = {
deepGreen: "1B4332", // dominant bg sections
forestGreen: "2D6A4F", // header / section titles
midGreen: "40916C", // sub-headers
lightGreen: "74C69D", // accents
mintGreen: "B7E4C7", // light fills
cream: "F9F6EF", // body bg
gold: "C9A84C", // Sanskrit verse highlight
darkText: "1A1A1A",
white: "FFFFFF",
amber: "E9A825", // table header
rust: "9B2226", // conclusion accent
slate: "344E41",
};
const slide = pres.addSlide();
// ══════════════════════════════════════════════════════════════════════════════
// BACKGROUND
// ══════════════════════════════════════════════════════════════════════════════
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 36, h: 48,
fill: { color: C.cream },
line: { color: C.cream }
});
// ══════════════════════════════════════════════════════════════════════════════
// HEADER BAND
// ══════════════════════════════════════════════════════════════════════════════
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 36, h: 4.8,
fill: { color: C.deepGreen },
line: { color: C.deepGreen }
});
// Gold accent bar
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 4.8, w: 36, h: 0.18,
fill: { color: C.gold },
line: { color: C.gold }
});
// Main title
slide.addText("Rasayana Therapy in Long-term Asthma Control", {
x: 0.5, y: 0.25, w: 35, h: 1.8,
fontSize: 52, bold: true, color: C.white,
fontFace: "Georgia", align: "center", valign: "middle",
});
// Subtitle / Dept
slide.addText("Tamaka Shwasa (Bronchial Asthma) — An Ayurvedic Evidence Review", {
x: 0.5, y: 2.05, w: 35, h: 0.8,
fontSize: 28, bold: false, color: C.lightGreen,
fontFace: "Calibri", align: "center", valign: "middle",
});
// Author / Department
slide.addText("PG Scholar | Department of Kaumarabhritya | Institute of Ayurveda", {
x: 0.5, y: 2.85, w: 35, h: 0.65,
fontSize: 22, bold: false, color: C.mintGreen,
fontFace: "Calibri", align: "center", valign: "middle",
});
// Sanskrit quote in header
slide.addText([
{ text: '"Yat jaramaranavyadhinashanaaya hitaahitam — ', options: { italic: true, color: C.gold } },
{ text: 'Rasayanam tad uktam..."', options: { italic: true, color: C.gold } },
{ text: ' [Charaka Samhita, Chi.1/1/7-8]', options: { italic: false, color: C.mintGreen, fontSize: 18 } },
], {
x: 0.5, y: 3.6, w: 35, h: 0.9,
fontSize: 20, align: "center", valign: "middle",
});
// ══════════════════════════════════════════════════════════════════════════════
// COLUMN SETUP (3 columns)
// Col1: x=0.3 w=10.8
// Col2: x=12.6 w=10.8
// Col3: x=24.9 w=10.8
// ══════════════════════════════════════════════════════════════════════════════
const TOP = 5.3; // start y below header
const CW = 10.8; // column width
const C1 = 0.3, C2 = 12.6, C3 = 24.9;
function sectionHeader(slide, x, y, w, text) {
slide.addShape(pres.ShapeType.rect, {
x, y, w, h: 0.55,
fill: { color: C.forestGreen },
line: { color: C.forestGreen },
rectRadius: 0.06,
});
slide.addText(text, {
x: x + 0.12, y: y, w: w - 0.24, h: 0.55,
fontSize: 22, bold: true, color: C.white,
fontFace: "Calibri", align: "left", valign: "middle", margin: 0
});
}
function bodyText(slide, x, y, w, h, textArr, opts = {}) {
slide.addText(textArr, {
x, y, w, h,
fontSize: opts.fontSize || 16,
color: opts.color || C.darkText,
fontFace: opts.fontFace || "Calibri",
align: opts.align || "left",
valign: "top",
...opts
});
}
function cardBox(slide, x, y, w, h, fillColor, lineColor) {
slide.addShape(pres.ShapeType.rect, {
x, y, w, h,
fill: { color: fillColor },
line: { color: lineColor || fillColor, width: 1 },
rectRadius: 0.08,
shadow: { type: "outer", blur: 4, offset: 2, angle: 45, color: "AAAAAA", opacity: 0.3 }
});
}
// ══════════════════════════════════════════════════════════════════════════════
// COLUMN 1 — Introduction + Tamaka Shwasa
// ══════════════════════════════════════════════════════════════════════════════
let y = TOP;
// 1. Introduction
sectionHeader(slide, C1, y, CW, "1. Introduction");
y += 0.65;
cardBox(slide, C1, y, CW, 3.6, C.mintGreen, C.lightGreen);
bodyText(slide, C1 + 0.15, y + 0.1, CW - 0.3, 3.4, [
{ text: "Bronchial Asthma", options: { bold: true } },
{ text: " is the most prevalent chronic respiratory disorder in children — globally affecting ", options: {} },
{ text: "~300 million people", options: { bold: true, color: C.rust } },
{ text: ".\n\nIn Ayurveda, it corresponds to ", options: {} },
{ text: "Tamaka Shwasa", options: { bold: true, color: C.forestGreen } },
{ text: " — a subtype of Shwasa Roga, classified as a ", options: {} },
{ text: "Yapya Vyadhi", options: { bold: true, italic: true } },
{ text: " (manageable but not permanently curable).\n\nModern therapy (bronchodilators, corticosteroids) provides control but is associated with:\n", options: {} },
{ text: "• Long-term steroid side effects in children\n• Persistent recurrence\n• Impaired quality of life\n\n", options: { color: C.rust } },
{ text: "Rasayana Chikitsa", options: { bold: true, color: C.forestGreen } },
{ text: " — one of the 8 branches (Ashtanga) of Ayurveda — offers a safe, immunomodulatory, disease-modifying long-term control strategy.", options: {} }
], { fontSize: 15, lineSpacingMultiple: 1.2 });
y += 3.7;
// 2. Tamaka Shwasa — Classical Understanding
sectionHeader(slide, C1, y, CW, "2. Tamaka Shwasa — Classical Understanding");
y += 0.65;
cardBox(slide, C1, y, CW, 1.5, "EDF6EE", C.lightGreen);
bodyText(slide, C1 + 0.12, y + 0.08, CW - 0.24, 1.4, [
{ text: "Etymology: ", options: { bold: true } },
{ text: "Tamaka = tamglanou (Panini) = darkness/suffocation. Patient experiences sense of darkness during nocturnal attacks.\n", options: {} },
{ text: "Pathology: ", options: { bold: true } },
{ text: "Vata-Kapha vitiation → Pranavaha & Udakavaha Srotas obstruction → Pratiloma Gati of Prana Vayu", options: {} }
], { fontSize: 15 });
y += 1.6;
// Samprapti flow
sectionHeader(slide, C1, y, CW, "Samprapti (Pathogenesis)");
y += 0.65;
const flowItems = ["Ruksha/Sheeta\nAhara-Vihara", "Vata\nPrakopa", "Prana Vayu\nVaishamya", "Pratiloma\nGati", "Kapha in\nPranavaha Srotas", "TAMAKA\nSHWASA"];
const arrowW = CW / 6.6;
for (let i = 0; i < flowItems.length; i++) {
const bx = C1 + i * (arrowW + 0.12);
const bc = i === flowItems.length - 1 ? C.rust : C.forestGreen;
cardBox(slide, bx, y, arrowW, 0.9, bc, bc);
slide.addText(flowItems[i], {
x: bx, y: y, w: arrowW, h: 0.9,
fontSize: 11, bold: i === flowItems.length - 1, color: C.white,
fontFace: "Calibri", align: "center", valign: "middle"
});
if (i < flowItems.length - 1) {
slide.addText("▶", { x: bx + arrowW, y: y + 0.2, w: 0.15, h: 0.5, fontSize: 14, color: C.midGreen, align: "center" });
}
}
y += 1.05;
// Nidana table
sectionHeader(slide, C1, y, CW, "Nidana — Comparative Classical References");
y += 0.65;
const nidanaRows = [
["Hetu", "C.S.", "S.S.", "A.H.", "M.N."],
["Rukshana (dry food)", "✓", "✓", "—", "✓"],
["Sheeta Ahara (cold food)", "✓", "✓", "—", "✓"],
["Dhuma/Raja (smoke/dust)", "✓", "✓", "✓", "✓"],
["Ativyayama (excess exertion)", "✓", "✓", "—", "✓"],
["Sheeta Sthana (cold climate)", "✓", "—", "✓", "✓"],
];
const nidCW = [4.8, 1.4, 1.4, 1.4, 1.6];
const nidH = 0.4;
nidanaRows.forEach((row, ri) => {
let cx = C1;
row.forEach((cell, ci) => {
const isHeader = ri === 0;
const isCheck = cell === "✓";
const isCross = cell === "—";
cardBox(slide, cx, y + ri * nidH, nidCW[ci], nidH,
isHeader ? C.amber : (ri % 2 === 0 ? C.white : "F0FAF4"), isHeader ? C.amber : "D0E8D8");
slide.addText(cell, {
x: cx, y: y + ri * nidH, w: nidCW[ci], h: nidH,
fontSize: isHeader ? 14 : 13, bold: isHeader || ci === 0,
color: isHeader ? C.darkText : (isCheck ? C.forestGreen : (isCross ? "AAAAAA" : C.darkText)),
align: ci === 0 ? "left" : "center", valign: "middle",
margin: ci === 0 ? [0, 0, 0, 6] : 0
});
cx += nidCW[ci];
});
});
y += nidanaRows.length * nidH + 0.2;
// Types
sectionHeader(slide, C1, y, CW, "Types: Pratamaka & Santamaka Shwasa");
y += 0.65;
cardBox(slide, C1, y, CW / 2 - 0.1, 1.1, "FFF3CD", C.amber);
slide.addText([
{ text: "PRATAMAKA SHWASA\n", options: { bold: true, color: C.rust } },
{ text: "Asthma + Fever + Fainting\nPitta dosha involvement\n[C.S. Chi.17]", options: { fontSize: 13 } }
], { x: C1 + 0.1, y: y + 0.06, w: CW / 2 - 0.3, h: 1.0, fontSize: 13, color: C.darkText });
cardBox(slide, C1 + CW / 2 + 0.1, y, CW / 2 - 0.1, 1.1, "E8F4F8", C.midGreen);
slide.addText([
{ text: "SANTAMAKA SHWASA\n", options: { bold: true, color: C.forestGreen } },
{ text: "Nocturnal attacks dominant\nDarkness/suffocation sensation\n[C.S. Chi.17]", options: { fontSize: 13 } }
], { x: C1 + CW / 2 + 0.2, y: y + 0.06, w: CW / 2 - 0.3, h: 1.0, fontSize: 13, color: C.darkText });
y += 1.2;
// ══════════════════════════════════════════════════════════════════════════════
// COLUMN 2 — Rasayana Concept + Classical Drugs
// ══════════════════════════════════════════════════════════════════════════════
y = TOP;
// 3. Rasayana Concept
sectionHeader(slide, C2, y, CW, "3. Rasayana — Classical Concept");
y += 0.65;
// Two definition boxes
cardBox(slide, C2, y, CW, 1.35, "FFFBE8", C.gold);
slide.addText([
{ text: '"Labhopayo hi shastaanaam rasaadeenam rasayanam"\n', options: { italic: true, bold: true, color: C.deepGreen, fontSize: 16 } },
{ text: "The means by which one achieves optimum utilisation of Rasa (nutritive fluid) — Rasayana.\n", options: { fontSize: 14 } },
{ text: "[Charaka Samhita, Chikitsa Sthana 1/1/7-8]", options: { bold: true, color: C.forestGreen, fontSize: 13 } }
], { x: C2 + 0.15, y: y + 0.07, w: CW - 0.3, h: 1.2, valign: "top" });
y += 1.45;
cardBox(slide, C2, y, CW, 0.85, "EDF6EE", C.lightGreen);
slide.addText([
{ text: '"Rasayanam tad uktam yat jaravyadhinashanam"\n', options: { italic: true, bold: true, color: C.forestGreen, fontSize: 15 } },
{ text: "That which destroys old age and disease is Rasayana. ", options: { fontSize: 13 } },
{ text: "[Sushruta Samhita, Su.1/15]", options: { bold: true, color: C.rust, fontSize: 13 } }
], { x: C2 + 0.15, y: y + 0.07, w: CW - 0.3, h: 0.75, valign: "top" });
y += 0.95;
// Benefits
sectionHeader(slide, C2, y, CW, "Benefits of Rasayana [C.S. Chi.1/1/7-8]");
y += 0.65;
const benefits = [
["Deergham Ayuh", "Longevity"],
["Smruti-Medha", "Memory & Intellect"],
["Arogya", "Freedom from disease"],
["Deha Bala", "Physical strength"],
["Swara", "Good voice — key in Shwasa!"],
["Vyadhikshamatva", "Disease resistance (Immunity)"],
];
const bColW = CW / 2 - 0.1;
benefits.forEach((b, i) => {
const bx = C2 + (i % 2 === 0 ? 0 : bColW + 0.2);
const by2 = y + Math.floor(i / 2) * 0.52;
cardBox(slide, bx, by2, bColW, 0.46, i % 2 === 0 ? "E9F5EE" : "F0FAF5", C.midGreen);
slide.addText([
{ text: b[0] + " — ", options: { bold: true, color: C.forestGreen } },
{ text: b[1], options: { color: C.darkText } }
], { x: bx + 0.08, y: by2 + 0.04, w: bColW - 0.16, h: 0.4, fontSize: 13, valign: "middle" });
});
y += Math.ceil(benefits.length / 2) * 0.52 + 0.2;
// Classification
sectionHeader(slide, C2, y, CW, "Classification of Rasayana");
y += 0.65;
const classTable = [
["Type", "Relevance to Asthma"],
["Naimittika Rasayana\n(Disease-specific)", "Direct — treats Tamaka Shwasa\n[C.S. Chi.1]"],
["Kamya Rasayana\n(Desired benefits)", "Bala Vardhan, Vyadhikshamatva"],
["Kutipraveshika\n(Indoor regimen)", "Best — for severe/chronic cases\n[C.S. Chi.1/4/28]"],
["Vatatapika\n(Outdoor/ambulatory)", "For mild-moderate cases in children"],
];
const ctCW = [5.0, 5.6];
classTable.forEach((row, ri) => {
let cx = C2;
row.forEach((cell, ci) => {
const isH = ri === 0;
cardBox(slide, cx, y + ri * 0.7, ctCW[ci], 0.68,
isH ? C.forestGreen : (ri % 2 === 0 ? "F6FBF7" : "EAF5EE"),
isH ? C.forestGreen : C.lightGreen);
slide.addText(cell, {
x: cx + 0.08, y: y + ri * 0.7 + 0.02, w: ctCW[ci] - 0.16, h: 0.64,
fontSize: 13, bold: isH, color: isH ? C.white : C.darkText,
align: "left", valign: "middle"
});
cx += ctCW[ci];
});
});
y += classTable.length * 0.7 + 0.25;
// Classical Drugs
sectionHeader(slide, C2, y, CW, "4. Key Rasayana Drugs for Shwasa");
y += 0.65;
const drugs = [
{
name: "Chyawanprasha Avaleha",
ref: "C.S. Chikitsa Sthana 1/1/62-74",
desc: "Paramukta Rasayana • Indicated for Kasa, Shwasa, Kshataksheena, Uroroga\nKey ingredients: Amalaki, Pippali, Guduchi, Ashwagandha, Dashamula",
color: "E8F4F0"
},
{
name: "Agastya Haritaki Rasayana",
ref: "C.S. Chikitsa Sthana 17/57-62",
desc: "Specific for Kasa-Shwasa • Rasayana for Pranavaha Srotas\nIngredients: 100 Haritaki + Dashamula + Pippali + Shunthi + Ghrita + Honey",
color: "EAF0FB"
},
{
name: "Pippali Rasayana",
ref: "C.S. Chikitsa Sthana 1/3/32-35",
desc: "Vardhamana Pippali — graduated dosing\nDeepana-Pachana → corrects Ama → unblocks Pranavaha Srotas",
color: "FFF0E6"
},
{
name: "Vasa Avaleha",
ref: "C.S. Chi.1/3; A.H. Chi.",
desc: "Rasayana for Pranavaha Srotas • Avaleha form = oral-mucosal delivery\nBronchodilatory + expectorant + immunomodulator",
color: "F0EBF8"
},
];
drugs.forEach((d, i) => {
const dy = y + i * 1.65;
cardBox(slide, C2, dy, CW, 1.58, d.color, C.midGreen);
slide.addText(d.name, { x: C2 + 0.12, y: dy + 0.06, w: CW - 0.24, h: 0.38, fontSize: 16, bold: true, color: C.deepGreen, valign: "middle" });
slide.addText(d.ref, { x: C2 + 0.12, y: dy + 0.44, w: CW - 0.24, h: 0.28, fontSize: 13, italic: true, color: C.rust, valign: "middle" });
slide.addText(d.desc, { x: C2 + 0.12, y: dy + 0.72, w: CW - 0.24, h: 0.78, fontSize: 13, color: C.darkText, valign: "top" });
});
y += drugs.length * 1.65 + 0.2;
// ══════════════════════════════════════════════════════════════════════════════
// COLUMN 3 — Kaumarabhritya Perspective + Modern Correlation + Protocol + Conclusion
// ══════════════════════════════════════════════════════════════════════════════
y = TOP;
// 5. Kaumarabhritya Perspective
sectionHeader(slide, C3, y, CW, "5. Kaumarabhritya Perspective");
y += 0.65;
cardBox(slide, C3, y, CW, 2.2, "EAF5EE", C.lightGreen);
bodyText(slide, C3 + 0.12, y + 0.08, CW - 0.24, 2.1, [
{ text: "Tamaka Shwasa in Children\n", options: { bold: true, color: C.forestGreen, fontSize: 16 } },
{ text: "• Peak prevalence: ", options: {} }, { text: "2–10 years", options: { bold: true } },
{ text: "\n• Boys aged 5–14 yrs: 1.3× higher risk of asthma mortality\n", options: {} },
{ text: "• Kapha-dominant Prakriti of Bala", options: { bold: true } },
{ text: " → higher susceptibility\n", options: {} },
{ text: "• Immature Agni + allergen exposure → recurrent Shwasa\n\n", options: {} },
{ text: "Why Rasayana in Children?\n", options: { bold: true, color: C.forestGreen } },
{ text: "Repeated attacks → Dhatukshaya → needs Rasayana to replenish tissue vitality\n", options: {} },
{ text: "Steroid-sparing effect: ", options: { bold: true } },
{ text: "Rasayana drugs are proven immunomodulators\n", options: {} },
{ text: "Nitya Sevana: ", options: { bold: true } },
{ text: "Daily use reduces intensity & frequency of attacks", options: {} }
], { fontSize: 14, lineSpacingMultiple: 1.25 });
y += 2.3;
// Swarna Prashan
sectionHeader(slide, C3, y, CW, "Swarna Prashan — Kaumarabhritya's Signature Rasayana");
y += 0.65;
cardBox(slide, C3, y, CW, 2.0, "FFFBE8", C.gold);
slide.addText([
{ text: '"Suvarna prashana hi etat medha agni bala vardhanam,\nayushyam mangalam punyam, vrushyam varna bala pradam"\n', options: { italic: true, bold: true, color: C.deepGreen, fontSize: 14 } },
{ text: "[Kashyapa Samhita, Leha Adhyaya]\n\n", options: { color: C.rust, fontSize: 13, bold: true } },
{ text: "• Gold (colloidal) + Vacha, Brahmi, Ashwagandha, Ghrita, Honey\n", options: { fontSize: 13 } },
{ text: "• Administered on Pushya Nakshatra (monthly)\n", options: { fontSize: 13 } },
{ text: "• Enhances Vyadhikshamatva — IgE regulation, phagocytic activity\n", options: { fontSize: 13 } },
{ text: "• Indicated for children <5 yrs with recurrent Shwasa & allergic tendencies", options: { fontSize: 13 } }
], { x: C3 + 0.12, y: y + 0.08, w: CW - 0.24, h: 1.85, valign: "top" });
y += 2.1;
// 6. Modern Pharmacological Correlation (table)
sectionHeader(slide, C3, y, CW, "6. Modern Pharmacological Correlation");
y += 0.65;
const pharmTable = [
["Drug (Sanskrit)", "Botanical Name", "Modern Activity"],
["Amalaki", "Emblica officinalis", "Antioxidant, Immunomodulator, Vit C"],
["Ashwagandha", "Withania somnifera", "NF-κB inhibition, Mast cell stabilization"],
["Guduchi", "Tinospora cordifolia", "Th1/Th2 balance, Anti-allergic"],
["Pippali", "Piper longum", "Bronchodilatory, Piperine bioenhancer"],
["Vasa", "Adhatoda vasica", "Vasicine → Bronchodilation, Mucolytic"],
["Haritaki", "Terminalia chebula", "Anti-inflammatory, Srotas shodhana"],
["Pushkara Moola", "Inula racemosa", "Isoalantolactone → Anti-asthmatic"],
];
const ptCW = [3.2, 4.0, 3.5];
pharmTable.forEach((row, ri) => {
let cx = C3;
row.forEach((cell, ci) => {
const isH = ri === 0;
cardBox(slide, cx, y + ri * 0.46, ptCW[ci], 0.44,
isH ? C.midGreen : (ri % 2 === 0 ? "F3FBF5" : "E8F5EE"),
isH ? C.midGreen : C.lightGreen);
slide.addText(cell, {
x: cx + 0.06, y: y + ri * 0.46 + 0.02, w: ptCW[ci] - 0.12, h: 0.4,
fontSize: isH ? 13 : 12, bold: isH || ci === 0,
color: isH ? C.white : C.darkText, align: "left", valign: "middle"
});
cx += ptCW[ci];
});
});
y += pharmTable.length * 0.46 + 0.25;
// 7. Treatment Protocol
sectionHeader(slide, C3, y, CW, "7. Rasayana Protocol in Childhood Shwasa");
y += 0.65;
const steps = [
{ step: "1", title: "Shodhana First", desc: "Snehana (Bala Taila Abhyanga) + Virechana (Trivrit Leha) + Nasya (Anu Taila)", ref: "[C.S. Chi.1/4]" },
{ step: "2", title: "Naimittika Rasayana", desc: "Chyawanprasha (1-2 tsp + warm milk, BD) or Agastya Haritaki Rasayana (6-12g BD with honey)", ref: "[C.S. Chi.1/1, 17]" },
{ step: "3", title: "Swarna Prashan", desc: "Monthly on Pushya Nakshatra for children <5 yrs — Vyadhikshamatva enhancement", ref: "[Kashyapa Samhita]" },
{ step: "4", title: "Ritu Anusara", desc: "Seasonal administration — Sharad & Hemanta Ritu (autumn-winter, peak asthma season)", ref: "[JETIR 2023]" },
];
steps.forEach((s, i) => {
const sy = y + i * 1.0;
// Number circle
slide.addShape(pres.ShapeType.ellipse, { x: C3, y: sy + 0.05, w: 0.55, h: 0.55, fill: { color: C.forestGreen }, line: { color: C.forestGreen } });
slide.addText(s.step, { x: C3, y: sy + 0.05, w: 0.55, h: 0.55, fontSize: 18, bold: true, color: C.white, align: "center", valign: "middle" });
cardBox(slide, C3 + 0.65, sy, CW - 0.65, 0.9, "F5FBF7", C.lightGreen);
slide.addText([
{ text: s.title + " — ", options: { bold: true, color: C.forestGreen } },
{ text: s.desc, options: {} },
{ text: " " + s.ref, options: { italic: true, color: C.rust, fontSize: 12 } }
], { x: C3 + 0.75, y: sy + 0.06, w: CW - 0.85, h: 0.82, fontSize: 13, valign: "middle", lineSpacingMultiple: 1.2 });
});
y += steps.length * 1.0 + 0.25;
// 8. Epigenetic Evidence
sectionHeader(slide, C3, y, CW, "8. Scientific Evidence");
y += 0.65;
cardBox(slide, C3, y, CW, 1.3, "F0EBF8", "9B59B6");
slide.addText([
{ text: "Epigenetic Evidence (2023): ", options: { bold: true, color: "6C3483", fontSize: 14 } },
{ text: "Bhat S et al. (J Ayurveda Integr Med 2023; PMID: 37018893) demonstrated Ayurvedic intervention in bronchial asthma produces ", options: { fontSize: 13 } },
{ text: "genome-wide DNA methylation changes", options: { bold: true, fontSize: 13, color: C.rust } },
{ text: " in immune-process transcription factors — suggesting Rasayana acts at an ", options: { fontSize: 13 } },
{ text: "epigenetic level", options: { bold: true, fontSize: 13 } },
{ text: " beyond mere symptomatic relief. Avaleha as Pranavaha Srotas Rasayana (oral-mucosal targeted delivery) — PMC 3215424, IPGT&RA Jamnagar.", options: { fontSize: 13 } }
], { x: C3 + 0.12, y: y + 0.08, w: CW - 0.24, h: 1.2, valign: "top" });
y += 1.4;
// 9. Conclusion
sectionHeader(slide, C3, y, CW, "9. Conclusion");
y += 0.65;
cardBox(slide, C3, y, CW, 4.8, C.deepGreen, C.forestGreen);
const conclusions = [
"Tamaka Shwasa = Yapya Vyadhi — manageable, not permanently curable (mirrors modern asthma definition)",
"Shodhana → Rasayana is the classical management sequence",
"Naimittika Rasayana drugs (Chyawanprasha, Agastya Haritaki, Pippali) provide disease-specific Pranavaha Srotas rejuvenation",
"Swarna Prashan — exclusive Kaumarabhritya Rasayana — confers Vyadhikshamatva and reduces allergic reactivity",
"Nitya Sevana + Ritu Anusara reduces attack intensity and frequency",
"Modern pharmacology validates Rasayana dravyas as immunomodulatory, anti-inflammatory, adaptogenic & epigenetically active",
"Rasayana offers a SAFE, STEROID-SPARING long-term control strategy for childhood asthma"
];
conclusions.forEach((c, i) => {
slide.addText([
{ text: "✦ ", options: { color: C.gold, fontSize: 14, bold: true } },
{ text: c, options: { color: C.white, fontSize: 13 } }
], {
x: C3 + 0.15, y: y + 0.12 + i * 0.64, w: CW - 0.3, h: 0.58,
valign: "top"
});
});
y += 4.9;
// ══════════════════════════════════════════════════════════════════════════════
// REFERENCES FOOTER BAND
// ══════════════════════════════════════════════════════════════════════════════
const refY = 46.5;
slide.addShape(pres.ShapeType.rect, {
x: 0, y: refY, w: 36, h: 1.3,
fill: { color: C.slate },
line: { color: C.slate }
});
slide.addText("References: ", {
x: 0.3, y: refY + 0.08, w: 2.5, h: 0.35, fontSize: 13, bold: true, color: C.gold
});
const refs = [
"1. C.S. Chi.1/1/7-8 (Rasayana Def.)",
"2. C.S. Chi.1/1/62-74 (Chyawanprasha)",
"3. C.S. Chi.17/57-62 (Agastya Haritaki)",
"4. C.S. Chi.1/3/32-35 (Pippali Rasayana)",
"5. S.S. Su.1/15 (Rasayana Def.)",
"6. A.H. Ni.4/3 (Tamaka Shwasa Nidana)",
"7. Kashyapa Samhita, Leha Adhyaya (Swarna Prashan)",
"8. Bhat S et al. J Ayurveda Integr Med 2023 [PMID: 37018893]",
"9. PMC 3215424 — Bharangyadi Avaleha, IPGT&RA Jamnagar",
];
slide.addText(refs.join(" | "), {
x: 0.3, y: refY + 0.43, w: 35.4, h: 0.78,
fontSize: 12, color: C.mintGreen,
align: "left", valign: "top"
});
// Gold bottom strip
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 47.8, w: 36, h: 0.2,
fill: { color: C.gold },
line: { color: C.gold }
});
// Save
pres.writeFile({ fileName: "/home/daytona/workspace/rasayana-poster/Rasayana_Therapy_Asthma_Poster.pptx" })
.then(() => console.log("Poster saved successfully."))
.catch(err => console.error("Error:", err));
cd /home/daytona/workspace/rasayana-poster && node create_poster.js
ls -lh /home/daytona/workspace/rasayana-poster/
Rasayana Therapy Asthma Poster
Presentation · PPTX
Prepare poster of A3 size with concise and more informative information with suitable pictures
Chyawanprash Amalaki Ayurvedic Rasayana herbal medicine
bronchial asthma lungs airways inflammation diagram
Pippali Ashwagandha Guduchi Ayurvedic herbs respiratory
Swarna prashan gold immunomodulation child pediatric Ayurveda
~/rasayana-poster/create_a3_poster.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// ── Fetch images as base64 ────────────────────────────────────────────────────
const imgUrls = [
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_d73a19b509d91931f102143741d61751c4ddf666192b89e6ef9901711326507f.jpg", // asthma pathophysiology
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_f1332d400074c8fe7d7e4bcff6f48424d688cb4a1c443c14a16987950c409b9d.jpg", // Ayurveda Rasayana Chikitsa
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_c05d3a5b02864520896cf14181ac9a9abb147d1bbd08505a6ab373f9c9fbe92d.jpg", // Ashwagandha
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_093fca0c27fe5524ef1627e745b7c38592ac56f5cec59ed19076f4a58d8cf75b.jpg", // pediatric chest exam
];
console.log("Fetching images...");
const imgs = JSON.parse(
execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js ${imgUrls.map(u => `"${u}"`).join(" ")}`
).toString()
);
console.log("Images fetched:", imgs.map(i => i.error ? "ERROR: " + i.error : "OK").join(", "));
// ── PptxGen Setup ─────────────────────────────────────────────────────────────
const pres = new pptxgen();
// A3 Landscape = 16.54" × 11.69"
pres.defineLayout({ name: "A3L", width: 16.54, height: 11.69 });
pres.layout = "A3L";
pres.title = "Rasayana Therapy in Long-term Asthma Control";
const slide = pres.addSlide();
// ── PALETTE ───────────────────────────────────────────────────────────────────
const C = {
headerBg: "1B3A2D", // very dark green
headerAcct: "C9A84C", // gold
secHdr: "2D6A4F", // forest green
midGreen: "40916C",
lightGreen: "74C69D",
mintBg: "EAF5EE",
cream: "FAFAF5",
gold: "C9A84C",
goldLight: "F5E6B4",
rust: "9B2226",
darkText: "1A1A1A",
white: "FFFFFF",
tablHdr: "344E41",
purple: "5A189A",
purpleLight:"F3E8FF",
};
// ── BACKGROUND ────────────────────────────────────────────────────────────────
slide.addShape(pres.ShapeType.rect, {
x:0, y:0, w:16.54, h:11.69,
fill:{ color: C.cream }, line:{ color: C.cream }
});
// ── HEADER BAND ───────────────────────────────────────────────────────────────
slide.addShape(pres.ShapeType.rect, {
x:0, y:0, w:16.54, h:1.28,
fill:{ color: C.headerBg }, line:{ color: C.headerBg }
});
// gold accent line
slide.addShape(pres.ShapeType.rect, {
x:0, y:1.28, w:16.54, h:0.055,
fill:{ color: C.gold }, line:{ color: C.gold }
});
// Main title
slide.addText("Rasayana Therapy in Long-term Asthma Control", {
x:0.2, y:0.05, w:11.8, h:0.72,
fontSize:28, bold:true, color:C.white, fontFace:"Georgia",
align:"left", valign:"middle"
});
// Subtitle
slide.addText("Tamaka Shwasa (Bronchial Asthma) — Ayurvedic Evidence Review", {
x:0.2, y:0.75, w:11.8, h:0.42,
fontSize:13, bold:false, color:C.lightGreen, fontFace:"Calibri",
align:"left", valign:"middle"
});
// Dept info (right side of header)
slide.addText([
{ text: "PG Scholar\n", options:{ bold:true, fontSize:12 } },
{ text: "Department of Kaumarabhritya\n", options:{ fontSize:11 } },
{ text: "Institute of Ayurveda", options:{ fontSize:10 } }
], {
x:12.1, y:0.08, w:4.2, h:1.1,
fontSize:11, color:C.mintBg, fontFace:"Calibri",
align:"right", valign:"middle"
});
// Sanskrit quote bar
slide.addShape(pres.ShapeType.rect, {
x:0, y:1.335, w:16.54, h:0.32,
fill:{ color: C.goldLight }, line:{ color: C.gold, width:0.5 }
});
slide.addText([
{ text:'"Labhopayo hi shastaanaam rasaadeenam rasayanam" ', options:{ italic:true, bold:true, color:C.headerBg, fontSize:11 } },
{ text:"— The means to achieve optimum utilisation of Rasa (nutritive essence) is Rasayana. ", options:{ color:C.darkText, fontSize:10 } },
{ text:"[Charaka Samhita, Chikitsa Sthana 1/1/7-8]", options:{ bold:true, color:C.rust, fontSize:10 } },
], {
x:0.2, y:1.34, w:16.14, h:0.3,
align:"center", valign:"middle"
});
// ── LAYOUT CONSTANTS ──────────────────────────────────────────────────────────
const ROW1Y = 1.72; // top of content
const COL_W = 5.25;
const C1x = 0.15, C2x = 5.58, C3x = 10.96;
const GAP = 0.08;
function secH(slide, x, y, w, label, color) {
color = color || C.secHdr;
slide.addShape(pres.ShapeType.rect, {
x, y, w, h:0.33,
fill:{ color }, line:{ color },
rectRadius:0.04
});
slide.addText(label, {
x:x+0.1, y, w:w-0.2, h:0.33,
fontSize:11.5, bold:true, color:C.white,
fontFace:"Calibri", align:"left", valign:"middle", margin:0
});
}
function card(slide, x, y, w, h, bg, border) {
slide.addShape(pres.ShapeType.rect, {
x, y, w, h,
fill:{ color: bg || C.mintBg },
line:{ color: border || C.lightGreen, width:0.75 },
rectRadius:0.06,
shadow:{ type:"outer", blur:3, offset:1.5, angle:45, color:"BBBBBB", opacity:0.25 }
});
}
function txt(slide, x, y, w, h, runs, opts) {
slide.addText(runs, {
x, y, w, h,
fontSize: opts.fs || 10,
fontFace:"Calibri",
color: opts.color || C.darkText,
align: opts.align || "left",
valign: opts.valign || "top",
lineSpacingMultiple: opts.ls || 1.18,
...opts
});
}
// ══════════════════════════════════════════════════════════════════════════════
// COLUMN 1 (x = 0.15)
// ══════════════════════════════════════════════════════════════════════════════
let y1 = ROW1Y;
// ── Section 1: Introduction + Epidemiology ──────────────────────────────────
secH(slide, C1x, y1, COL_W, "1. Introduction — Tamaka Shwasa (Bronchial Asthma)");
y1 += 0.38;
card(slide, C1x, y1, COL_W, 1.12, C.mintBg, C.lightGreen);
txt(slide, C1x+0.1, y1+0.06, COL_W-0.2, 1.0, [
{ text:"Tamaka Shwasa", options:{ bold:true, color:C.secHdr } },
{ text:" is one of the five types of Shwasa Roga. Classified as a ", options:{} },
{ text:"Yapya Vyadhi", options:{ bold:true, italic:true, color:C.rust } },
{ text:" (manageable, not permanently curable) — a concept matching modern asthma definition.\n\n", options:{} },
{ text:"Pathology: ", options:{ bold:true } },
{ text:"Vata-Kapha vitiation → obstruction of Pranavaha Srotas → Pratiloma Gati of Prana Vayu → wheezing, dyspnoea, coryza\n", options:{} },
{ text:'[C.S. Chi.17] | [A.H. Ni.4/3]', options:{ bold:true, color:C.rust, fontSize:9 } }
], { fs:10, ls:1.2 });
y1 += 1.18;
// ── Section 2: Samprapti ──────────────────────────────────────────────────────
secH(slide, C1x, y1, COL_W, "2. Samprapti (Pathogenesis)");
y1 += 0.38;
const flowBoxes = ["Ruksha/Sheeta\nAhara-Vihara", "Vata\nPrakopa", "Kapha\nUpsurge", "Pranavaha\nSrotas Block", "Tamaka\nShwasa"];
const fW = (COL_W - 0.15) / 5.4;
flowBoxes.forEach((label, i) => {
const fx = C1x + i * (fW + 0.08);
const isLast = i === flowBoxes.length - 1;
slide.addShape(pres.ShapeType.rect, {
x: fx, y: y1, w: fW, h: 0.56,
fill:{ color: isLast ? C.rust : C.secHdr },
line:{ color: isLast ? C.rust : C.secHdr },
rectRadius: 0.05
});
slide.addText(label, {
x: fx, y: y1, w: fW, h: 0.56,
fontSize: 8.5, bold: isLast, color: C.white,
align:"center", valign:"middle"
});
if (!isLast) {
slide.addText("▶", {
x: fx + fW, y: y1+0.13, w: 0.1, h: 0.3,
fontSize: 10, color: C.midGreen, align:"center"
});
}
});
y1 += 0.7;
// ── Section 3: Nidana Comparison Table ───────────────────────────────────────
secH(slide, C1x, y1, COL_W, "3. Nidana — Comparative Classical References");
y1 += 0.38;
const nRows = [
["Causative Factor", "C.S.", "S.S.", "A.H.", "M.N."],
["Rukshana / dry food", "✓","✓","—","✓"],
["Sheeta Ahara / cold food","✓","✓","—","✓"],
["Dhuma/Raja (smoke/dust)","✓","✓","✓","✓"],
["Ativyayama (excess exertion)","✓","✓","—","✓"],
["Sheeta Sthana (cold climate)","✓","—","✓","✓"],
];
const nCW = [2.8,0.6,0.6,0.6,0.6];
const nRH = 0.3;
nRows.forEach((row, ri) => {
let cx = C1x;
row.forEach((cell, ci) => {
const isH = ri === 0;
slide.addShape(pres.ShapeType.rect, {
x: cx, y: y1+ri*nRH, w: nCW[ci], h: nRH,
fill:{ color: isH ? C.tablHdr : (ri%2===0 ? C.white : "EEF8F2") },
line:{ color: isH ? C.tablHdr : "C8E6C9", width:0.5 }
});
slide.addText(cell, {
x: cx+0.04, y: y1+ri*nRH, w: nCW[ci]-0.08, h: nRH,
fontSize: isH?9:9, bold: isH || ci===0,
color: isH ? C.white : (cell==="✓" ? C.secHdr : (cell==="—"?"AAAAAA":C.darkText)),
align: ci===0 ? "left":"center", valign:"middle"
});
cx += nCW[ci];
});
});
y1 += nRows.length * nRH + 0.12;
// ── Pediatric Image ────────────────────────────────────────────────────────────
const imgPed = imgs[3];
if (!imgPed.error) {
card(slide, C1x, y1, COL_W, 2.12, C.white, C.lightGreen);
slide.addImage({ data: imgPed.base64, x: C1x+0.06, y: y1+0.06, w: 2.1, h: 1.95 });
txt(slide, C1x+2.22, y1+0.08, 2.94, 1.95, [
{ text: "Kaumarabhritya Perspective\n", options:{ bold:true, color:C.secHdr, fontSize:11 } },
{ text: "• Peak prevalence: 2–10 years\n", options:{} },
{ text: "• Boys 5–14 yrs: 1.3× mortality risk\n", options:{} },
{ text: "• Bala Prakriti = Kapha dominant\n → higher susceptibility\n", options:{} },
{ text: "• Immature Agni + allergen exposure\n → recurrent Shwasa\n", options:{} },
{ text: "Ref: ", options:{ bold:true } },
{ text: "A.H. Uttarasthana, Kaumarabhritya Adhyaya", options:{ italic:true, color:C.rust } }
], { fs:9.5, ls:1.2 });
}
y1 += 2.18;
// ══════════════════════════════════════════════════════════════════════════════
// COLUMN 2 (x = 5.58)
// ══════════════════════════════════════════════════════════════════════════════
let y2 = ROW1Y;
// ── Asthma Pathophysiology Image ─────────────────────────────────────────────
secH(slide, C2x, y2, COL_W, "4. Asthma Pathophysiology — Vyadhi Vijnana");
y2 += 0.38;
const imgAsthma = imgs[0];
if (!imgAsthma.error) {
card(slide, C2x, y2, COL_W, 3.1, C.white, C.lightGreen);
slide.addImage({ data: imgAsthma.base64, x: C2x+0.08, y: y2+0.08, w: 5.08, h: 2.92 });
}
y2 += 3.16;
// Caption under image
slide.addText([
{ text:"Allergen → IgE-mediated → Mast cell activation → Histamine/Leukotrienes → Bronchospasm + Airway Remodeling\n", options:{ fontSize:8.5, color:"666666" } },
{ text:"Ayurvedic parallel: ", options:{ bold:true, fontSize:9, color:C.secHdr } },
{ text:"Vata-Kapha → Srotodushti → Pinasa + Shwasa + Ghurghurak (wheezing)", options:{ fontSize:9, color:C.darkText } }
], { x:C2x, y:y2, w:COL_W, h:0.42, align:"left", valign:"top" });
y2 += 0.48;
// ── Section 5: Rasayana Concept ───────────────────────────────────────────────
secH(slide, C2x, y2, COL_W, "5. Rasayana — Classification & Benefits");
y2 += 0.38;
// Two def cards side by side
card(slide, C2x, y2, 2.56, 0.9, "FFFBE8", C.gold);
txt(slide, C2x+0.08, y2+0.05, 2.4, 0.82, [
{ text:"Naimittika Rasayana\n", options:{ bold:true, color:C.secHdr, fontSize:10 } },
{ text:"Disease-specific rejuvenation\n", options:{ fontSize:9 } },
{ text:"→ Direct relevance to Tamaka Shwasa", options:{ italic:true, fontSize:9, color:C.rust } }
], { fs:9.5, ls:1.1 });
card(slide, C2x+2.65, y2, 2.56, 0.9, "EDF6EE", C.lightGreen);
txt(slide, C2x+2.73, y2+0.05, 2.4, 0.82, [
{ text:"Kamya Rasayana\n", options:{ bold:true, color:C.secHdr, fontSize:10 } },
{ text:"Vyadhikshamatva (Immunity)\n", options:{ fontSize:9 } },
{ text:"Bala Vardhan + Ojas strengthening", options:{ italic:true, fontSize:9, color:C.rust } }
], { fs:9.5, ls:1.1 });
y2 += 1.0;
// Benefits grid (6 boxes in 3x2)
const bens = [
["Deergham Ayuh","Longevity"],
["Swara","Good voice → Shwasa!"],
["Arogya","Disease-free state"],
["Deha Bala","Physical strength"],
["Medha","Intelligence"],
["Vyadhikshamatva","Immune resilience"],
];
const bW = (COL_W-0.12)/3, bH = 0.5;
bens.forEach((b, i) => {
const bx = C2x + (i%3)*(bW+0.06);
const by = y2 + Math.floor(i/3)*(bH+0.06);
card(slide, bx, by, bW, bH, i%2===0?"E8F5EE":"F0FAF6", C.midGreen);
txt(slide, bx+0.06, by+0.04, bW-0.12, bH-0.08, [
{ text:b[0]+"\n", options:{ bold:true, color:C.secHdr, fontSize:9.5 } },
{ text:b[1], options:{ fontSize:9, color:C.darkText } }
], { fs:9.5, ls:1.0 });
});
y2 += 2*(bH+0.06) + 0.06;
// ── Ayurveda Rasayana Image ───────────────────────────────────────────────────
secH(slide, C2x, y2, COL_W, "6. Rasayana Chikitsa — Integrative Approach");
y2 += 0.38;
const imgRas = imgs[1];
if (!imgRas.error) {
card(slide, C2x, y2, COL_W, 2.0, C.white, C.lightGreen);
slide.addImage({ data: imgRas.base64, x: C2x+0.06, y: y2+0.06, w: 5.1, h: 1.88 });
}
y2 += 2.06;
// ══════════════════════════════════════════════════════════════════════════════
// COLUMN 3 (x = 10.96)
// ══════════════════════════════════════════════════════════════════════════════
let y3 = ROW1Y;
// ── Section 7: Key Rasayana Drugs ────────────────────────────────────────────
secH(slide, C3x, y3, COL_W, "7. Key Rasayana Drugs for Shwasa");
y3 += 0.38;
const drugs = [
{ name:"Chyawanprasha Avaleha", ref:"C.S. Chi.1/1/62-74",
desc:"Paramukta Rasayana — indicated for Kasa, Shwasa, Uroroga.\nKey herbs: Amalaki, Pippali, Guduchi, Ashwagandha, Dashamula", color:"E8F4F0" },
{ name:"Agastya Haritaki Rasayana", ref:"C.S. Chi.17/57-62",
desc:"Specific Rasayana for Pranavaha Srotas. 100 Haritaki + Dashamula + Pippali + Shunthi + Ghrita + Honey", color:"EAF0FB" },
{ name:"Pippali (Vardhamana) Rasayana", ref:"C.S. Chi.1/3/32-35",
desc:"Graduated dosing → Deepana-Pachana → corrects Ama → unblocks Pranavaha Srotas\nPiperine: bioenhancer, bronchodilator", color:"FFF0E6" },
{ name:"Vasa Avaleha", ref:"C.S. Chi.1/3; A.H. Chi.",
desc:"Rasayana for Pranavaha Srotas via oral-mucosal delivery.\nVasicine: bronchodilatory + mucolytic + expectorant", color:"F0EBF8" },
];
drugs.forEach((d, i) => {
const dy = y3 + i*1.42;
card(slide, C3x, dy, COL_W, 1.36, d.color, C.midGreen);
// Numbered badge
slide.addShape(pres.ShapeType.ellipse, { x:C3x+0.08, y:dy+0.08, w:0.36, h:0.36, fill:{ color:C.secHdr }, line:{ color:C.secHdr } });
slide.addText(String(i+1), { x:C3x+0.08, y:dy+0.08, w:0.36, h:0.36, fontSize:11, bold:true, color:C.white, align:"center", valign:"middle" });
slide.addText(d.name, { x:C3x+0.5, y:dy+0.06, w:COL_W-0.6, h:0.3, fontSize:11, bold:true, color:C.headerBg, valign:"middle" });
slide.addText(d.ref, { x:C3x+0.5, y:dy+0.36, w:COL_W-0.6, h:0.22, fontSize:9, italic:true, color:C.rust, valign:"middle" });
slide.addText(d.desc, { x:C3x+0.12, y:dy+0.6, w:COL_W-0.22, h:0.7, fontSize:9.5, color:C.darkText, valign:"top" });
});
y3 += drugs.length*1.42 + 0.1;
// ── Section 8: Swarna Prashan ─────────────────────────────────────────────────
secH(slide, C3x, y3, COL_W, "8. Swarna Prashan — Kaumarabhritya's Signature Rasayana", C.gold.replace("#","") ? "#C9A84C".replace("#","") : C.tablHdr);
y3 += 0.38;
card(slide, C3x, y3, COL_W, 1.45, "FFFBE8", C.gold);
txt(slide, C3x+0.1, y3+0.06, COL_W-0.2, 1.34, [
{ text:'"Suvarna prashana hi etat medha agni bala vardhanam..."\n', options:{ italic:true, bold:true, color:C.headerBg, fontSize:10 } },
{ text:"[Kashyapa Samhita, Leha Adhyaya]\n\n", options:{ bold:true, color:C.rust, fontSize:9 } },
{ text:"• Gold (colloidal) + Vacha, Brahmi, Ashwagandha, Ghrita, Honey • Pushya Nakshatra (monthly)\n", options:{ fontSize:9.5 } },
{ text:"• Enhances Vyadhikshamatva — IgE regulation, phagocytic activity\n", options:{ fontSize:9.5 } },
{ text:"• For children <5 yrs with recurrent Shwasa & allergic tendencies", options:{ fontSize:9.5 } }
], { fs:9.5, ls:1.2 });
y3 += 1.52;
// ── Section 9: Modern Pharmacological Correlation ────────────────────────────
secH(slide, C3x, y3, COL_W, "9. Modern Pharmacological Correlation");
y3 += 0.38;
// Ashwagandha image + small table
const imgAshwa = imgs[2];
const tableStartX = C3x;
if (!imgAshwa.error) {
card(slide, C3x, y3, 2.1, 1.85, C.white, C.lightGreen);
slide.addImage({ data: imgAshwa.base64, x: C3x+0.05, y: y3+0.05, w: 2.0, h: 1.75 });
}
// Mini pharmacology table
const pRows = [
["Drug","Modern Action"],
["Amalaki","Antioxidant, Vit C, Immunomod."],
["Ashwagandha","NF-κB ↓, Mast cell stabilize"],
["Guduchi","Th1/Th2 balance, Anti-allergic"],
["Pippali","Bronchodilator, Piperine"],
["Vasa","Vasicine → Bronchodilation"],
["Haritaki","Anti-inflammatory, Srotas↑"],
];
const pCW2 = [1.46, 2.62];
pRows.forEach((row, ri) => {
const px = C3x + 2.16;
const py = y3 + ri*0.265;
const isH = ri===0;
row.forEach((cell, ci) => {
slide.addShape(pres.ShapeType.rect, {
x: px + (ci===0?0:pCW2[0]), y: py, w: pCW2[ci], h: 0.255,
fill:{ color: isH ? C.tablHdr : (ri%2===0?C.white:"EEF8F3") },
line:{ color: isH?C.tablHdr:"C8E6C9", width:0.5 }
});
slide.addText(cell, {
x: px+(ci===0?0.04:pCW2[0]+0.04), y: py+0.01, w: pCW2[ci]-0.08, h: 0.235,
fontSize: isH?8.5:8.5, bold: isH||ci===0,
color: isH?C.white:C.darkText,
align:"left", valign:"middle"
});
});
});
y3 += 1.9;
// ── Section 10: Treatment Protocol ───────────────────────────────────────────
secH(slide, C3x, y3, COL_W, "10. Rasayana Protocol in Childhood Shwasa");
y3 += 0.38;
const steps = [
{ n:"1", t:"Shodhana First", d:"Snehana → Virechana (Trivrit Leha) → Nasya (Anu Taila) [C.S. Chi.1/4]" },
{ n:"2", t:"Naimittika Rasayana", d:"Chyawanprasha 1-2 tsp + warm milk BD | Agastya Haritaki 6-12g BD" },
{ n:"3", t:"Swarna Prashan", d:"Monthly on Pushya Nakshatra for <5 yrs [Kashyapa Samhita]" },
{ n:"4", t:"Ritu Anusara", d:"Seasonal — Sharad & Hemanta Ritu (peak asthma season)" },
];
steps.forEach((s, i) => {
const sy = y3 + i*0.55;
slide.addShape(pres.ShapeType.ellipse, { x:C3x, y:sy+0.06, w:0.38, h:0.38, fill:{ color:C.secHdr }, line:{ color:C.secHdr } });
slide.addText(s.n, { x:C3x, y:sy+0.06, w:0.38, h:0.38, fontSize:11, bold:true, color:C.white, align:"center", valign:"middle" });
card(slide, C3x+0.44, sy, COL_W-0.44, 0.48, "F3FBF5", C.lightGreen);
txt(slide, C3x+0.52, sy+0.04, COL_W-0.6, 0.42, [
{ text:s.t+" — ", options:{ bold:true, color:C.secHdr, fontSize:10 } },
{ text:s.d, options:{ fontSize:9.5 } }
], { fs:9.5, ls:1.1 });
});
y3 += steps.length*0.55 + 0.1;
// ══════════════════════════════════════════════════════════════════════════════
// CONCLUSION BAND
// ══════════════════════════════════════════════════════════════════════════════
const concY = 10.78;
slide.addShape(pres.ShapeType.rect, {
x:0, y:concY, w:16.54, h:0.62,
fill:{ color:C.headerBg }, line:{ color:C.headerBg }
});
const conclusions = [
"Tamaka Shwasa = Yapya Vyadhi ↔ Modern asthma (incurable but manageable)",
"Shodhana → Rasayana is the classical sequence",
"Chyawanprasha, Agastya Haritaki, Pippali Rasayana, Vasa Avaleha — Naimittika Rasayana for Pranavaha Srotas",
"Swarna Prashan = Kaumarabhritya exclusive Rasayana for Vyadhikshamatva",
"Epigenetic basis validated [PMID: 37018893]",
];
slide.addText(conclusions.map(c=>"✦ "+c).join(" | "), {
x:0.2, y:concY+0.06, w:16.14, h:0.5,
fontSize:9, bold:false, color:C.white,
fontFace:"Calibri", align:"left", valign:"middle"
});
// ── REFERENCES FOOTER ─────────────────────────────────────────────────────────
const refY = 11.38;
slide.addShape(pres.ShapeType.rect, {
x:0, y:refY, w:16.54, h:0.31,
fill:{ color:C.tablHdr }, line:{ color:C.tablHdr }
});
slide.addText([
{ text:"References: ", options:{ bold:true, color:C.gold, fontSize:8 } },
{ text:"1. C.S. Chi.1/1/7-8 (Rasayana) | 2. C.S. Chi.1/1/62-74 (Chyawanprasha) | 3. C.S. Chi.17/57-62 (Agastya Haritaki) | 4. C.S. Chi.1/3/32-35 (Pippali Rasayana) | 5. S.S. Su.1/15 | 6. A.H. Ni.4/3 | 7. Kashyapa Samhita, Leha Adhyaya | 8. Bhat S et al. J Ayurveda Integr Med 2023 [PMID:37018893]", options:{ color:"D0EAD8", fontSize:8 } }
], { x:0.2, y:refY+0.02, w:16.14, h:0.27, valign:"middle" });
// ══════════════════════════════════════════════════════════════════════════════
// SAVE
// ══════════════════════════════════════════════════════════════════════════════
pres.writeFile({ fileName:"/home/daytona/workspace/rasayana-poster/Rasayana_A3_Poster.pptx" })
.then(() => console.log("✅ A3 Poster saved successfully."))
.catch(err => console.error("❌ Error:", err));
cd /home/daytona/workspace/rasayana-poster && node create_a3_poster.js 2>&1
ls -lh /home/daytona/workspace/rasayana-poster/
Rasayana A3 Poster
Presentation · PPTX
| Image | Location |
|---|---|
| 🫁 Asthma pathophysiology diagram (Allergen → IgE → Mast cells → Bronchospasm → Airway remodeling) | Column 2 |
| 🌿 Ayurveda in Management (Rasayana Chikitsa as central pillar) | Column 2 |
| 🌱 Ashwagandha (Withania somnifera) phytochemistry & mechanism | Column 3 |
| 👶 Pediatric chest auscultation (Kaumarabhritya context) | Column 1 |
Prepare poster of A3 size with concise and more informative information with suitable pictures
normal versus asthmatic airway bronchial cross section inflammation narrowing
Chyawanprash Amalaki herbal Rasayana formulation Ayurveda medicine jar
Ayurvedic herbs Pippali Haritaki Ashwagandha medicinal plants collection
Prepare potrait poster of A3 size with concise and more informative information with suitable pictures of drugs and procedures by classical references
Chyawanprash Amalaki Emblica officinalis Rasayana medicine Ayurveda
Nasya nasal oil instillation Panchakarma Ayurveda procedure treatment
Virechana purgation Shodhana Ayurveda Panchakarma therapy patient
Swarna Prashan gold drops infant child Ayurveda immunization
Scientific botanical illustration of Ayurvedic Rasayana herbs: Amalaki (Emblica officinalis) with green gooseberry fruits, Haritaki (Terminalia chebula) with oval fruits, Pippali (Piper longum) with elongated pepper spikes, Ashwagandha (Withania somnifera) with orange berries, Guduchi (Tinospora cordifolia) vine with heart-shaped leaves, Adhatoda vasica (Vasa) with white flowers — arranged in a clean grid on white background, labeled in English, botanical art style
Ayurvedic treatment procedures illustration: showing Nasya (nasal oil drops being administered to a reclining patient), Virechana (therapeutic purgation with herbal medicine being given), Abhyanga (Ayurvedic oil massage on back), and Swarna Prashan (gold drops being given to infant child) — four clean panels labeled in English, clinical educational illustration style, warm saffron and green color palette
Comparison diagram of normal versus asthmatic bronchus cross-section: left side shows normal wide open airway lumen with healthy epithelium, right side shows asthmatic airway with thickened wall, mucus plugging, narrowed lumen, inflamed tissue, eosinophils, mast cells — clean medical educational infographic, labeled, white background, blue and red color coding
~/rasayana-poster/create_portrait_poster.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// ── Fetch images ──────────────────────────────────────────────────────────────
const urls = [
"https://cdn.orris.care/image-gen/44f3486c9bd64fcda0f7934ecea03d38.png", // herbs
"https://cdn.orris.care/image-gen/ea1c9db8908f4c60a6a7eaa4dc281d24.png", // procedures
"https://cdn.orris.care/image-gen/8eb94864cadd4bfe8d147f9e8e40f630.png", // bronchus cross-section
];
console.log("Fetching images...");
const imgs = JSON.parse(
execSync(`node /home/daytona/skills/shared/scripts/fetch_images.js ${urls.map(u=>`"${u}"`).join(" ")}`).toString()
);
console.log("Images:", imgs.map(i => i.error ? "ERR:"+i.error : "OK").join(", "));
// ── Setup ─────────────────────────────────────────────────────────────────────
const pres = new pptxgen();
// A3 Portrait = 11.69" × 16.54"
pres.defineLayout({ name: "A3P", width: 11.69, height: 16.54 });
pres.layout = "A3P";
pres.title = "Rasayana Therapy in Long-term Asthma Control";
const slide = pres.addSlide();
// ── PALETTE ───────────────────────────────────────────────────────────────────
const BG = "F7F4ED"; // warm parchment
const HDR_DARK = "1B3A2D"; // deep forest green
const HDR_MID = "2D6A4F"; // section header
const HDR_LITE = "40916C"; // sub-header
const ACCENT = "74C69D"; // light green
const MINT_BG = "E8F5EE"; // card fill light
const GOLD = "C9A84C"; // gold accent
const GOLD_LT = "FDF3D0"; // gold light fill
const RUST = "9B2226"; // ref/alert
const WHITE = "FFFFFF";
const DARK_TXT = "1C1C1C";
const SLATE = "344E41";
const PURPLE = "5C3D8F";
const PURP_LT = "EDE7F6";
// ── Helpers ───────────────────────────────────────────────────────────────────
const W = 11.69;
function bg(slide) {
slide.addShape(pres.ShapeType.rect, { x:0,y:0,w:W,h:16.54, fill:{color:BG}, line:{color:BG} });
}
function rect(slide, x,y,w,h, fill, line, radius) {
slide.addShape(pres.ShapeType.rect, {
x,y,w,h,
fill:{color: fill||BG},
line:{color: line||fill||BG, width:0.75},
rectRadius: radius||0
});
}
function secHeader(slide, x,y,w, label, color, textColor) {
rect(slide, x,y,w,0.38, color||HDR_MID, color||HDR_MID, 0.05);
slide.addText(label, {
x:x+0.12, y, w:w-0.24, h:0.38,
fontSize:12.5, bold:true, color: textColor||WHITE,
fontFace:"Calibri", align:"left", valign:"middle", margin:0
});
}
function card(slide, x,y,w,h, fill, border) {
slide.addShape(pres.ShapeType.rect, {
x,y,w,h,
fill:{color:fill||MINT_BG},
line:{color:border||ACCENT, width:0.75},
rectRadius:0.07,
shadow:{type:"outer", blur:3, offset:1.5, angle:45, color:"CCCCCC", opacity:0.3}
});
}
function addTxt(slide, x,y,w,h, runs, fs, color, align, ls) {
slide.addText(runs, {
x,y,w,h,
fontSize:fs||10,
color:color||DARK_TXT,
fontFace:"Calibri",
align:align||"left",
valign:"top",
lineSpacingMultiple:ls||1.2
});
}
// ════════════════════════════════════════════════════════════════════════
// BACKGROUND
// ════════════════════════════════════════════════════════════════════════
bg(slide);
// Left decorative stripe
rect(slide, 0,0,0.18,16.54, HDR_DARK, HDR_DARK);
// Right decorative stripe
rect(slide, 11.51,0,0.18,16.54, HDR_DARK, HDR_DARK);
// ════════════════════════════════════════════════════════════════════════
// HEADER (0 → 2.05")
// ════════════════════════════════════════════════════════════════════════
rect(slide, 0.18,0,11.33,1.9, HDR_DARK, HDR_DARK);
// Gold top bar
rect(slide, 0.18,1.9,11.33,0.07, GOLD, GOLD);
// Title
slide.addText("Rasayana Therapy in Long-term Asthma Control", {
x:0.35,y:0.06,w:11.0,h:0.82,
fontSize:30, bold:true, color:WHITE,
fontFace:"Georgia", align:"center", valign:"middle"
});
// Subtitle
slide.addText("Tamaka Shwasa (Bronchial Asthma) — Ayurvedic Rejuvenation Approach", {
x:0.35,y:0.88,w:11.0,h:0.38,
fontSize:14, color:ACCENT, fontFace:"Calibri", align:"center", valign:"middle"
});
// PG info
slide.addText([
{text:"PG Scholar | Dept. of Kaumarabhritya | Institute of Ayurveda", options:{fontSize:11, color:"D0EAD8"}}
], {x:0.35,y:1.26,w:11.0,h:0.42, align:"center", valign:"middle"});
// Sanskrit banner
rect(slide, 0.18,1.97,11.33,0.42, GOLD_LT, GOLD);
slide.addText([
{text:'"Labhopayo hi shastaanaam rasaadeenam rasayanam" ', options:{italic:true,bold:true,color:HDR_DARK,fontSize:11.5}},
{text:"— That which optimally nourishes Rasa is Rasayana. ", options:{color:DARK_TXT,fontSize:10.5}},
{text:"[C.S. Chi.1/1/7-8]", options:{bold:true,color:RUST,fontSize:10.5}},
], {x:0.3,y:1.98,w:11.1,h:0.4, align:"center", valign:"middle"});
// ════════════════════════════════════════════════════════════════════════
// ROW 1 y=2.5 — INTRODUCTION + BRONCHUS DIAGRAM (2-col)
// ════════════════════════════════════════════════════════════════════════
const R1Y = 2.5;
// ── Col A: Introduction (0.25 → 5.55, w=5.3) ─────────────────────────
secHeader(slide, 0.25,R1Y,5.3, "1. Introduction — Tamaka Shwasa");
let ya = R1Y+0.44;
card(slide, 0.25,ya,5.3,1.68, MINT_BG, ACCENT);
addTxt(slide, 0.38,ya+0.1,5.05,1.52,[
{text:"Tamaka Shwasa", options:{bold:true,color:HDR_DARK,fontSize:11}},
{text:" is one of five types of Shwasa Roga — classified as a ", options:{fontSize:10}},
{text:"Yapya Vyadhi", options:{bold:true,italic:true,color:RUST,fontSize:10}},
{text:" (manageable, not permanently curable), analogous to modern bronchial asthma.\n\n", options:{fontSize:10}},
{text:"Pathology: ", options:{bold:true,fontSize:10}},
{text:"Vata-Kapha vitiation → obstruction of Pranavaha & Udakavaha Srotas → Pratiloma Gati of Prana Vayu → dyspnoea, wheezing, coryza.\n\n", options:{fontSize:10}},
{text:"Types: ", options:{bold:true,fontSize:10}},
{text:"(i) Pratamaka Shwasa — with fever & fainting (Pitta involvement) | (ii) Santamaka Shwasa — nocturnal suffocation ", options:{fontSize:10}},
{text:"[C.S. Chi.17]", options:{bold:true,color:RUST,fontSize:9.5}},
], 10, DARK_TXT, "left", 1.2);
ya += 1.74;
// Samprapti flow
secHeader(slide, 0.25,ya,5.3, "2. Samprapti (Pathogenesis)", SLATE);
ya += 0.42;
const flow = ["Ruksha/Sheeta\nAhara-Vihara","Vata\nPrakopa","Kapha\nUpsurge","Srotas\nObstruction","TAMAKA\nSHWASA"];
const fW = (5.3-0.12)/flow.length - 0.05;
flow.forEach((label,i)=>{
const fx = 0.25 + i*(fW+0.07);
const isL = i===flow.length-1;
slide.addShape(pres.ShapeType.rect, {
x:fx, y:ya, w:fW, h:0.65,
fill:{color: isL ? RUST : HDR_MID},
line:{color: isL ? RUST : HDR_MID},
rectRadius:0.06
});
slide.addText(label, {x:fx,y:ya,w:fW,h:0.65,fontSize:9,bold:isL,color:WHITE,align:"center",valign:"middle"});
if (!isL) slide.addText("▶",{x:fx+fW,y:ya+0.16,w:0.08,h:0.3,fontSize:10,color:HDR_LITE,align:"center"});
});
ya += 0.78;
// Nidana table
secHeader(slide, 0.25,ya,5.3, "3. Nidana — Classical Comparative Reference", SLATE);
ya += 0.42;
const nR=[
["Causative Factor","C.S.","S.S.","A.H.","M.N."],
["Rukshana (dry food)","✓","✓","—","✓"],
["Sheeta Ahara (cold food)","✓","✓","—","✓"],
["Dhuma/Raja (smoke/dust)","✓","✓","✓","✓"],
["Ativyayama (excess exertion)","✓","✓","—","✓"],
["Sheeta Sthanivasa (cold climate)","✓","—","✓","✓"],
];
const nCW=[2.85,0.62,0.62,0.62,0.57];
nR.forEach((row,ri)=>{
let cx=0.25;
row.forEach((cell,ci)=>{
const isH=ri===0;
slide.addShape(pres.ShapeType.rect, {
x:cx,y:ya+ri*0.34,w:nCW[ci],h:0.34,
fill:{color: isH?SLATE:(ri%2===0?WHITE:"EEF8F3")},
line:{color: isH?SLATE:"C8E6C9",width:0.5}
});
slide.addText(cell,{
x:cx+(ci===0?0.06:0),y:ya+ri*0.34,w:nCW[ci]-(ci===0?0.08:0),h:0.34,
fontSize:isH?9:9.5, bold:isH||ci===0,
color: isH?WHITE:(cell==="✓"?HDR_MID:(cell==="—"?"AAAAAA":DARK_TXT)),
align:ci===0?"left":"center", valign:"middle"
});
cx+=nCW[ci];
});
});
ya += nR.length*0.34+0.08;
// ── Col B: Bronchus cross-section image (6.14 → 11.44, w=5.3) ─────────
secHeader(slide, 6.14,R1Y,5.3, "4. Tamaka Shwasa — Pranavaha Srotas Dushti");
const imgB = imgs[2];
if (!imgB.error) {
card(slide, 6.14,R1Y+0.44,5.3,3.92, WHITE, ACCENT);
slide.addImage({data:imgB.base64, x:6.2,y:R1Y+0.5,w:5.18,h:3.5});
}
// Caption
slide.addText([
{text:"Ayurvedic parallel: ",options:{bold:true,color:HDR_MID,fontSize:10}},
{text:"Srotodushti → Pinasa (coryza) + Ghurghurak (wheeze) + Shwasa (dyspnoea) ",options:{fontSize:10}},
{text:"[C.S. Chi.17/14]",options:{bold:true,color:RUST,fontSize:9.5}},
],{x:6.14,y:R1Y+4.4,w:5.3,h:0.38, align:"left", valign:"middle"});
// ════════════════════════════════════════════════════════════════════════
// ROW 2 y≈7.1 — RASAYANA CONCEPT (full width)
// ════════════════════════════════════════════════════════════════════════
const R2Y = 7.1;
secHeader(slide, 0.25,R2Y,11.19, "5. Rasayana — Definition, Classification & Benefits [C.S. Chi.1/1/7-8 | S.S. Su.1/15]");
let yr2 = R2Y+0.44;
// Definition boxes side by side
const defW = 5.55;
card(slide, 0.25,yr2,defW,0.88, GOLD_LT, GOLD);
slide.addText([
{text:'"Labhopayo hi shastaanaam rasaadeenam rasayanam"\n',options:{italic:true,bold:true,color:HDR_DARK,fontSize:10.5}},
{text:"The means to achieve optimum utilisation of Rasa is Rasayana. ",options:{fontSize:9.5}},
{text:"[C.S. Chi.1/1/7-8]",options:{bold:true,color:RUST,fontSize:9.5}},
],{x:0.38,y:yr2+0.07,w:defW-0.24,h:0.76, valign:"top"});
card(slide, 5.89,yr2,5.55,0.88, MINT_BG, ACCENT);
slide.addText([
{text:'"Rasayanam tad uktam yat jaravyadhinashanam"\n',options:{italic:true,bold:true,color:HDR_DARK,fontSize:10.5}},
{text:"That which destroys old age and disease is Rasayana. ",options:{fontSize:9.5}},
{text:"[S.S. Su.1/15]",options:{bold:true,color:RUST,fontSize:9.5}},
],{x:6.02,y:yr2+0.07,w:5.28,h:0.76, valign:"top"});
yr2 += 0.96;
// Classification + Benefits side by side
// Classification (5-col boxes)
const classCW = 11.19/5 - 0.05;
const classData = [
{type:"Naimittika\nRasayana",ref:"C.S. Chi.1",desc:"Disease-specific\nrejuvenation\n→ Direct for Shwasa",col:HDR_MID},
{type:"Kamya\nRasayana",ref:"C.S. Chi.1",desc:"Vyadhikshamatva\n(Immunity)\nOjas strengthening",col:SLATE},
{type:"Kutipraveshika",ref:"C.S. Chi.1/4/28",desc:"Indoor regimen\nMost potent\nSevere cases",col:HDR_DARK},
{type:"Vatatapika",ref:"C.S. Chi.1/4/28",desc:"Outdoor/ambulatory\nMild-moderate\nChildren preferred",col:"2E7D52"},
{type:"Medhya\nRasayana",ref:"C.S. Chi.10/62",desc:"Brain tonic\nBrahmi, Shankhapushpi\nConcomitant therapy",col:PURPLE},
];
classData.forEach((c,i)=>{
const cx = 0.25+i*(classCW+0.06);
slide.addShape(pres.ShapeType.rect,{x:cx,y:yr2,w:classCW,h:1.32,fill:{color:c.col},line:{color:c.col},rectRadius:0.08});
slide.addText(c.type,{x:cx+0.06,y:yr2+0.05,w:classCW-0.12,h:0.46,fontSize:11,bold:true,color:WHITE,align:"center",valign:"middle"});
slide.addText(c.ref,{x:cx+0.06,y:yr2+0.52,w:classCW-0.12,h:0.22,fontSize:9,italic:true,color:"CCEECC",align:"center"});
slide.addText(c.desc,{x:cx+0.06,y:yr2+0.74,w:classCW-0.12,h:0.52,fontSize:9,color:"E8F5EE",align:"center",valign:"top"});
});
yr2 += 1.4;
// Benefits (6 icons row)
const bens=[
["Deergham Ayuh","Longevity","⏳"],
["Arogya","Disease-free","💚"],
["Deha Bala","Physical strength","💪"],
["Swara","Good voice","🗣️"],
["Medha/Smruti","Memory & intellect","🧠"],
["Vyadhikshamatva","Immune resilience","🛡️"],
];
const bW2=(11.19)/6-0.05;
bens.forEach((b,i)=>{
const bx=0.25+i*(bW2+0.06);
card(slide,bx,yr2,bW2,0.62,i%2===0?"E3F4EC":"EBF7F1",ACCENT);
slide.addText([
{text:b[0]+"\n",options:{bold:true,color:HDR_MID,fontSize:9.5}},
{text:b[1],options:{color:DARK_TXT,fontSize:9}},
],{x:bx+0.05,y:yr2+0.04,w:bW2-0.1,h:0.56,align:"center",valign:"middle"});
});
yr2 += 0.7;
// ════════════════════════════════════════════════════════════════════════
// ROW 3 y≈10.0 — RASAYANA DRUGS (full width) + HERB IMAGE
// ════════════════════════════════════════════════════════════════════════
const R3Y = yr2+0.08;
secHeader(slide, 0.25,R3Y,11.19, "6. Key Rasayana Drugs for Shwasa — Classical References & Modern Correlation");
let yr3 = R3Y+0.44;
// Drug cards: 4 in a row
const drugs = [
{
name:"Chyawanprasha Avaleha",
ref:"C.S. Chi.1/1/62-74",
tag:"Paramukta Rasayana",
dose:"1-2 tsp with warm milk, BD",
desc:"Indicated for Kasa, Shwasa, Uroroga, Kshataksheena. Key herbs: Amalaki, Pippali, Guduchi, Ashwagandha, Dashamula",
action:"Immunomodulator • Antioxidant (Vit C) • Adaptogen",
col:"E0F2EA", border:HDR_MID
},
{
name:"Agastya Haritaki Rasayana",
ref:"C.S. Chi.17/57-62",
tag:"Pranavaha Srotas Rasayana",
dose:"6–12 g BD with honey",
desc:"100 Haritaki + Dashamula + Pippali + Shunthi + Maricha + Ghrita. Srotoshodhana + Balya action on respiratory channels",
action:"Bronchodilatory • Expectorant • Anti-inflammatory",
col:"E8EAF6", border:PURPLE
},
{
name:"Pippali (Vardhamana) Rasayana",
ref:"C.S. Chi.1/3/32-35",
tag:"Deepana-Pachana Rasayana",
dose:"Graduated dose (Vardhamana krama)",
desc:"Corrects Ama → unblocks Pranavaha Srotas. Piperine bioenhances co-administered drugs. Kaphahara + Vatanulomana action",
action:"Bronchodilator • Piperine bioenhancer • Mast cell stabilizer",
col:"FFF8E1", border:GOLD
},
{
name:"Vasa Avaleha",
ref:"C.S. Chi.1/3; A.H. Chi.",
tag:"Srotas Rasayana via oral-mucosal route",
dose:"6–12 g BD with honey",
desc:"Adhatoda vasica + Pippali + Madhu. Avaleha form = oral-mucosal targeted delivery to Pranavaha Srotas. Kapha-Vatahara",
action:"Vasicine → Bronchodilation • Mucolytic • Expectorant",
col:"FCE4EC", border:RUST
},
];
const dW=(11.19)/4-0.08;
drugs.forEach((d,i)=>{
const dx=0.25+i*(dW+0.1);
card(slide,dx,yr3,dW,2.32,d.col,d.border);
// Header strip
rect(slide,dx,yr3,dW,0.38,d.border,d.border,0.07);
slide.addText(d.name,{x:dx+0.06,y:yr3,w:dW-0.12,h:0.38,fontSize:10,bold:true,color:WHITE,align:"left",valign:"middle"});
// Tag badge
rect(slide,dx+0.06,yr3+0.44,dW-0.12,0.22,WHITE,d.border,0.04);
slide.addText(d.tag,{x:dx+0.07,y:yr3+0.44,w:dW-0.14,h:0.22,fontSize:8.5,bold:true,color:d.border,align:"center",valign:"middle"});
// Ref
slide.addText(d.ref,{x:dx+0.06,y:yr3+0.7,w:dW-0.12,h:0.22,fontSize:8.5,italic:true,color:RUST,align:"left",valign:"middle"});
// Dose
slide.addText([{text:"Dose: ",options:{bold:true}},{text:d.dose,options:{}}],
{x:dx+0.06,y:yr3+0.94,w:dW-0.12,h:0.22,fontSize:9,color:DARK_TXT,valign:"middle"});
// Description
slide.addText(d.desc,{x:dx+0.06,y:yr3+1.18,w:dW-0.12,h:0.62,fontSize:9,color:DARK_TXT,valign:"top",lineSpacingMultiple:1.15});
// Action
rect(slide,dx+0.06,yr3+1.84,dW-0.12,0.4,WHITE,d.border,0.04);
slide.addText([{text:"Modern: ",options:{bold:true,color:d.border}},{text:d.action,options:{color:DARK_TXT}}],
{x:dx+0.08,y:yr3+1.86,w:dW-0.16,h:0.36,fontSize:8.5,valign:"middle"});
});
yr3 += 2.4;
// ════════════════════════════════════════════════════════════════════════
// ROW 4 y≈~12.8 — HERBS IMAGE + PROCEDURE IMAGE side by side
// ════════════════════════════════════════════════════════════════════════
const R4Y = yr3+0.08;
secHeader(slide, 0.25,R4Y,5.55, "7. Rasayana Dravyas — Botanical Illustrations");
secHeader(slide, 5.89,R4Y,5.55, "8. Shodhana Poorva Karma + Procedures", HDR_DARK);
const imgH = imgs[0]; // herbs
const imgP = imgs[1]; // procedures
if (!imgH.error) {
card(slide, 0.25,R4Y+0.44,5.55,2.48, WHITE, ACCENT);
slide.addImage({data:imgH.base64, x:0.3,y:R4Y+0.5,w:5.43,h:2.38});
}
if (!imgP.error) {
card(slide, 5.89,R4Y+0.44,5.55,2.48, WHITE, HDR_MID);
slide.addImage({data:imgP.base64, x:5.94,y:R4Y+0.5,w:5.43,h:2.38});
}
// ════════════════════════════════════════════════════════════════════════
// ROW 5 y≈~15.7 — SWARNA PRASHAN + CONCLUSION (side by side in bottom band)
// ════════════════════════════════════════════════════════════════════════
const R5Y = R4Y+3.06;
// Swarna Prashan
secHeader(slide, 0.25,R5Y,5.55, "9. Swarna Prashan — Kaumarabhritya Rasayana", GOLD.replace("#","")?"C9A84C":SLATE);
const spY = R5Y+0.44;
card(slide,0.25,spY,5.55,1.65, GOLD_LT, GOLD);
slide.addText([
{text:'"Suvarna prashana hi etat medha agni bala vardhanam, ayushyam mangalam punyam…"\n',options:{italic:true,bold:true,color:HDR_DARK,fontSize:9.5}},
{text:"[Kashyapa Samhita, Leha Adhyaya]\n\n",options:{bold:true,color:RUST,fontSize:9}},
{text:"• Gold (colloidal) + Vacha + Brahmi + Ashwagandha + Ghrita + Honey\n",options:{fontSize:9.5}},
{text:"• Administered on Pushya Nakshatra (monthly) for children <5 yrs\n",options:{fontSize:9.5}},
{text:"• Enhances Vyadhikshamatva: IgE regulation, phagocytic activity, T-cell modulation\n",options:{fontSize:9.5}},
{text:"• Ref: A.H. Uttarasthana 1/25 | Kashyapa Samhita, Leha Adhyaya",options:{bold:true,color:RUST,fontSize:9}},
],{x:0.38,y:spY+0.08,w:5.28,h:1.5,valign:"top",lineSpacingMultiple:1.2});
// Conclusion
secHeader(slide, 5.89,R5Y,5.55, "10. Conclusion & Significance", RUST);
card(slide,5.89,spY,5.55,1.65, HDR_DARK, HDR_MID);
const concs=[
"Tamaka Shwasa = Yapya Vyadhi ↔ Modern asthma: incurable but controllable",
"Shodhana (purification) MUST precede Rasayana [C.S. Chi.1/4]",
"Naimittika Rasayana drugs provide Pranavaha Srotas-specific rejuvenation",
"Swarna Prashan: exclusive pediatric Rasayana for Vyadhikshamatva",
"Nitya Sevana + Ritu Anusara reduces attack frequency & severity",
"Epigenetic basis validated [Bhat et al. 2023, PMID: 37018893]",
];
concs.forEach((c,i)=>{
slide.addText([
{text:"✦ ",options:{color:GOLD,bold:true,fontSize:10}},
{text:c,options:{color:WHITE,fontSize:9.5}},
],{x:6.0,y:spY+0.08+i*0.26,w:5.35,h:0.24,valign:"middle"});
});
// ════════════════════════════════════════════════════════════════════════
// REFERENCES FOOTER
// ════════════════════════════════════════════════════════════════════════
rect(slide,0.18,16.16,11.33,0.22, SLATE, SLATE);
slide.addText([
{text:"References: ",options:{bold:true,color:GOLD,fontSize:7.5}},
{text:"1.C.S.Chi.1/1/7-8 | 2.C.S.Chi.1/1/62-74 | 3.C.S.Chi.17/57-62 | 4.C.S.Chi.1/3/32-35 | 5.S.S.Su.1/15 | 6.A.H.Ni.4/3 | 7.Kashyapa Samhita, Leha Adhyaya | 8.A.H.Uttarasthana 1/25 | 9.Bhat S et al. J Ayurveda Integr Med 2023 [PMID:37018893]",options:{color:"B0D4BE",fontSize:7.5}},
],{x:0.25,y:16.17,w:11.2,h:0.2,valign:"middle",align:"left"});
// ════════════════════════════════════════════════════════════════════════
// SAVE
// ════════════════════════════════════════════════════════════════════════
pres.writeFile({fileName:"/home/daytona/workspace/rasayana-poster/Rasayana_A3_Portrait_Final.pptx"})
.then(()=>console.log("✅ Portrait A3 poster saved!"))
.catch(err=>console.error("❌",err));
cd /home/daytona/workspace/rasayana-poster && node create_portrait_poster.js 2>&1
cd /home/daytona/workspace/rasayana-poster && node -e " const {execSync}=require('child_process'); // Fetch one at a time and save const urls=[ ['herbs','https://cdn.orris.care/image-gen/44f3486c9bd64fcda0f7934ecea03d38.png'], ['procedures','https://cdn.orris.care/image-gen/ea1c9db8908f4c60a6a7eaa4dc281d24.png'], ['bronchus','https://cdn.orris.care/image-gen/8eb94864cadd4bfe8d147f9e8e40f630.png'], ]; for(const [name,url] of urls){ const r=JSON.parse(execSync('node /home/daytona/skills/shared/scripts/fetch_images.js \"'+url+'\"').toString()); require('fs').writeFileSync('./img_'+name+'.txt', r[0].base64); console.log(name,'saved, size:',r[0].base64.length); } " 2>&1
cd /home/daytona/workspace/rasayana-poster && curl -s -o img_herbs.png "https://cdn.orris.care/image-gen/44f3486c9bd64fcda0f7934ecea03d38.png" && echo "herbs OK" && curl -s -o img_procedures.png "https://cdn.orris.care/image-gen/ea1c9db8908f4c60a6a7eaa4dc281d24.png" && echo "procedures OK" && curl -s -o img_bronchus.png "https://cdn.orris.care/image-gen/8eb94864cadd4bfe8d147f9e8e40f630.png" && echo "bronchus OK" && ls -lh img_*.png
~/rasayana-poster/create_portrait_poster.js
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/rasayana-poster/create_portrait_poster.js'
cd /home/daytona/workspace/rasayana-poster && sed -i 's/data:imgB\.base64/path:imgs[2].path/g; s/data:imgH\.base64/path:imgs[0].path/g; s/data:imgP\.base64/path:imgs[1].path/g' create_portrait_poster.js && grep "path:imgs" create_portrait_poster.js
"imgB.base64\|imgH.base64\|imgP.base64" in ~/rasayana-poster
"addImage" in ~/rasayana-poster
~/rasayana-poster/create_portrait_poster.js
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/rasayana-poster/create_portrait_poster.js'
~/rasayana-poster/create_portrait_poster.js
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/rasayana-poster/create_portrait_poster.js'
~/rasayana-poster/create_portrait_poster.js
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/rasayana-poster/create_portrait_poster.js'
~/rasayana-poster/create_portrait_poster.js
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/rasayana-poster/create_portrait_poster.js'
cd /home/daytona/workspace/rasayana-poster && node create_portrait_poster.js 2>&1
ls -lh /home/daytona/workspace/rasayana-poster/Rasayana_A3_Portrait_Final.pptx
Rasayana A3 Portrait Final
Presentation · PPTX
| Image | Position |
|---|---|
| 🌿 Botanical illustration — Amalaki, Haritaki, Pippali, Ashwagandha, Guduchi, Vasa | Section 7 |
| 🏥 Ayurvedic procedures — Nasya, Virechana, Abhyanga, Swarna Prashan (4-panel) | Section 8 |
| 🫁 Bronchus cross-section — Normal vs Asthmatic airway with all labels | Section 4 |