A patient with multiple sinuses over the left iliac region of the abdominal wall came with a suspicious mass in the uterus on mri what should be my next step
actinomycosis pelvic uterine mass sinus tract diagnosis management
actinomycosis pelvic diagnosis treatment
"Care must be used during collection that specimens not become contaminated with Actinomyces that are part of the normal flora on mucosal surfaces. Because the organisms are concentrated in sulfur granules and are sparse in involved tissues, a large amount of tissue or pus should be collected." — Medical Microbiology 9e
"The condition is often clinically misdiagnosed as a malignancy; the histologic appearance of the characteristic granules allows diagnosis." — Andrews' Diseases of the Skin
| Component | Regimen |
|---|---|
| Antibiotic of choice | Penicillin G IV 10–20 MU/day × 4–6 weeks, then oral amoxicillin/penicillin × 6–12 months |
| Alternatives | Ampicillin, amoxicillin-clavulanate, clindamycin, erythromycin, ceftriaxone |
| Avoid | Metronidazole (most species are resistant) |
| Surgery | Drainage of abscess + debridement of devitalized tissue if needed; IUD removal if present |
| Duration | 6 to 12 months total antibiotic therapy |
"Treatment for actinomycosis involves the combination of drainage of a localized abscess or surgical debridement of the involved tissues, and prolonged administration of antibiotics... An undrained focus should be suspected in patients with infections that do not appear to respond to prolonged therapy." — Medical Microbiology 9e
| Diagnosis | Distinguishing features |
|---|---|
| Uterine/pelvic malignancy (sarcoma, carcinoma) | No sulfur granules; sinus tracts unusual; biopsy shows malignant cells |
| Tuberculous pelvic disease | Caseating granulomas on histology; AFB positive; Mantoux/IGRA positive |
| Nocardiosis | Aerobic; partially acid-fast branching rods; more common in immunosuppressed |
| Mycetoma (fungal/bacterial) | Grains present but in subcutaneous tissue; usually lower limb |
| Crohn's disease with fistula | History of IBD; colonoscopy/pathology shows transmural inflammation |
Generate me a poster for all this content.
ls -la /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/actinomycosis-poster
~/actinomycosis-poster/poster.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3 x 7.5 inches — poster format
// ── Color Palette ─────────────────────────────────────────────────────────────
// Deep navy dominant, warm amber accent, off-white cards, red danger highlights
const C = {
navy: "0D1F3C", // dominant background
navyMid: "142847", // slightly lighter panel
card: "1A3256", // card background
cardLight: "1E3D6B", // lighter card
amber: "E8A020", // accent / headings
amberDark: "C07A10", // darker amber
white: "FFFFFF",
offWhite: "EAF0F8",
red: "E53935",
green: "2ECC71",
teal: "1ABC9C",
lightBlue: "5DADE2",
mutedText: "AABFD4",
};
const slide = pres.addSlide();
// ══════════════════════════════════════════════════════════════
// BACKGROUND
// ══════════════════════════════════════════════════════════════
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { color: C.navy }, line: { color: C.navy }
});
// ══════════════════════════════════════════════════════════════
// HEADER BAND
// ══════════════════════════════════════════════════════════════
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 13.3, h: 1.05,
fill: { color: C.navyMid }, line: { color: C.navyMid }
});
// amber accent stripe under header
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 1.05, w: 13.3, h: 0.045,
fill: { color: C.amber }, line: { color: C.amber }
});
// Bacterium icon placeholder (circle badge left)
slide.addShape(pres.shapes.ELLIPSE, {
x: 0.2, y: 0.1, w: 0.8, h: 0.8,
fill: { color: C.amber }, line: { color: C.amberDark, width: 1 }
});
slide.addText("🦠", { x: 0.2, y: 0.13, w: 0.8, h: 0.7, fontSize: 22, align: "center", valign: "middle" });
// Main title
slide.addText("PELVIC ACTINOMYCOSIS", {
x: 1.15, y: 0.06, w: 9.5, h: 0.55,
fontSize: 28, bold: true, color: C.amber, align: "left", valign: "middle",
charSpacing: 3, fontFace: "Calibri",
});
slide.addText("Sinuses Over the Iliac Abdominal Wall + Suspicious Uterine Mass on MRI — Clinical Workup & Management", {
x: 1.15, y: 0.58, w: 10.8, h: 0.38,
fontSize: 11, bold: false, color: C.offWhite, align: "left", valign: "top",
fontFace: "Calibri",
});
// Evidence tag (top right)
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 11.4, y: 0.15, w: 1.7, h: 0.38,
fill: { color: C.red }, line: { color: C.red }, rectRadius: 0.05
});
slide.addText("DO NOT MISS", {
x: 11.4, y: 0.15, w: 1.7, h: 0.38,
fontSize: 9, bold: true, color: C.white, align: "center", valign: "middle",
fontFace: "Calibri"
});
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 11.4, y: 0.58, w: 1.7, h: 0.32,
fill: { color: C.teal }, line: { color: C.teal }, rectRadius: 0.05
});
slide.addText("Mimics Malignancy", {
x: 11.4, y: 0.58, w: 1.7, h: 0.32,
fontSize: 8.5, bold: false, color: C.white, align: "center", valign: "middle",
fontFace: "Calibri"
});
// ══════════════════════════════════════════════════════════════
// SECTION HELPER
// ══════════════════════════════════════════════════════════════
function sectionCard(x, y, w, h, title, titleColor) {
// card bg
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w, h,
fill: { color: C.card },
line: { color: C.cardLight, width: 0.75 },
shadow: { type: "outer", color: "000000", blur: 6, offset: 2, angle: 135, opacity: 0.2 }
});
// title bar
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w: w, h: 0.28,
fill: { color: titleColor || C.amber },
line: { color: titleColor || C.amber }
});
slide.addText(title, {
x: x + 0.08, y: y, w: w - 0.1, h: 0.28,
fontSize: 9.5, bold: true, color: C.navy, align: "left", valign: "middle",
fontFace: "Calibri", margin: 0
});
}
function cardText(items, x, y, w, h, opts = {}) {
const formatted = items.map((it, idx) => {
const isLast = idx === items.length - 1;
if (typeof it === "string") {
return { text: it, options: { bullet: { code: "25B6", color: C.amber }, fontSize: 9, color: C.offWhite, breakLine: !isLast, fontFace: "Calibri", paraSpaceBefore: 3 } };
}
// { text, bold, color, bullet, breakLine, fontSize }
return {
text: it.text,
options: {
bullet: it.bullet !== false ? { code: "25B6", color: it.bcolor || C.amber } : false,
fontSize: it.fontSize || 9,
color: it.color || C.offWhite,
bold: it.bold || false,
italic: it.italic || false,
breakLine: isLast ? (it.breakLine || false) : true,
fontFace: "Calibri",
paraSpaceBefore: it.space || 3,
}
};
});
slide.addText(formatted, { x, y, w, h, valign: "top", margin: 0, ...opts });
}
// ══════════════════════════════════════════════════════════════
// ROW 1: 4 cards — Presentation | Pathogen | Risk Factors | Investigations
// ══════════════════════════════════════════════════════════════
const ROW1_Y = 1.13;
const ROW1_H = 2.12;
const GAP = 0.1;
const COL_W = (13.3 - GAP * 5) / 4; // ~3.2
// Card 1: Classic Presentation
sectionCard(GAP, ROW1_Y, COL_W, ROW1_H, "▸ CLASSIC PRESENTATION", C.amber);
cardText([
{ text: "Multiple draining sinus tracts", bold: true, bullet: true },
"Over iliac region of abdominal wall",
{ text: "Suspicious pelvic/uterine mass on MRI", bold: true, bullet: true },
"Mimics malignancy radiologically",
{ text: "Constitutional symptoms", bold: true, bullet: true },
"Pelvic/abdominal pain, weight loss,",
"yellow vaginal discharge, malaise",
{ text: "Chronic indolent course", bold: false, bullet: true },
"Weeks to months of symptoms",
], GAP + 0.1, ROW1_Y + 0.33, COL_W - 0.18, ROW1_H - 0.38);
// Card 2: Pathogen
const C2X = GAP * 2 + COL_W;
sectionCard(C2X, ROW1_Y, COL_W, ROW1_H, "▸ THE PATHOGEN", C.teal);
cardText([
{ text: "Actinomyces israelii", bold: true, italic: true, bullet: true, bcolor: C.teal },
"(most common causative species)",
{ text: "Anaerobic gram-positive", bold: true, bullet: true, bcolor: C.teal },
"Filamentous, branching rods",
{ text: "Sulfur granules", bold: true, bullet: true, bcolor: C.teal },
"Yellow gritty particles in discharge",
"Eosinophilic clubs at periphery",
"(Splendore-Hoeppli phenomenon)",
{ text: "Normal flora", bold: false, bullet: true, bcolor: C.teal },
"Mouth, colon, urogenital tract",
], C2X + 0.1, ROW1_Y + 0.33, COL_W - 0.18, ROW1_H - 0.38);
// Card 3: Risk Factors
const C3X = GAP * 3 + COL_W * 2;
sectionCard(C3X, ROW1_Y, COL_W, ROW1_H, "▸ RISK FACTORS", C.lightBlue);
cardText([
{ text: "Long-term IUD use", bold: true, bullet: true, bcolor: C.lightBlue },
"Most common trigger for pelvic form",
{ text: "Prior pelvic surgery", bold: false, bullet: true, bcolor: C.lightBlue },
"Appendicitis, GI procedures",
{ text: "Poor dental hygiene", bold: false, bullet: true, bcolor: C.lightBlue },
"Cervicofacial form",
{ text: "Immunosuppression", bold: false, bullet: true, bcolor: C.lightBlue },
"HIV, steroids, diabetes, alcohol",
{ text: "Middle-aged men (general)", bold: false, bullet: true, bcolor: C.lightBlue },
"Pelvic form more common in women",
], C3X + 0.1, ROW1_Y + 0.33, COL_W - 0.18, ROW1_H - 0.38);
// Card 4: Next Step — Investigations
const C4X = GAP * 4 + COL_W * 3;
sectionCard(C4X, ROW1_Y, COL_W, ROW1_H, "▸ IMMEDIATE NEXT STEPS", C.red);
cardText([
{ text: "1. Examine sinus discharge", bold: true, bullet: true, bcolor: C.red },
"Look for sulfur granules → crush,",
"Gram stain → branching rods",
{ text: "2. CT-guided biopsy of mass", bold: true, bullet: true, bcolor: C.red },
"Anaerobic culture + histopathology",
"DO NOT start antibiotics first",
{ text: "3. CT abdomen/pelvis (contrast)", bold: true, bullet: true, bcolor: C.red },
"Map disease extent, abscesses,",
"hepatic involvement, fistulae",
{ text: "4. Remove IUD if present", bold: true, bullet: true, bcolor: C.red },
], C4X + 0.1, ROW1_Y + 0.33, COL_W - 0.18, ROW1_H - 0.38);
// ══════════════════════════════════════════════════════════════
// ROW 2: Diagnosis | Treatment | Differentials
// (wider cards in 3-col layout)
// ══════════════════════════════════════════════════════════════
const ROW2_Y = 1.13 + ROW1_H + GAP;
const ROW2_H = 7.5 - ROW2_Y - 0.22;
// Widths: Diagnosis 3.2, Treatment 4.5, Differentials 5.1
const D1W = 3.2, D2W = 4.65, D3W = 5.0;
const D1X = GAP;
const D2X = GAP * 2 + D1W;
const D3X = GAP * 3 + D1W + D2W;
// ── Diagnosis card ────────────────────────────────────────────
sectionCard(D1X, ROW2_Y, D1W, ROW2_H, "▸ LABORATORY DIAGNOSIS", C.amber);
cardText([
{ text: "Specimen collection", bold: true, bullet: false, color: C.amber, space: 4 },
{ text: "Collect large amount of tissue/pus", bullet: true },
{ text: "Sulfur granule: crush between glass slides", bullet: true },
{ text: "Gram stain", bold: true, bullet: false, color: C.amber, space: 4 },
{ text: "Thin gram+ branching rods at granule periphery", bullet: true },
{ text: "Culture (anaerobic)", bold: true, bullet: false, color: C.amber, space: 4 },
{ text: "Slow growing — up to 2 weeks", bullet: true },
{ text: "Brain-heart infusion blood agar, 37°C", bullet: true },
{ text: "Molar tooth colony morphology", bullet: true },
{ text: "Histopathology", bold: true, bullet: false, color: C.amber, space: 4 },
{ text: "Granulomatous inflammation", bullet: true },
{ text: "Characteristic sulfur granules on H&E", bullet: true },
{ text: "Pap smear", bold: true, bullet: false, color: C.amber, space: 4 },
{ text: "May identify Actinomyces on cervical cytology", bullet: true },
], D1X + 0.1, ROW2_Y + 0.33, D1W - 0.18, ROW2_H - 0.38);
// ── Treatment card ────────────────────────────────────────────
sectionCard(D2X, ROW2_Y, D2W, ROW2_H, "▸ MANAGEMENT & TREATMENT", C.green);
// Treatment table-style entries
const txY = ROW2_Y + 0.38;
const txH = ROW2_H - 0.42;
// Sub-header: Antibiotics
slide.addShape(pres.shapes.RECTANGLE, {
x: D2X + 0.1, y: txY, w: D2W - 0.2, h: 0.22,
fill: { color: C.navyMid }, line: { color: C.navyMid }
});
slide.addText("ANTIBIOTICS (Penicillin = Drug of Choice)", {
x: D2X + 0.1, y: txY, w: D2W - 0.2, h: 0.22,
fontSize: 8, bold: true, color: C.green, align: "left", valign: "middle",
margin: 4, fontFace: "Calibri"
});
const txRows = [
{ label: "Penicillin G IV", val: "10–20 MU/day × 4–6 weeks", color: C.offWhite },
{ label: "Then oral penicillin", val: "4–6 g/day × 6–12 months total", color: C.offWhite },
{ label: "Alternatives", val: "Ampicillin, Amoxicillin, Clindamycin,\nErythromycin, Ceftriaxone", color: C.offWhite },
{ label: "⚠ AVOID", val: "Metronidazole (most species resistant)\nTetracyclines (variable)", color: C.red },
];
txRows.forEach((row, i) => {
const ry = txY + 0.25 + i * 0.52;
slide.addShape(pres.shapes.RECTANGLE, {
x: D2X + 0.1, y: ry, w: 1.4, h: 0.46,
fill: { color: C.cardLight }, line: { color: C.cardLight }
});
slide.addText(row.label, {
x: D2X + 0.1, y: ry, w: 1.4, h: 0.46,
fontSize: 8.5, bold: true, color: C.amber, align: "left", valign: "middle",
margin: 4, fontFace: "Calibri"
});
slide.addText(row.val, {
x: D2X + 1.55, y: ry, w: D2W - 1.65, h: 0.46,
fontSize: 8.5, bold: false, color: row.color, align: "left", valign: "middle",
margin: 2, fontFace: "Calibri"
});
// divider
if (i < txRows.length - 1) {
slide.addShape(pres.shapes.RECTANGLE, {
x: D2X + 0.1, y: ry + 0.46, w: D2W - 0.2, h: 0.06,
fill: { color: C.navyMid }, line: { color: C.navyMid }
});
}
});
// Surgery section
const surgY = txY + 0.25 + txRows.length * 0.58;
slide.addShape(pres.shapes.RECTANGLE, {
x: D2X + 0.1, y: surgY, w: D2W - 0.2, h: 0.22,
fill: { color: C.navyMid }, line: { color: C.navyMid }
});
slide.addText("SURGERY (when needed)", {
x: D2X + 0.1, y: surgY, w: D2W - 0.2, h: 0.22,
fontSize: 8, bold: true, color: C.green, align: "left", valign: "middle",
margin: 4, fontFace: "Calibri"
});
cardText([
"Drainage of localized abscess",
"Debridement of devitalized tissue",
"NOT required if diagnosed early — antibiotics alone often sufficient",
{ text: "Suspect undrained focus if no response after 4–12 months", color: C.red, bold: true, bullet: true }
], D2X + 0.1, surgY + 0.25, D2W - 0.2, txH - (surgY - txY));
// ── Differentials card ─────────────────────────────────────────
sectionCard(D3X, ROW2_Y, D3W, ROW2_H, "▸ KEY DIFFERENTIALS & WHY BIOPSY IS CRITICAL", C.lightBlue);
const diffs = [
{
dx: "Uterine / Pelvic Malignancy",
sub: "(sarcoma, carcinoma)",
features: "No sulfur granules · Sinus tracts uncommon · Biopsy → malignant cells",
tag: "Ruled out by biopsy",
tagColor: C.red
},
{
dx: "Pelvic Tuberculosis",
sub: "(M. tuberculosis)",
features: "Caseating granulomas on histology · AFB+ · Mantoux / IGRA positive · Sterile pus",
tag: "AFB stain + culture",
tagColor: C.amber
},
{
dx: "Nocardiosis",
sub: "(Nocardia spp.)",
features: "Aerobic · Partially acid-fast · Immunosuppressed host · Pulmonary involvement common",
tag: "Modified acid-fast stain",
tagColor: C.teal
},
{
dx: "Fungal Mycetoma",
sub: "(Madurella, etc.)",
features: "Grains present but in subcutaneous tissue · Lower limb predominant",
tag: "Histology + culture",
tagColor: C.teal
},
{
dx: "Crohn's with Fistula",
sub: "(IBD-related)",
features: "Transmural inflammation on histology · IBD history · Colonoscopy findings",
tag: "Colonoscopy + biopsy",
tagColor: C.lightBlue
},
];
diffs.forEach((d, i) => {
const ry = ROW2_Y + 0.35 + i * 0.64;
// row bg
slide.addShape(pres.shapes.RECTANGLE, {
x: D3X + 0.1, y: ry, w: D3W - 0.2, h: 0.58,
fill: { color: C.navyMid }, line: { color: C.cardLight, width: 0.5 }
});
// diagnosis name
slide.addText([
{ text: d.dx + " ", options: { bold: true, fontSize: 9.5, color: C.offWhite, fontFace: "Calibri" } },
{ text: d.sub, options: { bold: false, italic: true, fontSize: 8.5, color: C.mutedText, fontFace: "Calibri" } },
], { x: D3X + 0.18, y: ry + 0.02, w: D3W - 1.0, h: 0.22, valign: "top", margin: 0 });
// features
slide.addText(d.features, {
x: D3X + 0.18, y: ry + 0.24, w: D3W - 1.1, h: 0.3,
fontSize: 8, color: C.mutedText, align: "left", valign: "top",
margin: 0, fontFace: "Calibri", italic: false
});
// tag badge
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: D3X + D3W - 0.9, y: ry + 0.08, w: 0.75, h: 0.26,
fill: { color: d.tagColor }, line: { color: d.tagColor }, rectRadius: 0.04
});
slide.addText(d.tag, {
x: D3X + D3W - 0.9, y: ry + 0.08, w: 0.75, h: 0.26,
fontSize: 6.5, bold: true, color: C.navy, align: "center", valign: "middle",
fontFace: "Calibri"
});
});
// Key message banner
const kmY = ROW2_Y + 0.35 + diffs.length * 0.64 + 0.06;
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: D3X + 0.1, y: kmY, w: D3W - 0.2, h: 0.36,
fill: { color: C.amber }, line: { color: C.amberDark }, rectRadius: 0.06
});
slide.addText([
{ text: "⚠ KEY: ", options: { bold: true, fontSize: 9, color: C.navy, fontFace: "Calibri" } },
{ text: "Actinomycosis mimics malignancy on MRI. Biopsy + anaerobic culture before surgery prevents unnecessary radical resection.", options: { bold: false, fontSize: 8.5, color: C.navy, fontFace: "Calibri" } }
], { x: D3X + 0.18, y: kmY, w: D3W - 0.35, h: 0.36, valign: "middle", margin: 0 });
// ══════════════════════════════════════════════════════════════
// FOOTER
// ══════════════════════════════════════════════════════════════
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 7.3, w: 13.3, h: 0.2,
fill: { color: C.navyMid }, line: { color: C.navyMid }
});
slide.addText([
{ text: "Sources: ", options: { bold: true, fontSize: 7.5, color: C.amber, fontFace: "Calibri" } },
{ text: "Medical Microbiology 9e (Clinical Case 31.1) · Andrews' Diseases of the Skin · PMID: 40318675 (Lancet Infect Dis, 2025) | ", options: { fontSize: 7, color: C.mutedText, fontFace: "Calibri" } },
{ text: "Orris Medical AI · April 2026", options: { fontSize: 7, color: C.mutedText, italic: true, fontFace: "Calibri" } }
], { x: 0.2, y: 7.3, w: 12.9, h: 0.2, valign: "middle", margin: 0 });
// ══════════════════════════════════════════════════════════════
// WRITE FILE
// ══════════════════════════════════════════════════════════════
pres.writeFile({ fileName: "/home/daytona/workspace/actinomycosis-poster/Pelvic_Actinomycosis_Poster.pptx" })
.then(() => console.log("✅ Poster saved."))
.catch(e => { console.error("❌ Error:", e); process.exit(1); });
cd /home/daytona/workspace/actinomycosis-poster && node poster.js 2>&1
node -e "const p = require('pptxgenjs'); const pres = new p(); console.log(Object.keys(pres.shapes).filter(k => k.includes('ELLIPSE') || k.includes('CIRCLE') || k.includes('RECT') || k.includes('ROUND')).join(', '))"
~/actinomycosis-poster/poster.js
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/actinomycosis-poster/poster.js'
cd /home/daytona/workspace/actinomycosis-poster && node poster.js 2>&1
| Panel | Content |
|---|---|
| Classic Presentation | Sinus tracts, pelvic mass on MRI, constitutional symptoms, chronic course |
| The Pathogen | Actinomyces israelii, sulfur granules, Splendore-Hoeppli phenomenon, normal flora sites |
| Risk Factors | IUD use, prior pelvic surgery, dental hygiene, immunosuppression |
| Immediate Next Steps | Granule Gram stain → CT-guided biopsy → contrast CT → IUD removal |
| Laboratory Diagnosis | Specimen collection, Gram stain, anaerobic culture, histopathology, Pap smear |
| Management & Treatment | Penicillin G IV → oral regimen, alternatives, surgery indications |
| Key Differentials | Malignancy, TB, Nocardiosis, Mycetoma, Crohn's — each with distinguishing badge |
Pelvic Actinomycosis Poster
Presentation · PPTX