COMMON CUTANEOUS BACTERIAL INFECTIONS Definition Etiology Clinical Features Differential diagnosis Management Prevention Give this for separate diseases Use Evidence based references, preferably FITZPATRICKS DERMATOLOGY, ANDREWS DISEASES OF THE SKIN, current clinic practice guidelines and recent journal articles Give me contents to directly paste in ppt
cutaneous bacterial infections skin management guidelines
impetigo cellulitis management antibiotics treatment
impetigo treatment topical antibiotics children
cellulitis skin soft tissue infection treatment guideline
| Condition | Distinguishing Feature |
|---|---|
| Tinea corporis | Scaling, not crusted; KOH positive |
| Herpes simplex | Vesicles, short duration, recurs at same site |
| Contact dermatitis | Linear pattern, exposure history, intense itch |
| Bullous pemphigoid | Older patients, tense bullae on normal skin |
| Varicella | Widespread centripetal distribution, systemic symptoms |
| Ecthyma | Punched-out ulcer with thick crust |
| Condition | Feature |
|---|---|
| Impetigo | Superficial, heals without scarring |
| Herpes simplex | Vesicular, grouped, Tzanck positive |
| Ecthyma gangrenosum | Pseudomonas, immunocompromised host |
| Cutaneous leishmaniasis | Travel history, smear positive |
| Ulcerating SCC | Irregular rolled edges, chronic |
| Condition | Feature |
|---|---|
| Tinea barbae | Fungal, KOH positive; spares upper lip |
| Acne vulgaris | Comedones present, no hair piercing pustule |
| Pseudofolliculitis barbae | Ingrown hairs, Black men, no true infection |
| HSV sycosis | Short duration, vesicles, Tzanck positive |
| Demodex folliculitis | Mites on microscopy |
| Rosacea | Flushing, telangiectasia, no follicular pustules |
| Condition | Feature |
|---|---|
| Hidradenitis suppurativa | Axillae/groins, scarring, tunnels, recurrent |
| Cystic acne | Face, comedones, chronic |
| Infected sebaceous cyst | Cheesy material, no follicular origin |
| Cutaneous anthrax | Eschar, exposure history |
| Inflamed epidermal inclusion cyst | History of prior cyst |
| Condition | Key Feature |
|---|---|
| DVT / post-thrombotic syndrome | Bilateral possible; Duplex USS |
| Stasis dermatitis | Chronic, scaling, pruritus |
| Lipodermatosclerosis | Inverted champagne bottle leg, chronic |
| Contact/eczematous dermatitis | Scaling, geometric borders, pruritus |
| Gout / pseudogout | Overlies joint, crystals on aspiration |
| Erythema migrans | Annular, tick exposure |
| Erythema nodosum | Tender nodules, bilateral, shin |
| Necrotizing fasciitis | Crepitus, anesthesia, rapid spread - EMERGENCY |
| Superficial thrombophlebitis | Along venous course |
| Condition | Feature |
|---|---|
| Tinea cruris | KOH positive; central clearing; scaling edge |
| Candidal intertrigo | Satellite pustules; KOH positive |
| Intertrigo | No Wood's lamp fluorescence |
| Seborrheic dermatitis | Yellow greasy scales; scalp, face |
| Inverse psoriasis | Smooth, glazed plaques; psoriasis elsewhere |
| Lichen simplex chronicus | Lichenification; pruritus |
| Condition | Feature |
|---|---|
| Tinea pedis | KOH positive; scaling; vesicles |
| Verruca plantaris | Interrupted skin lines; thrombosed capillaries |
| Palmoplantar keratoderma | Hereditary/acquired; diffuse thickening |
| Interdigital erythrasma | Coral-red fluorescence on Wood's lamp |
| Disease | Causative Organism | Key Lesion | Dx Pearl | First-Line Rx |
|---|---|---|---|---|
| Impetigo | S. aureus / S. pyogenes | Honey crust | Culture | Mupirocin / Cefalexin |
| Ecthyma | S. pyogenes / S. aureus | Punched ulcer + thick crust | Clinical | Dicloxacillin / Cephalosporin |
| Folliculitis | S. aureus | Perifollicular pustule | Culture | Topical/Oral anti-staph |
| Furunculosis | S. aureus (MRSA) | Fluctuant abscess | Culture | I&D + TMP-SMX/Clindamycin |
| Cellulitis | Streptococci / S. aureus | Ill-defined erythema | ALT-70 score | Cephalexin / Clindamycin |
| Erysipelas | S. pyogenes | Sharp-border erythema | Clinical | Penicillin / Amoxicillin |
| Erythrasma | C. minutissimum | Brown intertriginous patch | Wood's lamp (coral-red) | Topical erythromycin / Clarithromycin |
| Pitted keratolysis | K. sedentarius | Plantar pits + odor | Clinical | Topical erythromycin / Clindamycin |
Separate this diseases into superficial infections Follicular infection Dermal and subcutaneous infections
SKIN SURFACE / STRATUM CORNEUM
│
├── SUPERFICIAL INFECTIONS
│ ├── Impetigo (sub-corneal / intra-epidermal)
│ ├── Ecthyma (full-thickness epidermis → upper dermis)
│ ├── Erythrasma (stratum corneum - intertriginous)
│ └── Pitted Keratolysis (stratum corneum - plantar)
│
├── FOLLICULAR INFECTIONS
│ ├── Folliculitis - Superficial (Impetigo of Bockhart)
│ ├── Folliculitis - Deep (Sycosis Barbae)
│ └── Furunculosis & Carbuncle (perifollicular → abscess)
│
└── DERMAL & SUBCUTANEOUS INFECTIONS
├── Erysipelas (superficial dermis + lymphatics)
└── Cellulitis (deep dermis + subcutaneous tissue)
| Disease | Depth | Organisms | Scarring? |
|---|---|---|---|
| Impetigo | Sub-corneal / intra-epidermal | S. aureus, S. pyogenes | No |
| Ecthyma | Full epidermis → superficial dermis | S. pyogenes, S. aureus | Yes |
| Erythrasma | Stratum corneum (intertriginous) | C. minutissimum | No |
| Pitted Keratolysis | Stratum corneum (plantar) | K. sedentarius | No |
| Disease | Depth | Primary Organism | Key Feature |
|---|---|---|---|
| Superficial folliculitis | Follicular ostium | S. aureus | Thin-walled pustule at follicle opening |
| Deep folliculitis / Sycosis barbae | Deep follicle + perifollicular | S. aureus | Chronic; beard area; scarring possible |
| Furuncle | Perifollicular + surrounding dermis | S. aureus / MRSA | Painful abscess; fluctuant |
| Carbuncle | Confluent furuncles + deep dermis | S. aureus / MRSA | Multiple heads; systemic features |
| Disease | Depth | Primary Organisms | Borders | Systemic Signs |
|---|---|---|---|---|
| Erysipelas | Superficial dermis + lymphatics | S. pyogenes | Sharp, well-defined, raised | Fever, chills common |
| Cellulitis | Deep dermis + subcutis | S. pyogenes, S. aureus | Ill-defined | Variable |
SKIN LAYERS DISEASES
─────────────────────────────────────────────────
Stratum corneum ─── Pitted Keratolysis
Erythrasma
Epidermis ─── Impetigo (non-bullous, bullous)
Ecthyma (begins here)
─────────────────────────────────────────────────
Hair follicle ─── Folliculitis (superficial & deep)
Sycosis barbae
Dermis ─── Ecthyma (extends here)
Furuncle (perifollicular abscess)
Carbuncle (confluent furuncles)
Erysipelas (superficial dermis +
lymphatics)
─────────────────────────────────────────────────
Subcutaneous ─── Cellulitis
tissue
─────────────────────────────────────────────────
Make a comprehensive PPT presentation with these disease classifications
ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not found"
mkdir -p /home/daytona/workspace/cutaneous-infections-ppt && ls /home/daytona/workspace/cutaneous-infections-ppt
~/cutaneous-infections-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
pres.title = "Common Cutaneous Bacterial Infections";
pres.author = "Dermatology";
// ─── COLOR PALETTE ────────────────────────────────────────────────────────────
// Deep teal/navy medical theme
const C = {
darkBg: "0D2B45", // dark navy – title/section slides
midBg: "1A4A6E", // mid-navy – section dividers
accent: "2AAFB8", // teal accent
accentLight: "5BC8D0", // lighter teal
gold: "E8B84B", // gold highlight
white: "FFFFFF",
offWhite: "F0F6FA",
textDark: "0D2B45",
textMid: "2A4A65",
lightGray: "DDE8F0",
superBg: "E8F4F5", // superficial – light teal tint
follBg: "FFF3E0", // follicular – warm amber tint
dermBg: "F3E5F5", // dermal – lavender tint
superAccent: "2AAFB8",
follAccent: "E8930A",
dermAccent: "8E44AD",
};
// ─── HELPERS ─────────────────────────────────────────────────────────────────
function titleSlide(slide) {
// dark background
slide.background = { color: C.darkBg };
}
function addDividerBar(slide, color = C.accent) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 0.12, h: 7.5,
fill: { color }, line: { color }
});
}
function addBottomBar(slide, label, color = C.accent) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 7.1, w: 13.3, h: 0.4,
fill: { color: C.darkBg }, line: { color: C.darkBg }
});
slide.addText(label, {
x: 0.2, y: 7.1, w: 13, h: 0.4,
fontSize: 8, color: "99BBCC", italic: true, valign: "middle"
});
}
function addSlideNum(slide, n) {
slide.addText(String(n), {
x: 12.8, y: 7.1, w: 0.4, h: 0.4,
fontSize: 8, color: "668899", align: "right", valign: "middle"
});
}
function addCategoryBadge(slide, label, color) {
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.22, y: 0.18, w: 2.8, h: 0.38,
fill: { color }, line: { color }, rectRadius: 0.06
});
slide.addText(label.toUpperCase(), {
x: 0.22, y: 0.18, w: 2.8, h: 0.38,
fontSize: 8, bold: true, color: C.white,
align: "center", valign: "middle", margin: 0
});
}
function sectionHeader(pres, title, subtitle, color, bgColor) {
const slide = pres.addSlide();
slide.background = { color: bgColor || C.darkBg };
// left accent stripe
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 0.5, h: 7.5,
fill: { color }, line: { color }
});
// large section number / icon area
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.5, y: 0, w: 4.5, h: 7.5,
fill: { color, transparency: 85 }, line: { color, transparency: 85 }
});
slide.addText(title, {
x: 1.2, y: 2.4, w: 11.5, h: 1.4,
fontSize: 42, bold: true, color: C.white,
fontFace: "Calibri"
});
slide.addText(subtitle, {
x: 1.2, y: 3.9, w: 9, h: 0.7,
fontSize: 18, color: "AACCDD", italic: true
});
return slide;
}
// standard content slide
function contentSlide(pres, catColor, catLabel) {
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addDividerBar(slide, catColor);
addCategoryBadge(slide, catLabel, catColor);
return slide;
}
function addSlideTitleBox(slide, title, catColor) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.12, y: 0.08, w: 13.18, h: 0.72,
fill: { color: C.darkBg }, line: { color: C.darkBg }
});
slide.addText(title, {
x: 0.3, y: 0.08, w: 12.8, h: 0.72,
fontSize: 20, bold: true, color: C.white,
valign: "middle", margin: 0
});
// accent underline
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.12, y: 0.80, w: 13.18, h: 0.06,
fill: { color: catColor }, line: { color: catColor }
});
}
function addBox(slide, x, y, w, h, fillColor, label, labelColor, textLines, textColor, accentBar) {
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w, h,
fill: { color: fillColor },
line: { color: accentBar || fillColor },
shadow: { type: "outer", color: "000000", blur: 4, offset: 1, angle: 135, opacity: 0.1 }
});
if (accentBar) {
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w: 0.08, h,
fill: { color: accentBar }, line: { color: accentBar }
});
}
if (label) {
slide.addText(label, {
x: x + (accentBar ? 0.14 : 0.08), y, w: w - (accentBar ? 0.22 : 0.16), h: 0.32,
fontSize: 10, bold: true, color: labelColor || C.white,
valign: "middle", margin: 0
});
}
if (textLines && textLines.length) {
const items = textLines.map((t, i) => ({
text: t,
options: { bullet: { type: "bullet", indent: 10 }, breakLine: i < textLines.length - 1, fontSize: 9.5, color: textColor || C.textDark }
}));
slide.addText(items, {
x: x + (accentBar ? 0.18 : 0.1), y: y + 0.33, w: w - (accentBar ? 0.26 : 0.18), h: h - 0.38,
valign: "top", margin: 0, fontSize: 9.5, color: textColor || C.textDark
});
}
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.darkBg };
// top accent strip
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 13.3, h: 0.18, fill: { color: C.accent }, line: { color: C.accent } });
// left wide accent
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.18, w: 4.6, h: 7.32, fill: { color: C.midBg }, line: { color: C.midBg } });
// decorative circles
slide.addShape(pres.shapes.OVAL, { x: 0.3, y: 0.8, w: 2.5, h: 2.5, fill: { color: C.accent, transparency: 80 }, line: { color: C.accent, transparency: 80 } });
slide.addShape(pres.shapes.OVAL, { x: 1.5, y: 3.5, w: 1.8, h: 1.8, fill: { color: C.gold, transparency: 85 }, line: { color: C.gold, transparency: 85 } });
// category labels on left
const cats = [
{ label: "SUPERFICIAL", color: C.superAccent, y: 2.3 },
{ label: "FOLLICULAR", color: C.follAccent, y: 3.0 },
{ label: "DERMAL & SUBCUTANEOUS", color: C.dermAccent, y: 3.7 },
];
cats.forEach(c => {
slide.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: c.y, w: 3.8, h: 0.42, fill: { color: c.color, transparency: 20 }, line: { color: c.color } });
slide.addText(c.label, { x: 0.3, y: c.y, w: 3.8, h: 0.42, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
});
// main title
slide.addText("COMMON CUTANEOUS", {
x: 4.9, y: 1.2, w: 8.1, h: 0.9,
fontSize: 36, bold: true, color: C.accent, fontFace: "Calibri", charSpacing: 3
});
slide.addText("BACTERIAL INFECTIONS", {
x: 4.9, y: 2.05, w: 8.1, h: 0.9,
fontSize: 36, bold: true, color: C.white, fontFace: "Calibri", charSpacing: 3
});
// divider line
slide.addShape(pres.shapes.RECTANGLE, { x: 4.9, y: 3.1, w: 7.8, h: 0.04, fill: { color: C.gold }, line: { color: C.gold } });
slide.addText("Evidence-Based Classification by Anatomical Depth", {
x: 4.9, y: 3.3, w: 8.1, h: 0.5,
fontSize: 15, italic: true, color: "AACCDD"
});
slide.addText([
{ text: "References: ", options: { bold: true } },
{ text: "Fitzpatrick's Dermatology 9e | Andrews' Diseases of the Skin 12e | IDSA Guidelines 2014" }
], {
x: 4.9, y: 4.1, w: 8.1, h: 0.4,
fontSize: 9.5, color: "88AABB"
});
// bottom bar
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 7.1, w: 13.3, h: 0.4, fill: { color: C.accent }, line: { color: C.accent } });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 2 – CLASSIFICATION OVERVIEW
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.darkBg };
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 13.3, h: 0.18, fill: { color: C.accent }, line: { color: C.accent } });
slide.addText("CLASSIFICATION BY ANATOMICAL DEPTH", {
x: 0.4, y: 0.3, w: 12.5, h: 0.7,
fontSize: 22, bold: true, color: C.white, charSpacing: 2
});
slide.addShape(pres.shapes.RECTANGLE, { x: 0.4, y: 1.0, w: 12.5, h: 0.04, fill: { color: C.gold }, line: { color: C.gold } });
// 3 category boxes
const catData = [
{
x: 0.4, color: C.superAccent, label: "A SUPERFICIAL INFECTIONS",
sub: "Epidermis & Stratum Corneum",
diseases: ["Impetigo", "Ecthyma", "Erythrasma", "Pitted Keratolysis"],
icon: "🔬"
},
{
x: 4.8, color: C.follAccent, label: "B FOLLICULAR INFECTIONS",
sub: "Hair Follicle as Primary Target",
diseases: ["Folliculitis", "Sycosis Barbae", "Furunculosis", "Carbuncle"],
icon: "🧫"
},
{
x: 9.1, color: C.dermAccent, label: "C DERMAL & SUBCUTANEOUS",
sub: "Deep Dermis & Subcutis",
diseases: ["Erysipelas", "Cellulitis"],
icon: "🏥"
}
];
catData.forEach(c => {
slide.addShape(pres.shapes.RECTANGLE, {
x: c.x, y: 1.2, w: 4.0, h: 5.6,
fill: { color: c.color, transparency: 90 },
line: { color: c.color, transparency: 30 }
});
slide.addShape(pres.shapes.RECTANGLE, {
x: c.x, y: 1.2, w: 4.0, h: 0.7,
fill: { color: c.color },
line: { color: c.color }
});
slide.addText(c.label, {
x: c.x + 0.1, y: 1.2, w: 3.8, h: 0.7,
fontSize: 12, bold: true, color: C.white, valign: "middle", margin: 0
});
slide.addText(c.sub, {
x: c.x + 0.1, y: 2.0, w: 3.8, h: 0.4,
fontSize: 10, italic: true, color: "BBCCDD"
});
c.diseases.forEach((d, i) => {
slide.addShape(pres.shapes.RECTANGLE, {
x: c.x + 0.15, y: 2.55 + i * 0.75, w: 3.7, h: 0.58,
fill: { color: C.white, transparency: 15 },
line: { color: c.color, transparency: 50 }
});
slide.addShape(pres.shapes.RECTANGLE, {
x: c.x + 0.15, y: 2.55 + i * 0.75, w: 0.08, h: 0.58,
fill: { color: c.color }, line: { color: c.color }
});
slide.addText(d, {
x: c.x + 0.32, y: 2.55 + i * 0.75, w: 3.4, h: 0.58,
fontSize: 11, color: C.white, valign: "middle", margin: 0
});
});
});
// depth arrow on right
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 7.1, w: 13.3, h: 0.4, fill: { color: C.midBg }, line: { color: C.midBg } });
slide.addText("Fitzpatrick's Dermatology 9e | Andrews' Diseases of the Skin 12e", {
x: 0.3, y: 7.1, w: 12.7, h: 0.4,
fontSize: 8, color: "668899", italic: true, valign: "middle"
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SECTION A DIVIDER – SUPERFICIAL
// ═══════════════════════════════════════════════════════════════════════════════
sectionHeader(pres,
"SECTION A: SUPERFICIAL INFECTIONS",
"Epidermis & Stratum Corneum | Impetigo · Ecthyma · Erythrasma · Pitted Keratolysis",
C.superAccent, "0A2E32"
);
// ─── SLIDE: IMPETIGO ──────────────────────────────────────────────────────────
{
const slide = contentSlide(pres, C.superAccent, "A - SUPERFICIAL INFECTIONS");
addSlideTitleBox(slide, "IMPETIGO", C.superAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 300-302 | Fitzpatrick's Dermatology 9e");
addSlideNum(slide, 4);
// Definition box
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.22, y: 0.95, w: 12.86, h: 0.52,
fill: { color: C.superAccent, transparency: 85 },
line: { color: C.superAccent, transparency: 50 }
});
slide.addText("DEFINITION: Most common superficial bacterial skin infection; sub-corneal/intra-epidermal split; highly contagious", {
x: 0.3, y: 0.95, w: 12.7, h: 0.52,
fontSize: 10.5, italic: true, color: C.textDark, valign: "middle"
});
// 4 columns: Etiology, Clinical, DDx, Management
const boxes = [
{
x: 0.22, label: "ETIOLOGY", color: C.superAccent,
lines: [
"S. aureus: 50-70% (exfoliative toxins A/B; cleave desmoglein-1)",
"S. pyogenes (Group A β-haemolytic) – alone or combined",
"Bullous: exclusively S. aureus phage group 2",
"Neonatal: Group B streptococci",
"Streptococci early → staphylococci as lesion matures"
]
},
{
x: 3.47, label: "CLINICAL FEATURES", color: C.superAccent,
lines: [
"Non-bullous: honey-golden crust on erythematous base",
"Perioral, perinasal; crops of vesicles → pustules → crust",
"Bullous: large fragile bullae (axillae, groin, face)",
"Rupture → circinate weepy/crusted erosions",
"Regional lymphadenopathy (streptococcal)",
"Complication: Post-streptococcal GN (2-5%)"
]
},
{
x: 6.72, label: "DIFFERENTIAL DIAGNOSIS", color: C.superAccent,
lines: [
"Tinea corporis – scaling, KOH positive",
"Herpes simplex – vesicles, recurrence at same site",
"Contact dermatitis – linear, geometric, itch > infection",
"Pemphigus – older patients, Nikolsky positive",
"Varicella – centripetal, systemic symptoms",
"Ecthyma – punched-out ulcer with thick crust"
]
},
{
x: 9.97, label: "MANAGEMENT", color: C.superAccent,
lines: [
"Soak & debride crusts with warm compresses",
"Topical: Mupirocin 2%, retapamulin, fusidic acid",
"Oral (widespread): Cefalexin, dicloxacillin",
"MRSA: TMP-SMX or clindamycin",
"Prevention: hand hygiene, antibiotic ointment to trauma sites",
"Treat household contacts if recurrent"
]
}
];
boxes.forEach(b => {
addBox(slide, b.x, 1.58, 3.1, 5.3, C.white, b.label, b.color, b.lines, C.textDark, b.color);
});
}
// ─── SLIDE: ECTHYMA ───────────────────────────────────────────────────────────
{
const slide = contentSlide(pres, C.superAccent, "A - SUPERFICIAL INFECTIONS");
addSlideTitleBox(slide, "ECTHYMA", C.superAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 302 | Fitzpatrick's Dermatology 9e");
addSlideNum(slide, 5);
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.22, y: 0.95, w: 12.86, h: 0.52,
fill: { color: C.superAccent, transparency: 85 }, line: { color: C.superAccent, transparency: 50 }
});
slide.addText('DEFINITION: Ulcerative pyoderma — "impetigo going deeper"; penetrates full epidermis into upper dermis; heals with SCAR', {
x: 0.3, y: 0.95, w: 12.7, h: 0.52,
fontSize: 10.5, italic: true, color: C.textDark, valign: "middle"
});
const boxes = [
{
x: 0.22, label: "ETIOLOGY", color: C.superAccent,
lines: [
"S. pyogenes (Group A β-haemolytic) – primary",
"S. aureus – urban areas, IVDU, HIV patients",
"Risk: malnutrition, uncleanliness, trauma",
"Debilitated, immunocompromised patients"
]
},
{
x: 3.47, label: "CLINICAL FEATURES", color: C.superAccent,
lines: [
"Begins as vesicle/vesicopustule on erythematous base",
"Enlarges → thick adherent 'oyster-shell' crust",
"Removal reveals saucer-shaped punched-out ulcer",
"Raised violaceous edges + raw base",
"Lower extremities, buttocks most common",
"Local adenopathy; heals with SCAR",
"Rarely → gangrene in debilitated patients"
]
},
{
x: 6.72, label: "DIFFERENTIAL DIAGNOSIS", color: C.superAccent,
lines: [
"Impetigo – superficial; no scar",
"Herpes simplex – vesicular, grouped, Tzanck+",
"Ecthyma gangrenosum – Pseudomonas, immunocompromised",
"Cutaneous leishmaniasis – travel history, smear+",
"Ulcerating SCC – rolled irregular edges, chronic",
"Pyoderma gangrenosum – violaceous undermined edge"
]
},
{
x: 9.97, label: "MANAGEMENT", color: C.superAccent,
lines: [
"Warm soaks → remove crust gently",
"Clean with soap and water",
"Topical: mupirocin, retapamulin, bacitracin BD",
"Oral: Dicloxacillin or cefalexin",
"MRSA: TMP-SMX or clindamycin",
"Adjust per culture & sensitivity",
"Address nutrition, hygiene, immunosuppression"
]
}
];
boxes.forEach(b => {
addBox(slide, b.x, 1.58, 3.1, 5.3, C.white, b.label, b.color, b.lines, C.textDark, b.color);
});
}
// ─── SLIDE: ERYTHRASMA ────────────────────────────────────────────────────────
{
const slide = contentSlide(pres, C.superAccent, "A - SUPERFICIAL INFECTIONS");
addSlideTitleBox(slide, "ERYTHRASMA", C.superAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 337-348 | Fitzpatrick's Dermatology 9e, p. 2771");
addSlideNum(slide, 6);
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.22, y: 0.95, w: 12.86, h: 0.52,
fill: { color: C.superAccent, transparency: 85 }, line: { color: C.superAccent, transparency: 50 }
});
slide.addText("DEFINITION: Superficial infection of the stratum corneum in intertriginous areas caused by Corynebacterium minutissimum", {
x: 0.3, y: 0.95, w: 12.7, h: 0.52,
fontSize: 10.5, italic: true, color: C.textDark, valign: "middle"
});
const boxes = [
{
x: 0.22, label: "ETIOLOGY", color: C.superAccent,
lines: [
"Corynebacterium minutissimum (gram+ diphtheroid rod)",
"Produces coproporphyrin III → coral-red fluorescence",
"Serine protease activity",
"More common in: tropical climates, obesity, DM, HIV",
"Males > Females",
"Immunocompromised: may cause bacteremia, cellulitis"
]
},
{
x: 3.47, label: "CLINICAL FEATURES", color: C.superAccent,
lines: [
"Toe webs (4th-5th): white hyperkeratotic macerated plaque",
"Genitocrural, axillae, inframammary: reddish-brown patches",
"'Cigarette paper' thin, finely scaled, well-demarcated",
"Uniform (no central clearing – unlike tinea)",
"Usually ASYMPTOMATIC; genitocrural form may itch",
"KEY: Wood's lamp → CORAL-RED fluorescence",
"Wash before exam may eliminate fluorescence!"
]
},
{
x: 6.72, label: "DIFFERENTIAL DIAGNOSIS", color: C.superAccent,
lines: [
"Tinea cruris – KOH positive; central clearing; scaling edge",
"Candidal intertrigo – satellite pustules; KOH+",
"Intertrigo – no Wood's lamp fluorescence",
"Seborrheic dermatitis – yellow greasy scales",
"Inverse psoriasis – smooth glazed plaques; psoriasis elsewhere",
"Lichen simplex chronicus – lichenification, intense itch"
]
},
{
x: 9.97, label: "MANAGEMENT", color: C.superAccent,
lines: [
"Topical (localised): erythromycin or clindamycin – 1st line",
"Topical fusidic acid – alternative",
"Whitfield's ointment – alternative",
"Oral (widespread/refractory):",
"• Clarithromycin 1 g SINGLE DOSE",
"• Erythromycin 250 mg QID × 14 days",
"Prevention: keep dry, weight loss, control DM"
]
}
];
boxes.forEach(b => {
addBox(slide, b.x, 1.58, 3.1, 5.3, C.white, b.label, b.color, b.lines, C.textDark, b.color);
});
}
// ─── SLIDE: PITTED KERATOLYSIS ────────────────────────────────────────────────
{
const slide = contentSlide(pres, C.superAccent, "A - SUPERFICIAL INFECTIONS");
addSlideTitleBox(slide, "PITTED KERATOLYSIS", C.superAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 397-406 | Fitzpatrick's Dermatology 9e, p. 2770");
addSlideNum(slide, 7);
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.22, y: 0.95, w: 12.86, h: 0.52,
fill: { color: C.superAccent, transparency: 85 }, line: { color: C.superAccent, transparency: 50 }
});
slide.addText("DEFINITION: Bacterial infection of the plantar stratum corneum; small crateriform pits on pressure-bearing areas with characteristic malodour", {
x: 0.3, y: 0.95, w: 12.7, h: 0.52,
fontSize: 10.5, italic: true, color: C.textDark, valign: "middle"
});
const boxes = [
{
x: 0.22, label: "ETIOLOGY", color: C.superAccent,
lines: [
"Kytococcus sedentarius (primary organism)",
"Also: Dermatophilus congolensis, Corynebacterium spp.",
"Produces serine proteases → keratin degradation",
"Male : Female ≈ 8:1",
"Predisposed: hyperhidrosis, occlusive footwear",
"More common in tropical climates",
"Athletes, soldiers, workers in occlusive shoes"
]
},
{
x: 3.47, label: "CLINICAL FEATURES", color: C.superAccent,
lines: [
"1–3 mm shallow crateriform pits (pressure-bearing areas)",
"Pits coalesce → large defect with serpiginous borders",
"Ball of foot, heel, plantar toes; web spaces",
"Characteristic MALODOUR (2/3 of patients)",
"Feet stick to socks – sliminess (70%)",
"Pain/burning/irritation (1/3 of patients)",
"Histology: keratin pits with cocci + filamentous bacteria"
]
},
{
x: 6.72, label: "DIFFERENTIAL DIAGNOSIS", color: C.superAccent,
lines: [
"Tinea pedis – KOH positive; scaling; vesicles",
"Verruca plantaris – interrupted skin lines; capillaries",
"Palmoplantar keratoderma – diffuse, hereditary/acquired",
"Interdigital erythrasma – Wood's lamp coral-red",
"Plantar psoriasis – silvery scale, nail changes"
]
},
{
x: 9.97, label: "MANAGEMENT", color: C.superAccent,
lines: [
"Topical erythromycin – first-line (curative)",
"Topical clindamycin or mupirocin",
"Miconazole / clotrimazole cream – alternatives",
"5% benzoyl peroxide gel",
"10-20% aluminium chloride (hyperhidrosis)",
"Botulinum toxin if severe hyperhidrosis",
"Prevention: dry feet, breathable footwear, absorbent powder"
]
}
];
boxes.forEach(b => {
addBox(slide, b.x, 1.58, 3.1, 5.3, C.white, b.label, b.color, b.lines, C.textDark, b.color);
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SECTION B DIVIDER – FOLLICULAR
// ═══════════════════════════════════════════════════════════════════════════════
sectionHeader(pres,
"SECTION B: FOLLICULAR INFECTIONS",
"Hair Follicle as Primary Target | Folliculitis · Sycosis Barbae · Furunculosis · Carbuncle",
C.follAccent, "2B1800"
);
// ─── SLIDE: FOLLICULITIS ──────────────────────────────────────────────────────
{
const slide = contentSlide(pres, C.follAccent, "B - FOLLICULAR INFECTIONS");
addSlideTitleBox(slide, "FOLLICULITIS (including SYCOSIS BARBAE)", C.follAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 301-302 | Fitzpatrick's Dermatology 9e");
addSlideNum(slide, 9);
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.22, y: 0.95, w: 12.86, h: 0.52,
fill: { color: C.follAccent, transparency: 88 }, line: { color: C.follAccent, transparency: 50 }
});
slide.addText("DEFINITION: Infection/inflammation of hair follicles – superficial (ostium) or deep (entire follicle + perifollicular tissue)", {
x: 0.3, y: 0.95, w: 12.7, h: 0.52,
fontSize: 10.5, italic: true, color: C.textDark, valign: "middle"
});
const boxes = [
{
x: 0.22, label: "ETIOLOGY", color: C.follAccent,
lines: [
"S. aureus – most common (MRSA increasingly)",
"Pseudomonas aeruginosa – hot tub folliculitis",
"Gram-negative – after prolonged acne antibiotics",
"Malassezia – Pityrosporum folliculitis (not bacterial)",
"Demodex spp. – Demodex folliculitis"
]
},
{
x: 3.47, label: "CLINICAL FEATURES", color: C.follAccent,
lines: [
"Superficial (Impetigo of Bockhart): thin-walled yellow-white pustule at follicle orifice; crops; extremities/scalp",
"Deep staphylococcal: any hair-bearing site; trunk, axillae, pubis",
"Sycosis Barbae: chronic perifollicular pustules in beard; upper lip first; burning/itching; may scar",
"Associated blepharitis + conjunctivitis in severe sycosis"
]
},
{
x: 6.72, label: "DIFFERENTIAL DIAGNOSIS", color: C.follAccent,
lines: [
"Tinea barbae – KOH+; spares upper lip",
"Acne vulgaris – comedones; no hair-piercing pustule",
"Pseudofolliculitis barbae – ingrown hairs; Black men",
"HSV sycosis – vesicles; short course; Tzanck+",
"Demodex folliculitis – mites on microscopy",
"Rosacea – flushing; telangiectasia; no follicular pustule"
]
},
{
x: 9.97, label: "MANAGEMENT", color: C.follAccent,
lines: [
"Mild/topical: mupirocin, clindamycin, retapamulin",
"Benzoyl peroxide 5-10% wash",
"Chlorhexidine 4% wash; bleach baths (½ cup/40-gal tub)",
"Aluminium chloride anhydrous – chronic buttock folliculitis",
"Systemic: cefalexin, dicloxacillin",
"MRSA: TMP-SMX, clindamycin, doxycycline",
"Decolonisation: mupirocin to nares × 5 days/month"
]
}
];
boxes.forEach(b => {
addBox(slide, b.x, 1.58, 3.1, 5.3, C.white, b.label, b.color, b.lines, C.textDark, b.color);
});
}
// ─── SLIDE: FURUNCULOSIS & CARBUNCLE ─────────────────────────────────────────
{
const slide = contentSlide(pres, C.follAccent, "B - FOLLICULAR INFECTIONS");
addSlideTitleBox(slide, "FURUNCULOSIS & CARBUNCLE", C.follAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 302-303 | Fitzpatrick's Dermatology 9e");
addSlideNum(slide, 10);
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.22, y: 0.95, w: 12.86, h: 0.52,
fill: { color: C.follAccent, transparency: 88 }, line: { color: C.follAccent, transparency: 50 }
});
slide.addText("Furuncle (Boil): acute perifollicular abscess with central suppuration | Carbuncle: confluent furuncles with multiple heads", {
x: 0.3, y: 0.95, w: 12.7, h: 0.52,
fontSize: 10.5, italic: true, color: C.textDark, valign: "middle"
});
const boxes = [
{
x: 0.22, label: "ETIOLOGY & RISK FACTORS", color: C.follAccent,
lines: [
"S. aureus – principal (MRSA increasingly common)",
"Nasal/perineal carriage – key reservoir",
"Risk: DM, atopic dermatitis, HIV/AIDS",
"Alcoholism, malnutrition, renal dialysis",
"Immunosuppressants; isotretinoin therapy",
"Neutrophil dysfunction disorders",
"Hospital-acquired MRSA – multidrug resistant"
]
},
{
x: 3.47, label: "CLINICAL FEATURES", color: C.follAccent,
lines: [
"Acute round tender perifollicular abscess",
"Sites: nape, axillae, buttocks, face",
"⚠ DANGER ZONE: upper lip & nose (cavernous sinus thrombosis!)",
"Central necrosis → rupture with purulent/necrotic discharge",
"Carbuncle: confluent; systemic features (fever, malaise)",
"Recurrences common; autoinoculation from carrier sites"
]
},
{
x: 6.72, label: "DIFFERENTIAL DIAGNOSIS", color: C.follAccent,
lines: [
"Hidradenitis suppurativa – axillae/groins; tunnels; scarring",
"Infected sebaceous cyst – cheesy material; no follicular origin",
"Cystic acne – face; comedones; chronic",
"Cutaneous anthrax – eschar; exposure history",
"Inflamed epidermal inclusion cyst – prior cyst history",
"Lymphadenitis – deeper; no skin origin"
]
},
{
x: 9.97, label: "MANAGEMENT", color: C.follAccent,
lines: [
"Warm compresses – pre-fluctuant lesions",
"I&D – definitive for fluctuant abscess (even <5 cm)",
"RCT evidence: I&D + clindamycin or TMP-SMX > I&D alone",
"MSSA: dicloxacillin, cefalexin",
"MRSA: TMP-SMX, clindamycin, doxycycline, linezolid",
"Facial furuncles: IV antibiotics; DO NOT SQUEEZE",
"Prevention: chlorhexidine wash, bleach baths, nasal mupirocin"
]
}
];
boxes.forEach(b => {
addBox(slide, b.x, 1.58, 3.1, 5.3, C.white, b.label, b.color, b.lines, C.textDark, b.color);
});
}
// ─── SLIDE: FURUNCULOSIS PREVENTION ──────────────────────────────────────────
{
const slide = contentSlide(pres, C.follAccent, "B - FOLLICULAR INFECTIONS");
addSlideTitleBox(slide, "FURUNCULOSIS — PREVENTION & DECOLONISATION", C.follAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 303");
addSlideNum(slide, 11);
// two panel layout
// left: prevention steps
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.22, y: 1.0, w: 6.1, h: 5.9,
fill: { color: C.white },
line: { color: C.follAccent, transparency: 40 },
shadow: { type: "outer", color: "000000", blur: 4, offset: 1, angle: 135, opacity: 0.1 }
});
slide.addShape(pres.shapes.RECTANGLE, { x: 0.22, y: 1.0, w: 6.1, h: 0.45, fill: { color: C.follAccent }, line: { color: C.follAccent } });
slide.addText("HYGIENE & SKIN CARE", { x: 0.3, y: 1.0, w: 5.9, h: 0.45, fontSize: 11, bold: true, color: C.white, valign: "middle", margin: 0 });
const prevSteps = [
"Daily 4% chlorhexidine wash (axillae, groin, perianal) × 1 week",
"Bleach baths (sodium hypochlorite 0.005%): ½ cup/40-gallon tub, 3×/week",
"Launder bedding and clothing daily (initially)",
"Frequent handwashing throughout day",
"Avoid sharing towels, clothing, razors, sports equipment",
"Do NOT share moisturiser containers (re-inoculation risk in AD)",
"Keep fingernails short and clean",
"Address skin barrier: treat atopic dermatitis aggressively"
];
slide.addText(prevSteps.map((t, i) => ({
text: t, options: { bullet: { type: "bullet" }, breakLine: i < prevSteps.length - 1, fontSize: 10, color: C.textDark }
})), { x: 0.35, y: 1.55, w: 5.8, h: 5.2, valign: "top", margin: 0 });
// right: decolonisation regimens
slide.addShape(pres.shapes.RECTANGLE, {
x: 6.8, y: 1.0, w: 6.28, h: 5.9,
fill: { color: C.white },
line: { color: C.follAccent, transparency: 40 },
shadow: { type: "outer", color: "000000", blur: 4, offset: 1, angle: 135, opacity: 0.1 }
});
slide.addShape(pres.shapes.RECTANGLE, { x: 6.8, y: 1.0, w: 6.28, h: 0.45, fill: { color: C.follAccent }, line: { color: C.follAccent } });
slide.addText("DECOLONISATION REGIMENS", { x: 6.88, y: 1.0, w: 6.1, h: 0.45, fontSize: 11, bold: true, color: C.white, valign: "middle", margin: 0 });
const decolSteps = [
"Mupirocin ointment to anterior nares BD × 5 days; repeat monthly",
"MSSA regimen: Rifampin 10 days + Dicloxacillin (concurrent)",
"MRSA regimen: Rifampin 10 days + TMP-SMX (concurrent)",
"Long-term suppression: Clindamycin low-dose × 3 months",
"Bacitracin ointment to nares BD during isotretinoin therapy",
"Treat all household members and close contacts",
"Repeat cultures to confirm eradication",
"Indications: recurrent infections, spread to others, high-risk household"
];
slide.addText(decolSteps.map((t, i) => ({
text: t, options: { bullet: { type: "bullet" }, breakLine: i < decolSteps.length - 1, fontSize: 10, color: C.textDark }
})), { x: 6.93, y: 1.55, w: 6.0, h: 5.2, valign: "top", margin: 0 });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SECTION C DIVIDER – DERMAL & SUBCUTANEOUS
// ═══════════════════════════════════════════════════════════════════════════════
sectionHeader(pres,
"SECTION C: DERMAL & SUBCUTANEOUS INFECTIONS",
"Deep Dermis & Subcutaneous Tissue | Erysipelas · Cellulitis",
C.dermAccent, "1A0B2E"
);
// ─── SLIDE: ERYSIPELAS ────────────────────────────────────────────────────────
{
const slide = contentSlide(pres, C.dermAccent, "C - DERMAL & SUBCUTANEOUS");
addSlideTitleBox(slide, "ERYSIPELAS", C.dermAccent);
addBottomBar(slide, "Fitzpatrick's Dermatology 9e, Ch. 151, p. 2775-2783 | IDSA Guidelines 2014");
addSlideNum(slide, 13);
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.22, y: 0.95, w: 12.86, h: 0.52,
fill: { color: C.dermAccent, transparency: 88 }, line: { color: C.dermAccent, transparency: 50 }
});
slide.addText("DEFINITION: Superficial dermis + lymphatic vessel infection with SHARPLY DEMARCATED raised borders. Variant of cellulitis — more superficial", {
x: 0.3, y: 0.95, w: 12.7, h: 0.52,
fontSize: 10.5, italic: true, color: C.textDark, valign: "middle"
});
const boxes = [
{
x: 0.22, label: "ETIOLOGY", color: C.dermAccent,
lines: [
"Streptococcus pyogenes (Group A β-haemolytic) – classic",
"Recent studies: similar microbial profile to cellulitis",
"Groups B, C, G streptococci – less common",
"Portal of entry: toe web infections (most common)",
"Found in 62% of cases"
]
},
{
x: 3.47, label: "CLINICAL FEATURES", color: C.dermAccent,
lines: [
"Salmon-red, painful, edematous plaques",
"KEY: SHARP, RAISED, PALPABLE BORDER",
"Peau d'orange surface appearance",
"Leg 76-90%; also face and upper extremity",
"Fever, chills, malaise more prominent than cellulitis",
"Facial: butterfly distribution, edematous",
"Recurrence observed; systemic complications uncommon"
]
},
{
x: 6.72, label: "DIFFERENTIAL DIAGNOSIS", color: C.dermAccent,
lines: [
"Cellulitis – ill-defined border (KEY distinguishing feature)",
"Necrotizing fasciitis – crepitus, anesthesia, rapid spread (EMERGENCY)",
"Contact/eczematous dermatitis – scaling, pruritus, no fever",
"Angioedema – bilateral, no fever, no erythema",
"Herpes zoster (pre-vesicular) – dermatomal",
"Gout – overlies joint, crystals on aspiration"
]
},
{
x: 9.97, label: "MANAGEMENT", color: C.dermAccent,
lines: [
"Mild/outpatient: Penicillin V or amoxicillin oral",
"Moderate: Benzylpenicillin IV",
"Penicillin allergy: clindamycin or macrolides",
"Elevate affected limb",
"Mark advancing border to monitor response",
"Prophylaxis for recurrence: Penicillin V 250 mg BD",
"Treat predisposing factors (tinea pedis, oedema)"
]
}
];
boxes.forEach(b => {
addBox(slide, b.x, 1.58, 3.1, 5.3, C.white, b.label, b.color, b.lines, C.textDark, b.color);
});
}
// ─── SLIDE: CELLULITIS ────────────────────────────────────────────────────────
{
const slide = contentSlide(pres, C.dermAccent, "C - DERMAL & SUBCUTANEOUS");
addSlideTitleBox(slide, "CELLULITIS", C.dermAccent);
addBottomBar(slide, "Fitzpatrick's Dermatology 9e, Ch. 151, p. 2775-2783 | IDSA Guidelines 2014");
addSlideNum(slide, 14);
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.22, y: 0.95, w: 12.86, h: 0.52,
fill: { color: C.dermAccent, transparency: 88 }, line: { color: C.dermAccent, transparency: 50 }
});
slide.addText("DEFINITION: Infection of deep dermis and subcutaneous tissue; ILL-DEFINED spreading erythema; unilateral lower extremity most common", {
x: 0.3, y: 0.95, w: 12.7, h: 0.52,
fontSize: 10.5, italic: true, color: C.textDark, valign: "middle"
});
const boxes = [
{
x: 0.22, label: "ETIOLOGY", color: C.dermAccent,
lines: [
"S. pyogenes + S. aureus (incl. MRSA) – most common",
"Causative organism found in <1/3 of cases",
"Bite wounds: Pasteurella, Eikenella, Capnocytophaga",
"Aquatic: Aeromonas, Vibrio vulnificus, M. marinum",
"Immunocompromised: gram-negatives, Pseudomonas, fungi",
"Polymicrobial in diabetics/surgical wounds"
]
},
{
x: 3.47, label: "CLINICAL FEATURES", color: C.dermAccent,
lines: [
"Spreading ILL-DEFINED erythema, oedema, warmth, pain",
"ALMOST ALWAYS UNILATERAL (bilateral → seek other diagnosis)",
"Lower extremity in adults; face in children",
"Lymphangitis, skip areas, peau d'orange",
"Bullae + superficial necrosis in severe cases",
"⚠ Crepitus/anesthesia/pain out of proportion → NECROTISING FASCIITIS"
]
},
{
x: 6.72, label: "DIFFERENTIAL DIAGNOSIS", color: C.dermAccent,
lines: [
"DVT / post-thrombotic syndrome – Duplex USS",
"Stasis dermatitis – bilateral, scaling, pruritus",
"Lipodermatosclerosis – inverted champagne bottle leg",
"Gout/pseudogout – overlies joint; crystals",
"Erythema migrans – annular; tick exposure",
"Erythema nodosum – nodules; bilateral shins",
"Necrotizing fasciitis – EXCLUDE URGENTLY (crepitus)"
]
},
{
x: 9.97, label: "MANAGEMENT", color: C.dermAccent,
lines: [
"Outpatient non-purulent: cefalexin, dicloxacillin",
"Outpatient purulent/MRSA: TMP-SMX, clindamycin, doxycycline",
"Inpatient IV: cefazolin/ceftriaxone; vancomycin (MRSA)",
"Severe/polymicrobial: pip-tazo or imipenem",
"Elevate limb; mark border; serial photography",
"Prophylaxis (≥3 episodes/year): Penicillin V 250 mg BD",
"IDSA 2014: do NOT routinely culture blood/swabs/aspirates"
]
}
];
boxes.forEach(b => {
addBox(slide, b.x, 1.58, 3.1, 5.3, C.white, b.label, b.color, b.lines, C.textDark, b.color);
});
}
// ─── SLIDE: CELLULITIS DIAGNOSIS ─────────────────────────────────────────────
{
const slide = contentSlide(pres, C.dermAccent, "C - DERMAL & SUBCUTANEOUS");
addSlideTitleBox(slide, "CELLULITIS — DIAGNOSIS & ALT-70 SCORE", C.dermAccent);
addBottomBar(slide, "Fitzpatrick's Dermatology 9e, p. 2780-2781 | IDSA 2014");
addSlideNum(slide, 15);
// ALT-70 box
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.22, y: 0.95, w: 6.2, h: 5.9,
fill: { color: C.white },
line: { color: C.dermAccent, transparency: 30 },
shadow: { type: "outer", color: "000000", blur: 4, offset: 1, angle: 135, opacity: 0.1 }
});
slide.addShape(pres.shapes.RECTANGLE, { x: 0.22, y: 0.95, w: 6.2, h: 0.48, fill: { color: C.dermAccent }, line: { color: C.dermAccent } });
slide.addText("ALT-70 RISK PREDICTION SCORE", { x: 0.3, y: 0.95, w: 6.0, h: 0.48, fontSize: 12, bold: true, color: C.white, valign: "middle", margin: 0 });
const altRows = [
[{ text: "PARAMETER", options: { bold: true, color: C.white, fill: { color: C.textMid } } }, { text: "POINTS", options: { bold: true, color: C.white, fill: { color: C.textMid } } }],
[{ text: "Asymmetry (unilateral involvement)", options: {} }, { text: "3 pts", options: { bold: true, color: C.dermAccent } }],
[{ text: "Leukocytosis ≥ 10,000 cells/μL", options: {} }, { text: "1 pt", options: { bold: true, color: C.dermAccent } }],
[{ text: "Tachycardia ≥ 90 beats/min", options: {} }, { text: "1 pt", options: { bold: true, color: C.dermAccent } }],
[{ text: "Age ≥ 70 years", options: {} }, { text: "2 pts", options: { bold: true, color: C.dermAccent } }],
];
slide.addTable(altRows, {
x: 0.35, y: 1.52, w: 5.95, h: 2.0,
border: { pt: 0.5, color: "CCDDEE" },
fill: { color: "F5FAFF" },
colW: [4.2, 1.75],
fontSize: 10
});
slide.addShape(pres.shapes.RECTANGLE, { x: 0.35, y: 3.65, w: 5.95, h: 0.5, fill: { color: "E8F5F6" }, line: { color: C.dermAccent, transparency: 50 } });
slide.addText("Score 0-2 → NPV > 83% (likely NOT cellulitis)", { x: 0.45, y: 3.67, w: 5.75, h: 0.25, fontSize: 9.5, color: C.textDark });
slide.addText("Score ≥ 5 → PPV > 82% (likely cellulitis)", { x: 0.45, y: 3.9, w: 5.75, h: 0.25, fontSize: 9.5, color: C.textDark });
const diagLines = [
"Diagnosis is primarily CLINICAL",
"Misdiagnosis rate >30% in ED/hospital settings",
"Dermatology consultation improves accuracy",
"CBC: leukocytosis in 34-50% (non-specific)",
"ESR/CRP elevated in >75% (non-specific)",
"Blood cultures: positive in only ~5% (reserve for high-risk)",
"Skin needle aspirate: low yield (5-40%)",
"IDSA 2014: do NOT routinely culture blood/swabs",
"Abscess/pustule culture: recommended",
"Ultrasound: identifies fluid collections for I&D",
"MRI: differentiates cellulitis from necrotising fasciitis"
];
slide.addShape(pres.shapes.RECTANGLE, { x: 0.35, y: 4.25, w: 5.95, h: 0.38, fill: { color: C.dermAccent, transparency: 85 }, line: { color: C.dermAccent, transparency: 60 } });
slide.addText("SUPPORTIVE INVESTIGATIONS", { x: 0.45, y: 4.25, w: 5.75, h: 0.38, fontSize: 10, bold: true, color: C.dermAccent, valign: "middle", margin: 0 });
slide.addText(diagLines.map((t, i) => ({
text: t, options: { bullet: { type: "bullet" }, breakLine: i < diagLines.length - 1, fontSize: 9.2, color: C.textDark }
})), { x: 0.38, y: 4.68, w: 6.0, h: 2.2, valign: "top", margin: 0 });
// right: DDx pseudocellulitis
slide.addShape(pres.shapes.RECTANGLE, {
x: 6.8, y: 0.95, w: 6.28, h: 5.9,
fill: { color: C.white },
line: { color: C.dermAccent, transparency: 30 },
shadow: { type: "outer", color: "000000", blur: 4, offset: 1, angle: 135, opacity: 0.1 }
});
slide.addShape(pres.shapes.RECTANGLE, { x: 6.8, y: 0.95, w: 6.28, h: 0.48, fill: { color: C.dermAccent }, line: { color: C.dermAccent } });
slide.addText("PSEUDOCELLULITIS — COMMON MIMICS", { x: 6.88, y: 0.95, w: 6.1, h: 0.48, fontSize: 12, bold: true, color: C.white, valign: "middle", margin: 0 });
const ddxRows = [
[{ text: "CONDITION", options: { bold: true, color: C.white, fill: { color: C.textMid } } }, { text: "KEY DISTINGUISHING FEATURE", options: { bold: true, color: C.white, fill: { color: C.textMid } } }],
["DVT / post-thrombotic", "Duplex USS; bilateral possible; no erythema"],
["Stasis dermatitis", "Bilateral; scaling; pruritus; chronic"],
["Lipodermatosclerosis", "Inverted champagne bottle; fibrous; chronic"],
["Contact dermatitis", "Geometric borders; pruritus; no fever"],
["Gout / pseudogout", "Overlies joint; crystal aspiration+"],
["Erythema migrans", "Annular; tick exposure; endemic area"],
["Erythema nodosum", "Nodular; bilateral shins; no purulence"],
["Necrotising fasciitis ⚠", "Crepitus; anesthesia; RAPID spread → EMERGENCY"],
];
slide.addTable(ddxRows, {
x: 6.9, y: 1.52, w: 6.05, h: 5.2,
border: { pt: 0.5, color: "CCDDEE" },
fill: { color: "F8F2FF" },
colW: [2.5, 3.55],
fontSize: 9.2
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE: COMPARATIVE SUMMARY TABLE
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 13.3, h: 0.18, fill: { color: C.accent }, line: { color: C.accent } });
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.18, w: 13.3, h: 0.72, fill: { color: C.darkBg }, line: { color: C.darkBg } });
slide.addText("COMPARATIVE SUMMARY — ALL DISEASES BY DEPTH", {
x: 0.3, y: 0.18, w: 12.8, h: 0.72,
fontSize: 20, bold: true, color: C.white, valign: "middle", margin: 0
});
const rows = [
[
{ text: "DISEASE", options: { bold: true, color: C.white, fill: { color: C.darkBg } } },
{ text: "CATEGORY", options: { bold: true, color: C.white, fill: { color: C.darkBg } } },
{ text: "DEPTH", options: { bold: true, color: C.white, fill: { color: C.darkBg } } },
{ text: "ORGANISM", options: { bold: true, color: C.white, fill: { color: C.darkBg } } },
{ text: "KEY LESION", options: { bold: true, color: C.white, fill: { color: C.darkBg } } },
{ text: "DX PEARL", options: { bold: true, color: C.white, fill: { color: C.darkBg } } },
{ text: "1st LINE Rx", options: { bold: true, color: C.white, fill: { color: C.darkBg } } },
],
[
{ text: "Impetigo", options: { fill: { color: "E0F7F8" } } },
{ text: "Superficial", options: { fill: { color: "E0F7F8" }, color: "007A80", bold: true } },
"Sub-corneal / intra-epidermal",
"S. aureus / S. pyogenes",
"Honey-golden crust",
"Culture; Tzanck",
"Mupirocin / Cefalexin",
],
[
{ text: "Ecthyma", options: { fill: { color: "E0F7F8" } } },
{ text: "Superficial", options: { fill: { color: "E0F7F8" }, color: "007A80", bold: true } },
"Full epidermis → upper dermis",
"S. pyogenes / S. aureus",
"Punched-out ulcer + thick crust",
"Clinical; culture",
"Dicloxacillin / Cefalexin",
],
[
{ text: "Erythrasma", options: { fill: { color: "E0F7F8" } } },
{ text: "Superficial", options: { fill: { color: "E0F7F8" }, color: "007A80", bold: true } },
"Stratum corneum (intertriginous)",
"C. minutissimum",
"Brown intertriginous patch",
"Wood's lamp: coral-red",
"Topical erythromycin / Clarithromycin 1g",
],
[
{ text: "Pitted Keratolysis", options: { fill: { color: "E0F7F8" } } },
{ text: "Superficial", options: { fill: { color: "E0F7F8" }, color: "007A80", bold: true } },
"Stratum corneum (plantar)",
"K. sedentarius",
"Plantar pits + malodour",
"Clinical; serine proteases",
"Topical erythromycin / Clindamycin",
],
[
{ text: "Folliculitis", options: { fill: { color: "FFF3E0" } } },
{ text: "Follicular", options: { fill: { color: "FFF3E0" }, color: "B35A00", bold: true } },
"Follicular ostium / deep follicle",
"S. aureus (Pseudomonas hot tub)",
"Perifollicular pustule",
"Culture swab",
"Topical mupirocin / Clindamycin",
],
[
{ text: "Furunculosis", options: { fill: { color: "FFF3E0" } } },
{ text: "Follicular", options: { fill: { color: "FFF3E0" }, color: "B35A00", bold: true } },
"Perifollicular dermis",
"S. aureus / MRSA",
"Fluctuant abscess",
"Culture; I&D",
"I&D + TMP-SMX or Clindamycin",
],
[
{ text: "Carbuncle", options: { fill: { color: "FFF3E0" } } },
{ text: "Follicular", options: { fill: { color: "FFF3E0" }, color: "B35A00", bold: true } },
"Confluent follicular → deep dermis",
"S. aureus / MRSA",
"Multi-headed abscess",
"Culture; systemic signs",
"I&D + IV antibiotics if severe",
],
[
{ text: "Erysipelas", options: { fill: { color: "F3E5F5" } } },
{ text: "Dermal/Subcut.", options: { fill: { color: "F3E5F5" }, color: "6A0080", bold: true } },
"Superficial dermis + lymphatics",
"S. pyogenes",
"SHARP-BORDERED red plaque",
"Sharp raised palpable edge",
"Penicillin V / Benzylpenicillin IV",
],
[
{ text: "Cellulitis", options: { fill: { color: "F3E5F5" } } },
{ text: "Dermal/Subcut.", options: { fill: { color: "F3E5F5" }, color: "6A0080", bold: true } },
"Deep dermis + subcutaneous",
"S. pyogenes / S. aureus / MRSA",
"ILL-DEFINED erythema",
"ALT-70 score; clinical",
"Cefalexin / Vancomycin (MRSA)",
],
];
slide.addTable(rows, {
x: 0.15, y: 1.0, w: 13.0, h: 6.0,
border: { pt: 0.5, color: "CCDDEE" },
colW: [1.5, 1.35, 1.85, 2.0, 1.8, 1.85, 2.65],
fontSize: 8.5,
autoPage: false
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE: ANATOMICAL DEPTH DIAGRAM
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.darkBg };
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 13.3, h: 0.18, fill: { color: C.accent }, line: { color: C.accent } });
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.18, w: 13.3, h: 0.65, fill: { color: C.midBg }, line: { color: C.midBg } });
slide.addText("ANATOMICAL DEPTH — SUMMARY DIAGRAM", {
x: 0.3, y: 0.18, w: 12.8, h: 0.65,
fontSize: 20, bold: true, color: C.white, valign: "middle", margin: 0
});
// skin layer bands (left side)
const layers = [
{ label: "Stratum Corneum", y: 1.0, h: 0.8, color: "F5C842", textColor: C.darkBg },
{ label: "Epidermis", y: 1.8, h: 0.9, color: "F5A623", textColor: C.white },
{ label: "Dermis (Superficial)", y: 2.7, h: 1.0, color: "E87040", textColor: C.white },
{ label: "Dermis (Deep)", y: 3.7, h: 1.0, color: "CC4A20", textColor: C.white },
{ label: "Subcutaneous Tissue", y: 4.7, h: 1.0, color: "9B3010", textColor: C.white },
{ label: "Fascia / Muscle", y: 5.7, h: 0.8, color: "6B1B08", textColor: "FF9999" },
];
layers.forEach(l => {
slide.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: l.y, w: 2.8, h: l.h, fill: { color: l.color }, line: { color: l.color } });
slide.addText(l.label, { x: 0.25, y: l.y, w: 2.7, h: l.h, fontSize: 9.5, bold: true, color: l.textColor, valign: "middle", align: "center", margin: 0 });
});
// labels for the diseases at each layer
const diseaseLabels = [
{ text: "Pitted Keratolysis\nErythrasma", y: 1.05, color: C.superAccent },
{ text: "Impetigo (non-bullous)\nEcthyma (starts here)", y: 1.88, color: C.superAccent },
{ text: "Folliculitis (superficial)\nSycosis Barbae\nEcthyma (extends here)\nErysipelas", y: 2.75, color: C.follAccent },
{ text: "Furunculosis\nCarbuncle\nCellulitis", y: 3.75, color: C.dermAccent },
{ text: "Cellulitis (extends here)", y: 4.78, color: C.dermAccent },
{ text: "Necrotising Fasciitis (not covered – emergency)", y: 5.78, color: "FF6B6B" },
];
diseaseLabels.forEach(d => {
slide.addShape(pres.shapes.RECTANGLE, { x: 3.2, y: d.y, w: 0.04, h: 0.65, fill: { color: d.color }, line: { color: d.color } });
slide.addText(d.text, { x: 3.35, y: d.y, w: 9.5, h: 0.65, fontSize: 10, color: d.color, valign: "middle", margin: 0 });
});
// category legend
const legends = [
{ label: "SUPERFICIAL", color: C.superAccent, x: 0.3 },
{ label: "FOLLICULAR", color: C.follAccent, x: 3.5 },
{ label: "DERMAL / SUBCUTANEOUS", color: C.dermAccent, x: 6.7 },
];
legends.forEach(l => {
slide.addShape(pres.shapes.RECTANGLE, { x: l.x, y: 6.95, w: 0.3, h: 0.3, fill: { color: l.color }, line: { color: l.color } });
slide.addText(l.label, { x: l.x + 0.35, y: 6.95, w: 2.8, h: 0.3, fontSize: 9, color: l.color, valign: "middle", margin: 0 });
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE: REFERENCES
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.darkBg };
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 13.3, h: 0.18, fill: { color: C.gold }, line: { color: C.gold } });
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.18, w: 13.3, h: 0.72, fill: { color: C.midBg }, line: { color: C.midBg } });
slide.addText("REFERENCES", {
x: 0.4, y: 0.18, w: 12.5, h: 0.72,
fontSize: 24, bold: true, color: C.white, charSpacing: 4, valign: "middle"
});
const refs = [
"1. James WD, Elston DM, Treat JR, Rosenbach MA, Neuhaus IM. Andrews' Diseases of the Skin: Clinical Dermatology. 13th ed. Elsevier; 2020. (ISBN 9780323547536). Chapters 14, pp. 297–310.",
"2. Kang S, Amagai M, Bruckner AL, et al. Fitzpatrick's Dermatology. 9th ed. McGraw-Hill; 2019. (ISBN 9780071837781). Chapters 150 (pp. 2768–2774) & 151 (pp. 2775–2786).",
"3. Stevens DL, Bisno AL, Chambers HF, et al. Practice guidelines for the diagnosis and management of skin and soft tissue infections: 2014 update by the IDSA. Clin Infect Dis. 2014;59(2):e10–e52.",
"4. Jacka J, Sierla R, Kilbreath SL. A Systematic Review of Cellulitis Guidelines: The Role of Non-Pharmacological Management in Preventing Recurrence. Australas J Dermatol. 2025;66(5). [PMID 40530782]",
"5. Bolognia JL, Schaffer JV, Cerroni L. Dermatology. 5th ed. Elsevier; 2024. (ISBN 9780702082252).",
"6. Rho NK, Kim BJ. A corynebacterial triad: pitted keratolysis, trichomycosis axillaris, and erythrasma. J Am Acad Dermatol. 2008;58(5 Suppl 1):S57–S58.",
"7. Bristow IR, Lee YL. Pitted keratolysis: a clinical review. J Am Podiatr Med Assoc. 2014;104(2):177–182.",
];
refs.forEach((r, i) => {
slide.addText(r, {
x: 0.4, y: 1.1 + i * 0.74, w: 12.5, h: 0.65,
fontSize: 9.8, color: "AACCDD", valign: "top"
});
});
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 7.1, w: 13.3, h: 0.4, fill: { color: C.accent }, line: { color: C.accent } });
slide.addText("Common Cutaneous Bacterial Infections | Evidence-Based Review | " + new Date().getFullYear(), {
x: 0.3, y: 7.1, w: 12.7, h: 0.4,
fontSize: 9, color: C.white, align: "center", valign: "middle"
});
}
// ─── WRITE FILE ───────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/cutaneous-infections-ppt/Cutaneous_Bacterial_Infections.pptx" })
.then(() => console.log("✅ PPT created successfully"))
.catch(e => { console.error("❌ Error:", e); process.exit(1); });
cd /home/daytona/workspace/cutaneous-infections-ppt && node build.js 2>&1
ls -lh /home/daytona/workspace/cutaneous-infections-ppt/Cutaneous_Bacterial_Infections.pptx
Cutaneous Bacterial Infections
Presentation · PPTX
| Slides | Content |
|---|---|
| 1 | Title slide — dark navy theme with 3 category badges |
| 2 | Classification Overview — 3-column visual with all diseases by depth |
| 3 | Section A divider — Superficial Infections |
| 4-7 | Impetigo, Ecthyma, Erythrasma, Pitted Keratolysis (each with Etiology / Clinical / DDx / Management in 4 columns) |
| 8 | Section B divider — Follicular Infections |
| 9-11 | Folliculitis & Sycosis Barbae, Furunculosis & Carbuncle, Prevention & Decolonisation |
| 12 | Section C divider — Dermal & Subcutaneous |
| 13-15 | Erysipelas, Cellulitis, Cellulitis Diagnosis with ALT-70 score table + DDx pseudocellulitis |
| 16 | Comparative Summary Table — all 8 diseases across depth/organism/lesion/Rx |
| 17 | Anatomical Depth Diagram — layered skin cross-section with diseases mapped to each layer |
| 18 | References — Andrews', Fitzpatrick's, IDSA 2014, Jacka 2025 systematic review |
Add images to those slides and make the font size big
~/cutaneous-infections-ppt/build_v2.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// ─── FETCH ALL IMAGES UP FRONT ────────────────────────────────────────────────
const imageUrls = {
impetigo_nonbullous: "https://cdn.orris.care/cdss_images/d3c384fb7d3ad6ce19da7f641d235793783f844dc1ce44d19291f9b431500218.png",
impetigo_bullous: "https://cdn.orris.care/cdss_images/f3edf5aedf06b5d9fef89e0e14a93368771ce112be646c1ce508b818a5959fe9.png",
impetigo_face: "https://cdn.orris.care/cdss_images/d43ea3d3b49c9e1cc0e952290ececa1035cd2c3e4e2270eae4ee86d4442e555a.png",
ecthyma1: "https://cdn.orris.care/cdss_images/77b239ea3d2a9c947e678dbbdbd375752fe1eec0f95801124a43b37a2c35b123.png",
ecthyma2: "https://cdn.orris.care/cdss_images/ca774ac84699a26ee8d684646e2f933cd6dde3805c6bed6d6ab1b4932ff6d183.png",
folliculitis1: "https://cdn.orris.care/cdss_images/40388c8adeef18745048cab0a9be8afb2a191bbb871af16062706a09ae33db44.png",
folliculitis2: "https://cdn.orris.care/cdss_images/07f5798d944b2206795a4c4c2db4ff47acb8f08211e5d12743e7a61426a0e186.png",
folliculitis_buttock: "https://cdn.orris.care/cdss_images/75baef6779e4aef72312a7d067ba6c93d0faf0128577e7d96020d2ca99fc72b7.png",
furuncle1: "https://cdn.orris.care/cdss_images/22025a8573ba0e5a6596f9ce843a97c9e56f6aaaeaaf374992daf796b4e22dcb.png",
furuncle2: "https://cdn.orris.care/cdss_images/81eb40b7082d5c2d5ca38cc2e06797ed66b217c3f7d8aaae0db3d4aaa9039061.png",
erysipelas_face: "https://cdn.orris.care/cdss_images/d2a00734a29b8e9e2391daaeaa02c7176edf394cf5a12ada60d4d988acaf7ea7.png",
erysipelas_ear: "https://cdn.orris.care/cdss_images/809bd1916ed0286467dccd85bd9c144c47bcc93e0895d4b50a5257d88126d83f.png",
cellulitis1: "https://cdn.orris.care/cdss_images/7f1de929c192b62dc06693107164151fc13d81807327ee6d1b6e677122f7297a.png",
cellulitis2: "https://cdn.orris.care/cdss_images/3fd4cde9ed0f84b81d14eb0c74ddca8c28d8e13fafc2397822fbcc59b274da42.png",
erythrasma1: "https://cdn.orris.care/cdss_images/b17b0f7987a3bf75805c5bfb4a618ebca1d1484049ed09f83fe95e831257ef74.png",
erythrasma2: "https://cdn.orris.care/cdss_images/103f9ef5384cbe3bcced5bc0a79601bf2535e677cfc3e6ab009281c3b7cfdb03.png",
pitted1: "https://cdn.orris.care/cdss_images/672c7a7aaa72d53c6822d0eb30c8b0da53ae76516854550f59e070b011794654.png",
pitted2: "https://cdn.orris.care/cdss_images/93929e798b4d208a07179b5051f943f312b0a7dec07cfc2a96ba2b6c1e978746.png",
};
console.log("Fetching images...");
const urlArgs = Object.values(imageUrls).map(u => `"${u}"`).join(" ");
let imgData = {};
try {
const raw = execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js ${urlArgs}`,
{ maxBuffer: 50 * 1024 * 1024, timeout: 90000 }
).toString();
const arr = JSON.parse(raw);
const keys = Object.keys(imageUrls);
arr.forEach((item, i) => {
if (item && !item.error && item.base64) {
imgData[keys[i]] = item.base64;
} else {
console.warn(`Could not fetch image: ${keys[i]}`);
imgData[keys[i]] = null;
}
});
} catch(e) {
console.error("Image fetch error:", e.message);
Object.keys(imageUrls).forEach(k => imgData[k] = null);
}
console.log("Images fetched:", Object.values(imgData).filter(Boolean).length, "/", Object.keys(imgData).length);
// ─── PPT SETUP ────────────────────────────────────────────────────────────────
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
pres.title = "Common Cutaneous Bacterial Infections";
const C = {
darkBg: "0D2B45",
midBg: "1A4A6E",
accent: "2AAFB8",
accentLight: "5BC8D0",
gold: "E8B84B",
white: "FFFFFF",
offWhite: "F0F6FA",
textDark: "0D2B45",
textMid: "2A4A65",
lightGray: "DDE8F0",
superAccent: "2AAFB8",
follAccent: "E8930A",
dermAccent: "8E44AD",
};
// ─── HELPERS ─────────────────────────────────────────────────────────────────
function addDividerBar(slide, color) {
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.12, h:7.5, fill:{color}, line:{color} });
}
function addBottomBar(slide, label) {
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:7.1, w:13.3, h:0.4, fill:{color:C.darkBg}, line:{color:C.darkBg} });
slide.addText(label, { x:0.2, y:7.1, w:12.8, h:0.4, fontSize:9, color:"99BBCC", italic:true, valign:"middle" });
}
function addCategoryBadge(slide, label, color) {
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.22, y:0.18, w:3.2, h:0.44, fill:{color}, line:{color}, rectRadius:0.06 });
slide.addText(label.toUpperCase(), { x:0.22, y:0.18, w:3.2, h:0.44, fontSize:9.5, bold:true, color:C.white, align:"center", valign:"middle", margin:0 });
}
function addSlideTitle(slide, title, catColor) {
slide.addShape(pres.shapes.RECTANGLE, { x:0.12, y:0.08, w:13.18, h:0.78, fill:{color:C.darkBg}, line:{color:C.darkBg} });
slide.addText(title, { x:0.3, y:0.08, w:12.8, h:0.78, fontSize:22, bold:true, color:C.white, valign:"middle", margin:0 });
slide.addShape(pres.shapes.RECTANGLE, { x:0.12, y:0.86, w:13.18, h:0.07, fill:{color:catColor}, line:{color:catColor} });
}
function sectionDivider(title, subtitle, color, bgColor) {
const slide = pres.addSlide();
slide.background = { color: bgColor || C.darkBg };
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.55, h:7.5, fill:{color}, line:{color} });
slide.addShape(pres.shapes.RECTANGLE, { x:0.55, y:0, w:5.0, h:7.5, fill:{color, transparency:88}, line:{color, transparency:88} });
slide.addText(title, { x:1.3, y:2.3, w:11.5, h:1.5, fontSize:44, bold:true, color:C.white, fontFace:"Calibri" });
slide.addText(subtitle, { x:1.3, y:3.9, w:10, h:0.8, fontSize:17, color:"AACCDD", italic:true });
return slide;
}
// Disease slide: LEFT = text content (2 cols), RIGHT = image(s)
// Layout: 13.3" wide. Text area: 0.12 to 8.2" (8.1" wide). Image area: 8.3 to 13.1" (4.8" wide)
function addImageToSlide(slide, key, x, y, w, h) {
if (imgData[key]) {
slide.addImage({ data: imgData[key], x, y, w, h });
}
}
function addLabelBox(slide, x, y, w, h, label, color, lines, fontSize) {
const fs = fontSize || 12;
slide.addShape(pres.shapes.RECTANGLE, { x, y, w, h, fill:{color:C.white}, line:{color, transparency:40},
shadow:{type:"outer",color:"000000",blur:4,offset:1,angle:135,opacity:0.1} });
slide.addShape(pres.shapes.RECTANGLE, { x, y, w, h:0.4, fill:{color}, line:{color} });
slide.addText(label, { x:x+0.08, y, w:w-0.1, h:0.4, fontSize:fs-0.5, bold:true, color:C.white, valign:"middle", margin:0 });
if (lines && lines.length) {
const items = lines.map((t,i) => ({
text: t,
options: { bullet:{type:"bullet", indent:10}, breakLine: i<lines.length-1, fontSize:fs, color:C.textDark, paraSpaceAfter:1 }
}));
slide.addText(items, { x:x+0.1, y:y+0.44, w:w-0.18, h:h-0.48, valign:"top", margin:0 });
}
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.darkBg };
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:0.18, fill:{color:C.accent}, line:{color:C.accent} });
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0.18, w:4.8, h:7.32, fill:{color:C.midBg}, line:{color:C.midBg} });
slide.addShape(pres.shapes.OVAL, { x:0.3, y:0.8, w:2.8, h:2.8, fill:{color:C.accent, transparency:82}, line:{color:C.accent, transparency:82} });
slide.addShape(pres.shapes.OVAL, { x:1.7, y:3.8, w:1.8, h:1.8, fill:{color:C.gold, transparency:85}, line:{color:C.gold, transparency:85} });
const cats = [
{ label:"SUPERFICIAL INFECTIONS", color:C.superAccent, y:2.2 },
{ label:"FOLLICULAR INFECTIONS", color:C.follAccent, y:2.9 },
{ label:"DERMAL & SUBCUTANEOUS", color:C.dermAccent, y:3.6 },
];
cats.forEach(c => {
slide.addShape(pres.shapes.RECTANGLE, { x:0.3, y:c.y, w:4.0, h:0.48, fill:{color:c.color, transparency:15}, line:{color:c.color} });
slide.addText(c.label, { x:0.3, y:c.y, w:4.0, h:0.48, fontSize:12.5, bold:true, color:C.white, align:"center", valign:"middle", margin:0 });
});
slide.addText("COMMON CUTANEOUS", { x:5.1, y:1.1, w:8.0, h:1.0, fontSize:38, bold:true, color:C.accent, fontFace:"Calibri", charSpacing:2 });
slide.addText("BACTERIAL INFECTIONS", { x:5.1, y:2.05, w:8.0, h:1.0, fontSize:38, bold:true, color:C.white, fontFace:"Calibri", charSpacing:2 });
slide.addShape(pres.shapes.RECTANGLE, { x:5.1, y:3.15, w:7.9, h:0.05, fill:{color:C.gold}, line:{color:C.gold} });
slide.addText("Evidence-Based Classification by Anatomical Depth", { x:5.1, y:3.3, w:8.0, h:0.6, fontSize:17, italic:true, color:"AACCDD" });
slide.addText([
{text:"References: ", options:{bold:true}},
{text:"Fitzpatrick's Dermatology 9e | Andrews' Diseases of the Skin 12e | IDSA Guidelines 2014"}
], { x:5.1, y:4.1, w:8.0, h:0.45, fontSize:10.5, color:"88AABB" });
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:7.1, w:13.3, h:0.4, fill:{color:C.accent}, line:{color:C.accent} });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 2 – CLASSIFICATION OVERVIEW
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.darkBg };
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:0.18, fill:{color:C.accent}, line:{color:C.accent} });
slide.addText("CLASSIFICATION BY ANATOMICAL DEPTH", {
x:0.4, y:0.25, w:12.5, h:0.75, fontSize:24, bold:true, color:C.white, charSpacing:2
});
slide.addShape(pres.shapes.RECTANGLE, { x:0.4, y:0.98, w:12.5, h:0.05, fill:{color:C.gold}, line:{color:C.gold} });
const catData = [
{ x:0.35, color:C.superAccent, label:"A SUPERFICIAL INFECTIONS", sub:"Epidermis & Stratum Corneum",
diseases:["Impetigo","Ecthyma","Erythrasma","Pitted Keratolysis"] },
{ x:4.75, color:C.follAccent, label:"B FOLLICULAR INFECTIONS", sub:"Hair Follicle as Primary Target",
diseases:["Folliculitis","Sycosis Barbae","Furunculosis","Carbuncle"] },
{ x:9.15, color:C.dermAccent, label:"C DERMAL & SUBCUTANEOUS", sub:"Deep Dermis & Subcutis",
diseases:["Erysipelas","Cellulitis"] },
];
catData.forEach(c => {
slide.addShape(pres.shapes.RECTANGLE, { x:c.x, y:1.1, w:4.0, h:6.0, fill:{color:c.color, transparency:90}, line:{color:c.color, transparency:30} });
slide.addShape(pres.shapes.RECTANGLE, { x:c.x, y:1.1, w:4.0, h:0.72, fill:{color:c.color}, line:{color:c.color} });
slide.addText(c.label, { x:c.x+0.1, y:1.1, w:3.8, h:0.72, fontSize:13, bold:true, color:C.white, valign:"middle", margin:0 });
slide.addText(c.sub, { x:c.x+0.1, y:1.9, w:3.8, h:0.42, fontSize:11, italic:true, color:"BBCCDD" });
c.diseases.forEach((d,i) => {
slide.addShape(pres.shapes.RECTANGLE, { x:c.x+0.15, y:2.44+i*0.82, w:3.7, h:0.65, fill:{color:C.white, transparency:18}, line:{color:c.color, transparency:50} });
slide.addShape(pres.shapes.RECTANGLE, { x:c.x+0.15, y:2.44+i*0.82, w:0.09, h:0.65, fill:{color:c.color}, line:{color:c.color} });
slide.addText(d, { x:c.x+0.33, y:2.44+i*0.82, w:3.4, h:0.65, fontSize:13, color:C.white, valign:"middle", margin:0 });
});
});
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:7.1, w:13.3, h:0.4, fill:{color:C.midBg}, line:{color:C.midBg} });
slide.addText("Fitzpatrick's Dermatology 9e | Andrews' Diseases of the Skin 12e", {
x:0.3, y:7.1, w:12.7, h:0.4, fontSize:9, color:"668899", italic:true, valign:"middle"
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SECTION A DIVIDER
// ═══════════════════════════════════════════════════════════════════════════════
sectionDivider(
"SECTION A: SUPERFICIAL INFECTIONS",
"Epidermis & Stratum Corneum | Impetigo · Ecthyma · Erythrasma · Pitted Keratolysis",
C.superAccent, "0A2E32"
);
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – IMPETIGO
// Layout: left text 0.15–7.9 (two columns), right images 8.1–13.1
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addDividerBar(slide, C.superAccent);
addCategoryBadge(slide, "A - SUPERFICIAL INFECTIONS", C.superAccent);
addSlideTitle(slide, "IMPETIGO", C.superAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 300-302 | Fitzpatrick's Dermatology 9e");
// Definition strip
slide.addShape(pres.shapes.RECTANGLE, { x:0.22, y:1.02, w:7.7, h:0.5, fill:{color:C.superAccent, transparency:85}, line:{color:C.superAccent, transparency:50} });
slide.addText("Most common superficial bacterial skin infection; sub-corneal split; highly contagious", {
x:0.32, y:1.02, w:7.5, h:0.5, fontSize:12, italic:true, color:C.textDark, valign:"middle"
});
// Text boxes: 2 cols each ~3.7" wide
addLabelBox(slide, 0.22, 1.62, 3.75, 2.65, "ETIOLOGY", C.superAccent, [
"S. aureus: 50-70% (phage group 2; exfoliative toxins A/B)",
"S. pyogenes (Group A β-haemolytic) – alone or combined",
"Bullous: exclusively S. aureus",
"Neonatal: Group B streptococci",
"Streptococci early → staphylococci as lesion matures"
], 11.5);
addLabelBox(slide, 4.1, 1.62, 3.8, 2.65, "CLINICAL FEATURES", C.superAccent, [
"Non-bullous: honey-golden crust on erythematous base",
"Bullous: large fragile bullae; axillae/groin; face/perineum",
"Rupture → circinate weepy crusted erosions",
"Perioral, perinasal most common sites",
"Regional lymphadenopathy (streptococcal type)"
], 11.5);
addLabelBox(slide, 0.22, 4.42, 3.75, 2.55, "DIFFERENTIAL DIAGNOSIS", C.superAccent, [
"Tinea corporis – scaling; KOH positive",
"Herpes simplex – vesicles; recurs at same site",
"Contact dermatitis – linear; geometric; pruritus",
"Ecthyma – punched ulcer; heals with scar",
"Bullous pemphigoid – Nikolsky sign positive"
], 11.5);
addLabelBox(slide, 4.1, 4.42, 3.8, 2.55, "MANAGEMENT & PREVENTION", C.superAccent, [
"Soak & remove crusts; soap and water cleaning",
"Topical: Mupirocin 2%, retapamulin, fusidic acid",
"Oral: Cefalexin or dicloxacillin (widespread/bullous)",
"MRSA: TMP-SMX or clindamycin",
"Prevention: hand hygiene; cover lesions; prophylactic ointment",
"Complication: Post-strep GN 2-5% (treatment does NOT prevent)"
], 11.5);
// Images on right
slide.addShape(pres.shapes.RECTANGLE, { x:8.05, y:1.02, w:5.05, h:6.0, fill:{color:C.darkBg}, line:{color:C.darkBg} });
slide.addText("CLINICAL IMAGES", { x:8.1, y:1.02, w:4.95, h:0.42, fontSize:12, bold:true, color:C.accent, align:"center", valign:"middle" });
addImageToSlide(slide, "impetigo_nonbullous", 8.1, 1.52, 2.4, 2.55);
addImageToSlide(slide, "impetigo_bullous", 10.6, 1.52, 2.45, 2.55);
addImageToSlide(slide, "impetigo_face", 8.1, 4.15, 4.95, 2.8);
slide.addText("Non-bullous Impetigo", { x:8.1, y:4.05, w:2.4, h:0.2, fontSize:8.5, color:"AACCDD", align:"center" });
slide.addText("Bullous Impetigo", { x:10.6, y:4.05, w:2.45, h:0.2, fontSize:8.5, color:"AACCDD", align:"center" });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – ECTHYMA
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addDividerBar(slide, C.superAccent);
addCategoryBadge(slide, "A - SUPERFICIAL INFECTIONS", C.superAccent);
addSlideTitle(slide, "ECTHYMA", C.superAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 302 | Fitzpatrick's Dermatology 9e");
slide.addShape(pres.shapes.RECTANGLE, { x:0.22, y:1.02, w:7.7, h:0.5, fill:{color:C.superAccent, transparency:85}, line:{color:C.superAccent, transparency:50} });
slide.addText('Ulcerative pyoderma — "impetigo going deeper"; full epidermis into upper dermis; HEALS WITH SCAR', {
x:0.32, y:1.02, w:7.5, h:0.5, fontSize:12, italic:true, color:C.textDark, valign:"middle"
});
addLabelBox(slide, 0.22, 1.62, 3.75, 2.65, "ETIOLOGY & RISK FACTORS", C.superAccent, [
"S. pyogenes (Group A β-haemolytic) – primary",
"S. aureus – urban areas, IVDU, HIV patients",
"Predisposing: malnutrition, uncleanliness, trauma",
"Debilitated / immunocompromised patients",
"Lower extremities; insect bites as portal of entry"
], 11.5);
addLabelBox(slide, 4.1, 1.62, 3.8, 2.65, "CLINICAL FEATURES", C.superAccent, [
"Vesicle/vesicopustule → thick 'oyster-shell' crust",
"Removal → SAUCER-SHAPED punched-out ulcer",
"Raised violaceous edges + raw base",
"Lower extremities and buttocks most common",
"Local adenopathy; leaves SCAR on healing",
"Rarely → gangrene in debilitated patients"
], 11.5);
addLabelBox(slide, 0.22, 4.42, 3.75, 2.55, "DIFFERENTIAL DIAGNOSIS", C.superAccent, [
"Impetigo – superficial; no ulcer; no scar",
"Herpes simplex – vesicular; grouped; Tzanck+",
"Ecthyma gangrenosum – Pseudomonas; immunocompromised",
"Cutaneous leishmaniasis – travel history; smear+",
"Pyoderma gangrenosum – undermined violaceous edge"
], 11.5);
addLabelBox(slide, 4.1, 4.42, 3.8, 2.55, "MANAGEMENT", C.superAccent, [
"Warm soaks → gentle crust removal",
"Topical: mupirocin, retapamulin, bacitracin BD",
"Oral: Dicloxacillin or cefalexin",
"MRSA: TMP-SMX or clindamycin",
"Adjust per culture & sensitivity",
"Address nutrition, hygiene, immunosuppression"
], 11.5);
// Images
slide.addShape(pres.shapes.RECTANGLE, { x:8.05, y:1.02, w:5.05, h:6.0, fill:{color:C.darkBg}, line:{color:C.darkBg} });
slide.addText("CLINICAL IMAGES", { x:8.1, y:1.02, w:4.95, h:0.42, fontSize:12, bold:true, color:C.accent, align:"center", valign:"middle" });
addImageToSlide(slide, "ecthyma1", 8.1, 1.52, 4.95, 2.8);
addImageToSlide(slide, "ecthyma2", 8.1, 4.42, 4.95, 2.55);
slide.addText("Ecthyma – punched ulcer with crust (Andrews' Atlas)", { x:8.1, y:4.33, w:4.95, h:0.18, fontSize:8, color:"AACCDD", align:"center" });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – ERYTHRASMA
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addDividerBar(slide, C.superAccent);
addCategoryBadge(slide, "A - SUPERFICIAL INFECTIONS", C.superAccent);
addSlideTitle(slide, "ERYTHRASMA", C.superAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 337-348 | Fitzpatrick's Dermatology 9e, p. 2771");
slide.addShape(pres.shapes.RECTANGLE, { x:0.22, y:1.02, w:7.7, h:0.5, fill:{color:C.superAccent, transparency:85}, line:{color:C.superAccent, transparency:50} });
slide.addText("Superficial infection of the stratum corneum in intertriginous areas — Corynebacterium minutissimum", {
x:0.32, y:1.02, w:7.5, h:0.5, fontSize:12, italic:true, color:C.textDark, valign:"middle"
});
addLabelBox(slide, 0.22, 1.62, 3.75, 2.65, "ETIOLOGY", C.superAccent, [
"Corynebacterium minutissimum (gram+ diphtheroid rod)",
"Produces coproporphyrin III → coral-red fluorescence",
"More common: tropical climates, obesity, DM, HIV",
"Males > Females",
"Immunocompromised: may cause bacteremia, cellulitis"
], 11.5);
addLabelBox(slide, 4.1, 1.62, 3.8, 2.65, "CLINICAL FEATURES", C.superAccent, [
"Toe webs: white hyperkeratotic macerated plaque",
"Genitocrural/axillae/inframammary: reddish-brown patch",
"'Cigarette paper' thin; finely scaled; well-demarcated",
"No central clearing (unlike tinea)",
"Usually asymptomatic; KEY: Wood's lamp CORAL-RED",
"Wash before exam may eliminate fluorescence!"
], 11.5);
addLabelBox(slide, 0.22, 4.42, 3.75, 2.55, "DIFFERENTIAL DIAGNOSIS", C.superAccent, [
"Tinea cruris – KOH positive; central clearing; scale",
"Candidal intertrigo – satellite pustules; KOH+",
"Intertrigo – no Wood's lamp fluorescence",
"Inverse psoriasis – smooth; psoriasis elsewhere",
"Seborrheic dermatitis – yellow greasy scales"
], 11.5);
addLabelBox(slide, 4.1, 4.42, 3.8, 2.55, "MANAGEMENT", C.superAccent, [
"Topical: erythromycin or clindamycin – first-line",
"Topical fusidic acid – alternative",
"Oral (widespread): Clarithromycin 1 g SINGLE DOSE",
"OR Erythromycin 250 mg QID × 14 days",
"Prevention: keep dry; weight loss; control DM",
"Absorbent powders; loose-fitting clothing"
], 11.5);
// Images
slide.addShape(pres.shapes.RECTANGLE, { x:8.05, y:1.02, w:5.05, h:6.0, fill:{color:C.darkBg}, line:{color:C.darkBg} });
slide.addText("CLINICAL IMAGES", { x:8.1, y:1.02, w:4.95, h:0.42, fontSize:12, bold:true, color:C.accent, align:"center", valign:"middle" });
addImageToSlide(slide, "erythrasma1", 8.1, 1.52, 4.95, 2.8);
addImageToSlide(slide, "erythrasma2", 8.1, 4.42, 4.95, 2.55);
slide.addText("Erythrasma – reddish-brown intertriginous patch (Andrews' Atlas)", { x:8.1, y:4.33, w:4.95, h:0.18, fontSize:8, color:"AACCDD", align:"center" });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – PITTED KERATOLYSIS
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addDividerBar(slide, C.superAccent);
addCategoryBadge(slide, "A - SUPERFICIAL INFECTIONS", C.superAccent);
addSlideTitle(slide, "PITTED KERATOLYSIS", C.superAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 397-406 | Fitzpatrick's Dermatology 9e, p. 2770");
slide.addShape(pres.shapes.RECTANGLE, { x:0.22, y:1.02, w:7.7, h:0.5, fill:{color:C.superAccent, transparency:85}, line:{color:C.superAccent, transparency:50} });
slide.addText("Bacterial infection of plantar stratum corneum; crateriform pits on pressure-bearing areas; characteristic malodour", {
x:0.32, y:1.02, w:7.5, h:0.5, fontSize:12, italic:true, color:C.textDark, valign:"middle"
});
addLabelBox(slide, 0.22, 1.62, 3.75, 2.65, "ETIOLOGY", C.superAccent, [
"Kytococcus sedentarius – primary organism",
"Also: Dermatophilus congolensis, Corynebacterium spp.",
"Serine proteases degrade plantar keratin",
"Male : Female ≈ 8:1; tropical climates",
"Hyperhidrosis + occlusive footwear = key risk factors"
], 11.5);
addLabelBox(slide, 4.1, 1.62, 3.8, 2.65, "CLINICAL FEATURES", C.superAccent, [
"1–3 mm crateriform pits on pressure-bearing soles",
"Pits coalesce → large defect with serpiginous borders",
"Ball of foot, heel, plantar toes; web spaces",
"Characteristic MALODOUR (2/3 of patients)",
"Feet stick to socks – sliminess (70%)",
"Pain/burning/irritation (1/3 of patients)"
], 11.5);
addLabelBox(slide, 0.22, 4.42, 3.75, 2.55, "DIFFERENTIAL DIAGNOSIS", C.superAccent, [
"Tinea pedis – KOH positive; scaling; vesicles",
"Verruca plantaris – interrupted skin lines",
"Palmoplantar keratoderma – diffuse; hereditary",
"Interdigital erythrasma – Wood's lamp coral-red",
"Plantar psoriasis – silvery scale; nail changes"
], 11.5);
addLabelBox(slide, 4.1, 4.42, 3.8, 2.55, "MANAGEMENT", C.superAccent, [
"Topical erythromycin – first-line (curative)",
"Topical clindamycin or mupirocin",
"5% benzoyl peroxide gel",
"10-20% aluminium chloride (hyperhidrosis)",
"Botulinum toxin if severe hyperhidrosis",
"Prevention: dry feet; breathable footwear; foot powder"
], 11.5);
// Images
slide.addShape(pres.shapes.RECTANGLE, { x:8.05, y:1.02, w:5.05, h:6.0, fill:{color:C.darkBg}, line:{color:C.darkBg} });
slide.addText("CLINICAL IMAGES", { x:8.1, y:1.02, w:4.95, h:0.42, fontSize:12, bold:true, color:C.accent, align:"center", valign:"middle" });
addImageToSlide(slide, "pitted1", 8.1, 1.52, 4.95, 2.8);
addImageToSlide(slide, "pitted2", 8.1, 4.42, 4.95, 2.55);
slide.addText("Pitted Keratolysis – plantar pits (Andrews' Atlas)", { x:8.1, y:4.33, w:4.95, h:0.18, fontSize:8, color:"AACCDD", align:"center" });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SECTION B DIVIDER
// ═══════════════════════════════════════════════════════════════════════════════
sectionDivider(
"SECTION B: FOLLICULAR INFECTIONS",
"Hair Follicle as Primary Target | Folliculitis · Sycosis Barbae · Furunculosis · Carbuncle",
C.follAccent, "2B1800"
);
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – FOLLICULITIS
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addDividerBar(slide, C.follAccent);
addCategoryBadge(slide, "B - FOLLICULAR INFECTIONS", C.follAccent);
addSlideTitle(slide, "FOLLICULITIS (including SYCOSIS BARBAE)", C.follAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 301-302 | Fitzpatrick's Dermatology 9e");
slide.addShape(pres.shapes.RECTANGLE, { x:0.22, y:1.02, w:7.7, h:0.5, fill:{color:C.follAccent, transparency:88}, line:{color:C.follAccent, transparency:50} });
slide.addText("Infection/inflammation of hair follicles – superficial (ostium) or deep (entire follicle + perifollicular tissue)", {
x:0.32, y:1.02, w:7.5, h:0.5, fontSize:12, italic:true, color:C.textDark, valign:"middle"
});
addLabelBox(slide, 0.22, 1.62, 3.75, 2.65, "ETIOLOGY", C.follAccent, [
"S. aureus – most common (MRSA increasingly)",
"Pseudomonas aeruginosa – hot tub folliculitis",
"Gram-negatives – after prolonged acne antibiotics",
"Malassezia spp. – Pityrosporum folliculitis",
"Demodex spp. – Demodex folliculitis"
], 11.5);
addLabelBox(slide, 4.1, 1.62, 3.8, 2.65, "CLINICAL FEATURES", C.follAccent, [
"Superficial (Bockhart): thin yellow-white pustule at follicle; crops",
"Deep staph: any hair-bearing site; trunk; axillae; pubis",
"Sycosis barbae: chronic pustules in beard; upper lip first",
"Burning/itching; may scar; blepharitis in severe cases",
"Genital folliculitis may be STD transmitted"
], 11.5);
addLabelBox(slide, 0.22, 4.42, 3.75, 2.55, "DIFFERENTIAL DIAGNOSIS", C.follAccent, [
"Tinea barbae – KOH+; spares upper lip",
"Acne vulgaris – comedones; no hair-piercing pustule",
"Pseudofolliculitis barbae – ingrown hairs; Black men",
"HSV sycosis – vesicles; short duration; Tzanck+",
"Rosacea – flushing; telangiectasia; no infection"
], 11.5);
addLabelBox(slide, 4.1, 4.42, 3.8, 2.55, "MANAGEMENT", C.follAccent, [
"Topical: mupirocin, clindamycin, retapamulin",
"Benzoyl peroxide 5-10% wash; chlorhexidine 4%",
"Bleach baths (½ cup/40-gallon tub)",
"Systemic: cefalexin; if MRSA: TMP-SMX or clindamycin",
"Decolonisation: mupirocin nares × 5 days per month",
"Aluminium chloride – chronic buttock folliculitis"
], 11.5);
// Images
slide.addShape(pres.shapes.RECTANGLE, { x:8.05, y:1.02, w:5.05, h:6.0, fill:{color:C.darkBg}, line:{color:C.darkBg} });
slide.addText("CLINICAL IMAGES", { x:8.1, y:1.02, w:4.95, h:0.42, fontSize:12, bold:true, color:C.gold, align:"center", valign:"middle" });
addImageToSlide(slide, "folliculitis1", 8.1, 1.52, 2.4, 2.55);
addImageToSlide(slide, "folliculitis2", 10.6, 1.52, 2.45, 2.55);
addImageToSlide(slide, "folliculitis_buttock", 8.1, 4.15, 4.95, 2.8);
slide.addText("Staphylococcal folliculitis", { x:8.1, y:4.06, w:2.4, h:0.18, fontSize:8, color:"AACCDD", align:"center" });
slide.addText("Perifollicular pustule", { x:10.6, y:4.06, w:2.45, h:0.18, fontSize:8, color:"AACCDD", align:"center" });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – FURUNCULOSIS & CARBUNCLE
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addDividerBar(slide, C.follAccent);
addCategoryBadge(slide, "B - FOLLICULAR INFECTIONS", C.follAccent);
addSlideTitle(slide, "FURUNCULOSIS & CARBUNCLE", C.follAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 302-303 | Fitzpatrick's Dermatology 9e");
slide.addShape(pres.shapes.RECTANGLE, { x:0.22, y:1.02, w:7.7, h:0.5, fill:{color:C.follAccent, transparency:88}, line:{color:C.follAccent, transparency:50} });
slide.addText("Furuncle: acute perifollicular abscess + central suppuration | Carbuncle: confluent furuncles with multiple heads", {
x:0.32, y:1.02, w:7.5, h:0.5, fontSize:12, italic:true, color:C.textDark, valign:"middle"
});
addLabelBox(slide, 0.22, 1.62, 3.75, 2.65, "ETIOLOGY & RISK FACTORS", C.follAccent, [
"S. aureus – principal (MRSA increasingly common)",
"Nasal/perineal carriage – key reservoir",
"Risk: DM, atopic dermatitis, HIV/AIDS, dialysis",
"Alcoholism, malnutrition, blood dyscrasias",
"Hospital-acquired MRSA – multidrug resistant"
], 11.5);
addLabelBox(slide, 4.1, 1.62, 3.8, 2.65, "CLINICAL FEATURES", C.follAccent, [
"Acute round tender perifollicular abscess",
"Sites: nape, axillae, buttocks, face",
"⚠ DANGER ZONE: upper lip & nose (cavernous sinus!)",
"Central necrosis → rupture with purulent discharge",
"Carbuncle: multiple heads; fever; malaise; scars",
"Recurrences common; autoinoculation from carrier"
], 11.5);
addLabelBox(slide, 0.22, 4.42, 3.75, 2.55, "DIFFERENTIAL DIAGNOSIS", C.follAccent, [
"Hidradenitis suppurativa – tunnels; axillae/groins; scar",
"Infected sebaceous cyst – cheesy material; no follicular",
"Cystic acne – face; comedones; chronic",
"Cutaneous anthrax – eschar; exposure history",
"Lymphadenitis – deeper; no skin origin"
], 11.5);
addLabelBox(slide, 4.1, 4.42, 3.8, 2.55, "MANAGEMENT", C.follAccent, [
"Warm compresses – pre-fluctuant early lesions",
"I&D – definitive for fluctuant abscess (even <5 cm)",
"RCT: I&D + clindamycin or TMP-SMX > I&D alone",
"MSSA: dicloxacillin or cefalexin",
"MRSA: TMP-SMX, clindamycin, doxycycline",
"Facial furuncles: IV antibiotics; DO NOT SQUEEZE"
], 11.5);
// Images
slide.addShape(pres.shapes.RECTANGLE, { x:8.05, y:1.02, w:5.05, h:6.0, fill:{color:C.darkBg}, line:{color:C.darkBg} });
slide.addText("CLINICAL IMAGES", { x:8.1, y:1.02, w:4.95, h:0.42, fontSize:12, bold:true, color:C.gold, align:"center", valign:"middle" });
addImageToSlide(slide, "furuncle1", 8.1, 1.52, 4.95, 2.8);
addImageToSlide(slide, "furuncle2", 8.1, 4.42, 4.95, 2.55);
slide.addText("Staphylococcal abscess/furuncle (Andrews' Atlas)", { x:8.1, y:4.33, w:4.95, h:0.18, fontSize:8, color:"AACCDD", align:"center" });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – FURUNCULOSIS PREVENTION
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addDividerBar(slide, C.follAccent);
addCategoryBadge(slide, "B - FOLLICULAR INFECTIONS", C.follAccent);
addSlideTitle(slide, "FURUNCULOSIS — PREVENTION & DECOLONISATION", C.follAccent);
addBottomBar(slide, "Andrews' Diseases of the Skin, p. 303");
addLabelBox(slide, 0.22, 1.0, 6.1, 5.9, "HYGIENE & SKIN CARE", C.follAccent, [
"Daily 4% chlorhexidine wash (axillae, groin, perianal) × 1 week",
"Bleach baths (sodium hypochlorite 0.005%): ½ cup/40-gallon tub, 3×/week",
"Launder bedding and clothing daily (initially)",
"Frequent handwashing throughout the day",
"Avoid sharing towels, clothing, razors, sports equipment",
"Do NOT share moisturiser containers (re-inoculation in AD)",
"Keep fingernails short and clean",
"Aggressively treat atopic dermatitis (S. aureus carrier)"
], 12.5);
addLabelBox(slide, 6.8, 1.0, 6.28, 5.9, "DECOLONISATION REGIMENS", C.follAccent, [
"Mupirocin ointment to anterior nares BD × 5 days; repeat monthly",
"MSSA regimen: Rifampin 10 days + Dicloxacillin (concurrent)",
"MRSA regimen: Rifampin 10 days + TMP-SMX (concurrent)",
"Long-term suppression: Clindamycin low-dose × 3 months",
"Bacitracin nares BD throughout isotretinoin therapy",
"Treat all household members and close contacts",
"Repeat cultures to confirm eradication",
"Indications: recurrent infections; spread to contacts; high-risk household"
], 12.5);
}
// ═══════════════════════════════════════════════════════════════════════════════
// SECTION C DIVIDER
// ═══════════════════════════════════════════════════════════════════════════════
sectionDivider(
"SECTION C: DERMAL & SUBCUTANEOUS INFECTIONS",
"Deep Dermis & Subcutaneous Tissue | Erysipelas · Cellulitis",
C.dermAccent, "1A0B2E"
);
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – ERYSIPELAS
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addDividerBar(slide, C.dermAccent);
addCategoryBadge(slide, "C - DERMAL & SUBCUTANEOUS", C.dermAccent);
addSlideTitle(slide, "ERYSIPELAS", C.dermAccent);
addBottomBar(slide, "Fitzpatrick's Dermatology 9e, Ch. 151, p. 2775 | IDSA Guidelines 2014");
slide.addShape(pres.shapes.RECTANGLE, { x:0.22, y:1.02, w:7.7, h:0.5, fill:{color:C.dermAccent, transparency:88}, line:{color:C.dermAccent, transparency:50} });
slide.addText("Superficial dermis + lymphatics; SHARPLY DEMARCATED raised borders — more superficial than cellulitis", {
x:0.32, y:1.02, w:7.5, h:0.5, fontSize:12, italic:true, color:C.textDark, valign:"middle"
});
addLabelBox(slide, 0.22, 1.62, 3.75, 2.65, "ETIOLOGY", C.dermAccent, [
"S. pyogenes (Group A β-haemolytic) – classic",
"Recent data: similar microbial profile to cellulitis",
"Groups B, C, G streptococci – less common",
"Portal of entry in 62% (toe web infections most common)",
"Risk: lymphedema, obesity, previous episodes, DM"
], 11.5);
addLabelBox(slide, 4.1, 1.62, 3.8, 2.65, "CLINICAL FEATURES", C.dermAccent, [
"Salmon-red warm painful edematous plaque",
"KEY: SHARP, RAISED, PALPABLE BORDER",
"Peau d'orange surface appearance",
"Lower leg 76-90%; face; upper extremity",
"Fever, chills, malaise more prominent than cellulitis",
"Facial: butterfly distribution across cheeks/nose"
], 11.5);
addLabelBox(slide, 0.22, 4.42, 3.75, 2.55, "DIFFERENTIAL DIAGNOSIS", C.dermAccent, [
"Cellulitis – ill-defined border (KEY difference)",
"Necrotizing fasciitis – crepitus; anesthesia – EMERGENCY",
"Contact dermatitis – scaling; pruritus; no fever",
"Angioedema – bilateral; no erythema; no fever",
"Herpes zoster pre-vesicular – dermatomal"
], 11.5);
addLabelBox(slide, 4.1, 4.42, 3.8, 2.55, "MANAGEMENT & PREVENTION", C.dermAccent, [
"Mild/outpatient: Penicillin V or amoxicillin oral",
"Moderate/severe: Benzylpenicillin IV",
"Penicillin allergy: clindamycin or macrolides",
"Elevate affected limb; mark advancing border",
"Prophylaxis (recurrence): Penicillin V 250 mg BD",
"Treat predisposing factors (tinea pedis, lymphedema)"
], 11.5);
// Images
slide.addShape(pres.shapes.RECTANGLE, { x:8.05, y:1.02, w:5.05, h:6.0, fill:{color:C.darkBg}, line:{color:C.darkBg} });
slide.addText("CLINICAL IMAGES", { x:8.1, y:1.02, w:4.95, h:0.42, fontSize:12, bold:true, color:"CC88EE", align:"center", valign:"middle" });
addImageToSlide(slide, "erysipelas_face", 8.1, 1.52, 4.95, 2.8);
addImageToSlide(slide, "erysipelas_ear", 8.1, 4.42, 4.95, 2.55);
slide.addText("Erysipelas – sharp demarcated border (Andrews' Atlas)", { x:8.1, y:4.33, w:4.95, h:0.18, fontSize:8, color:"AACCDD", align:"center" });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – CELLULITIS
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addDividerBar(slide, C.dermAccent);
addCategoryBadge(slide, "C - DERMAL & SUBCUTANEOUS", C.dermAccent);
addSlideTitle(slide, "CELLULITIS", C.dermAccent);
addBottomBar(slide, "Fitzpatrick's Dermatology 9e, Ch. 151, p. 2775-2783 | IDSA Guidelines 2014");
slide.addShape(pres.shapes.RECTANGLE, { x:0.22, y:1.02, w:7.7, h:0.5, fill:{color:C.dermAccent, transparency:88}, line:{color:C.dermAccent, transparency:50} });
slide.addText("Deep dermis + subcutaneous tissue; ILL-DEFINED erythema; almost always UNILATERAL; lower extremity most common", {
x:0.32, y:1.02, w:7.5, h:0.5, fontSize:12, italic:true, color:C.textDark, valign:"middle"
});
addLabelBox(slide, 0.22, 1.62, 3.75, 2.65, "ETIOLOGY", C.dermAccent, [
"S. pyogenes + S. aureus (MRSA) – most common",
"Organism found in <1/3 of cases",
"Bite wounds: Pasteurella, Eikenella, Capnocytophaga",
"Aquatic: Aeromonas, Vibrio vulnificus, M. marinum",
"Immunocompromised: gram-negatives, Pseudomonas, fungi"
], 11.5);
addLabelBox(slide, 4.1, 1.62, 3.8, 2.65, "CLINICAL FEATURES", C.dermAccent, [
"Spreading ILL-DEFINED erythema, oedema, warmth, pain",
"ALMOST ALWAYS UNILATERAL (bilateral → seek other dx)",
"Lower extremity in adults; face in children",
"Lymphangitis; skip areas; peau d'orange",
"⚠ Crepitus/anesthesia → NECROTISING FASCIITIS",
"ALT-70 score helps diagnose (see separate slide)"
], 11.5);
addLabelBox(slide, 0.22, 4.42, 3.75, 2.55, "DIFFERENTIAL DIAGNOSIS", C.dermAccent, [
"DVT / stasis dermatitis – bilateral; chronic; scaling",
"Lipodermatosclerosis – inverted champagne bottle leg",
"Gout/pseudogout – overlies joint; crystals",
"Erythema migrans – annular; tick exposure",
"Necrotizing fasciitis – EXCLUDE URGENTLY"
], 11.5);
addLabelBox(slide, 4.1, 4.42, 3.8, 2.55, "MANAGEMENT", C.dermAccent, [
"Outpatient non-purulent: cefalexin, dicloxacillin",
"Outpatient purulent/MRSA: TMP-SMX, clindamycin",
"Inpatient IV: cefazolin; vancomycin (MRSA)",
"Severe/polymicrobial: pip-tazo or imipenem",
"Elevate limb; mark border; serial photography",
"Prophylaxis ≥3 episodes/year: Penicillin V 250 mg BD"
], 11.5);
// Images
slide.addShape(pres.shapes.RECTANGLE, { x:8.05, y:1.02, w:5.05, h:6.0, fill:{color:C.darkBg}, line:{color:C.darkBg} });
slide.addText("CLINICAL IMAGES", { x:8.1, y:1.02, w:4.95, h:0.42, fontSize:12, bold:true, color:"CC88EE", align:"center", valign:"middle" });
addImageToSlide(slide, "cellulitis1", 8.1, 1.52, 4.95, 2.8);
addImageToSlide(slide, "cellulitis2", 8.1, 4.42, 4.95, 2.55);
slide.addText("Cellulitis – lower limb + lymphangitis (Andrews' Atlas)", { x:8.1, y:4.33, w:4.95, h:0.18, fontSize:8, color:"AACCDD", align:"center" });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – CELLULITIS DIAGNOSIS / ALT-70
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addDividerBar(slide, C.dermAccent);
addCategoryBadge(slide, "C - DERMAL & SUBCUTANEOUS", C.dermAccent);
addSlideTitle(slide, "CELLULITIS — DIAGNOSIS & ALT-70 PREDICTION SCORE", C.dermAccent);
addBottomBar(slide, "Fitzpatrick's Dermatology 9e, p. 2780-2781 | IDSA 2014 | Misdiagnosis rate >30%");
// ALT-70 box
slide.addShape(pres.shapes.RECTANGLE, { x:0.22, y:1.0, w:6.1, h:6.0, fill:{color:C.white}, line:{color:C.dermAccent, transparency:30},
shadow:{type:"outer",color:"000000",blur:4,offset:1,angle:135,opacity:0.1} });
slide.addShape(pres.shapes.RECTANGLE, { x:0.22, y:1.0, w:6.1, h:0.5, fill:{color:C.dermAccent}, line:{color:C.dermAccent} });
slide.addText("ALT-70 RISK PREDICTION SCORE", { x:0.3, y:1.0, w:5.9, h:0.5, fontSize:13, bold:true, color:C.white, valign:"middle", margin:0 });
const altRows = [
[{text:"PARAMETER",options:{bold:true,color:C.white,fill:{color:C.textMid}}}, {text:"POINTS",options:{bold:true,color:C.white,fill:{color:C.textMid}}}],
["Asymmetry (unilateral involvement)", {text:"3 pts",options:{bold:true,color:C.dermAccent}}],
["Leukocytosis ≥ 10,000 cells/μL", {text:"1 pt", options:{bold:true,color:C.dermAccent}}],
["Tachycardia ≥ 90 beats/min", {text:"1 pt", options:{bold:true,color:C.dermAccent}}],
["Age ≥ 70 years", {text:"2 pts",options:{bold:true,color:C.dermAccent}}],
];
slide.addTable(altRows, { x:0.35, y:1.6, w:5.85, h:2.0, border:{pt:0.5,color:"CCDDEE"}, fill:{color:"F5FAFF"}, colW:[4.1,1.75], fontSize:11.5 });
slide.addShape(pres.shapes.RECTANGLE, { x:0.35, y:3.72, w:5.85, h:0.52, fill:{color:"E8F5F6"}, line:{color:C.dermAccent, transparency:50} });
slide.addText("Score 0-2 → NPV > 83% (likely NOT cellulitis)", { x:0.45, y:3.74, w:5.65, h:0.25, fontSize:11, color:C.textDark });
slide.addText("Score ≥ 5 → PPV > 82% (likely IS cellulitis)", { x:0.45, y:3.98, w:5.65, h:0.25, fontSize:11, color:C.textDark });
slide.addShape(pres.shapes.RECTANGLE, { x:0.35, y:4.32, w:5.85, h:0.4, fill:{color:C.dermAccent, transparency:85}, line:{color:C.dermAccent, transparency:60} });
slide.addText("SUPPORTIVE INVESTIGATIONS (IDSA 2014)", { x:0.45, y:4.32, w:5.65, h:0.4, fontSize:11, bold:true, color:C.dermAccent, valign:"middle", margin:0 });
const diagLines = [
"CBC: leukocytosis in 34-50% (non-specific)",
"ESR/CRP elevated in >75% (non-specific)",
"Blood cultures: positive in only ~5% — reserve for high-risk",
"Skin aspirate: low yield (5-40%); not routinely recommended",
"IDSA 2014: do NOT routinely culture blood or swabs",
"Abscess/pustule: culture recommended",
"Ultrasound: identifies fluid collections for I&D guidance",
"MRI: differentiates from necrotising fasciitis"
];
slide.addText(diagLines.map((t,i)=>({text:t,options:{bullet:{type:"bullet"},breakLine:i<diagLines.length-1,fontSize:11,color:C.textDark}})),
{ x:0.38, y:4.78, w:5.95, h:2.1, valign:"top", margin:0 });
// DDx table right
slide.addShape(pres.shapes.RECTANGLE, { x:6.8, y:1.0, w:6.28, h:6.0, fill:{color:C.white}, line:{color:C.dermAccent, transparency:30},
shadow:{type:"outer",color:"000000",blur:4,offset:1,angle:135,opacity:0.1} });
slide.addShape(pres.shapes.RECTANGLE, { x:6.8, y:1.0, w:6.28, h:0.5, fill:{color:C.dermAccent}, line:{color:C.dermAccent} });
slide.addText("PSEUDOCELLULITIS — COMMON MIMICS", { x:6.88, y:1.0, w:6.1, h:0.5, fontSize:13, bold:true, color:C.white, valign:"middle", margin:0 });
const ddxRows = [
[{text:"CONDITION",options:{bold:true,color:C.white,fill:{color:C.textMid}}}, {text:"KEY DISTINGUISHING FEATURE",options:{bold:true,color:C.white,fill:{color:C.textMid}}}],
["DVT / post-thrombotic","Duplex USS; bilateral possible; no surface erythema"],
["Stasis dermatitis","Bilateral; scaling; pruritus; chronic course"],
["Lipodermatosclerosis","Inverted champagne bottle; fibrous; no fever"],
["Contact dermatitis","Geometric borders; pruritus; no fever"],
["Gout / pseudogout","Overlies joint; crystal aspiration positive"],
["Erythema migrans","Annular; tick exposure; endemic area"],
["Erythema nodosum","Tender nodules; bilateral shins; no purulence"],
["Necrotizing fasciitis ⚠","Crepitus; anesthesia; RAPID spread → EMERGENCY"],
];
slide.addTable(ddxRows, { x:6.9, y:1.6, w:6.05, h:5.3, border:{pt:0.5,color:"CCDDEE"}, fill:{color:"F8F2FF"}, colW:[2.5,3.55], fontSize:10.5 });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – COMPARATIVE SUMMARY TABLE
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:0.18, fill:{color:C.accent}, line:{color:C.accent} });
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0.18, w:13.3, h:0.75, fill:{color:C.darkBg}, line:{color:C.darkBg} });
slide.addText("COMPARATIVE SUMMARY — ALL DISEASES BY DEPTH", { x:0.3, y:0.18, w:12.8, h:0.75, fontSize:21, bold:true, color:C.white, valign:"middle", margin:0 });
const rows = [
[{text:"DISEASE",options:{bold:true,color:C.white,fill:{color:C.darkBg}}},
{text:"CATEGORY",options:{bold:true,color:C.white,fill:{color:C.darkBg}}},
{text:"DEPTH",options:{bold:true,color:C.white,fill:{color:C.darkBg}}},
{text:"ORGANISM",options:{bold:true,color:C.white,fill:{color:C.darkBg}}},
{text:"KEY LESION",options:{bold:true,color:C.white,fill:{color:C.darkBg}}},
{text:"DX PEARL",options:{bold:true,color:C.white,fill:{color:C.darkBg}}},
{text:"1st LINE Rx",options:{bold:true,color:C.white,fill:{color:C.darkBg}}}],
[{text:"Impetigo",options:{fill:{color:"E0F7F8"}}},{text:"Superficial",options:{fill:{color:"E0F7F8"},color:"007A80",bold:true}},"Sub-corneal / intra-epidermal","S. aureus / S. pyogenes","Honey-golden crust","Culture; Tzanck","Mupirocin / Cefalexin"],
[{text:"Ecthyma",options:{fill:{color:"E0F7F8"}}},{text:"Superficial",options:{fill:{color:"E0F7F8"},color:"007A80",bold:true}},"Full epidermis → upper dermis","S. pyogenes / S. aureus","Punched-out ulcer + thick crust","Clinical; culture","Dicloxacillin / Cefalexin"],
[{text:"Erythrasma",options:{fill:{color:"E0F7F8"}}},{text:"Superficial",options:{fill:{color:"E0F7F8"},color:"007A80",bold:true}},"Stratum corneum (intertriginous)","C. minutissimum","Brown intertriginous patch","Wood's lamp: coral-red","Erythromycin topical / Clarithromycin 1g"],
[{text:"Pitted Keratolysis",options:{fill:{color:"E0F7F8"}}},{text:"Superficial",options:{fill:{color:"E0F7F8"},color:"007A80",bold:true}},"Stratum corneum (plantar)","K. sedentarius","Plantar pits + malodour","Clinical","Topical erythromycin"],
[{text:"Folliculitis",options:{fill:{color:"FFF3E0"}}},{text:"Follicular",options:{fill:{color:"FFF3E0"},color:"B35A00",bold:true}},"Follicular ostium / deep","S. aureus (MRSA)","Perifollicular pustule","Culture","Mupirocin topical / Cefalexin"],
[{text:"Furunculosis",options:{fill:{color:"FFF3E0"}}},{text:"Follicular",options:{fill:{color:"FFF3E0"},color:"B35A00",bold:true}},"Perifollicular dermis","S. aureus / MRSA","Fluctuant abscess","Culture; I&D","I&D + TMP-SMX / Clindamycin"],
[{text:"Carbuncle",options:{fill:{color:"FFF3E0"}}},{text:"Follicular",options:{fill:{color:"FFF3E0"},color:"B35A00",bold:true}},"Confluent follicular → deep dermis","S. aureus / MRSA","Multi-headed abscess","Culture; systemic signs","I&D + IV antibiotics if severe"],
[{text:"Erysipelas",options:{fill:{color:"F3E5F5"}}},{text:"Dermal/Subcut.",options:{fill:{color:"F3E5F5"},color:"6A0080",bold:true}},"Superficial dermis + lymphatics","S. pyogenes","SHARP-BORDERED red plaque","Sharp raised palpable edge","Penicillin V / Benzylpenicillin IV"],
[{text:"Cellulitis",options:{fill:{color:"F3E5F5"}}},{text:"Dermal/Subcut.",options:{fill:{color:"F3E5F5"},color:"6A0080",bold:true}},"Deep dermis + subcutaneous","S. pyogenes / S. aureus / MRSA","ILL-DEFINED erythema","ALT-70 score; clinical","Cefalexin / Vancomycin (MRSA)"],
];
slide.addTable(rows, { x:0.15, y:1.02, w:13.0, h:6.3, border:{pt:0.5,color:"CCDDEE"}, colW:[1.5,1.35,1.85,2.0,1.8,1.9,2.6], fontSize:9.5, autoPage:false });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – ANATOMICAL DEPTH DIAGRAM
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.darkBg };
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:0.18, fill:{color:C.accent}, line:{color:C.accent} });
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0.18, w:13.3, h:0.7, fill:{color:C.midBg}, line:{color:C.midBg} });
slide.addText("ANATOMICAL DEPTH — DISEASE MAPPING", { x:0.3, y:0.18, w:12.8, h:0.7, fontSize:22, bold:true, color:C.white, valign:"middle", margin:0 });
const layers = [
{ label:"Stratum Corneum", y:1.0, h:0.8, color:"F5C842", textColor:C.darkBg },
{ label:"Epidermis", y:1.8, h:0.9, color:"F5A623", textColor:C.white },
{ label:"Dermis (Superficial)", y:2.7, h:1.0, color:"E87040", textColor:C.white },
{ label:"Dermis (Deep)", y:3.7, h:1.0, color:"CC4A20", textColor:C.white },
{ label:"Subcutaneous Tissue", y:4.7, h:1.0, color:"9B3010", textColor:C.white },
{ label:"Fascia / Muscle", y:5.7, h:0.75, color:"6B1B08", textColor:"FF9999" },
];
layers.forEach(l => {
slide.addShape(pres.shapes.RECTANGLE, { x:0.2, y:l.y, w:3.0, h:l.h, fill:{color:l.color}, line:{color:l.color} });
slide.addText(l.label, { x:0.25, y:l.y, w:2.9, h:l.h, fontSize:11, bold:true, color:l.textColor, valign:"middle", align:"center", margin:0 });
});
const dls = [
{ text:"Pitted Keratolysis · Erythrasma", y:1.05, color:C.superAccent },
{ text:"Impetigo (non-bullous + bullous) · Ecthyma (begins here)", y:1.88, color:C.superAccent },
{ text:"Folliculitis (superficial) · Sycosis Barbae · Ecthyma (extends) · Erysipelas", y:2.75, color:C.follAccent },
{ text:"Furunculosis · Carbuncle · Cellulitis (involves this layer)", y:3.75, color:C.dermAccent },
{ text:"Cellulitis (extends here) · Severe carbuncle", y:4.78, color:C.dermAccent },
{ text:"Necrotising Fasciitis (NOT covered — surgical emergency)", y:5.78, color:"FF6B6B" },
];
dls.forEach(d => {
slide.addShape(pres.shapes.RECTANGLE, { x:3.4, y:d.y, w:0.05, h:0.62, fill:{color:d.color}, line:{color:d.color} });
slide.addText(d.text, { x:3.55, y:d.y, w:9.5, h:0.62, fontSize:11.5, color:d.color, valign:"middle", margin:0 });
});
const legends = [
{label:"SUPERFICIAL",color:C.superAccent,x:0.3},
{label:"FOLLICULAR",color:C.follAccent,x:4.2},
{label:"DERMAL / SUBCUTANEOUS",color:C.dermAccent,x:7.8},
];
legends.forEach(l => {
slide.addShape(pres.shapes.RECTANGLE, { x:l.x, y:6.92, w:0.32, h:0.32, fill:{color:l.color}, line:{color:l.color} });
slide.addText(l.label, { x:l.x+0.38, y:6.92, w:3.2, h:0.32, fontSize:10.5, color:l.color, valign:"middle", margin:0 });
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE – REFERENCES
// ═══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.darkBg };
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:0.18, fill:{color:C.gold}, line:{color:C.gold} });
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0.18, w:13.3, h:0.75, fill:{color:C.midBg}, line:{color:C.midBg} });
slide.addText("REFERENCES", { x:0.4, y:0.18, w:12.5, h:0.75, fontSize:26, bold:true, color:C.white, charSpacing:4, valign:"middle" });
const refs = [
"1. James WD, Elston DM, Treat JR, Rosenbach MA, Neuhaus IM. Andrews' Diseases of the Skin: Clinical Dermatology. 13th ed. Elsevier; 2020. ISBN 9780323547536. Chapters 14, pp. 297–310.",
"2. Andrews' Diseases of the Skin Clinical Atlas. 2nd ed. Elsevier; 2018. ISBN 9780323790130. Chapter 14.",
"3. Kang S, Amagai M, Bruckner AL, et al. Fitzpatrick's Dermatology. 9th ed. McGraw-Hill; 2019. ISBN 9780071837781. Ch.150 (pp.2768–2774) & Ch.151 (pp.2775–2786).",
"4. Stevens DL, Bisno AL, Chambers HF, et al. Practice guidelines for the diagnosis and management of skin and soft tissue infections: 2014 update by the IDSA. Clin Infect Dis. 2014;59(2):e10–e52.",
"5. Jacka J, Sierla R, Kilbreath SL. Systematic Review of Cellulitis Guidelines: Non-Pharmacological Management in Preventing Recurrence. Australas J Dermatol. 2025. PMID 40530782.",
"6. Rho NK, Kim BJ. A corynebacterial triad: pitted keratolysis, trichomycosis axillaris, and erythrasma. J Am Acad Dermatol. 2008;58(5 Suppl 1):S57–S58.",
];
refs.forEach((r,i) => {
slide.addText(r, { x:0.4, y:1.1+i*0.9, w:12.5, h:0.8, fontSize:11.5, color:"AACCDD", valign:"top" });
});
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:7.1, w:13.3, h:0.4, fill:{color:C.accent}, line:{color:C.accent} });
slide.addText("Common Cutaneous Bacterial Infections | Evidence-Based Review | " + new Date().getFullYear(), {
x:0.3, y:7.1, w:12.7, h:0.4, fontSize:10, color:C.white, align:"center", valign:"middle"
});
}
// ─── WRITE ────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/cutaneous-infections-ppt/Cutaneous_Bacterial_Infections_v2.pptx" })
.then(() => console.log("✅ PPT v2 created successfully"))
.catch(e => { console.error("❌ Error:", e); process.exit(1); });
cd /home/daytona/workspace/cutaneous-infections-ppt && node build_v2.js 2>&1
ls -lh /home/daytona/workspace/cutaneous-infections-ppt/Cutaneous_Bacterial_Infections_v2.pptx
Cutaneous Bacterial Infections v2
Presentation · PPTX
Give Furuncle and Carbuncle Separately
~/cutaneous-infections-ppt/build_furuncle_carbuncle.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// ─── IMAGE URLS ───────────────────────────────────────────────────────────────
const imageUrls = {
furuncle_abscess1: "https://cdn.orris.care/cdss_images/22025a8573ba0e5a6596f9ce843a97c9e56f6aaaeaaf374992daf796b4e22dcb.png", // hairy skin abscess
furuncle_abscess2: "https://cdn.orris.care/cdss_images/81eb40b7082d5c2d5ca38cc2e06797ed66b217c3f7d8aaae0db3d4aaa9039061.png", // chest abscess
furuncle_abscess3: "https://cdn.orris.care/cdss_images/272ec8c8d7508c7b992494c5a8314f60396b6d8f346210db436d6f951dd0f43c.png", // genital area abscess
folliculitis_deep: "https://cdn.orris.care/cdss_images/40388c8adeef18745048cab0a9be8afb2a191bbb871af16062706a09ae33db44.png", // deep folliculitis (for carbuncle section)
buttock_foll: "https://cdn.orris.care/cdss_images/75baef6779e4aef72312a7d067ba6c93d0faf0128577e7d96020d2ca99fc72b7.png", // buttock confluent lesions
};
console.log("Fetching images...");
const urlArgs = Object.values(imageUrls).map(u => `"${u}"`).join(" ");
let imgData = {};
try {
const raw = execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js ${urlArgs}`,
{ maxBuffer: 30 * 1024 * 1024, timeout: 60000 }
).toString();
const arr = JSON.parse(raw);
Object.keys(imageUrls).forEach((k, i) => {
imgData[k] = (arr[i] && !arr[i].error) ? arr[i].base64 : null;
});
} catch(e) {
console.error("Image fetch error:", e.message);
Object.keys(imageUrls).forEach(k => imgData[k] = null);
}
console.log("Images fetched:", Object.values(imgData).filter(Boolean).length, "/", Object.keys(imgData).length);
// ─── PPT SETUP ────────────────────────────────────────────────────────────────
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
pres.title = "Furuncle & Carbuncle";
const C = {
darkBg: "0D2B45",
midBg: "1A4A6E",
accent: "E8930A", // warm amber for follicular section
accentDark: "B36200",
accentPale: "FFF3E0",
gold: "E8B84B",
white: "FFFFFF",
offWhite: "FDF8F0",
textDark: "1A1A2E",
textMid: "3D2B00",
danger: "C0392B",
dangerPale: "FDECEA",
green: "1E8449",
greenPale: "E9F7EF",
};
function addImg(slide, key, x, y, w, h) {
if (imgData[key]) slide.addImage({ data: imgData[key], x, y, w, h });
}
function addBar(slide, x, y, w, h, color) {
slide.addShape(pres.shapes.RECTANGLE, { x, y, w, h, fill: { color }, line: { color } });
}
function labelBox(slide, x, y, w, h, title, titleColor, bgColor, lines, fs) {
const fontSize = fs || 12;
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w, h, fill: { color: bgColor || C.white },
line: { color: titleColor, transparency: 35 },
shadow: { type: "outer", color: "000000", blur: 5, offset: 2, angle: 135, opacity: 0.12 }
});
// title bar
addBar(slide, x, y, w, 0.46, titleColor);
slide.addText(title, {
x: x + 0.1, y, w: w - 0.15, h: 0.46,
fontSize: fontSize + 0.5, bold: true, color: C.white, valign: "middle", margin: 0
});
// left accent stripe
addBar(slide, x, y + 0.46, 0.08, h - 0.46, titleColor);
if (lines && lines.length) {
slide.addText(
lines.map((t, i) => ({
text: t,
options: {
bullet: { type: "bullet", indent: 12 },
breakLine: i < lines.length - 1,
fontSize,
color: C.textDark,
paraSpaceAfter: 2
}
})),
{ x: x + 0.2, y: y + 0.5, w: w - 0.28, h: h - 0.56, valign: "top", margin: 0 }
);
}
}
function warningBox(slide, x, y, w, h, lines, fs) {
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w, h, fill: { color: C.dangerPale },
line: { color: C.danger, transparency: 20 },
shadow: { type: "outer", color: "000000", blur: 4, offset: 1, angle: 135, opacity: 0.1 }
});
addBar(slide, x, y, 0.08, h, C.danger);
addBar(slide, x, y, w, 0.42, C.danger);
slide.addText("⚠ WARNING / DANGER ZONES", {
x: x + 0.12, y, w: w - 0.15, h: 0.42,
fontSize: (fs || 12) + 0.5, bold: true, color: C.white, valign: "middle", margin: 0
});
slide.addText(
lines.map((t, i) => ({
text: t,
options: { bullet: { type: "bullet", indent: 12 }, breakLine: i < lines.length - 1, fontSize: fs || 12, color: C.danger }
})),
{ x: x + 0.2, y: y + 0.48, w: w - 0.28, h: h - 0.54, valign: "top", margin: 0 }
);
}
function greenBox(slide, x, y, w, h, title, lines, fs) {
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w, h, fill: { color: C.greenPale },
line: { color: C.green, transparency: 30 },
shadow: { type: "outer", color: "000000", blur: 4, offset: 1, angle: 135, opacity: 0.1 }
});
addBar(slide, x, y, 0.08, h, C.green);
addBar(slide, x, y, w, 0.46, C.green);
slide.addText(title, {
x: x + 0.12, y, w: w - 0.15, h: 0.46,
fontSize: (fs || 12) + 0.5, bold: true, color: C.white, valign: "middle", margin: 0
});
slide.addText(
lines.map((t, i) => ({
text: t,
options: { bullet: { type: "bullet", indent: 12 }, breakLine: i < lines.length - 1, fontSize: fs || 12, color: C.green }
})),
{ x: x + 0.2, y: y + 0.5, w: w - 0.28, h: h - 0.56, valign: "top", margin: 0 }
);
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.darkBg };
addBar(slide, 0, 0, 13.3, 0.2, C.accent);
addBar(slide, 0, 0.2, 5.0, 7.3, C.midBg);
// decorative circles
slide.addShape(pres.shapes.OVAL, { x: 0.4, y: 0.9, w: 3.0, h: 3.0, fill: { color: C.accent, transparency: 82 }, line: { color: C.accent, transparency: 82 } });
slide.addShape(pres.shapes.OVAL, { x: 1.8, y: 4.2, w: 1.8, h: 1.8, fill: { color: C.gold, transparency: 84 }, line: { color: C.gold, transparency: 84 } });
// category badges
const badges = [
{ label: "FOLLICULAR INFECTION", color: C.accent, y: 2.3 },
{ label: "STAPHYLOCOCCAL ABSCESS", color: C.accentDark, y: 3.0 },
{ label: "B: DEEP FOLLICULAR CATEGORY", color: "5D4037", y: 3.7 },
];
badges.forEach(b => {
addBar(slide, 0.35, b.y, 4.1, 0.5, b.color);
slide.addText(b.label, { x: 0.35, y: b.y, w: 4.1, h: 0.5, fontSize: 12, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
});
slide.addText("FURUNCLE", {
x: 5.3, y: 1.1, w: 7.6, h: 1.1,
fontSize: 52, bold: true, color: C.accent, fontFace: "Calibri", charSpacing: 3
});
slide.addText("& CARBUNCLE", {
x: 5.3, y: 2.15, w: 7.6, h: 1.0,
fontSize: 46, bold: true, color: C.white, fontFace: "Calibri", charSpacing: 3
});
addBar(slide, 5.3, 3.25, 7.6, 0.06, C.gold);
slide.addText("Perifollicular Staphylococcal Abscess — Separately Described", {
x: 5.3, y: 3.38, w: 7.6, h: 0.58,
fontSize: 17, italic: true, color: "AACCDD"
});
slide.addText([
{ text: "References: ", options: { bold: true } },
{ text: "Andrews' Diseases of the Skin 12e | Fitzpatrick's Dermatology 9e | IDSA Guidelines 2014" }
], { x: 5.3, y: 4.15, w: 7.6, h: 0.45, fontSize: 11, color: "88AABB" });
addBar(slide, 0, 7.1, 13.3, 0.4, C.accent);
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 2 — FURUNCLE (Definition, Etiology, Pathogenesis)
// ══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addBar(slide, 0, 0, 0.14, 7.5, C.accent);
// Category badge
addBar(slide, 0.22, 0.1, 3.5, 0.48, C.accent);
slide.addText("B - FOLLICULAR INFECTIONS", { x: 0.22, y: 0.1, w: 3.5, h: 0.48, fontSize: 10, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
// Slide title
addBar(slide, 0.14, 0.08, 13.16, 0.82, C.darkBg);
slide.addText("FURUNCLE (BOIL) — DEFINITION, ETIOLOGY & PATHOGENESIS", {
x: 0.3, y: 0.08, w: 12.8, h: 0.82, fontSize: 22, bold: true, color: C.white, valign: "middle", margin: 0
});
addBar(slide, 0.14, 0.9, 13.16, 0.07, C.accent);
// Definition banner
slide.addShape(pres.shapes.RECTANGLE, { x: 0.22, y: 1.04, w: 12.86, h: 0.58, fill: { color: C.accent, transparency: 85 }, line: { color: C.accent, transparency: 50 } });
slide.addText([
{ text: "DEFINITION: ", options: { bold: true, color: C.accentDark } },
{ text: "An acute, round, tender, circumscribed, PERIFOLLICULAR staphylococcal abscess that generally ends in central suppuration. Involves the hair follicle AND the surrounding dermis.", options: { color: C.textDark } }
], { x: 0.32, y: 1.04, w: 12.6, h: 0.58, fontSize: 12.5, valign: "middle" });
// 4 boxes: 2 left, image right
labelBox(slide, 0.22, 1.72, 3.9, 2.55, "ETIOLOGY", C.accent, C.white, [
"Staphylococcus aureus – principal causative organism",
"Community-acquired MRSA increasingly common",
"Hospital-acquired MRSA – often multidrug-resistant",
"Nasal/perineal carriage = key endogenous reservoir",
"Contagion or autoinoculation from carrier sites"
], 12);
labelBox(slide, 4.25, 1.72, 3.9, 2.55, "PATHOGENESIS", C.accent, C.white, [
"Begins in hair follicle → extends into perifollicular tissue",
"Barrier compromise → portal of entry for S. aureus",
"Triggers: friction, pressure, shaving, hyperhidrosis",
"Dermatitis/dermatophytosis – predispose to follicular breach",
"Lesions: central necrosis → suppuration → rupture",
"Discharge of purulent/necrotic debris on rupture"
], 12);
labelBox(slide, 0.22, 4.35, 3.9, 2.55, "RISK FACTORS / PREDISPOSING CONDITIONS", C.accent, C.white, [
"Diabetes mellitus – most important systemic RF",
"Atopic dermatitis – promotes S. aureus nasal carriage",
"HIV/AIDS and iatrogenic immunosuppression",
"Alcoholism and malnutrition",
"Renal dialysis; isotretinoin/acitretin therapy",
"Blood dyscrasias; neutrophil dysfunction disorders"
], 12);
labelBox(slide, 4.25, 4.35, 3.9, 2.55, "SITES OF PREDILECTION", C.accent, C.white, [
"Nape of neck (most common)",
"Axillae and buttocks",
"Face – especially beard area",
"⚠ Upper lip and nose – DANGER AREA",
"⚠ External auditory canal – avoid blind I&D",
"Thighs, pubic region, perianal area"
], 12);
// Image panel right
addBar(slide, 8.3, 1.04, 4.88, 5.86, C.darkBg);
slide.addText("CLINICAL IMAGES — FURUNCLE", { x: 8.35, y: 1.04, w: 4.78, h: 0.45, fontSize: 12, bold: true, color: C.accent, align: "center", valign: "middle" });
addImg(slide, "furuncle_abscess1", 8.35, 1.56, 4.78, 2.65);
addImg(slide, "furuncle_abscess2", 8.35, 4.28, 4.78, 2.55);
slide.addText("Furuncle – perifollicular abscess (Andrews' Atlas, Fig. 14.9)", { x: 8.35, y: 4.19, w: 4.78, h: 0.18, fontSize: 8.5, color: "AACCDD", align: "center" });
// Bottom bar
addBar(slide, 0, 7.1, 13.3, 0.4, C.darkBg);
slide.addText("Andrews' Diseases of the Skin, p. 302-303 | Fitzpatrick's Dermatology 9e", { x: 0.2, y: 7.1, w: 12.8, h: 0.4, fontSize: 9.5, color: "99BBCC", italic: true, valign: "middle" });
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 3 — FURUNCLE (Clinical Features, DDx)
// ══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addBar(slide, 0, 0, 0.14, 7.5, C.accent);
addBar(slide, 0.22, 0.1, 3.5, 0.48, C.accent);
slide.addText("B - FOLLICULAR INFECTIONS", { x: 0.22, y: 0.1, w: 3.5, h: 0.48, fontSize: 10, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
addBar(slide, 0.14, 0.08, 13.16, 0.82, C.darkBg);
slide.addText("FURUNCLE — CLINICAL FEATURES & DIFFERENTIAL DIAGNOSIS", {
x: 0.3, y: 0.08, w: 12.8, h: 0.82, fontSize: 22, bold: true, color: C.white, valign: "middle", margin: 0
});
addBar(slide, 0.14, 0.9, 13.16, 0.07, C.accent);
labelBox(slide, 0.22, 1.04, 7.95, 3.1, "CLINICAL FEATURES", C.accent, C.white, [
"Acute, round, tender, warm, indurated nodule around a hair follicle",
"Begins as firm, painful erythematous nodule → becomes fluctuant",
"Central necrosis develops → 'pointing' of the abscess",
"Rupture with discharge of yellow-green pus and necrotic core",
"Surrounding erythema and oedema; satellite lesions may develop",
"Fever and lymphadenopathy – especially in carbuncle or facial furuncle",
"Recurrences common due to persistent nasal/perineal carriage",
"Facial furuncles: risk of cavernous sinus thrombosis via facial veins"
], 12.5);
// Stages box
slide.addShape(pres.shapes.RECTANGLE, { x: 0.22, y: 4.24, w: 7.95, h: 2.65, fill: { color: C.white }, line: { color: C.accent, transparency: 35 }, shadow: { type: "outer", color: "000000", blur: 5, offset: 2, angle: 135, opacity: 0.1 } });
addBar(slide, 0.22, 4.24, 7.95, 0.46, C.accentDark);
slide.addText("STAGES OF A FURUNCLE", { x: 0.32, y: 4.24, w: 7.75, h: 0.46, fontSize: 13, bold: true, color: C.white, valign: "middle", margin: 0 });
const stages = [
{ n: "1", label: "Early / Incipient", desc: "Firm erythematous nodule; no fluctuation; warm compresses + oral antibiotics", color: "E8930A" },
{ n: "2", label: "Suppurative", desc: "Softening; fluctuation develops; abscess localized; I&D now indicated", color: "CC6600" },
{ n: "3", label: "Pointing/Rupture", desc: "Spontaneous rupture; purulent + necrotic discharge; wound care + antibiotics", color: "AA4400" },
{ n: "4", label: "Resolving", desc: "Granulation tissue; scar formation; decolonisation to prevent recurrence", color: "882200" },
];
stages.forEach((s, i) => {
const sx = 0.35 + i * 1.97;
addBar(slide, sx, 4.78, 1.82, 0.38, s.color);
slide.addText(`STAGE ${s.n}: ${s.label}`, { x: sx, y: 4.78, w: 1.82, h: 0.38, fontSize: 9.5, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
slide.addText(s.desc, { x: sx + 0.04, y: 5.22, w: 1.74, h: 1.58, fontSize: 10, color: C.textDark, valign: "top", margin: 0 });
});
// DDx table right
slide.addShape(pres.shapes.RECTANGLE, { x: 8.3, y: 1.04, w: 4.88, h: 5.86, fill: { color: C.white }, line: { color: C.accent, transparency: 35 }, shadow: { type: "outer", color: "000000", blur: 5, offset: 2, angle: 135, opacity: 0.1 } });
addBar(slide, 8.3, 1.04, 4.88, 0.46, C.accentDark);
slide.addText("DIFFERENTIAL DIAGNOSIS", { x: 8.4, y: 1.04, w: 4.68, h: 0.46, fontSize: 13, bold: true, color: C.white, valign: "middle", margin: 0 });
const ddx = [
["Hidradenitis suppurativa", "Axillae/groins; tunnels; recurrent; comedones; scarring"],
["Infected sebaceous cyst", "Pre-existing cyst; cheesy caseous material; no follicular origin"],
["Cystic acne", "Face; comedones; chronic; multiple lesions; no nasal carriage"],
["Carbuncle", "Confluent furuncles with multiple heads; more systemic signs"],
["Cutaneous anthrax", "Eschar; painless; exposure history; oedema"],
["Inflamed EIC", "Prior cyst; rupture; no central necrotic core"],
["Lymphadenitis", "Deeper structure; no follicular origin; firm nodes"],
["Erysipelas/cellulitis", "No abscess; ill-defined erythema; no fluctuance"],
];
const ddxRows = [
[{ text: "CONDITION", options: { bold: true, color: C.white, fill: { color: C.textMid } } },
{ text: "DISTINGUISHING FEATURE", options: { bold: true, color: C.white, fill: { color: C.textMid } } }],
...ddx.map(r => r)
];
slide.addTable(ddxRows, { x: 8.35, y: 1.58, w: 4.78, h: 5.25, border: { pt: 0.5, color: "DDCCAA" }, fill: { color: "FFFBF5" }, colW: [1.8, 2.98], fontSize: 10.5 });
addBar(slide, 0, 7.1, 13.3, 0.4, C.darkBg);
slide.addText("Andrews' Diseases of the Skin, p. 302-303 | Fitzpatrick's Dermatology 9e", { x: 0.2, y: 7.1, w: 12.8, h: 0.4, fontSize: 9.5, color: "99BBCC", italic: true, valign: "middle" });
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 4 — FURUNCLE (Management & Prevention)
// ══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addBar(slide, 0, 0, 0.14, 7.5, C.accent);
addBar(slide, 0.22, 0.1, 3.5, 0.48, C.accent);
slide.addText("B - FOLLICULAR INFECTIONS", { x: 0.22, y: 0.1, w: 3.5, h: 0.48, fontSize: 10, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
addBar(slide, 0.14, 0.08, 13.16, 0.82, C.darkBg);
slide.addText("FURUNCLE — MANAGEMENT & PREVENTION", {
x: 0.3, y: 0.08, w: 12.8, h: 0.82, fontSize: 22, bold: true, color: C.white, valign: "middle", margin: 0
});
addBar(slide, 0.14, 0.9, 13.16, 0.07, C.accent);
// Surgical management
labelBox(slide, 0.22, 1.04, 4.0, 2.8, "SURGICAL MANAGEMENT", C.accent, C.white, [
"Pre-fluctuant: warm compresses + oral antibiotics (no I&D yet)",
"Hot wet soaks: aluminium acetate 1:20 dilution",
"Fluctuant furuncle: INCISION & DRAINAGE (I&D) – definitive",
"RCT evidence: I&D + antibiotics > I&D alone (even for <5 cm)",
"Facial/nasal/ear canal furuncles: avoid I&D; treat medically",
"Anhydrous aluminium chloride (Drysol) – chronic buttock disease"
], 12);
// Antibiotic management
labelBox(slide, 4.35, 1.04, 4.05, 2.8, "ANTIBIOTIC THERAPY", C.accent, C.white, [
"MSSA: Dicloxacillin or Cefalexin (first-gen cephalosporin)",
"MRSA (community): TMP-SMX or Clindamycin – first-line",
"MRSA alternatives: Doxycycline, Minocycline, Linezolid",
"Rifampin: NOT used alone; combine for carriage eradication",
"Adjust all therapy based on culture & sensitivity results",
"IV antibiotics: facial furuncles; systemic sepsis; immunocompromised"
], 12);
// Danger zone
warningBox(slide, 0.22, 3.95, 8.18, 2.95, [
"Upper lip & nose furuncles: drain via facial veins → cavernous sinus → CAVERNOUS SINUS THROMBOSIS",
"External auditory canal: spontaneous drainage common; antibiotic ointment first; systemic antibiotics; avoid forceful I&D",
"NEVER squeeze facial furuncles – squeezing propels infected emboli into intracranial venous sinuses",
"Fever + facial furuncle + altered sensorium → emergency – IV antibiotics + CT head immediately"
], 12);
// Prevention
greenBox(slide, 8.52, 1.04, 4.58, 5.86, "PREVENTION & DECOLONISATION", [
"Daily 4% chlorhexidine wash – axillae, groin, perianal",
"Bleach baths 3×/week: ½ cup/40-gallon tub (0.005% NaOCl)",
"Mupirocin to anterior nares BD × 5 days; repeat monthly",
"Launder bedding and clothing daily (initially)",
"No sharing of towels, razors, clothing",
"Do NOT share moisturiser containers (AD re-inoculation)",
"MSSA carriage: Rifampin 10d + Dicloxacillin",
"MRSA carriage: Rifampin 10d + TMP-SMX",
"Long-term: low-dose Clindamycin × 3 months",
"Treat atopic dermatitis aggressively",
"Treat all household contacts/members",
"Repeat cultures after decolonisation to confirm eradication"
], 12);
addBar(slide, 0, 7.1, 13.3, 0.4, C.darkBg);
slide.addText("Andrews' Diseases of the Skin, p. 302-303 | IDSA Guidelines 2014", { x: 0.2, y: 7.1, w: 12.8, h: 0.4, fontSize: 9.5, color: "99BBCC", italic: true, valign: "middle" });
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 5 — CARBUNCLE SECTION DIVIDER
// ══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: "1C0A00" };
addBar(slide, 0, 0, 0.6, 7.5, C.accentDark);
slide.addShape(pres.shapes.RECTANGLE, { x: 0.6, y: 0, w: 5.2, h: 7.5, fill: { color: C.accentDark, transparency: 88 }, line: { color: C.accentDark, transparency: 88 } });
slide.addText("CARBUNCLE", { x: 1.4, y: 2.0, w: 11.5, h: 1.5, fontSize: 58, bold: true, color: C.white, fontFace: "Calibri" });
slide.addText("Confluent furuncles with multiple heads — deeper, more severe, systemic involvement common", {
x: 1.4, y: 3.65, w: 11.2, h: 0.75, fontSize: 17, italic: true, color: "FFDDAA"
});
slide.addShape(pres.shapes.RECTANGLE, { x: 1.4, y: 3.55, w: 11.2, h: 0.05, fill: { color: C.gold }, line: { color: C.gold } });
slide.addText("B: FOLLICULAR INFECTIONS | Andrews' Diseases of the Skin | Fitzpatrick's Dermatology 9e", {
x: 1.4, y: 4.55, w: 11.2, h: 0.45, fontSize: 12, color: "AACCDD", italic: true
});
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 6 — CARBUNCLE (Definition, Etiology, Clinical)
// ══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addBar(slide, 0, 0, 0.14, 7.5, C.accentDark);
addBar(slide, 0.22, 0.1, 3.5, 0.48, C.accentDark);
slide.addText("B - FOLLICULAR INFECTIONS", { x: 0.22, y: 0.1, w: 3.5, h: 0.48, fontSize: 10, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
addBar(slide, 0.14, 0.08, 13.16, 0.82, C.darkBg);
slide.addText("CARBUNCLE — DEFINITION, ETIOLOGY & CLINICAL FEATURES", {
x: 0.3, y: 0.08, w: 12.8, h: 0.82, fontSize: 22, bold: true, color: C.white, valign: "middle", margin: 0
});
addBar(slide, 0.14, 0.9, 13.16, 0.07, C.accentDark);
// Definition + vs furuncle comparison
slide.addShape(pres.shapes.RECTANGLE, { x: 0.22, y: 1.04, w: 12.86, h: 0.64, fill: { color: C.accentDark, transparency: 85 }, line: { color: C.accentDark, transparency: 50 } });
slide.addText([
{ text: "DEFINITION: ", options: { bold: true, color: C.accentDark } },
{ text: "A carbuncle is two or more confluent furuncles, each with a SEPARATE head, forming a large deep painful abscess with multiple draining sinuses. More severe than a single furuncle with prominent systemic features.", options: { color: C.textDark } }
], { x: 0.32, y: 1.04, w: 12.6, h: 0.64, fontSize: 12.5, valign: "middle" });
// Furuncle vs carbuncle comparison table
slide.addShape(pres.shapes.RECTANGLE, { x: 0.22, y: 1.76, w: 7.95, h: 3.5, fill: { color: C.white }, line: { color: C.accentDark, transparency: 35 }, shadow: { type: "outer", color: "000000", blur: 5, offset: 2, angle: 135, opacity: 0.1 } });
addBar(slide, 0.22, 1.76, 7.95, 0.46, C.accentDark);
slide.addText("FURUNCLE vs CARBUNCLE — KEY DIFFERENCES", { x: 0.32, y: 1.76, w: 7.75, h: 0.46, fontSize: 13, bold: true, color: C.white, valign: "middle", margin: 0 });
const compareRows = [
[{ text: "FEATURE", options: { bold: true, color: C.white, fill: { color: "4A2000" } } },
{ text: "FURUNCLE", options: { bold: true, color: C.white, fill: { color: C.accent } } },
{ text: "CARBUNCLE", options: { bold: true, color: C.white, fill: { color: C.accentDark } } }],
["Definition", "Single perifollicular abscess", "≥2 confluent furuncles; multiple heads"],
["Depth", "Deep dermis + perifollicular", "Extends into subcutaneous fat"],
["Discharge", "Single draining point", "Multiple draining sinuses"],
["Systemic signs", "Usually absent", "Fever, malaise, chills common"],
["Scarring", "Small scar on healing", "Significant scarring"],
["Common site", "Nape, axillae, buttocks", "Nape of neck most common"],
["Management", "I&D ± antibiotics", "I&D + systemic antibiotics; may need IV"],
];
slide.addTable(compareRows, { x: 0.3, y: 2.3, w: 7.8, h: 2.88, border: { pt: 0.5, color: "DDCCAA" }, fill: { color: "FFFBF5" }, colW: [2.0, 2.85, 2.95], fontSize: 11 });
labelBox(slide, 0.22, 5.35, 7.95, 1.65, "ETIOLOGY & PATHOGENESIS", C.accentDark, C.white, [
"S. aureus (MRSA increasingly common) – as per furuncle",
"Develops from multiple adjacent follicular infections coalescing",
"Extends deeply through dermis into subcutaneous fat",
"Multiple loculi formed → multiple drainage points on surface"
], 12);
// Image panel
addBar(slide, 8.3, 1.04, 4.88, 5.96, C.darkBg);
slide.addText("CLINICAL IMAGES", { x: 8.35, y: 1.04, w: 4.78, h: 0.45, fontSize: 12, bold: true, color: C.gold, align: "center", valign: "middle" });
addImg(slide, "furuncle_abscess1", 8.35, 1.56, 4.78, 2.55);
addImg(slide, "buttock_foll", 8.35, 4.2, 4.78, 2.73);
slide.addText("Confluent furuncular lesions – multiple heads (Andrews' Atlas)", { x: 8.35, y: 4.12, w: 4.78, h: 0.18, fontSize: 8.5, color: "AACCDD", align: "center" });
addBar(slide, 0, 7.1, 13.3, 0.4, C.darkBg);
slide.addText("Andrews' Diseases of the Skin, p. 302-303 | Fitzpatrick's Dermatology 9e", { x: 0.2, y: 7.1, w: 12.8, h: 0.4, fontSize: 9.5, color: "99BBCC", italic: true, valign: "middle" });
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 7 — CARBUNCLE (DDx, Management, Prevention)
// ══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.offWhite };
addBar(slide, 0, 0, 0.14, 7.5, C.accentDark);
addBar(slide, 0.22, 0.1, 3.5, 0.48, C.accentDark);
slide.addText("B - FOLLICULAR INFECTIONS", { x: 0.22, y: 0.1, w: 3.5, h: 0.48, fontSize: 10, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
addBar(slide, 0.14, 0.08, 13.16, 0.82, C.darkBg);
slide.addText("CARBUNCLE — DIFFERENTIAL DIAGNOSIS, MANAGEMENT & PREVENTION", {
x: 0.3, y: 0.08, w: 12.8, h: 0.82, fontSize: 21, bold: true, color: C.white, valign: "middle", margin: 0
});
addBar(slide, 0.14, 0.9, 13.16, 0.07, C.accentDark);
labelBox(slide, 0.22, 1.04, 4.0, 3.1, "DIFFERENTIAL DIAGNOSIS", C.accentDark, C.white, [
"Single large furuncle – no multiple heads",
"Hidradenitis suppurativa – tunnels; axillae/groins; chronic",
"Infected sebaceous cyst – cheesy material; no follicular",
"Cutaneous anthrax – eschar; painless; oedema; exposure Hx",
"Cellulitis – no abscess; ill-defined erythema; no fluctuance",
"Pilonidal abscess – natal cleft; midline pits; hair tuft",
"Actinomycosis – jaw/neck; sulfur granules; indolent"
], 12);
labelBox(slide, 4.35, 1.04, 4.05, 3.1, "SURGICAL MANAGEMENT", C.accentDark, C.white, [
"I&D is mandatory – multiple loculi must be broken down",
"Wide incision; break all loculations; thorough drainage",
"Wound packing may be required after drainage",
"Wound irrigation with normal saline",
"Mark surrounding erythema to monitor response",
"Refer large/complicated carbuncles to surgeon",
"CT/MRI if deep extension suspected"
], 12);
labelBox(slide, 0.22, 4.24, 4.0, 2.75, "ANTIBIOTIC THERAPY", C.accentDark, C.white, [
"Systemic antibiotics always required (unlike simple furuncle)",
"MSSA: Dicloxacillin or Cefalexin oral",
"MRSA: TMP-SMX or Clindamycin oral",
"Severe/septic: IV Vancomycin (MRSA) or Nafcillin (MSSA)",
"Adjust per culture & sensitivity results",
"Duration: typically 5-7 days after adequate drainage"
], 12);
labelBox(slide, 4.35, 4.24, 4.05, 2.75, "SUPPORTIVE MEASURES", C.accentDark, C.white, [
"Bed rest; adequate hydration; analgesia",
"Warm moist compresses to aid pointing pre-I&D",
"Wound care post-I&D: daily dressing changes",
"Monitor for systemic sepsis – blood cultures if febrile",
"Echocardiogram if bacteraemia suspected",
"Screen for diabetes mellitus if recurrent"
], 12);
greenBox(slide, 8.52, 1.04, 4.58, 5.96, "PREVENTION (same as Furuncle)", [
"Daily 4% chlorhexidine wash (axillae, groin, perianal)",
"Bleach baths 3×/week: ½ cup/40-gallon tub",
"Mupirocin nares BD × 5 days; repeat monthly",
"Daily laundering of bedding and clothing",
"No sharing personal items (towels, razors)",
"Treat all household contacts",
"MSSA carriage: Rifampin + Dicloxacillin × 10 days",
"MRSA carriage: Rifampin + TMP-SMX × 10 days",
"Low-dose Clindamycin × 3 months (recurrent disease)",
"Screen for and control DM",
"Treat atopic dermatitis aggressively",
"Isotretinoin patients: bacitracin nares BD throughout therapy"
], 12);
addBar(slide, 0, 7.1, 13.3, 0.4, C.darkBg);
slide.addText("Andrews' Diseases of the Skin, p. 302-303 | IDSA Guidelines 2014", { x: 0.2, y: 7.1, w: 12.8, h: 0.4, fontSize: 9.5, color: "99BBCC", italic: true, valign: "middle" });
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 8 — SUMMARY COMPARISON
// ══════════════════════════════════════════════════════════════════════════════
{
const slide = pres.addSlide();
slide.background = { color: C.darkBg };
addBar(slide, 0, 0, 13.3, 0.2, C.accent);
addBar(slide, 0, 0.2, 13.3, 0.72, C.midBg);
slide.addText("FURUNCLE vs CARBUNCLE — COMPREHENSIVE SUMMARY", {
x: 0.4, y: 0.2, w: 12.5, h: 0.72, fontSize: 23, bold: true, color: C.white, valign: "middle"
});
// Two large panels side by side
// FURUNCLE panel
addBar(slide, 0.2, 1.02, 6.3, 0.5, C.accent);
slide.addText("FURUNCLE (Boil)", { x: 0.3, y: 1.02, w: 6.1, h: 0.5, fontSize: 16, bold: true, color: C.white, valign: "middle", margin: 0 });
slide.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 1.52, w: 6.3, h: 5.48, fill: { color: "FFF8F0" }, line: { color: C.accent, transparency: 30 } });
const furRows = [
[{ text: "ASPECT", options: { bold: true, fill: { color: "4A2800" }, color: C.white } }, { text: "DETAIL", options: { bold: true, fill: { color: "4A2800" }, color: C.white } }],
["Definition", "Single perifollicular abscess; central suppuration"],
["Organism", "S. aureus (MRSA increasingly common)"],
["Depth", "Perifollicular dermis"],
["Discharge", "Single draining point"],
["Sites", "Nape, axillae, buttocks, face"],
["DANGER ZONE", "Upper lip & nose → cavernous sinus thrombosis"],
["Systemic signs", "Usually absent unless facial/severe"],
["I&D", "When fluctuant (even <5 cm)"],
["Antibiotics", "MSSA: Dicloxacillin | MRSA: TMP-SMX or Clindamycin"],
["Prevention", "Chlorhexidine wash + bleach baths + mupirocin nares"],
["Complication", "Spread → carbuncle; bacteraemia; osteomyelitis"],
];
slide.addTable(furRows, { x: 0.28, y: 1.6, w: 6.15, h: 5.35, border: { pt: 0.5, color: "DDCCAA" }, fill: { color: "FFF8F0" }, colW: [2.0, 4.15], fontSize: 11 });
// CARBUNCLE panel
addBar(slide, 6.82, 1.02, 6.28, 0.5, C.accentDark);
slide.addText("CARBUNCLE", { x: 6.92, y: 1.02, w: 6.1, h: 0.5, fontSize: 16, bold: true, color: C.white, valign: "middle", margin: 0 });
slide.addShape(pres.shapes.RECTANGLE, { x: 6.82, y: 1.52, w: 6.28, h: 5.48, fill: { color: "FFF5EE" }, line: { color: C.accentDark, transparency: 30 } });
const carbRows = [
[{ text: "ASPECT", options: { bold: true, fill: { color: "3A1500" }, color: C.white } }, { text: "DETAIL", options: { bold: true, fill: { color: "3A1500" }, color: C.white } }],
["Definition", "≥2 confluent furuncles; multiple separate heads"],
["Organism", "S. aureus (MRSA); as per furuncle"],
["Depth", "Deep dermis + subcutaneous fat"],
["Discharge", "Multiple draining sinuses"],
["Sites", "Nape of neck most common; back; buttocks"],
["Systemic signs", "Fever, malaise, chills COMMON"],
["Scarring", "Significant scarring on healing"],
["I&D", "Mandatory; wide incision; break all loculations"],
["Antibiotics", "ALWAYS systemic; IV if severe/septic"],
["Prevention", "Same as furuncle + screen for DM"],
["Complication", "Septicaemia; osteomyelitis; endocarditis"],
];
slide.addTable(carbRows, { x: 6.9, y: 1.6, w: 6.12, h: 5.35, border: { pt: 0.5, color: "DDCCAA" }, fill: { color: "FFF5EE" }, colW: [2.0, 4.12], fontSize: 11 });
addBar(slide, 0, 7.1, 13.3, 0.4, C.accent);
slide.addText("Andrews' Diseases of the Skin 12e | Fitzpatrick's Dermatology 9e | IDSA 2014", {
x: 0.3, y: 7.1, w: 12.7, h: 0.4, fontSize: 10, color: C.white, align: "center", valign: "middle"
});
}
// ─── WRITE ────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/cutaneous-infections-ppt/Furuncle_Carbuncle.pptx" })
.then(() => console.log("✅ Furuncle & Carbuncle PPT created"))
.catch(e => { console.error("❌ Error:", e); process.exit(1); });
cd /home/daytona/workspace/cutaneous-infections-ppt && node build_furuncle_carbuncle.js 2>&1
ls -lh /home/daytona/workspace/cutaneous-infections-ppt/Furuncle_Carbuncle.pptx
Furuncle Carbuncle
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide — amber/navy theme |
| 2 | FURUNCLE — Definition, Etiology, Pathogenesis & Risk Factors — with 2 clinical images |
| 3 | FURUNCLE — Clinical Features, 4 Stages of progression, Differential Diagnosis table |
| 4 | FURUNCLE — Management (surgical + antibiotics), Danger Zone warning box, Prevention |
| 5 | CARBUNCLE — Section divider slide |
| 6 | CARBUNCLE — Definition, Furuncle vs Carbuncle comparison table, Etiology — with images |
| 7 | CARBUNCLE — DDx, Surgical management, Antibiotic therapy, Supportive care, Prevention |
| 8 | Side-by-side comprehensive summary table — Furuncle vs Carbuncle across all key aspects |
Contents not ppt
| Stage | Description | Management at this Stage |
|---|---|---|
| 1. Early/Incipient | Firm erythematous nodule; no fluctuation; abscess not yet collected | Warm compresses + oral antibiotics; I&D NOT yet possible |
| 2. Suppurative | Central softening; fluctuation developing; abscess localising | Continue warm compresses; prepare for I&D |
| 3. Fluctuant | Definite fluctuance; abscess collected | I&D now indicated — definitive treatment |
| 4. Pointing/Rupture | Spontaneous rupture; pus + necrotic core discharged | Wound care; complete evacuation; antibiotics |
| 5. Resolving | Granulation tissue forming | Scar formation; decolonisation to prevent recurrence |
| Condition | Distinguishing Feature |
|---|---|
| Carbuncle | Multiple confluent heads; systemic signs more prominent |
| Hidradenitis suppurativa | Axillae/groins; tunnels; scarring; comedones; recurrent |
| Infected sebaceous cyst | Cheesy material; pre-existing cyst; no follicular origin |
| Cystic acne | Face; comedones; chronic; multiple lesions |
| Cutaneous anthrax | Painless eschar; exposure history; marked oedema |
| Inflamed epidermal inclusion cyst | Prior cyst history; no central necrotic core |
| Lymphadenitis | Deeper structure; firm; no follicular origin |
| Cellulitis | Ill-defined erythema; no fluctuance; no abscess |
| Organism | First-line | Alternative |
|---|---|---|
| MSSA | Dicloxacillin or Cefalexin | Amoxicillin-clavulanate |
| MRSA | TMP-SMX or Clindamycin | Doxycycline / Minocycline |
| Severe/IV | Vancomycin (MRSA) / Nafcillin (MSSA) | Linezolid |
| Feature | Furuncle | Carbuncle |
|---|---|---|
| Definition | Single perifollicular abscess | ≥2 confluent furuncles; multiple heads |
| Depth | Deep dermis + perifollicular | Deep dermis + subcutaneous fat |
| Discharge | Single draining point | Multiple draining sinuses |
| Size | Usually small (1-3 cm) | Larger; may be 3-10 cm or more |
| Systemic signs | Usually absent | Fever, malaise, chills — common |
| Scarring | Small scar | Significant scarring |
| Common site | Nape, axillae, buttocks | Nape of neck most common |
| Antibiotics | Optional + I&D | Always required |
| I&D | Standard I&D | Wide incision; break all loculations |
| IV antibiotics | Only if severe/facial | Required if systemic signs present |
| Complication risk | Low | Higher — bacteraemia, endocarditis |
| Condition | Distinguishing Feature |
|---|---|
| Single large furuncle | No multiple heads; smaller; less systemic signs |
| Hidradenitis suppurativa | Axillae/groins; tunnels; comedones; chronic; scarring |
| Infected sebaceous cyst | Cheesy material; pre-existing cyst; no follicular origin |
| Cutaneous anthrax | Painless eschar; marked surrounding oedema; exposure history |
| Cellulitis | Ill-defined erythema; no abscess; no discharge |
| Pilonidal abscess | Natal cleft; midline pits; hair tuft; no follicular heads |
| Actinomycosis | Jaw/neck; sulfur granules; indolent; sinus tracts |
| Tuberculosis cutis | Indolent; cold abscess; no heat; TB history |
| Organism | Oral (mild-moderate) | IV (severe/systemic) |
|---|---|---|
| MSSA | Dicloxacillin or Cefalexin | Nafcillin or Cefazolin |
| MRSA | TMP-SMX or Clindamycin | Vancomycin |
| Culture directed | Per sensitivity result | Per sensitivity result |
Give Furuncle management in simple points