Prepare ppt on Recurrent respiratory papillomas and hemangioma of larynx
ls /home/daytona/workspace/ && mkdir -p /home/daytona/workspace/larynx-ppt
~/larynx-ppt/create_ppt.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
pres.title = 'Recurrent Respiratory Papillomas and Hemangioma of Larynx';
// Color palette - deep medical blue/teal theme
const DARK_BG = "0D2137"; // Dark navy - title slides
const MID_BG = "103A5A"; // Deep blue - section headers
const ACCENT = "1A9D8F"; // Teal accent
const LIGHT_BG = "EAF4F7"; // Very light blue - content slides
const WHITE = "FFFFFF";
const TEXT_DARK = "0D2137";
const TEXT_MID = "1A3A50";
const GOLD = "F0A500";
const LIGHT_ACCENT = "C8E6E3";
// Helper: add a section divider slide
function sectionSlide(pres, title, subtitle) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: MID_BG } });
// Accent bar left
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 5.625, fill: { color: ACCENT } });
// Accent bar bottom
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.1, w: 10, h: 0.12, fill: { color: ACCENT } });
s.addText(title, {
x: 0.5, y: 1.6, w: 9, h: 1.2,
fontSize: 36, bold: true, color: WHITE, fontFace: "Calibri",
align: "center"
});
if (subtitle) {
s.addText(subtitle, {
x: 0.5, y: 2.9, w: 9, h: 0.7,
fontSize: 20, color: LIGHT_ACCENT, fontFace: "Calibri",
align: "center"
});
}
return s;
}
// Helper: content slide
function contentSlide(pres, title, bullets, opts = {}) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
// Top bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.85, fill: { color: DARK_BG } });
// Accent stripe
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 10, h: 0.07, fill: { color: ACCENT } });
// Bottom bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.3, w: 10, h: 0.325, fill: { color: DARK_BG } });
s.addText(title, {
x: 0.3, y: 0.1, w: 9.4, h: 0.65,
fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri",
align: "left", valign: "middle", margin: 0
});
const items = bullets.map((b, i) => {
if (typeof b === 'string') {
return { text: b, options: { bullet: { type: "bullet" }, breakLine: i < bullets.length - 1, fontSize: opts.fontSize || 17, color: TEXT_DARK, fontFace: "Calibri", paraSpaceAfter: 4 } };
}
return b;
});
s.addText(items, {
x: 0.35, y: 1.05, w: opts.w || 9.3, h: opts.h || 4.1,
valign: "top"
});
return s;
}
// Helper: two-column content slide
function twoColSlide(pres, title, leftTitle, leftBullets, rightTitle, rightBullets, leftColor, rightColor) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.85, fill: { color: DARK_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 10, h: 0.07, fill: { color: ACCENT } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.3, w: 10, h: 0.325, fill: { color: DARK_BG } });
s.addText(title, {
x: 0.3, y: 0.1, w: 9.4, h: 0.65,
fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri",
align: "left", valign: "middle", margin: 0
});
// Left col header
s.addShape(pres.ShapeType.roundRect, { x: 0.25, y: 0.98, w: 4.55, h: 0.42, fill: { color: leftColor || "1A5276" }, rectRadius: 0.05 });
s.addText(leftTitle, { x: 0.25, y: 0.98, w: 4.55, h: 0.42, fontSize: 14, bold: true, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle" });
// Right col header
s.addShape(pres.ShapeType.roundRect, { x: 5.2, y: 0.98, w: 4.55, h: 0.42, fill: { color: rightColor || "117A65" }, rectRadius: 0.05 });
s.addText(rightTitle, { x: 5.2, y: 0.98, w: 4.55, h: 0.42, fontSize: 14, bold: true, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle" });
// Left content
const leftItems = leftBullets.map((b, i) => ({ text: b, options: { bullet: { type: "bullet" }, breakLine: i < leftBullets.length - 1, fontSize: 15, color: TEXT_DARK, fontFace: "Calibri", paraSpaceAfter: 3 } }));
s.addText(leftItems, { x: 0.25, y: 1.46, w: 4.55, h: 3.75, valign: "top" });
// Right content
const rightItems = rightBullets.map((b, i) => ({ text: b, options: { bullet: { type: "bullet" }, breakLine: i < rightBullets.length - 1, fontSize: 15, color: TEXT_DARK, fontFace: "Calibri", paraSpaceAfter: 3 } }));
s.addText(rightItems, { x: 5.2, y: 1.46, w: 4.55, h: 3.75, valign: "top" });
// Divider line
s.addShape(pres.ShapeType.line, { x: 4.9, y: 1.0, w: 0, h: 4.2, line: { color: ACCENT, width: 1.5 } });
return s;
}
// ============================================================
// SLIDE 1: TITLE SLIDE
// ============================================================
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
// Decorative circles
s.addShape(pres.ShapeType.ellipse, { x: 7.5, y: -1.2, w: 4, h: 4, fill: { color: MID_BG }, line: { color: MID_BG } });
s.addShape(pres.ShapeType.ellipse, { x: -1.5, y: 3.5, w: 3.5, h: 3.5, fill: { color: MID_BG }, line: { color: MID_BG } });
// Accent bar
s.addShape(pres.ShapeType.rect, { x: 0.6, y: 1.2, w: 0.1, h: 2.5, fill: { color: ACCENT } });
s.addText("Recurrent Respiratory Papillomas", {
x: 1.0, y: 1.0, w: 8.5, h: 0.85,
fontSize: 30, bold: true, color: WHITE, fontFace: "Calibri"
});
s.addText("& Hemangioma of Larynx", {
x: 1.0, y: 1.85, w: 8.5, h: 0.75,
fontSize: 30, bold: true, color: GOLD, fontFace: "Calibri"
});
s.addText("Benign Laryngeal Lesions — Pathology, Diagnosis & Management", {
x: 1.0, y: 2.72, w: 8.5, h: 0.55,
fontSize: 16, color: LIGHT_ACCENT, fontFace: "Calibri", italic: true
});
s.addShape(pres.ShapeType.rect, { x: 0.6, y: 3.45, w: 8.8, h: 0.04, fill: { color: ACCENT } });
s.addText("Otolaryngology — Head & Neck Surgery", {
x: 0.6, y: 3.6, w: 8.5, h: 0.4,
fontSize: 14, color: LIGHT_ACCENT, fontFace: "Calibri"
});
}
// ============================================================
// SLIDE 2: OUTLINE
// ============================================================
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.85, fill: { color: DARK_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 10, h: 0.07, fill: { color: ACCENT } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.3, w: 10, h: 0.325, fill: { color: DARK_BG } });
s.addText("Outline", {
x: 0.3, y: 0.1, w: 9.4, h: 0.65,
fontSize: 24, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
const cols = [
{ num: "01", text: "Recurrent Respiratory\nPapillomatosis (RRP)" },
{ num: "02", text: "Etiology & Epidemiology" },
{ num: "03", text: "Pathology & HPV\nSubtypes" },
{ num: "04", text: "Clinical Presentation\n& Diagnosis" },
{ num: "05", text: "Staging & Grading" },
{ num: "06", text: "Treatment of RRP" },
{ num: "07", text: "Hemangioma of Larynx" },
{ num: "08", text: "Types, Diagnosis &\nManagement" },
{ num: "09", text: "Comparison & Summary" },
];
cols.forEach((item, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const x = 0.35 + col * 3.22;
const y = 1.05 + row * 1.38;
s.addShape(pres.ShapeType.roundRect, { x, y, w: 3.0, h: 1.2, fill: { color: i < 6 ? MID_BG : "0A4A3A" }, rectRadius: 0.08 });
s.addText(item.num, { x, y: y + 0.05, w: 3.0, h: 0.38, fontSize: 22, bold: true, color: GOLD, fontFace: "Calibri", align: "center" });
s.addText(item.text, { x, y: y + 0.43, w: 3.0, h: 0.7, fontSize: 13, color: LIGHT_ACCENT, fontFace: "Calibri", align: "center" });
});
}
// ============================================================
// PART 1: RRP
// ============================================================
sectionSlide(pres, "PART 1", "Recurrent Respiratory Papillomatosis (RRP)");
// SLIDE 4: Definition & Overview
contentSlide(pres, "Recurrent Respiratory Papillomatosis — Overview", [
"Most common benign neoplasms seen by laryngologists",
"84% of all benign laryngeal tumors in large series (Jones et al.)",
"Caused by Human Papilloma Virus (HPV) — squamous papillomas",
"Primary site: larynx at epithelial transition zones (stratified → respiratory epithelium)",
"Can extend to trachea, bronchi, and oropharynx",
"Estimated incidence: 4.3 per 100,000 children; 1.8 per 100,000 adults",
"Two clinical forms: Juvenile-onset (JORRP) and Adult-onset (AORRP)",
"Characterized by recurrence — rarely curable, requires repeated intervention"
]);
// SLIDE 5: Epidemiology two-col
twoColSlide(pres, "Epidemiology",
"Juvenile-Onset (JORRP)", [
"Vertical transmission from mother",
"Mothers with genital condyloma (HPV)",
"Cesarean section does NOT reduce incidence",
"Risk factors:",
" • First-born child",
" • Young mother",
" • Vaginal delivery",
"Usually diagnosed in early childhood",
"More aggressive course",
],
"Adult-Onset (AORRP)", [
"Aetiology less well defined",
"Sexual transmission implicated",
"HPV association with oropharyngeal cancer",
"Less aggressive than juvenile form",
"May present at any age in adults",
"Often slower progression",
"~1 in 400 children at risk actually develop RRP (low infectivity)",
],
"1A4A7A", "0A6645"
);
// SLIDE 6: HPV Subtypes & Pathology
contentSlide(pres, "HPV Subtypes & Pathology", [
"Most common subtypes: HPV 6 and HPV 11 (majority of cases)",
"HPV 11: associated with more aggressive disease, more frequent surgery, higher risk of tracheopulmonary spread",
"HPV 16 and 18: higher risk of malignant transformation",
"Lesions: exophytic, warty, papillomatous growths of stratified squamous epithelium",
"Microscopically: fibrovascular cores covered by stratified squamous epithelium with koilocytic changes",
"Most common sites: true vocal folds, laryngeal ventricles, subglottis",
"Other sites: anterior commissure, posterior glottis, supraglottis",
"Malignant transformation: rare but documented — especially HPV 16/18"
]);
// SLIDE 7: Clinical Presentation
twoColSlide(pres, "Clinical Presentation",
"Children (JORRP)", [
"Dysphonia / hoarseness (early)",
"Stridor (inspiratory, expiratory)",
"Dyspnea — can be life-threatening",
"Abnormal cry",
"Recurrent respiratory infections",
"Progressive airway obstruction",
"Often misdiagnosed as asthma or croup"
],
"Adults (AORRP)", [
"Dysphonia (earliest symptom)",
"Chronic hoarseness",
"Stridor in severe disease",
"Dyspnea — less acute than children",
"Lesions often misdiagnosed as:",
" • Acid reflux laryngitis",
" • Vocal nodules",
"Carpet variant: stippled vascularity on NBI"
],
"1A3A6A", "0A5A3A"
);
// SLIDE 8: Diagnosis
contentSlide(pres, "Diagnosis", [
"Clinical suspicion: history of hoarseness, stridor + risk factors",
"Office examination: strongly suggestive in most cases",
"Flexible nasolaryngoscopy: initial evaluation — exophytic warty lesions",
"Narrow-Band Imaging (NBI): stippled vascularity (carpet variant) — helps distinguish from reflux",
"Definitive diagnosis: suspension microlaryngoscopy + biopsy (histopathology)",
"Histology: squamous papilloma with fibrovascular cores and koilocytic atypia",
"HPV typing: PCR — identify subtypes 6, 11, 16, 18",
"CT/MRI neck & chest: for suspected tracheopulmonary extension",
"Staging: Derkay Staging Score — assesses anatomical distribution and severity"
]);
// SLIDE 9: Staging
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.85, fill: { color: DARK_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 10, h: 0.07, fill: { color: ACCENT } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.3, w: 10, h: 0.325, fill: { color: DARK_BG } });
s.addText("Staging & Severity Assessment", {
x: 0.3, y: 0.1, w: 9.4, h: 0.65,
fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
// Derkay score box
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 0.98, w: 4.4, h: 0.5, fill: { color: MID_BG }, rectRadius: 0.05 });
s.addText("Derkay Staging Score", { x: 0.3, y: 0.98, w: 4.4, h: 0.5, fontSize: 15, bold: true, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle" });
const derkayItems = [
{ text: "Anatomical distribution score: each laryngeal site scored 0–3", options: { bullet: true, breakLine: true, fontSize: 15, color: TEXT_DARK, fontFace: "Calibri" } },
{ text: "Clinical score: voice quality, stridor, urgency, respiratory distress", options: { bullet: true, breakLine: true, fontSize: 15, color: TEXT_DARK, fontFace: "Calibri" } },
{ text: "Used for comparing disease burden over repeated surgeries", options: { bullet: true, breakLine: true, fontSize: 15, color: TEXT_DARK, fontFace: "Calibri" } },
{ text: "Higher score = more extensive, aggressive disease", options: { bullet: true, fontSize: 15, color: TEXT_DARK, fontFace: "Calibri" } },
];
s.addText(derkayItems, { x: 0.3, y: 1.55, w: 4.4, h: 2.3, valign: "top" });
// Disease classification box
s.addShape(pres.ShapeType.roundRect, { x: 5.3, y: 0.98, w: 4.4, h: 0.5, fill: { color: "0A6645" }, rectRadius: 0.05 });
s.addText("Disease Classification", { x: 5.3, y: 0.98, w: 4.4, h: 0.5, fontSize: 15, bold: true, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle" });
const classItems = [
{ text: "Mild: 1–2 sites, infrequent recurrence", options: { bullet: true, breakLine: true, fontSize: 15, color: TEXT_DARK, fontFace: "Calibri" } },
{ text: "Moderate: multiple sites, more frequent surgery", options: { bullet: true, breakLine: true, fontSize: 15, color: TEXT_DARK, fontFace: "Calibri" } },
{ text: "Severe: >4 procedures/year, distal spread", options: { bullet: true, breakLine: true, fontSize: 15, color: TEXT_DARK, fontFace: "Calibri" } },
{ text: "Single-site lesions: less prone to recurrence", options: { bullet: true, fontSize: 15, color: TEXT_DARK, fontFace: "Calibri" } },
];
s.addText(classItems, { x: 5.3, y: 1.55, w: 4.4, h: 2.3, valign: "top" });
// Prognostic factors
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 3.95, w: 9.4, h: 0.5, fill: { color: "6C3483" }, rectRadius: 0.05 });
s.addText("Prognostic Risk Factors for Aggressive Disease", { x: 0.3, y: 3.95, w: 9.4, h: 0.5, fontSize: 14, bold: true, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle" });
s.addText([
{ text: "• HPV type 11 ", options: { bold: true, fontSize: 14, color: TEXT_DARK, fontFace: "Calibri" } },
{ text: "• Prior tracheotomy ", options: { fontSize: 14, color: TEXT_DARK, fontFace: "Calibri" } },
{ text: "• High number of endoscopic procedures ", options: { fontSize: 14, color: TEXT_DARK, fontFace: "Calibri" } },
{ text: "• Long disease duration ", options: { fontSize: 14, color: TEXT_DARK, fontFace: "Calibri" } },
{ text: "• Tracheal involvement", options: { fontSize: 14, color: TEXT_DARK, fontFace: "Calibri" } },
], { x: 0.3, y: 4.52, w: 9.4, h: 0.65, align: "center" });
}
// SLIDE 10: Surgical Treatment
contentSlide(pres, "Surgical Treatment of RRP", [
"Goal: preserve voice and airway function — NOT cure (surgical excision is NOT curative)",
"Suspension microlaryngoscopy + excision: standard of care under general anesthesia",
"Instruments: microdebrider, CO2 laser, pulsed KTP laser, microsurgical instruments",
"CO2 laser: highly precise, excellent voice results even after multiple procedures",
"Microdebrider: rapid removal of large disease burden; risk of seeding if not careful",
"Pulsed KTP laser: office-based; targets hemoglobin in microvasculature; less scarring",
"Thulium laser: office-based; targets water molecule; better for larger lesions",
"Airway management: critical in obstructing lesions — close communication with anesthesiologist",
"Tracheotomy: AVOID if possible — increases risk of subglottic/tracheal spread",
"Recurrence is common — repeated surgery can lead to scarring, webbing, and subglottic stenosis"
], { fontSize: 15 });
// SLIDE 11: Medical/Adjuvant Treatment
contentSlide(pres, "Adjuvant & Medical Therapies", [
"Indications: moderate-to-severe disease, high recurrence rate, failure of surgery alone",
"Cidofovir (intralesional): antiviral DNA inhibitor; regression/remission in ~25% adults; most evidence-based adjuvant",
"Bevacizumab (intralesional): anti-VEGF/anti-angiogenic; noteworthy effect in 20-patient series (Zeitels et al.)",
"Indole-3-carbinol (oral): dietary supplement; reduces recurrence in some patients",
"Interferon alpha: systemic; used for severe, aggressive disease",
"Methotrexate: used in refractory cases; prolongs intersurgical interval",
"Cis-retinoic acid: reported benefit in some series",
"HPV Vaccine (Gardasil): quadrivalent; may increase intersurgical interval in existing RRP; primary prevention tool",
"Photodynamic therapy (PDT): selective destruction using photosensitizers",
"Antireflux therapy: adjunct — reduces laryngeal irritation"
], { fontSize: 15 });
// ============================================================
// PART 2: HEMANGIOMA
// ============================================================
sectionSlide(pres, "PART 2", "Hemangioma of the Larynx");
// SLIDE 13: Overview of Laryngeal Hemangiomas
twoColSlide(pres, "Laryngeal Hemangiomas — Overview",
"Subglottic (Infantile) Hemangioma", [
"Most common form in infants",
"Presents in first 6 months of life",
"Associated cutaneous hemangiomas",
"Symptoms: stridor, pseudocroup, dyspnea",
"Capillary type — responds to CO2 laser",
"Natural history: spontaneous involution",
"Male:female ratio 2:1",
],
"Adult Laryngeal Hemangioma", [
"Usually above or at level of vocal folds",
"Cavernous type — covered by thin mucosa",
"Appears as bluish discolored mass",
"Symptom: hoarseness (chronic)",
"Respiratory distress — RARE",
"Spontaneous hemorrhage possible",
"Symptoms may persist for years",
],
"1A3A7A", "4A1040"
);
// SLIDE 14: Pathology & Classification
contentSlide(pres, "Pathology & Classification of Laryngeal Hemangiomas", [
"Vascular benign tumors of the larynx; classified under Vascular Neoplasms",
"Capillary hemangioma: small caliber vessels; common in infants (subglottic)",
"Cavernous hemangioma: large dilated vascular spaces; common in adults",
"Microscopically: lobular proliferation of endothelial-lined vascular channels",
"Infantile hemangioma: GLUT-1 positive — distinguishes from vascular malformations",
"Location: most common in subglottis for infants; supraglottis/vocal folds for adults",
"Subglottic hemangioma is most common vascular tumor requiring intervention in infants",
"Polypoid granulation tissue: most common vascular lesion overall in the larynx (Fechner et al.)"
]);
// SLIDE 15: Diagnosis
contentSlide(pres, "Diagnosis of Laryngeal Hemangioma", [
"Clinical history: infant with progressive inspiratory stridor + recurrent pseudocroup",
"Associated cutaneous hemangiomas in 50% of subglottic cases — important clinical clue",
"Direct laryngoscopy / suspension microlaryngoscopy: definitive visualization",
"Findings: mucosa-covered mass in subglottis, ± bluish coloration",
"Compressibility on palpation — characteristic finding",
"Shrinkage with topical epinephrine administration — diagnostic",
"CT/MRI: assess extent; useful for large or atypical lesions",
"Biopsy: usually deferred due to hemorrhage risk — clinical + endoscopic diagnosis in most cases",
"Histopathology when performed: lobular capillary proliferation, GLUT-1 positive",
"Adults: diagnosis often incidental at laryngoscopy for hoarseness workup"
], { fontSize: 15 });
// SLIDE 16: Management
contentSlide(pres, "Management of Laryngeal Hemangioma", [
"Watchful waiting: most infantile hemangiomas involute spontaneously by age 5–7 years",
"Tracheotomy: historically used to protect airway and allow spontaneous involution",
"CO2 laser: treatment of choice for subglottic hemangioma in infants — superior to radiotherapy or steroids",
"Propranolol (systemic): now first-line medical therapy for infantile hemangioma — high response rate",
"Intralesional corticosteroids: second-line; useful when laser not available",
"Radiotherapy: largely abandoned — risk of thyroid/laryngeal complications in infants",
"Adult cavernous hemangioma: observe if asymptomatic; treat only for progressive involvement",
"CO2 laser NOT recommended for adult cavernous type — vessel diameter exceeds laser's coagulating ability",
"Sclerotherapy / embolization: considered for large or recurrent adult lesions",
"Recurrence after laser: ~30% may require second treatment; tracheotomy decannulation successful after involution"
], { fontSize: 15 });
// ============================================================
// SLIDE 17: COMPARISON TABLE
// ============================================================
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.85, fill: { color: DARK_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 10, h: 0.07, fill: { color: ACCENT } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.3, w: 10, h: 0.325, fill: { color: DARK_BG } });
s.addText("Comparison: RRP vs Hemangioma of Larynx", {
x: 0.3, y: 0.1, w: 9.4, h: 0.65,
fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
const tableData = [
[
{ text: "Feature", options: { bold: true, color: WHITE, fill: MID_BG, fontSize: 13, fontFace: "Calibri" } },
{ text: "RRP", options: { bold: true, color: WHITE, fill: "1A5276", fontSize: 13, fontFace: "Calibri" } },
{ text: "Hemangioma", options: { bold: true, color: WHITE, fill: "4A1040", fontSize: 13, fontFace: "Calibri" } }
],
[
{ text: "Aetiology", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "HPV (types 6, 11, 16, 18)", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "Vascular anomaly / neoplasm", options: { fontSize: 12, fontFace: "Calibri" } }
],
[
{ text: "Peak Age", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "Bimodal: children & adults", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "Infants <6 months; adults", options: { fontSize: 12, fontFace: "Calibri" } }
],
[
{ text: "Location", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "True vocal folds (glottis)", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "Subglottis (infants); supraglottis (adults)", options: { fontSize: 12, fontFace: "Calibri" } }
],
[
{ text: "Presentation", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "Hoarseness, stridor, dyspnea", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "Stridor, pseudocroup; hoarseness (adults)", options: { fontSize: 12, fontFace: "Calibri" } }
],
[
{ text: "Appearance", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "Exophytic warty masses", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "Bluish compressible mass", options: { fontSize: 12, fontFace: "Calibri" } }
],
[
{ text: "Recurrence", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "Very common — hallmark of disease", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "May involute spontaneously (infants)", options: { fontSize: 12, fontFace: "Calibri" } }
],
[
{ text: "Malignant Potential", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "Yes — HPV 16/18 subtypes", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "None (benign)", options: { fontSize: 12, fontFace: "Calibri" } }
],
[
{ text: "Treatment", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "KTP/CO2 laser + adjuvants", options: { fontSize: 12, fontFace: "Calibri" } },
{ text: "Propranolol / CO2 laser; observe adults", options: { fontSize: 12, fontFace: "Calibri" } }
],
];
s.addTable(tableData, {
x: 0.2, y: 0.98, w: 9.6, h: 4.2,
border: { pt: 0.5, color: "CCCCCC" },
colW: [2.2, 3.7, 3.7],
rowH: 0.47,
});
}
// ============================================================
// SLIDE 18: KEY POINTS / SUMMARY
// ============================================================
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.85, fill: { color: DARK_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 10, h: 0.07, fill: { color: ACCENT } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.3, w: 10, h: 0.325, fill: { color: DARK_BG } });
s.addText("Key Clinical Takeaways", {
x: 0.3, y: 0.1, w: 9.4, h: 0.65,
fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
const boxes = [
{ color: "1A4A7A", title: "RRP", points: ["HPV 6/11 cause most RRP cases", "Surgery = functional, not curative", "Type 11 = aggressive disease", "Avoid tracheotomy if possible"] },
{ color: "0A5A3A", title: "Adjuvant Therapy", points: ["Cidofovir: best evidence", "Bevacizumab: anti-VEGF", "HPV vaccine: preventive role", "Adjuvants for moderate-severe disease"] },
{ color: "6C3483", title: "Hemangioma", points: ["CO2 laser = treatment of choice (infants)", "Propranolol: first-line medical Rx", "Adult cavernous: observe/conservative", "Spontaneous involution in children"] },
];
boxes.forEach((box, i) => {
const x = 0.2 + i * 3.27;
s.addShape(pres.ShapeType.roundRect, { x, y: 1.0, w: 3.1, h: 0.5, fill: { color: box.color }, rectRadius: 0.06 });
s.addText(box.title, { x, y: 1.0, w: 3.1, h: 0.5, fontSize: 15, bold: true, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle" });
const items = box.points.map((p, j) => ({ text: p, options: { bullet: true, breakLine: j < box.points.length - 1, fontSize: 14, color: TEXT_DARK, fontFace: "Calibri", paraSpaceAfter: 5 } }));
s.addText(items, { x: x + 0.05, y: 1.6, w: 3.0, h: 3.5, valign: "top" });
});
}
// ============================================================
// SLIDE 19: THANK YOU
// ============================================================
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
s.addShape(pres.ShapeType.ellipse, { x: 7.2, y: -0.5, w: 3.5, h: 3.5, fill: { color: MID_BG }, line: { color: MID_BG } });
s.addShape(pres.ShapeType.ellipse, { x: -0.8, y: 3.8, w: 3, h: 3, fill: { color: MID_BG }, line: { color: MID_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 2.35, w: 10, h: 0.05, fill: { color: ACCENT } });
s.addText("Thank You", {
x: 1, y: 0.9, w: 8, h: 1.1,
fontSize: 42, bold: true, color: WHITE, fontFace: "Calibri", align: "center"
});
s.addText("Questions & Discussion", {
x: 1, y: 2.05, w: 8, h: 0.5,
fontSize: 20, color: GOLD, fontFace: "Calibri", align: "center", italic: true
});
s.addText("References: Cummings Otolaryngology Head & Neck Surgery | K.J. Lee's Essential Otolaryngology", {
x: 0.5, y: 2.65, w: 9, h: 0.5,
fontSize: 12, color: LIGHT_ACCENT, fontFace: "Calibri", align: "center"
});
s.addText("Recurrent Respiratory Papillomas & Hemangioma of Larynx", {
x: 0.5, y: 3.2, w: 9, h: 0.45,
fontSize: 14, color: LIGHT_ACCENT, fontFace: "Calibri", align: "center"
});
s.addText("Otolaryngology — Head & Neck Surgery", {
x: 1, y: 3.9, w: 8, h: 0.4,
fontSize: 13, color: "8FAABD", fontFace: "Calibri", align: "center"
});
}
pres.writeFile({ fileName: "/home/daytona/workspace/larynx-ppt/RRP_Hemangioma_Larynx.pptx" })
.then(() => console.log("SUCCESS: File saved."))
.catch(e => console.error("ERROR:", e));
cd /home/daytona/workspace/larynx-ppt && node create_ppt.js
ls -lh /home/daytona/workspace/larynx-ppt/
RRP Hemangioma Larynx
Presentation · PPTX