attachment
attachment

This is my syllabus of medicine for 6th semester. Teach me whole syllabus and prepare a master pdf for my theory and mcq exams so that none of the questions shall be left. Use diagrams illustrations and flowcharts to teach the conceptsvand retain them for a longer time. Make summary table to revise the concepts and teach in a way like you are teaching a high school student.

analyse_media
This is a massive syllabus with 30+ distinct topics. Let me plan this properly before diving in.
Asking for Preferences

This syllabus has 30+ topics β€” creating a complete master PDF covering all of them with diagrams, flowcharts, MCQs, and summary tables will be an extremely large document. How would you like me to approach this? Β· What level of detail do you need for each topic?

Asking for Preferences

Which module would you like me to start with?

Starting with Module 2: Respiratory. Let me pull content from the medical library for all 4 respiratory topics simultaneously.
Searching sources...
Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Now let me read the key content from the best sources - Harrison's for Lung Abscess, Murray & Nadel's for Pneumonia and Pleural Effusion, and Goldman-Cecil for Influenza:
Reading File
Reading File
Reading File
Reading File
Good - I now have solid content. Let me get community-acquired pneumonia content from a clinical medicine source and read more influenza content:
Finding Sources
Reading File
Reading File
Reading File
I now have excellent source content. Let me read the PDF skill and then build the comprehensive master PDF:
Reading File
I have everything I need. Now let me build the comprehensive master PDF using ReportLab:
Running Command

mkdir -p /tmp/workspace/respiratory-module && ls /tmp/workspace/

Do a thing. Split the syllabus system wise and teach me system wise so that you can make pdf fast and accurate

Here's the complete system-wise split of your 6th semester syllabus. Pick the system you want to start with and I'll build that PDF immediately.

πŸ«€ Module 1 β€” Cardiovascular System (5 topics)

TopicKey Areas
Heart FailureTypes, pathophysiology, Framingham criteria, management
HypertensionClassification, JNC, end-organ damage, treatment
Acute Rheumatic FeverJones criteria, strep connection, prophylaxis
Valvular Heart Disease (MS, MR)Murmurs, Echo findings, surgery
Valvular Heart Disease (repeat)Revisit + additional valves

🫁 Module 2 β€” Respiratory System (4 topics)

TopicKey Areas
PneumoniaCAP vs HAP, CURB-65, pathogens, treatment
Pleural Effusion / Empyema ThoracisTransudate vs exudate, Light's criteria, management
Lung AbscessAspiration, anaerobes, cavitation, treatment
InfluenzaSubtypes, pandemic, oseltamivir, vaccine

🦠 Module 3 β€” Infectious Diseases (9 topics)

TopicKey Areas
COVID-19Variants, cytokine storm, management
SepsisSepsis-3 definition, SOFA score, bundles
MeningitisCSF analysis, empiric treatment
HIVCD4 counts, OIs, ART
PUOCauses, workup algorithm
EncephalitisViral causes, HSV, acyclovir
TetanusClostridium, toxin mechanism, prevention
Chickenpox / Herpes ZosterVZV, Ramsay Hunt, treatment
Abdominal TBPeritoneal, intestinal, ascites

πŸ«€πŸ©Έ Module 4 β€” GI & Liver (5 topics)

TopicKey Areas
Chronic Liver Disease / CirrhosisChild-Pugh, MELD, portal hypertension
Complications of CirrhosisSBP, HRS, HE, varices
Inflammatory Bowel DiseaseCrohn's vs UC, extraintestinal
Irritable Bowel SyndromeRome IV criteria, management
Abdominal TB(shared with Infectious module)

🩸 Module 5 β€” Haematology & Oncology (2 topics)

TopicKey Areas
LeukemiaALL/AML/CLL/CML, Philadelphia chromosome, treatment
LymphomaHodgkin vs Non-Hodgkin, Reed-Sternberg, staging

🦴 Module 6 β€” Nephrology & Rheumatology (5 topics)

TopicKey Areas
Acute Kidney InjuryKDIGO staging, prerenal/intrinsic/postrenal
Tubulo-interstitial DiseaseCauses, cast nephropathy
GoutUric acid, tophi, colchicine, allopurinol
OsteoarthritisCartilage degeneration, X-ray changes
Rheumatoid ArthritisPannus, RF, anti-CCP, DMARDs

🧠 Module 7 β€” Endocrine & Neurology (6 topics)

TopicKey Areas
Parathyroid & Calcium MetabolismPTH, hypercalcemia, hypoparathyroidism
Cushing SyndromeCortisol excess, dexamethasone suppression test
Parkinson DiseaseDopamine deficiency, TRAP, levodopa
Motor Neuron DiseaseUMN vs LMN signs, ALS
Encephalitis(shared with Infectious)
Meningitis(shared with Infectious)

Asking for Preferences

Which module do you want me to build the PDF for first?

Module 5 - Haematology it is! Let me pull content from the medical library for both Leukemia and Lymphoma simultaneously.
Searching sources...
Finding Sources
Finding Sources
I need to find the dedicated haematology/internal medicine sections. Let me search more specifically:
Finding Sources
Finding Sources
Excellent! Robbins Pathology for Hodgkin and Goldman-Cecil + Tietz for Leukemia are the best sources. Let me read them all in parallel:
Reading File
Reading File
Reading File
I now have excellent content. Let me also get CML/CLL and Non-Hodgkin content quickly, then build the PDF:
Finding Sources
Finding Sources
I have all the content I need. Now let me read the Goldman-Cecil CML and NHL sections, then immediately build the master PDF:
Reading File
Reading File
I have all the content needed. Now let me build the comprehensive master PDF:

Dont generate the pdf. Teach me the modules in this chat

Got it! Teaching you directly in the chat - clear, simple, exam-focused, like explaining to a friend.
We already have all the content loaded for Module 5 - Haematology. Let's start RIGHT NOW.

🩸 MODULE 5 β€” HAEMATOLOGY

Topic 1: LEUKEMIA


🧠 First, understand the BIG PICTURE

Think of your bone marrow as a factory that makes blood cells.
BONE MARROW FACTORY
        |
   Stem Cell (Master cell)
        |
   _____|_____
  |           |
Myeloid     Lymphoid
(factory A)  (factory B)
  |               |
RBCs, WBCs,    B-cells, T-cells
Platelets,
Granulocytes

πŸ”΄ If factory A goes CRAZY β†’ MYELOID LEUKEMIA (AML / CML)
πŸ”΅ If factory B goes CRAZY β†’ LYMPHOID LEUKEMIA (ALL / CLL)
Leukemia = Cancer of the blood cells - the factory starts making abnormal, immature cells (blasts) that crowd out the normal ones.

πŸ“Š THE 4 TYPES β€” Master Summary Table

FeatureALLAMLCMLCLL
Full nameAcute LymphoblasticAcute MyeloidChronic MyeloidChronic Lymphocytic
AgeChildren (2-5 yrs)Adults (>60 yrs)Middle-age (40-50)Elderly (>60 yrs)
Cell typeLymphoblastMyeloblastMature myeloidMature lymphocyte
Key markerTdT +, CD10+Auer rodsPhiladelphia chromosomeCD5+, CD23+
Chromosomet(12;21) good prognosist(8;21), t(15;17)t(9;22) - Ph chromosomedel 13q (good), del 17p (bad)
OnsetSudden (days-weeks)SuddenSlow (months)Very slow (years)
PrognosisBest (80% cure in kids)ModerateGood with TKIIncurable but slow
TreatmentChemo (BFM protocol)Chemo + ATRA for M3Imatinib (Gleevec)Watch & wait / Ibrutinib

πŸ”΄ Topic 1A: ALL β€” Acute Lymphoblastic Leukemia

Think of it like this:

"The child who gets bone pain, bruises easily, and looks pale"

Who gets it?

  • #1 childhood cancer (25% of all childhood cancers)
  • Peak age: 2-3 years
  • More common in White > Hispanic > African American children

Symptoms - Use the mnemonic "PALE BLAST"

P - Pallor (anemia - factory not making RBCs)
A - Aches (bone pain - marrow packed with blasts)
L - Lymphadenopathy (swollen glands)
E - Easy bruising / bleeding (low platelets)

B - Big liver & spleen (hepatosplenomegaly)
L - Lumps (testicular swelling in boys!)
A - Anemia symptoms (fatigue, weakness)
S - Swollen face (mediastinal mass pressing SVC)
T - Temperature (fever - infection risk)

Investigations

CBC: ↑ WBC (or normal or ↓) + ↓ RBC + ↓ Platelets

Bone Marrow Biopsy: >20% BLASTS (diagnostic!)

Chest X-ray: Mediastinal widening (T-cell ALL)

Special markers:
- TdT positive (terminal deoxynucleotidyl transferase)
- CD10 positive (CALLA - Common ALL Antigen)
- CD19+ (B-cell ALL), CD3+ (T-cell ALL)

Treatment

  • Chemotherapy in 3 phases:
Phase 1: INDUCTION (4-6 weeks) β†’ Kill 99% blasts
         Drugs: Vincristine + Prednisolone + L-Asparaginase

Phase 2: CONSOLIDATION β†’ Kill hidden blasts
         High-dose Methotrexate

Phase 3: MAINTENANCE (2-3 years) β†’ Prevent relapse
         Daily 6-Mercaptopurine + weekly Methotrexate
  • CNS prophylaxis with intrathecal Methotrexate (leukemia loves to hide in brain!)
  • Prognosis: 95% remission, 80% disease-free at 5 years βœ…

πŸ”΄ Topic 1B: AML β€” Acute Myeloid Leukemia

Think of it like this:

"The adult who suddenly develops fever, bleeding gums, and has Auer rods on smear"

Key Pathology Finding:

AUER RODS = Pink needle-shaped crystals inside blast cells
           = PATHOGNOMONIC of AML
           (You see Auer rods β†’ Think AML immediately!)

FAB Classification (M0-M7) β€” Exam Favourite!

FABTypeKey Feature
M0UndifferentiatedLeast differentiated
M1Without maturationFew granules
M2With maturationt(8;21), Auer rods
M3Promyelocytic (APL)⚠️ DIC risk! t(15;17), PML-RARA
M4MyelomonocyticGum hypertrophy
M5MonocyticGum hypertrophy, skin infiltration
M6ErythroleukemiaBizarre RBC precursors
M7MegakaryoblasticDown syndrome association

⚑ HIGH YIELD EXAM POINT β€” M3 (APL)

M3 = Acute Promyelocytic Leukemia
   = t(15;17) β†’ PML-RARA fusion gene
   = MEDICAL EMERGENCY (causes DIC = bleeding everywhere!)
   = Treatment: ATRA (All-Trans Retinoic Acid) + Arsenic trioxide
   = ATRA differentiates the blasts into normal cells!
   = Best prognosis of all AML subtypes βœ…

Treatment of AML (General)

Induction: "7+3" regimen
   - Cytarabine (Ara-C) Γ— 7 days
   - Anthracycline (Daunorubicin) Γ— 3 days

Consolidation: High-dose Cytarabine

Refractory/Relapse: Bone Marrow Transplant (BMT)

🟑 Topic 1C: CML β€” Chronic Myeloid Leukemia

Think of it like this:

"The man with a HUGE spleen, WBC of 100,000, and the Philadelphia chromosome"

The MAGIC of the Philadelphia Chromosome

Normal:   Chromosome 9    +    Chromosome 22
                    ↓ SWAP PIECES ↓
Result:   Long Chr 9  +  SHORT Chr 22 (= Philadelphia Chr)
                              ↓
                         BCR-ABL gene
                              ↓
                    Abnormal tyrosine kinase
                              ↓
                    Uncontrolled WBC production
                              ↓
                           CML!
  • Found in >95% of CML cases
  • Also found in Ph+ ALL (worst prognosis ALL)

3 Phases of CML

CHRONIC PHASE (years)        β†’ Blasts <10%, asymptomatic or mild
       ↓ (without treatment)
ACCELERATED PHASE (months)   β†’ Blasts 10-20%, symptoms worsen
       ↓
BLAST CRISIS (weeks)         β†’ Blasts >20%, acts like AML/ALL
                               = Medical emergency, very poor prognosis

Clinical Features

  • Massive splenomegaly (dragging pain in left side)
  • Fatigue, weight loss, night sweats (B symptoms)
  • WBC count: 50,000 - 500,000 (very high!)
  • Low LAP score (Leukocyte Alkaline Phosphatase) β€” distinguishes from leukemoid reaction

Treatment β€” The REVOLUTION

Old days: Chemotherapy (poor results)
1998:     IMATINIB (Gleevec) = TKI (Tyrosine Kinase Inhibitor)
          = Blocks BCR-ABL kinase = TARGETED THERAPY
          = Changed CML from fatal to CHRONIC disease!

Newer TKIs: Dasatinib, Nilotinib, Bosutinib (2nd generation)
            Ponatinib (3rd generation, for T315I mutation)

Goal of treatment: DEEP MOLECULAR RESPONSE
                   (PCR undetectable BCR-ABL)

πŸ”΅ Topic 1D: CLL β€” Chronic Lymphocytic Leukemia

Think of it like this:

"The elderly person found to have a high lymphocyte count on a routine blood test with no symptoms"

Key Features

  • Most common leukemia in adults in Western countries
  • Often discovered incidentally on routine CBC
  • Mature B-lymphocytes that are functionally incompetent

Classic Findings

CBC: Lymphocytosis (lymphocytes >5000/Β΅L for >3 months)

Blood Smear: SMUDGE CELLS (lymphocytes crushed during smear prep)
             = Pathognomonic of CLL!

Immunophenotype: CD5+ CD19+ CD23+ (B-cells with abnormal CD5)
                 (CD5 is normally a T-cell marker!)

Rai Staging (Exam Favourite!)

Stage 0: Lymphocytosis only (best prognosis)
Stage I: + Lymphadenopathy
Stage II: + Splenomegaly/hepatomegaly
Stage III: + Anemia (Hb <11)
Stage IV: + Thrombocytopenia (platelets <100,000)  ← worst prognosis

Complications

  • Autoimmune Hemolytic Anemia (AIHA) - body attacks own RBCs
  • Richter Transformation - CLL transforms to aggressive DLBCL (very bad!)
  • Hypogammaglobulinemia β†’ frequent infections

Treatment

Early stage (Rai 0-I): Watch and Wait (don't treat!)
Advanced stage: 
  - Ibrutinib (BTK inhibitor) - oral, well tolerated
  - FCR (Fludarabine + Cyclophosphamide + Rituximab)
  - Venetoclax (BCL-2 inhibitor)

πŸ”¬ QUICK COMPARISON FLOWCHART

Patient presents with HIGH WBC count
              |
    ___________________
   |                   |
 BLASTS on smear?    No blasts, mature cells?
   |                   |
ACUTE leukemia      CHRONIC leukemia
   |                   |
   |              Smudge cells? β†’ CLL
   |              Basophilia + massive spleen? β†’ CML
   |
Auer rods? β†’ AML (Myeloid)
TdT+, CD10+? β†’ ALL (Lymphoid)


πŸ”΅ MODULE 5 β€” Topic 2: LYMPHOMA


🧠 Big Picture First

Leukemia = cancer IN the blood/bone marrow Lymphoma = cancer IN the lymph NODES/lymphoid tissue (But they overlap! Leukemia can involve nodes, lymphoma can spill into blood)
LYMPHOMA
    |
    |________________________
    |                        |
HODGKIN                 NON-HODGKIN
LYMPHOMA (HL)          LYMPHOMA (NHL)
    |                        |
Reed-Sternberg cells    Many subtypes
Young adults            Older adults
Bimodal age             B-cell (85%)
Curable ~90%            T-cell (15%)
Spreads contiguously    Spreads randomly

πŸ”΄ HODGKIN LYMPHOMA (HL)

Think of it like this:

"The young person with painless neck swelling, night sweats, and a Reed-Sternberg cell on biopsy"

THE REED-STERNBERG CELL β€” Most Important Cell in Haematology!

Reed-Sternberg Cell = OWL EYE APPEARANCE
                    = LARGE binucleated cell
                    = Each nucleus has a prominent eosinophilic nucleolus
                    = Looks like OWL EYES staring at you!
                    = CD15+ and CD30+ (key markers)
                    = Derived from GERMINAL CENTER B CELLS
                    = EBV positive in ~40% cases

Age Pattern β€” BIMODAL

Peak 1: Young adults (15-35 years) ← Most common
Peak 2: Elderly (>55 years)

Why bimodal? Different subtypes dominate in each peak

The 5 Subtypes β€” Remember "NS-MC-LR-LD-NLP"

SubtypeFrequencyAgeKey FeaturesPrognosis
Nodular Sclerosis (NS)70% (most common!)Young womenCollagen bands, lacunar cells, mediastinal massGood
Mixed Cellularity (MC)20-25%Middle-ageEBV+++ (70%), many RS cellsGood
Lymphocyte Rich5%AnyFew RS cells, many lymphocytesBest
Lymphocyte Depleted<1%Elderly, HIVMany RS cells, few lymphocytesWorst
Nodular Lymphocyte Predominant5%Young males"Popcorn cells" (LP cells), CD20+, CD15-, CD30-Very good
🧠 Exam Trick: NS = Most common overall. MC = Most EBV. LD = Worst prognosis. NLP = Different markers (CD20+, CD15-)

Clinical Features β€” "B Symptoms" are KEY

PAINLESS lymphadenopathy (neck most common β†’ mediastinum β†’ elsewhere)

B SYMPTOMS (systemic, indicate advanced disease):
  B1 - Fever >38Β°C (Pel-Ebstein fever = cyclical fever, classic for HL)
  B2 - drenching night sweats
  B3 - weight loss >10% body weight in 6 months

Other features:
  - Pruritus (itching)
  - Alcohol-induced pain at lymph node sites (CLASSIC for HL!)
  - Mediastinal mass (causes cough, SVC syndrome)

Ann Arbor Staging (Same for HL and NHL)

Stage I:   ONE lymph node region
Stage II:  TWO or more, SAME side of diaphragm
Stage III: Both sides of diaphragm
Stage IV:  Extranodal involvement (liver, bone marrow, lung)

Add:
  A = No B symptoms
  B = Has B symptoms
  E = Extranodal extension (from node to adjacent tissue)
  S = Spleen involved
  
Example: Stage IIIB = Both sides of diaphragm + has fever/sweats/weight loss

Treatment

EARLY STAGE (I-IIA):
  ABVD chemotherapy Γ— 2-4 cycles + Radiation therapy (ISRT)

ADVANCED STAGE (IIB-IV):
  ABVD Γ— 6 cycles Β± Radiation
  Or Escalated BEACOPP (higher dose, more toxic)

ABVD = Adriamycin (Doxorubicin)
       Bleomycin
       Vinblastine
       Dacarbazine

Relapsed/Refractory:
  Brentuximab vedotin (anti-CD30)
  PD-1 inhibitors (Nivolumab, Pembrolizumab)
  Auto-SCT (Stem Cell Transplant)
Prognosis: ~90% cure rate in early stage β€” one of the most curable cancers! βœ…

πŸ”΅ NON-HODGKIN LYMPHOMA (NHL)

Think of it like this:

"Older adult with widespread lymphadenopathy, no predictable spread pattern, and much more complex"

Key Differences from HL

FeatureHodgkinNon-Hodgkin
AgeYoung (bimodal)Older (>50 yrs)
SpreadContiguous (step by step)Non-contiguous (random)
RS cellsYES (diagnostic)NO
ExtranodalRareCommon
Cure rate~90%Variable (20-90%)
EBV40%Some subtypes
Waldeyer's ringRareCommon
Mesenteric nodesRareCommon

Classification β€” Simplified

NHL
 |
 |________________________________
 |                                |
B-CELL (85-90%)              T/NK-CELL (10-15%)
 |                                |
 |_______________                 Peripheral T-cell lymphoma
 |               |                Anaplastic large cell (ALCL)
INDOLENT        AGGRESSIVE       NK/T-cell nasal type
(slow growing)  (fast growing)
 |               |
Follicular       Diffuse Large B-Cell (DLBCL)  ← Most common NHL!
CLL/SLL          Burkitt Lymphoma
Marginal Zone    Mantle Cell Lymphoma

⭐ The 3 Most Important NHLs for Exams

1. DLBCL β€” Diffuse Large B-Cell Lymphoma

= MOST COMMON NHL (30% of all NHLs)
= AGGRESSIVE (grows fast, but potentially CURABLE)
= CD20+, CD19+
= Treatment: R-CHOP (Rituximab + CHOP)
  CHOP = Cyclophosphamide, Hydroxydaunorubicin, Oncovin, Prednisolone
= Cure rate: ~60-70%

2. FOLLICULAR LYMPHOMA

= 2nd most common NHL (20%)
= INDOLENT (slow-growing, but NOT curable with chemo!)
= t(14;18) β†’ BCL-2 overexpression β†’ cells don't die (apoptosis blocked!)
= "Watch and wait" for asymptomatic patients
= Can transform to DLBCL (Richter-like transformation) β€” worse prognosis

3. BURKITT LYMPHOMA

= FASTEST growing cancer in humans! (doubling time ~24 hours!)
= c-MYC translocation t(8;14)
= "Starry sky pattern" on histology 
  (macrophages eating dead tumor cells = stars in dark sky of tumor cells)
= 3 types:
  - Endemic (Africa): jaw/facial mass, EBV+
  - Sporadic: abdomen, EBV-
  - Immunodeficiency-related: HIV patients
= Treatment: Intensive chemo (R-CODOX-M/IVAC)
= Tumor Lysis Syndrome is a MAJOR risk during treatment!

πŸ“Š MASTER SUMMARY TABLE β€” Leukemia vs Lymphoma

FeatureALLAMLCMLCLLHLNHL
AgeChildrenAdultsMiddleElderlyYoung adult>50 yrs
Key cellLymphoblastMyeloblastMature myeloidMature lymphocyteRS cellVaries
Key markerTdT+, CD10Auer rodsPh chromosomeSmudge cells, CD5+CD15+, CD30+CD20+ (B-cell)
Chromosomet(12;21)t(15;17) for APLt(9;22)del13qβ€”t(14;18) follicular; t(8;14) Burkitt
TreatmentChemo (BFM)7+3, ATRA (APL)ImatinibIbrutinibABVDR-CHOP (DLBCL)
Prognosis80% cureModerateGood (TKI)Incurable/slow90% cureVariable

🎯 TOP 20 MCQ POINTS β€” Don't miss these!

  1. Most common childhood cancer = ALL
  2. Pathognomonic of AML = Auer rods
  3. t(15;17) + DIC risk = APL (M3) β†’ treat with ATRA
  4. Philadelphia chromosome t(9;22) = CML (also Ph+ ALL)
  5. Targeted therapy for CML = Imatinib (Gleevec)
  6. Smudge cells on smear = CLL
  7. CD5+ CD19+ CD23+ = CLL
  8. Low LAP score = CML (distinguishes from leukemoid reaction)
  9. 3 phases of CML = Chronic β†’ Accelerated β†’ Blast crisis
  10. Reed-Sternberg cell = Hodgkin Lymphoma
  11. RS cell markers = CD15+ CD30+
  12. Most common subtype of HL = Nodular Sclerosis
  13. Most EBV-associated HL = Mixed Cellularity
  14. Worst prognosis HL = Lymphocyte Depleted
  15. Alcohol-induced node pain = Hodgkin Lymphoma (classic!)
  16. Most common NHL = DLBCL
  17. Treatment of DLBCL = R-CHOP
  18. t(14;18) + BCL-2 = Follicular Lymphoma
  19. t(8;14) + starry sky = Burkitt Lymphoma
  20. Fastest growing cancer = Burkitt Lymphoma

πŸ” Quick Revision Flashcard

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         LEUKEMIA QUICK RECALL               β”‚
β”‚  ALL β†’ Kids, TdT+, BFM chemo               β”‚
β”‚  AML β†’ Adults, Auer rods, 7+3              β”‚
β”‚  APL(M3) β†’ t(15;17), ATRA, DIC             β”‚
β”‚  CML β†’ Ph chr t(9;22), Imatinib            β”‚
β”‚  CLL β†’ Elderly, Smudge cells, CD5+         β”‚
β”‚                                             β”‚
β”‚         LYMPHOMA QUICK RECALL              β”‚
β”‚  HL β†’ Young, RS cell (CD15+CD30+), ABVD    β”‚
β”‚  NS β†’ Most common HL subtype               β”‚
β”‚  DLBCL β†’ Most common NHL, R-CHOP           β”‚
β”‚  Follicular β†’ t(14;18), indolent           β”‚
β”‚  Burkitt β†’ t(8;14), starry sky, fastest    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

That's Module 5 - Haematology complete! πŸŽ‰
Which module do you want next?
  1. πŸ«€ Module 1 - Cardiovascular (Heart Failure, HTN, ARF, Valvular)
  2. 🫁 Module 2 - Respiratory (Pneumonia, Pleural Effusion, Lung Abscess, Influenza)
  3. 🦠 Module 3 - Infectious Diseases (COVID, Sepsis, Meningitis, HIV, PUO, Encephalitis, Tetanus, Chickenpox, Abdominal TB)
  4. πŸ«€ Module 4 - GI & Liver (Cirrhosis, IBD, IBS)
  5. 🦴 Module 6 - Nephrology & Rheumatology (AKI, Gout, OA, RA)
  6. 🧠 Module 7 - Endocrine & Neurology (Cushing, Parkinson, MND, Parathyroid)

Make a co.plied pdf for this topic module 5 with images to visualize an

Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
I found the RS cell image URL. Now let me fetch images and start building the PDF immediately:
Loading Image
Finding Sources
Finding Sources
Got the RS cell image. Now let me fetch the starry sky and other key images, then build the PDF:
Reading File
Reading File
I have all image URLs. Now let me build the complete PDF:
Running Command

mkdir -p /tmp/workspace/haematology-module5 && ls /tmp/workspace/

Running Command

cat << 'PYEOF' > /tmp/workspace/haematology-module5/build_pdf.py import requests import io import os from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm, mm from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, PageBreak, HRFlowable, Image, KeepTogether) from reportlab.platypus.flowables import HRFlowable from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY from reportlab.graphics.shapes import Drawing, Rect, String, Line, Polygon, Circle from reportlab.graphics import renderPDF from PIL import Image as PILImage OUTPUT = "/tmp/workspace/haematology-module5/Module5_Haematology.pdf" # ── Color Palette ──────────────────────────────────────────────── DARK_BLUE = colors.HexColor("#1A237E") MED_BLUE = colors.HexColor("#1565C0") LIGHT_BLUE = colors.HexColor("#E3F2FD") ACCENT_RED = colors.HexColor("#C62828") LIGHT_RED = colors.HexColor("#FFEBEE") ACCENT_GREEN = colors.HexColor("#2E7D32") LIGHT_GREEN = colors.HexColor("#E8F5E9") GOLD = colors.HexColor("#F57F17") LIGHT_GOLD = colors.HexColor("#FFFDE7") PURPLE = colors.HexColor("#6A1B9A") LIGHT_PURPLE = colors.HexColor("#F3E5F5") TEAL = colors.HexColor("#00695C") LIGHT_TEAL = colors.HexColor("#E0F2F1") DARK_GRAY = colors.HexColor("#37474F") MID_GRAY = colors.HexColor("#78909C") LIGHT_GRAY = colors.HexColor("#ECEFF1") WHITE = colors.white # ── Styles ─────────────────────────────────────────────────────── styles = getSampleStyleSheet() def make_style(name, parent='Normal', **kwargs): return ParagraphStyle(name, parent=styles[parent], **kwargs) cover_title = make_style('CoverTitle', fontSize=36, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER, spaceAfter=6) cover_sub = make_style('CoverSub', fontSize=18, textColor=colors.HexColor("#90CAF9"), fontName='Helvetica', alignment=TA_CENTER, spaceAfter=4) cover_info = make_style('CoverInfo', fontSize=13, textColor=colors.HexColor("#B3E5FC"), fontName='Helvetica', alignment=TA_CENTER) ch_header = make_style('ChHeader', fontSize=22, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER, spaceAfter=4) section_h = make_style('SectionH', fontSize=15, textColor=DARK_BLUE, fontName='Helvetica-Bold', spaceBefore=10, spaceAfter=4, borderPad=4) sub_h = make_style('SubH', fontSize=12, textColor=MED_BLUE, fontName='Helvetica-Bold', spaceBefore=6, spaceAfter=3) body = make_style('Body', fontSize=10, textColor=DARK_GRAY, fontName='Helvetica', leading=15, spaceAfter=4, alignment=TA_JUSTIFY) bullet_style = make_style('Bullet', fontSize=10, textColor=DARK_GRAY, fontName='Helvetica', leading=14, spaceAfter=2, leftIndent=14, bulletIndent=4) code_style = make_style('Code', fontSize=9, textColor=DARK_GRAY, fontName='Courier', leading=13, spaceAfter=2, leftIndent=10, backColor=LIGHT_GRAY) highlight = make_style('Highlight', fontSize=10, textColor=ACCENT_RED, fontName='Helvetica-Bold', spaceAfter=3) caption_style = make_style('Caption', fontSize=8, textColor=MID_GRAY, fontName='Helvetica-Oblique', alignment=TA_CENTER, spaceAfter=6) mcq_q = make_style('McqQ', fontSize=10, textColor=DARK_BLUE, fontName='Helvetica-Bold', spaceBefore=6, spaceAfter=2) mcq_opt = make_style('McqOpt', fontSize=10, textColor=DARK_GRAY, fontName='Helvetica', leading=13, leftIndent=10, spaceAfter=1) mcq_ans = make_style('McqAns', fontSize=10, textColor=ACCENT_GREEN, fontName='Helvetica-Bold', spaceAfter=4) mnemonic_style= make_style('Mnemonic', fontSize=10, textColor=PURPLE, fontName='Helvetica-Bold', leading=14, spaceAfter=3) flashcard_sty = make_style('Flashcard', fontSize=10, textColor=DARK_BLUE, fontName='Helvetica-Bold', leading=14) # ── Helper: download image from URL ───────────────────────────── def fetch_img_flowable(url, width_cm=12, caption=""): try: r = requests.get(url, timeout=10) img_data = io.BytesIO(r.content) pil = PILImage.open(img_data) w, h = pil.size aspect = h / w display_w = width_cm * cm display_h = display_w * aspect img_data.seek(0) flowable = Image(img_data, width=display_w, height=display_h) flowable.hAlign = 'CENTER' items = [flowable] if caption: items.append(Paragraph(caption, caption_style)) return items except Exception as e: return [Paragraph(f"[Image: {caption}]", caption_style)] # ── Helper: colored box ────────────────────────────────────────── def colored_box(text, bg=LIGHT_BLUE, border=MED_BLUE, text_style=None): if text_style is None: text_style = body data = [[Paragraph(text, text_style)]] t = Table(data, colWidths=[16.5*cm]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), bg), ('BOX', (0,0), (-1,-1), 1.2, border), ('LEFTPADDING',(0,0), (-1,-1), 10), ('RIGHTPADDING',(0,0),(-1,-1), 10), ('TOPPADDING', (0,0), (-1,-1), 8), ('BOTTOMPADDING',(0,0),(-1,-1), 8), ('ROUNDEDCORNERS', [4]), ])) return t # ── Helper: section header bar ─────────────────────────────────── def section_bar(title, color=MED_BLUE): data = [[Paragraph(title, make_style('tmp', fontSize=13, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_LEFT))]] t = Table(data, colWidths=[16.5*cm]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), color), ('LEFTPADDING',(0,0), (-1,-1), 12), ('TOPPADDING', (0,0), (-1,-1), 6), ('BOTTOMPADDING',(0,0),(-1,-1), 6), ])) return t # ── Helper: fancy table ────────────────────────────────────────── def fancy_table(headers, rows, col_widths=None, header_bg=MED_BLUE): cell_style = ParagraphStyle('cell', fontSize=9, textColor=DARK_GRAY, fontName='Helvetica', leading=12) hdr_style = ParagraphStyle('hdr', fontSize=9, textColor=WHITE, fontName='Helvetica-Bold', leading=12) data = [[Paragraph(h, hdr_style) for h in headers]] for row in rows: data.append([Paragraph(str(c), cell_style) for c in row]) if col_widths is None: w = 16.5*cm / len(headers) col_widths = [w]*len(headers) t = Table(data, colWidths=col_widths, repeatRows=1) style = [ ('BACKGROUND', (0,0), (-1,0), header_bg), ('TEXTCOLOR', (0,0), (-1,0), WHITE), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor("#B0BEC5")), ('ROWBACKGROUNDS',(0,1),(-1,-1), [WHITE, LIGHT_GRAY]), ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LEFTPADDING', (0,0), (-1,-1), 6), ('RIGHTPADDING', (0,0), (-1,-1), 6), ('TOPPADDING', (0,0), (-1,-1), 4), ('BOTTOMPADDING',(0,0), (-1,-1), 4), ] t.setStyle(TableStyle(style)) return t # ── Draw flowchart (canvas drawing) ───────────────────────────── def make_flowchart(): d = Drawing(465, 260) # Background d.add(Rect(0, 0, 465, 260, fillColor=LIGHT_GRAY, strokeColor=None)) # Title d.add(String(232, 245, "LEUKEMIA DIAGNOSTIC FLOWCHART", fontSize=11, fillColor=DARK_BLUE, fontName='Helvetica-Bold', textAnchor='middle')) # Box helper def box(x, y, w, h, txt, bg, txt_color=DARK_GRAY, fs=9): d.add(Rect(x, y, w, h, fillColor=bg, strokeColor=DARK_BLUE, strokeWidth=1)) d.add(String(x+w/2, y+h/2-4, txt, fontSize=fs, fillColor=txt_color, fontName='Helvetica-Bold', textAnchor='middle')) # Arrow helper def arrow(x1,y1,x2,y2): d.add(Line(x1, y1, x2, y2, strokeColor=MID_GRAY, strokeWidth=1.5)) # arrowhead d.add(Polygon([x2-4, y2+4, x2+4, y2+4, x2, y2-2], fillColor=MID_GRAY, strokeColor=MID_GRAY)) # Top box box(155, 215, 155, 28, "HIGH WBC COUNT", DARK_BLUE, WHITE, 10) arrow(232, 215, 232, 188) # Blasts? box(145, 158, 174, 25, "BLASTS on smear?", MED_BLUE, WHITE, 9) # YES β†’ left d.add(Line(145, 170, 90, 170, strokeColor=MID_GRAY, strokeWidth=1.5)) d.add(String(115, 175, "YES", fontSize=8, fillColor=ACCENT_RED, fontName='Helvetica-Bold', textAnchor='middle')) arrow(90, 170, 90, 140) # NO β†’ right d.add(Line(319, 170, 375, 170, strokeColor=MID_GRAY, strokeWidth=1.5)) d.add(String(347, 175, "NO", fontSize=8, fillColor=ACCENT_GREEN, fontName='Helvetica-Bold', textAnchor='middle')) arrow(375, 170, 375, 140) # ACUTE box box(30, 110, 120, 25, "ACUTE Leukemia", ACCENT_RED, WHITE, 9) # CHRONIC box box(315, 110, 120, 25, "CHRONIC Leukemia", ACCENT_GREEN, WHITE, 9) # Acute β†’ subtypes arrow(70, 110, 40, 82) arrow(110, 110, 140, 82) # Chronic β†’ subtypes arrow(350, 110, 330, 82) arrow(390, 110, 410, 82) # ALL box(5, 55, 78, 24, "ALL", colors.HexColor("#1565C0"), WHITE, 9) d.add(String(44, 48, "TdT+, CD10+\nChildren", fontSize=7, fillColor=MID_GRAY, fontName='Helvetica', textAnchor='middle')) # AML box(95, 55, 78, 24, "AML", colors.HexColor("#B71C1C"), WHITE, 9) d.add(String(134, 48, "Auer rods\nAdults", fontSize=7, fillColor=MID_GRAY, fontName='Helvetica', textAnchor='middle')) # CLL box(300, 55, 78, 24, "CLL", colors.HexColor("#1B5E20"), WHITE, 9) d.add(String(339, 48, "Smudge cells\nCD5+", fontSize=7, fillColor=MID_GRAY, fontName='Helvetica', textAnchor='middle')) # CML box(390, 55, 75, 24, "CML", colors.HexColor("#004D40"), WHITE, 9) d.add(String(427, 48, "Ph chr\nBasophilia", fontSize=7, fillColor=MID_GRAY, fontName='Helvetica', textAnchor='middle')) return d # ── Draw lymphoma comparison diagram ──────────────────────────── def make_lymphoma_diagram(): d = Drawing(465, 200) d.add(Rect(0, 0, 465, 200, fillColor=LIGHT_GRAY, strokeColor=None)) d.add(String(232, 185, "HODGKIN vs NON-HODGKIN LYMPHOMA", fontSize=11, fillColor=DARK_BLUE, fontName='Helvetica-Bold', textAnchor='middle')) # HL box d.add(Rect(20, 30, 195, 145, fillColor=LIGHT_RED, strokeColor=ACCENT_RED, strokeWidth=2)) d.add(String(117, 162, "HODGKIN LYMPHOMA", fontSize=10, fillColor=ACCENT_RED, fontName='Helvetica-Bold', textAnchor='middle')) hl_lines = ["RS Cell: CD15+ CD30+","Age: 15-35 yrs (bimodal)", "Spread: Contiguous","B symptoms present", "EBV: 40% cases","Cure: ~90%","Rx: ABVD chemo"] for i, line in enumerate(hl_lines): d.add(String(30, 148-i*16, "β€’ "+line, fontSize=8, fillColor=DARK_GRAY, fontName='Helvetica', textAnchor='start')) # NHL box d.add(Rect(250, 30, 195, 145, fillColor=LIGHT_BLUE, strokeColor=MED_BLUE, strokeWidth=2)) d.add(String(347, 162, "NON-HODGKIN LYMPHOMA", fontSize=10, fillColor=MED_BLUE, fontName='Helvetica-Bold', textAnchor='middle')) nhl_lines = ["No RS cells","Age: >50 yrs","Spread: Non-contiguous", "Extranodal common","85-90% B-cell origin", "Cure: Variable","Rx: R-CHOP (DLBCL)"] for i, line in enumerate(nhl_lines): d.add(String(260, 148-i*16, "β€’ "+line, fontSize=8, fillColor=DARK_GRAY, fontName='Helvetica', textAnchor='start')) # VS circle d.add(Circle(232, 102, 20, fillColor=GOLD, strokeColor=WHITE, strokeWidth=2)) d.add(String(232, 98, "VS", fontSize=12, fillColor=WHITE, fontName='Helvetica-Bold', textAnchor='middle')) return d # ── Ann Arbor staging diagram ──────────────────────────────────── def make_staging_diagram(): d = Drawing(465, 130) d.add(Rect(0, 0, 465, 130, fillColor=LIGHT_PURPLE, strokeColor=None)) d.add(String(232, 115, "ANN ARBOR STAGING", fontSize=11, fillColor=PURPLE, fontName='Helvetica-Bold', textAnchor='middle')) stages = [ ("I", "1 node region", LIGHT_GREEN, ACCENT_GREEN), ("II", "2+ regions\nSame side", LIGHT_BLUE, MED_BLUE), ("III", "Both sides\nof diaphragm", LIGHT_GOLD, GOLD), ("IV", "Extranodal\n(liver/marrow)", LIGHT_RED, ACCENT_RED), ] for i, (stage, desc, bg, border) in enumerate(stages): x = 20 + i*113 d.add(Rect(x, 20, 100, 80, fillColor=bg, strokeColor=border, strokeWidth=2)) d.add(String(x+50, 82, f"Stage {stage}", fontSize=11, fillColor=border, fontName='Helvetica-Bold', textAnchor='middle')) for j, line in enumerate(desc.split('\n')): d.add(String(x+50, 60-j*14, line, fontSize=8, fillColor=DARK_GRAY, fontName='Helvetica', textAnchor='middle')) if i < 3: d.add(Line(x+103, 60, x+110, 60, strokeColor=MID_GRAY, strokeWidth=2)) d.add(String(x+108, 65, "β†’", fontSize=10, fillColor=MID_GRAY, fontName='Helvetica', textAnchor='middle')) return d # ── CML phases diagram ─────────────────────────────────────────── def make_cml_phases(): d = Drawing(465, 100) d.add(Rect(0, 0, 465, 100, fillColor=LIGHT_TEAL, strokeColor=None)) d.add(String(232, 88, "CML: 3 PHASES", fontSize=11, fillColor=TEAL, fontName='Helvetica-Bold', textAnchor='middle')) phases = [ ("CHRONIC", "Blasts <10%\nYears, mild symptoms", LIGHT_GREEN, ACCENT_GREEN), ("ACCELERATED", "Blasts 10-20%\nMonths, worsening", LIGHT_GOLD, GOLD), ("BLAST CRISIS", "Blasts >20%\nWeeks, emergency!", LIGHT_RED, ACCENT_RED), ] for i, (phase, desc, bg, border) in enumerate(phases): x = 15 + i*152 d.add(Rect(x, 15, 138, 65, fillColor=bg, strokeColor=border, strokeWidth=2)) d.add(String(x+69, 70, phase, fontSize=9, fillColor=border, fontName='Helvetica-Bold', textAnchor='middle')) for j, line in enumerate(desc.split('\n')): d.add(String(x+69, 52-j*14, line, fontSize=8, fillColor=DARK_GRAY, fontName='Helvetica', textAnchor='middle')) if i < 2: d.add(String(x+145, 47, "β†’", fontSize=14, fillColor=ACCENT_RED, fontName='Helvetica-Bold', textAnchor='middle')) return d # ── Page template ─────────────────────────────────────────────── def on_page(canvas, doc): canvas.saveState() # Header bar canvas.setFillColor(DARK_BLUE) canvas.rect(0, A4[1]-28, A4[0], 28, fill=1, stroke=0) canvas.setFont('Helvetica-Bold', 9) canvas.setFillColor(WHITE) canvas.drawString(20, A4[1]-18, "MODULE 5 β€” HAEMATOLOGY: LEUKEMIA & LYMPHOMA") canvas.drawRightString(A4[0]-20, A4[1]-18, "6th Semester Medicine") # Footer canvas.setFillColor(LIGHT_GRAY) canvas.rect(0, 0, A4[0], 22, fill=1, stroke=0) canvas.setFont('Helvetica', 8) canvas.setFillColor(MID_GRAY) canvas.drawString(20, 6, "Sources: Robbins Pathology | Goldman-Cecil Medicine | Harrison's Principles | Tietz Lab Medicine") canvas.drawRightString(A4[0]-20, 6, f"Page {doc.page}") canvas.restoreState() # ═══════════════════════════════════════════════════════════════ # BUILD CONTENT # ═══════════════════════════════════════════════════════════════ story = [] # ── COVER PAGE ────────────────────────────────────────────────── story.append(Spacer(1, 2*cm)) cover_bg_data = [[Paragraph("MODULE 5", cover_title)]] cover_t = Table([[Paragraph("MODULE 5", cover_title)]], colWidths=[16.5*cm]) cover_t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), DARK_BLUE), ('TOPPADDING', (0,0), (-1,-1), 30), ('BOTTOMPADDING', (0,0), (-1,-1), 10), ])) story.append(cover_t) cover_t2 = Table([[Paragraph("HAEMATOLOGY", make_style('ct2', fontSize=30, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER))]], colWidths=[16.5*cm]) cover_t2.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), DARK_BLUE), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ])) story.append(cover_t2) cover_t3 = Table([[Paragraph("LEUKEMIA &amp; LYMPHOMA", make_style('ct3', fontSize=20, textColor=colors.HexColor("#90CAF9"), fontName='Helvetica-Bold', alignment=TA_CENTER))]], colWidths=[16.5*cm]) cover_t3.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), DARK_BLUE), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 30), ])) story.append(cover_t3) story.append(Spacer(1, 1*cm)) story.append(colored_box( "<b>What you will learn:</b><br/>" "βœ” ALL, AML, CML, CLL β€” classification, features, treatment, mnemonics<br/>" "βœ” Hodgkin &amp; Non-Hodgkin Lymphoma β€” subtypes, staging, treatment<br/>" "βœ” Diagnostic flowcharts, histology images, summary tables<br/>" "βœ” 25 high-yield MCQs with explained answers<br/>" "βœ” Quick revision flashcards", bg=LIGHT_BLUE, border=MED_BLUE)) story.append(Spacer(1, 0.5*cm)) info_data = [ ["Subject:", "Medicine β€” 6th Semester"], ["Module:", "5 β€” Haematology & Oncology"], ["Topics:", "Leukemia (ALL, AML, CML, CLL) | Lymphoma (HL, NHL)"], ["Sources:", "Robbins Pathology | Goldman-Cecil | Harrison's | Tietz"], ] info_t = Table(info_data, colWidths=[3.5*cm, 13*cm]) info_t.setStyle(TableStyle([ ('FONTNAME', (0,0), (0,-1), 'Helvetica-Bold'), ('FONTNAME', (1,0), (1,-1), 'Helvetica'), ('FONTSIZE', (0,0), (-1,-1), 10), ('TEXTCOLOR', (0,0), (0,-1), DARK_BLUE), ('TEXTCOLOR', (1,0), (1,-1), DARK_GRAY), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('TOPPADDING', (0,0), (-1,-1), 5), ('LINEBELOW', (0,0), (-1,-2), 0.3, LIGHT_GRAY), ])) story.append(info_t) story.append(PageBreak()) # ═══════════════ SECTION 1: LEUKEMIA ═══════════════════════════ story.append(section_bar("SECTION 1: LEUKEMIA β€” CANCER OF BLOOD & BONE MARROW", DARK_BLUE)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Understanding the Big Picture", section_h)) story.append(Paragraph( "Think of your <b>bone marrow as a blood cell factory</b>. It has two main production lines: " "the <b>Myeloid line</b> (makes RBCs, platelets, granulocytes) and the <b>Lymphoid line</b> " "(makes B-cells and T-cells). Leukemia occurs when one of these lines goes haywire β€” producing " "immature, non-functional cells called <b>blasts</b> that crowd out normal cells.", body)) story.append(colored_box( "<b>KEY RULE:</b> Myeloid line goes crazy β†’ <b>AML or CML</b> | " "Lymphoid line goes crazy β†’ <b>ALL or CLL</b><br/>" "<b>ACUTE</b> = sudden onset, immature blasts, needs urgent treatment | " "<b>CHRONIC</b> = slow onset, more mature cells, manageable", bg=LIGHT_GOLD, border=GOLD)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Diagnostic Flowchart", section_h)) story.append(make_flowchart()) story.append(Spacer(1, 0.4*cm)) # ── Master comparison table ────────────────────────────────────── story.append(Paragraph("The 4 Types of Leukemia β€” Master Comparison", section_h)) headers = ["Feature", "ALL", "AML", "CML", "CLL"] rows = [ ["Full name", "Acute Lymphoblastic", "Acute Myeloid", "Chronic Myeloid", "Chronic Lymphocytic"], ["Age group", "Children 2-5 yrs", "Adults >60 yrs", "Middle age 40-50", "Elderly >60 yrs"], ["Cell origin", "Lymphoblast", "Myeloblast", "Myeloid stem cell", "Mature B-lymphocyte"], ["Key finding", "TdT+, CD10+", "Auer rods", "Ph chromosome", "Smudge cells, CD5+"], ["Chromosome", "t(12;21) good\nt(9;22) bad", "t(15;17) = APL\nt(8;21)", "t(9;22) BCR-ABL", "del 13q (good)\ndel 17p (bad)"], ["WBC count", "Variable (high/low)", "Variable", "Very high 50-500K", "High lymphocytes"], ["Onset", "Days to weeks", "Days to weeks", "Months (slow)", "Years (very slow)"], ["Treatment", "BFM chemo protocol", "7+3 / ATRA for APL", "Imatinib (TKI)", "Ibrutinib / Watch & Wait"], ["Prognosis", "80% cure (children)", "Moderate", "Excellent with TKI", "Incurable but slow"], ["Special", "#1 childhood cancer", "Auer rods = path.", "Imatinib revolution", "Most common adult leuk."], ] story.append(fancy_table(headers, rows, [3.5*cm,3.2*cm,3.2*cm,3.2*cm,3.2*cm])) story.append(PageBreak()) # ── ALL ───────────────────────────────────────────────────────── story.append(section_bar("1A. ALL β€” Acute Lymphoblastic Leukemia", ACCENT_RED)) story.append(Spacer(1, 0.3*cm)) story.append(colored_box( '<b>Remember it as:</b> "The child who gets <b>bone pain</b>, bruises easily, ' 'looks <b>pale</b>, and has a swollen face or testes"', bg=LIGHT_RED, border=ACCENT_RED)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Epidemiology", sub_h)) for pt in [ "Most common malignant disease of childhood β€” 25% of all childhood cancers", "~2000-2500 new cases/year | Peak incidence: 2-3 years of age", "3Γ— more common in White children than African American | Hispanic incidence is high", "95% remission rate | 80% disease-free at 5 years β€” one of the best cure rates!", ]: story.append(Paragraph("β€’ " + pt, bullet_style)) story.append(Spacer(1, 0.2*cm)) story.append(Paragraph('Mnemonic: "PALE BLAST" for Symptoms', sub_h)) mnemonic_data = [ ["P", "Pallor", "Anemia β€” factory not making RBCs"], ["A", "Aches", "Bone pain β€” marrow packed with blasts"], ["L", "Lymphadenopathy", "Swollen lymph nodes"], ["E", "Easy bruising/bleeding", "Low platelets (thrombocytopenia)"], ["B", "Big liver & spleen", "Hepatosplenomegaly"], ["L", "Lumps in testes", "Testicular enlargement in boys!"], ["A", "Asthenia", "Fatigue and weakness"], ["S", "Swollen face/neck", "Mediastinal mass β†’ SVC syndrome"], ["T", "Temperature (fever)", "Neutropenia β†’ infection risk"], ] t = Table(mnemonic_data, colWidths=[0.8*cm, 4.5*cm, 11.2*cm]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (0,-1), ACCENT_RED), ('TEXTCOLOR', (0,0), (0,-1), WHITE), ('FONTNAME', (0,0), (0,-1), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9), ('FONTNAME', (1,0), (1,-1), 'Helvetica-Bold'), ('TEXTCOLOR', (1,0), (1,-1), DARK_BLUE), ('ROWBACKGROUNDS', (0,0), (-1,-1), [WHITE, LIGHT_RED]), ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor("#FFCDD2")), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('LEFTPADDING', (0,0), (-1,-1), 6), ('TOPPADDING', (0,0), (-1,-1), 4), ('BOTTOMPADDING', (0,0), (-1,-1), 4), ])) story.append(t) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Investigations", sub_h)) inv_data = [ ["Test", "Finding", "Significance"], ["CBC", "↑ or ↓ WBC, ↓ RBC, ↓ Platelets", "Marrow failure β€” blasts crowding out normal cells"], ["Bone Marrow Biopsy", ">20% blasts (DIAGNOSTIC)", "Gold standard test for all leukemias"], ["Blood smear", "Lymphoblasts visible", "Immature cells with scant cytoplasm"], ["Immunophenotype", "TdT+, CD10+, CD19+ (B-cell)\nor CD3+ (T-cell)", "Distinguishes ALL subtypes"], ["Chest X-ray", "Mediastinal widening", "T-cell ALL β€” thymic mass"], ["CSF analysis", "Blast cells in CSF", "CNS involvement"], ["Cytogenetics", "t(12;21) = good prognosis\nt(9;22) = poor prognosis", "Guides therapy intensity"], ] story.append(fancy_table(inv_data[0], inv_data[1:], [3.5*cm, 5.5*cm, 7.5*cm])) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Treatment Protocol (3 Phases)", sub_h)) rx_data = [ ["Phase", "Duration", "Drugs/Goal", "Target"], ["INDUCTION", "4-6 weeks", "Vincristine + Prednisolone\n+ L-Asparaginase Β± Daunorubicin", "Eliminate 99% blasts β†’ achieve remission"], ["CONSOLIDATION", "Weeks-months", "High-dose Methotrexate\n+ 6-Mercaptopurine", "Kill residual/hidden blasts"], ["MAINTENANCE", "2-3 years", "Daily 6-MP + weekly Methotrexate", "Prevent relapse"], ["CNS Prophylaxis", "Throughout", "Intrathecal Methotrexate", "Prevent CNS sanctuary disease"], ] story.append(fancy_table(rx_data[0], rx_data[1:], [3*cm, 2.5*cm, 5.5*cm, 5.5*cm], ACCENT_RED)) story.append(PageBreak()) # ── AML ───────────────────────────────────────────────────────── story.append(section_bar("1B. AML β€” Acute Myeloid Leukemia", colors.HexColor("#B71C1C"))) story.append(Spacer(1, 0.3*cm)) story.append(colored_box( '<b>Remember it as:</b> "The adult who suddenly develops fever, bleeding gums (gingival hypertrophy), ' 'pallor, and the blood smear shows <b>Auer rods</b> inside blast cells"', bg=LIGHT_RED, border=ACCENT_RED)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("KEY PATHOLOGY: Auer Rods", sub_h)) story.append(colored_box( "<b>Auer Rods</b> = Pink, needle-shaped crystalline inclusions inside myeloblasts<br/>" "Seen on peripheral blood smear or bone marrow aspirate<br/>" "<b>PATHOGNOMONIC of AML</b> β€” if you see Auer rods, answer is AML (especially M3/APL can have faggot cells)", bg=LIGHT_GOLD, border=GOLD)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("FAB Classification (M0-M7) β€” High Yield for Exams!", sub_h)) fab_data = [ ["FAB", "Name", "Key Feature", "Special Note"], ["M0", "Undifferentiated AML", "Least differentiated, MPO-", "Rare"], ["M1", "Without maturation", "Few azurophilic granules, Auer rods", "MPO+"], ["M2", "With maturation", "Most Auer rods, t(8;21)", "Good prognosis"], ["M3 ⚠", "Acute Promyelocytic (APL)", "Faggot cells, t(15;17), DIC!", "ATRA treatment β€” BEST prognosis!"], ["M4", "Myelomonocytic", "Gum hypertrophy, t(9;11)", "Monocytic features"], ["M5", "Monocytic", "Gum infiltration, skin nodules", "Young patients"], ["M6", "Erythroleukemia", "Bizarre RBC precursors, PAS+", "Rare, older adults"], ["M7", "Megakaryoblastic", "Down syndrome!, anti-platelet Ab", "Pediatric"], ] story.append(fancy_table(fab_data[0], fab_data[1:], [1.5*cm,4*cm,5.5*cm,5.5*cm], colors.HexColor("#B71C1C"))) story.append(Spacer(1, 0.3*cm)) story.append(colored_box( "<b>⚑ EXAM BOMB β€” M3 (APL):</b><br/>" "β€’ Translocation: <b>t(15;17)</b> β†’ PML-RARA fusion gene<br/>" "β€’ Complication: <b>DIC</b> (Disseminated Intravascular Coagulation) β€” bleeding everywhere!<br/>" "β€’ Treatment: <b>ATRA</b> (All-Trans Retinoic Acid) + Arsenic Trioxide<br/>" "β€’ Mechanism: ATRA differentiates promyelocytes into mature cells<br/>" "β€’ Prognosis: <b>BEST of all AML subtypes</b>", bg=LIGHT_RED, border=ACCENT_RED)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Treatment", sub_h)) story.append(Paragraph( '<b>"7+3" Induction Regimen:</b> Cytarabine (Ara-C) Γ— 7 days + Anthracycline (Daunorubicin) Γ— 3 days<br/>' '<b>Consolidation:</b> High-dose Cytarabine (HiDAC)<br/>' '<b>APL:</b> ATRA + Arsenic Trioxide (ATO) β€” no traditional chemo needed!<br/>' '<b>Relapse/Refractory:</b> Allogeneic Stem Cell Transplant (allo-SCT)', body)) story.append(PageBreak()) # ── CML ───────────────────────────────────────────────────────── story.append(section_bar("1C. CML β€” Chronic Myeloid Leukemia", TEAL)) story.append(Spacer(1, 0.3*cm)) story.append(colored_box( '<b>Remember it as:</b> "The middle-aged man with a <b>MASSIVE spleen</b>, WBC of 100,000+, ' 'and the <b>Philadelphia chromosome</b> on cytogenetics"', bg=LIGHT_TEAL, border=TEAL)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("The Philadelphia Chromosome β€” Most Important Concept!", sub_h)) ph_data = [ ["Step", "What Happens"], ["1. Normal chromosomes", "Chromosome 9 (ABL gene) + Chromosome 22 (BCR gene)"], ["2. Translocation t(9;22)", "Pieces SWAP between chromosomes 9 and 22"], ["3. Result", "Elongated Chr 9 + SHORTENED Chr 22 = Philadelphia Chromosome"], ["4. Fusion gene", "BCR-ABL chimeric gene formed on shortened chromosome 22"], ["5. Effect", "BCR-ABL = constitutively active tyrosine kinase β†’ uncontrolled WBC production"], ["6. Target", "BCR-ABL is blocked by IMATINIB β†’ dramatic disease control"], ] story.append(fancy_table(ph_data[0], ph_data[1:], [4*cm, 12.5*cm], TEAL)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("3 Phases of CML", sub_h)) story.append(make_cml_phases()) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Clinical Features", sub_h)) cf_data = [ ["Symptom/Sign", "Details", "Why it happens"], ["Massive splenomegaly", "Dragging LUQ pain, earliest sign", "Extramedullary haematopoiesis"], ["Very high WBC", "50,000 – 500,000/Β΅L", "Uncontrolled myeloid proliferation"], ["Basophilia", "High basophil count on smear", "Pathognomonic of CML (vs leukemoid)"], ["B symptoms", "Fever, night sweats, weight loss", "Cytokine release"], ["Low LAP score", "Leukocyte Alkaline Phosphatase ↓", "Key to distinguish CML from leukemoid reaction"], ["Hyperuricemia", "Gout-like symptoms", "High cell turnover"], ] story.append(fancy_table(cf_data[0], cf_data[1:], [4*cm, 5*cm, 7.5*cm], TEAL)) story.append(Spacer(1, 0.3*cm)) story.append(colored_box( "<b>THE IMATINIB REVOLUTION:</b><br/>" "Before 1998: CML was fatal within 5 years<br/>" "1998 onwards: <b>Imatinib (Gleevec)</b> β€” first targeted cancer therapy β€” blocks BCR-ABL kinase<br/>" "Result: CML transformed from fatal to a CHRONIC, manageable disease!<br/>" "Newer TKIs: Dasatinib, Nilotinib (2nd gen) | Ponatinib (3rd gen, for T315I mutation)", bg=LIGHT_TEAL, border=TEAL)) story.append(PageBreak()) # ── CLL ───────────────────────────────────────────────────────── story.append(section_bar("1D. CLL β€” Chronic Lymphocytic Leukemia", ACCENT_GREEN)) story.append(Spacer(1, 0.3*cm)) story.append(colored_box( '<b>Remember it as:</b> "The elderly person whose <b>routine blood test</b> showed a high lymphocyte count β€” ' 'no symptoms β€” smudge cells on smear β€” CD5 positive B-cells"', bg=LIGHT_GREEN, border=ACCENT_GREEN)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Key Features", sub_h)) for pt in [ "Most common leukemia in adults in Western countries", "Often an INCIDENTAL finding on routine CBC β€” patient may have NO symptoms for years", "Mature B-lymphocytes that are immunologically incompetent (can't fight infections!)", "Paradox: high lymphocyte count, but patient gets repeated infections", ]: story.append(Paragraph("β€’ " + pt, bullet_style)) story.append(Spacer(1, 0.2*cm)) story.append(Paragraph("Diagnostic Findings", sub_h)) diag_data = [ ["Test", "Finding", "Significance"], ["CBC", "Lymphocytosis >5000/Β΅L for >3 months", "Diagnostic criterion"], ["Blood smear", "SMUDGE CELLS (crushed lymphocytes)", "Pathognomonic of CLL!"], ["Immunophenotype", "CD5+, CD19+, CD23+, CD20 (dim)", "CD5 = normally T-cell marker (abnormal on B-cells)"], ["Bone marrow", ">30% lymphocytes in marrow", "Confirms marrow infiltration"], ["Cytogenetics", "del 13q = best | del 17p = worst", "Prognostic markers"], ["ZAP-70 / CD38", "If positive = worse prognosis", "Unmutated IGHV gene"], ] story.append(fancy_table(diag_data[0], diag_data[1:], [3.5*cm, 5.5*cm, 7.5*cm], ACCENT_GREEN)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Rai Staging System (Exam Favourite!)", sub_h)) rai_data = [ ["Stage", "Features", "Prognosis", "Median Survival"], ["0", "Lymphocytosis only", "Best", ">10 years"], ["I", "Lymphocytosis + Lymphadenopathy", "Good", "~7 years"], ["II", "+ Hepatomegaly or Splenomegaly", "Intermediate", "~5 years"], ["III", "+ Anemia (Hb <11 g/dL)", "Poor", "~2 years"], ["IV", "+ Thrombocytopenia (<100K)", "Worst", "~1 year"], ] story.append(fancy_table(rai_data[0], rai_data[1:], [2*cm, 5.5*cm, 3*cm, 4*cm], ACCENT_GREEN)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Complications", sub_h)) comp_data = [ ["Complication", "Details", "Management"], ["AIHA (Autoimmune Hemolytic Anemia)", "Body produces antibodies against own RBCs", "Steroids, IVIG"], ["Richter Transformation", "CLL transforms to aggressive DLBCL (10-15%)", "Intensive chemo, poor prognosis"], ["Hypogammaglobulinemia", "Repeated bacterial infections (pneumonia, UTI)", "IVIG replacement"], ["Autoimmune Thrombocytopenia (ITP)", "Platelet destruction by antibodies", "Steroids"], ] story.append(fancy_table(comp_data[0], comp_data[1:], [4.5*cm, 5.5*cm, 6.5*cm], ACCENT_GREEN)) story.append(PageBreak()) # ═══════════════ SECTION 2: LYMPHOMA ════════════════════════════ story.append(section_bar("SECTION 2: LYMPHOMA β€” CANCER OF LYMPH NODES", DARK_BLUE)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Leukemia vs Lymphoma β€” Quick Concept", sub_h)) story.append(colored_box( "<b>Leukemia</b> = cancer primarily IN the blood/bone marrow | cells circulate in blood<br/>" "<b>Lymphoma</b> = cancer primarily IN lymph nodes/lymphoid tissue | forms solid tumors<br/>" "<i>Note: They overlap β€” lymphoma can spill into blood (leukemic phase), leukemia can involve nodes</i>", bg=LIGHT_BLUE, border=MED_BLUE)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Hodgkin vs Non-Hodgkin Overview", section_h)) story.append(make_lymphoma_diagram()) story.append(Spacer(1, 0.3*cm)) # Comparison table cmp_data = [ ["Feature", "Hodgkin Lymphoma", "Non-Hodgkin Lymphoma"], ["Age", "15-35 yrs (bimodal peak)", "Mostly >50 yrs"], ["RS Cells", "YES β€” DIAGNOSTIC", "Absent"], ["Spread pattern", "Contiguous (stepwise)", "Non-contiguous (random)"], ["Extranodal involvement", "Rare", "Common"], ["Mesenteric nodes", "Rare", "Common"], ["Waldeyer's ring", "Rare", "Common"], ["EBV association", "40% cases", "Some subtypes (Burkitt, PTLD)"], ["B-cell vs T-cell", "B-cell origin (RS cell)", "85% B-cell, 15% T-cell"], ["Cure rate", "~90% early stage", "Variable 20-90%"], ["Treatment", "ABVD chemotherapy", "R-CHOP (DLBCL)"], ] story.append(fancy_table(cmp_data[0], cmp_data[1:], [4.5*cm, 6*cm, 6*cm])) story.append(PageBreak()) # ── Hodgkin Lymphoma ───────────────────────────────────────────── story.append(section_bar("2A. HODGKIN LYMPHOMA (HL)", ACCENT_RED)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("The Reed-Sternberg Cell β€” Most Important Cell!", sub_h)) story.append(colored_box( "<b>Reed-Sternberg (RS) Cell:</b><br/>" "β€’ LARGE binucleated cell (15-45 Β΅m diameter)<br/>" "β€’ Each nucleus has a prominent <b>eosinophilic nucleolus</b> with clear halo<br/>" "β€’ Resembles an <b>OWL looking at you</b> (OWL EYE APPEARANCE)<br/>" "β€’ Immunophenotype: <b>CD15+ and CD30+</b> | CD45-, CD20-<br/>" "β€’ Origin: Germinal center B cells (proven by immunoglobulin gene rearrangement studies)<br/>" "β€’ EBV present in RS cells in ~40% overall (70% in mixed cellularity subtype)", bg=LIGHT_RED, border=ACCENT_RED)) story.append(Spacer(1, 0.3*cm)) # RS cell image from Robbins img_items = fetch_img_flowable( "https://cdn.orris.care/cdss_images/c1975d6d2a7fe6433070eaf569f24f1731c40effe2f6c55404f4591d5f239aed.png", width_cm=10, caption="FIG. Reed-Sternberg Cell β€” Large binucleated cell with prominent 'owl-eye' nucleoli surrounded " "by lymphocytes, macrophages, and eosinophils. (Source: Robbins & Kumar Basic Pathology)") for item in img_items: story.append(item) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("5 Subtypes of Hodgkin Lymphoma", sub_h)) hl_sub_data = [ ["Subtype", "Freq", "Age/Sex", "Key Features", "RS Cells", "Prognosis"], ["Nodular Sclerosis (NS)", "70%\n(MOST\nCOMMON)", "Young women\n15-34 yrs", "Collagen bands, lacunar cells, mediastinal mass", "Lacunar variant", "Good"], ["Mixed Cellularity (MC)", "20-25%", "Middle age\nMale", "EBV+++ (70%), heterogeneous infiltrate", "Classic RS cells (plentiful)", "Good"], ["Lymphocyte Rich", "5%", "Any age", "Abundant lymphocytes, rare RS cells", "Rare", "Best"], ["Lymphocyte Depleted", "<1%", "Elderly/HIV", "Few lymphocytes, many RS cells, fibrosis", "Numerous", "WORST"], ["Nodular LP (NLP)", "5%", "Young males", "Popcorn/LP cells, CD20+, CD15-, CD30-", "LP cells ('popcorn')", "Excellent"], ] story.append(fancy_table(hl_sub_data[0], hl_sub_data[1:], [3*cm, 1.5*cm, 2.5*cm, 4.5*cm, 2.5*cm, 2.5*cm], ACCENT_RED)) story.append(Spacer(1, 0.2*cm)) story.append(colored_box( "<b>Exam Tricks:</b><br/>" "β€’ NS = Most common subtype overall<br/>" "β€’ MC = Most EBV-associated (70%)<br/>" "β€’ LD = Worst prognosis<br/>" "β€’ NLP = Different markers: CD20+, CD15-, CD30- (unlike classical HL)", bg=LIGHT_GOLD, border=GOLD)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Clinical Features", sub_h)) story.append(Paragraph( "<b>Classic presentation:</b> Young adult with <b>painless cervical lymphadenopathy</b> " "(rubbery, non-tender nodes). Spreads contiguously β€” neck β†’ mediastinum β†’ para-aortic.", body)) story.append(Spacer(1, 0.2*cm)) b_sym_data = [ ["B Symptoms (indicate advanced disease)", "Other Features"], ["Fever >38Β°C\n(Pel-Ebstein = cyclical fever β€” CLASSIC for HL!)", "Pruritus (itching) β€” can be first symptom"], ["Drenching night sweats", "Alcohol-induced pain at node sites β€” PATHOGNOMONIC of HL!"], ["Weight loss >10% in 6 months", "Mediastinal mass β†’ cough, dyspnea, SVC syndrome"], ] story.append(fancy_table(b_sym_data[0], b_sym_data[1:], [8.25*cm, 8.25*cm], ACCENT_RED)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Ann Arbor Staging", sub_h)) story.append(make_staging_diagram()) story.append(Spacer(1, 0.2*cm)) story.append(Paragraph( "<b>Suffixes:</b> A = no B symptoms | B = has B symptoms | E = extranodal extension | S = spleen<br/>" "<b>Example:</b> Stage IIIB = Both sides of diaphragm + fever/sweats/weight loss", body)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Treatment", sub_h)) rx_hl = [ ["Stage", "Treatment", "Drugs"], ["Early (I-IIA)", "ABVD Γ— 2-4 cycles + Radiation (ISRT)", "A=Adriamycin, B=Bleomycin, V=Vinblastine, D=Dacarbazine"], ["Advanced (IIB-IV)", "ABVD Γ— 6 cycles Β± Radiation\nOR Escalated BEACOPP", "Higher dose, more toxic, for younger fit patients"], ["Relapsed/Refractory", "Brentuximab vedotin (anti-CD30)\n+ Auto-SCT", "PD-1 inhibitors: Nivolumab, Pembrolizumab"], ] story.append(fancy_table(rx_hl[0], rx_hl[1:], [3*cm, 6*cm, 7.5*cm], ACCENT_RED)) story.append(colored_box( "<b>Prognosis:</b> Stage I-IIA: >90% 5-year survival | Stage IV: ~50% 5-year survival<br/>" "HL is one of the <b>most curable cancers</b> β€” even advanced disease responds well to treatment!", bg=LIGHT_GREEN, border=ACCENT_GREEN)) story.append(PageBreak()) # ── Non-Hodgkin Lymphoma ───────────────────────────────────────── story.append(section_bar("2B. NON-HODGKIN LYMPHOMA (NHL)", MED_BLUE)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Classification Overview", sub_h)) nhl_class = [ ["Category", "Subtype", "Frequency", "Key Feature", "Treatment"], ["INDOLENT\n(slow-growing,\nnot curable)", "Follicular Lymphoma", "20% of NHL", "t(14;18), BCL-2 overexpression\nGerminal center origin", "Watch & wait\nRituximab, Bendamustine"], ["", "CLL/SLL", "7% of NHL", "Same disease as CLL\njust in node form", "Same as CLL"], ["", "Marginal Zone / MALT", "8% of NHL", "H. pylori association\n(gastric MALT)", "H. pylori eradication!"], ["AGGRESSIVE\n(fast-growing,\ncurable!)", "DLBCL", "30% (most common!)", "CD20+, c-MYC overexpression\nB-cell origin", "R-CHOP (curative ~60-70%)"], ["", "Burkitt Lymphoma", "<5%", "t(8;14), c-MYC\nStarry sky pattern\nFASTEST growing cancer!", "R-CODOX-M/IVAC\nIntensive chemo"], ["", "Mantle Cell Lymphoma", "5-7%", "t(11;14), Cyclin D1\nCD5+ (like CLL!)\nAggressive + incurable", "R-CHOP + BTKi"], ["VERY\nAGGRESSIVE", "Peripheral T-cell Lymphoma", "5-10%", "T-cell origin\nCD3+, CD4+ or CD8+", "CHOP-based, poor prognosis"], ] story.append(fancy_table(nhl_class[0], nhl_class[1:], [2.5*cm,3.5*cm,2cm,4.5*cm,4*cm])) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("The 3 Most Important NHL Subtypes", section_h)) # DLBCL story.append(section_bar("DLBCL β€” Diffuse Large B-Cell Lymphoma (Most Common NHL)", colors.HexColor("#1565C0"))) for pt in [ "<b>Most common NHL worldwide</b> β€” 30% of all NHLs", "AGGRESSIVE but potentially CURABLE", "CD20+, CD19+, BCL6+ β€” B-cell origin", "Presents with rapidly enlarging lymph node mass Β± B symptoms Β± extranodal sites", "Treatment: <b>R-CHOP</b> (6 cycles) β€” Rituximab + Cyclophosphamide + Doxorubicin + Vincristine + Prednisone", "Cure rate: ~60-70% with R-CHOP | Relapsed: Auto-SCT or CAR-T therapy", ]: story.append(Paragraph("β€’ " + pt, bullet_style)) story.append(Spacer(1, 0.3*cm)) # Follicular story.append(section_bar("Follicular Lymphoma (2nd most common NHL)", colors.HexColor("#4527A0"))) for pt in [ "20% of NHLs | <b>Most common INDOLENT lymphoma</b>", "<b>t(14;18)</b> translocation β†’ BCL-2 overexpression β†’ cells CANNOT undergo apoptosis!", "Patients often asymptomatic for years with 'waxing and waning' lymphadenopathy", "NOT curable with conventional chemotherapy β€” but patients can live 10+ years", "<b>Watch and wait</b> for asymptomatic patients (treatment doesn't improve survival in early disease)", "Can transform to DLBCL (~30% over 10 years) β€” Richter transformation", ]: story.append(Paragraph("β€’ " + pt, bullet_style)) story.append(Spacer(1, 0.3*cm)) # Burkitt story.append(section_bar("Burkitt Lymphoma β€” Fastest Growing Cancer!", colors.HexColor("#4E342E"))) story.append(Spacer(1, 0.2*cm)) bk_data = [ ["Feature", "Details"], ["Growth rate", "FASTEST growing cancer β€” tumor doubles in ~24-48 hours!"], ["Translocation", "t(8;14) β€” c-MYC oncogene next to IgH enhancer β†’ massive MYC expression"], ["Histology", "'Starry sky' pattern β€” macrophages (stars) eating apoptotic tumor cells (dark sky)"], ["Immunophenotype", "CD19+, CD20+, CD10+, BCL6+, BCL2 NEGATIVE (high apoptosis!)"], ["3 Types", "Endemic (Africa): jaw/facial mass, EBV+\nSporadic: ileocecum, abdomen, EBV-\nHIV-related: any site"], ["Treatment", "R-CODOX-M/IVAC β€” intensive, rapid cycles"], ["Key complication", "TUMOR LYSIS SYNDROME β€” massive cell death β†’ ↑K+, ↑phosphate, ↑uric acid, ↓Ca++ β†’ renal failure!"], ["Prognosis", "Children/young adults: curable | Older adults: worse"], ] story.append(fancy_table(bk_data[0], bk_data[1:], [4*cm, 12.5*cm], colors.HexColor("#4E342E"))) story.append(Spacer(1, 0.3*cm)) # Burkitt starry sky image img_items2 = fetch_img_flowable( "https://cdn.orris.care/cdss_images/d742a270270db78fe05bfe30483d7959b33a1d1785d95f378c6ab93dab034c30.png", width_cm=10, caption="FIG. Burkitt Lymphoma β€” 'Starry sky' pattern: pale macrophages (stars) scattered among dark " "tumor cells (sky). High mitotic index visible. (Source: Robbins, Cotran & Kumar Pathologic Basis of Disease)") for item in img_items2: story.append(item) story.append(PageBreak()) # ── HL Histology images ────────────────────────────────────────── story.append(section_bar("HISTOLOGY IMAGES β€” Visual Learning", DARK_BLUE)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Nodular Sclerosis HL β€” Lacunar Cell & Collagen Bands", sub_h)) img3 = fetch_img_flowable( "https://cdn.orris.care/cdss_images/336acaf28dbe4ed7a67c7afd9dc098d029abd5b089073c135ed169c0a4d4def7.png", width_cm=9, caption="FIG. Hodgkin Lymphoma, Nodular Sclerosis β€” Lacunar cell (RS variant) lying in a clear space " "(lacune), surrounded by lymphocytes. (Source: Robbins Basic Pathology)") for item in img3: story.append(item) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Nodular Sclerosis HL β€” Collagen Bands", sub_h)) img4 = fetch_img_flowable( "https://cdn.orris.care/cdss_images/50bb21a3feb502a42f3058447eabbbcafbbb23b8b1ea08161ebb0a2443913ccb.png", width_cm=9, caption="FIG. Hodgkin Lymphoma, Nodular Sclerosis β€” Low-power view showing collagen bands (pink) " "dividing lymphoid tissue into nodules. (Source: Robbins Basic Pathology)") for item in img4: story.append(item) story.append(PageBreak()) # ── MASTER SUMMARY TABLE ───────────────────────────────────────── story.append(section_bar("MASTER SUMMARY TABLE β€” All Haematological Malignancies", DARK_BLUE)) story.append(Spacer(1, 0.3*cm)) sum_data = [ ["Disease","Age","Key Cell/Finding","Key Marker","Chromosome","Treatment","Prognosis"], ["ALL","Children 2-5","Lymphoblast","TdT+, CD10+","t(12;21) good\nt(9;22) bad","BFM chemo\n3 phases","80% cure"], ["AML","Adults >60","Myeloblast\n+ Auer rods","MPO+","t(15;17) APL\nt(8;21)","7+3 / ATRA\nfor APL","Moderate"], ["CML","40-50 yrs","Mature myeloid\nBasophilia","Low LAP","t(9;22)\nPh chromosome","Imatinib\n(TKI)","Excellent"], ["CLL","Elderly >60","Smudge cells","CD5+CD19+\nCD23+","del 13q\ndel 17p (bad)","Ibrutinib\nWatch&Wait","Incurable\nbut slow"], ["HL","15-35 (bimodal)","Reed-Sternberg\nOWL EYE","CD15+\nCD30+","None specific","ABVD","~90% cure"], ["DLBCL",">50 yrs","Large B-cells","CD20+, BCL6+","None specific","R-CHOP","~65% cure"], ["Follicular",">50 yrs","Small cleaved\nB-cells","CD10+, BCL2+","t(14;18)","Watch&Wait\nRituximab","Indolent\n10+ yrs"], ["Burkitt","Children/young","Starry sky\nHigh mitosis","CD20+, BCL2-","t(8;14)\nc-MYC","R-CODOX-M","Curable in\nyoung"], ] story.append(fancy_table(sum_data[0], sum_data[1:], [2.3*cm,2*cm,2.5*cm,2.3*cm,2.3*cm,2.5*cm,2.5*cm])) story.append(PageBreak()) # ══════════════ MCQ SECTION ══════════════════════════════════════ story.append(section_bar("HIGH-YIELD MCQs (25 Questions) β€” Theory & Clinical", DARK_BLUE)) story.append(Spacer(1, 0.3*cm)) mcqs = [ # (question, [A,B,C,D], correct_letter, explanation) ("1. A 3-year-old child presents with pallor, bone pain, and hepatosplenomegaly. CBC shows WBC 80,000/Β΅L with 90% blasts. Bone marrow shows TdT+, CD10+ cells. The MOST LIKELY diagnosis is:", ["A. AML", "B. CML", "C. ALL", "D. CLL"], "C", "ALL is the most common childhood leukemia (peak 2-3 yrs). TdT+ and CD10+ (CALLA) are hallmarks of ALL. The presentation β€” bone pain, pallor, hepatosplenomegaly in a child β€” is classic."), ("2. Which of the following findings on a peripheral blood smear is PATHOGNOMONIC of AML?", ["A. Smudge cells", "B. Auer rods", "C. Tear drop cells", "D. Target cells"], "B", "Auer rods are pink needle-shaped crystalline inclusions inside myeloblasts β€” seen ONLY in AML, making them pathognomonic. Smudge cells = CLL. Tear drop cells = myelofibrosis."), ("3. A 45-year-old man has WBC 250,000/Β΅L with marked basophilia, massive splenomegaly, and a low LAP score. Cytogenetics show t(9;22). The FIRST-LINE treatment is:", ["A. Imatinib", "B. ABVD chemotherapy", "C. Hydroxyurea", "D. Bone marrow transplant"], "A", "CML with Philadelphia chromosome t(9;22) is treated with Imatinib (Gleevec), a BCR-ABL tyrosine kinase inhibitor. This revolutionized CML treatment in 1998. Low LAP distinguishes CML from leukemoid reaction."), ("4. A patient with AML M3 (APL) presents with spontaneous bleeding and DIC. The SPECIFIC treatment is:", ["A. Fresh frozen plasma only", "B. ATRA + Arsenic trioxide", "C. 7+3 chemotherapy", "D. Platelet transfusion only"], "B", "APL (M3, t(15;17), PML-RARA) is treated with ATRA (All-Trans Retinoic Acid) + Arsenic Trioxide. ATRA differentiates promyelocytes into mature cells, resolving DIC. This is the best prognosis AML subtype."), ("5. Which chromosomal abnormality defines Chronic Myeloid Leukemia?", ["A. t(8;21)", "B. t(15;17)", "C. t(9;22)", "D. t(14;18)"], "C", "t(9;22) creates the Philadelphia chromosome β€” BCR-ABL fusion gene β€” present in >95% of CML cases. t(8;21) = AML M2. t(15;17) = APL (M3). t(14;18) = Follicular lymphoma."), ("6. An elderly man is found to have lymphocytosis on a routine blood test. Smear shows crushed lymphocytes. Immunophenotyping shows CD5+, CD19+, CD23+. Best next step:", ["A. Start R-CHOP immediately", "B. Bone marrow biopsy and Rai staging", "C. Splenectomy", "D. Radiation therapy"], "B", "This is CLL β€” smudge cells + CD5+ B-cells are pathognomonic. Rai staging guides management. Early stage (0-I) = watch and wait. Do not treat early CLL without symptoms."), ("7. Which CLL complication represents transformation to an aggressive lymphoma?", ["A. AIHA", "B. Richter transformation", "C. Hypogammaglobulinemia", "D. ITP"], "B", "Richter transformation = CLL transforming to DLBCL (diffuse large B-cell lymphoma) in 10-15% of cases. Poor prognosis. AIHA = autoimmune hemolytic anemia (also a CLL complication, but not transformation)."), ("8. The Reed-Sternberg cell expresses which markers?", ["A. CD20+, CD3+", "B. TdT+, CD10+", "C. CD15+, CD30+", "D. CD5+, CD23+"], "C", "RS cells in classical Hodgkin lymphoma are CD15+ and CD30+ but NEGATIVE for CD45 (LCA), CD20, and CD3. CD15+CD30+ is THE classic RS cell immunophenotype for exam purposes."), ("9. The most common subtype of Hodgkin Lymphoma is:", ["A. Mixed Cellularity", "B. Lymphocyte Depleted", "C. Nodular Sclerosis", "D. Nodular LP"], "C", "Nodular Sclerosis = 70% of HL cases. It is the most common subtype, especially in young women and adolescents. It characteristically involves the mediastinum and has lacunar RS cell variants."), ("10. A young man with Hodgkin Lymphoma develops pain in his lymph nodes after drinking alcohol. This symptom is:", ["A. Non-specific and seen in many lymphomas", "B. Pathognomonic of Hodgkin Lymphoma", "C. Indicative of NHL", "D. A sign of transformation"], "B", "Alcohol-induced pain at lymph node sites is PATHOGNOMONIC of Hodgkin lymphoma. The mechanism is unclear but it is a classic board/exam question. Combined with Pel-Ebstein cyclical fever, it points strongly to HL."), ("11. Ann Arbor Stage IIIB Hodgkin Lymphoma means:", ["A. 1 node region, with fever", "B. Both sides of diaphragm involved + B symptoms", "C. Bone marrow involvement only", "D. Extranodal disease only"], "B", "Stage III = lymph node involvement on BOTH sides of the diaphragm. Suffix B = presence of B symptoms (fever >38Β°C, night sweats, weight loss >10%). Stage IV = extranodal involvement."), ("12. The standard 1st-line chemotherapy for early-stage Hodgkin Lymphoma is:", ["A. R-CHOP", "B. ABVD", "C. FCR", "D. BFM protocol"], "B", "ABVD = Adriamycin (Doxorubicin) + Bleomycin + Vinblastine + Dacarbazine. It is the standard 1st-line regimen for both early and advanced HL. R-CHOP = DLBCL. FCR = CLL."), ("13. The most common type of Non-Hodgkin Lymphoma worldwide is:", ["A. Follicular lymphoma", "B. Burkitt lymphoma", "C. DLBCL", "D. Mantle cell lymphoma"], "C", "DLBCL (Diffuse Large B-Cell Lymphoma) = 30% of all NHLs = MOST COMMON NHL. It is aggressive but potentially curable with R-CHOP. Follicular = 2nd most common (20%)."), ("14. A 10-year-old African child presents with a rapidly growing jaw mass. Biopsy shows a 'starry sky' pattern with t(8;14). The diagnosis is:", ["A. Hodgkin Lymphoma", "B. DLBCL", "C. Burkitt Lymphoma", "D. Follicular Lymphoma"], "C", "Endemic Burkitt lymphoma β€” African child + jaw mass + EBV positive + t(8;14) + starry sky pattern = classic. Burkitt is the fastest growing cancer with ~24 hr doubling time."), ("15. Which translocation is associated with Follicular Lymphoma and leads to BCL-2 overexpression?", ["A. t(9;22)", "B. t(14;18)", "C. t(8;14)", "D. t(15;17)"], "B", "t(14;18) juxtaposes BCL-2 gene (chr 18) with IgH enhancer (chr 14) β†’ BCL-2 overexpression β†’ anti-apoptotic effect β†’ cells accumulate in lymph nodes. This is the hallmark of follicular lymphoma."), ("16. Which leukemia has the BEST prognosis in childhood?", ["A. AML", "B. CML", "C. CLL", "D. ALL"], "D", "ALL in children has 95% remission rate and 80% disease-free survival at 5 years β€” the best of any childhood cancer. The BFM protocol (induction β†’ consolidation β†’ maintenance) achieves this remarkable result."), ("17. What is the LAP (Leukocyte Alkaline Phosphatase) score in CML?", ["A. High", "B. Normal", "C. Low", "D. Absent"], "C", "Low LAP score is a key feature of CML, distinguishing it from leukemoid reaction (high LAP). In leukemoid reaction, WBC is raised due to infection/inflammation but LAP is high. In CML, LAP is LOW."), ("18. Tumor lysis syndrome is a major risk in treatment of:", ["A. CLL", "B. Follicular lymphoma", "C. Burkitt lymphoma", "D. HL Stage I"], "C", "Burkitt lymphoma has the fastest proliferation rate. When killed by chemo, massive cell lysis releases K+, phosphate, uric acid β†’ hyperkalemia, hyperphosphatemia, hypocalcemia, hyperuricemia β†’ renal failure. Prevent with allopurinol/rasburicase + hydration."), ("19. A patient with CML in blast crisis. Blasts are TdT+ and CD10+. This means:", ["A. Lymphoid blast crisis β€” better response to ALL-type chemotherapy", "B. Myeloid blast crisis β€” treat with AML regimen", "C. It is in chronic phase", "D. No treatment needed"], "A", "CML blast crisis can be lymphoid (25-30%) or myeloid (70%). Lymphoid blast crisis shows TdT+, CD10+ (B-lymphoid markers) and responds better to ALL-type chemotherapy + imatinib. Myeloid = AML-type regimen."), ("20. The 'Pel-Ebstein fever' pattern (cyclical fever) is classically associated with:", ["A. Malaria", "B. Hodgkin Lymphoma", "C. CML accelerated phase", "D. Burkitt lymphoma"], "B", "Pel-Ebstein fever = cyclical pattern of fever (high for days-weeks, then afebrile for days-weeks) is classically described in Hodgkin lymphoma. It is one of the B symptoms and a classic exam question."), ("21. Which AML subtype is associated with Down syndrome?", ["A. M2", "B. M3", "C. M5", "D. M7"], "D", "M7 (Acute Megakaryoblastic Leukemia) has a strong association with Down syndrome (trisomy 21). Children with Down syndrome have 10-20Γ— higher risk of AML, and M7 is the predominant subtype. Also M0 in transient leukemia of Down."), ("22. Nodular Lymphocyte Predominant Hodgkin Lymphoma (NLP-HL) differs from classical HL in that:", ["A. It has RS cells", "B. It is CD15+ CD30+", "C. LP cells are CD20+ and CD15-", "D. It responds poorly to treatment"], "C", "NLP-HL has 'popcorn cells' (LP cells) that are CD20+, CD45+, CD15-, CD30- β€” completely different from classical RS cells. This has treatment implications: anti-CD20 (Rituximab) can be used. Prognosis is excellent."), ("23. The FAB subtype of AML that presents with bleeding gums and DIC, and is treated with ATRA is:", ["A. M1", "B. M3", "C. M5", "D. M6"], "B", "M3 = APL = t(15;17) = bleeding from DIC + Auer rod 'faggot cells' = ATRA is specific treatment. This is THE most important AML subtype to know for exams. It is a medical emergency but has BEST prognosis with ATRA."), ("24. Which of the following is TRUE about Follicular Lymphoma?", ["A. It is curable with R-CHOP", "B. Asymptomatic early disease should be treated immediately", "C. BCL-2 is overexpressed due to t(14;18)", "D. It transforms to ALL"], "C", "t(14;18) β†’ BCL-2 overexpression β†’ anti-apoptosis β†’ indolent course. FL is NOT curable with conventional chemo. Asymptomatic patients are watched (watch & wait). It transforms to DLBCL (Richter-like), NOT ALL."), ("25. A 65-year-old man develops fever, WBC 120,000, massive splenomegaly, and a peripheral smear showing the full myeloid spectrum from myeloblasts to mature granulocytes with basophilia. The NEXT BEST test is:", ["A. Bone marrow trephine for RS cells", "B. BCR-ABL PCR/FISH for Philadelphia chromosome", "C. TdT immunostaining", "D. CD5/CD19 flow cytometry"], "B", "This presentation = CML. The full myeloid spectrum + basophilia + massive spleen = CML until proven otherwise. BCR-ABL PCR or FISH for Philadelphia chromosome t(9;22) is the CONFIRMATORY test. Low LAP also supports CML."), ] for i, (q, opts, ans, exp) in enumerate(mcqs): story.append(Paragraph(q, mcq_q)) for opt in opts: story.append(Paragraph(opt, mcq_opt)) story.append(Paragraph(f"Answer: {ans}", mcq_ans)) story.append(Paragraph(f"Explanation: {exp}", body)) story.append(HRFlowable(width="100%", thickness=0.5, color=LIGHT_GRAY, spaceAfter=4)) if i == 12: # Page break mid-MCQs story.append(PageBreak()) story.append(section_bar("HIGH-YIELD MCQs (Continued)", DARK_BLUE)) story.append(Spacer(1, 0.3*cm)) story.append(PageBreak()) # ── QUICK REVISION FLASHCARDS ──────────────────────────────────── story.append(section_bar("QUICK REVISION FLASHCARDS β€” Last-Minute Review", GOLD)) story.append(Spacer(1, 0.3*cm)) cards = [ ("LEUKEMIA QUICK RECALL", DARK_BLUE, "ALL β†’ Children | TdT+, CD10+ | BFM 3-phase chemo | 80% cure\n" "AML β†’ Adults | Auer rods | 7+3 protocol | M3=ATRA+ATO\n" "CML β†’ Ph chr t(9;22) | BCR-ABL | Imatinib | 3 phases\n" "CLL β†’ Elderly | Smudge cells | CD5+CD19+ | Ibrutinib"), ("LYMPHOMA QUICK RECALL", ACCENT_RED, "HL β†’ Young adult | RS cell (CD15+CD30+) | OWL EYE | ABVD\n" "NS = Most common HL | MC = Most EBV | LD = Worst prognosis\n" "DLBCL = Most common NHL | R-CHOP | Curable\n" "Follicular = t(14;18) BCL-2 | Indolent | Watch & Wait\n" "Burkitt = t(8;14) c-MYC | Starry sky | FASTEST cancer"), ("KEY CHROMOSOMES", TEAL, "t(9;22) β†’ CML (Ph chromosome)\n" "t(15;17) β†’ APL/M3 (ATRA target)\n" "t(8;21) β†’ AML M2\n" "t(14;18) β†’ Follicular lymphoma (BCL-2)\n" "t(8;14) β†’ Burkitt lymphoma (c-MYC)\n" "t(11;14) β†’ Mantle cell lymphoma (Cyclin D1)"), ("CLASSIC EXAM TRAPS", ACCENT_RED, "Low LAP β†’ CML (not leukemoid reaction)\n" "Alcohol pain at node β†’ Hodgkin lymphoma\n" "Pel-Ebstein fever β†’ Hodgkin lymphoma\n" "DIC + blast crisis β†’ APL M3 β†’ give ATRA first!\n" "CD5+ B-cell β†’ CLL (or Mantle cell lymphoma)\n" "Smudge cells β†’ CLL | Auer rods β†’ AML\n" "Starry sky β†’ Burkitt | Lacunar cells β†’ NS-HL"), ("TREATMENT QUICK RECALL", DARK_BLUE, "ALL β†’ Vincristine + Prednisolone + L-Asp (induction)\n" "AML β†’ 7+3 (Cytarabine 7 days + Anthracycline 3 days)\n" "APL β†’ ATRA + Arsenic Trioxide (NO traditional chemo!)\n" "CML β†’ Imatinib (1st gen TKI) β†’ Dasatinib/Nilotinib (2nd gen)\n" "CLL β†’ Watch & Wait (early) | Ibrutinib (advanced)\n" "HL β†’ ABVD Β± Radiation\n" "DLBCL β†’ R-CHOP Γ— 6 cycles\n" "Burkitt β†’ R-CODOX-M/IVAC"), ("B SYMPTOMS (for staging)", MED_BLUE, "B1: Fever >38Β°C (unexplained)\n" "B2: Night sweats (drenching)\n" "B3: Weight loss >10% in 6 months\n\n" "Presence of B symptoms β†’ Stage XB (worse prognosis)\n" "Absence β†’ Stage XA (better prognosis)"), ] # Lay cards in 2-column grid for i in range(0, len(cards), 2): row_data = [] for j in range(2): if i+j < len(cards): title, color, content = cards[i+j] card_content = ( f'<font color="{color.hexval() if hasattr(color,"hexval") else "#1A237E"}"><b>{title}</b></font><br/><br/>' + content.replace('\n','<br/>') ) cell = Paragraph(card_content, ParagraphStyle('card', fontSize=9, fontName='Helvetica', leading=14, textColor=DARK_GRAY)) else: cell = Paragraph("", body) row_data.append(cell) t = Table([row_data], colWidths=[8*cm, 8*cm]) t.setStyle(TableStyle([ ('BOX', (0,0), (0,0), 1.5, cards[i][1]), ('BOX', (1,0), (1,0), 1.5, cards[min(i+1,len(cards)-1)][1] if i+1<len(cards) else DARK_BLUE), ('BACKGROUND', (0,0), (-1,-1), LIGHT_GRAY), ('LEFTPADDING', (0,0), (-1,-1), 10), ('RIGHTPADDING', (0,0), (-1,-1), 10), ('TOPPADDING', (0,0), (-1,-1), 10), ('BOTTOMPADDING', (0,0), (-1,-1), 10), ('COLPADDING', (0,0), (-1,-1), 8), ])) story.append(t) story.append(Spacer(1, 0.3*cm)) # ── BUILD PDF ───────────────────────────────────────────────────── doc = SimpleDocTemplate( OUTPUT, pagesize=A4, topMargin=1.2*cm, bottomMargin=1.2*cm, leftMargin=1.5*cm, rightMargin=1.5*cm, title="Module 5 β€” Haematology: Leukemia & Lymphoma", author="6th Semester Medicine", ) doc.build(story, onFirstPage=on_page, onLaterPages=on_page) print(f"PDF built successfully: {OUTPUT}") PYEOF echo "Script written"

Running Command

cd /tmp/workspace/haematology-module5 && python build_pdf.py 2>&1

Editing File

~/haematology-module5/build_pdf.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/haematology-module5/build_pdf.py'
Running Command

cd /tmp/workspace/haematology-module5 && python build_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/haematology-module5/Module5_Haematology.pdf

Your Module 5 - Haematology Master PDF is ready! πŸŽ‰

Module5 Haematology

PDF Document Β· PDF


Here's everything inside the PDF (5.3 MB):
SectionContent
πŸ“˜ Cover PageModule overview, learning objectives, sources
πŸ”¬ Diagnostic FlowchartStep-by-step visual from "high WBC" to ALL/AML/CML/CLL
πŸ“Š Master Comparison TableAll 4 leukemias side-by-side
πŸ”΄ ALLPALE BLAST mnemonic, investigations table, 3-phase treatment
πŸ”΄ AMLAuer rods, FAB M0-M7 classification, M3/APL emergency box
🟑 CMLPhiladelphia chromosome step-by-step, CML 3-phases diagram, Imatinib story
🟒 CLLSmudge cells, Rai staging, Richter transformation
πŸ–Ό RS Cell ImageReal Robbins histology β€” owl-eye Reed-Sternberg cell
πŸ–Ό Burkitt Starry Sky ImageReal histology from Robbins Cotran
πŸ–Ό HL Lacunar Cell ImageNodular Sclerosis lacunar cells
πŸ–Ό HL Collagen Bands ImageNodular Sclerosis low-power view
πŸ“‹ Master Summary TableAll 8 diseases in one comparison
❓ 25 MCQsTheory + clinical vignettes, full explained answers
πŸƒ Quick Revision Flashcards6 color-coded cards for last-minute review
This is a shared conversation. Sign in to Orris to start your own chat.