Create a PowerPoint presentations on WBC disorders for pathology residents
acute myeloid leukemia blast cells bone marrow smear

High-magnification brightfield micrograph of a human bone marrow aspirate smear stained with Hematoxylin and Eosin, demonstrating dysplastic megakaryocytes in a hematopoietic background. The megakaryocytes exhibit atypical nuclear morphology, including multinucleation, irregular lobulation, and nuclear fragmentation, with variable cytoplasmic basophilia. Background cellularity shows concurrent dyserythropoiesis and dysplastic myeloid precursors consistent with a myelodysplastic spectrum. Overall architecture may be hypercellular or variably cellular, with scattered normal hematopoietic elements interspersed among abnormal cells. Features are most prominent in the megakaryocytic lineage, where dysplasia is a salient hallmark. The image illustrates morphologic criteria that support a diagnosis in the context of possible progression toward acute leukemia, and should be correlated with peripheral blood counts, marrow blast percentage, cytogenetic and molecular studies. Clinically, such dysplastic megakaryocytes are associated with cytopenias and splenomegaly, and approximately a fifth of patients with related myelodysplastic/myeloproliferative conditions progress to acute myeloid leukemia. This representation is valuable for educational, diagnostic, and research purposes, particularly in studies of megakaryocytic dysplasia, MDS/AML continuum, prognostication, and therapeutic planning focused on palliation and cytopenia management. Careful documentation of features and context enhances reproducibility, supports standardized reporting, and facilitates cross-institutional data sharing for outcome studies and biomarker-driven clinical trials.

Imaging modality: light microscopy of a hematopathology slide from a bone marrow aspirate smear. Stain: Hematoxylin and Eosin (H&E). Magnification: high-power field (~400x total; 40x objective with 10x ocular). Anatomical location: bone marrow within the medullary cavity (hematopoietic tissue). Visual features: sheets of immature blasts with high nuclear-to-cytoplasmic ratio, round to oval nuclei, fine chromatin, prominent nucleoli, and scant basophilic cytoplasm; increased cellularity with near-complete effacement of normal hematopoiesis; occasional mitotic figures; minimal cytoplasmic granularity; sparse residual neutrophils, erythroid precursors, and megakaryocytes. Pathologic interpretation: diffuse marrow infiltration by blasts, consistent with an acute leukemia until immunophenotyping and genetic studies delineate subtype. Diagnostic significance: morphologic hallmark of an acute hematologic malignancy; requires ancillary tests (flow cytometry, immunohistochemistry, cytogenetics/molecular studies) for lineage classification (myeloid vs lymphoid), prognosis, and treatment planning. Differential considerations: ALL (acute lymphoblastic leukemia), AML (acute myeloid leukemia), lymphoblastic lymphoma with marrow involvement, myelodysplastic syndrome with excess blasts, or nonhematopoietic marrow infiltration. Clinical correlation: commonly presents with cytopenias, fatigue, infections, and bleeding; pediatric ALL vs adult AML guidance; urgent hematology-oncology workup is indicated. Educational use: foundational blast morphology recognition, marrow infiltration patterns, and the need for confirmatory immunophenotyping. This image is valuable for training in blast morphology, differential diagnosis, and education in hematopathology.

This composite educational graphic illustrates the morphologic and immunophenotypic evolution of a secondary Acute Myeloid Leukemia (AML) case across four clinical stages: primary diagnosis, first relapse, second relapse, and post-anti-CLL1 CAR T-cell therapy. Panel A consists of Wright-Giemsa stained bone marrow aspirate smears. Early stages show dense populations of myeloblasts with high N:C ratios, fine chromatin, and nucleoli. The second relapse reveals increasing dysplasia, while the post-therapy image demonstrates hematopoietic recovery with mature leukocytes and a significant reduction in blast cells. Panels B and C present flow cytometric scatter plots utilizing two gating strategies: 'All Events' and 'Blast+E' (blasts and erythroid cells). Markers analyzed include CD45, Side Scatter (SSC), CD34, CD123, CD38, CD33, CD10, and CD19. Color-coded populations identify blasts (red), lymphocytes (green), monocytes (dark blue), neutrophils (orange), and erythrocytes (light blue). The plots track the lineage switch and immunophenotypic shifts, such as the emergence of myeloid markers (CD33, CD123) in later relapses and the subsequent elimination of the malignant blast population following targeted CAR T-cell therapy.
chronic lymphocytic leukemia smudge cells peripheral blood

Peripheral blood smear from a patient with suspected chronic lymphocytic leukemia (CLL) shows a predominance of small, mature-appearing lymphocytes with scant cytoplasm and clumped nuclear chromatin, accompanied by fragile cells that readily disrupt during smear preparation, producing numerous smudge or basket cells visible on the slide. The image depicts a single smudge cell in the upper right, with numerous small darkly staining lymphocytes occupying the field. The smear was prepared with Wright-Giemsa stain and examined under light microscopy at high magnification (approximately 1000x total magnification with oil immersion). Clinically, CLL is defined by absolute mature lymphocytosis of ≥5.0 × 10^9/L sustained for ≥3 months, often asymptomatic and detected incidentally on complete blood count. Morphology alone is insufficient for diagnosis; immunophenotyping showing co-expression of CD5, CD19, CD23 with weak surface immunoglobulin and light chain restriction supports CLL diagnosis. Smudge cells result from fragile leukemic cells and reflect underlying cytoskeletal fragility, though they are not specific. The image illustrates typical features: monomorphic lymphocytes, scant cytoplasm, condensed chromatin, and absent prominent nucleoli. This finding has diagnostic significance, guiding further workup, including flow cytometry, cytogenetics, and molecular studies, to distinguish CLL from other chronic lymphoproliferative disorders such as small lymphocytic lymphoma (SLL), mantle cell lymphoma, prolymphocytic leukemia, and reactive lymphocytosis.

Peripheral blood smear from a patient with known chronic lymphocytic leukemia (CLL) showing autoimmune hemolytic anemia (AIHA). Brightfield microscopy of Wright-Giemsa stained smear at 1000x (oil immersion) reveals two dominant cell populations: numerous small mature lymphocytes typical of CLL and red blood cells showing spherocytic deformation. A smudge cell is evident just left of center, a classical clue for CLL. Red cells display reduced central pallor consistent with spherocytes, indicating intravascular or extravascular hemolysis driven by autoantibodies. The background shows mild polychromasia and rare nucleated RBCs, consistent with a robust reticulocyte response; the corrected reticulocyte count in this case is markedly elevated (>7%). Platelets are not significantly abnormal. These features collectively support autoimmune destruction of erythrocytes in the setting of CLL. Diagnostic significance lies in recognizing AIHA as a common autoimmune complication in CLL, with a clinical picture of sudden Hb decline and compensatory erythropoiesis. Differential considerations include drug-induced hemolysis, other causes of hemolytic anemia, or marrow infiltration by CLL. Clinical correlation includes therapy implications (steroids, rituximab) and close monitoring of hemolysis markers. This image is a valuable teaching resource for hematology morphology, AIHA in CLL, and differential diagnosis in anemia.
Reed-Sternberg cell Hodgkin lymphoma histology

This histopathology image depicts a lymph node biopsy showing features diagnostic of lymphocyte-depleted classic Hodgkin lymphoma, reticular subtype. Using light microscopy on an H&E-stained paraffin section, the lymphoid architecture is markedly effaced by a cellular sheet of large, atypical mononuclear cells with prominent nucleoli. Occasional Reed-Sternberg cells are visible within the expansive background, including cells with multilobed or bilobed nuclei and prominent eosinophilic nucleoli, characteristic of Hodgkin lymphoma. The RS cells are scattered among numerous atypical mononuclear variants rather than forming a cohesive nodular structure. There is little-to-no fibrosis and only sparse non-neoplastic inflammatory cells, which is typical for the lymphocyte-depleted pattern. The background may show rimming by small lymphocytes and histiocytes in a reticular network, but overall cellularity is high. Immunophenotypic markers are not shown here, but in clinical practice RS cells typically express CD30 and CD15 with weaker PAX5 or B-cell markers. The diagnostic significance lies in recognizing the lymphocyte-depleted cHL morphology, which carries distinct clinical implications, often presenting with advanced stage disease and systemic symptoms. This image is useful for educational purposes, differential diagnosis conversation, and correlating histology with treatment planning (ABVD/BEACOPP regimens). Correlation with immunohistochemistry (CD30, CD15, PAX5) and EBV status further supports diagnosis in practice.

This brightfield histopathology image depicts a lymph node biopsy illustrating a histiocyte-rich variant of mixed cellularity classical Hodgkin lymphoma. The tissue is sectioned and stained with hematoxylin and eosin, viewed at low-to-intermediate magnification, revealing a densely cellular background with a prominent infiltrate of histiocytes and epithelioid macrophages forming aggregates, accompanied by scattered eosinophils, lymphocytes, plasma cells, and occasional neutrophils. The classic Reed-Sternberg cells are present but may be sparse within the abundant histiocytic milieu, with multilobed nuclei and prominent nucleoli. The architectural pattern is polymorphic rather than nodular, lacking prominent fibrous bands characteristic of nodular sclerosis. The histiocyte-rich variant features abundant macrophages mirroring granulomatous-like features, potentially mimicking inflammatory conditions; however, residual neoplastic Hodgkin cells in this setting bear the typical immunophenotype (CD30+, CD15+, PAX5 weak) in adjacent areas. Clinically, this histology correlates with mixed cellularity Hodgkin lymphoma, a B-cell origin neoplasm presenting with constitutional symptoms and lymphadenopathy. The image is relevant for educational demonstration of HL subtypes, differential diagnoses with non-Hodgkin lymphomas and granulomatous processes, and for training in histopathologic recognition, pattern recognition, and morphologic correlation with immunophenotype and clinical findings. Immunohistochemistry supports diagnosis by highlighting Reed-Sternberg cells (CD30+, CD15+, PAX5 weak) amid a histiocyte-rich background; EBV association may be variable; clinical staging and treatment follow Hodgkin lymphoma guidelines.
myeloproliferative neoplasm polycythemia vera chronic myeloid leukemia blood smear

A simplified pathophysiology diagram illustrating the haematopoiesis lineage and its association with myeloproliferative neoplasms (MPNs). The flowchart begins with a multipotent 'Blood stem cell' affected by a 'JAK2 mutation' (represented by a lightning bolt), which then differentiates into two main lineages: Myeloid and Lymphoid progenitor cells. The lymphoid lineage branches into T cells, B cells, and NK cells, collectively categorized as White blood cells. The myeloid lineage differentiates into Platelets, Red blood cells, Monocytes, and Neutrophils. The diagram uses symbols to indicate the hallmarks of classic Philadelphia-negative MPNs: Essential Thrombocythemia (ET) is marked by an upward arrow for platelets (thrombocytosis); Polycythemia Vera (PV) is marked by an upward arrow for red blood cells (erythrocytosis); and Primary Myelofibrosis (PMF) is indicated by bidirectional arrows under the myeloid group, representing variable cell counts. This educational visual explains the clonal evolution of myeloid cells under genetic influence and the resulting clinical manifestations of specific MPN subtypes.

Clinical photographs of cutaneous manifestations in a patient with atypical chronic myeloid leukemia (aCML) and hypereosinophilia. Image A displays a widespread, confluent erythematous maculopapular rash on the torso. The lesions are diffuse, poorly demarcated, and merge to form a mottled, inflammatory appearance consistent with recurrent eosinophilic dermatosis. Image B shows the lower extremity exhibiting multiple purpuric lesions, including pinpoint-sized petechiae and larger, irregular ecchymoses. These lesions present as deep purple to bluish discolorations, indicating blood extravasation into the subcutaneous tissue. The combination of these findings illustrates the dermatologic complications associated with myeloproliferative neoplasms and peripheral eosinophilia, ranging from inflammatory hypersensitivity reactions to microvascular or hemorrhagic manifestations.
non-Hodgkin lymphoma diffuse large B cell lymphoma histology

A high-magnification histopathology image of testicular tissue with diffuse large B-cell lymphoma (DLBCL), an extranodal non-Hodgkin lymphoma. Hematoxylin and eosin staining highlights sheets of large lymphoid cells with vesicular nuclei, prominent nucleoli, and scant to moderate cytoplasm that collectively efface the normal testicular architecture. A distinctive feature is a perivascular cuff of viable tumor cells surrounding a small blood vessel, illustrating focal preservation of subtle stromal vascularity within an extensively infiltrated parenchyma. Scattered mitotic figures and areas of geographic necrosis may be present, underscoring tumor aggressiveness. Immunophenotypic expectations for DLBCL include CD20 and PAX5 positivity with variable expression of CD10, BCL6, and MUM1, and a high Ki-67 proliferation index, though these are not directly demonstrated in the image. Clinically, testicular DLBCL commonly presents as an enlarging scrotal mass in adults and carries a risk of systemic spread, including CNS involvement; management typically combines systemic chemotherapy with CNS prophylaxis in select cases. This image is educational for lymphoma histology, differential diagnosis (e.g., Burkitt lymphoma, seminoma with dense lymphocytic infiltrate), and pathology–clinical correlation in testicular neoplasms. This contextualizes the image for educational use in tumor classification, hematopathology seminars, and informatics-based research datasets emphasizing morphology, perivascular patterns, and necrotic heterogeneity in aggressive B-cell lymphomas.

Imaging modality: Histopathology using light microscopy of a lymph node biopsy, stained with Hematoxylin and Eosin (H&E). The section shows diffuse effacement of nodal architecture by sheets of large malignant lymphoid cells, characteristic of diffuse large B-cell lymphoma (DLBCL). Cells are enlarged and discohesive, with marked pleomorphism: vesicular nuclei, prominent nucleoli, and irregular nuclear contours; cytoplasm ranges from scant to ample, contributing to variable cell size. A high mitotic rate is evident, with frequent apoptotic bodies and necrotic foci (necrosis prominent in this field). Background comprises scattered small non-neoplastic lymphocytes, macrophages, and dendritic cells, all overwhelmed by neoplastic population. The pattern lacks the orderly nodal architecture typical of reactive hyperplasia, consistent with a high-grade lymphoma. Immunophenotypic expectation includes CD20/CD79a positivity on lymphoma cells (not visible in H&E) and high proliferative index (Ki-67 often >60-80%), supporting aggressive behavior. These features explain rapid lymph node enlargement and potential systemic symptoms. Clinically, DLBCL (diffuse large B-cell lymphoma) is an aggressive non-Hodgkin lymphoma with variable nodal involvement; prognosis depends on stage, biology, and treatment response. This image is relevant for education on high-grade B-cell neoplasia, differential diagnosis with Burkitt lymphoma, and the importance of correlating histology with immunohistochemistry and staging for optimal management strategies.
neutrophilia reactive leukocytosis peripheral blood smear

This is a peripheral blood smear prepared with Wright-Giemsa stain and examined under brightfield illumination at high magnification (approximately 1000x total, 100x objective with oil immersion). The smear displays predominantly erythrocytes with uniform pink cytoplasm and characteristic biconcave morphology, arranged singly with occasional rouleaux. Interspersed among the red cells are leukocytes with visible nuclei. Notably, two large lymphocyte-like cells or mononuclear leukocytes appear conspicuously larger than surrounding erythrocytes; these cells have round to oval, deeply basophilic nuclei with dense chromatin and scant, lightly basophilic cytoplasm. No visible granulocytic cytoplasm granules or multiple lobes are clearly resolved in this field, and there are no obvious nucleoli or cytoplasmic inclusions evident in these cells. The background lacks abnormal pigment or reticulocytosis. Overall cell morphology is consistent with a normal or mildly reactive hematologic smear; in a clinical context, additional data such as complete blood count, differential, and patient history would be needed to determine whether there is leukocytosis or blasts. This image serves as an educational reference for recognizing basic peripheral blood components, evaluating leukocyte size variation, and assessing RBC morphology for hematology training and diagnostic differential diagnoses. Additional cases and image contexts can reinforce recognition of hematologic normal variants and patterns.

Imaging modality: Bright-field microscopy of Wright-Giemsa stained peripheral blood smear. Anatomical target: circulating peripheral blood cells, with a focus on B-cell prolymphocytes. Visual features: a monomorphic population of medium-to-large lymphoid cells exhibiting round to slightly irregular nuclei, coarse chromatin, and prominent nucleoli; cytoplasm is basophilic and variably abundant; occasional cytoplasmic projections may be seen; the smear background shows scattered erythrocytes and platelets. Overall, leukocytosis with prolymphocytic predominance suggests a malignant B-cell process. Pathological context: morphological hallmarks of B-cell prolymphocytic leukemia (B-PLL), defined by prolymphocytes comprising more than 55% of circulating lymphoid cells in peripheral blood; cells may be part of a systemic leukemia involving bone marrow and spleen. Immunophenotype typically expresses B-cell markers (CD19, CD20) with light chain restriction; immunohistochemistry and flow cytometry are used for confirmation; distinction from mantle cell lymphoma (cyclin D1/MCL) and CLL with increased prolymphocytes is critical. Diagnostic significance: detection of prolymphocytic leukocytes guides prognosis and therapeutic planning, as B-PLL has an aggressive course and limited responsiveness to standard CLL regimens. Clinical correlation: patients are commonly elderly with fatigue, cytopenias, and organomegaly; accurate classification influences treatment choice and clinical trial eligibility; this image serves as an educational reference for hematology, pathology, and medical education.
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/wbc-disorders && cat << 'PYEOF' > /tmp/workspace/wbc-disorders/build.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 # ── Color Palette ────────────────────────────────────────────────────────────── DEEP_NAVY = RGBColor(0x0D, 0x1B, 0x3E) # slide background / title bg GOLD = RGBColor(0xE8, 0xAE, 0x21) # accent / headings WHITE = RGBColor(0xFF, 0xFF, 0xFF) LIGHT_BLUE = RGBColor(0xD0, 0xE8, 0xF5) # box backgrounds MED_BLUE = RGBColor(0x1A, 0x5C, 0x8A) # section headers DARK_GRAY = RGBColor(0x33, 0x33, 0x33) RED_ACCENT = RGBColor(0xC0, 0x39, 0x2B) GREEN_ACC = RGBColor(0x1A, 0x7A, 0x46) PALE_GOLD = RGBColor(0xFF, 0xF0, 0xC0) W = Inches(13.333) H = Inches(7.5) prs = Presentation() prs.slide_width = W prs.slide_height = H blank = prs.slide_layouts[6] # ──────────────────────────────────────────────────────────────────────────── # Helper functions # ──────────────────────────────────────────────────────────────────────────── def add_bg(slide, color=DEEP_NAVY): from pptx.util import Emu bg = slide.shapes.add_shape(1, 0, 0, W, H) bg.fill.solid() bg.fill.fore_color.rgb = color bg.line.fill.background() def add_rect(slide, x, y, w, h, fill, line_color=None, line_width=Pt(0)): shape = slide.shapes.add_shape(1, x, y, w, h) shape.fill.solid() shape.fill.fore_color.rgb = fill if line_color: shape.line.color.rgb = line_color shape.line.width = line_width else: shape.line.fill.background() return shape def add_text(slide, text, x, y, w, h, size, bold=False, color=WHITE, align=PP_ALIGN.LEFT, italic=False, wrap=True, font="Calibri"): tb = slide.shapes.add_textbox(x, y, w, h) tf = tb.text_frame tf.word_wrap = wrap tf.margin_left = 0; tf.margin_right = 0 tf.margin_top = 0; tf.margin_bottom = 0 p = tf.paragraphs[0] p.alignment = align run = p.add_run() run.text = text run.font.name = font run.font.size = Pt(size) run.font.bold = bold run.font.italic = italic run.font.color.rgb = color return tf def add_bullet_text(slide, lines, x, y, w, h, size, color=WHITE, bold_first=False, font="Calibri", line_spacing=1.15): from pptx.util import Pt as _Pt from pptx.oxml.ns import qn from lxml import etree tb = slide.shapes.add_textbox(x, y, w, h) tf = tb.text_frame tf.word_wrap = True tf.margin_left = Inches(0.05) tf.margin_right = Inches(0.05) tf.margin_top = Inches(0.05) tf.margin_bottom = 0 for i, line in enumerate(lines): if i == 0: p = tf.paragraphs[0] else: p = tf.add_paragraph() p.space_before = Pt(2) run = p.add_run() run.text = line run.font.name = font run.font.size = _Pt(size) run.font.bold = (bold_first and i == 0) run.font.color.rgb = color return tf def fetch_images(*urls): result = subprocess.check_output( ["python", "/tmp/skills/shared/scripts/fetch_images.py"] + list(urls), timeout=60 ) return json.loads(result) def embed_image(slide, url_or_b64, x, y, w, h, is_b64=False): """Add image to slide from URL (fetches) or from base64 string.""" if is_b64: raw = base64.b64decode(url_or_b64.split(",", 1)[-1]) else: imgs = fetch_images(url_or_b64) if not imgs or not imgs[0]["base64"]: return raw = base64.b64decode(imgs[0]["base64"].split(",", 1)[-1]) slide.shapes.add_picture(BytesIO(raw), x, y, w, h) # ──────────────────────────────────────────────────────────────────────────── # IMAGE URLs collected from search # ──────────────────────────────────────────────────────────────────────────── IMG_AML_BLASTS = "https://cdn.orris.care/cdss_images/Pathology_1760048203277_e330b531-c658-4ae3-bc11-761590283f3a.jpg" IMG_CLL_SMUDGE = "https://cdn.orris.care/cdss_images/Pathology_1760046957885_3fe6ae2a-8441-46c0-835e-ccb25b941163.jpg" IMG_HODGKIN = "https://cdn.orris.care/cdss_images/Pathology_1760047328723_4f7ce294-c9ee-4fab-9bd0-54b25ff1cea3.jpg" IMG_DLBCL = "https://cdn.orris.care/cdss_images/Pathology_1760053134058_e3d929dd-4fd6-46ef-a332-76e840928280.jpg" IMG_MPN_DIAG = "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_9d8c308caa00606850e5421b2af8996aa4d78cf0b8fa8bbc5ba2509e7045e192.jpg" IMG_MDS_MEGA = "https://cdn.orris.care/cdss_images/Pathology_1760048205339_df94ed0b-9eb5-4d90-8002-a4407e324be4.jpg" print("Fetching images...") imgs = fetch_images(IMG_AML_BLASTS, IMG_CLL_SMUDGE, IMG_HODGKIN, IMG_DLBCL, IMG_MPN_DIAG, IMG_MDS_MEGA) img_data = { "aml": imgs[0]["base64"] if imgs[0]["base64"] else None, "cll": imgs[1]["base64"] if imgs[1]["base64"] else None, "hodgkin": imgs[2]["base64"] if imgs[2]["base64"] else None, "dlbcl": imgs[3]["base64"] if imgs[3]["base64"] else None, "mpn": imgs[4]["base64"] if imgs[4]["base64"] else None, "mds": imgs[5]["base64"] if imgs[5]["base64"] else None, } print(f"Images fetched: {[k for k,v in img_data.items() if v]}") def embed_b64(slide, b64_str, x, y, w, h): if not b64_str: return raw = base64.b64decode(b64_str.split(",", 1)[-1]) slide.shapes.add_picture(BytesIO(raw), x, y, w, h) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 1 — TITLE SLIDE # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) # decorative gold strip add_rect(slide, 0, Inches(6.2), W, Inches(0.15), GOLD) # cell graphic placeholder (colored rectangle accent) add_rect(slide, Inches(9.5), Inches(1.2), Inches(3.5), Inches(4.5), MED_BLUE) # Title add_text(slide, "WBC DISORDERS", Inches(0.5), Inches(1.8), Inches(8.5), Inches(1.6), 52, bold=True, color=GOLD, align=PP_ALIGN.LEFT) add_text(slide, "A Comprehensive Review for Pathology Residents", Inches(0.5), Inches(3.5), Inches(8.8), Inches(0.9), 22, color=LIGHT_BLUE, align=PP_ALIGN.LEFT) add_text(slide, "Covering Reactive Disorders • Myeloid Neoplasms • Lymphoid Neoplasms", Inches(0.5), Inches(4.3), Inches(8.8), Inches(0.6), 14, color=WHITE, align=PP_ALIGN.LEFT, italic=True) # Bottom credits add_text(slide, "Department of Pathology | Hematopathology Series", Inches(0.5), Inches(6.6), Inches(8), Inches(0.5), 12, color=LIGHT_BLUE, align=PP_ALIGN.LEFT) # Overlay some text on the blue box add_text(slide, "LEUKOCYTES\nIN DISEASE", Inches(9.6), Inches(2.5), Inches(3), Inches(2), 20, bold=True, color=GOLD, align=PP_ALIGN.CENTER) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 2 — OVERVIEW / CLASSIFICATION # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), MED_BLUE) add_text(slide, "Classification of WBC Disorders", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 32, bold=True, color=WHITE, align=PP_ALIGN.LEFT) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) # Three columns col_w = Inches(3.9) # Column 1 - Reactive add_rect(slide, Inches(0.3), Inches(1.5), col_w, Inches(5.6), MED_BLUE) add_text(slide, "REACTIVE CHANGES", Inches(0.35), Inches(1.55), col_w-Inches(0.1), Inches(0.55), 14, bold=True, color=GOLD, align=PP_ALIGN.CENTER) add_bullet_text(slide, ["• Neutrophilia", "• Neutropenia", "• Lymphocytosis", "• Eosinophilia", "• Monocytosis", "• Basophilia", "• Leukemoid reaction", "• Left shift", "• Infectious mononucleosis"], Inches(0.5), Inches(2.15), col_w-Inches(0.3), Inches(4.7), 13, color=WHITE) # Column 2 - Myeloid add_rect(slide, Inches(4.7), Inches(1.5), col_w, Inches(5.6), RGBColor(0x12, 0x3A, 0x6A)) add_text(slide, "MYELOID NEOPLASMS", Inches(4.75), Inches(1.55), col_w-Inches(0.1), Inches(0.55), 14, bold=True, color=GOLD, align=PP_ALIGN.CENTER) add_bullet_text(slide, ["• AML (WHO classification)", "• MDS", "• MPN:", " - CML (BCR-ABL1)", " - Polycythemia vera", " - Essential thrombocythemia", " - Primary myelofibrosis", "• MDS/MPN overlap", "• Mastocytosis"], Inches(4.9), Inches(2.15), col_w-Inches(0.3), Inches(4.7), 13, color=WHITE) # Column 3 - Lymphoid add_rect(slide, Inches(9.1), Inches(1.5), col_w, Inches(5.6), RGBColor(0x2C, 0x1B, 0x5A)) add_text(slide, "LYMPHOID NEOPLASMS", Inches(9.15), Inches(1.55), col_w-Inches(0.1), Inches(0.55), 14, bold=True, color=GOLD, align=PP_ALIGN.CENTER) add_bullet_text(slide, ["• B-cell neoplasms:", " - ALL/LBL", " - CLL/SLL", " - DLBCL", " - Follicular lymphoma", " - Burkitt lymphoma", "• T-cell / NK-cell neoplasms", "• Plasma cell neoplasms", "• Hodgkin lymphoma"], Inches(9.3), Inches(2.15), col_w-Inches(0.3), Inches(4.7), 13, color=WHITE) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 3 — REACTIVE WBC CHANGES # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), RGBColor(0x1A, 0x6A, 0x3A)) add_text(slide, "Reactive WBC Changes", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 32, bold=True, color=WHITE) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) # Table of reactive changes headers = ["Disorder", "WBC Count", "Key Cause", "Morphology/Notes"] col_xs = [Inches(0.3), Inches(2.8), Inches(5.4), Inches(8.5)] col_ws = [Inches(2.4), Inches(2.5), Inches(3.0), Inches(4.5)] # Header row add_rect(slide, Inches(0.3), Inches(1.4), Inches(12.7), Inches(0.45), MED_BLUE) for j, (h, x, cw) in enumerate(zip(headers, col_xs, col_ws)): add_text(slide, h, x+Inches(0.05), Inches(1.42), cw, Inches(0.4), 12, bold=True, color=GOLD) rows = [ ["Neutrophilia", ">7,500/µL", "Infection, stress, steroids", "Left shift; toxic granules; Döhle bodies"], ["Neutropenia", "<1,500/µL", "Drugs, viral infxn, B12/folate deficiency","Hypersegmentation in megaloblastic causes"], ["Lymphocytosis", ">4,000/µL", "EBV, CMV, pertussis, viral", "Atypical lymphocytes (Downey cells) in EBV"], ["Eosinophilia", ">500/µL", "Allergy, parasites, Löeffler, HES","Charcot-Leyden crystals in tissue"], ["Monocytosis", ">800/µL", "TB, fungal, chronic inflammation","Kidney-shaped nuclei; vacuolated cytoplasm"], ["Leukemoid Rxn", ">50,000/µL", "Severe infection, malignancy", "LAP score HIGH (vs CML where it is LOW)"], ] row_colors = [DEEP_NAVY, RGBColor(0x14, 0x2A, 0x50)] for i, row in enumerate(rows): y = Inches(1.9) + i * Inches(0.85) add_rect(slide, Inches(0.3), y, Inches(12.7), Inches(0.82), row_colors[i % 2]) for txt, x, cw in zip(row, col_xs, col_ws): add_text(slide, txt, x+Inches(0.05), y+Inches(0.08), cw-Inches(0.1), Inches(0.7), 11, color=WHITE) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 4 — AML # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), RED_ACCENT) add_text(slide, "Acute Myeloid Leukemia (AML)", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 32, bold=True, color=WHITE) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) # Left content left_lines = [ "DEFINITION", "Tumor of hematopoietic progenitors with acquired oncogenic mutations", "that impede differentiation → accumulation of myeloid blasts in marrow.", "", "DIAGNOSTIC THRESHOLD", "≥20% blasts in blood/bone marrow (WHO 2022)", "", "WHO CLASSIFICATION (Key Subtypes)", "• t(8;21) → RUNX1::RUNX1T1 [Favorable]", "• inv(16) → CBFB::MYH11 [Favorable]", "• t(15;17) → PML::RARA [APL — Very Favorable]", "• KMT2A rearrangement [Poor prognosis]", "• NPM1 mutation [Favorable if FLT3-ITD negative]", "• TP53 mutation [Very poor]", "", "MORPHOLOGY", "• Large blasts with fine chromatin, prominent nucleoli", "• Auer rods: pathognomonic for myeloid lineage", "• Bundles = Faggot cells (APL specific)", "", "CLINICAL FEATURES", "• Marrow failure: anemia, thrombocytopenia, neutropenia", "• DIC — especially in APL (t15;17)", "• Peak incidence: >60 years; ~13,000 new cases/year in the US", ] add_bullet_text(slide, left_lines, Inches(0.35), Inches(1.4), Inches(5.5), Inches(5.8), 10.5, color=WHITE, bold_first=False) # Highlight important box add_rect(slide, Inches(0.35), Inches(1.42), Inches(5.5), Inches(0.22), GOLD) add_text(slide, "DEFINITION", Inches(0.4), Inches(1.44), Inches(5.4), Inches(0.18), 10, bold=True, color=DEEP_NAVY) # Right: image add_rect(slide, Inches(6.2), Inches(1.35), Inches(6.8), Inches(5.8), RGBColor(0x10, 0x28, 0x48)) embed_b64(slide, img_data["aml"], Inches(6.3), Inches(1.45), Inches(6.6), Inches(4.8)) add_text(slide, "Bone marrow aspirate: sheets of myeloblasts with high N:C ratio,\nfine chromatin, prominent nucleoli — morphologic hallmark of AML", Inches(6.2), Inches(6.3), Inches(6.8), Inches(0.7), 9.5, color=LIGHT_BLUE, italic=True, align=PP_ALIGN.CENTER) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 5 — MDS # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), RGBColor(0x7B, 0x34, 0x10)) add_text(slide, "Myelodysplastic Syndromes (MDS)", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 32, bold=True, color=WHITE) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) # Left panel add_bullet_text(slide, [ "DEFINITION", "Clonal myeloid neoplasm with ineffective hematopoiesis → cytopenias", "despite hypercellular bone marrow; risk of transformation to AML.", "", "KEY FEATURES", "• Dysplasia in ≥1 myeloid lineage (≥10% cells affected)", "• <20% blasts (≥20% = AML)", "• Peripheral blood cytopenias", "• Hypercellular marrow (paradox: cell death > output)", "", "MORPHOLOGIC DYSPLASIA", "Erythroid: Megaloblastoid change, ringed sideroblasts,", " binucleated erythroblasts, nuclear budding", "Myeloid: Hypogranular neutrophils, pseudo-Pelger-Huët", " anomaly, bilobed nuclei", "Megakaryocytic: Micromegakaryocytes, monolobated forms,", " hypolobated nuclei (MDS hallmark)", "", "WHO 2022 CLASSIFICATION", "• MDS with defining genetic abnormality (SF3B1, TP53, etc.)", "• MDS NOS: low blast / high blast", "", "PROGNOSIS (IPSS-R)", "• Very low → Very high risk categories", "• Treatment: supportive, hypomethylating agents (azacitidine),", " allogeneic stem cell transplant for eligible patients", ], Inches(0.35), Inches(1.35), Inches(6.5), Inches(5.85), 10.5, color=WHITE) # Right image — MDS dysplastic megakaryocytes add_rect(slide, Inches(7.1), Inches(1.35), Inches(5.9), Inches(5.85), RGBColor(0x10, 0x28, 0x48)) embed_b64(slide, img_data["mds"], Inches(7.2), Inches(1.45), Inches(5.7), Inches(4.9)) add_text(slide, "Dysplastic megakaryocytes with abnormal nuclear morphology —\na key morphologic feature in MDS bone marrow aspirate", Inches(7.1), Inches(6.35), Inches(5.9), Inches(0.65), 9.5, color=LIGHT_BLUE, italic=True, align=PP_ALIGN.CENTER) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 6 — MYELOPROLIFERATIVE NEOPLASMS # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), RGBColor(0x5A, 0x1A, 0x6A)) add_text(slide, "Myeloproliferative Neoplasms (MPNs)", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 32, bold=True, color=WHITE) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) # Diagram area (left/top) embed_b64(slide, img_data["mpn"], Inches(0.3), Inches(1.35), Inches(4.5), Inches(3.5)) add_text(slide, "JAK2 mutation drives clonal proliferation\nin Ph-negative MPNs", Inches(0.3), Inches(4.9), Inches(4.5), Inches(0.5), 9.5, color=LIGHT_BLUE, italic=True, align=PP_ALIGN.CENTER) # 4 boxes for the 4 main MPNs mpn_data = [ ("CML", "BCR-ABL1 t(9;22) Philadelphia chromosome\n• Leukocytosis with full maturation spectrum\n• Basophilia, LAP score LOW\n• Tx: Imatinib (TKI)", MED_BLUE), ("Polycythemia Vera", "JAK2 V617F (>95%)\n• Erythrocytosis, splenomegaly\n• Thrombosis risk\n• Phlebotomy + hydroxyurea", RGBColor(0x1A, 0x6A, 0x3A)), ("Essential Thrombocythemia", "JAK2 (50-60%), CALR, MPL\n• Platelets >450 × 10⁹/L\n• Thrombosis & hemorrhage\n• Aspirin + cytoreduction", RGBColor(0x7B, 0x34, 0x10)), ("Primary Myelofibrosis", "JAK2, CALR, or MPL\n• Leukoerythroblastic blood picture\n• Tear-drop cells (dacrocytes)\n• Dry tap; reticulin/collagen fibrosis", RGBColor(0x5A, 0x1A, 0x6A)), ] bx = Inches(5.1) bw = Inches(3.95) bh = Inches(2.9) for i, (title, body, col) in enumerate(mpn_data): row = i // 2 col_i = i % 2 bx_pos = Inches(5.1) + col_i * Inches(4.05) by_pos = Inches(1.35) + row * Inches(3.0) add_rect(slide, bx_pos, by_pos, bw, bh, col) add_text(slide, title, bx_pos + Inches(0.1), by_pos + Inches(0.07), bw - Inches(0.2), Inches(0.4), 13, bold=True, color=GOLD) add_text(slide, body, bx_pos + Inches(0.1), by_pos + Inches(0.5), bw - Inches(0.2), bh - Inches(0.6), 10.5, color=WHITE, wrap=True) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 7 — CLL / SLL # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), RGBColor(0x1A, 0x4A, 0x7A)) add_text(slide, "Chronic Lymphocytic Leukemia (CLL) / Small Lymphocytic Lymphoma (SLL)", Inches(0.4), Inches(0.1), Inches(12), Inches(1.0), 26, bold=True, color=WHITE) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) # Left content add_bullet_text(slide, [ "DEFINITION", "CLL: Neoplasm of small mature B-lymphocytes in blood/marrow (≥5×10⁹/L).", "SLL: Same cells confined to lymph nodes/spleen without leukemic phase.", "", "IMMUNOPHENOTYPE (diagnostic)", "• CD5⁺, CD19⁺, CD23⁺ (key co-expression)", "• Dim surface Ig, dim CD20, dim CD79b", "• ZAP-70, CD38 = adverse prognosis markers", "", "MORPHOLOGY", "• Small mature lymphocytes, scant cytoplasm, clumped chromatin", "• SMUDGE / BASKET CELLS — fragile leukemic cells disrupted during smear", "• Proliferation centers (pseudo-follicles) in tissue sections", "", "GENETICS & PROGNOSIS", "• del(13q14): Most common; FAVORABLE", "• del(11q22): ATM deletion; UNFAVORABLE", "• del(17p13): TP53; VERY POOR, resistant to chemo", "• Trisomy 12: Intermediate prognosis", "", "IGHV mutation status: Mutated = better prognosis", "", "STAGING: Rai (0–IV) / Binet (A/B/C)", "TREATMENT: BTK inhibitors (ibrutinib, acalabrutinib),", "BCL-2 inhibitor (venetoclax), anti-CD20 (rituximab)", ], Inches(0.35), Inches(1.35), Inches(6.3), Inches(5.85), 10.5, color=WHITE) # Right image add_rect(slide, Inches(7.0), Inches(1.35), Inches(6.0), Inches(5.85), RGBColor(0x10, 0x28, 0x48)) embed_b64(slide, img_data["cll"], Inches(7.1), Inches(1.45), Inches(5.8), Inches(4.8)) add_text(slide, "Peripheral blood smear in CLL: monotonous small lymphocytes\nand characteristic smudge (basket) cells", Inches(7.0), Inches(6.3), Inches(6.0), Inches(0.7), 9.5, color=LIGHT_BLUE, italic=True, align=PP_ALIGN.CENTER) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 8 — DIFFUSE LARGE B-CELL LYMPHOMA # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), RGBColor(0x1A, 0x5C, 0x6A)) add_text(slide, "Diffuse Large B-Cell Lymphoma (DLBCL)", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 32, bold=True, color=WHITE) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) add_bullet_text(slide, [ "DEFINITION & EPIDEMIOLOGY", "Most common aggressive non-Hodgkin lymphoma (NHL); ~30-40% of all NHLs.", "Median age 60-70 years; often presents with rapidly enlarging lymph nodes.", "", "MORPHOLOGY", "• Diffuse effacement of nodal architecture", "• Large cells: vesicular nuclei, prominent nucleoli, scant-to-moderate cytoplasm", "• High mitotic rate, frequent apoptosis, geographic necrosis", "", "IMMUNOPHENOTYPE", "• CD20⁺, CD79a⁺, PAX5⁺ (B-cell markers)", "• Cell-of-origin (COO) by Hans classifier:", " - GCB type: CD10⁺, BCL6⁺, MUM1- [Better prognosis]", " - ABC/non-GCB: MUM1⁺ [Worse prognosis]", "• Ki-67 often >60-80%", "", "KEY MOLECULAR SUBTYPES (WHO 2022)", "• DLBCL with MYC and BCL2 rearrangements (Double-Hit) → very aggressive", "• EBV-positive DLBCL", "• Primary mediastinal large B-cell lymphoma (PMBCL)", "", "TREATMENT: R-CHOP (rituximab + CHOP) for most cases", "Double-hit → R-EPOCH preferred", ], Inches(0.35), Inches(1.35), Inches(6.0), Inches(5.85), 10.5, color=WHITE) add_rect(slide, Inches(6.7), Inches(1.35), Inches(6.3), Inches(5.85), RGBColor(0x10, 0x28, 0x48)) embed_b64(slide, img_data["dlbcl"], Inches(6.8), Inches(1.45), Inches(6.1), Inches(4.8)) add_text(slide, "DLBCL: diffuse sheets of large pleomorphic lymphoid cells with prominent", Inches(6.7), Inches(6.3), Inches(6.3), Inches(0.7), 9.5, color=LIGHT_BLUE, italic=True, align=PP_ALIGN.CENTER) add_text(slide, "nucleoli, effacement of nodal architecture, high Ki-67", Inches(6.7), Inches(6.55), Inches(6.3), Inches(0.5), 9.5, color=LIGHT_BLUE, italic=True, align=PP_ALIGN.CENTER) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 9 — HODGKIN LYMPHOMA # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), RGBColor(0x4A, 0x3A, 0x10)) add_text(slide, "Hodgkin Lymphoma (HL)", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 32, bold=True, color=WHITE) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) # Image first add_rect(slide, Inches(0.3), Inches(1.35), Inches(5.8), Inches(5.85), RGBColor(0x10, 0x28, 0x48)) embed_b64(slide, img_data["hodgkin"], Inches(0.4), Inches(1.45), Inches(5.6), Inches(4.8)) add_text(slide, "Classic HL: Reed-Sternberg cells (owl-eye nucleoli) within a mixed", Inches(0.3), Inches(6.3), Inches(5.8), Inches(0.5), 9.5, color=LIGHT_BLUE, italic=True, align=PP_ALIGN.CENTER) add_text(slide, "inflammatory background of lymphocytes, eosinophils, plasma cells", Inches(0.3), Inches(6.6), Inches(5.8), Inches(0.4), 9.5, color=LIGHT_BLUE, italic=True, align=PP_ALIGN.CENTER) # Right content add_bullet_text(slide, [ "HALLMARK CELL — Reed-Sternberg (RS) Cell", "Large binucleated/bilobed cell, prominent eosinophilic", "'owl-eye' nucleoli; CD30⁺, CD15⁺, PAX5 weak, CD45-", "", "CLASSICAL HL SUBTYPES (cHL)", "1. Nodular Sclerosis (NS) — Most common (~70%)", " Fibrous bands, lacunar RS cells; mediastinal mass typical", "2. Mixed Cellularity (MC) — ~25%", " Mixed inflammatory background; EBV-associated", "3. Lymphocyte-Rich — Rare; best prognosis in cHL", "4. Lymphocyte-Depleted (LD) — Rarest; poorest prognosis", "", "NODULAR LYMPHOCYTE-PREDOMINANT HL (NLPHL)", "• Lymphocytic & histiocytic (L&H/'popcorn') cells", "• CD20⁺, CD45⁺, CD30-, CD15- (differs from cHL!)", "• Indolent; rare transformation to DLBCL", "", "STAGING: Ann Arbor (I–IV) + A/B symptoms", "BIOLOGIC BEHAVIOR", "• Contiguous nodal spread (different from NHL)", "• EBV in ~40% of mixed cellularity subtype", "", "TREATMENT: ABVD (doxorubicin, bleomycin, vinblastine,", "dacarbazine); BEACOPP for advanced disease", "Brentuximab vedotin (anti-CD30) for relapsed/refractory", ], Inches(6.4), Inches(1.35), Inches(6.6), Inches(5.85), 10.5, color=WHITE) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 10 — ADDITIONAL LYMPHOID NEOPLASMS # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), RGBColor(0x2A, 0x5A, 0x2A)) add_text(slide, "Other Key Lymphoid Neoplasms", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 32, bold=True, color=WHITE) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) entities = [ ("Follicular Lymphoma", "Grade 1-3A (indolent) vs 3B (aggressive)\nBCL2 rearrangement t(14;18)\nCD10+, BCL6+, BCL2+\nWatching-and-waiting for low-grade;\nR-CHOP for high-grade / symptomatic", RGBColor(0x12, 0x3A, 0x5A)), ("Burkitt Lymphoma", "MYC rearrangement (t(8;14) most common)\n'Starry sky' pattern (macrophages engulfing apoptotic cells)\nChi-74 Ki-67 ~100% | TdT-\nSporadic, endemic (EBV), immunodeficiency types\nUrgent intensive chemo (CODOX-M/IVAC)", RGBColor(0x5A, 0x12, 0x1A)), ("Mantle Cell Lymphoma", "t(11;14) → Cyclin D1 overexpression\nCD5+, CD19+, CD23-, Cyclin D1+\nBlastoid variant = aggressive\nIbrutinib, BTK inhibitors; SCT in fit patients", RGBColor(0x3A, 0x1A, 0x5A)), ("ALL/LBL", "B-ALL (most common in children) & T-ALL\nBlasts TdT+; ≥20% blasts for leukemia designation\nPh+ B-ALL (t(9;22)): add TKI to treatment\nGood prognosis in pediatric B-ALL (~85% cure)", RGBColor(0x1A, 0x4A, 0x4A)), ("Plasma Cell Myeloma", "Clonal plasma cells ≥10% in marrow\nM-protein on SPEP; lytic bone lesions\nHypercalcemia, Renal failure, Anemia, Bone (CRAB)\nCD138+, CD38+; SFLC ratio abnormal\nTreatment: VRd (bortezomib/lenalidomide/dex)", RGBColor(0x4A, 0x2A, 0x10)), ("T-Cell Lymphomas", "Peripheral T-cell lymphoma NOS (most common)\nALCL: ALK+ (good) vs ALK- (poor prognosis)\nAngioimmunoblastic T-cell lymphoma\nExtranodal NK/T-cell (EBV+, midline destruction)\nAgressive; CHOP-based or novel agents", RGBColor(0x1A, 0x3A, 0x1A)), ] bw = Inches(4.2) bh = Inches(2.75) for i, (title, body, col) in enumerate(entities): row = i // 3 col_i = i % 3 bx_pos = Inches(0.25) + col_i * Inches(4.3) by_pos = Inches(1.35) + row * Inches(2.85) add_rect(slide, bx_pos, by_pos, bw, bh, col) add_text(slide, title, bx_pos + Inches(0.1), by_pos + Inches(0.07), bw - Inches(0.2), Inches(0.38), 12, bold=True, color=GOLD) add_rect(slide, bx_pos, by_pos + Inches(0.44), bw, Inches(0.02), GOLD) add_text(slide, body, bx_pos + Inches(0.1), by_pos + Inches(0.5), bw - Inches(0.2), bh - Inches(0.55), 10, color=WHITE, wrap=True) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 11 — IMMUNOPHENOTYPING QUICK REFERENCE # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), MED_BLUE) add_text(slide, "Immunophenotyping Quick Reference", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 32, bold=True, color=WHITE) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) headers = ["Neoplasm", "CD3", "CD5", "CD10", "CD19", "CD20", "CD23", "CD30", "CD34", "TdT", "Other"] col_widths = [Inches(1.85), Inches(0.55), Inches(0.55), Inches(0.6), Inches(0.6), Inches(0.65), Inches(0.65), Inches(0.65), Inches(0.65), Inches(0.55), Inches(5.2)] col_start = Inches(0.2) xs = [col_start] for cw in col_widths[:-1]: xs.append(xs[-1] + cw) # Header add_rect(slide, Inches(0.2), Inches(1.35), Inches(12.93), Inches(0.45), MED_BLUE) for h, x, cw in zip(headers, xs, col_widths): add_text(slide, h, x+Inches(0.03), Inches(1.37), cw, Inches(0.4), 10, bold=True, color=GOLD, align=PP_ALIGN.CENTER) # Data rows rows_data = [ ["AML", "-", "-", "-", "-", "-", "-", "+/-", "+", "+/-", "MPO+, CD13+, CD33+, CD117+"], ["B-ALL", "-", "-", "+", "+", "+/-","-", "-", "+", "+", "CD10+ (common ALL Ag); MPO-"], ["T-ALL", "+", "+", "-", "-", "-", "-", "-", "+", "+", "TdT+; CD1a+ (cortical T)"], ["CLL/SLL", "-", "+", "-", "+", "dim","+", "-", "-", "-", "CD23+; dim surface Ig"], ["MCL", "-", "+", "-", "+", "+", "-", "-", "-", "-", "Cyclin D1+, t(11;14)"], ["FL", "-", "-", "+", "+", "+", "+/-","-", "-", "-", "BCL2+, BCL6+, t(14;18)"], ["DLBCL", "-", "-", "+/-", "+", "+", "-", "+/-", "-", "-", "GCB vs ABC COO; MYC, BCL2"], ["Burkitt", "-", "-", "+", "+", "+", "-", "-", "-", "-", "Ki-67~100%, t(8;14), TdT-"], ["cHL", "-", "+/-","-", "-", "weak","-", "+", "-", "-", "CD15+; PAX5 weak; RS cells"], ["NLPHL", "-", "-", "-", "+", "+", "+", "-", "-", "-", "L&H 'popcorn' cells; EMA+"], ["PTCL-NOS", "+", "-", "-", "-", "-", "-", "+/-", "-", "-", "CD4 or CD8+; heterogeneous"], ] row_colors_t = [DEEP_NAVY, RGBColor(0x14, 0x2A, 0x50)] for i, row in enumerate(rows_data): y = Inches(1.85) + i * Inches(0.5) add_rect(slide, Inches(0.2), y, Inches(12.93), Inches(0.48), row_colors_t[i % 2]) for txt, x, cw in zip(row, xs, col_widths): color = WHITE if txt == "+": color = GREEN_ACC elif txt == "-": color = RGBColor(0xFF, 0x66, 0x66) elif "dim" in txt.lower(): color = GOLD elif txt == "+/-": color = LIGHT_BLUE add_text(slide, txt, x+Inches(0.02), y+Inches(0.07), cw-Inches(0.04), Inches(0.4), 9.5, color=color, align=PP_ALIGN.CENTER) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 12 — KEY CYTOGENETICS & MOLECULAR MARKERS # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), RGBColor(0x6A, 0x1A, 0x3A)) add_text(slide, "Key Cytogenetics & Molecular Markers", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 32, bold=True, color=WHITE) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) cyto_rows = [ ["t(9;22) BCR::ABL1", "CML, Ph+ ALL", "Philadelphia chromosome; TKI therapy", "Poor in ALL; treatable in CML"], ["t(15;17) PML::RARA", "APL (AML subtype)", "Auer rod bundles; DIC; ATRA sensitivity", "Very favorable with ATRA+ATO"], ["t(8;21) RUNX1::RUNX1T1", "AML", "Myeloblasts with Auer rods; cup-shaped nuclei", "Favorable"], ["inv(16) CBFB::MYH11", "AML M4eo", "Abnormal eosinophils with basophilic granules", "Favorable"], ["t(14;18) IGH::BCL2", "Follicular lymphoma, DLBCL", "BCL2 overexpression; anti-apoptosis", "Indolent in FL"], ["t(8;14) MYC::IGH", "Burkitt lymphoma", "Ki-67~100%, starry-sky pattern", "Aggressive"], ["t(11;14) CCND1::IGH", "Mantle cell lymphoma", "Cyclin D1 overexpression; CD5+CD23-", "Intermediate-poor"], ["del(17p)/TP53", "CLL, MDS, AML", "Chemotherapy resistance", "Very poor"], ["JAK2 V617F", "PV (>95%), ET, PMF", "Cytosine to thyrosine substitution", "Therapeutic target"], ["NPM1 mutation", "AML (~30%)", "Cytoplasmic NPM1 localization; no Auer rods typical", "Favorable (if FLT3-ITD neg)"], ["FLT3-ITD", "AML", "Internal tandem duplication; increased relapse", "Poor; midostaurin/quizartinib"], ["SF3B1 mutation", "MDS with ring sideroblasts", "Splicing factor mutation; >15% ring sideroblasts", "Relatively favorable in MDS"], ] col_hs = ["Cytogenetic Abnormality", "Disease", "Key Features", "Prognosis/Notes"] col_xs2 = [Inches(0.25), Inches(2.95), Inches(5.1), Inches(9.5)] col_ws2 = [Inches(2.65), Inches(2.1), Inches(4.35), Inches(3.6)] add_rect(slide, Inches(0.25), Inches(1.35), Inches(12.83), Inches(0.42), MED_BLUE) for h, x, cw in zip(col_hs, col_xs2, col_ws2): add_text(slide, h, x+Inches(0.04), Inches(1.37), cw, Inches(0.38), 10, bold=True, color=GOLD) for i, row in enumerate(cyto_rows): y = Inches(1.8) + i * Inches(0.46) add_rect(slide, Inches(0.25), y, Inches(12.83), Inches(0.44), row_colors_t[i % 2]) for txt, x, cw in zip(row, col_xs2, col_ws2): add_text(slide, txt, x+Inches(0.04), y+Inches(0.06), cw-Inches(0.05), Inches(0.36), 9.5, color=WHITE) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 13 — APPROACH TO DIAGNOSIS # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), MED_BLUE) add_text(slide, "Diagnostic Approach to WBC Disorders", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 32, bold=True, color=WHITE) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) steps = [ ("1 CLINICAL CONTEXT", "Age, symptoms (B symptoms?), lymphadenopathy, splenomegaly, prior chemotherapy, family history"), ("2 PERIPHERAL BLOOD SMEAR", "WBC count, differential, blast %, morphology, Auer rods, smudge cells, tear-drop cells, leukoerythroblastic picture"), ("3 BONE MARROW EVALUATION", "BM aspirate + core biopsy: cellularity, blast %, dysplasia, fibrosis (reticulin/trichrome stain), necrosis"), ("4 IMMUNOPHENOTYPING", "Flow cytometry (blood/BM) for surface markers; IHC on tissue biopsy sections"), ("5 CYTOGENETICS & FISH", "Conventional karyotype: t(9;22), t(15;17), t(8;21), inv(16) etc. — required for WHO classification of AML/ALL"), ("6 MOLECULAR STUDIES", "NGS panel: NPM1, FLT3, IDH1/2, SF3B1, TP53, CALR, JAK2, BCR-ABL1 PCR quantification, IGHV mutation status (CLL)"), ("7 IMAGING", "PET/CT for lymphoma staging (Ann Arbor/Lugano); CT chest-abdomen-pelvis for staging NHL/HL"), ] for i, (label, detail) in enumerate(steps): y = Inches(1.38) + i * Inches(0.84) add_rect(slide, Inches(0.25), y, Inches(2.6), Inches(0.76), MED_BLUE) add_text(slide, label, Inches(0.3), y+Inches(0.1), Inches(2.5), Inches(0.58), 10, bold=True, color=GOLD) add_rect(slide, Inches(2.9), y, Inches(10.1), Inches(0.76), row_colors_t[i % 2]) add_text(slide, detail, Inches(2.95), y+Inches(0.08), Inches(10.0), Inches(0.65), 10.5, color=WHITE) # ════════════════════════════════════════════════════════════════════════════ # SLIDE 14 — SUMMARY / KEY TAKE-HOME POINTS # ════════════════════════════════════════════════════════════════════════════ slide = prs.slides.add_slide(blank) add_bg(slide, DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(1.2), DEEP_NAVY) add_rect(slide, 0, 0, W, Inches(0.08), GOLD) add_text(slide, "Key Take-Home Points", Inches(0.4), Inches(0.15), Inches(12), Inches(0.9), 36, bold=True, color=GOLD, align=PP_ALIGN.CENTER) add_rect(slide, 0, Inches(1.2), W, Inches(0.08), GOLD) key_points = [ ("Reactive vs. Neoplastic", "Always distinguish reactive leukocytosis from leukemia. LAP score, morphology, and flow cytometry are key tools."), ("WHO 2022 Classification", "Integrates morphology, immunophenotype, cytogenetics, and molecular findings. Genetic classification is now mandatory for AML/ALL."), ("AML Threshold", "≥20% blasts (or specific translocations regardless of blast count: t(15;17), t(8;21), inv(16) = AML by definition)."), ("APL is a Medical Emergency", "t(15;17) PML::RARA → DIC risk; start ATRA immediately. Confirm with FISH/RT-PCR before standard induction chemo."), ("CLL Smudge Cells", "Fragile lymphocytes producing smudge/basket cells on smear. Immunophenotype: CD5+CD19+CD23+ with dim surface Ig."), ("Hodgkin Lymphoma", "RS cells are CD30+CD15+ with weak PAX5. Nodular sclerosis is most common. NLPHL differs: CD20+CD45+ RS-like cells."), ("Double-Hit Lymphoma", "MYC + BCL2 (and/or BCL6) rearrangements = very aggressive DLBCL. R-CHOP is insufficient; R-EPOCH preferred."), ("JAK2 in MPNs", "JAK2 V617F in >95% of PV, ~50% of ET and PMF. Ph-negative MPNs. Thrombosis is major morbidity; TKI therapy targets JAK2."), ] col1_y = Inches(1.35) col2_y = Inches(1.35) for i, (title, body) in enumerate(key_points): col_x = Inches(0.3) if i < 4 else Inches(6.85) curr_y = Inches(1.35) + (i % 4) * Inches(1.48) add_rect(slide, col_x, curr_y, Inches(6.2), Inches(1.42), RGBColor(0x12, 0x28, 0x50)) add_rect(slide, col_x, curr_y, Inches(0.2), Inches(1.42), GOLD) add_text(slide, title, col_x + Inches(0.28), curr_y + Inches(0.08), Inches(5.8), Inches(0.4), 11, bold=True, color=GOLD) add_text(slide, body, col_x + Inches(0.28), curr_y + Inches(0.48), Inches(5.8), Inches(0.88), 10.5, color=WHITE, wrap=True) # ════════════════════════════════════════════════════════════════════════════ # SAVE # ════════════════════════════════════════════════════════════════════════════ out_path = "/tmp/workspace/wbc-disorders/WBC_Disorders_Pathology_Residents.pptx" prs.save(out_path) print(f"Saved: {out_path}") PYEOF echo "Script written"
cd /tmp/workspace/wbc-disorders && python build.py 2>&1
~/wbc-disorders/build.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/wbc-disorders/build.py'
cd /tmp/workspace/wbc-disorders && python build.py 2>&1
ls -lh /tmp/workspace/wbc-disorders/WBC_Disorders_Pathology_Residents.pptx && python3 -c " from pptx import Presentation prs = Presentation('/tmp/workspace/wbc-disorders/WBC_Disorders_Pathology_Residents.pptx') for i, slide in enumerate(prs.slides, 1): for shape in slide.shapes: if shape.has_text_frame: t = shape.text_frame.text.strip() if t: print(f'Slide {i}: {t[:80]}') break "
WBC Disorders Pathology Residents
Presentation · PPTX
| # | Slide | Highlights |
|---|---|---|
| 1 | Title Slide | Department header, series subtitle |
| 2 | Classification Overview | Three-column layout: Reactive / Myeloid Neoplasms / Lymphoid Neoplasms |
| 3 | Reactive WBC Changes | Table: Neutrophilia, neutropenia, lymphocytosis, eosinophilia, monocytosis, leukemoid reaction — causes + morphology |
| 4 | Acute Myeloid Leukemia (AML) | WHO 2022 subtypes, driver mutation categories, Auer rods; photomicrograph of marrow blasts |
| 5 | Myelodysplastic Syndromes (MDS) | Three-lineage dysplasia features, WHO 2022 categories, IPSS-R, treatment; dysplastic megakaryocyte image |
| 6 | Myeloproliferative Neoplasms | Four boxes: CML, PV, ET, PMF — driver mutations, key features, treatment; MPN pathway diagram |
| 7 | CLL / SLL | Immunophenotype, smudge cells, del(13q/11q/17p) prognostic hierarchy, Rai/Binet staging; blood smear image |
| 8 | DLBCL | GCB vs ABC cell-of-origin, double-hit lymphoma, WHO 2022 molecular subtypes; H&E histology image |
| 9 | Hodgkin Lymphoma | RS cell markers, four cHL subtypes, NLPHL differences, contiguous spread; histology image |
| 10 | Other Lymphoid Neoplasms | 6-box grid: Follicular, Burkitt, MCL, ALL/LBL, Plasma Cell Myeloma, T-cell lymphomas |
| 11 | Immunophenotyping Quick Reference | Color-coded table of 11 neoplasms × 11 markers (green = +, red = -, gold = dim) |
| 12 | Key Cytogenetics & Molecular Markers | 12-row table: translocation, disease, morphologic clue, prognosis |
| 13 | Diagnostic Approach | 7-step workflow from clinical context → imaging |
| 14 | Key Take-Home Points | 8 high-yield pearls (APL emergency, smudge cells, double-hit threshold, JAK2, etc.) |