Hey hi
Who are you?
I'm a Medical student
Do you know marrow platform for neet pg.Have you any ideas about it?
Can you please provide me Q bank of it?
"Give me 10 MCQs on cardiac pharmacology" "Quiz me on renal pathology" "NEET PG questions on CNS drugs"
Generate 10 NEET PG MCQs on a specific topicRHD
| Topic | High-Yield Fact |
|---|---|
| Causative agent | Group A Streptococcus |
| Mechanism | Molecular mimicry (M protein ↔ cardiac antigens) |
| Pathognomonic lesion | Aschoff bodies with Anitschkow (caterpillar) cells |
| Only cause of mitral stenosis | RHD |
| Valve most commonly affected alone | Mitral (2/3 cases) |
| Chorea mechanism | Antibody → basal ganglia |
| Vegetations in acute RF | Verrucae (1–2 mm, along line of closure) |
| "Fish mouth" valve | Chronic rheumatic mitral stenosis |
| Secondary prophylaxis | IM Benzathine Penicillin G q4 weeks |
| Jones criteria (initial ARF) | 2 major OR 1 major + 2 minor |
Generate a 5-slide presentation on RHD pathology
rheumatic heart disease mitral stenosis pathology Aschoff body
ls -la /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace
mkdir -p /home/daytona/workspace/rhd-presentation && node /home/daytona/skills/shared/scripts/fetch_images.js \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_1926864c377809b8f90fd3942de5bb4b4dd1d9aef38712369a74447c4a2aa246.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_ea16062e5420e91b4df2e1edfb4e9089d0967c440825bb4080f632ba864c997a.jpg" \ "https://cdn.orris.care/cdss_images/547a22ca533dfb26ca0dc4c88359a9f4ab225f52a652e79a1fd49e2a1d070af6.png" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_da1a81044fab6514e92ea85316a22141f6ba83664ec1c5ff98890d5995d9e82f.jpg" 2>/dev/null | node -e " const d = JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')); d.forEach((x,i)=>console.log(i, x.error ? 'ERROR:'+x.error : 'OK len='+x.base64.length)); "
~/rhd-presentation/create_rhd_pptx.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// Fetch images
const imageUrls = [
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_1926864c377809b8f90fd3942de5bb4b4dd1d9aef38712369a74447c4a2aa246.jpg", // Fish-mouth gross
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_ea16062e5420e91b4df2e1edfb4e9089d0967c440825bb4080f632ba864c997a.jpg", // Echo mitral
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_da1a81044fab6514e92ea85316a22141f6ba83664ec1c5ff98890d5995d9e82f.jpg", // Echo PLAX
];
const images = JSON.parse(
execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js ${imageUrls.map(u => `"${u}"`).join(" ")}`
).toString()
);
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Rheumatic Heart Disease — Pathology";
pres.author = "Orris Medical";
// ── COLOR PALETTE ──────────────────────────────────────────────────
const C = {
darkBg: "0D1B2A", // deep navy — dominant
midBg: "1B2E45", // slightly lighter navy for panels
accent: "C0392B", // deep red (blood/cardiac theme)
accentAlt: "E74C3C", // lighter red for highlights
gold: "F1C40F", // gold accent for key facts
white: "FFFFFF",
offWhite: "EAF0FB",
lightGray: "BDC3C7",
textMuted: "94A3B8",
};
// ╔══════════════════════════════════════════════════════════╗
// ║ SLIDE 1 — TITLE SLIDE ║
// ╚══════════════════════════════════════════════════════════╝
{
const s = pres.addSlide();
// Full background
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.darkBg }, line: { color: C.darkBg } });
// Left accent bar
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.accent }, line: { color: C.accent } });
// Red top stripe
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.07, fill: { color: C.accent }, line: { color: C.accent } });
// Heart icon area — decorative circle
s.addShape(pres.shapes.ELLIPSE, {
x: 6.8, y: 0.6, w: 2.6, h: 2.6,
fill: { color: C.accent, transparency: 85 },
line: { color: C.accentAlt, width: 1.5 }
});
// Heart symbol (text)
s.addText("♥", { x: 7.1, y: 0.8, w: 2, h: 2, fontSize: 72, color: C.accent, align: "center", valign: "middle", transparency: 30 });
// Title
s.addText("Rheumatic Heart Disease", {
x: 0.4, y: 1.1, w: 6.2, h: 1.1,
fontSize: 36, bold: true, color: C.white,
fontFace: "Calibri", align: "left", valign: "middle"
});
// Subtitle
s.addText("Pathology, Pathogenesis & Morphology", {
x: 0.4, y: 2.25, w: 6, h: 0.55,
fontSize: 18, color: C.accentAlt,
fontFace: "Calibri", align: "left", italic: true
});
// Divider line
s.addShape(pres.shapes.RECTANGLE, {
x: 0.4, y: 2.9, w: 5.8, h: 0.04,
fill: { color: C.accent }, line: { color: C.accent }
});
// Tags row
const tags = ["Cardiology", "Pathology", "NEET PG"];
tags.forEach((tag, i) => {
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.4 + i * 1.85, y: 3.1, w: 1.65, h: 0.38,
fill: { color: C.midBg }, line: { color: C.accentAlt, width: 1 }, rectRadius: 0.06
});
s.addText(tag, {
x: 0.4 + i * 1.85, y: 3.1, w: 1.65, h: 0.38,
fontSize: 11, color: C.accentAlt, align: "center", valign: "middle", bold: true
});
});
// Source
s.addText("Source: Robbins Pathologic Basis of Disease · Goldman-Cecil Medicine", {
x: 0.4, y: 4.95, w: 9.2, h: 0.3,
fontSize: 9, color: C.textMuted, align: "left"
});
}
// ╔══════════════════════════════════════════════════════════╗
// ║ SLIDE 2 — ETIOLOGY & PATHOGENESIS ║
// ╚══════════════════════════════════════════════════════════╝
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.darkBg }, line: { color: C.darkBg } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.07, fill: { color: C.accent }, line: { color: C.accent } });
// Slide heading bar
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 10, h: 0.75, fill: { color: C.midBg }, line: { color: C.midBg } });
s.addText("ETIOLOGY & PATHOGENESIS", {
x: 0.35, y: 0.07, w: 9.3, h: 0.75,
fontSize: 20, bold: true, color: C.white, fontFace: "Calibri", align: "left", valign: "middle", charSpacing: 2
});
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 0.18, h: 0.75, fill: { color: C.accent }, line: { color: C.accent } });
// Step boxes — pathogenesis flow
const steps = [
{ label: "1", title: "Trigger", body: "Group A Streptococcal\npharyngitis (GAS)" },
{ label: "2", title: "Delay", body: "2–3 week latent period\n(immune response generation)" },
{ label: "3", title: "Mimicry", body: "Cross-reactive antibodies\nagainst M proteins ↔ cardiac antigens" },
{ label: "4", title: "Carditis", body: "Ab + T-cell mediated\ninflammation of heart" },
{ label: "5", title: "Chronic RHD", body: "Scarring, fibrosis\nof heart valves" },
];
steps.forEach((step, i) => {
const x = 0.2 + i * 1.94;
// Box
s.addShape(pres.shapes.RECTANGLE, {
x, y: 1.05, w: 1.75, h: 3.5,
fill: { color: i === 4 ? C.accent : C.midBg },
line: { color: i === 4 ? C.accentAlt : C.accentAlt, width: 1 },
shadow: { type: "outer", color: "000000", blur: 8, offset: 3, angle: 135, opacity: 0.2 }
});
// Number circle
s.addShape(pres.shapes.ELLIPSE, {
x: x + 0.55, y: 1.15, w: 0.65, h: 0.65,
fill: { color: i === 4 ? C.white : C.accent },
line: { color: i === 4 ? C.accent : C.accent }
});
s.addText(step.label, {
x: x + 0.55, y: 1.15, w: 0.65, h: 0.65,
fontSize: 16, bold: true, color: i === 4 ? C.accent : C.white,
align: "center", valign: "middle"
});
// Title
s.addText(step.title, {
x: x + 0.08, y: 2.0, w: 1.6, h: 0.5,
fontSize: 13, bold: true, color: C.gold,
align: "center", valign: "middle"
});
// Body
s.addText(step.body, {
x: x + 0.08, y: 2.55, w: 1.6, h: 1.7,
fontSize: 10.5, color: C.offWhite,
align: "center", valign: "top"
});
// Arrow between boxes
if (i < 4) {
s.addShape(pres.shapes.RECTANGLE, {
x: x + 1.78, y: 2.65, w: 0.12, h: 0.06,
fill: { color: C.accentAlt }, line: { color: C.accentAlt }
});
}
});
// Key note at bottom
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 4.75, w: 9.6, h: 0.6, fill: { color: C.midBg }, line: { color: C.textMuted, width: 0.5 } });
s.addText("⚠ Streptococci are ABSENT from lesions — damage is purely immunological (molecular mimicry). Genetic susceptibility required (only 0.3–3% of GAS infections progress to RF).", {
x: 0.35, y: 4.75, w: 9.3, h: 0.6,
fontSize: 10, color: C.gold, align: "left", valign: "middle", italic: true
});
}
// ╔══════════════════════════════════════════════════════════╗
// ║ SLIDE 3 — MORPHOLOGY: ACUTE RF ║
// ╚══════════════════════════════════════════════════════════╝
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.darkBg }, line: { color: C.darkBg } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.07, fill: { color: C.accent }, line: { color: C.accent } });
// Heading
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 10, h: 0.75, fill: { color: C.midBg }, line: { color: C.midBg } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 0.18, h: 0.75, fill: { color: C.accent }, line: { color: C.accent } });
s.addText("MORPHOLOGY — ACUTE RHEUMATIC FEVER", {
x: 0.35, y: 0.07, w: 9.3, h: 0.75,
fontSize: 20, bold: true, color: C.white, fontFace: "Calibri", align: "left", valign: "middle", charSpacing: 2
});
// LEFT panel — Aschoff bodies
s.addShape(pres.shapes.RECTANGLE, {
x: 0.2, y: 1.0, w: 4.5, h: 4.3,
fill: { color: C.midBg }, line: { color: C.accentAlt, width: 1 },
shadow: { type: "outer", color: "000000", blur: 8, offset: 3, angle: 135, opacity: 0.2 }
});
s.addText("ASCHOFF BODIES", {
x: 0.35, y: 1.1, w: 4.2, h: 0.45,
fontSize: 14, bold: true, color: C.gold, align: "left"
});
s.addText([
{ text: "Pathognomonic", options: { bold: true, color: C.accentAlt, breakLine: true } },
{ text: " lesion of acute RF\n", options: { color: C.offWhite, breakLine: false } },
{ text: "\n• Foci of ", options: { color: C.offWhite } },
{ text: "T lymphocytes", options: { bold: true, color: C.gold } },
{ text: " + plasma cells\n", options: { color: C.offWhite } },
{ text: "• ", options: { color: C.offWhite } },
{ text: "Anitschkow cells", options: { bold: true, color: C.gold } },
{ text: " (activated macrophages)\n", options: { color: C.offWhite } },
{ text: ' – "Caterpillar cells"\n', options: { color: C.textMuted, italic: true } },
{ text: " – Wavy chromatin ribbon in nucleus\n", options: { color: C.textMuted } },
{ text: "\n• Affect ALL 3 layers → ", options: { color: C.offWhite } },
{ text: "PANCARDITIS\n", options: { bold: true, color: C.accentAlt } },
{ text: " – Pericarditis\n", options: { color: C.offWhite } },
{ text: " – Myocarditis\n", options: { color: C.offWhite } },
{ text: " – Endocarditis (most significant)\n", options: { color: C.offWhite } },
{ text: "\n• Small verrucae (1–2 mm vegetations)\n", options: { color: C.offWhite } },
{ text: " along valve line of closure\n", options: { color: C.textMuted } },
{ text: "\n• ", options: { color: C.offWhite } },
{ text: "MacCallum plaques", options: { bold: true, color: C.gold } },
{ text: " — LA subendocardium", options: { color: C.offWhite } },
], {
x: 0.35, y: 1.6, w: 4.2, h: 2.9,
fontSize: 11, color: C.offWhite, valign: "top"
});
// RIGHT panel — Valves involved
s.addShape(pres.shapes.RECTANGLE, {
x: 5.1, y: 1.0, w: 4.7, h: 4.3,
fill: { color: C.midBg }, line: { color: C.accentAlt, width: 1 },
shadow: { type: "outer", color: "000000", blur: 8, offset: 3, angle: 135, opacity: 0.2 }
});
s.addText("VALVE INVOLVEMENT IN ACUTE RF", {
x: 5.25, y: 1.1, w: 4.4, h: 0.45,
fontSize: 13, bold: true, color: C.gold, align: "left"
});
const valveData = [
{ valve: "Mitral", freq: "Most common — isolated 2/3 cases", pct: 100 },
{ valve: "Mitral + Aortic", freq: "Combined — ~25% of cases", pct: 65 },
{ valve: "Tricuspid", freq: "Infrequent", pct: 20 },
{ valve: "Pulmonary", freq: "Rarely affected", pct: 5 },
];
valveData.forEach((v, i) => {
const y = 1.7 + i * 0.85;
s.addText(v.valve, { x: 5.25, y, w: 1.7, h: 0.35, fontSize: 12, bold: true, color: C.accentAlt });
s.addShape(pres.shapes.RECTANGLE, {
x: 5.25, y: y + 0.38, w: 4.3 * v.pct / 100, h: 0.22,
fill: { color: i === 0 ? C.accent : C.midBg.replace("1B2E45", "2C4A6E") },
line: { color: C.accentAlt }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.25, y: y + 0.38, w: 4.3, h: 0.22,
fill: { color: "FFFFFF", transparency: 95 },
line: { color: C.textMuted, width: 0.5 }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.25, y: y + 0.38, w: 4.3 * v.pct / 100, h: 0.22,
fill: { color: i === 0 ? C.accent : "2C5282" },
line: { color: i === 0 ? C.accentAlt : "4299E1" }
});
s.addText(v.freq, { x: 5.25, y: y + 0.62, w: 4.3, h: 0.2, fontSize: 9.5, color: C.textMuted });
});
}
// ╔══════════════════════════════════════════════════════════╗
// ║ SLIDE 4 — MORPHOLOGY: CHRONIC RHD + IMAGES ║
// ╚══════════════════════════════════════════════════════════╝
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.darkBg }, line: { color: C.darkBg } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.07, fill: { color: C.accent }, line: { color: C.accent } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 10, h: 0.75, fill: { color: C.midBg }, line: { color: C.midBg } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 0.18, h: 0.75, fill: { color: C.accent }, line: { color: C.accent } });
s.addText("CHRONIC RHD — MITRAL STENOSIS", {
x: 0.35, y: 0.07, w: 9.3, h: 0.75,
fontSize: 20, bold: true, color: C.white, fontFace: "Calibri", align: "left", valign: "middle", charSpacing: 2
});
// Left — text bullet points
s.addShape(pres.shapes.RECTANGLE, {
x: 0.2, y: 1.0, w: 4.6, h: 4.3,
fill: { color: C.midBg }, line: { color: C.accentAlt, width: 1 }
});
s.addText("Cardinal Anatomic Changes", {
x: 0.35, y: 1.1, w: 4.3, h: 0.4,
fontSize: 13, bold: true, color: C.gold
});
s.addText([
{ text: "• Leaflet thickening\n", options: { breakLine: false } },
{ text: "• Commissural fusion & shortening\n", options: {} },
{ text: "• Thickening & fusion of chordae\n", options: {} },
{ text: "\n" },
{ text: '"Fish-mouth" / "Buttonhole" stenosis\n', options: { bold: true, color: C.accentAlt } },
{ text: " Calcification + fibrous bridging\n", options: { color: C.textMuted } },
{ text: "\n" },
{ text: "Downstream consequences:\n", options: { bold: true, color: C.gold } },
{ text: "• Left atrium dilatation\n", options: {} },
{ text: "• Mural thrombi → embolism risk\n", options: {} },
{ text: "• Pulmonary hypertension\n", options: {} },
{ text: "• Right ventricular hypertrophy\n", options: {} },
{ text: "\n" },
{ text: "Neovascularization ", options: { bold: true, color: C.accentAlt } },
{ text: "of mitral leaflet\n", options: {} },
{ text: "(hallmark of chronicity)", options: { italic: true, color: C.textMuted } },
], {
x: 0.35, y: 1.6, w: 4.3, h: 3.55,
fontSize: 11.5, color: C.offWhite, valign: "top"
});
// Right — gross pathology image
if (images[0] && !images[0].error) {
s.addShape(pres.shapes.RECTANGLE, {
x: 5.1, y: 1.0, w: 4.7, h: 2.85,
fill: { color: "000000" }, line: { color: C.accentAlt, width: 1.5 }
});
s.addImage({
data: images[0].base64,
x: 5.1, y: 1.0, w: 4.7, h: 2.85,
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.1, y: 3.72, w: 4.7, h: 0.55,
fill: { color: "000000", transparency: 40 }, line: { color: C.accentAlt }
});
s.addText('Gross specimen: "Fish-mouth" mitral stenosis — RHD', {
x: 5.1, y: 3.72, w: 4.7, h: 0.55,
fontSize: 9.5, color: C.white, align: "center", valign: "middle", italic: true
});
}
// Echo image below
if (images[2] && !images[2].error) {
s.addShape(pres.shapes.RECTANGLE, {
x: 5.1, y: 4.35, w: 4.7, h: 0.95,
fill: { color: C.midBg }, line: { color: C.accentAlt, width: 1 }
});
s.addText("Echo (PLAX): Anterior leaflet 'hockey-stick' doming, restricted diastolic opening — hallmark of rheumatic mitral stenosis.", {
x: 5.2, y: 4.38, w: 4.5, h: 0.85,
fontSize: 9.5, color: C.textMuted, valign: "middle", italic: true
});
}
}
// ╔══════════════════════════════════════════════════════════╗
// ║ SLIDE 5 — JONES CRITERIA & KEY SUMMARY ║
// ╚══════════════════════════════════════════════════════════╝
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.darkBg }, line: { color: C.darkBg } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.07, fill: { color: C.accent }, line: { color: C.accent } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 10, h: 0.75, fill: { color: C.midBg }, line: { color: C.midBg } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.07, w: 0.18, h: 0.75, fill: { color: C.accent }, line: { color: C.accent } });
s.addText("DIAGNOSIS — REVISED JONES CRITERIA (2015)", {
x: 0.35, y: 0.07, w: 9.3, h: 0.75,
fontSize: 20, bold: true, color: C.white, fontFace: "Calibri", align: "left", valign: "middle", charSpacing: 2
});
// MAJOR criteria panel
s.addShape(pres.shapes.RECTANGLE, {
x: 0.2, y: 1.0, w: 4.6, h: 3.7,
fill: { color: C.midBg }, line: { color: C.accentAlt, width: 1.5 }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0.2, y: 1.0, w: 4.6, h: 0.5,
fill: { color: C.accent }, line: { color: C.accent }
});
s.addText("MAJOR CRITERIA", {
x: 0.2, y: 1.0, w: 4.6, h: 0.5,
fontSize: 13, bold: true, color: C.white, align: "center", valign: "middle"
});
const majors = [
["Carditis", "Clinical + subclinical (echo) valvulitis"],
["Arthritis", "Polyarticular (low risk) / Monoarticular (high risk)"],
["Chorea", "Sydenham chorea (St. Vitus dance)"],
["Erythema marginatum", "Pink, serpiginous macules — trunk & limbs"],
["Subcutaneous nodules", "Painless, over bony prominences"],
];
majors.forEach(([title, desc], i) => {
const y = 1.6 + i * 0.58;
s.addShape(pres.shapes.ELLIPSE, { x: 0.3, y: y + 0.05, w: 0.28, h: 0.28, fill: { color: C.accent }, line: { color: C.accentAlt } });
s.addText(title, { x: 0.65, y, w: 3.6, h: 0.28, fontSize: 11.5, bold: true, color: C.gold });
s.addText(desc, { x: 0.65, y: y + 0.28, w: 4.0, h: 0.26, fontSize: 9.5, color: C.textMuted });
});
// MINOR criteria panel
s.addShape(pres.shapes.RECTANGLE, {
x: 5.2, y: 1.0, w: 4.6, h: 2.5,
fill: { color: C.midBg }, line: { color: C.textMuted, width: 1 }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.2, y: 1.0, w: 4.6, h: 0.5,
fill: { color: "2C5282" }, line: { color: "2C5282" }
});
s.addText("MINOR CRITERIA", {
x: 5.2, y: 1.0, w: 4.6, h: 0.5,
fontSize: 13, bold: true, color: C.white, align: "center", valign: "middle"
});
s.addText([
{ text: "• Fever ≥38.5°C\n", options: { breakLine: false } },
{ text: "• Elevated ESR / CRP\n", options: {} },
{ text: " (ESR ≥60 mm [low risk] / ≥30 mm [high risk])\n", options: { color: C.textMuted, italic: true } },
{ text: "• Prolonged PR interval (if carditis not already major)\n", options: {} },
{ text: "• Polyarthralgia (low risk) / Monoarthralgia (high risk)\n", options: {} },
], {
x: 5.35, y: 1.6, w: 4.3, h: 1.75,
fontSize: 11, color: C.offWhite, valign: "top"
});
// Diagnosis rule box
s.addShape(pres.shapes.RECTANGLE, {
x: 5.2, y: 3.6, w: 4.6, h: 1.1,
fill: { color: C.accent, transparency: 15 }, line: { color: C.accentAlt, width: 1.5 }
});
s.addText("Diagnosis of Initial ARF", {
x: 5.35, y: 3.65, w: 4.3, h: 0.35,
fontSize: 12, bold: true, color: C.white
});
s.addText("2 Major OR 1 Major + 2 Minor criteria\n+ Evidence of preceding GAS infection", {
x: 5.35, y: 4.0, w: 4.3, h: 0.62,
fontSize: 11, color: C.gold
});
// Prophylaxis footer
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 4.85, w: 9.6, h: 0.55, fill: { color: C.midBg }, line: { color: C.textMuted, width: 0.5 } });
s.addText("Secondary Prophylaxis: IM Benzathine Penicillin G 1.2 MU every 4 weeks ≥10 years (or indefinitely if persistent cardiac involvement)", {
x: 0.35, y: 4.85, w: 9.3, h: 0.55,
fontSize: 10, color: C.gold, align: "left", valign: "middle", bold: false, italic: true
});
}
// Save
pres.writeFile({ fileName: "/home/daytona/workspace/rhd-presentation/RHD_Pathology.pptx" })
.then(() => console.log("✅ Saved: RHD_Pathology.pptx"))
.catch(e => console.error("❌", e));
cd /home/daytona/workspace/rhd-presentation && node create_rhd_pptx.js 2>&1
node -e "const p = require('pptxgenjs'); const pres = new p(); console.log(JSON.stringify(Object.keys(pres.shapes).slice(0,30)))"
node -e "const p = require('pptxgenjs'); const pres = new p(); const keys = Object.keys(pres.shapes); console.log(keys.filter(k => ['RECTANGLE','ELLIPSE','ROUNDED'].some(s => k.includes(s))))"
node -e "const p = require('pptxgenjs'); const pres = new p(); const keys = Object.keys(pres.shapes); console.log(keys.filter(k => k.includes('OVAL') || k.includes('CIRCLE') || k.includes('ELLIP')))"
sed -i 's/pres\.shapes\.ELLIPSE/pres.shapes.OVAL/g' /home/daytona/workspace/rhd-presentation/create_rhd_pptx.js && cd /home/daytona/workspace/rhd-presentation && node create_rhd_pptx.js 2>&1
Make a printable PDF summary of RHD pathology
Any pyqs in RHD in Neet pg