Pemphigus vulgaris

Reading File
Finding Sources
Finding Sources
Searching PubMed

"pemphigus vulgaris"[MeSH Terms] AND treatment

Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Loading Image
Loading Image
Reading File
Loading Image
I now have comprehensive content from multiple authoritative textbooks. Let me compile the full answer.

Pemphigus Vulgaris

Pemphigus vulgaris (PV) is a severe, potentially fatal autoimmune blistering disease of the skin and mucous membranes, characterized by intraepidermal blister formation due to acantholysis. It is the most common and most serious form within the pemphigus group.

Clinical Presentation

Flaccid bulla and erosion of pemphigus vulgaris on skin
Fig. 21.1 Pemphigus vulgaris - flaccid bulla with peripheral erosion. (Andrews' Diseases of the Skin)
Widespread pemphigus vulgaris with extensive skin erosions
Fig. 21.4 Widespread pemphigus vulgaris with massive skin erosions and denudation. (Andrews' Diseases of the Skin)
Oral pemphigus vulgaris - gingival erosion
Fig. 21.2 Oral pemphigus vulgaris - painful erosion of the gingival mucosa. (Andrews' Diseases of the Skin)
PV is divided into two subgroups:
  1. Mucosal-dominant type - mucosal erosions with minimal skin involvement
  2. Mucocutaneous type - extensive skin blisters and erosions in addition to mucosal involvement

Mucosal Lesions

Essentially all patients develop painful erosions of the oral mucosa. In 60% of cases, oral lesions are the first sign. Intact blisters are rarely seen because they are so fragile. Most common sites are the buccal and palatine mucosae. Lesions can extend to:
  • Vermilion lip (hemorrhagic crusts)
  • Throat (hoarseness, dysphagia)
  • Esophagus (sloughing of its entire lining - esophagitis dissecans superficialis)
  • Conjunctivae, nasal mucosa, vagina, labia, penis, anus
The mucosa specifically lacks desmoglein 1 expression and depends entirely on desmoglein 3, which is why mucosal disease can remain active even when skin disease appears controlled.

Cutaneous Lesions

The primary skin lesion is a flaccid, thin-walled, easily ruptured blister arising on normal-appearing skin or erythematous bases. Key features:
  • Blisters arise anywhere on the body surface
  • Fluid is initially clear, may become hemorrhagic, turbid, or seropurulent
  • Blisters rupture to form painful erosions that ooze and bleed easily
  • Erosions become large and generalized, partially covered with crusts with little tendency to heal
  • Healed lesions leave hyperpigmented patches without scarring
  • Pruritus is uncommon

Clinical Signs

SignDescription
Nikolsky signLateral shearing of intact epidermis from dermis with slight tangential pressure
Asboe-Hansen sign (Nikolsky II)Gentle pressure on an intact bulla forces fluid to spread laterally under adjacent skin
Without treatment, PV can be fatal due to loss of epidermal barrier function, leading to fluid/electrolyte loss and secondary bacterial sepsis.

Epidemiology

  • Occurs equally in men and women
  • Onset typically in the 5th and 6th decades
  • Rare in young persons
  • Higher incidence in Jewish (especially Ashkenazi) and Mediterranean populations
  • Israel has among the highest incidences worldwide
  • Before corticosteroids: frequently fatal; now, morbidity is largely treatment-related

Pathogenesis

The autoantigen is desmoglein (Dsg), a transmembrane desmosomal adhesion molecule (cadherin family). PV antibodies target:
  • Anti-Dsg3 alone → mucosal-dominant disease (mucosa lacks Dsg1 to compensate)
  • Anti-Dsg1 + Anti-Dsg3 → mucocutaneous disease (correlates with skin involvement)
Pathogenic mechanism:
  • Autoantibodies (predominantly IgG4, also IgG1) bind to Dsg3 on the keratinocyte surface
  • This disrupts desmosomal adhesion between keratinocytes, causing acantholysis
  • Complement, inflammatory cells, and plasminogen activator contribute to blister formation
  • T cells (predominantly CD4+, Th2 cytokine profile; also Th1 in chronic disease) drive antibody production
  • IgG is found in both involved and clinically normal skin; C3 deposits heavier in acantholytic areas
Genetics: Strong HLA association - HLA-DRB1, HLA-DR4, HLA-DR6, HLA-DQ. Ashkenazi Jews have ~3x elevated risk vs. Arab patients.
Drug-induced PV: Penicillamine, captopril, enalapril, penicillin, nifedipine, piroxicam, rifampicin (drugs containing sulfhydryl or amide groups). Usually resolves on drug withdrawal. Only 10-15% of drug-induced cases have oral lesions.
Associations: Myasthenia gravis, thymoma, ulcerative colitis (elevated rate).

Histopathology

The hallmark is suprabasal acantholysis with intraepidermal blister formation:
  • Acantholytic cells are round with no intercellular bridges
  • "Tombstone row" appearance - basal keratinocytes remain attached to the basement membrane beneath the blister (the cells appear as tombstones)
  • Dermal papillae maintain their outline and often protrude into the blister cavity
  • Blister cavity contains few inflammatory cells (eosinophils); moderate perivascular mononuclear infiltrate with eosinophils in dermis
  • Early lesions may show eosinophilic spongiosis without visible acantholysis
Note: In oral biopsies, the blister roof is often absent because it ruptures before biopsy. Diagnosis is still made by the location of the split and "tombstone" basal cells.

Immunofluorescence and Diagnosis

TestFinding in PV
Direct IF (DIF)IgG (± C3) deposited on the surface of keratinocytes in an intercellular "chicken wire" pattern - perilesional skin or plucked hairs
Indirect IF (IIF)Circulating IgG in intercellular pattern; monkey esophagus is the ideal substrate; positive in 80-90% of patients
ELISAAnti-Dsg3 (mucosal-dominant type); Anti-Dsg1 + Anti-Dsg3 (mucocutaneous type)
  • DIF may remain positive for years after clinical remission
  • Conversion of DIF to negative predicts sustained remission after withdrawal of therapy
  • Disease activity scoring tools: ABSIS, PVAS, PDAI

Treatment

PV warrants aggressive immunosuppressive treatment. Evidence is largely from open trials and clinical experience.

Topical Treatment

  • Prolonged daily baths to remove crusts
  • Silver sulfadiazine 1% (Silvadene) for limited disease
  • Potent topical corticosteroids or topical tacrolimus for limited disease
  • Oral ulcer pain relief: viscous lidocaine, diphenhydramine/simethicone mixture, antiseptic mouthwashes

Systemic Treatment

1. Corticosteroids (first-line)
  • Prednisone 1 mg/kg/day as starting dose; if inadequate after 4-8 weeks, increase to 1 mg/kg twice daily or up to 100-150 mg/day
  • High doses associated with significant morbidity; adjuvant therapy should be started early
  • IV pulse methylprednisolone 1 g/day is used for severe refractory disease
  • Start calcium, vitamin D, weight-bearing exercise, and bisphosphonate therapy early
2. Rituximab (anti-CD20 monoclonal antibody)
  • Now considered appropriate first-line therapy for patients with severe disease by many experts
  • Some combine rituximab with IVIG
3. Adjuvant Steroid-Sparing Agents
  • Azathioprine
  • Mycophenolate mofetil
  • Cyclophosphamide (including imunoablative high-dose regimens)
  • Dapsone (also provides some Pneumocystis prophylaxis)
  • Methotrexate
  • Cyclosporine
4. Other Therapies
  • IVIG (intravenous immunoglobulin) - effective, often combined with rituximab
  • Plasmapheresis (to reduce circulating antibody titers)
  • Tetracycline + niacinamide (mild disease)
Monitoring: Antibody titers fall with effective treatment; DIF conversion to negative is a favorable prognostic indicator.

Prognosis

  • Before corticosteroids: mortality ~75%
  • Modern era: mortality largely from treatment complications (infection, steroid-induced diabetes, osteoporosis, sepsis)
  • Prognosis is more favorable with earlier diagnosis and treatment initiation
  • Likelihood of complete remission correlates with younger age of onset and absence of initial mucosal involvement

Differential Diagnosis

ConditionKey Distinguishing Feature
Bullous pemphigoidTense (not flaccid) blisters; subepidermal split; anti-BP180/BP230 antibodies; DIF shows linear IgG at BMZ
Paraneoplastic pemphigusAssociated malignancy (lymphoma); anti-envoplakin/periplakin/desmoplakin antibodies
Mucous membrane pemphigoidScarring; subepithelial blisters; linear IgG/IgA at BMZ
Erythema multiforme/SJSTargetoid lesions; epidermal necrosis; not acantholysis
Herpetic gingivostomatitisViral prodrome; Tzanck smear positive; HSV serology

Sources: Andrews' Diseases of the Skin, pp. 527-530 | Dermatology 2-Volume Set 5e, pp. 617-618 | Fitzpatrick's Dermatology, p. 939

Make power point slide

Reading File
Reading File
Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/pemphigus-pptx

Writing File

~/pemphigus-pptx/make_pptx.js

const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");

// ── Fetch clinical images ──────────────────────────────────────────────────
const imageUrls = [
  "https://cdn.orris.care/cdss_images/6af16bd92697838ed5dbba2893b5c3a5e381dda19ede65e575b409689c87eed8.png", // skin lesion
  "https://cdn.orris.care/cdss_images/3a807df59032be3103f9b7fdf19459923d63253e7cbdce57c6f5440915bdbdbf.png", // oral lesion
  "https://cdn.orris.care/cdss_images/e71715d927dc7fac97dd0116ba6862abc95b634561c617252b45c93eff285f93.png", // widespread
];

let imgs = [];
try {
  const raw = execSync(
    `node /home/daytona/skills/shared/scripts/fetch_images.js ${imageUrls.map(u => `"${u}"`).join(" ")}`
  ).toString();
  imgs = JSON.parse(raw);
} catch (e) {
  console.error("Image fetch failed:", e.message);
  imgs = imageUrls.map(() => ({ base64: null, error: "fetch failed" }));
}

// ── Color palette (medical deep red + dark slate) ──────────────────────────
const C = {
  darkBg:    "1A1F2E",   // dark navy - title/section slides
  accentRed: "C0392B",   // deep crimson accent
  accentGold:"E67E22",   // warm gold for highlights
  white:     "FFFFFF",
  lightGray: "F4F5F7",
  midGray:   "BDC3C7",
  textDark:  "2C3E50",
  cardBg:    "FFFFFF",
  greenOk:   "27AE60",
  blueInfo:  "2980B9",
};

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Pemphigus Vulgaris";
pres.author = "Medical Education";

// ─── Helper: section header bar ───────────────────────────────────────────
function sectionBar(slide, text) {
  slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.55, w: 10, h: 0.06, fill: { color: C.accentRed }, line: { color: C.accentRed } });
  slide.addText(text.toUpperCase(), {
    x: 0.35, y: 0.1, w: 9.3, h: 0.45, fontSize: 11, bold: true, color: C.accentRed,
    charSpacing: 3, valign: "middle",
  });
}

// ─── Helper: card box ─────────────────────────────────────────────────────
function card(slide, x, y, w, h, fillColor = C.lightGray) {
  slide.addShape(pres.shapes.RECTANGLE, {
    x, y, w, h,
    fill: { color: fillColor },
    line: { color: "E0E4E8", width: 0.5 },
    shadow: { type: "outer", color: "000000", blur: 8, offset: 2, angle: 135, opacity: 0.10 },
  });
}

// ─── Helper: accent dot ───────────────────────────────────────────────────
function dot(slide, x, y, color = C.accentRed) {
  slide.addShape(pres.shapes.OVAL, { x, y, w: 0.12, h: 0.12, fill: { color }, line: { color } });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  // dark background
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.darkBg }, line: { color: C.darkBg } });
  // red accent stripe left
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.25, h: 5.625, fill: { color: C.accentRed }, line: { color: C.accentRed } });
  // red accent stripe bottom
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.15, w: 10, h: 0.475, fill: { color: C.accentRed }, line: { color: C.accentRed } });

  // If skin lesion image available, place as background strip
  if (imgs[2] && !imgs[2].error) {
    s.addImage({ data: imgs[2].base64, x: 5.5, y: 0, w: 4.5, h: 5.15, transparency: 45 });
    // dark overlay over image
    s.addShape(pres.shapes.RECTANGLE, { x: 5.5, y: 0, w: 4.5, h: 5.15, fill: { color: "1A1F2E", transparency: 40 }, line: { color: "1A1F2E", transparency: 100 } });
  }

  s.addText("PEMPHIGUS VULGARIS", {
    x: 0.5, y: 1.1, w: 5.5, h: 1.1, fontSize: 36, bold: true, color: C.white,
    fontFace: "Calibri", charSpacing: 1,
  });
  s.addText("Autoimmune Blistering Disease", {
    x: 0.5, y: 2.2, w: 5.5, h: 0.5, fontSize: 18, color: C.accentGold, fontFace: "Calibri", italic: true,
  });
  s.addShape(pres.shapes.RECTANGLE, { x: 0.5, y: 2.85, w: 1.6, h: 0.06, fill: { color: C.accentRed }, line: { color: C.accentRed } });

  s.addText([
    { text: "Dermatology  |  Immunology  |  Clinical Management", options: { color: C.midGray, fontSize: 12 } },
  ], { x: 0.5, y: 3.1, w: 6.5, h: 0.4 });

  // bottom bar text
  s.addText("Based on: Andrews' Diseases of the Skin · Fitzpatrick's Dermatology · Dermatology 5e", {
    x: 0.3, y: 5.18, w: 9.4, h: 0.38, fontSize: 9, color: "FFFFFF", align: "center", valign: "middle",
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 2 — OVERVIEW / AT-A-GLANCE
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.lightGray }, line: { color: C.lightGray } });
  sectionBar(s, "Overview");

  s.addText("At a Glance", { x: 0.35, y: 0.6, w: 9, h: 0.55, fontSize: 22, bold: true, color: C.textDark });

  const items = [
    { icon: "⚡", label: "Type", val: "Autoimmune intraepidermal blistering disease" },
    { icon: "🎯", label: "Antigen", val: "Desmoglein 3 (Dsg3) ± Desmoglein 1 (Dsg1)" },
    { icon: "🔬", label: "Histology", val: "Suprabasal acantholysis — 'tombstone row' of basal cells" },
    { icon: "💉", label: "Antibody", val: "IgG autoantibodies (primarily IgG4) against keratinocyte surface" },
    { icon: "📍", label: "Blister level", val: "Suprabasal (above basal cell layer)" },
    { icon: "👤", label: "Demographics", val: "5th–6th decade; equal sex; Jewish & Mediterranean predisposition" },
    { icon: "⚠️", label: "Key sign", val: "Nikolsky sign positive; Asboe-Hansen sign (Nikolsky II)" },
    { icon: "💊", label: "Treatment", val: "Corticosteroids + Rituximab (anti-CD20) ± azathioprine/MMF" },
  ];

  const cols = [[0, 1, 2, 3], [4, 5, 6, 7]];
  cols.forEach((idxs, ci) => {
    idxs.forEach((idx, ri) => {
      const item = items[idx];
      const x = 0.3 + ci * 4.9;
      const y = 1.25 + ri * 1.0;
      card(s, x, y, 4.6, 0.85, C.cardBg);
      s.addText(item.icon + "  " + item.label.toUpperCase(), {
        x: x + 0.15, y: y + 0.07, w: 4.3, h: 0.28, fontSize: 8.5, bold: true, color: C.accentRed, charSpacing: 1,
      });
      s.addText(item.val, {
        x: x + 0.15, y: y + 0.35, w: 4.3, h: 0.42, fontSize: 10.5, color: C.textDark, valign: "top",
      });
    });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 3 — CLINICAL FEATURES (with images)
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.white }, line: { color: C.white } });
  sectionBar(s, "Clinical Features");

  s.addText("Clinical Presentation", { x: 0.35, y: 0.6, w: 6, h: 0.55, fontSize: 22, bold: true, color: C.textDark });

  // Left: text bullets
  const leftCols = [
    { head: "Mucous Membranes (ALL patients)", color: C.accentRed, bullets: [
      "Painful oral erosions — first sign in 60% of cases",
      "Buccal & palatine mucosa most common",
      "Extends to lips, throat (hoarseness), esophagus",
      "Conjunctivae, nasal, vaginal, penile, anal involvement",
    ]},
    { head: "Skin Lesions", color: C.blueInfo, bullets: [
      "Flaccid, thin-walled easily ruptured bullae",
      "Arise on normal or erythematous skin",
      "Fluid: initially clear → hemorrhagic/turbid",
      "Large, painful erosions; crust-covered; slow to heal",
      "Heal with post-inflammatory hyperpigmentation — NO scarring",
    ]},
  ];

  leftCols.forEach((col, ci) => {
    const y = 1.28 + ci * 2.15;
    s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y, w: 5.65, h: 0.32, fill: { color: col.color }, line: { color: col.color } });
    s.addText(col.head, { x: 0.4, y, w: 5.5, h: 0.32, fontSize: 10, bold: true, color: C.white, valign: "middle" });
    s.addText(col.bullets.map(b => ({ text: b, options: { bullet: { type: "bullet", indent: 15 }, breakLine: true, fontSize: 10, color: C.textDark } })),
      { x: 0.4, y: y + 0.34, w: 5.5, h: col.bullets.length * 0.36 + 0.1 });
  });

  // Right: images
  const imgX = 6.2;
  if (imgs[0] && !imgs[0].error) {
    s.addImage({ data: imgs[0].base64, x: imgX, y: 1.1, w: 3.5, h: 2.2, rounding: false });
    s.addText("Flaccid bulla — skin", { x: imgX, y: 3.3, w: 3.5, h: 0.25, fontSize: 8, color: C.midGray, align: "center", italic: true });
  }
  if (imgs[1] && !imgs[1].error) {
    s.addImage({ data: imgs[1].base64, x: imgX, y: 3.6, w: 3.5, h: 1.8 });
    s.addText("Oral erosion — gingival", { x: imgX, y: 5.35, w: 3.5, h: 0.2, fontSize: 8, color: C.midGray, align: "center", italic: true });
  }
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 4 — PATHOGENESIS
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.darkBg }, line: { color: C.darkBg } });
  sectionBar(s, "Pathogenesis");
  // white bar for heading
  s.addText("Immunopathogenesis", { x: 0.35, y: 0.6, w: 9, h: 0.55, fontSize: 22, bold: true, color: C.white });

  // Desmoglein compensation theory boxes
  const theory = [
    { title: "Anti-Dsg3 ONLY", sub: "Mucosal-dominant disease\n(Mucosa lacks Dsg1 → cannot compensate)", col: C.accentRed },
    { title: "Anti-Dsg3 + Anti-Dsg1", sub: "Mucocutaneous disease\n(Both mucosa & skin affected)", col: C.accentGold },
  ];
  theory.forEach((t, i) => {
    const x = 0.4 + i * 4.7;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y: 1.28, w: 4.3, h: 1.05, fill: { color: t.col }, line: { color: t.col }, rectRadius: 0.08 });
    s.addText(t.title, { x: x + 0.15, y: 1.32, w: 4, h: 0.35, fontSize: 13, bold: true, color: C.white });
    s.addText(t.sub, { x: x + 0.15, y: 1.65, w: 4, h: 0.6, fontSize: 10, color: C.white });
  });

  // Mechanism flow
  const steps = [
    "IgG4 autoantibodies bind Dsg3 on keratinocyte surface",
    "Desmosomal adhesion disrupted → acantholysis",
    "Complement activation + plasminogen activator",
    "Basal cells detach from each other (not from BMZ)",
    "Suprabasal blister forms ('tombstone row' remains)",
  ];
  s.addText("Mechanism of Blister Formation", { x: 0.4, y: 2.5, w: 9, h: 0.35, fontSize: 12, bold: true, color: C.accentGold });
  steps.forEach((st, i) => {
    const x = 0.4 + i * 1.87;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y: 2.9, w: 1.75, h: 0.9, fill: { color: "243044" }, line: { color: C.accentRed, width: 0.75 }, rectRadius: 0.06 });
    s.addText(`${i + 1}`, { x: x + 0.05, y: 2.9, w: 0.35, h: 0.9, fontSize: 20, bold: true, color: C.accentRed, valign: "middle" });
    s.addText(st, { x: x + 0.38, y: 2.93, w: 1.32, h: 0.84, fontSize: 8.5, color: C.white, valign: "middle" });
    if (i < 4) {
      s.addText("→", { x: x + 1.77, y: 3.2, w: 0.15, h: 0.4, fontSize: 14, color: C.accentRed, valign: "middle" });
    }
  });

  // T cell involvement
  const tcell = [
    { t: "CD4+ T cells (Th2 dominant)", c: "Drive autoantibody production" },
    { t: "Th1 cells", c: "Chronic disease maintenance" },
    { t: "HLA-DRB1 / DR4 / DR6", c: "Genetic susceptibility" },
  ];
  s.addText("Contributing Factors", { x: 0.4, y: 4.0, w: 9, h: 0.3, fontSize: 12, bold: true, color: C.accentGold });
  tcell.forEach((item, i) => {
    const x = 0.4 + i * 3.2;
    s.addShape(pres.shapes.RECTANGLE, { x, y: 4.35, w: 3.0, h: 0.85, fill: { color: "243044" }, line: { color: "3D5A80", width: 0.5 } });
    s.addText(item.t, { x: x + 0.1, y: 4.38, w: 2.8, h: 0.38, fontSize: 10, bold: true, color: C.white });
    s.addText(item.c, { x: x + 0.1, y: 4.74, w: 2.8, h: 0.38, fontSize: 9, color: C.midGray });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 5 — HISTOPATHOLOGY & IMMUNOFLUORESCENCE
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.lightGray }, line: { color: C.lightGray } });
  sectionBar(s, "Histopathology & Immunofluorescence");
  s.addText("Diagnosis: Histology & Immunofluorescence", { x: 0.35, y: 0.6, w: 9, h: 0.55, fontSize: 20, bold: true, color: C.textDark });

  // Left: Histology
  card(s, 0.3, 1.25, 4.5, 4.1, C.cardBg);
  s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 1.25, w: 4.5, h: 0.35, fill: { color: C.accentRed }, line: { color: C.accentRed } });
  s.addText("HISTOPATHOLOGY", { x: 0.4, y: 1.25, w: 4.3, h: 0.35, fontSize: 10, bold: true, color: C.white, valign: "middle", charSpacing: 2 });

  const histoItems = [
    ["Blister level", "Suprabasal — just above basal cell layer"],
    ["Key feature", "Acantholysis — loss of intercellular adhesion"],
    ["Tombstone sign", "Basal cells remain attached to basement membrane, protruding upward"],
    ["Acantholytic cells", "Round, no intercellular bridges"],
    ["Dermis", "Perivascular mononuclear infiltrate with eosinophils"],
    ["Early lesions", "Eosinophilic spongiosis (without frank acantholysis)"],
    ["Oral biopsy", "Blister roof often absent; split level + acantholysis diagnostic"],
  ];
  histoItems.forEach((row, i) => {
    const y = 1.68 + i * 0.49;
    s.addText(row[0] + ":", { x: 0.45, y, w: 1.4, h: 0.44, fontSize: 9.5, bold: true, color: C.accentRed, valign: "top" });
    s.addText(row[1], { x: 1.85, y, w: 2.8, h: 0.44, fontSize: 9.5, color: C.textDark, valign: "top" });
  });

  // Right: IF table
  card(s, 5.0, 1.25, 4.7, 4.1, C.cardBg);
  s.addShape(pres.shapes.RECTANGLE, { x: 5.0, y: 1.25, w: 4.7, h: 0.35, fill: { color: C.blueInfo }, line: { color: C.blueInfo } });
  s.addText("IMMUNOFLUORESCENCE", { x: 5.1, y: 1.25, w: 4.5, h: 0.35, fontSize: 10, bold: true, color: C.white, valign: "middle", charSpacing: 2 });

  const ifRows = [
    { test: "Direct IF (DIF)", finding: "IgG (± C3) on keratinocyte surface — intercellular \"chicken wire\" pattern", note: "Perilesional skin or plucked hairs" },
    { test: "Indirect IF (IIF)", finding: "Circulating IgG intercellular pattern", note: "Positive in 80–90%; monkey esophagus substrate preferred" },
    { test: "ELISA", finding: "Anti-Dsg3 alone = mucosal type\nAnti-Dsg3 + Dsg1 = mucocutaneous type", note: "Quantitative; titer correlates with disease activity" },
    { test: "DIF → negative", finding: "Predicts sustained remission after withdrawal of therapy", note: "Key prognostic indicator" },
  ];
  ifRows.forEach((row, i) => {
    const y = 1.68 + i * 0.88;
    s.addShape(pres.shapes.RECTANGLE, { x: 5.05, y, w: 4.55, h: 0.82, fill: { color: i % 2 === 0 ? "EBF5FB" : C.white }, line: { color: "D0E8F2", width: 0.5 } });
    s.addText(row.test, { x: 5.12, y: y + 0.04, w: 4.3, h: 0.26, fontSize: 9.5, bold: true, color: C.blueInfo });
    s.addText(row.finding, { x: 5.12, y: y + 0.29, w: 4.3, h: 0.3, fontSize: 9, color: C.textDark });
    s.addText("→ " + row.note, { x: 5.12, y: y + 0.57, w: 4.3, h: 0.22, fontSize: 8, color: "7F8C8D", italic: true });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 6 — CLINICAL SIGNS & DIFFERENTIAL DIAGNOSIS
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.white }, line: { color: C.white } });
  sectionBar(s, "Clinical Signs & Differential Diagnosis");
  s.addText("Signs & Differential Diagnosis", { x: 0.35, y: 0.6, w: 9, h: 0.55, fontSize: 20, bold: true, color: C.textDark });

  // Clinical signs
  const signs = [
    { name: "Nikolsky Sign", desc: "Slight lateral pressure on intact skin → epidermis shears away from dermis leaving moist surface", color: C.accentRed },
    { name: "Asboe-Hansen Sign", desc: "Pressure on intact bulla → fluid spreads laterally under adjacent skin (Nikolsky II)", color: C.accentGold },
  ];
  signs.forEach((sg, i) => {
    const x = 0.3 + i * 4.85;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y: 1.25, w: 4.55, h: 1.1, fill: { color: sg.color }, line: { color: sg.color }, rectRadius: 0.08 });
    s.addText(sg.name, { x: x + 0.15, y: 1.28, w: 4.2, h: 0.4, fontSize: 13, bold: true, color: C.white });
    s.addText(sg.desc, { x: x + 0.15, y: 1.66, w: 4.2, h: 0.62, fontSize: 9.5, color: C.white });
  });

  // Differential table
  s.addText("Differential Diagnosis", { x: 0.35, y: 2.5, w: 9, h: 0.35, fontSize: 13, bold: true, color: C.textDark });

  const ddx = [
    { condition: "Bullous Pemphigoid", distinction: "Tense blisters (subepidermal); anti-BP180/BP230; linear IgG at BMZ; spares mucosa often" },
    { condition: "Mucous Membrane Pemphigoid", distinction: "Scarring mucosal lesions; subepithelial split; linear IgG/IgA at BMZ" },
    { condition: "Paraneoplastic Pemphigus", distinction: "Occult malignancy (esp. lymphoma); anti-envoplakin/periplakin; severe oral + skin" },
    { condition: "Stevens-Johnson Syndrome", distinction: "Drug trigger; targetoid lesions; epidermal necrosis (not acantholysis); fever/systemic illness" },
    { condition: "Herpetic Gingivostomatitis", distinction: "Viral prodrome; Tzanck positive; HSV serology; grouped vesicles" },
  ];
  // header
  s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 2.9, w: 9.4, h: 0.32, fill: { color: C.textDark }, line: { color: C.textDark } });
  s.addText("Condition", { x: 0.4, y: 2.9, w: 2.5, h: 0.32, fontSize: 9.5, bold: true, color: C.white, valign: "middle" });
  s.addText("Key Distinguishing Feature", { x: 3.0, y: 2.9, w: 6.6, h: 0.32, fontSize: 9.5, bold: true, color: C.white, valign: "middle" });

  ddx.forEach((row, i) => {
    const y = 3.24 + i * 0.44;
    s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y, w: 9.4, h: 0.42, fill: { color: i % 2 === 0 ? C.lightGray : C.white }, line: { color: "D0D3D4", width: 0.5 } });
    s.addText(row.condition, { x: 0.4, y: y + 0.03, w: 2.5, h: 0.36, fontSize: 9.5, bold: true, color: C.accentRed, valign: "middle" });
    s.addText(row.distinction, { x: 3.0, y: y + 0.03, w: 6.6, h: 0.36, fontSize: 9, color: C.textDark, valign: "middle" });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 7 — TREATMENT
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.lightGray }, line: { color: C.lightGray } });
  sectionBar(s, "Treatment");
  s.addText("Management of Pemphigus Vulgaris", { x: 0.35, y: 0.6, w: 9, h: 0.55, fontSize: 20, bold: true, color: C.textDark });

  // Three columns: Topical | Systemic Steroids | Adjuvants + Biologics
  const cols3 = [
    {
      title: "Topical / Supportive", color: C.greenOk,
      items: [
        "Daily baths — remove crusts, reduce odor",
        "Silver sulfadiazine 1% (limited disease)",
        "Potent topical corticosteroids",
        "Topical tacrolimus (limited disease)",
        "Viscous lidocaine / diphenhydramine mouthwash (oral pain)",
        "Antiseptic mouthwashes",
        "Wound dressings / silver nitrate gauze",
      ],
    },
    {
      title: "Systemic Steroids", color: C.accentRed,
      items: [
        "Prednisone 1 mg/kg/day — first-line",
        "↑ to split dose (1 mg/kg BID) if inadequate",
        "High doses: 100–150 mg/day if needed",
        "IV pulse methylprednisolone 1 g/day (severe)",
        "Start calcium + vitamin D + bisphosphonate early",
        "Pneumocystis prophylaxis in combination therapy",
        "Monitor antibody titers for treatment response",
      ],
    },
    {
      title: "Adjuvants & Biologics", color: C.blueInfo,
      items: [
        "Rituximab (anti-CD20) — first-line for severe PV",
        "IVIG — effective; combine with rituximab",
        "Azathioprine — steroid-sparing",
        "Mycophenolate mofetil (MMF)",
        "Cyclophosphamide (refractory disease)",
        "Dapsone — mild disease / prophylaxis",
        "Plasmapheresis — reduce circulating antibodies",
      ],
    },
  ];
  cols3.forEach((col, ci) => {
    const x = 0.28 + ci * 3.24;
    card(s, x, 1.25, 3.1, 4.2, C.cardBg);
    s.addShape(pres.shapes.RECTANGLE, { x, y: 1.25, w: 3.1, h: 0.38, fill: { color: col.color }, line: { color: col.color } });
    s.addText(col.title, { x: x + 0.1, y: 1.25, w: 2.9, h: 0.38, fontSize: 10.5, bold: true, color: C.white, valign: "middle" });
    s.addText(col.items.map((it, idx) => ({
      text: it,
      options: { bullet: { type: "bullet" }, breakLine: idx < col.items.length - 1, fontSize: 9.5, color: C.textDark },
    })), { x: x + 0.12, y: 1.68, w: 2.85, h: 3.7 });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 8 — PROGNOSIS & KEY TAKEAWAYS
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.darkBg }, line: { color: C.darkBg } });
  // accent stripe
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.2, h: 5.625, fill: { color: C.accentRed }, line: { color: C.accentRed } });

  sectionBar(s, "Prognosis & Key Takeaways");
  s.addText("Prognosis & Key Takeaways", { x: 0.4, y: 0.6, w: 9, h: 0.55, fontSize: 22, bold: true, color: C.white });

  // Prognosis boxes
  const prog = [
    { era: "Pre-Corticosteroid Era", stat: "~75%", label: "Mortality", col: C.accentRed },
    { era: "Modern Era", stat: "Low", label: "Disease Mortality\n(Treatment complications now dominate)", col: C.accentGold },
    { era: "Remission Predictor", stat: "DIF →\nNegative", label: "Sustained remission after stopping therapy", col: C.greenOk },
  ];
  prog.forEach((p, i) => {
    const x = 0.4 + i * 3.15;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y: 1.28, w: 3.0, h: 1.3, fill: { color: "243044" }, line: { color: p.col, width: 1.5 }, rectRadius: 0.08 });
    s.addText(p.era, { x: x + 0.12, y: 1.32, w: 2.75, h: 0.28, fontSize: 9, color: C.midGray });
    s.addText(p.stat, { x: x + 0.12, y: 1.6, w: 2.75, h: 0.5, fontSize: 22, bold: true, color: p.col });
    s.addText(p.label, { x: x + 0.12, y: 2.08, w: 2.75, h: 0.44, fontSize: 9, color: C.white });
  });

  // Key takeaways
  s.addText("Key Takeaways", { x: 0.4, y: 2.75, w: 9, h: 0.38, fontSize: 14, bold: true, color: C.accentGold });

  const takeaways = [
    { num: "01", text: "Oral erosions are the presenting feature in 60% — always consider PV in persistent oral ulceration unresponsive to standard treatment." },
    { num: "02", text: "Flaccid blisters + positive Nikolsky sign = intraepidermal disease. Tense blisters = think bullous pemphigoid (subepidermal)." },
    { num: "03", text: "ELISA for anti-Dsg3/Dsg1 is quantitative and tracks disease activity. DIF conversion to negative signals durable remission." },
    { num: "04", text: "Rituximab is now first-line for severe PV alongside corticosteroids. Monitor for treatment complications closely." },
    { num: "05", text: "Earlier diagnosis and earlier treatment = more favorable prognosis and higher chance of complete remission." },
  ];
  takeaways.forEach((tk, i) => {
    const y = 3.2 + i * 0.46;
    s.addShape(pres.shapes.RECTANGLE, { x: 0.4, y, w: 0.42, h: 0.38, fill: { color: C.accentRed }, line: { color: C.accentRed } });
    s.addText(tk.num, { x: 0.4, y, w: 0.42, h: 0.38, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle" });
    s.addText(tk.text, { x: 0.9, y: y + 0.02, w: 8.8, h: 0.36, fontSize: 10, color: C.white, valign: "middle" });
  });
}

// ── Write file ─────────────────────────────────────────────────────────────
const outPath = "/home/daytona/workspace/pemphigus-pptx/Pemphigus_Vulgaris.pptx";
pres.writeFile({ fileName: outPath })
  .then(() => console.log("✅ Saved:", outPath))
  .catch(err => { console.error("❌ Error:", err); process.exit(1); });
Running Command

cd /home/daytona/workspace/pemphigus-pptx && node make_pptx.js 2>&1

Running Command

cd /home/daytona/workspace/pemphigus-pptx && node -e " const {execSync} = require('child_process'); const urls = [ 'https://cdn.orris.care/cdss_images/6af16bd92697838ed5dbba2893b5c3a5e381dda19ede65e575b409689c87eed8.png', 'https://cdn.orris.care/cdss_images/3a807df59032be3103f9b7fdf19459923d63253e7cbdce57c6f5440915bdbdbf.png', 'https://cdn.orris.care/cdss_images/e71715d927dc7fac97dd0116ba6862abc95b634561c617252b45c93eff285f93.png', ]; const results = []; for (const url of urls) { try { const raw = execSync(\`node /home/daytona/skills/shared/scripts/fetch_images.js \"\${url}\"\`, {maxBuffer: 20*1024*1024}).toString(); const parsed = JSON.parse(raw); results.push(parsed[0]); console.log('OK:', url.slice(-20), parsed[0].error ? 'ERROR:'+parsed[0].error : 'base64 len='+parsed[0].base64.length); } catch(e) { results.push({url, base64: null, error: e.message}); console.log('FAIL:', e.message); } } require('fs').writeFileSync('/home/daytona/workspace/pemphigus-pptx/imgs.json', JSON.stringify(results)); console.log('Done'); " 2>&1

Editing File

~/pemphigus-pptx/make_pptx.js

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/pemphigus-pptx/make_pptx.js'
Editing File

~/pemphigus-pptx/make_pptx.js

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/pemphigus-pptx/make_pptx.js'
Running Command

cd /home/daytona/workspace/pemphigus-pptx && node make_pptx.js 2>&1

Reading File
Editing File

~/pemphigus-pptx/make_pptx.js

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/pemphigus-pptx/make_pptx.js'
Running Command

cd /home/daytona/workspace/pemphigus-pptx && node make_pptx.js 2>&1

All 3 images loaded and the file saved successfully. Here is your presentation:

Pemphigus Vulgaris

Presentation · PPTX


The deck has 8 slides with a dark navy + crimson medical color scheme:
SlideContent
1Title slide - dark background with widespread PV clinical image
2At a Glance - 8 key fact cards (type, antigen, histology, antibody, blister level, demographics, signs, treatment)
3Clinical Features - mucosal vs. skin lesions with embedded clinical photos (skin bulla + oral erosion)
4Pathogenesis - Dsg compensation theory, 5-step mechanism flow, T cell involvement
5Histopathology & Immunofluorescence - side-by-side detailed tables for DIF / IIF / ELISA
6Clinical Signs & DDx - Nikolsky/Asboe-Hansen explained + differential diagnosis table
7Treatment - 3-column layout: topical, systemic steroids, adjuvants & biologics (rituximab)
8Prognosis & Key Takeaways - mortality stats + 5 numbered clinical pearls
This is a shared conversation. Sign in to Orris to start your own chat.