Endocrine tumours of pancreas powerpoint presentation
mkdir -p /home/daytona/workspace/endocrine-pancreas-ppt && ls /home/daytona/workspace/endocrine-pancreas-ppt/
~/endocrine-pancreas-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Endocrine Tumours of the Pancreas";
pres.subject = "Pancreatic Neuroendocrine Neoplasms (PanNENs)";
// ─── COLOUR PALETTE ───────────────────────────────────────────────────────────
const C = {
navy: "0D2B55", // dominant dark (60%)
teal: "1A7A8A", // supporting mid-tone
amber: "F0A500", // accent / highlight
white: "FFFFFF",
lightGray: "EEF2F7",
midGray: "B0BEC5",
textDark: "1A1A2E",
softBlue: "1E3A5F",
paleBlue: "D6E4F0",
gold: "FFD166",
green: "2D9E6B",
red: "C0392B",
};
// ─── HELPERS ─────────────────────────────────────────────────────────────────
function addSlide(bg) {
const s = pres.addSlide();
s.background = { color: bg || C.white };
return s;
}
function sectionTitle(slide, label) {
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: C.amber } });
slide.addText(label, {
x: 0, y: 0.08, w: 10, h: 0.5, fontSize: 10, bold: true, color: C.amber,
align: "center", charSpacing: 3
});
}
function mainTitle(slide, title, subtitle) {
slide.addText(title, {
x: 0.5, y: 0.9, w: 9, h: 1.4,
fontSize: 38, bold: true, color: C.white, align: "center", fontFace: "Calibri"
});
if (subtitle) {
slide.addText(subtitle, {
x: 0.5, y: 2.45, w: 9, h: 0.6,
fontSize: 18, color: C.gold, align: "center", fontFace: "Calibri", italic: true
});
}
}
function slideHeading(slide, title) {
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1, fill: { color: C.navy } });
slide.addText(title, {
x: 0.4, y: 0.1, w: 9.2, h: 0.8, fontSize: 22, bold: true,
color: C.white, fontFace: "Calibri", valign: "middle"
});
}
function bullet(text, level, bold) {
return {
text: text,
options: {
bullet: { indent: 12 + (level || 0) * 14 },
fontSize: level === 1 ? 14 : 16,
bold: bold || false,
color: level === 1 ? C.teal : C.textDark,
breakLine: true,
paraSpaceAfter: level === 1 ? 2 : 5
}
};
}
function addBullets(slide, items, x, y, w, h) {
slide.addText(items, { x, y, w, h, fontFace: "Calibri", valign: "top" });
}
function colorBox(slide, x, y, w, h, color, text, textColor, fontSize) {
slide.addShape(pres.ShapeType.roundRect, {
x, y, w, h,
fill: { color },
line: { color: C.white, width: 1 },
rectRadius: 0.08
});
if (text) {
slide.addText(text, {
x, y, w, h, fontSize: fontSize || 13, bold: true,
color: textColor || C.white, align: "center", valign: "middle", fontFace: "Calibri"
});
}
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 1 – TITLE
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.navy);
// Decorative gradient band
s.addShape(pres.ShapeType.rect, { x: 0, y: 4.3, w: 10, h: 1.325, fill: { color: C.softBlue } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.amber } });
mainTitle(s, "Endocrine Tumours\nof the Pancreas", "Pancreatic Neuroendocrine Neoplasms (PanNENs)");
s.addText("For Medical Students | Comprehensive Review", {
x: 0.5, y: 3.2, w: 9, h: 0.4, fontSize: 13, color: C.midGray,
align: "center", fontFace: "Calibri"
});
s.addText("Sources: Robbins & Cotran Pathology · Bailey & Love Surgery · Harrison's Principles · Yamada's Gastroenterology", {
x: 0.5, y: 4.9, w: 9, h: 0.4, fontSize: 9, color: C.midGray,
align: "center", fontFace: "Calibri", italic: true
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 2 – OUTLINE
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.lightGray);
slideHeading(s, "Lecture Outline");
const topics = [
["1. Introduction & Classification", C.navy],
["2. Pathogenesis & Molecular Genetics", C.teal],
["3. WHO Grading System", C.teal],
["4. Insulinoma", C.navy],
["5. Gastrinoma & Zollinger-Ellison Syndrome", C.navy],
["6. Glucagonoma", C.teal],
["7. VIPoma (Verner-Morrison Syndrome)", C.teal],
["8. Somatostatinoma & Rare Tumours", C.teal],
["9. Non-Functioning PanNETs", C.navy],
["10. MEN-1 Association", C.navy],
["11. Imaging & Diagnosis", C.teal],
["12. Management Principles", C.navy],
["13. Prognosis & Summary", C.teal],
];
const col1 = topics.slice(0, 7);
const col2 = topics.slice(7);
col1.forEach((t, i) => {
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.1 + i * 0.58, w: 4.5, h: 0.46, fill: { color: t[1] }, rectRadius: 0.07 });
s.addText(t[0], { x: 0.4, y: 1.1 + i * 0.58, w: 4.5, h: 0.46, fontSize: 13, bold: true, color: C.white, valign: "middle", fontFace: "Calibri" });
});
col2.forEach((t, i) => {
s.addShape(pres.ShapeType.roundRect, { x: 5.1, y: 1.1 + i * 0.58, w: 4.5, h: 0.46, fill: { color: t[1] }, rectRadius: 0.07 });
s.addText(t[0], { x: 5.1, y: 1.1 + i * 0.58, w: 4.5, h: 0.46, fontSize: 13, bold: true, color: C.white, valign: "middle", fontFace: "Calibri" });
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 3 – INTRODUCTION
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide();
slideHeading(s, "Introduction");
sectionTitle(s, "WHAT ARE PanNENs?");
addBullets(s, [
bullet("Preferred term: Pancreatic Neuroendocrine Neoplasms (PanNENs)"),
bullet("Also called: islet cell tumours, P-NETs"),
bullet("Rare – account for only ~2% of all pancreatic neoplasms"),
bullet("Arise from islet cells of Langerhans (endocrine pancreas)"),
bullet("Can occur anywhere in the pancreas or adjacent peripancreatic tissues"),
bullet("May be single or multiple"),
bullet("Functional (hormone-secreting) OR Non-functional", false),
bullet("Non-functional tumours = 25–100% of all P-NETs; diagnosed later due to lack of symptoms", 1),
bullet("When malignant → liver is the most common site of metastases"),
], 0.4, 1.05, 9.2, 4.2);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 4 – ISLETS OF LANGERHANS (PHYSIOLOGY)
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.lightGray);
slideHeading(s, "The Endocrine Pancreas – Islets of Langerhans");
// Central circle label
s.addShape(pres.ShapeType.ellipse, { x: 3.8, y: 1.8, w: 2.4, h: 2.1, fill: { color: C.paleBlue }, line: { color: C.teal, width: 2 } });
s.addText("Islet of\nLangerhans\n~1 million in adult\nCombined wt: 1–1.5 g", {
x: 3.8, y: 1.8, w: 2.4, h: 2.1, fontSize: 11, align: "center", valign: "middle", bold: true, color: C.navy, fontFace: "Calibri"
});
// Cell boxes
const cells = [
{ label: "β Cells\n65–80%", sub: "Secrete: Insulin", x: 0.3, y: 1.5, color: C.navy },
{ label: "α Cells\n15–20%", sub: "Secrete: Glucagon", x: 0.3, y: 3.3, color: C.teal },
{ label: "δ Cells\n3–10%", sub: "Secrete: Somatostatin", x: 7.3, y: 1.5, color: C.green },
{ label: "PP Cells\n~1%", sub: "Secrete: Pancreatic Polypeptide", x: 7.3, y: 3.3, color: C.amber + "" },
];
cells.forEach(c => {
s.addShape(pres.ShapeType.roundRect, { x: c.x, y: c.y, w: 2.6, h: 1.4, fill: { color: c.color }, rectRadius: 0.1 });
s.addText([
{ text: c.label + "\n", options: { fontSize: 14, bold: true, breakLine: false } },
{ text: c.sub, options: { fontSize: 11, bold: false } }
], { x: c.x, y: c.y, w: 2.6, h: 1.4, align: "center", valign: "middle", color: C.white, fontFace: "Calibri" });
});
s.addText("Endocrine cells constitute approximately 1–2% of the total pancreatic mass", {
x: 0.5, y: 5.0, w: 9, h: 0.4, fontSize: 11, italic: true, color: C.teal, align: "center", fontFace: "Calibri"
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 5 – CLASSIFICATION TABLE
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide();
slideHeading(s, "Classification of PanNENs");
sectionTitle(s, "FUNCTIONAL vs NON-FUNCTIONAL");
const rows = [
["Tumour Type", "Cell of Origin", "Hormone", "Malignancy Rate", "Key Syndrome"],
["Insulinoma", "β cell", "Insulin", "~10%", "Hypoglycaemia"],
["Gastrinoma", "G cell / δ cell", "Gastrin", ">50–60%", "Zollinger-Ellison"],
["Glucagonoma", "α cell", "Glucagon", "~60–80%", "Necrolytic migratory erythema"],
["VIPoma", "Non-β islet cell", "VIP", "~60–80%", "Verner-Morrison (WDHA)"],
["Somatostatinoma", "δ cell", "Somatostatin", "~60–70%", "Diabetes, steatorrhoea, cholelithiasis"],
["Non-Functional", "Various", "None*", "~60–90%", "Mass effect (pain, jaundice)"],
];
const colW = [1.5, 1.5, 1.3, 1.4, 3.5];
const rowH = 0.52;
const startX = 0.2, startY = 1.05;
rows.forEach((row, ri) => {
row.forEach((cell, ci) => {
const xPos = startX + colW.slice(0, ci).reduce((a, b) => a + b, 0);
const yPos = startY + ri * rowH;
const bg = ri === 0 ? C.navy : (ri % 2 === 0 ? C.paleBlue : C.white);
const fg = ri === 0 ? C.white : C.textDark;
s.addShape(pres.ShapeType.rect, { x: xPos, y: yPos, w: colW[ci], h: rowH, fill: { color: bg }, line: { color: C.midGray, width: 0.5 } });
s.addText(cell, { x: xPos, y: yPos, w: colW[ci], h: rowH, fontSize: ri === 0 ? 11 : 10.5, bold: ri === 0, color: fg, align: "center", valign: "middle", fontFace: "Calibri" });
});
});
s.addText("*May produce hormones subclinically; diagnosed by mass effect or incidentally", {
x: 0.3, y: 5.15, w: 9.5, h: 0.3, fontSize: 9, italic: true, color: C.midGray, fontFace: "Calibri"
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 6 – PATHOGENESIS & MOLECULAR GENETICS
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.navy);
slideHeading(s, "Pathogenesis & Molecular Genetics");
s.background = { color: C.navy };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1, fill: { color: "0A1E3A" } });
s.addText("Pathogenesis & Molecular Genetics", {
x: 0.4, y: 0.1, w: 9.2, h: 0.8, fontSize: 22, bold: true, color: C.white, fontFace: "Calibri", valign: "middle"
});
const boxes = [
{ title: "MEN1 Mutation", body: "Mutated in familial MEN-1 syndrome AND sporadic PanNENs\nTumour suppressor on chromosome 11q13", color: C.teal, x: 0.3, y: 1.15 },
{ title: "PTEN / TSC2 Loss", body: "Loss-of-function mutations activate the mTOR signalling pathway\n→ Oncogenic proliferation", color: C.green, x: 3.55, y: 1.15 },
{ title: "ATRX / DAXX Mutations", body: "Inactivating mutations in ~50% of PanNENs\nLead to Alternative Lengthening of Telomeres (ALT)\n→ Telomere maintenance without telomerase", color: C.amber, x: 6.8, y: 1.15 },
];
boxes.forEach(b => {
s.addShape(pres.ShapeType.roundRect, { x: b.x, y: b.y, w: 3.1, h: 2.0, fill: { color: b.color }, rectRadius: 0.12 });
s.addText(b.title, { x: b.x + 0.1, y: b.y + 0.08, w: 2.9, h: 0.42, fontSize: 14, bold: true, color: C.white, fontFace: "Calibri" });
s.addText(b.body, { x: b.x + 0.1, y: b.y + 0.52, w: 2.9, h: 1.4, fontSize: 12, color: C.white, fontFace: "Calibri", valign: "top" });
});
addBullets(s, [
bullet("Sporadic PanNEN genome sequencing has identified 3 major recurrent alterations", false),
bullet("MEN1 mutations also found in ~40% of sporadic tumours (not just familial)", 1),
bullet("mTOR pathway activation is therapeutically relevant – target of everolimus", 1),
bullet("ATRX and DAXX are mutually exclusive (operate in the same pathway)", 1),
bullet("Common clinical syndromes: (1) Hyperinsulinism (2) Hypergastrinemia / ZES (3) MEN-1 associated", false),
], 0.3, 3.25, 9.4, 2.1);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 7 – WHO GRADING
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.lightGray);
slideHeading(s, "WHO Grading of PanNENs (2022)");
sectionTitle(s, "GRADING BASED ON PROLIFERATIVE INDEX");
const grades = [
{ grade: "Grade 1 NET\n(Well Differentiated)", mitoses: "<2 / 10 HPF", ki67: "<3%", behavior: "Low malignant potential", color: C.green },
{ grade: "Grade 2 NET\n(Well Differentiated)", mitoses: "2–20 / 10 HPF", ki67: "3–20%", behavior: "Intermediate malignant potential", color: C.amber },
{ grade: "Grade 3 NET\n(Well Differentiated, high proliferative index)", mitoses: ">20 / 10 HPF", ki67: ">20%", behavior: "High malignant potential", color: C.red },
{ grade: "NEC\n(Neuroendocrine Carcinoma – Poorly Differentiated)", mitoses: ">20 / 10 HPF", ki67: ">20%", behavior: "Small cell or large cell type – aggressive", color: "5D0000" },
];
const headers = ["Grade / Type", "Mitoses / 10 HPF", "Ki-67 Index", "Behavior"];
const hW = [2.9, 1.8, 1.5, 3.3];
const sx = 0.25, sy = 1.05;
// Header
headers.forEach((h, i) => {
const xPos = sx + hW.slice(0, i).reduce((a, b) => a + b, 0);
s.addShape(pres.ShapeType.rect, { x: xPos, y: sy, w: hW[i], h: 0.48, fill: { color: C.navy }, line: { color: C.white, width: 0.5 } });
s.addText(h, { x: xPos, y: sy, w: hW[i], h: 0.48, fontSize: 12, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri" });
});
grades.forEach((g, ri) => {
const rowData = [g.grade, g.mitoses, g.ki67, g.behavior];
rowData.forEach((cell, ci) => {
const xPos = sx + hW.slice(0, ci).reduce((a, b) => a + b, 0);
const yPos = sy + 0.48 + ri * 0.88;
const bg = ci === 0 ? g.color : (ri % 2 === 0 ? C.white : C.paleBlue);
s.addShape(pres.ShapeType.rect, { x: xPos, y: yPos, w: hW[ci], h: 0.88, fill: { color: bg }, line: { color: C.midGray, width: 0.5 } });
s.addText(cell, { x: xPos, y: yPos, w: hW[ci], h: 0.88, fontSize: ci === 0 ? 11 : 12, bold: ci === 0, color: ci === 0 ? C.white : C.textDark, align: "center", valign: "middle", fontFace: "Calibri" });
});
});
s.addText("HPF = High-Power Field | NEC = Neuroendocrine Carcinoma | NET = Neuroendocrine Tumour", {
x: 0.3, y: 5.2, w: 9.5, h: 0.28, fontSize: 9, italic: true, color: C.midGray, fontFace: "Calibri"
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 8 – INSULINOMA OVERVIEW
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide();
slideHeading(s, "Insulinoma");
sectionTitle(s, "MOST COMMON FUNCTIONAL PanNET");
const facts = [
{ icon: "β-Cell", label: "Cell of Origin", val: "Pancreatic β cells (insulin-producing)" },
{ icon: "~4/M", label: "Incidence", val: "~4 per million per year (1–32 range)" },
{ icon: ">90%", label: "Benign", val: "More than 90% are benign and solitary" },
{ icon: "<2cm", label: "Tumour Size", val: "Usually < 2 cm; equally distributed in pancreas" },
{ icon: "~10%", label: "MEN-1 Assoc.", val: "~10% associated with MEN-1 syndrome" },
];
facts.forEach((f, i) => {
const row = Math.floor(i / 3), col = i % 3;
const x = 0.3 + col * 3.15, y = 1.1 + row * 1.8;
s.addShape(pres.ShapeType.roundRect, { x, y, w: 2.9, h: 1.55, fill: { color: C.navy }, rectRadius: 0.1 });
s.addText(f.icon, { x, y: y + 0.08, w: 2.9, h: 0.55, fontSize: 20, bold: true, color: C.gold, align: "center", fontFace: "Calibri" });
s.addText(f.label, { x, y: y + 0.58, w: 2.9, h: 0.3, fontSize: 10, color: C.midGray, align: "center", fontFace: "Calibri" });
s.addText(f.val, { x, y: y + 0.88, w: 2.9, h: 0.6, fontSize: 10.5, color: C.white, align: "center", valign: "top", fontFace: "Calibri" });
});
s.addText("Morphology: Solitary pale/red-brown nodule; histologically resembles giant islets; amyloid deposition is a hallmark", {
x: 0.3, y: 4.85, w: 9.4, h: 0.55, fontSize: 12, color: C.teal, italic: true, fontFace: "Calibri", align: "center"
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 9 – INSULINOMA CLINICAL FEATURES & DIAGNOSIS
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.lightGray);
slideHeading(s, "Insulinoma – Clinical Features & Diagnosis");
// Left column – Whipple's Triad box
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.1, w: 4.3, h: 3.8, fill: { color: C.navy }, rectRadius: 0.12 });
s.addText("WHIPPLE'S TRIAD", { x: 0.3, y: 1.2, w: 4.3, h: 0.5, fontSize: 15, bold: true, color: C.gold, align: "center", fontFace: "Calibri" });
s.addText([
{ text: "① Symptoms induced by fasting / exercise\n", options: { breakLine: false } },
{ text: "\n② Hypoglycaemia at time of symptoms\n (plasma glucose < 3.0 mmol/L)\n", options: { breakLine: false } },
{ text: "\n③ Relief of symptoms by glucose\n administration", options: { breakLine: false } },
], { x: 0.45, y: 1.75, w: 4.0, h: 2.9, fontSize: 13, color: C.white, fontFace: "Calibri", valign: "top" });
// Right column
addBullets(s, [
bullet("Clinical Presentation", false),
bullet("Neuroglycopenic: confusion, stupor, loss of consciousness, coma", 1),
bullet("Adrenergic: sweating, weakness, hunger, tremor, nausea, anxiety, palpitations", 1),
bullet("Weight gain (patients learn to eat to survive)", 1),
bullet("Often misdiagnosed as epilepsy or psychiatric illness", 1),
bullet("Diagnostic Tests", false),
bullet("72-hour supervised fast: documented endogenous hyperinsulinism", 1),
bullet("Elevated C-peptide → confirms endogenous insulin (rules out exogenous)", 1),
bullet("Elevated proinsulin levels", 1),
bullet("If fast negative → prolonged oral glucose tolerance test", 1),
], 4.9, 1.05, 4.8, 4.0);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 10 – INSULINOMA IMAGING & TREATMENT
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide();
slideHeading(s, "Insulinoma – Imaging & Treatment");
sectionTitle(s, "LOCALISATION AND SURGICAL MANAGEMENT");
addBullets(s, [
bullet("Localisation (in order of preference)", false),
bullet("CT or MRI – first-line; may miss tumours < 1 cm", 1),
bullet("Endoscopic Ultrasound (EUS) – sensitivity > 90%; best for small tumours", 1),
bullet("Visceral angiography + arterial stimulation venous sampling – for elusive/multiple lesions", 1),
bullet("GLP-1 receptor scintigraphy – promising (insulinomas overexpress GLP-1R) but not universally available", 1),
bullet("Insulinomas are less avid on somatostatin scintigraphy (Octreoscan) – unlike other PanNETs", 1),
bullet("Treatment", false),
bullet("SURGERY is the definitive treatment – curative in >90% of benign cases", 1),
bullet("Exophytic / peripheral tumours → Enucleation (preferred)", 1),
bullet("Head of pancreas → Pancreatoduodenectomy (Whipple)", 1),
bullet("Body/tail → Distal pancreatectomy ± spleen preservation", 1),
bullet("Medical (pre-operative / inoperable):", 1),
bullet("Diazoxide – inhibits insulin release", 1),
bullet("Everolimus – mTOR inhibitor; improves glycaemia + antitumour effect", 1),
bullet("Caution with somatostatin analogues – may suppress counterregulatory hormones → worsen hypoglycaemia", 1),
], 0.4, 1.05, 9.2, 4.2);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 11 – GASTRINOMA OVERVIEW
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.navy);
s.background = { color: C.navy };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1, fill: { color: "0A1E3A" } });
s.addText("Gastrinoma & Zollinger-Ellison Syndrome", {
x: 0.4, y: 0.1, w: 9.2, h: 0.8, fontSize: 22, bold: true, color: C.white, fontFace: "Calibri", valign: "middle"
});
// Stats boxes
const stats = [
{ val: "0.5–4\nper million", label: "Incidence" },
{ val: ">50%", label: "Already metastasised\nat diagnosis" },
{ val: "25%", label: "Associated\nwith MEN-1" },
{ val: "90%", label: "Occur in\nGastrinoma Triangle" },
];
stats.forEach((st, i) => {
colorBox(s, 0.3 + i * 2.4, 1.1, 2.1, 1.5, C.teal, "", C.white);
s.addText(st.val, { x: 0.3 + i * 2.4, y: 1.1, w: 2.1, h: 0.9, fontSize: 20, bold: true, color: C.gold, align: "center", valign: "middle", fontFace: "Calibri" });
s.addText(st.label, { x: 0.3 + i * 2.4, y: 1.95, w: 2.1, h: 0.65, fontSize: 11, color: C.white, align: "center", valign: "top", fontFace: "Calibri" });
});
addBullets(s, [
bullet("Gastrinoma Triangle (90% of tumours): bounded by:", false),
bullet("Medially: junction of neck and body of pancreas", 1),
bullet("Inferiorly: junction of 2nd and 3rd parts of duodenum", 1),
bullet("Superiorly: junction of cystic and common bile ducts", 1),
bullet("Sporadic: mostly duodenal (60–80%), small (<5 mm), multiple", false),
bullet("MEN-1: all tumours in duodenum; multiple; generally smaller", false),
bullet("Histologically bland – rarely shows marked anaplasia", false),
], 0.3, 2.75, 9.4, 2.6);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 12 – GASTRINOMA / ZES CLINICAL & DIAGNOSIS
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.lightGray);
slideHeading(s, "Gastrinoma – Clinical Features & Diagnosis");
// ZES feature boxes
const features = [
{ h: "Peptic Ulcer Disease", b: "Present in >90% of patients\nOften multiple, in unusual locations\nIntractable jejunal ulcers → suspect ZES", c: C.red },
{ h: "Diarrhoea", b: "Present in >50% of patients\nPresenting symptom in ~30%\nCaused by massive gastric acid hypersecretion", c: C.teal },
{ h: "GERD / Reflux", b: "Abdominal pain in >75% of patients\nGER most common symptom\nMay mimic simple reflux disease", c: C.navy },
];
features.forEach((f, i) => {
s.addShape(pres.ShapeType.roundRect, { x: 0.25 + i * 3.25, y: 1.1, w: 3.0, h: 2.0, fill: { color: f.c }, rectRadius: 0.1 });
s.addText(f.h, { x: 0.25 + i * 3.25, y: 1.15, w: 3.0, h: 0.48, fontSize: 13, bold: true, color: C.gold, align: "center", fontFace: "Calibri" });
s.addText(f.b, { x: 0.35 + i * 3.25, y: 1.65, w: 2.8, h: 1.35, fontSize: 11.5, color: C.white, fontFace: "Calibri", valign: "top" });
});
addBullets(s, [
bullet("Diagnosis of ZES", false),
bullet("Cornerstone: Elevated fasting serum gastrin (FSG)", 1),
bullet("If FSG raised → measure gastric pH; pH < 2 + FSG > 10× normal = diagnosis confirmed", 1),
bullet("If FSG < 10× elevated → perform secretin provocation test", 1),
bullet("Pitfall: PPIs cause false elevation of gastrin – must be stopped before testing", 1),
bullet("Imaging: CT, MRI, EUS, Octreotide scintigraphy", 1),
], 0.3, 3.2, 9.4, 2.15);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 13 – GASTRINOMA TREATMENT
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide();
slideHeading(s, "Gastrinoma – Management");
sectionTitle(s, "MEDICAL + SURGICAL APPROACH");
// Two-column layout
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.1, w: 4.3, h: 4.2, fill: { color: C.paleBlue }, rectRadius: 0.1 });
s.addText("MEDICAL MANAGEMENT", { x: 0.3, y: 1.15, w: 4.3, h: 0.45, fontSize: 13, bold: true, color: C.navy, align: "center", fontFace: "Calibri" });
addBullets(s, [
bullet("Proton Pump Inhibitors (PPIs)"),
bullet("First-line for symptom control", 1),
bullet("Rapid resolution of pain and diarrhoea", 1),
bullet("Somatostatin Analogues"),
bullet("Octreotide / lanreotide for refractory cases", 1),
bullet("Control hypergastrinemia", 1),
bullet("Everolimus / Sunitinib"),
bullet("For metastatic / unresectable disease", 1),
], 0.45, 1.65, 4.0, 3.45);
s.addShape(pres.ShapeType.roundRect, { x: 4.9, y: 1.1, w: 4.8, h: 4.2, fill: { color: C.navy }, rectRadius: 0.1 });
s.addText("SURGICAL MANAGEMENT", { x: 4.9, y: 1.15, w: 4.8, h: 0.45, fontSize: 13, bold: true, color: C.gold, align: "center", fontFace: "Calibri" });
addBullets(s, [
{ text: "Recommended for sporadic gastrinomas once symptoms controlled", options: { bullet: { indent: 12 }, fontSize: 13, color: C.white, breakLine: true, paraSpaceAfter: 5 } },
{ text: "Eliminates source of gastrin hypersecretion", options: { bullet: { indent: 12 }, fontSize: 13, color: C.white, breakLine: true, paraSpaceAfter: 5 } },
{ text: "Reduces risk of metastatic disease", options: { bullet: { indent: 12 }, fontSize: 13, color: C.white, breakLine: true, paraSpaceAfter: 5 } },
{ text: "MEN-1: generally surgery for tumours ≥1.5–2 cm (controversial for smaller)", options: { bullet: { indent: 12 }, fontSize: 13, color: C.white, breakLine: true, paraSpaceAfter: 5 } },
{ text: "Prognosis: 5-yr survival 65%, 10-yr 51%; complete resection → 90–100% 5/10-yr survival", options: { bullet: { indent: 12 }, fontSize: 13, color: C.gold, breakLine: true, paraSpaceAfter: 5 } },
], 5.05, 1.65, 4.5, 3.45);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 14 – GLUCAGONOMA
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.lightGray);
slideHeading(s, "Glucagonoma");
sectionTitle(s, "α-CELL TUMOUR");
// Hallmark rash callout
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.1, w: 4.5, h: 2.8, fill: { color: C.red }, rectRadius: 0.12 });
s.addText("NECROLYTIC\nMIGRATORY\nERYTHEMA", { x: 0.3, y: 1.2, w: 4.5, h: 1.1, fontSize: 20, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri" });
s.addText("Hallmark skin rash\n• Intertriginous sites (groin, buttock)\n• Waxes and wanes\n• Blistering, erosive, crusting lesions", { x: 0.4, y: 2.3, w: 4.2, h: 1.5, fontSize: 12, color: C.white, fontFace: "Calibri", valign: "top" });
addBullets(s, [
bullet("Clinical Features – 'The 4 D's of Glucagonoma'", false),
bullet("Dermatitis – necrolytic migratory erythema (pathognomonic)", 1),
bullet("Diabetes (glucose intolerance) – due to glucagon excess", 1),
bullet("Deep vein thrombosis – hypercoagulable state", 1),
bullet("Depression / weight loss", 1),
bullet("Other features: anaemia, glossitis, stomatitis", false),
bullet("Diagnosis", false),
bullet("Elevated fasting plasma glucagon levels (>500 pg/mL is diagnostic)", 1),
bullet("CT/MRI for localisation; usually large at presentation", 1),
bullet("Malignancy rate: 60–80% – often metastasised at diagnosis", 1),
bullet("Treatment: Somatostatin analogues for symptom control; surgery if resectable", false),
], 5.1, 1.05, 4.7, 4.3);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 15 – VIPoma
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide();
slideHeading(s, "VIPoma (Verner-Morrison Syndrome)");
sectionTitle(s, "WDHA SYNDROME");
// WDHA acronym
const wdha = [
{ l: "W", t: "Watery", d: "Profuse secretory diarrhoea\n(> 3 litres/day)", c: C.navy },
{ l: "D", t: "Diarrhoea", d: "Electrolyte loss, dehydration,\nmetabolic derangement", c: C.teal },
{ l: "H", t: "Hypokalaemia", d: "Due to massive GI potassium losses\n→ weakness, arrhythmias", c: C.green },
{ l: "A", t: "Achlorhydria", d: "VIP inhibits gastric acid secretion\n→ absence of gastric acid", c: C.amber },
];
wdha.forEach((w, i) => {
s.addShape(pres.ShapeType.roundRect, { x: 0.3 + i * 2.35, y: 1.05, w: 2.1, h: 2.4, fill: { color: w.c }, rectRadius: 0.12 });
s.addText(w.l, { x: 0.3 + i * 2.35, y: 1.1, w: 2.1, h: 0.85, fontSize: 40, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
s.addText(w.t, { x: 0.3 + i * 2.35, y: 1.88, w: 2.1, h: 0.3, fontSize: 12, bold: true, color: C.gold, align: "center", fontFace: "Calibri" });
s.addText(w.d, { x: 0.3 + i * 2.35, y: 2.2, w: 2.1, h: 1.2, fontSize: 10.5, color: C.white, align: "center", valign: "top", fontFace: "Calibri" });
});
addBullets(s, [
bullet("Pathophysiology: VIP causes massive intestinal fluid / electrolyte secretion"),
bullet("Tumour: Non-β islet cell; malignancy rate ~60–80%"),
bullet("Diagnosis: Elevated fasting plasma VIP levels; CT/MRI for localisation"),
bullet("Stool electrolyte analysis confirms secretory diarrhoea (osmotic gap = 0)"),
bullet("Treatment"),
bullet("Somatostatin analogues (octreotide / lanreotide) – first-line for WDHA control", 1),
bullet("IV fluids and electrolyte replacement – critical acute management", 1),
bullet("Surgical resection for localised disease", 1),
], 0.3, 3.6, 9.4, 1.75);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 16 – SOMATOSTATINOMA & RARE TUMOURS
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.lightGray);
slideHeading(s, "Somatostatinoma & Other Rare Functional Tumours");
// Somatostatinoma triad
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.1, w: 4.6, h: 3.8, fill: { color: C.navy }, rectRadius: 0.12 });
s.addText("SOMATOSTATINOMA", { x: 0.3, y: 1.15, w: 4.6, h: 0.45, fontSize: 14, bold: true, color: C.gold, align: "center", fontFace: "Calibri" });
s.addText("Inhibitory triad:", { x: 0.5, y: 1.65, w: 4.2, h: 0.35, fontSize: 12, bold: true, color: C.amber, fontFace: "Calibri" });
addBullets(s, [
{ text: "Diabetes mellitus (insulin inhibition)", options: { bullet: { indent: 12 }, fontSize: 12, color: C.white, breakLine: true, paraSpaceAfter: 4 } },
{ text: "Steatorrhoea (pancreatic enzyme inhibition)", options: { bullet: { indent: 12 }, fontSize: 12, color: C.white, breakLine: true, paraSpaceAfter: 4 } },
{ text: "Cholelithiasis (gallbladder motility inhibition)", options: { bullet: { indent: 12 }, fontSize: 12, color: C.white, breakLine: true, paraSpaceAfter: 4 } },
{ text: "δ-cell tumour; ~60–70% malignant", options: { bullet: { indent: 12 }, fontSize: 12, color: C.gold, breakLine: true, paraSpaceAfter: 4 } },
{ text: "Mostly pancreatic head / duodenum", options: { bullet: { indent: 12 }, fontSize: 12, color: C.white, breakLine: true, paraSpaceAfter: 4 } },
{ text: "Associated with NF-1 (neurofibromatosis)", options: { bullet: { indent: 12 }, fontSize: 12, color: C.white, breakLine: true, paraSpaceAfter: 4 } },
], 0.4, 2.05, 4.3, 2.7);
// Rare tumours column
s.addShape(pres.ShapeType.roundRect, { x: 5.2, y: 1.1, w: 4.5, h: 3.8, fill: { color: C.lightGray }, rectRadius: 0.12, line: { color: C.teal, width: 1.5 } });
s.addText("OTHER RARE FUNCTIONAL TUMOURS", { x: 5.2, y: 1.15, w: 4.5, h: 0.45, fontSize: 12, bold: true, color: C.teal, align: "center", fontFace: "Calibri" });
const rare = [
{ t: "GRFoma", d: "Growth hormone releasing factor → acromegaly" },
{ t: "ACTHoma", d: "ACTH secretion → Cushing's syndrome (Rx: ketoconazole, metyrapone)" },
{ t: "PPoma", d: "Pancreatic polypeptide – usually non-functional" },
{ t: "Carcinoid", d: "Serotonin-releasing → carcinoid syndrome (flushing, diarrhoea)" },
{ t: "PTH-related", d: "Ectopic PTH secretion → hypercalcaemia" },
];
rare.forEach((r, i) => {
s.addText(r.t + ":", { x: 5.4, y: 1.7 + i * 0.6, w: 1.3, h: 0.5, fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri", valign: "top" });
s.addText(r.d, { x: 6.7, y: 1.7 + i * 0.6, w: 2.8, h: 0.5, fontSize: 11, color: C.textDark, fontFace: "Calibri", valign: "top" });
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 17 – NON-FUNCTIONING PanNETs
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide();
slideHeading(s, "Non-Functioning PanNETs");
sectionTitle(s, "LARGEST SUBGROUP – DIAGNOSED LATE");
addBullets(s, [
bullet("Definition: No clinically apparent hormonal hypersecretion syndrome"),
bullet("May produce hormones subclinically (e.g. pancreatic polypeptide, chromogranin A)"),
bullet("Account for 25–100% of all P-NETs depending on series"),
bullet("Why diagnosed late?"),
bullet("No hormonal symptoms → come to attention only via mass effect or incidentally", 1),
bullet("Symptoms: abdominal pain, jaundice (biliary obstruction), weight loss, GI bleeding", 1),
bullet("Often larger at presentation than functional tumours", 1),
bullet("Malignancy: ~60–90% are malignant at diagnosis"),
bullet("Liver metastases are the most common site of spread"),
bullet("Diagnosis"),
bullet("CT/MRI – typically large, well-defined, enhancing lesions on contrast imaging", 1),
bullet("Somatostatin receptor scintigraphy (Octreoscan) / DOTATATE PET-CT – highly sensitive", 1),
bullet("Serum markers: Chromogranin A (CgA), NSE, pancreatic polypeptide", 1),
bullet("EUS-guided biopsy for tissue diagnosis and grading", 1),
bullet("Treatment: Surgery (if resectable); SSAs for antiproliferative effect; everolimus/sunitinib for advanced disease"),
], 0.4, 1.05, 9.2, 4.3);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 18 – MEN-1 ASSOCIATION
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.navy);
s.background = { color: C.navy };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1, fill: { color: "0A1E3A" } });
s.addText("Multiple Endocrine Neoplasia Type 1 (MEN-1) & PanNETs", {
x: 0.4, y: 0.1, w: 9.2, h: 0.8, fontSize: 21, bold: true, color: C.white, fontFace: "Calibri", valign: "middle"
});
// MEN-1 triad
const organs = [
{ label: "Parathyroid\n(>90%)", sub: "Hyperparathyroidism\nHypercalcaemia", c: C.teal },
{ label: "Pituitary\n(30–40%)", sub: "Prolactinoma most common\nAlso GH / ACTH adenomas", c: C.green },
{ label: "Pancreas\n(60–70%)", sub: "Gastrinoma (most common)\nInsulinoma, VIPoma, etc.", c: C.amber },
];
organs.forEach((o, i) => {
s.addShape(pres.ShapeType.roundRect, { x: 0.5 + i * 3.1, y: 1.15, w: 2.7, h: 2.2, fill: { color: o.c }, rectRadius: 0.12 });
s.addText(o.label, { x: 0.5 + i * 3.1, y: 1.2, w: 2.7, h: 0.85, fontSize: 16, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri" });
s.addText(o.sub, { x: 0.6 + i * 3.1, y: 2.05, w: 2.5, h: 1.25, fontSize: 12, color: C.white, fontFace: "Calibri", valign: "top", align: "center" });
});
addBullets(s, [
bullet("MEN-1 gene (chromosome 11q13) encodes Menin – a tumour suppressor", false),
bullet("Autosomal dominant inheritance with high penetrance", false),
bullet("Pancreatic manifestations in MEN-1:", false),
bullet("Gastrinomas most common (multiple, duodenal, small, often malignant)", 1),
bullet("Insulinomas: ~10% of insulinomas are MEN-1 associated", 1),
bullet("PanNETs in MEN-1: typically multiple, smaller, duodenal", 1),
bullet("Surgery role controversial for small tumours (<1.5 cm) – watchful waiting may be preferred", 1),
bullet("Screening: Annual surveillance with MRI, EUS, biochemical markers in MEN-1 families", false),
], 0.3, 3.45, 9.4, 1.95);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 19 – IMAGING & DIAGNOSIS
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.lightGray);
slideHeading(s, "Imaging & Diagnostic Workup of PanNETs");
sectionTitle(s, "LOCALISATION STRATEGY");
const modalities = [
{ t: "CT Scan\n(Triple Phase)", b: "First-line cross-sectional imaging\nHypervascular tumours enhance on arterial phase\nDetects liver metastases", c: C.navy, x: 0.2, y: 1.1 },
{ t: "MRI", b: "Superior soft tissue contrast\nPreferred for small lesions and liver mets\nHigh sensitivity for insulinomas", c: C.teal, x: 2.6, y: 1.1 },
{ t: "EUS\n(Endoscopic US)", b: "Best for tumours < 1 cm\nSensitivity > 90% for insulinoma\nAllows FNA biopsy for grading", c: C.green, x: 5.0, y: 1.1 },
{ t: "DOTATATE\nPET-CT", b: "Somatostatin receptor imaging\nVery high sensitivity for most PanNETs (except insulinoma)\nDetects occult / metastatic disease", c: C.amber, x: 7.4, y: 1.1 },
];
modalities.forEach(m => {
s.addShape(pres.ShapeType.roundRect, { x: m.x, y: m.y, w: 2.2, h: 2.7, fill: { color: m.c }, rectRadius: 0.1 });
s.addText(m.t, { x: m.x, y: m.y + 0.08, w: 2.2, h: 0.65, fontSize: 13, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri" });
s.addText(m.b, { x: m.x + 0.1, y: m.y + 0.78, w: 2.0, h: 1.85, fontSize: 11, color: C.white, fontFace: "Calibri", valign: "top" });
});
addBullets(s, [
bullet("Biochemical Markers:", false),
bullet("Chromogranin A (CgA) – general marker; elevated in 70–80%; false positives with PPIs", 1),
bullet("NSE (Neuron-Specific Enolase) – marker for aggressive/poorly differentiated tumours", 1),
bullet("Specific hormones: fasting insulin, gastrin, glucagon, VIP, somatostatin", 1),
bullet("Histology: Synaptophysin and Chromogranin A IHC confirm neuroendocrine origin; Ki-67 for grading", false),
], 0.3, 3.9, 9.4, 1.5);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 20 – MANAGEMENT OVERVIEW
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide();
slideHeading(s, "Management Principles – PanNETs");
sectionTitle(s, "MULTIMODAL APPROACH");
const steps = [
{ n: "1", t: "Control Hormone Excess", b: "PPIs (gastrinoma)\nDiazoxide (insulinoma)\nSSAs: octreotide / lanreotide (glucagonoma, VIPoma)\nEverolimus (insulinoma glycaemia)", c: C.navy },
{ n: "2", t: "Surgical Resection", b: "Curative intent for localised disease\nEnucleation / pancreatectomy\nLaparotomy + intraoperative US if imaging negative", c: C.teal },
{ n: "3", t: "Antiproliferative Therapy", b: "SSAs (octreotide LAR / lanreotide)\nEverolimus (mTOR inhibitor)\nSunitinib (tyrosine kinase inhibitor)", c: C.green },
{ n: "4", t: "Liver-Directed Therapy", b: "Hepatic arterial embolisation\nRFA / microwave ablation\nLiver resection for resectable mets", c: C.amber },
{ n: "5", t: "PRRT", b: "Peptide Receptor Radionuclide Therapy\nLu-177 DOTATATE for SSR-positive metastatic disease\nSignificant PFS benefit (NETTER-1 trial)", c: C.red },
];
steps.forEach((st, i) => {
const x = 0.25 + (i % 3) * 3.2;
const y = i < 3 ? 1.1 : 3.15;
if (i === 3) { /* second row left */ }
s.addShape(pres.ShapeType.roundRect, { x, y, w: 2.9, h: 1.85, fill: { color: st.c }, rectRadius: 0.1 });
s.addText(st.n, { x, y: y + 0.05, w: 0.55, h: 0.55, fontSize: 18, bold: true, color: C.gold, fontFace: "Calibri", align: "center" });
s.addText(st.t, { x: x + 0.45, y: y + 0.05, w: 2.4, h: 0.5, fontSize: 12, bold: true, color: C.white, fontFace: "Calibri", valign: "middle" });
s.addText(st.b, { x: x + 0.1, y: y + 0.6, w: 2.7, h: 1.2, fontSize: 10.5, color: C.white, fontFace: "Calibri", valign: "top" });
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 21 – SOMATOSTATIN ANALOGUES
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.lightGray);
slideHeading(s, "Somatostatin Analogues – Key Pharmacology");
sectionTitle(s, "CORNERSTONE OF MEDICAL MANAGEMENT");
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.1, w: 9.4, h: 1.0, fill: { color: C.teal }, rectRadius: 0.1 });
s.addText("Mechanism: SSAs bind somatostatin receptors (SSTR2/5) on tumour cells → inhibit hormone secretion and tumour proliferation", {
x: 0.4, y: 1.15, w: 9.2, h: 0.9, fontSize: 13, color: C.white, fontFace: "Calibri", valign: "middle", bold: false
});
addBullets(s, [
bullet("Drugs: Octreotide (short-acting / LAR) · Lanreotide (Autogel / Somatuline)"),
bullet("Indications in PanNETs:"),
bullet("Symptom control: gastrinoma, glucagonoma, VIPoma, somatostatinoma, carcinoid syndrome", 1),
bullet("Antiproliferative: approved for G1/G2 tumours (PROMID, CLARINET trials)", 1),
bullet("AVOID in insulinoma as monotherapy – may suppress counterregulatory hormones (glucagon, GH)", 1),
bullet("Side Effects:"),
bullet("GI: diarrhoea, steatorrhoea, nausea", 1),
bullet("Cholelithiasis (inhibits gallbladder motility)", 1),
bullet("Hyperglycaemia (inhibits insulin secretion)", 1),
bullet("Monitoring: Chromogranin A levels and imaging every 3–6 months on therapy"),
], 0.4, 2.2, 9.2, 3.1);
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 22 – PROGNOSIS COMPARISON
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide();
slideHeading(s, "Prognosis of PanNENs");
sectionTitle(s, "SURVIVAL DEPENDS ON GRADE, STAGE & TUMOUR TYPE");
const data = [
{ t: "Insulinoma", mal: "~10%", surv: "Excellent (>90% cured by surgery)", bar: 90, c: C.green },
{ t: "Gastrinoma", mal: ">50%", surv: "5-yr 65%, 10-yr 51%\n(Complete resection → 90-100%)", bar: 65, c: C.amber },
{ t: "Glucagonoma", mal: "60–80%", surv: "Poor – usually metastasised at diagnosis", bar: 40, c: C.red },
{ t: "VIPoma", mal: "60–80%", surv: "Moderate with SSA control", bar: 50, c: C.teal },
{ t: "Non-Functional", mal: "60–90%", surv: "Variable – depends on grade", bar: 55, c: C.navy },
];
s.addText("Tumour", { x: 0.3, y: 1.05, w: 2.2, h: 0.4, fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri" });
s.addText("Malignancy Rate", { x: 2.6, y: 1.05, w: 1.8, h: 0.4, fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri", align: "center" });
s.addText("Approximate 5-yr Survival", { x: 4.5, y: 1.05, w: 5.2, h: 0.4, fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri" });
data.forEach((d, i) => {
const y = 1.55 + i * 0.82;
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y, w: 2.1, h: 0.65, fill: { color: d.c }, rectRadius: 0.06 });
s.addText(d.t, { x: 0.3, y, w: 2.1, h: 0.65, fontSize: 13, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri" });
s.addText(d.mal, { x: 2.55, y, w: 1.8, h: 0.65, fontSize: 13, color: C.red, align: "center", valign: "middle", fontFace: "Calibri", bold: true });
// bar
s.addShape(pres.ShapeType.rect, { x: 4.5, y: y + 0.12, w: 5.0 * d.bar / 100, h: 0.4, fill: { color: d.c } });
s.addText(d.surv, { x: 4.5, y: y + 0.0, w: 5.0, h: 0.65, fontSize: 10, color: C.textDark, valign: "middle", fontFace: "Calibri" });
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 23 – COMPARISON SUMMARY TABLE
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.lightGray);
slideHeading(s, "Quick Comparison – Functional PanNETs");
const rows = [
["Feature", "Insulinoma", "Gastrinoma", "Glucagonoma", "VIPoma"],
["Hormone", "Insulin", "Gastrin", "Glucagon", "VIP"],
["Key Symptom", "Hypoglycaemia\n(Whipple's triad)", "PUD, diarrhoea\n(ZES)", "NME rash\nDiabetes", "WDHA\n(watery diarrhoea)"],
["Diagnosis", "72-hr fast\nC-peptide↑", "FSG↑ + pH<2\nSecretin test", "Plasma glucagon\n>500 pg/mL", "Plasma VIP↑\nStool osmol gap"],
["Malignancy", "~10% (best prognosis)", "~50–60%", "~60–80%", "~60–80%"],
["Treatment", "Surgery\n(enucleation)", "PPI + Surgery", "SSA + Surgery", "IV fluids + SSA"],
["MEN-1 Link", "~10%", "~25%", "Rare", "Rare"],
];
const cW = [1.9, 1.85, 1.85, 1.85, 1.85];
const rH = 0.65;
const sx = 0.15, sy = 1.05;
rows.forEach((row, ri) => {
row.forEach((cell, ci) => {
const x = sx + cW.slice(0, ci).reduce((a, b) => a + b, 0);
const y = sy + ri * rH;
const isH = ri === 0;
const isFeat = ci === 0;
const bg = isH ? C.navy : (isFeat ? C.softBlue : (ri % 2 === 0 ? C.white : C.paleBlue));
s.addShape(pres.ShapeType.rect, { x, y, w: cW[ci], h: rH, fill: { color: bg }, line: { color: C.midGray, width: 0.5 } });
s.addText(cell, { x, y, w: cW[ci], h: rH, fontSize: isH ? 11 : 10.5, bold: isH || isFeat, color: (isH || isFeat) ? C.white : C.textDark, align: "center", valign: "middle", fontFace: "Calibri" });
});
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 24 – KEY EXAM POINTS
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.navy);
s.background = { color: C.navy };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1, fill: { color: "0A1E3A" } });
s.addText("High-Yield Exam Points", {
x: 0.4, y: 0.1, w: 9.2, h: 0.8, fontSize: 24, bold: true, color: C.gold, fontFace: "Calibri", valign: "middle"
});
const points = [
"Most common PanNET = Insulinoma (and most are benign ~90%)",
"Whipple's triad: symptoms with fasting + hypoglycaemia + relief with glucose",
"Most common functional malignant PanNET = Gastrinoma",
"ZES: PUD + diarrhoea + elevated FSG; intractable jejunal ulcers are a red flag",
"Gastrinoma triangle: 90% of gastrinomas arise within this anatomic zone",
"Necrolytic migratory erythema (NME) = pathognomonic for glucagonoma",
"WDHA syndrome (Watery Diarrhoea, Hypokalaemia, Achlorhydria) = VIPoma",
"Ki-67 index determines grade; >20% = Grade 3 NET or NEC",
"ATRX / DAXX mutations in ~50% of sporadic PanNENs → ALT mechanism",
"MEN-1 (11q13): parathyroid + pituitary + pancreas; gastrinoma most common PanNET in MEN-1",
"Somatostatin analogues = cornerstone of medical management (AVOID monotherapy in insulinoma)",
"DOTATATE PET-CT is most sensitive for somatostatin receptor-positive PanNETs",
];
points.forEach((p, i) => {
const col = i < 6 ? 0 : 1;
const row = i < 6 ? i : i - 6;
const x = col === 0 ? 0.3 : 5.2;
const y = 1.1 + row * 0.73;
s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.6, h: 0.62, fill: { color: C.softBlue }, rectRadius: 0.06, line: { color: C.teal, width: 0.8 } });
s.addText([
{ text: "★ ", options: { color: C.gold, bold: true, fontSize: 11 } },
{ text: p, options: { color: C.white, fontSize: 10.5 } }
], { x: x + 0.08, y, w: 4.45, h: 0.62, fontFace: "Calibri", valign: "middle" });
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 25 – SUMMARY MIND MAP / FLOWCHART
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.lightGray);
slideHeading(s, "Summary – Approach to a Patient with Suspected PanNET");
const steps2 = [
{ t: "Clinical Suspicion", b: "Hypoglycaemia\nPeptic ulcers/ZES\nNME rash\nWDHA diarrhoea\nMass effect", c: C.navy, x: 0.2, y: 1.1 },
{ t: "Biochemical Tests", b: "Fasting glucose, insulin,\ngastrin, glucagon, VIP\nCgA, NSE\n72-hr fast if insulinoma", c: C.teal, x: 3.4, y: 1.1 },
{ t: "Imaging", b: "CT/MRI (triple phase)\nEUS for small lesions\nDOTATATE PET-CT\n(not insulinoma)", c: C.green, x: 6.6, y: 1.1 },
{ t: "Histology & Grade", b: "Synaptophysin / CgA IHC\nKi-67 index (G1/G2/G3)\nDifferentiation status", c: C.amber, x: 0.2, y: 3.5 },
{ t: "Staging & MEN-1 Screen", b: "Liver / lymph node mets\nFamily history\nCalcium, PTH, pituitary MRI", c: C.red, x: 3.4, y: 3.5 },
{ t: "Management", b: "Surgical resection\nMedical: SSA / PPI / diazoxide\nEvero/Sunitinib / PRRT\nLiver-directed Rx", c: C.softBlue, x: 6.6, y: 3.5 },
];
steps2.forEach(st => {
s.addShape(pres.ShapeType.roundRect, { x: st.x, y: st.y, w: 3.0, h: 1.95, fill: { color: st.c }, rectRadius: 0.1 });
s.addText(st.t, { x: st.x + 0.1, y: st.y + 0.08, w: 2.8, h: 0.48, fontSize: 13, bold: true, color: C.gold, fontFace: "Calibri", align: "center" });
s.addText(st.b, { x: st.x + 0.12, y: st.y + 0.6, w: 2.76, h: 1.25, fontSize: 11, color: C.white, fontFace: "Calibri", valign: "top", align: "center" });
});
// Arrows
[[1.2, 2.35, 0.55, 2.35], [4.4, 2.35, 0.55, 2.35], [1.2, 4.75, 0.55, 4.75], [4.4, 4.75, 0.55, 4.75]].forEach(([x1, y1, x2, y2]) => {
s.addShape(pres.ShapeType.line, { x: x1, y: y1, w: x2, h: 0, line: { color: C.amber, width: 2, dashType: "dash" } });
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 26 – REFERENCES
// ─────────────────────────────────────────────────────────────────────────────
{
const s = addSlide(C.navy);
s.background = { color: C.navy };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1, fill: { color: "0A1E3A" } });
s.addText("References & Further Reading", {
x: 0.4, y: 0.1, w: 9.2, h: 0.8, fontSize: 22, bold: true, color: C.gold, fontFace: "Calibri", valign: "middle"
});
const refs = [
"1. Kumar V, Abbas A, Aster J. Robbins & Cotran Pathologic Basis of Disease. 10th ed. 2023. Ch.19 – Pancreatic Neuroendocrine Neoplasms.",
"2. Bailey RW, Love M. Bailey and Love's Short Practice of Surgery. 28th ed. 2022. Ch.57 – Pancreatic Neuroendocrine Tumours.",
"3. Loscalzo J et al. Harrison's Principles of Internal Medicine. 22nd ed. 2025. Ch.89 – Pancreatic NETs.",
"4. Kumar V, Abbas A, Aster J. Robbins & Kumar Basic Pathology. 11th ed. 2023. Ch.18 – PanNETs.",
"5. Yamada T et al. Yamada's Textbook of Gastroenterology. 7th ed. 2019. Ch.25 – Pancreatic Neuroendocrine Tumours.",
"6. WHO Classification of Tumours. Digestive System Tumours. 5th ed. 2019 – Grading criteria for PanNENs.",
"7. Strosberg J et al. Phase 3 Trial of 177Lu-DOTATATE for Midgut Neuroendocrine Tumors (NETTER-1). NEJM 2017.",
];
refs.forEach((r, i) => {
s.addText(r, {
x: 0.4, y: 1.1 + i * 0.62, w: 9.2, h: 0.55, fontSize: 11, color: i === 0 ? C.gold : C.white,
fontFace: "Calibri", valign: "middle"
});
});
}
// ─────────────────────────────────────────────────────────────────────────────
// WRITE FILE
// ─────────────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/endocrine-pancreas-ppt/Endocrine_Tumours_Pancreas.pptx" })
.then(() => console.log("DONE: Endocrine_Tumours_Pancreas.pptx written successfully"))
.catch(e => { console.error("ERROR:", e); process.exit(1); });
cd /home/daytona/workspace/endocrine-pancreas-ppt && node build.js 2>&1
ls -lh /home/daytona/workspace/endocrine-pancreas-ppt/Endocrine_Tumours_Pancreas.pptx
Endocrine Tumours Pancreas
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide – bold navy/gold design |
| 2 | Outline – 13-topic colour-coded index |
| 3 | Introduction – definition, incidence, functional vs non-functional |
| 4 | Islets of Langerhans – cell types & hormones diagram (β, α, δ, PP) |
| 5 | Classification table – all tumour types, cell of origin, malignancy rate, syndrome |
| 6 | Pathogenesis & Molecular Genetics – MEN1, PTEN/TSC2/mTOR, ATRX/DAXX/ALT |
| 7 | WHO Grading – G1/G2/G3 NET and NEC with mitoses & Ki-67 table |
| 8 | Insulinoma overview – incidence, benign rate, morphology cards |
| 9 | Insulinoma clinical & diagnosis – Whipple's triad box + neuroglycopenic/adrenergic features |
| 10 | Insulinoma imaging & treatment – EUS, diazoxide, everolimus, surgery |
| 11 | Gastrinoma overview – gastrinoma triangle, stats, MEN-1 link |
| 12 | Gastrinoma / ZES clinical & diagnosis – PUD, diarrhoea, FSG testing, secretin provocation |
| 13 | Gastrinoma management – PPI + surgery; prognosis data |
| 14 | Glucagonoma – NME rash hallmark, "4 D's", diagnosis |
| 15 | VIPoma – WDHA acronym layout, pathophysiology, management |
| 16 | Somatostatinoma & rare tumours – inhibitory triad, ACTHoma, GRFoma, carcinoid |
| 17 | Non-functioning PanNETs – why diagnosed late, imaging, markers |
| 18 | MEN-1 association – parathyroid/pituitary/pancreas triad, genetics, surveillance |
| 19 | Imaging workup – CT, MRI, EUS, DOTATATE PET-CT; biochemical markers |
| 20 | Management principles – 5-step multimodal framework |
| 21 | Somatostatin analogues – mechanism, indications, side effects |
| 22 | Prognosis comparison – bar-chart style comparison across tumour types |
| 23 | Quick comparison table – one-slide summary of all 4 major functional tumours |
| 24 | High-yield exam points – 12 starred boxes on dark background |
| 25 | Summary flowchart – 6-step approach to a suspected PanNET patient |
| 26 | References – key textbooks and NETTER-1 trial |
Increase the slide count to 45 and elaborate recent articles
"pancreatic neuroendocrine"[MeSH Terms] AND "treatment"[MeSH Terms]
"pancreatic neuroendocrine" AND "PRRT" AND "lutetium"
"pancreatic neuroendocrine" AND "everolimus" OR "sunitinib"
"insulinoma" AND "diagnosis" AND "management"
PMID: 41387032
"pancreatic neuroendocrine"[MeSH] AND "everolimus"[MeSH]
"pancreatic neuroendocrine tumor" AND "molecular" AND "targeted therapy"
"pancreatic neuroendocrine" AND "immunotherapy" AND "checkpoint"
PMID: 38617746
PMID: 41916478
PMID: 37754542
PMID: 39213785
Error please rectify
~/endocrine-pancreas-ppt
Please give the ppt enlarged to 45 slides as asked earlier