1. Psoriasis 2. Scabies 3. Stevens–Johnson Syndrome (SJS) 4. Pemphigus vulgaris 5. Acne vulgaris 6. Leprosy (Hansen’s disease) 7. Syphilis 8. Lichen planus Make the ppt for mbbs professional exam

Reading File
Reading File
Reading File
Finding Sources
Searching Images

psoriasis plaque skin lesion

Clinical photography of in vivo forearm skin demonstrating classic plaque psoriasis morphology. The lesion cluster comprises erythematous to violaceous plaques with an overlying adherent silvery scale, coalescing along the extensor surface of the forearm. Adjacent skin appears mildly xerotic with visible hair and normal surrounding texture; margins are slightly raised, with hyperkeratotic borders. The pattern is characteristic of plaque-type psoriasis, though mosaic distribution may mimic eczematous dermatitis or fungal infection in some individuals. The imaging captures a single contiguous plaque complex and several smaller lesions in proximity, suitable for educational comparison with other dermatoses. If biopsy is performed, histopathology would likely reveal epidermal acanthosis, parakeratosis with neutrophilic Munro microabscesses, and irregular dermal capillary dilation; dermal inflammatory infiltrates would accompany. Clinically, this appearance implies a chronic relapsing condition requiring psoriasis-specific management, including topical corticosteroids, vitamin D analogs, calcineurin inhibitors in sensitive areas, or phototherapy and systemic agents for extensive disease. Differential diagnoses include nummular eczema, tinea corporis, seborrheic dermatitis, and pityriasis rosea variants. Diagnostic significance lies in guiding therapy, prognostication, and monitoring response to treatment. This image is relevant for dermatology education, teledermatology triage, and comparative studies of plaque psoriasis presentations. Accurate description enables coding, research indexing, and student assessment.

Clinical photography of in vivo forearm skin demonstrating classic plaque psoriasis morphology. The lesion cluster comprises erythematous to violaceous plaques with an overlying adherent silvery scale, coalescing along the extensor surface of the forearm. Adjacent skin appears mildly xerotic with visible hair and normal surrounding texture; margins are slightly raised, with hyperkeratotic borders. The pattern is characteristic of plaque-type psoriasis, though mosaic distribution may mimic eczematous dermatitis or fungal infection in some individuals. The imaging captures a single contiguous plaque complex and several smaller lesions in proximity, suitable for educational comparison with other dermatoses. If biopsy is performed, histopathology would likely reveal epidermal acanthosis, parakeratosis with neutrophilic Munro microabscesses, and irregular dermal capillary dilation; dermal inflammatory infiltrates would accompany. Clinically, this appearance implies a chronic relapsing condition requiring psoriasis-specific management, including topical corticosteroids, vitamin D analogs, calcineurin inhibitors in sensitive areas, or phototherapy and systemic agents for extensive disease. Differential diagnoses include nummular eczema, tinea corporis, seborrheic dermatitis, and pityriasis rosea variants. Diagnostic significance lies in guiding therapy, prognostication, and monitoring response to treatment. This image is relevant for dermatology education, teledermatology triage, and comparative studies of plaque psoriasis presentations. Accurate description enables coding, research indexing, and student assessment.

A clinical photograph of a localized skin lesion on the chest, identified as psoriasis in a patient with psoriatic arthritis. The image shows a well-circumscribed, oval-shaped erythematous plaque with a reddish-pink hue. The surface of the lesion exhibits fine, silvery-white scales and slight crusting, consistent with hyperkeratosis and parakeratosis. The lesion is slightly elevated above the level of the surrounding healthy skin. The borders are moderately defined but irregular, blending into the adjacent integument. The surrounding skin appears normal with natural dermatoglyphic patterns and a minor linear abrasion nearby. This image demonstrates the typical cutaneous manifestation of psoriasis, which serves as a critical diagnostic marker for differentiating types of inflammatory arthropathies, such as arthritis mutilans.

A clinical photograph of a localized skin lesion on the chest, identified as psoriasis in a patient with psoriatic arthritis. The image shows a well-circumscribed, oval-shaped erythematous plaque with a reddish-pink hue. The surface of the lesion exhibits fine, silvery-white scales and slight crusting, consistent with hyperkeratosis and parakeratosis. The lesion is slightly elevated above the level of the surrounding healthy skin. The borders are moderately defined but irregular, blending into the adjacent integument. The surrounding skin appears normal with natural dermatoglyphic patterns and a minor linear abrasion nearby. This image demonstrates the typical cutaneous manifestation of psoriasis, which serves as a critical diagnostic marker for differentiating types of inflammatory arthropathies, such as arthritis mutilans.

Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Running Command

mkdir -p /tmp/workspace/dermatology-ppt && ls /tmp/workspace/dermatology-ppt

Writing File

~/dermatology-ppt/build_ppt.py

import json, subprocess, base64
from io import BytesIO
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.util import Inches, Pt

# ── Color palette ─────────────────────────────────────────────────────────────
DARK_BLUE   = RGBColor(0x0D, 0x47, 0xA1)   # title bar / headings
MED_BLUE    = RGBColor(0x15, 0x65, 0xC0)   # accent
LIGHT_BLUE  = RGBColor(0xE3, 0xF2, 0xFD)   # slide background
WHITE       = RGBColor(0xFF, 0xFF, 0xFF)
DARK_GREY   = RGBColor(0x21, 0x21, 0x21)
MID_GREY    = RGBColor(0x42, 0x42, 0x42)
ACCENT      = RGBColor(0x00, 0x96, 0x88)   # teal accent strip

prs = Presentation()
prs.slide_width  = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]

# ── Helper: fetch one image from URL → BytesIO ─────────────────────────────────
def fetch_image_bytes(url):
    try:
        result = json.loads(subprocess.check_output(
            ["python", "/tmp/skills/shared/scripts/fetch_images.py", url],
            timeout=30
        ))
        if result and result[0].get("base64"):
            b64 = result[0]["base64"]
            if "," in b64:
                b64 = b64.split(",", 1)[1]
            return BytesIO(base64.b64decode(b64))
    except Exception as e:
        print(f"Image fetch failed for {url}: {e}")
    return None

# ── Helper: add a text box ─────────────────────────────────────────────────────
def add_text(slide, text, x, y, w, h, size=14, bold=False, color=DARK_GREY,
             align=PP_ALIGN.LEFT, italic=False, wrap=True):
    tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = wrap
    tf.margin_left = Pt(4)
    tf.margin_right = Pt(4)
    tf.margin_top = Pt(2)
    tf.margin_bottom = Pt(2)
    p = tf.paragraphs[0]
    p.alignment = align
    run = p.add_run()
    run.text = text
    run.font.size = Pt(size)
    run.font.bold = bold
    run.font.italic = italic
    run.font.color.rgb = color
    return tb

# ── Helper: filled rectangle ──────────────────────────────────────────────────
def add_rect(slide, x, y, w, h, fill_color, line_color=None):
    from pptx.util import Inches
    shape = slide.shapes.add_shape(
        1,  # MSO_SHAPE_TYPE.RECTANGLE
        Inches(x), Inches(y), Inches(w), Inches(h)
    )
    shape.fill.solid()
    shape.fill.fore_color.rgb = fill_color
    if line_color:
        shape.line.color.rgb = line_color
    else:
        shape.line.fill.background()
    return shape

# ── Helper: add bullet points ─────────────────────────────────────────────────
def add_bullets(slide, bullets, x, y, w, h, size=12.5, title=None, title_size=13,
                bg_color=None, title_color=MED_BLUE):
    from pptx.util import Pt, Inches
    from pptx.oxml.ns import qn
    from lxml import etree

    if bg_color:
        add_rect(slide, x, y, w, h, bg_color)

    tb = slide.shapes.add_textbox(Inches(x+0.08), Inches(y+0.05), Inches(w-0.16), Inches(h-0.1))
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = Pt(4)
    tf.margin_right = Pt(4)
    tf.margin_top = Pt(2)
    tf.margin_bottom = Pt(2)

    first = True
    if title:
        p = tf.paragraphs[0] if first else tf.add_paragraph()
        first = False
        p.alignment = PP_ALIGN.LEFT
        run = p.add_run()
        run.text = title
        run.font.size = Pt(title_size)
        run.font.bold = True
        run.font.color.rgb = title_color

    for b in bullets:
        p = tf.add_paragraph() if not first else tf.paragraphs[0]
        first = False
        p.alignment = PP_ALIGN.LEFT
        p.level = 0
        run = p.add_run()
        if isinstance(b, tuple):
            run.text = f"• {b[0]}"
            run.font.bold = True
            run.font.size = Pt(size)
            run.font.color.rgb = DARK_GREY
            for sub in b[1:]:
                sp = tf.add_paragraph()
                sp.level = 1
                sr = sp.add_run()
                sr.text = f"    ◦ {sub}"
                sr.font.size = Pt(size - 1)
                sr.font.color.rgb = MID_GREY
        else:
            run.text = f"• {b}"
            run.font.size = Pt(size)
            run.font.color.rgb = DARK_GREY

# ── SLIDE FACTORY ─────────────────────────────────────────────────────────────

def make_title_slide():
    slide = prs.slides.add_slide(blank)
    # Background
    add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE)
    # White strip
    add_rect(slide, 0, 4.5, 13.333, 3.0, MED_BLUE)
    # Accent bar
    add_rect(slide, 0, 4.4, 13.333, 0.12, ACCENT)

    add_text(slide, "DERMATOLOGY", 0.5, 1.0, 12.3, 1.0,
             size=22, bold=True, color=ACCENT, align=PP_ALIGN.CENTER)
    add_text(slide, "Common Skin Diseases", 0.5, 1.9, 12.3, 1.4,
             size=44, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_text(slide, "MBBS Professional Examination Preparation", 0.5, 3.5, 12.3, 0.7,
             size=18, color=RGBColor(0xBB, 0xDE, 0xFB), align=PP_ALIGN.CENTER)

    topics = "Psoriasis  •  Scabies  •  Stevens-Johnson Syndrome  •  Pemphigus Vulgaris\nAcne Vulgaris  •  Leprosy  •  Syphilis  •  Lichen Planus"
    add_text(slide, topics, 0.5, 4.7, 12.3, 1.3,
             size=14, color=WHITE, align=PP_ALIGN.CENTER, italic=True)
    add_text(slide, "Department of Dermatology, Venereology & Leprosy", 0.5, 6.2, 12.3, 0.6,
             size=13, color=RGBColor(0xBB, 0xDE, 0xFB), align=PP_ALIGN.CENTER)


def make_toc_slide():
    slide = prs.slides.add_slide(blank)
    add_rect(slide, 0, 0, 13.333, 7.5, RGBColor(0xF5, 0xF5, 0xF5))
    add_rect(slide, 0, 0, 13.333, 1.1, DARK_BLUE)
    add_rect(slide, 0, 1.08, 13.333, 0.06, ACCENT)

    add_text(slide, "TABLE OF CONTENTS", 0.4, 0.15, 12.5, 0.75,
             size=28, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

    items = [
        "01  Psoriasis",
        "02  Scabies",
        "03  Stevens–Johnson Syndrome (SJS)",
        "04  Pemphigus Vulgaris",
        "05  Acne Vulgaris",
        "06  Leprosy (Hansen's Disease)",
        "07  Syphilis",
        "08  Lichen Planus",
    ]
    col1, col2 = items[:4], items[4:]
    for i, item in enumerate(col1):
        add_rect(slide, 0.5, 1.35 + i * 1.35, 5.9, 1.1, WHITE,
                 line_color=RGBColor(0xBB, 0xDE, 0xFB))
        add_text(slide, item, 0.7, 1.45 + i * 1.35, 5.6, 0.9,
                 size=16, bold=True, color=DARK_BLUE)
    for i, item in enumerate(col2):
        add_rect(slide, 6.9, 1.35 + i * 1.35, 5.9, 1.1, WHITE,
                 line_color=RGBColor(0xBB, 0xDE, 0xFB))
        add_text(slide, item, 7.1, 1.45 + i * 1.35, 5.6, 0.9,
                 size=16, bold=True, color=DARK_BLUE)


def make_section_header(number, title, subtitle=""):
    slide = prs.slides.add_slide(blank)
    add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE)
    add_rect(slide, 0, 5.5, 13.333, 2.0, MED_BLUE)
    add_rect(slide, 0, 5.42, 13.333, 0.1, ACCENT)
    add_text(slide, number, 0.5, 1.5, 12.3, 1.5,
             size=80, bold=True, color=RGBColor(0x1A, 0x73, 0xE8), align=PP_ALIGN.CENTER)
    add_text(slide, title, 0.5, 3.1, 12.3, 1.2,
             size=36, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    if subtitle:
        add_text(slide, subtitle, 0.5, 4.4, 12.3, 0.8,
                 size=18, color=RGBColor(0xBB, 0xDE, 0xFB), align=PP_ALIGN.CENTER, italic=True)


def make_content_slide(title, left_bullets, right_bullets, img_url=None,
                       left_title=None, right_title=None, bg=LIGHT_BLUE):
    slide = prs.slides.add_slide(blank)
    add_rect(slide, 0, 0, 13.333, 7.5, bg)
    add_rect(slide, 0, 0, 13.333, 0.9, DARK_BLUE)
    add_rect(slide, 0, 0.88, 13.333, 0.06, ACCENT)

    add_text(slide, title, 0.3, 0.05, 12.7, 0.8,
             size=24, bold=True, color=WHITE)

    if img_url:
        # Left col: bullets | Right col top: bullets, bottom: image
        add_bullets(slide, left_bullets, 0.3, 1.05, 6.0, 5.9,
                    size=12, title=left_title, bg_color=WHITE)
        add_bullets(slide, right_bullets, 6.55, 1.05, 6.5, 3.0,
                    size=12, title=right_title, bg_color=WHITE)
        # Image
        img_bytes = fetch_image_bytes(img_url)
        if img_bytes:
            try:
                slide.shapes.add_picture(img_bytes, Inches(6.55), Inches(4.2),
                                         width=Inches(6.5), height=Inches(2.75))
            except Exception as e:
                print(f"Could not embed image: {e}")
    else:
        add_bullets(slide, left_bullets, 0.3, 1.05, 6.2, 5.9,
                    size=12, title=left_title, bg_color=WHITE)
        add_bullets(slide, right_bullets, 6.7, 1.05, 6.3, 5.9,
                    size=12, title=right_title, bg_color=WHITE)


def make_two_col_slide(title, col1_title, col1_items, col2_title, col2_items, img_url=None):
    make_content_slide(title, col1_items, col2_items, img_url,
                       left_title=col1_title, right_title=col2_title)


# ══════════════════════════════════════════════════════════════════════════════
#  SLIDE CONTENT
# ══════════════════════════════════════════════════════════════════════════════

# --- TITLE + TOC ---
make_title_slide()
make_toc_slide()

# ─────────────────────────────────────────────────
# 1. PSORIASIS
# ─────────────────────────────────────────────────
make_section_header("01", "PSORIASIS", "Chronic Inflammatory Papulosquamous Disorder")

make_content_slide(
    "Psoriasis — Definition, Epidemiology & Etiology",
    left_bullets=[
        ("Definition", "Chronic, relapsing, immune-mediated papulosquamous skin disorder", "Affects 2–3% of world population"),
        ("Epidemiology", "Bimodal onset: Type I <40 yrs (HLA-Cw6), Type II >40 yrs", "M = F; Prevalence 0.1–3% globally"),
        ("Etiology", "Polygenic inheritance + environmental triggers", "T-cell mediated autoimmune inflammation", "Keratinocyte hyperproliferation (↑ turnover 3–4 days vs 28 days normal)"),
    ],
    right_bullets=[
        ("Triggers", "Koebner phenomenon (trauma)", "Infections – Streptococcal pharyngitis", "Drugs – lithium, beta-blockers, NSAIDs", "Stress, alcohol, smoking", "HIV"),
        ("Pathogenesis", "Th1/Th17 pathway activation", "↑ TNF-α, IL-17, IL-23", "Dendritic cell → T-cell activation", "Angiogenesis + epidermal hyperplasia"),
    ],
    img_url="https://cdn.orris.care/cdss_images/DermNetNZ_1760035473994_3db047d7-3bb2-4288-b211-f0b4c1ba1c5c.jpg",
    left_title="Overview", right_title="Pathogenesis & Triggers"
)

make_content_slide(
    "Psoriasis — Clinical Features & Diagnosis",
    left_bullets=[
        ("Morphology", "Erythematous, well-demarcated plaques", "Silvery-white scales", "Sites: scalp, elbows, knees, lumbosacral, nails"),
        ("Signs", "Auspitz sign (pin-point bleeding)", "Candle grease sign (scratch → scale removal)", "Koebner phenomenon"),
        ("Nail changes", "Pitting (most common), onycholysis", "Oil drop sign, subungual hyperkeratosis"),
        ("Types", "Plaque (most common ~80%)", "Guttate, Pustular, Erythrodermic, Inverse"),
    ],
    right_bullets=[
        ("Psoriatic Arthritis", "Occurs in 10–25% of patients", "Seronegative arthritis", "DIP joints, pencil-in-cup deformity on X-ray"),
        ("Histopathology", "Acanthosis, parakeratosis", "Munro microabscesses", "Dilated tortuous capillaries (papillary dermis)", "↓ Granular layer"),
        ("PASI Score", "Psoriasis Area & Severity Index", "Used for severity assessment"),
    ],
    left_title="Clinical Features", right_title="Complications & Histo"
)

make_content_slide(
    "Psoriasis — Management",
    left_bullets=[
        ("Topical (mild–moderate)", "Corticosteroids (1st line)", "Vitamin D analogues (calcipotriol)", "Coal tar, salicylic acid", "Calcineurin inhibitors (face/folds)", "Dithranol (Anthralin)"),
        ("Phototherapy", "Narrowband UVB (NB-UVB) – preferred", "PUVA (psoralen + UVA)", "Excimer laser"),
    ],
    right_bullets=[
        ("Systemic (moderate–severe)", "Methotrexate (MTX) – folate antagonist", "Cyclosporine – calcineurin inhibitor", "Acitretin (retinoid)", "Apremilast (PDE4 inhibitor)"),
        ("Biologics", "Anti-TNF: infliximab, adalimumab", "Anti-IL-17: secukinumab, ixekizumab", "Anti-IL-23: guselkumab, risankizumab", "Anti-IL-12/23: ustekinumab"),
        ("Special situations", "Scalp: tar shampoo, topical steroids", "Palmoplantar: PUVA, acitretin"),
    ],
    left_title="Treatment Ladder", right_title="Systemic & Biologics"
)

# ─────────────────────────────────────────────────
# 2. SCABIES
# ─────────────────────────────────────────────────
make_section_header("02", "SCABIES", "Sarcoptes scabiei var. hominis Infestation")

make_content_slide(
    "Scabies — Etiology, Transmission & Pathogenesis",
    left_bullets=[
        ("Causative Organism", "Sarcoptes scabiei var. hominis (mite)", "Female mite 0.3–0.4 mm; male smaller", "Obligate human ectoparasite"),
        ("Transmission", "Direct prolonged skin-to-skin contact", "Indirect (fomites) – rare", "Sexual transmission common", "Incubation: 3–6 weeks (first exposure), 1–3 days (re-exposure)"),
        ("Life Cycle", "Female burrows into stratum corneum", "Lays 2–3 eggs/day for 4–6 weeks", "Larvae → nymphs → adult in 10–14 days"),
    ],
    right_bullets=[
        ("Pathogenesis", "Hypersensitivity reaction to mite proteins", "Intense pruritus = allergic response", "Burrow = pathognomonic lesion"),
        ("Clinical Features", "INTENSE NOCTURNAL PRURITUS (key symptom)", "Papules, vesicles, burrows (webspaces)", "Sites: finger webs, wrists, genitals, areola", "Spares face (except infants)", "Nodular scabies: scrotum, penis, axillae"),
        ("Special types", "Norwegian/Crusted scabies: immunocompromised", "Thousands of mites; highly contagious", "Animal scabies: self-limiting in humans"),
    ],
    img_url="https://cdn.orris.care/cdss_images/pmc_clinical_VQA_26de21e2cc1e785dc2438c7884ac81ad0357a64e8178646696fba67eb1f82e84.jpg",
    left_title="Organism & Transmission", right_title="Pathogenesis & Features"
)

make_content_slide(
    "Scabies — Diagnosis & Management",
    left_bullets=[
        ("Diagnosis", "Clinical (pruritus + typical distribution)"),
        ("Confirmatory Tests", "Skin scraping → microscopy (mite, eggs, scybala)", "Dermoscopy – 'jet with contrail' appearance", "Ink test – burrow ink test (BIT)"),
        ("Differential Diagnoses", "Atopic dermatitis, contact dermatitis", "Insect bites, dermatitis herpetiformis", "Lichen planus"),
    ],
    right_bullets=[
        ("Treatment", "Permethrin 5% cream (1st line) – apply neck to toe, wash off 8–12h", "Ivermectin 200 µg/kg oral (2 doses, 2 wks apart) – for crusted/extensive", "Benzyl benzoate 25% (25% adults, 12.5% children)", "Malathion 0.5% aqueous lotion"),
        ("Important points", "Treat ALL household contacts simultaneously", "Wash all clothing/bedding in hot water", "Treat even if asymptomatic contacts", "Pruritus may persist 2–4 weeks post-treatment (do not re-treat)", "Post-scabietic eczema: topical steroids"),
    ],
    left_title="Diagnosis", right_title="Treatment"
)

# ─────────────────────────────────────────────────
# 3. STEVENS-JOHNSON SYNDROME
# ─────────────────────────────────────────────────
make_section_header("03", "STEVENS-JOHNSON SYNDROME", "Severe Mucocutaneous Reaction")

make_content_slide(
    "Stevens-Johnson Syndrome — Definition & Etiology",
    left_bullets=[
        ("Definition", "Severe mucocutaneous hypersensitivity reaction", "Widespread blistering with mucosal involvement", "SJS: <10% BSA; SJS/TEN overlap: 10–30%; TEN (Lyell's): >30% BSA"),
        ("Etiology — Drugs (most common, 70-90%)", "Sulfonamides (co-trimoxazole) – MOST COMMON", "Anticonvulsants: carbamazepine, phenytoin, lamotrigine", "Allopurinol (most common cause in Asia)", "NSAIDs (oxicams), penicillins, nevirapine"),
        ("Genetic Risk", "HLA-B*15:02 → carbamazepine-induced SJS in Asians", "HLA-B*58:01 → allopurinol-induced SJS"),
    ],
    right_bullets=[
        ("Etiology — Infections (10-20%)", "Mycoplasma pneumoniae (major infectious cause)", "HSV, EBV, CMV", "HIV"),
        ("Pathogenesis", "CD8+ T-cell mediated cytotoxicity", "Granulysin – key mediator", "Fas-FasL apoptotic pathway", "Widespread keratinocyte apoptosis"),
        ("Epidemiology", "Incidence: 1–6 cases/million/year", "Mortality: SJS 1–5%; TEN 25–35%", "SCORTEN score: mortality predictor"),
    ],
    img_url="https://cdn.orris.care/cdss_images/pmc_clinical_VQA_6de8cd50a11121fcadc19619018bf9bd028cdd97f46981d9616b8b6f643c1114.jpg",
    left_title="Definition & Drug Causes", right_title="Infection & Pathogenesis"
)

make_content_slide(
    "Stevens-Johnson Syndrome — Clinical Features & Management",
    left_bullets=[
        ("Prodrome (1–3 days)", "Fever, malaise, sore throat", "Burning eyes, skin tenderness"),
        ("Skin lesions", "Target lesions (atypical – 2 zones)", "Widespread blistering, erosions", "Nikolsky sign POSITIVE", "Skin detachment/necrosis"),
        ("Mucosal involvement (HALLMARK)", "Oral: hemorrhagic crusting, erosions", "Ocular: conjunctivitis, pseudomembranes", "Genital: erosions/ulcers", "Respiratory mucosa involvement"),
    ],
    right_bullets=[
        ("Complications", "Sepsis – leading cause of death", "Fluid/electrolyte imbalance", "Ocular sequelae – blindness (5–10%)", "Esophageal stricture, urethral stenosis"),
        ("Management", "STOP offending drug IMMEDIATELY", "ICU/Burns unit care", "IV fluids + nutritional support", "Wound care (non-adhesive dressings)", "Ophthalmology consult (corneal scarring prevention)", "Cyclosporine (evidence for use)", "IVIG (controversial)", "Systemic steroids (controversial)"),
        ("SCORTEN Score factors", "Age >40, malignancy, HR >120", "BSA detached >10%, serum urea >10 mM", "Serum bicarb <20 mM, serum glucose >14 mM"),
    ],
    left_title="Clinical Features", right_title="Complications & Treatment"
)

# ─────────────────────────────────────────────────
# 4. PEMPHIGUS VULGARIS
# ─────────────────────────────────────────────────
make_section_header("04", "PEMPHIGUS VULGARIS", "Autoimmune Intraepidermal Blistering Disease")

make_content_slide(
    "Pemphigus Vulgaris — Etiology & Pathogenesis",
    left_bullets=[
        ("Definition", "Autoimmune blistering disease", "Intraepidermal blister formation", "Potentially fatal if untreated"),
        ("Epidemiology", "Age: 40–60 yrs (middle-aged adults)", "Higher incidence in Jews, Indians, Mediterranean", "Rare – incidence 0.1–0.5/100,000/year"),
        ("Autoantibodies", "IgG against Desmoglein 3 (Dsg3) – mucosal type", "IgG against Dsg3 + Dsg1 – mucocutaneous type"),
    ],
    right_bullets=[
        ("Pathogenesis", "Anti-Dsg3 IgG antibodies disrupt desmosomal adhesion", "Acantholysis (loss of cell-to-cell cohesion)", "Suprabasal blister formation", "Complement activation + protease activation"),
        ("Types of Pemphigus", "Pemphigus vulgaris (most common – 80%)", "Pemphigus foliaceus (superficial)", "Paraneoplastic pemphigus", "Drug-induced pemphigus"),
        ("Related condition", "Bullous pemphigoid: subepidermal, anti-BP180/230", "Pemphigoid: tense bullae, elderly patients"),
    ],
    img_url="https://cdn.orris.care/cdss_images/pmc_clinical_VQA_f00fbe12d24827eedfa717e40678893c95944334856fc6eda966300a54573b48.jpg",
    left_title="Definition & Antibodies", right_title="Pathogenesis & Types"
)

make_content_slide(
    "Pemphigus Vulgaris — Clinical Features & Treatment",
    left_bullets=[
        ("Clinical Features", "Flaccid (thin-roofed) blisters → rupture easily", "Painful erosions", "ORAL MUCOSA first (in >50%)", "Then skin: face, scalp, trunk, groin"),
        ("Signs", "Nikolsky sign: POSITIVE (lateral pressure → new blister)", "Asboe-Hansen sign: pressure on intact blister → lateral extension", "Bulla spread sign"),
        ("Diagnosis", "Tzanck smear: acantholytic cells (tombstone cells)", "Skin biopsy: suprabasal acantholysis", "DIF: IgG + C3 intercellular 'fishnet' pattern", "ELISA: anti-Dsg3 antibodies"),
    ],
    right_bullets=[
        ("Histopathology", "Intraepidermal acantholysis – suprabasal cleft", "Row of basal cells = 'tombstone appearance'", "IgG deposited along keratinocyte surface"),
        ("Treatment", "HIGH-DOSE systemic corticosteroids (prednisolone 1–2 mg/kg/day) – mainstay", "Steroid-sparing agents: azathioprine (1st choice), mycophenolate mofetil", "Rituximab (anti-CD20) – approved 1st line in severe/refractory", "Cyclophosphamide, dapsone", "IV immunoglobulin (IVIG)", "Wound care + antiseptic mouthwash", "Monitoring: fluid balance, secondary infection"),
    ],
    left_title="Clinical Features & Diagnosis", right_title="Histopathology & Treatment"
)

# ─────────────────────────────────────────────────
# 5. ACNE VULGARIS
# ─────────────────────────────────────────────────
make_section_header("05", "ACNE VULGARIS", "Chronic Inflammatory Pilosebaceous Disorder")

make_content_slide(
    "Acne Vulgaris — Pathogenesis & Clinical Features",
    left_bullets=[
        ("Definition", "Chronic inflammatory disease of pilosebaceous unit", "Most common skin disease in adolescents", "Affects 85% of teenagers; peaks 14–19 yrs"),
        ("Pathogenesis — 4 Key Factors", "Increased sebum production (androgens)", "Follicular hyperkeratinization (comedo formation)", "Cutibacterium acnes colonization", "Inflammation (IL-1, TNF-α, IL-8)"),
        ("Types of lesions", "Non-inflammatory: open comedone (blackhead), closed comedone (whitehead)", "Inflammatory: papule, pustule", "Severe: nodule, cyst, sinus/abscess"),
    ],
    right_bullets=[
        ("Distribution", "Face (most common) – cheeks, forehead, chin", "Trunk (back, chest)", "Upper arms"),
        ("Grading (Grade I–IV)", "Grade I: comedones only", "Grade II: comedones + papules", "Grade III: + pustules", "Grade IV: nodulocystic acne"),
        ("Differential Diagnosis", "Rosacea (no comedones)", "Folliculitis (bacterial)", "Perioral dermatitis", "Sebaceous hyperplasia"),
    ],
    img_url="https://cdn.orris.care/cdss_images/pmc_clinical_VQA_5b8c93db001fe58aaed8252f0e84af08a6676f9822e28506db2d00c2a22cea0a.jpg",
    left_title="Pathogenesis & Types", right_title="Distribution & Grading"
)

make_content_slide(
    "Acne Vulgaris — Management",
    left_bullets=[
        ("Topical Agents", "Retinoids: tretinoin, adapalene, tazarotene (normalize follicular keratinization)", "Benzoyl peroxide (BPO) – bactericidal (no resistance)", "Topical antibiotics: clindamycin, erythromycin (+ BPO to avoid resistance)", "Azelaic acid – comedolytic + antibacterial"),
        ("Systemic Antibiotics", "Doxycycline 100 mg/day (1st choice)", "Minocycline, erythromycin", "Course: 3–6 months (avoid >6 months alone)"),
    ],
    right_bullets=[
        ("Isotretinoin (Gold Standard – Severe acne)", "13-cis retinoic acid (vitamin A derivative)", "Dose: 0.5–1 mg/kg/day; total 120–150 mg/kg cumulative", "Reduces all 4 pathogenic factors", "Side effects: teratogenicity, cheilitis, xerosis, hypertriglyceridemia, hepatotoxicity, mood changes", "Contraindicated in pregnancy (Category X)"),
        ("Hormonal therapy (females)", "Combined oral contraceptives", "Spironolactone – anti-androgen", "Cyproterone acetate"),
        ("Physical modalities", "Comedone extraction", "Intralesional triamcinolone (nodules/cysts)", "Chemical peels, laser therapy"),
    ],
    left_title="Topical & Systemic Treatment", right_title="Isotretinoin & Hormonal Therapy"
)

# ─────────────────────────────────────────────────
# 6. LEPROSY
# ─────────────────────────────────────────────────
make_section_header("06", "LEPROSY", "Hansen's Disease — Mycobacterium leprae")

make_content_slide(
    "Leprosy — Microbiology, Epidemiology & Classification",
    left_bullets=[
        ("Causative Agent", "Mycobacterium leprae", "Gram-positive, acid-fast bacillus (AFB)", "Obligate intracellular organism", "Cannot be cultured in vitro", "Grows in footpad of 9-banded armadillo"),
        ("Transmission", "Prolonged close contact (nasal secretions)", "India has highest burden globally", "Incubation: 2–5 years (up to 20 years)"),
        ("Ridley-Jopling Classification", "TT (Tuberculoid) – high resistance, paucibacillary", "BT (Borderline tuberculoid)", "BB (Borderline)", "BL (Borderline lepromatous)", "LL (Lepromatous) – low resistance, multibacillary"),
    ],
    right_bullets=[
        ("WHO Classification", "Paucibacillary (PB): 1–5 skin lesions, smear negative", "Multibacillary (MB): >5 skin lesions, smear +ve"),
        ("Immunology", "TT: strong Th1 CMI response, few bacilli", "LL: weak CMI, Th2 response, many bacilli", "Mitsuda (Lepromin) test: +ve TT, -ve LL"),
        ("Clinical Features — Skin", "Hypopigmented anaesthetic macule (HALLMARK)", "Well-defined (TT) vs. ill-defined (LL)", "Erythematous plaques, nodules (lepromata)", "Loss of hair, dryness, sweating loss in patches"),
    ],
    img_url="https://cdn.orris.care/cdss_images/pmc_clinical_VQA_c8c299d9171e6042f3f416144c5f785de2fb390548d57d5664a75bdd6a629976.jpg",
    left_title="Organism & Classification", right_title="WHO Classification & Features"
)

make_content_slide(
    "Leprosy — Nerve Involvement, Reactions & Treatment",
    left_bullets=[
        ("Nerve Involvement", "Peripheral nerve thickening (PATHOGNOMONIC)", "Nerves commonly affected:", "Ulnar N. (claw hand, sensory loss little/ring fingers)", "Common peroneal N. (foot drop)", "Radial cutaneous N.", "Greater auricular N.", "Facial N. (lagophthalmos)", "Median N. (ape hand)"),
        ("Cardinal Signs of Leprosy", "Hypopigmented/erythematous patch with loss of sensation", "Thickened peripheral nerve", "Skin smear/biopsy AFB positive"),
    ],
    right_bullets=[
        ("Lepra Reactions", "Type 1 (Reversal): upgrading/downgrading reaction; steroids", "Type 2 (ENL – Erythema Nodosum Leprosum): immune complex; thalidomide/steroids"),
        ("MDT (WHO Multidrug Therapy)", "PB (6 months): Rifampicin 600mg monthly (supervised) + Dapsone 100mg daily", "MB (12 months): Rifampicin 600mg monthly + Clofazimine 300mg monthly + Dapsone 100mg daily + Clofazimine 50mg daily", "Dapsone: mechanism – competitive PABA inhibitor"),
        ("Deformity Prevention", "Physiotherapy, self-care of anaesthetic hands/feet", "Reconstructive surgery"),
    ],
    left_title="Neurology & Cardinal Signs", right_title="Reactions & MDT Treatment"
)

# ─────────────────────────────────────────────────
# 7. SYPHILIS
# ─────────────────────────────────────────────────
make_section_header("07", "SYPHILIS", "Treponema pallidum — The Great Imitator")

make_content_slide(
    "Syphilis — Etiology & Stages",
    left_bullets=[
        ("Causative Agent", "Treponema pallidum subsp. pallidum", "Gram-negative spirochete", "Cannot be cultured in vitro", "Transmission: sexual contact, vertical (congenital)"),
        ("Primary Syphilis (3–90 days)", "CHANCRE – painless indurated ulcer", "Single, clean base, indurated edges", "Heals spontaneously in 3–6 weeks", "Regional lymphadenopathy (painless)"),
        ("Secondary Syphilis (6 wks–6 months)", "Maculopapular rash – palms and soles (HALLMARK)", "Condylomata lata – moist warts in perianal area", "Mucous patches – painless oral/genital lesions", "Flu-like symptoms, generalized lymphadenopathy", "Snail track ulcers (oral)"),
    ],
    right_bullets=[
        ("Latent Syphilis", "Early latent: <1 year duration", "Late latent: >1 year duration", "Asymptomatic, seroreactive"),
        ("Tertiary Syphilis (1–30 years later)", "GUMMA – granulomatous lesion (skin, bone, viscera)", "Cardiovascular: aortic aneurysm, aortic regurgitation", "Neurosyphilis: tabes dorsalis, general paresis", "Argyll Robertson pupil (accommodates but doesn't react to light)"),
        ("Congenital Syphilis", "Early (<2 yrs): snuffles, periostitis, pemphigus syphiliticus", "Late: Hutchinson's triad (interstitial keratitis + notched incisors + 8th nerve deafness)", "Saber tibia, saddle nose, frontal bossing"),
    ],
    img_url="https://cdn.orris.care/cdss_images/pmc_clinical_VQA_e6931a06e139c841e432556f0a61b20e59968710188b115e91d0b2c440868b30.jpg",
    left_title="Organism & Primary/Secondary", right_title="Latent/Tertiary & Congenital"
)

make_content_slide(
    "Syphilis — Diagnosis & Treatment",
    left_bullets=[
        ("Diagnosis"),
        ("Dark field microscopy", "Direct visualization of T. pallidum (primary chancre)", "Highly specific, requires trained microscopist"),
        ("Non-treponemal tests (NTT)", "VDRL (Venereal Disease Research Laboratory)", "RPR (Rapid Plasma Reagin)", "Used for screening + monitoring treatment response", "Can give BIOLOGICAL FALSE POSITIVES (BFP)"),
        ("Causes of BFP", "SLE, malaria, pregnancy, viral infections, leprosy"),
    ],
    right_bullets=[
        ("Treponemal tests", "TPHA (Treponema Pallidum Haemagglutination Assay)", "FTA-ABS (Fluorescent Treponemal Antibody-Absorption)", "TPPA, EIA/CIA for T. pallidum", "Confirmatory, remain positive for life"),
        ("Treatment", "Primary/Secondary/Early latent: Benzathine Penicillin G 2.4 MU IM – single dose", "Late latent/Tertiary: Benzathine Penicillin G 2.4 MU IM weekly × 3 doses", "Neurosyphilis: Aqueous crystalline Penicillin G IV 18–24 MU/day × 10–14 days", "Penicillin allergy: Doxycycline 100 mg BD × 14 days (not in pregnancy)", "Pregnancy + penicillin allergy: desensitization then penicillin"),
        ("Jarisch-Herxheimer Reaction", "Fever, headache, myalgia after first dose", "Due to cytokine release from dead treponemes", "Treat with antipyretics"),
    ],
    left_title="Laboratory Diagnosis", right_title="Treatment Regimens"
)

# ─────────────────────────────────────────────────
# 8. LICHEN PLANUS
# ─────────────────────────────────────────────────
make_section_header("08", "LICHEN PLANUS", "Idiopathic Lichenoid Dermatosis")

make_content_slide(
    "Lichen Planus — Etiology & Clinical Features",
    left_bullets=[
        ("Definition", "Idiopathic, chronic inflammatory mucocutaneous disease", "Affects skin, mucous membranes, nails, hair follicles"),
        ("Epidemiology", "Peak age 30–60 years; rare in children", "F > M; 0.5–2% prevalence"),
        ("Etiology", "T-cell mediated autoimmune (CD8+ cytotoxicity against basal keratinocytes)", "Associations: Hepatitis C virus, drugs, stress", "Drug-induced (lichenoid drug reaction): gold, antimalarials, thiazides, beta-blockers, NSAIDs"),
        ("Classic 6 P's", "Planar (flat-topped)", "Purple (violaceous)", "Polygonal", "Pruritic", "Papules", "Plaques"),
    ],
    right_bullets=[
        ("Clinical Features — Skin", "Flat-topped violaceous papules and plaques", "WICKHAM'S STRIAE – white lacy network on surface", "Koebner phenomenon present", "Sites: flexor wrists, ankles, trunk, genitalia"),
        ("Oral Lichen Planus", "Reticular (most common): white lacy striae on buccal mucosa", "Erosive/atrophic: painful erosions", "MALIGNANT POTENTIAL: 0.4–5% (SCC)", "Oral is often symptomatic when other types are not"),
        ("Nail Lichen Planus", "Nail pitting, thinning, longitudinal ridging", "Pterygium unguis (pathognomonic)", "Trachyonychia (twenty-nail dystrophy)"),
    ],
    img_url="https://cdn.orris.care/cdss_images/pmc_clinical_VQA_905e73250e114d11858cb01f634cb79bab6bd89edd97c021075cc64c33872650.jpg",
    left_title="Overview & 6 Ps", right_title="Clinical Features"
)

make_content_slide(
    "Lichen Planus — Diagnosis, Variants & Treatment",
    left_bullets=[
        ("Histopathology (DIAGNOSTIC)", "Band-like lymphocytic infiltrate in upper dermis", "Colloid bodies (Civatte bodies) – necrotic keratinocytes", "Vacuolar degeneration of basal layer", "'Sawtooth' pattern of rete ridges", "Hypergranulosis (↑ granular layer)"),
        ("Diagnosis", "Clinical + DIF: fibrinogen in band at DEJ", "Biopsy: confirmatory"),
        ("Variants", "Hypertrophic LP: thick verrucous plaques (legs)", "Follicular (lichen planopilaris): scarring alopecia", "Linear LP, Bullous LP", "LP pigmentosus: pigmented macules (face/neck)"),
    ],
    right_bullets=[
        ("Treatment"),
        ("First Line", "Potent topical corticosteroids (clobetasol propionate)", "Intralesional triamcinolone (thick plaques)", "Oral corticosteroids (widespread/severe)"),
        ("Second Line", "Cyclosporine (especially oral LP)", "Methotrexate, azathioprine", "Acitretin (retinoid) – hypertrophic LP", "NB-UVB phototherapy, PUVA"),
        ("Oral LP", "Topical tacrolimus/cyclosporine mouthwash", "Systemic steroids for severe erosive type", "Regular monitoring for malignant transformation"),
        ("Prognosis", "Spontaneous remission in 1–2 years (skin type)", "Oral LP tends to persist/relapse"),
    ],
    left_title="Histopathology & Variants", right_title="Treatment"
)

# ── SUMMARY SLIDE ─────────────────────────────────────────────────────────────
def make_summary_slide():
    slide = prs.slides.add_slide(blank)
    add_rect(slide, 0, 0, 13.333, 7.5, RGBColor(0xF5, 0xF5, 0xF5))
    add_rect(slide, 0, 0, 13.333, 0.9, DARK_BLUE)
    add_rect(slide, 0, 0.88, 13.333, 0.06, ACCENT)
    add_text(slide, "QUICK RECALL — HIGH-YIELD MNEMONICS & KEY FACTS", 0.3, 0.05, 12.7, 0.8,
             size=18, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

    items = [
        ("Psoriasis", "Auspitz sign | NB-UVB | Biologics (anti-IL-17/IL-23) | PASI"),
        ("Scabies", "Permethrin 5% (1st line) | Nocturnal pruritus | Finger webs | Treat all contacts"),
        ("SJS", "Stop drug | <10% BSA | Granulysin | SCORTEN | Anti-Cw6 (carbamazepine)"),
        ("Pemphigus", "Desmoglein 3 IgG | Acantholysis | Tombstone cells | Rituximab"),
        ("Acne", "Isotretinoin = gold standard for severe | BPO (no resistance) | Grade I-IV"),
        ("Leprosy", "M. leprae | Anaesthetic hypopigmented patch | MDT 6/12 months | ENL type 2"),
        ("Syphilis", "Painless chancre | Palms & soles rash | VDRL/FTA-ABS | Benzathine PCN"),
        ("Lichen Planus", "6Ps | Wickham's striae | Sawtooth rete ridges | HCV association"),
    ]
    for i, (cond, note) in enumerate(items):
        row = i % 4
        col = i // 4
        x = 0.3 + col * 6.5
        y = 1.1 + row * 1.55
        add_rect(slide, x, y, 6.2, 1.35, WHITE, line_color=MED_BLUE)
        add_text(slide, cond, x+0.12, y+0.08, 6.0, 0.45,
                 size=13, bold=True, color=DARK_BLUE)
        add_text(slide, note, x+0.12, y+0.52, 6.0, 0.75,
                 size=11, color=DARK_GREY, wrap=True)

make_summary_slide()

# ── FINAL SLIDE ────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE)
add_rect(slide, 0, 5.5, 13.333, 2.0, MED_BLUE)
add_rect(slide, 0, 5.42, 13.333, 0.1, ACCENT)
add_text(slide, "THANK YOU", 0.5, 2.0, 12.3, 2.0,
         size=60, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_text(slide, "Best of luck in your MBBS Professional Examinations!", 0.5, 4.2, 12.3, 0.8,
         size=20, color=RGBColor(0xBB, 0xDE, 0xFB), align=PP_ALIGN.CENTER, italic=True)
add_text(slide, "Dermatology, Venereology & Leprosy  |  MBBS Professional Exam Series", 0.5, 5.8, 12.3, 0.6,
         size=14, color=WHITE, align=PP_ALIGN.CENTER)

# ── SAVE ──────────────────────────────────────────────────────────────────────
out_path = "/tmp/workspace/dermatology-ppt/Dermatology_MBBS_Professional_Exam.pptx"
buf = BytesIO()
prs.save(buf)
with open(out_path, "wb") as f:
    f.write(buf.getvalue())
print(f"Saved: {out_path}")
print(f"Slides: {len(prs.slides)}")
Running Command

cd /tmp/workspace/dermatology-ppt && python build_ppt.py 2>&1

Running Command

python3 -c "import requests; r = requests.get('https://cdn.orris.care/cdss_images/DermNetNZ_1760035473994_3db047d7-3bb2-4288-b211-f0b4c1ba1c5c.jpg', timeout=15); print(r.status_code, len(r.content))"

Editing File

~/dermatology-ppt/build_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/dermatology-ppt/build_ppt.py'
Running Command

cd /tmp/workspace/dermatology-ppt && python build_ppt.py 2>&1

Running Command

python3 -c " from pptx import Presentation prs = Presentation('/tmp/workspace/dermatology-ppt/Dermatology_MBBS_Professional_Exam.pptx') print(f'Total slides: {len(prs.slides)}') for i, slide in enumerate(prs.slides, 1): texts = [] for shape in slide.shapes: if shape.has_text_frame: t = shape.text_frame.text.strip() if t: texts.append(t[:60]) print(f'Slide {i:02d}: {\" | \".join(texts[:2])}') # check for images pics = [s for s in slide.shapes if s.shape_type == 13] if pics: print(f' -> {len(pics)} image(s) embedded') "

Your MBBS Professional Exam Dermatology presentation is ready!

Dermatology MBBS Professional Exam

Presentation · PPTX


What's inside (29 slides)

#SlidesContent Highlights
Title slideDepartment of Dermatology branding
Table of ContentsAll 8 topics listed
01Psoriasis (3 slides)Definition, epidemiology, Koebner/Auspitz signs, PASI, topicals, phototherapy, biologics (anti-IL-17/IL-23)
02Scabies (2 slides)Sarcoptes lifecycle, nocturnal pruritus, finger web burrows, Permethrin 5% vs. Ivermectin, treat-all-contacts rule
03SJS (2 slides)BSA criteria (<10%/10–30%/>30%), drug causes (sulfonamides, carbamazepine), granulysin, SCORTEN score, management in burns unit
04Pemphigus Vulgaris (2 slides)Desmoglein 3 IgG, acantholysis, tombstone cells, Nikolsky sign, Rituximab as first-line severe
05Acne Vulgaris (2 slides)4 pathogenic factors, Grade I–IV, isotretinoin (gold standard), BPO no-resistance principle
06Leprosy (2 slides)Ridley-Jopling + WHO classification, 3 cardinal signs, nerve involvement, MDT regimens (6/12 months)
07Syphilis (2 slides)5 stages, Hutchinson's triad, VDRL/FTA-ABS, BFP causes, Benzathine PCN dosing, Jarisch-Herxheimer
08Lichen Planus (2 slides)6 Ps, Wickham's striae, HCV link, sawtooth rete ridges, malignant potential of oral LP
Quick Recall slideHigh-yield mnemonics for all 8 diseases
Thank you slide
Each disease section has a real clinical photograph embedded (psoriasis plaque, scabies mite SEM, SJS mucosal erosions, pemphigus erosion, acne vulgaris, leprosy patches, syphilitic chancre, lichen planus Wickham striae).

To more colour ful and more content with flow charts pdf

Reading File

.

Your credits are exhausted. You can purchase a top-up or subscribe to a plan to continue using Orris. If you're already subscribed, your daily credits will reset tomorrow.
This is a shared conversation. Sign in to Orris to start your own chat.