me tne pelethi j requirements ni pdf mokli didhi che toh kindley check kri leje e according j bnavje bdhu , this is course name: Medical mycology ppt topic is "Clinical and laboratory diagnosis of fungal diseases affecting the skin and its appendages" Developing slide presentations covering the topic.
divy rajodiya, 11 , 4, duyshenkulova marina maam can i send you ppt template so you make ppt on that template and choose slide according to data which data need which slide
i upload ppt file , make it as you want but kindly add images related to that data on each slide
no i dont upload that ppt template , can you make your own
tinea dermatophyte skin infection clinical appearance
KOH potassium hydroxide preparation fungal hyphae microscopy
onychomycosis nail fungal infection tinea unguium
tinea capitis scalp ringworm hair loss alopecia
dermatophyte fungal culture Sabouraud agar colony morphology
ls -la /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/medical-mycology-ppt
mkdir -p /home/daytona/workspace/medical-mycology-ppt && echo "dir created"
~/medical-mycology-ppt/build.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
const path = require("path");
// ─── Color Palette ───────────────────────────────────────────────────────────
const C = {
darkBg: "0D1B2A", // Deep navy — dominant background
midBg: "1B2A3B", // Slightly lighter navy for card backgrounds
accent1: "00B4D8", // Bright cyan — primary accent
accent2: "90E0EF", // Light cyan — secondary
gold: "FFB703", // Warm gold — highlights / headings
white: "FFFFFF",
lightGray: "E0E0E0",
textGray: "B0C4D8",
red: "E63946",
};
// ─── Image URLs ───────────────────────────────────────────────────────────────
const IMG_URLS = {
tinea_corporis: "https://cdn.orris.care/cdss_images/DermNetNZ_1760032227437_1e04fd44-dcef-4990-8277-a0699781221a.jpg",
tinea_pedis: "https://cdn.orris.care/cdss_images/DermNetNZ_1760031358736_8cea7fdf-2c5a-44ae-9aa0-f6019e1c7293.jpg",
tinea_faciei: "https://cdn.orris.care/cdss_images/DermNetNZ_1760031043497_e958b369-f538-4270-91e7-31165bc6ad23.jpg",
tinea_barbae: "https://cdn.orris.care/cdss_images/DermNetNZ_1760031385284_c5968d17-c410-4661-bc50-a4db9ce66241.jpg",
koh_multi: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_02a730dee1929918ca9f47a96d782c5c5343bef53290c90244583593fe96332d.jpg",
koh_hyphae: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_b287ff1a1f0fddab8b51970d103849b604f279d981cc9c1b3ae501b193e6c4c0.jpg",
onychomycosis: "https://cdn.orris.care/cdss_images/DermNetNZ_1760033825500_6adc27e4-2c65-40f5-bab1-283655813570.jpg",
tinea_capitis: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_615cd7b5ce081b16e3e59eb97d039110e98f4fa342289d7abedb474a347a48c4.jpg",
culture_plate: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_db9c0ad8bd45562837ac78d7155078b6c917b7d93c7f66c89a6f4e579220530e.jpg",
koh_before_after:"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_32c110e6bcba23afadccf8f85aa43edc23ea42d60039ca00a234b12024fa6b3e.jpg",
};
// ─── Fetch images as base64 ───────────────────────────────────────────────────
console.log("Fetching images...");
const urlList = Object.values(IMG_URLS);
let images = {};
try {
const raw = execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js ${urlList.map(u => `"${u}"`).join(" ")}`,
{ maxBuffer: 50 * 1024 * 1024 }
).toString();
const results = JSON.parse(raw);
const keys = Object.keys(IMG_URLS);
keys.forEach((k, i) => {
if (results[i] && !results[i].error) {
images[k] = results[i].base64;
} else {
console.warn(`Failed to fetch image: ${k}`, results[i]?.error);
images[k] = null;
}
});
} catch (e) {
console.error("Image fetch error:", e.message);
}
// ─── Helper: safe addImage ────────────────────────────────────────────────────
function safeImg(slide, key, opts) {
if (images[key]) {
slide.addImage({ data: images[key], ...opts });
}
}
// ─── Helper: slide background ─────────────────────────────────────────────────
function setDarkBg(slide) {
slide.background = { color: C.darkBg };
}
// ─── Helper: top accent bar ───────────────────────────────────────────────────
function topBar(slide, color = C.accent1) {
slide.addShape("rect", { x: 0, y: 0, w: 10, h: 0.08, fill: { color } });
}
// ─── Helper: section title ────────────────────────────────────────────────────
function slideTitle(slide, text) {
slide.addText(text, {
x: 0.4, y: 0.15, w: 9.2, h: 0.65,
fontSize: 26, bold: true, color: C.gold,
fontFace: "Arial", align: "left", valign: "middle", margin: 0,
});
// underline
slide.addShape("rect", { x: 0.4, y: 0.82, w: 9.2, h: 0.03, fill: { color: C.accent1 } });
}
// ─── Helper: body text block ─────────────────────────────────────────────────
function bodyText(slide, items, opts = {}) {
const bullets = items.map((t, i) => ({
text: t,
options: { bullet: { type: "bullet", characterCode: "2022" }, breakLine: i < items.length - 1, fontSize: opts.fontSize || 18, color: opts.color || C.lightGray, fontFace: "Arial" }
}));
slide.addText(bullets, {
x: opts.x || 0.4, y: opts.y || 1.0, w: opts.w || 6.0, h: opts.h || 4.0,
valign: "top", margin: 5,
});
}
// ─── Helper: label box ───────────────────────────────────────────────────────
function labelBox(slide, text, x, y, w, h, bg = C.accent1, fg = C.darkBg) {
slide.addShape("rect", { x, y, w, h, fill: { color: bg }, rectRadius: 0.05 });
slide.addText(text, { x, y, w, h, fontSize: 13, bold: true, color: fg, fontFace: "Arial", align: "center", valign: "middle", margin: 0 });
}
// ─── Build Presentation ───────────────────────────────────────────────────────
let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.author = "Divy Rajodiya";
pres.title = "Clinical and Laboratory Diagnosis of Fungal Diseases Affecting the Skin and Its Appendages";
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 1 – Title Slide
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
// Left accent strip
s.addShape("rect", { x: 0, y: 0, w: 0.25, h: 5.625, fill: { color: C.accent1 } });
// Right image panel
safeImg(s, "tinea_corporis", { x: 6.0, y: 0, w: 4.0, h: 5.625 });
// Dark overlay over image
s.addShape("rect", { x: 6.0, y: 0, w: 4.0, h: 5.625, fill: { color: C.darkBg }, transparency: 40 });
// Gold top bar
s.addShape("rect", { x: 0, y: 0, w: 10, h: 0.06, fill: { color: C.gold } });
// Course name
s.addText("Medical Mycology", {
x: 0.5, y: 0.35, w: 5.5, h: 0.45,
fontSize: 14, color: C.accent2, fontFace: "Arial", italic: true, bold: false,
});
// Main title
s.addText("Clinical and Laboratory\nDiagnosis of Fungal Diseases\nAffecting the Skin and Its\nAppendages", {
x: 0.5, y: 0.9, w: 5.4, h: 2.6,
fontSize: 26, bold: true, color: C.white, fontFace: "Arial", lineSpacingMultiple: 1.2,
});
// Divider
s.addShape("rect", { x: 0.5, y: 3.6, w: 5.0, h: 0.04, fill: { color: C.accent1 } });
// Student info
const info = [
{ text: "Student: ", options: { bold: true, color: C.gold, fontSize: 14, fontFace: "Arial" } },
{ text: "Divy Rajodiya\n", options: { bold: false, color: C.lightGray, fontSize: 14, fontFace: "Arial", breakLine: true } },
{ text: "Group: ", options: { bold: true, color: C.gold, fontSize: 14, fontFace: "Arial" } },
{ text: "11 | ", options: { bold: false, color: C.lightGray, fontSize: 14, fontFace: "Arial" } },
{ text: "Semester: ", options: { bold: true, color: C.gold, fontSize: 14, fontFace: "Arial" } },
{ text: "4\n", options: { bold: false, color: C.lightGray, fontSize: 14, fontFace: "Arial", breakLine: true } },
{ text: "Instructor: ", options: { bold: true, color: C.gold, fontSize: 14, fontFace: "Arial" } },
{ text: "Duyshenkulova Marina\n", options: { bold: false, color: C.lightGray, fontSize: 14, fontFace: "Arial", breakLine: true } },
{ text: "Discipline: ", options: { bold: true, color: C.gold, fontSize: 14, fontFace: "Arial" } },
{ text: "Microbiology, Virology and Immunology", options: { bold: false, color: C.lightGray, fontSize: 14, fontFace: "Arial" } },
];
s.addText(info, { x: 0.5, y: 3.75, w: 5.4, h: 1.6, valign: "top", margin: 0 });
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 2 – Table of Contents
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
topBar(s, C.gold);
slideTitle(s, "Table of Contents");
const topics = [
["01", "Aims and Objectives"],
["02", "Overview of Superficial Fungal Infections"],
["03", "Clinical Presentations: Tinea & Dermatophytoses"],
["04", "Tinea Capitis & Onychomycosis"],
["05", "Laboratory Diagnosis: Specimen Collection"],
["06", "Direct Microscopy (KOH Preparation)"],
["07", "Fungal Culture & Identification"],
["08", "Additional Laboratory Methods"],
["09", "Conclusion"],
["10", "References"],
];
const col1 = topics.slice(0, 5);
const col2 = topics.slice(5);
[[col1, 0.4], [col2, 5.1]].forEach(([col, xStart]) => {
col.forEach(([num, title], i) => {
const y = 1.1 + i * 0.82;
s.addShape("rect", { x: xStart, y, w: 0.42, h: 0.52, fill: { color: C.accent1 }, rectRadius: 0.04 });
s.addText(num, { x: xStart, y, w: 0.42, h: 0.52, fontSize: 14, bold: true, color: C.darkBg, fontFace: "Arial", align: "center", valign: "middle", margin: 0 });
s.addText(title, { x: xStart + 0.5, y: y + 0.04, w: 4.4, h: 0.44, fontSize: 16, color: C.lightGray, fontFace: "Arial", valign: "middle", margin: 0 });
});
});
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 3 – Aims and Objectives
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
topBar(s);
slideTitle(s, "Aims and Objectives");
// Aim box
s.addShape("rect", { x: 0.4, y: 1.05, w: 9.2, h: 0.75, fill: { color: C.midBg }, rectRadius: 0.06 });
s.addText([
{ text: "AIM: ", options: { bold: true, color: C.gold, fontSize: 18, fontFace: "Arial" } },
{ text: "To understand the clinical features and laboratory methods used to diagnose fungal diseases of the skin and its appendages.", options: { bold: false, color: C.white, fontSize: 18, fontFace: "Arial" } }
], { x: 0.55, y: 1.05, w: 8.9, h: 0.75, valign: "middle", margin: 6 });
// Objectives
s.addText("Objectives:", { x: 0.4, y: 2.0, w: 9.0, h: 0.42, fontSize: 20, bold: true, color: C.accent1, fontFace: "Arial" });
const objs = [
"Identify the major causative organisms of superficial mycoses affecting the skin, hair and nails",
"Describe the clinical features of dermatophytoses (tinea corporis, capitis, pedis, unguium, barbae)",
"Outline the correct methods of specimen collection for laboratory investigation",
"Explain direct microscopy (KOH preparation) and its diagnostic significance",
"Describe fungal culture techniques and macroscopic/microscopic colony identification",
"Review additional diagnostic tools: Wood's lamp, histopathology, molecular methods",
];
bodyText(s, objs, { x: 0.4, y: 2.45, w: 9.2, h: 2.9, fontSize: 17 });
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 4 – Overview of Superficial Fungal Infections
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
topBar(s);
slideTitle(s, "Overview of Superficial Fungal Infections");
// Left text
const pts = [
"Superficial mycoses are restricted to the outermost layers of the skin, hair and nails",
"Dermatophytes (Trichophyton, Microsporum, Epidermophyton) are the predominant pathogens",
"They metabolize keratin and rarely invade deeper tissues",
"Other agents: Candida spp. (yeast) and Malassezia furfur (pityriasis versicolor)",
"Transmission: direct contact, fomites, soil (geophilic), animals (zoophilic) or humans (anthropophilic)",
"Common risk factors: warm moist climate, immunosuppression, poor hygiene, occlusive footwear",
];
bodyText(s, pts, { x: 0.4, y: 1.0, w: 5.6, h: 4.3, fontSize: 17 });
// Classification table on right
const tData = [
[{ text: "Category", options: { bold: true, color: C.gold } }, { text: "Example", options: { bold: true, color: C.gold } }],
[{ text: "Anthropophilic", options: { color: C.white } }, { text: "T. rubrum, T. tonsurans", options: { color: C.lightGray } }],
[{ text: "Zoophilic", options: { color: C.white } }, { text: "M. canis, T. verrucosum", options: { color: C.lightGray } }],
[{ text: "Geophilic", options: { color: C.white } }, { text: "M. gypseum", options: { color: C.lightGray } }],
[{ text: "Yeast", options: { color: C.white } }, { text: "Candida, Malassezia", options: { color: C.lightGray } }],
];
s.addTable(tData, {
x: 6.1, y: 1.1, w: 3.5, fontSize: 14, fontFace: "Arial",
border: { type: "solid", pt: 1, color: C.accent1 },
fill: C.midBg,
rowH: 0.55,
});
// small image
safeImg(s, "tinea_pedis", { x: 6.1, y: 3.55, w: 3.5, h: 1.75, rounding: false });
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 5 – Clinical Presentations: Tinea & Dermatophytoses
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
topBar(s);
slideTitle(s, "Clinical Presentations: Dermatophytoses");
// 3 image cards across bottom half
const cases = [
{ key: "tinea_faciei", label: "Tinea Faciei", desc: "Annular erythematous\nplaques on facial skin" },
{ key: "tinea_barbae", label: "Tinea Barbae", desc: "Follicular inflammation\nof beard area" },
{ key: "tinea_corporis",label: "Tinea Corporis", desc: "Classic ring-shaped\nlesion on forearm" },
];
cases.forEach(({ key, label, desc }, i) => {
const x = 0.3 + i * 3.2;
safeImg(s, key, { x, y: 1.05, w: 2.95, h: 2.5 });
s.addShape("rect", { x, y: 3.55, w: 2.95, h: 0.85, fill: { color: C.midBg } });
s.addText(label, { x, y: 3.57, w: 2.95, h: 0.42, fontSize: 16, bold: true, color: C.gold, fontFace: "Arial", align: "center", margin: 0 });
s.addText(desc, { x, y: 3.97, w: 2.95, h: 0.42, fontSize: 13, color: C.lightGray, fontFace: "Arial", align: "center", margin: 0 });
});
// Text points below
const pts = [
"Tinea Corporis: annular lesion, raised scaly border, central clearing — enlarges centrifugally",
"Tinea Faciei: ring-shaped, erythematous; may be atypical if treated with steroids ('tinea incognito')",
"Tinea Barbae: follicular inflammation; broken hair shafts; caused by T. verrucosum or T. violaceum",
"Tinea Pedis (Athlete's foot): interdigital maceration, moccasin-type scaling, vesicular form",
"Tinea Cruris: pruritic erythematous plaque on groin; characteristically spares the scrotum",
];
bodyText(s, pts, { x: 0.3, y: 4.42, w: 9.4, h: 1.1, fontSize: 15, color: C.textGray });
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 6 – Tinea Capitis & Onychomycosis
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
topBar(s, C.gold);
slideTitle(s, "Tinea Capitis & Onychomycosis");
// Left panel - Tinea Capitis
s.addShape("rect", { x: 0.3, y: 0.95, w: 4.5, h: 4.5, fill: { color: C.midBg }, rectRadius: 0.08 });
s.addText("Tinea Capitis", { x: 0.4, y: 1.05, w: 4.3, h: 0.45, fontSize: 18, bold: true, color: C.accent1, fontFace: "Arial", margin: 4 });
safeImg(s, "tinea_capitis", { x: 0.4, y: 1.55, w: 4.2, h: 2.0 });
const capPts = [
"Dermatophyte infection of scalp & hair",
"Gray-patch type: scaling, dull grey hair",
"Black-dot type: hair breaks at follicle (endothrix)",
"Kerion: painful boggy inflammatory mass",
"Agents: T. tonsurans (endothrix), M. canis (ectothrix)",
];
bodyText(s, capPts, { x: 0.4, y: 3.58, w: 4.2, h: 1.75, fontSize: 15, color: C.lightGray });
// Right panel - Onychomycosis
s.addShape("rect", { x: 5.2, y: 0.95, w: 4.5, h: 4.5, fill: { color: C.midBg }, rectRadius: 0.08 });
s.addText("Onychomycosis (Tinea Unguium)", { x: 5.3, y: 1.05, w: 4.3, h: 0.45, fontSize: 18, bold: true, color: C.gold, fontFace: "Arial", margin: 4 });
safeImg(s, "onychomycosis", { x: 5.3, y: 1.55, w: 4.2, h: 2.0 });
const onyPts = [
"Nail thickening, yellow-brown discolouration",
"Subungual hyperkeratosis & onycholysis",
"DLSO (distal-lateral) most common pattern",
"Agents: T. rubrum (80%), T. mentagrophytes",
"Confirm: nail clippings + KOH or culture",
];
bodyText(s, onyPts, { x: 5.3, y: 3.58, w: 4.2, h: 1.75, fontSize: 15, color: C.lightGray });
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 7 – Specimen Collection
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
topBar(s);
slideTitle(s, "Laboratory Diagnosis: Specimen Collection");
// Steps in a flow diagram style
const steps = [
{ title: "Skin Scraping", body: "Scrape active edge of lesion\nwith scalpel / glass slide\nCollect scales in black paper" },
{ title: "Hair Specimens", body: "Epilate broken/dull hairs\nwith forceps (include roots)\nBlack-dot hair for endothrix" },
{ title: "Nail Clippings", body: "Clip distal dystrophic nail\nScrape subungual debris\nMultiple sites if DLSO" },
{ title: "Swabs / Scrapings", body: "Use sterile swab for moist\ninterdigital areas or exudate\nDry specimen preferred" },
];
steps.forEach(({ title, body }, i) => {
const x = 0.3 + i * 2.35;
// Arrow connector (except last)
if (i < steps.length - 1) {
s.addShape("rightArrow", { x: x + 2.0, y: 2.2, w: 0.5, h: 0.3, fill: { color: C.accent1 } });
}
s.addShape("rect", { x, y: 1.0, w: 2.2, h: 2.9, fill: { color: C.midBg }, rectRadius: 0.08,
shadow: { type: "outer", color: "000000", blur: 8, offset: 2, angle: 135, opacity: 0.25 } });
s.addShape("rect", { x, y: 1.0, w: 2.2, h: 0.48, fill: { color: C.accent1 }, rectRadius: 0.04 });
s.addText(title, { x, y: 1.0, w: 2.2, h: 0.48, fontSize: 15, bold: true, color: C.darkBg, fontFace: "Arial", align: "center", valign: "middle", margin: 0 });
s.addText(body, { x: x + 0.08, y: 1.52, w: 2.04, h: 2.3, fontSize: 14, color: C.lightGray, fontFace: "Arial", valign: "top", margin: 4 });
});
// Key points
s.addText("Key Principles of Specimen Collection:", { x: 0.4, y: 4.05, w: 9.2, h: 0.38, fontSize: 17, bold: true, color: C.accent2, fontFace: "Arial" });
const kp = [
"Collect before antifungal treatment begins • Use sterile instruments • Store at room temperature • Transport within 24 hours",
];
s.addText(kp[0], { x: 0.4, y: 4.44, w: 9.2, h: 0.55, fontSize: 15, color: C.textGray, fontFace: "Arial", align: "left", margin: 0 });
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 8 – Direct Microscopy (KOH)
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
topBar(s);
slideTitle(s, "Direct Microscopy: KOH Preparation");
// Left: text
const pts1 = [
"Potassium Hydroxide (KOH) 10–20% dissolves keratin, clearing cellular debris",
"Reveals fungal elements: septate hyphae, spores, pseudohyphae",
"Procedure: specimen + 1–2 drops KOH → coverslip → gentle heating → examine at ×100–×400",
"Fluorescent brighteners (Calcofluor White, Blankophor) enhance detection under UV — very sensitive",
"Ectothrix: spores on outside of hair shaft → Microsporum, T. verrucosum",
"Endothrix: spores inside shaft → T. tonsurans, T. violaceum",
"POSITIVE: branching septate hyphae = dermatophyte confirmed (genus not identified)",
];
bodyText(s, pts1, { x: 0.4, y: 1.0, w: 5.6, h: 4.35, fontSize: 17 });
// Right: images stacked
safeImg(s, "koh_hyphae", { x: 6.15, y: 1.0, w: 3.5, h: 2.1 });
s.addText("KOH mount showing septate hyphae (×400)", { x: 6.15, y: 3.12, w: 3.5, h: 0.3, fontSize: 12, color: C.textGray, fontFace: "Arial", italic: true, align: "center", margin: 0 });
safeImg(s, "koh_multi", { x: 6.15, y: 3.45, w: 3.5, h: 1.9 });
s.addText("Multi-panel: Wood's lamp, KOH, Trichophyton & Microsporum macroconidia", { x: 6.15, y: 5.35, w: 3.5, h: 0.3, fontSize: 11, color: C.textGray, fontFace: "Arial", italic: true, align: "center", margin: 0 });
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 9 – Fungal Culture & Identification
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
topBar(s, C.gold);
slideTitle(s, "Fungal Culture & Identification");
// Left column
const cPts = [
"Medium: Sabouraud Dextrose Agar (SDA) ± cycloheximide + chloramphenicol",
"DTM (Dermatophyte Test Medium): color change from yellow → red confirms dermatophyte",
"Incubation: 25–28°C for up to 4 weeks (slowly growing species)",
"Macroscopy: colony color, texture (powdery/velvety/granular), reverse pigment",
"Microscopy (LPCB stain): macroconidia, microconidia, spiral hyphae, chlamydospores",
];
bodyText(s, cPts, { x: 0.4, y: 1.0, w: 5.5, h: 2.9, fontSize: 17 });
// Identification table
const tData = [
[{ text: "Genus", options: { bold: true, color: C.gold } }, { text: "Macroconidia", options: { bold: true, color: C.gold } }, { text: "Microconidia", options: { bold: true, color: C.gold } }],
[{ text: "Trichophyton", options: { color: C.white } }, { text: "Rare, pencil-shaped", options: { color: C.lightGray } }, { text: "Numerous, round/pear", options: { color: C.lightGray } }],
[{ text: "Microsporum", options: { color: C.white } }, { text: "Spindle-shaped, thick-walled", options: { color: C.lightGray } }, { text: "Few or absent", options: { color: C.lightGray } }],
[{ text: "Epidermophyton", options: { color: C.white } }, { text: "Club-shaped, smooth", options: { color: C.lightGray } }, { text: "Absent", options: { color: C.lightGray } }],
];
s.addTable(tData, {
x: 0.4, y: 3.95, w: 5.5, fontSize: 14, fontFace: "Arial",
border: { type: "solid", pt: 1, color: C.accent1 },
fill: C.midBg, rowH: 0.44,
});
// Right: culture image
safeImg(s, "culture_plate", { x: 6.15, y: 1.0, w: 3.5, h: 4.35 });
s.addText("M. gypseum: scalp infection, SDA culture pigment, and LPCB macroconidia", { x: 6.15, y: 5.37, w: 3.5, h: 0.28, fontSize: 11, color: C.textGray, fontFace: "Arial", italic: true, align: "center", margin: 0 });
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 10 – Additional Diagnostic Methods
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
topBar(s);
slideTitle(s, "Additional Laboratory Diagnostic Methods");
const methods = [
{ title: "Wood's Lamp Examination", body: "UV light at 365 nm\nM. canis/audouinii: bright green fluorescence\nEndothrix species: no fluorescence\nQuick, non-invasive, bedside tool" },
{ title: "Histopathology (PAS / GMS)", body: "PAS stain: fungal cell walls stain magenta\nGrocott-Gomori Methenamine Silver (GMS)\nUseful for nail biopsies & deep infections\nConfirms tissue invasion" },
{ title: "Molecular Diagnosis (PCR)", body: "High sensitivity & specificity\nIdentifies species from skin/nail scrapings\nPanfungal PCR or species-specific assays\nUseful when culture is negative" },
{ title: "Dermoscopy", body: "Non-invasive skin surface microscopy\nIn tinea capitis: comma hairs, black dots\nIn onychomycosis: jagged edge pattern\nAids diagnosis before lab confirmation" },
];
methods.forEach(({ title, body }, i) => {
const row = Math.floor(i / 2);
const col = i % 2;
const x = 0.3 + col * 4.85;
const y = 1.05 + row * 2.2;
s.addShape("rect", { x, y, w: 4.5, h: 2.0, fill: { color: C.midBg }, rectRadius: 0.08 });
s.addShape("rect", { x, y, w: 4.5, h: 0.42, fill: { color: i % 2 === 0 ? C.accent1 : C.gold }, rectRadius: 0.04 });
s.addText(title, { x, y, w: 4.5, h: 0.42, fontSize: 16, bold: true, color: C.darkBg, fontFace: "Arial", align: "center", valign: "middle", margin: 0 });
s.addText(body, { x: x + 0.1, y: y + 0.46, w: 4.3, h: 1.5, fontSize: 14, color: C.lightGray, fontFace: "Arial", valign: "top", margin: 4 });
});
// bottom image strip
safeImg(s, "koh_before_after", { x: 0.3, y: 5.1, w: 9.4, h: 0.5, transparency: 30 });
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 11 – Conclusion
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
topBar(s, C.gold);
slideTitle(s, "Conclusion");
const pts = [
"Superficial fungal infections of skin and appendages are globally prevalent and caused predominantly by dermatophytes (Trichophyton, Microsporum, Epidermophyton)",
"Clinical diagnosis alone is insufficient — laboratory confirmation is essential to guide therapy and prevent recurrence",
"Direct KOH microscopy is rapid, inexpensive, and the first-line laboratory test; it demonstrates hyphae but cannot identify species",
"Fungal culture on SDA/DTM remains the gold standard for species identification and antifungal susceptibility testing",
"Wood's lamp, histopathology (PAS/GMS stain), and PCR serve as valuable adjuncts in complex or culture-negative cases",
"Accurate diagnosis prevents misuse of antifungals and steroid-containing creams (tinea incognito), and ensures targeted, effective treatment",
];
bodyText(s, pts, { x: 0.4, y: 1.0, w: 6.2, h: 4.4, fontSize: 17 });
// Concluding visual
safeImg(s, "tinea_corporis", { x: 6.8, y: 1.0, w: 2.9, h: 2.1 });
safeImg(s, "koh_hyphae", { x: 6.8, y: 3.2, w: 2.9, h: 2.1 });
s.addText("Clinical → Laboratory → Diagnosis", { x: 6.8, y: 5.35, w: 2.9, h: 0.28, fontSize: 13, bold: true, color: C.accent1, fontFace: "Arial", align: "center", margin: 0 });
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 12 – References
// ════════════════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setDarkBg(s);
topBar(s, C.accent1);
slideTitle(s, "References");
const refs = [
"1. Brooks GF, Carroll KC, Butel JS, Morse SA, Mietzner TA. Jawetz, Melnick & Adelberg's Medical Microbiology. 27th ed. McGraw-Hill; 2016.",
"2. Murray PR, Rosenthal KS, Pfaller MA. Medical Microbiology. 8th ed. Elsevier; 2016.",
"3. Pappas PG, Rex JH, Sobel JD, et al. Clinical Practice Guidelines for the Management of Candidiasis. Clin Infect Dis. 2004;38(2):161-189.",
"4. Weitzman I, Summerbell RC. The Dermatophytes. Clin Microbiol Rev. 1995;8(2):240-259.",
"5. Aly R. Ecology and epidemiology of dermatophyte infections. J Am Acad Dermatol. 1994;31(3 Pt 2):S21-S25.",
"6. Gupta AK, Ryder JE, Chow M, Cooper EA. Dermatophytosis: the management of fungal infections. Skinmed. 2005;4(5):305-310.",
"7. Ellis DH. Dematiaceous Moulds. Chapter in: Clinical Mycology Online. University of Adelaide; 2020. [Online resource]",
];
s.addText(refs.map((r, i) => ({
text: r,
options: { breakLine: i < refs.length - 1, fontSize: 16, color: i % 2 === 0 ? C.lightGray : C.textGray, fontFace: "Arial" }
})), { x: 0.4, y: 1.05, w: 9.2, h: 4.35, valign: "top", margin: 6, lineSpacingMultiple: 1.3 });
}
// ─── Write file ───────────────────────────────────────────────────────────────
const outPath = "/home/daytona/workspace/medical-mycology-ppt/Medical_Mycology_Skin_Diagnosis.pptx";
pres.writeFile({ fileName: outPath })
.then(() => console.log("SUCCESS: " + outPath))
.catch(e => { console.error("WRITE ERROR:", e); process.exit(1); });
cd /home/daytona/workspace/medical-mycology-ppt && node build.js 2>&1