I'm a bsc nursing 3rd semester students
I'm having exam of msn and microbiology infection control after w0 days I have to learn the huge syllabus
How many days do you have before the exam? (You mentioned 'w0 days' β did you mean 10 days?) Β· Which topics do you need to cover? (Select all that apply)
| Day | MSN Topics | Microbiology Topics |
|---|---|---|
| Day 1 | Introduction to MSN, Nursing Process review, Health Assessment basics | Introduction to Microbiology, Classification of microorganisms |
| Day 2 | Vital signs monitoring, Fluid & Electrolyte balance | Bacteria - structure, types, morphology |
| Day 3 | Wound care & healing, Dressings & Bandaging | Viruses - structure, replication, classification |
| Day 4 | Pre-op & Post-op nursing care | Fungi, Parasites (brief overview) |
| Day 5 | Shock - types, pathophysiology, nursing management | Host-parasite relationship, Types of infection |
| Day 6 | Pain management, Nursing interventions | Chain of infection, Modes of transmission |
| Day 7 | REVISION DAY - Week 1 MSN topics | REVISION - Week 1 Micro topics |
| Day | MSN Topics | Microbiology Topics |
|---|---|---|
| Day 8 | Respiratory system disorders (Pneumonia, TB, Asthma, COPD) | Infection Control - Standard Precautions |
| Day 9 | Cardiovascular disorders (MI, Heart failure, Hypertension) | Transmission-based precautions (Contact, Droplet, Airborne) |
| Day 10 | GI disorders (Peptic ulcer, Appendicitis, Liver disorders) | Sterilization & Disinfection - methods and types |
| Day 11 | Renal disorders (UTI, Renal failure, Nephrotic syndrome) | Hospital Acquired Infections (HAI/HCAI) - types, prevention |
| Day 12 | Neurological disorders (Stroke, Meningitis, Epilepsy) | Asepsis - medical & surgical asepsis, sterile technique |
| Day 13 | Endocrine disorders (Diabetes Mellitus, Thyroid disorders) | Hand hygiene - WHO 5 moments, techniques |
| Day 14 | REVISION DAY - Week 2 MSN topics | REVISION - Week 2 Micro topics |
| Day | Focus |
|---|---|
| Day 15 | MSN: Musculoskeletal, Skin disorders, Eye/ENT nursing |
| Day 16 | Micro: PPE, Waste management (BMW rules), Isolation nursing |
| Day 17 | MSN Full Revision - go through all short notes |
| Day 18 | Micro Full Revision - go through all short notes |
| Day 19 | Practice previous year questions (both subjects) |
| Day 20 | Light review, formulas/mnemonics, rest well before exam |
I'll send u syllabus of both than we will start topic wise and ull make me short notes and flow chart for last min revision after teaching me each topic fully
Will send a few more pages
| Unit | Topics |
|---|---|
| I | Introduction - Importance to nursing, Historical perspective, Concepts & terminology, Principles of microbiology |
| II | General Characteristics of Microbes - Structure & classification, Morphological types, Size/form of bacteria, Colonization, Growth & nutrition, Temperature, Moisture, Blood & body fluids, Lab methods, Types of Staining (Simple, Gram's, AFB, Special, Capsular, Spore, LPCB, KOH), Culture & media preparation |
| III | Pathogenic Organisms - Cocci (Gram +ve/-ve), Bacilli (Gram +ve/-ve), Viruses, Fungi (superficial & deep), Parasites, Rodents & Vectors, Characteristics, Source, Portal of entry, Transmission, Identification |
| IV | Immunity - Types & classification, Antigen-antibody reaction, Hypersensitivity, Serological tests, Immunoglobulins, Vaccines (types, classification, storage, cold chain), Immunization schedule |
| Unit | Topics |
|---|---|
| I | HAI (Hospital Acquired Infections) - Bundle approach, Prevention of UTI, SSI, VAE, CLABSI, Surveillance |
| II | Isolation Precautions & PPE - Types of isolation, Standard precautions, Transmission-based (Contact, Droplet, Airborne), CDC guidelines, Effective use of PPE |
| III | Hand Hygiene - Types, Hand washing, Alcohol hand rub, WHO 5 Moments, WHO promotion |
| IV | Disinfection & Sterilization - Definitions, Types, Environment cleaning, Equipment cleaning, Spaulding's principle |
| V | Specimen Collection - Principles, Types, Collection techniques, Containers, Transportation, Staff precautions |
| VI | BMW (Bio Medical Waste Management) - Waste management process, Staff precautions, Laundry, BMW National Guidelines 2017, Color coding, Segregation, Packaging, Transportation |
| VII | Antibiotic Stewardship - Importance, AMR, MRSA/MDRO prevention in healthcare |
| VIII | Patient Safety Indicators - Vulnerable patients, Iatrogenic injury, Lines/drains/tubings, Restraints, Blood transfusion policy, IV complications, Fall prevention, DVT, Shifting/transporting, Surgical safety, Medication reconciliation, HAI prevention, Documentation + Incidents & Adverse Events (RCA, CAPA) |
| IX | IPSG (International Patient Safety Goals) - 6 goals: Patient identification, Communication, High alert medications, Safe surgery, HAI reduction, Fall prevention |
| X | Safety Protocols - 5S, Radiation safety, Laser safety, Fire safety, HAZMAT, Environmental safety, Emergency codes, Role of nurse in disaster |
| XI | Employee Safety Indicators - Vaccination, NSI (Needle Stick Injuries), Fall prevention, Radiation safety, Annual health check, Healthcare Worker Immunization, Post-exposure prophylaxis |
| Unit | Topics |
|---|---|
| I | Introduction to MSN - Evolution & trends, International classification of diseases, Roles & responsibilities of nurse, Medical & surgical asepsis, Inflammation & infection, Wound healing (stages & influencing factors), Wound care & dressing, Pre-op & Post-op care, Alternative therapies |
| II | Intraoperative Care - OT organization & physical setup, Classification, OT Design, Staffing, OT team members, Nurse duties in OT, Positioning & draping, Instruments, sutures, Disinfection of equipment, Scrubbing (Gowning, Masking, Gloving), Monitoring patient, Anaesthesia (types, methods, effects, drugs), Legal aspects |
| III | Common Signs & Symptoms - Fluid & Electrolyte imbalance, Shock, Pain |
| IV | Respiratory System - Anatomy & physiology review, Nursing assessment, Upper RTI, COPD, Pleural effusion, Empyema, Bronchiectasis, Pneumonia, Lung abscess, Cyst & tumors, Chest injuries, ARDS, Pulmonary embolism |
| V | Digestive System - Anatomy & physiology, Nursing assessment, GI investigations, Oral cavity disorders, GI Bleeding, Infections, Obstruction, Perforation, Peritonitis, Peptic & duodenal ulcer, Malabsorption, Appendicitis, Hernias, Hemorrhoids, Fissures, Fistulas, Pancreas disorders, Liver (inflammation, cirrhosis, portal hypertension, hepatic failure), Gall bladder (Cholecystitis, Cholelithiasis), Gastric decompression, Gavage, Stoma care |
| VI | Cardiovascular System - Anatomy & physiology review, Nursing assessment, Vascular disorders (Hypertension, Arteriosclerosis, Raynaud's, Aneurysm, PVD), Coronary artery diseases (Atherosclerosis, Angina, MI), Valvular disorders, Rheumatic heart disease, Pericarditis, Myocarditis, Endocarditis, Cardiomyopathies, Dysrhythmias, Heart block, CHF, Corpulmonale, Pulmonary edema, Cardiogenic shock, Cardiac tamponade, Cardiopulmonary arrest, BLS/BCLS |
| VII | Blood Disorders - Anatomy & physiology, Nursing assessment, Anemia, Polycythemia, Bleeding disorders, Thalassemia, Leukemia, Leukopenia, Agranulocytosis, Lymphomas, Myelomas |
| VIII | Endocrine System - Anatomy & physiology, Nursing assessment, Thyroid disorders (Hyper, Hypo, tumors), Parathyroid, Adrenal, Pituitary disorders, Diabetes mellitus, Insulin administration, Diabetic diet |
| IX | Integumentary System - Anatomy & physiology of skin, Nursing assessment, Dermatitis, Infections & infestations, Acne, Allergies, Eczema, Pemphigus, Psoriasis, Malignant melanoma, Alopecia, Special & alternative therapies |
| X | Musculoskeletal System - Anatomy & physiology, Nursing assessment, Trauma (Dislocation, Fracture, Sprain, Strain), Amputation, Musculoskeletal infections & tumors, Osteomyelitis, Benign & malignant tumours |
"Start with [Topic Name]"
Msn last page
| Subject | Units | Key Heavy Units |
|---|---|---|
| Microbiology (Section A) | 4 units | Pathogenic organisms, Immunity |
| Infection Control (Section B) | 11 units | HAI, PPE, BMW, IPSG, Patient Safety |
| MSN | 11 units | CVS (20hrs!), Respiratory (18hrs), GI (16hrs), MSK (16hrs), Communicable Diseases (20hrs) |
"Start with [Topic Name]"
Now make chapter wise preiotry for each subject and start teaching from chapter one as per ur preiotry for all the subjects but each topic in simple under language according to syllabus itself
| Priority | Unit | Topic | Why High Priority |
|---|---|---|---|
| 1οΈβ£ | I | Wound Healing & Inflammation | Foundation topic, always in exam |
| 2οΈβ£ | III | Shock + Fluid & Electrolyte Imbalance + Pain | Common short/long questions |
| 3οΈβ£ | IV | Respiratory Disorders | 18 hrs - huge unit |
| 4οΈβ£ | VI | Cardiovascular Disorders | 20 hrs - biggest unit |
| 5οΈβ£ | XI | Communicable Diseases | 20 hrs - TB, Dengue, COVID always asked |
| 6οΈβ£ | V | GI Disorders | 16 hrs |
| 7οΈβ£ | VIII | Endocrine (Diabetes, Thyroid) | Very common clinically |
| 8οΈβ£ | II | Intraoperative Care / OT | Pre-op, Post-op, Anaesthesia |
| 9οΈβ£ | VII | Blood Disorders | Anemia, Leukemia |
| π | X | Musculoskeletal | Fracture, Osteoporosis |
| 1οΈβ£1οΈβ£ | IX | Integumentary (Skin) | Lowest weightage |
| Priority | Unit | Topic | Why High Priority |
|---|---|---|---|
| 1οΈβ£ | III | Hand Hygiene (WHO 5 Moments) | Always in exam, OSCE too |
| 2οΈβ£ | II | Isolation Precautions + PPE | Very high weightage |
| 3οΈβ£ | I | HAI - Hospital Acquired Infections | Foundation, MCQ favorite |
| 4οΈβ£ | IV | Disinfection & Sterilization | Always asked |
| 5οΈβ£ | VI | BMW - Biomedical Waste Management | Color codes always asked |
| 6οΈβ£ | IX | IPSG - 6 Patient Safety Goals | Short answer favorite |
| 7οΈβ£ | VII | Antibiotic Stewardship / AMR / MRSA | Trending topic |
| 8οΈβ£ | VIII | Patient Safety Indicators | Long unit |
| 9οΈβ£ | V | Specimen Collection | Practical-based |
| π | X | Safety Protocols (5S, Fire, HAZMAT) | Lower weightage |
| 1οΈβ£1οΈβ£ | XI | Employee Safety / NSI | Short answer only |
| Sign | Latin Word | What You See |
|---|---|---|
| Redness | Rubor | Area turns red |
| Heat | Calor | Area feels warm/hot |
| Edema (Swelling) | Tumor | Area swells up |
| Soreness (Pain) | Dolor | Area is painful |
| Loss of Function | Functio laesa | Can't use the part normally |
π‘ Mnemonic: "RHEST" = Redness, Heat, Edema, Soreness, Tenderness/Loss of function
Injury/Infection
β
Blood vessels DILATE (get wider) β Redness + Heat
β
Blood vessels become PERMEABLE (leaky) β Fluid leaks out β Swelling
β
WBCs (Neutrophils first) rush to the area
β
WBCs eat the bacteria/dead cells (Phagocytosis)
β
Healing begins OR Chronic inflammation
| Type | Description | Example |
|---|---|---|
| Incised | Clean cut by sharp object | Surgical incision, knife cut |
| Lacerated | Torn, irregular edges | Road accident wound |
| Contused | Bruise, no skin break | Blunt trauma |
| Puncture | Deep, narrow, small opening | Nail prick, injection |
| Abrasion | Skin scraped off | Falling on road |
| Avulsion | Tissue torn away | Severe trauma |
| Burns | Caused by heat/chemical/electricity |
π‘ Memory trick: 1st = FAST (sutured), 2nd = SLOW (open), 3rd = WAIT then stitch
Think of it as: "Plug the leak first!"
Think of it as: "Send the cleaning crew!"
| Process | What Happens |
|---|---|
| Granulation | Fibroblasts make new connective tissue + new blood vessels grow (angiogenesis) = pink, bumpy, moist tissue called granulation tissue |
| Contraction | Wound edges pull together (myofibroblasts contract) = wound gets smaller |
| Epithelialization | New skin cells (epithelial cells) grow from edges inward to cover the wound |
Think of it as: "Build the new structure!"
Think of it as: "Finish and polish the building!"
| Letter | Factor |
|---|---|
| D | Diabetes mellitus |
| A | Age (elderly heal slower) |
| M | Malnutrition (Vit C, Zinc, Protein needed!) |
| N | No blood supply (vascular disease) |
| V | Various medications (steroids, chemo) |
| I | Immune deficiency |
| T | Tobacco/smoking |
| Type | Used For |
|---|---|
| Dry dressing | Simple wounds, post-op |
| Wet-to-dry | Infected/necrotic wounds |
| Hydrocolloid | Pressure ulcers, chronic wounds |
| Foam dressing | Moderate exudate wounds |
| Alginate | Heavy exudate wounds |
| Transparent film | Superficial wounds, IV sites |
WOUND HEALING FLOWCHART
βββββββββββββββββββββββββββββββββββββββββββ
INJURY OCCURS
β
βββββββββββββββββββββββ
β STAGE 1 β TIME: 0-3 hrs
β HAEMOSTASIS β CELLS: Platelets
β Clot formation β EVENT: Bleeding stops
ββββββββββββ¬βββββββββββ
β
βββββββββββββββββββββββ
β STAGE 2 β TIME: Day 1-4
β INFLAMMATION β CELLS: NeutrophilsβMacrophages
β Clean the wound β SIGNS: Red, Hot, Swollen, Painful
ββββββββββββ¬βββββββββββ
β
βββββββββββββββββββββββ
β STAGE 3 β TIME: Day 3 - Week 3
β PROLIFERATION β CELLS: Fibroblasts
β Fill the wound β EVENT: Granulation tissue,
β β Contraction, Epithelialization
ββββββββββββ¬βββββββββββ
β
βββββββββββββββββββββββ
β STAGE 4 β TIME: Week 3 - Months
β REMODELLING β CELLS: Fibroblasts
β Strengthen scar β EVENT: Collagen reorganizes
β β Wound = 80% original strength
βββββββββββββββββββββββ
TYPES OF HEALING:
1st Intention: SUTURED β Fast β Clean surgical wound
2nd Intention: OPEN β Slow β Granulates from inside
3rd Intention: WAIT 4-5 days β THEN suture
DELAY FACTORS: Diabetes | Age | Malnutrition | Infection | Steroids | Smoking
Where is it
R send
| Sign | Latin Name | What You See/Feel |
|---|---|---|
| Redness | Rubor | Area looks red |
| Heat | Calor | Area feels hot/warm |
| Swelling | Tumor | Area is puffy/swollen |
| Pain | Dolor | Area is painful/tender |
| Loss of Function | Functio Laesa | Cannot use that part normally |
| Acute | Chronic | |
|---|---|---|
| Speed | Fast (minutes-hours) | Slow (weeks-months) |
| Duration | Short (days-weeks) | Long (months-years) |
| Main Cells | Neutrophils | Macrophages + Lymphocytes |
| Example | Wound infection, appendicitis | TB, Rheumatoid Arthritis |
Injury / Infection
β
Blood vessels DILATE (widen)
β Redness + Heat
β
Blood vessels become LEAKY
β Fluid leaks out β Swelling
β
WBCs rush to area
β Neutrophils first (eat bacteria)
β Macrophages next (clean debris + release healing signals)
β
Healing begins (or β Chronic inflammation if not resolved)
| Type | Description | Example |
|---|---|---|
| Incised | Clean cut by sharp object | Surgical cut, knife |
| Lacerated | Torn, irregular edges | Road accident |
| Contused | Bruise, no skin break | Blunt hit |
| Puncture | Deep, narrow, small hole | Nail prick, injection |
| Abrasion | Skin scraped off surface | Falling on road |
| Avulsion | Tissue completely torn away | Severe trauma |
| Burns | Heat/chemical/electrical |
| Type | Also Called | How It Heals | Example |
|---|---|---|---|
| 1st Intention | Primary | Wound edges sutured/closed within 24 hrs β Fast, minimal scar | Surgical incision |
| 2nd Intention | Secondary | Wound left OPEN, heals from inside out via granulation tissue β Slow, more scar | Diabetic ulcer, abscess |
| 3rd Intention | Tertiary / Delayed Primary | Wound left open 4-5 days (to allow cleaning), THEN sutured | Dog bite, contaminated wounds |
π‘ Trick: 1st = FAST (stitch it), 2nd = SLOW (leave open), 3rd = WAIT then stitch
Think: "Plug the leak!"
Think: "Send the cleaning crew!"
| Process | What Happens | Cells Involved |
|---|---|---|
| Granulation | New connective tissue + new blood vessels grow inside wound | Fibroblasts + Endothelial cells |
| Contraction | Wound edges pull inward β wound gets smaller | Myofibroblasts |
| Epithelialization | New skin grows from edges inward to cover wound | Epithelial cells |
Think: "Build the new structure!"
Think: "Finishing and polishing!"
| Letter | Factor |
|---|---|
| D | Diabetes mellitus |
| A | Age (elderly heal slower) |
| M | Malnutrition (need Protein, Vit C, Zinc) |
| N | No blood supply (vascular disease) |
| V | Various drugs (steroids, chemotherapy) |
| I | Immune deficiency (HIV, etc.) |
| T | Tobacco / Smoking |
| Scar Type | Description | Treatment |
|---|---|---|
| Normal scar | Flat, pale, within wound borders | None needed |
| Hypertrophic scar | Raised, red, stays WITHIN wound margins | Silicone, steroids, compression |
| Keloid scar | Grows BEYOND original wound margins, common in dark skin | Excision + radiotherapy, harder to treat |
π‘ Key difference: Hypertrophic = stays inside | Keloid = goes outside the wound
INFLAMMATION
β’ Def: Body's protective response to injury/infection
β’ 5 Signs: Redness, Heat, Swelling, Pain, Loss of function
β’ Acute: Fast, Neutrophils, Days-weeks
β’ Chronic: Slow, Macrophages+Lymphocytes, Months-years
WOUND TYPES
β’ Incised | Lacerated | Contused | Puncture | Abrasion | Avulsion | Burns
3 TYPES OF HEALING
β’ 1st = Sutured fast β clean wound
β’ 2nd = Left open β heals inside out
β’ 3rd = Open 4-5 days β then sutured
4 STAGES (HIPR)
β’ Stage 1 - HAEMOSTASIS: 0-few hrs | Platelets | Clot forms
β’ Stage 2 - INFLAMMATION: Day 1-4 | Neutrophils then Macrophages | Clean wound
β’ Stage 3 - PROLIFERATION: Day 3-Wk3 | Fibroblasts | Granulation+Contraction+Epithelialization
β’ Stage 4 - REMODELLING: Wk3-months | Collagen reorg | 80% strength
DELAY FACTORS: DAMN VIT
D-Diabetes, A-Age, M-Malnutrition, N-No blood supply,
V-Various drugs, I-Immune deficiency, T-Tobacco
SCARS
β’ Hypertrophic = raised but WITHIN wound
β’ Keloid = raised and BEYOND wound (dark skin)
ββββββββββββββββββββββββββββββββββββββββ
WOUND HEALING FLOWCHART
ββββββββββββββββββββββββββββββββββββββββ
INJURY / WOUND
β
βββββββββββββββββββββββββββ
β STAGE 1: HAEMOSTASIS β β 0 to few hours
β Platelets β Clot forms β GOAL: Stop bleeding
βββββββββββββ¬ββββββββββββββ
β
βββββββββββββββββββββββββββ
β STAGE 2: INFLAMMATION β β Day 1 to 4
β Neutrophils (Day 1-2) β GOAL: Clean wound
β Macrophages (Day 2-3) β SIGNS: Red, Hot, Swollen
βββββββββββββ¬ββββββββββββββ
β
βββββββββββββββββββββββββββ
β STAGE 3: PROLIFERATION β β Day 3 to Week 3
β Fibroblasts grow β GOAL: Fill the wound
β Granulation tissue β
β Contraction β
β Epithelialization β
βββββββββββββ¬ββββββββββββββ
β
βββββββββββββββββββββββββββ
β STAGE 4: REMODELLING β β Week 3 to Months
β Collagen reorganizes β GOAL: Strengthen scar
β Wound = 80% strength β
βββββββββββββββββββββββββββ
TYPES OF HEALING:
β€ 1st Intention β SUTURED β Fast healing
β€ 2nd Intention β OPEN β Slow, inside-out
β€ 3rd Intention β WAIT 4-5 days β THEN suture
DELAY FACTORS: DAMN VIT
D - Diabetes | A - Age | M - Malnutrition
N - No blood supply | V - Various drugs
I - Immune deficiency | T - Tobacco
SCARS:
Normal β flat, within borders
Hypertrophic β raised, WITHIN borders
Keloid β raised, BEYOND borders (dark skin)
ββββββββββββββββββββββββββββββββββββββββ
Antigen antibody reaction
Think of antigen like a criminal entering your body π¦
Think of antibody like a specific police officer with handcuffs made exactly for that criminal π
ANTIGEN enters body
β
Body recognizes it as FOREIGN
β
B Lymphocytes activated
β
B cells β become PLASMA CELLS
β
Plasma cells produce ANTIBODIES (Immunoglobulins)
β
Antibody binds to ANTIGEN (Ag-Ab Complex forms)
β
ANTIGEN IS DESTROYED
| Feature | Explanation |
|---|---|
| Specificity | One antibody reacts with only ONE specific antigen - like lock and key |
| Reversible | Ag-Ab complex can break apart and reform |
| Non-covalent bonding | Held together by weak bonds (hydrogen bonds, electrostatic forces) |
| Affinity | Strength of ONE antibody binding to ONE antigen site |
| Avidity | Overall strength when antibody has MULTIPLE binding sites to multiple antigens |
π‘ Memory trick for 5 actions: "APNLO" Agglutination, Precipitation, Neutralization, Lysis, Opsonization
| Ig | Full Name | Where Found | Main Function |
|---|---|---|---|
| IgG | Immunoglobulin G | Blood, tissues | Most abundant (75-80%), main memory antibody, crosses placenta (protects newborn!), secondary immune response |
| IgA | Immunoglobulin A | Secretions (saliva, tears, breast milk, mucus) | Protects mucous membranes, found in colostrum |
| IgM | Immunoglobulin M | Blood | Largest antibody, FIRST to appear in infection (primary response), blood group antibodies |
| IgE | Immunoglobulin E | Mast cells, basophils | Responsible for ALLERGIC reactions, fights parasites |
| IgD | Immunoglobulin D | B cell surface | Acts as receptor on B cells, activates them |
π‘ Mnemonic: "GADME" = G-A-D-M-E or remember: "Go And Defend Me Everywhere" = G, A, D, M, E
Ag + Ab β Complex formed
β
Complement activated (C1 β cascade)
β
C3b β Opsonization (enhanced eating by phagocytes)
C5b6789 (MAC) β Lysis (bacteria burst)
ANTIGEN
β’ Foreign substance that triggers immune response
β’ Has EPITOPE = exact binding site for antibody
ANTIBODY (Immunoglobulin)
β’ Y-shaped protein made by Plasma cells (from B lymphocytes)
β’ Fab = binds antigen | Fc = effector functions
β’ Specific: ONE antibody for ONE antigen (lock-key)
Ag-Ab REACTION RESULTS (APNLO):
β’ Agglutination = clumping of particles
β’ Precipitation = soluble Ag made insoluble
β’ Neutralization = covers toxic sites of Ag
β’ Lysis = bursts cell membrane
β’ Opsonization = coats Ag for easy phagocytosis
5 IMMUNOGLOBULINS (GADME):
β’ IgG = Most abundant, crosses placenta, memory
β’ IgA = Secretions (saliva, breast milk, tears)
β’ IgM = First to appear, largest, primary response
β’ IgE = Allergy + parasites
β’ IgD = B cell receptor/activator
COMPLEMENT SYSTEM:
β’ Activated by Ag-Ab complex (Classical Pathway)
β’ C3b = opsonization | MAC (C5b6789) = lysis
ββββββββββββββββββββββββββββββββββββββββββββββ
ANTIGEN-ANTIBODY REACTION FLOWCHART
ββββββββββββββββββββββββββββββββββββββββββββββ
ANTIGEN enters body (bacteria, virus, toxin)
β
Recognized as FOREIGN by immune system
β
B LYMPHOCYTES activated
β
B cells β PLASMA CELLS
β
Plasma cells secrete ANTIBODIES (Immunoglobulins)
β
ANTIBODY binds to ANTIGEN (Lock + Key)
β
Ag-Ab COMPLEX
β
βββββββββββββββββββββββββββ
β RESULTS (APNLO): β
β β’ Agglutination β β Clumping
β β’ Precipitation β β Insoluble complex
β β’ Neutralization β β Toxin blocked
β β’ Lysis β β Cell bursts
β β’ Opsonization β β Phagocytes eat
βββββββββββββββββββββββββββ
β
COMPLEMENT SYSTEM activated
C3b β Opsonization
MAC (C5b6789) β Lysis
IMMUNOGLOBULINS (GADME):
ββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β IgG β Most abundant | Crosses placenta β
β IgA β Secretions: saliva, tears, milk β
β IgD β B cell surface receptor β
β IgM β FIRST in infection | Largest β
β IgE β Allergies + Parasites β
ββββββββ΄βββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββ
Create a PDF summary of Antigen-Antibody Reaction for quick revision
ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty"
mkdir -p /home/daytona/workspace/nursing-notes && python3 -c "from reportlab.lib.pagesizes import A4; print('reportlab ok')"
~/nursing-notes/create_ag_ab_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, HRFlowable, KeepTogether)
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.platypus import PageBreak
OUTPUT = "/home/daytona/workspace/nursing-notes/Antigen_Antibody_Reaction.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=1.8*cm, rightMargin=1.8*cm,
topMargin=1.5*cm, bottomMargin=1.5*cm
)
# ββ Colour palette ββββββββββββββββββββββββββββββββββββββββββββββ
C_DARK_BLUE = colors.HexColor("#1A3C6E")
C_BLUE = colors.HexColor("#2563EB")
C_LIGHT_BLUE = colors.HexColor("#DBEAFE")
C_RED = colors.HexColor("#DC2626")
C_LIGHT_RED = colors.HexColor("#FEE2E2")
C_GREEN = colors.HexColor("#16A34A")
C_LIGHT_GREEN = colors.HexColor("#DCFCE7")
C_ORANGE = colors.HexColor("#EA580C")
C_LIGHT_ORANGE= colors.HexColor("#FFF7ED")
C_PURPLE = colors.HexColor("#7C3AED")
C_LIGHT_PURPLE= colors.HexColor("#EDE9FE")
C_YELLOW = colors.HexColor("#CA8A04")
C_LIGHT_YELLOW= colors.HexColor("#FEF9C3")
C_GRAY = colors.HexColor("#F1F5F9")
C_DARK_GRAY = colors.HexColor("#374151")
C_WHITE = colors.white
# ββ Styles βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
styles = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
title_style = S("Title", fontSize=20, textColor=C_WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER, spaceAfter=4)
subtitle_style = S("Subtitle", fontSize=11, textColor=C_LIGHT_BLUE,
fontName="Helvetica", alignment=TA_CENTER, spaceAfter=2)
tag_style = S("Tag", fontSize=9, textColor=C_WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER)
h2_style = S("H2", fontSize=13, textColor=C_DARK_BLUE,
fontName="Helvetica-Bold", spaceBefore=10, spaceAfter=4)
h3_style = S("H3", fontSize=11, textColor=C_BLUE,
fontName="Helvetica-Bold", spaceBefore=6, spaceAfter=3)
body = S("Body", fontSize=9.5, textColor=C_DARK_GRAY,
fontName="Helvetica", leading=14, spaceAfter=3)
body_bold = S("BodyBold", fontSize=9.5, textColor=C_DARK_GRAY,
fontName="Helvetica-Bold", leading=14, spaceAfter=2)
bullet = S("Bullet", fontSize=9.5, textColor=C_DARK_GRAY,
fontName="Helvetica", leading=14, spaceAfter=2,
leftIndent=14, bulletIndent=4)
mnemonic = S("Mnemonic", fontSize=11, textColor=C_PURPLE,
fontName="Helvetica-Bold", alignment=TA_CENTER,
spaceBefore=4, spaceAfter=4)
note_style = S("Note", fontSize=9, textColor=C_ORANGE,
fontName="Helvetica-BoldOblique", spaceAfter=3)
def section_header(text, bg=C_DARK_BLUE, fg=C_WHITE):
tbl = Table([[Paragraph(text, S("sh", fontSize=12, textColor=fg,
fontName="Helvetica-Bold", alignment=TA_CENTER))]],
colWidths=[17.4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("ROUNDEDCORNERS", [6]),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
return tbl
def info_box(text, bg=C_LIGHT_BLUE, border=C_BLUE):
tbl = Table([[Paragraph(text, S("ib", fontSize=9.5, textColor=C_DARK_GRAY,
fontName="Helvetica", leading=14))]],
colWidths=[17.4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 1.5, border),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
return tbl
def mnemonic_box(text, sub=""):
content = [Paragraph(text, mnemonic)]
if sub:
content.append(Paragraph(sub, S("ms", fontSize=9, textColor=C_DARK_GRAY,
fontName="Helvetica-Oblique", alignment=TA_CENTER)))
tbl = Table([content] if not sub else [[content[0]], [content[1]]], colWidths=[17.4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_LIGHT_PURPLE),
("BOX", (0,0), (-1,-1), 2, C_PURPLE),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
return tbl
# ββ Build story ββββββββββββββββββββββββββββββββββββββββββββββββββ
story = []
# βββ TITLE BANNER ββββββββββββββββββββββββββββββββββββββββββββββββ
title_tbl = Table([
[Paragraph("ANTIGEN-ANTIBODY REACTION", title_style)],
[Paragraph("BSc Nursing 3rd Semester | Microbiology - Unit IV (Immunity)", subtitle_style)],
[Paragraph("QUICK REVISION NOTES", tag_style)],
], colWidths=[17.4*cm])
title_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 10),
("ROUNDEDCORNERS", [8]),
]))
story.append(title_tbl)
story.append(Spacer(1, 0.3*cm))
# βββ SECTION 1: DEFINITIONS ββββββββββββββββββββββββββββββββββββββ
story.append(section_header("1. ANTIGEN & ANTIBODY β DEFINITIONS"))
story.append(Spacer(1, 0.2*cm))
def_data = [
[Paragraph("<b>ANTIGEN</b>", S("th", fontSize=10, textColor=C_WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph("<b>ANTIBODY (Immunoglobulin)</b>", S("th", fontSize=10, textColor=C_WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER))],
[Paragraph("β’ Foreign substance entering the body<br/>"
"β’ Triggers immune response<br/>"
"β’ Usually protein / polysaccharide<br/>"
"β’ Has <b>EPITOPE</b> = exact binding spot for antibody<br/>"
"β’ Examples: bacteria, virus, pollen, toxins", body),
Paragraph("β’ Y-shaped protein made by <b>Plasma cells</b> (from B lymphocytes)<br/>"
"β’ <b>Fab region</b> (top of Y) = binds antigen<br/>"
"β’ <b>Fc region</b> (tail) = effector functions (complement, phagocytes)<br/>"
"β’ Highly specific: ONE antibody for ONE antigen<br/>"
"β’ Lock-and-key mechanism", body)],
]
def_tbl = Table(def_data, colWidths=[8.5*cm, 8.9*cm])
def_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), C_BLUE),
("BACKGROUND", (0,1), (0,1), C_LIGHT_RED),
("BACKGROUND", (1,1), (1,1), C_LIGHT_GREEN),
("BOX", (0,0), (-1,-1), 1, C_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.5, C_BLUE),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(def_tbl)
story.append(Spacer(1, 0.3*cm))
# βββ SECTION 2: FLOWCHART ββββββββββββββββββββββββββββββββββββββββ
story.append(section_header("2. HOW AG-AB REACTION HAPPENS (Flowchart)"))
story.append(Spacer(1, 0.2*cm))
flow_steps = [
("Antigen enters body", C_LIGHT_RED, C_RED),
("Recognized as FOREIGN", C_LIGHT_ORANGE, C_ORANGE),
("B Lymphocytes activated", C_LIGHT_YELLOW, C_YELLOW),
("B cells β PLASMA CELLS", C_LIGHT_GREEN, C_GREEN),
("Plasma cells secrete ANTIBODIES (Immunoglobulins)", C_LIGHT_GREEN, C_GREEN),
("Antibody binds Antigen (Lock & Key)", C_LIGHT_BLUE, C_BLUE),
("Ag-Ab COMPLEX FORMED β ANTIGEN DESTROYED", C_LIGHT_PURPLE, C_PURPLE),
]
for i, (text, bg, border) in enumerate(flow_steps):
row_tbl = Table([[Paragraph(f"<b>{text}</b>",
S("fs", fontSize=10, textColor=C_DARK_GRAY,
fontName="Helvetica-Bold", alignment=TA_CENTER))]],
colWidths=[17.4*cm])
row_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 1.5, border),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
]))
story.append(row_tbl)
if i < len(flow_steps) - 1:
arrow = Table([[Paragraph("<b>β</b>", S("ar", fontSize=14, textColor=C_BLUE,
fontName="Helvetica-Bold", alignment=TA_CENTER))]],
colWidths=[17.4*cm])
arrow.setStyle(TableStyle([("TOPPADDING",(0,0),(-1,-1),1),("BOTTOMPADDING",(0,0),(-1,-1),1)]))
story.append(arrow)
story.append(Spacer(1, 0.3*cm))
# βββ SECTION 3: RESULTS (APNLO) ββββββββββββββββββββββββββββββββββ
story.append(section_header("3. RESULTS / ACTIONS OF AG-AB REACTION"))
story.append(Spacer(1, 0.15*cm))
story.append(mnemonic_box('π§ Mnemonic: "A P N L O"',
"Agglutination | Precipitation | Neutralization | Lysis | Opsonization"))
story.append(Spacer(1, 0.2*cm))
results_data = [
[Paragraph("<b>Action</b>", S("rh", fontSize=10, textColor=C_WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph("<b>What Happens</b>", S("rh", fontSize=10, textColor=C_WHITE, fontName="Helvetica-Bold")),
Paragraph("<b>Example</b>", S("rh", fontSize=10, textColor=C_WHITE, fontName="Helvetica-Bold"))],
[Paragraph("<b>1. Agglutination</b>", body_bold),
Paragraph("Antibody CLUMPS multiple antigens (bacteria/RBCs) into a lump β phagocytes eat them", body),
Paragraph("Blood group testing, Widal test (Typhoid)", body)],
[Paragraph("<b>2. Precipitation</b>", body_bold),
Paragraph("Antibody binds SOLUBLE antigen β complex becomes insoluble & precipitates out", body),
Paragraph("Tetanus toxin neutralized in fluid", body)],
[Paragraph("<b>3. Neutralization</b>", body_bold),
Paragraph("Antibody COVERS the toxic site of antigen β antigen becomes harmless", body),
Paragraph("Antitoxins for tetanus, polio virus antibodies", body)],
[Paragraph("<b>4. Lysis</b>", body_bold),
Paragraph("Antibody + Complement system BURST the bacterial cell membrane", body),
Paragraph("Bacterial cell wall destruction", body)],
[Paragraph("<b>5. Opsonization</b>", body_bold),
Paragraph("Antibody COATS antigen β makes it easy for phagocytes to eat ('tasty')", body),
Paragraph("Enhanced phagocytosis by neutrophils & macrophages", body)],
]
row_colors = [C_BLUE, C_LIGHT_RED, C_LIGHT_ORANGE, C_LIGHT_YELLOW, C_LIGHT_GREEN, C_LIGHT_BLUE]
res_tbl = Table(results_data, colWidths=[4.0*cm, 8.2*cm, 5.2*cm])
res_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), C_BLUE),
("BACKGROUND", (0,1), (-1,1), C_LIGHT_RED),
("BACKGROUND", (0,2), (-1,2), C_LIGHT_ORANGE),
("BACKGROUND", (0,3), (-1,3), C_LIGHT_YELLOW),
("BACKGROUND", (0,4), (-1,4), C_LIGHT_GREEN),
("BACKGROUND", (0,5), (-1,5), C_LIGHT_BLUE),
("BOX", (0,0), (-1,-1), 1, C_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.5, colors.HexColor("#CBD5E1")),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(res_tbl)
story.append(Spacer(1, 0.3*cm))
# βββ SECTION 4: IMMUNOGLOBULINS ββββββββββββββββββββββββββββββββββ
story.append(section_header("4. TYPES OF IMMUNOGLOBULINS (Antibodies)"))
story.append(Spacer(1, 0.15*cm))
story.append(mnemonic_box('π§ Mnemonic: "G A D M E"',
'"Go And Defend Me Everywhere" β IgG, IgA, IgD, IgM, IgE'))
story.append(Spacer(1, 0.2*cm))
ig_data = [
[Paragraph("<b>Ig</b>", S("ih", fontSize=10, textColor=C_WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph("<b>% in Blood</b>", S("ih", fontSize=10, textColor=C_WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph("<b>Where Found</b>", S("ih", fontSize=10, textColor=C_WHITE, fontName="Helvetica-Bold")),
Paragraph("<b>Key Functions</b>", S("ih", fontSize=10, textColor=C_WHITE, fontName="Helvetica-Bold"))],
[Paragraph("<b>IgG</b>", S("igg", fontSize=11, textColor=C_BLUE, fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph("75-80%", body),
Paragraph("Blood, tissues", body),
Paragraph("β’ Most abundant<br/>β’ Memory antibody (2nd response)<br/>β’ <b>CROSSES PLACENTA</b> β protects newborn<br/>β’ Main defense against bacteria & viruses", body)],
[Paragraph("<b>IgA</b>", S("iga", fontSize=11, textColor=C_GREEN, fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph("10-15%", body),
Paragraph("Secretions: saliva, tears, breast milk, mucus", body),
Paragraph("β’ Protects mucous membranes<br/>β’ Found in <b>colostrum</b> (1st breast milk)<br/>β’ Guards entry points of body", body)],
[Paragraph("<b>IgD</b>", S("igd", fontSize=11, textColor=C_YELLOW, fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph("<1%", body),
Paragraph("Surface of B cells", body),
Paragraph("β’ Acts as <b>receptor on B lymphocytes</b><br/>β’ Activates B cells when antigen binds", body)],
[Paragraph("<b>IgM</b>", S("igm", fontSize=11, textColor=C_RED, fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph("5-10%", body),
Paragraph("Blood (intravascular)", body),
Paragraph("β’ <b>FIRST antibody to appear</b> in any new infection<br/>β’ Largest antibody (pentamer)<br/>β’ Blood group antibodies (ABO)<br/>β’ Primary immune response", body)],
[Paragraph("<b>IgE</b>", S("ige", fontSize=11, textColor=C_PURPLE, fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph("Trace", body),
Paragraph("Mast cells, basophils", body),
Paragraph("β’ Responsible for <b>ALLERGIC reactions</b><br/>β’ Fights parasites/worms<br/>β’ Raised in asthma, hay fever, anaphylaxis", body)],
]
ig_tbl = Table(ig_data, colWidths=[1.8*cm, 2.2*cm, 4.5*cm, 8.9*cm])
ig_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), C_DARK_BLUE),
("BACKGROUND", (0,1), (-1,1), C_LIGHT_BLUE),
("BACKGROUND", (0,2), (-1,2), C_LIGHT_GREEN),
("BACKGROUND", (0,3), (-1,3), C_LIGHT_YELLOW),
("BACKGROUND", (0,4), (-1,4), C_LIGHT_RED),
("BACKGROUND", (0,5), (-1,5), C_LIGHT_PURPLE),
("BOX", (0,0), (-1,-1), 1.2, C_DARK_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.5, colors.HexColor("#CBD5E1")),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "TOP"),
("ALIGN", (0,0), (1,-1), "CENTER"),
]))
story.append(ig_tbl)
story.append(Spacer(1, 0.3*cm))
# βββ SECTION 5: COMPLEMENT SYSTEM ββββββββββββββββββββββββββββββββ
story.append(section_header("5. COMPLEMENT SYSTEM", bg=C_GREEN))
story.append(Spacer(1, 0.15*cm))
story.append(info_box(
"<b>What is it?</b> ~20 proteins in blood that AMPLIFY the antibody response.<br/>"
"<b>Activated by:</b> Ag-Ab complex β Classical Pathway<br/><br/>"
"<b>Key Results:</b><br/>"
"β’ <b>C3b</b> β Opsonization (coats bacteria β phagocytes eat them easily)<br/>"
"β’ <b>MAC (C5b6789)</b> = Membrane Attack Complex β punches holes in bacterial membrane β bacteria BURST and die<br/>"
"β’ Agglutination, Neutralization of viruses, Chemotaxis (attract more WBCs)",
bg=C_LIGHT_GREEN, border=C_GREEN
))
story.append(Spacer(1, 0.3*cm))
# βββ SECTION 6: KEY DIFFERENCES TABLE ββββββββββββββββββββββββββββ
story.append(section_header("6. KEY FACTS TO REMEMBER (Exam Favorites)", bg=C_ORANGE))
story.append(Spacer(1, 0.15*cm))
key_data = [
[Paragraph("<b>Question</b>", S("kh", fontSize=10, textColor=C_WHITE, fontName="Helvetica-Bold")),
Paragraph("<b>Answer</b>", S("kh", fontSize=10, textColor=C_WHITE, fontName="Helvetica-Bold"))],
[Paragraph("Which Ig crosses the placenta?", body), Paragraph("<b>IgG</b> β protects the newborn baby", body_bold)],
[Paragraph("Which Ig appears FIRST in infection?", body), Paragraph("<b>IgM</b> β primary immune response", body_bold)],
[Paragraph("Which Ig is found in breast milk/saliva?", body), Paragraph("<b>IgA</b> β secretory antibody", body_bold)],
[Paragraph("Which Ig causes allergic reactions?", body), Paragraph("<b>IgE</b> β allergy + parasites", body_bold)],
[Paragraph("Which Ig is the most abundant?", body), Paragraph("<b>IgG</b> β 75-80% of all antibodies", body_bold)],
[Paragraph("What is EPITOPE?", body), Paragraph("The specific region on an antigen where antibody binds", body)],
[Paragraph("What is OPSONIN?", body), Paragraph("Substance (antibody/complement) that coats antigen to make phagocytosis easier", body)],
[Paragraph("Affinity vs Avidity?", body), Paragraph("<b>Affinity</b> = strength of ONE binding site | <b>Avidity</b> = overall strength (multiple sites)", body)],
]
key_tbl = Table(key_data, colWidths=[8.0*cm, 9.4*cm])
key_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), C_ORANGE),
("ROWBACKGROUNDS", (0,1), (-1,-1), [C_WHITE, C_LIGHT_ORANGE]),
("BOX", (0,0), (-1,-1), 1, C_ORANGE),
("INNERGRID", (0,0), (-1,-1), 0.5, colors.HexColor("#FED7AA")),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(key_tbl)
story.append(Spacer(1, 0.3*cm))
# βββ SECTION 7: EXAM QUESTIONS βββββββββββββββββββββββββββββββββββ
story.append(section_header("7. LIKELY EXAM QUESTIONS", bg=C_RED))
story.append(Spacer(1, 0.15*cm))
questions = [
("5 marks", "Describe antigen-antibody reaction and explain its results."),
("5 marks", "Classify immunoglobulins with their properties and functions."),
("3 marks", "Write a short note on the complement system."),
("2 marks", "Which immunoglobulin crosses the placenta? Which appears first in infection?"),
("2 marks", "Define opsonization. What is its significance?"),
("2 marks", "Differentiate between affinity and avidity."),
]
q_data = [[Paragraph("<b>Marks</b>", S("qh", fontSize=10, textColor=C_WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph("<b>Question</b>", S("qh", fontSize=10, textColor=C_WHITE, fontName="Helvetica-Bold"))]]
for marks, q in questions:
q_data.append([
Paragraph(f"<b>{marks}</b>", S("qm", fontSize=9, textColor=C_RED, fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph(q, body)
])
q_tbl = Table(q_data, colWidths=[2.5*cm, 14.9*cm])
q_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), C_RED),
("ROWBACKGROUNDS", (0,1), (-1,-1), [C_WHITE, C_LIGHT_RED]),
("BOX", (0,0), (-1,-1), 1, C_RED),
("INNERGRID", (0,0), (-1,-1), 0.5, colors.HexColor("#FECACA")),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("ALIGN", (0,0), (0,-1), "CENTER"),
]))
story.append(q_tbl)
story.append(Spacer(1, 0.3*cm))
# βββ FOOTER ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
footer_tbl = Table([[Paragraph(
"BSc Nursing 3rd Semester β’ Microbiology Unit IV β’ Quick Revision Notes β’ All the best for your exam! πͺ",
S("ft", fontSize=8, textColor=C_WHITE, fontName="Helvetica-Oblique", alignment=TA_CENTER)
)]], colWidths=[17.4*cm])
footer_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("ROUNDEDCORNERS", [6]),
]))
story.append(footer_tbl)
# ββ Build ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc.build(story)
print(f"PDF created: {OUTPUT}")
python3 /home/daytona/workspace/nursing-notes/create_ag_ab_pdf.py
Antigen Antibody Reaction
PDF Document Β· PDF
| Section | Content |
|---|---|
| 1 | Antigen vs Antibody definitions (side-by-side color table) |
| 2 | Flowchart - step by step Ag-Ab reaction |
| 3 | 5 Results of Ag-Ab reaction (APNLO) with color coding |
| 4 | All 5 Immunoglobulins (GADME) - full table with functions |
| 5 | Complement system (C3b, MAC) |
| 6 | Key exam facts Q&A table |
| 7 | 6 likely exam questions with marks |
Msn gastric gavage
Simple way to remember: "Tube feeding into the stomach"
| Category | Examples |
|---|---|
| Unconscious patients | Coma, head injury, post-surgery |
| Cannot swallow | Stroke, neurological disorders, paralysis |
| Refuse to eat | Severe anorexia nervosa, psychiatric conditions |
| GI problems | Oesophageal obstruction, after mouth/throat surgery |
| Premature newborns | Cannot suck or swallow properly |
| Severe malnutrition | Need nutritional support urgently |
| Burns patients | Hypermetabolic state needing extra nutrition |
| Post-op patients | After GI surgery, abdominal surgery |
Nose β Ear β Xiphoid process
β
This measurement = insertion length
| Complication | How to Prevent |
|---|---|
| Tube in lungs (bronchial placement) | Always confirm position before feeding! |
| Nasal damage/bleeding | Lubricate well, insert gently |
| Esophageal perforation | Gentle technique |
| Intracranial placement (in skull fracture) | Contraindicated in basal skull fracture |
| Complication | Prevention |
|---|---|
| Aspiration pneumonia (most dangerous!) | Elevate HOB 30-45Β°, check residual |
| Nausea/vomiting | Slow rate, check residual |
| Diarrhea | Check feed concentration, rate |
| Bloating/abdominal distension | Check for residual, slow rate |
| Tube blockage | Flush with water after each feed |
| Tube displacement | Fix tube properly with tape, check before each feed |
GASTRIC GAVAGE - QUICK POINTS
DEFINITION: Feeding directly into stomach via tube
when patient cannot eat by mouth
COMMON ROUTES:
β’ Nasogastric (NG/Ryle's) = nose β stomach (most common)
β’ Orogastric = mouth β stomach (infants)
β’ Gastrostomy (PEG) = through abdominal wall (long-term)
β’ Jejunostomy = into small intestine (high aspiration risk)
MEASURING NG TUBE:
β’ Nose β Ear β Xiphoid process
CONFIRM PLACEMENT BEFORE FEEDING:
β’ pH paper: Gastric pH β€ 5.5 β
β’ Auscultation: "Whoosh" in epigastric area
β’ X-ray: Most accurate
POSITION DURING FEEDING:
β’ Semi-Fowler's (30-45Β°) = MANDATORY to prevent aspiration
KEY NURSING POINTS:
β’ Check residual before each feed (hold if >150-200ml)
β’ Feed at room temperature
β’ Flush with 30-50ml water after each feed
β’ Keep upright 30-60 min after feeding
MAIN COMPLICATION:
β’ Aspiration pneumonia (most dangerous!)
β’ Tube blockage, diarrhea, electrolyte imbalance
CONTRAINDICATION:
β’ Basal skull fracture (use orogastric instead)
βββββββββββββββββββββββββββββββββββββββββββ
GASTRIC GAVAGE - FLOWCHART
βββββββββββββββββββββββββββββββββββββββββββ
Patient cannot eat by mouth
β
Doctor prescribes Nasogastric Feeding
β
EQUIPMENT READY + PATIENT POSITIONED
(Semi-Fowler's 30-45Β°)
β
MEASURE TUBE LENGTH
(Nose β Ear β Xiphoid process)
β
LUBRICATE + INSERT TUBE
(Ask patient to swallow as tube passes throat)
β
CONFIRM PLACEMENT β MOST IMPORTANT!
βββββββββββββββββββββββββββββββββββ
β pH paper β β€5.5 (acidic) = β
β
β Auscultation β "whoosh" = β
β
β X-ray β gold standard = β
β
βββββββββββββββββββββββββββββββββββ
β
SECURE TUBE WITH TAPE
β
CHECK RESIDUAL
(If >150ml β hold feed, inform doctor)
β
GIVE FEED (room temp, prescribed rate)
β
FLUSH TUBE (30-50ml water)
β
MAINTAIN POSITION 30-60 min after feed
β
DOCUMENT (amount given, tolerance)
COMPLICATIONS TO WATCH:
β οΈ Aspiration pneumonia (most dangerous)
β οΈ Tube in lungs
β οΈ Diarrhea, bloating, vomiting
β οΈ Electrolyte imbalance
GASTRIC DECOMPRESSION = REVERSE PROCESS
(Same tube used to DRAIN stomach via suction)
βββββββββββββββββββββββββββββββββββββββββββ
Stoma care
Simple way to think: "An artificial opening made on the belly for waste to come out"
| Condition | Reason |
|---|---|
| Colorectal cancer | Tumor blocks the bowel |
| Crohn's disease / Ulcerative Colitis | Bowel too inflamed/damaged |
| Bowel obstruction | Blockage prevents normal passage |
| Diverticulitis with perforation | Emergency surgery |
| Trauma / Injury to bowel | Road accidents, stab wounds |
| Hirschsprung's disease (in newborns) | Part of bowel doesn't work |
| Bladder cancer / injury | Urostomy needed |
| Rectal/anal cancer | After removal of rectum |
| Type | Organ | Output | Consistency |
|---|---|---|---|
| Colostomy | Large intestine (colon) | Stool | Soft to formed |
| Ileostomy | Small intestine (ileum) | Stool | Liquid / watery |
| Urostomy | Urinary tract | Urine | Liquid |
| Type | Description | Example |
|---|---|---|
| Temporary | Created to let bowel rest, later closed | Loop colostomy after trauma surgery |
| Permanent | Never closed - lifelong | After removal of rectum (abdominoperineal resection) |
| Type | Description |
|---|---|
| End stoma | One end of bowel brought out - permanent |
| Loop stoma | Loop of bowel brought out with two openings - temporary |
| Double-barrel stoma | Both ends of divided bowel brought out |
ABDOMEN
βββββββββββββββββββ
β LUQ β RUQ β
β β β
ββββββββββββΌβββββββ
β LLQ β RLQ β
β β β
βββββββββββββββββββ
Colostomy = Left side (Left Iliac Fossa) most common
Ileostomy = Right side (Right Iliac Fossa)
Urostomy = Either side
| Feature | Colostomy | Ileostomy |
|---|---|---|
| Location | Large intestine | Small intestine (ileum) |
| Position on abdomen | Left side (usually) | Right side (usually) |
| Output | Formed/semi-formed stool | Liquid/watery stool |
| Output amount | Less (300-500 ml/day) | More (500-1500 ml/day) |
| Skin irritation | Less (alkaline stool) | More (contains digestive enzymes) |
| Bag type | Closed/non-drainable bag | Drainable bag |
| Bag change | 2-3 times daily | Every 48 hours |
| Appearance | Pink-red, round, flat | Pink-red, spouted (raised/protruding) |
| Irrigation possible? | Yes (sigmoid colostomy) | No |
π‘ Memory trick: "I" for Ileostomy = "I" for Inside (right side) + liquid "C" for Colostomy = "C" for Colon (left side) + formed stool
| Healthy Stoma | β οΈ Report Immediately |
|---|---|
| Pink-red color | Dark red, purple, black (ischaemia/necrosis) |
| Moist, glistening | Dry, dull appearance |
| Slightly raised (ileostomy) | Retracted below skin level |
| Minimal bleeding when touched | Excessive bleeding |
| Normal output | No output for 4-6 hours (obstruction) |
| Intact peristomal skin | Red, raw, broken peristomal skin |
| Complication | Description | Action |
|---|---|---|
| Prolapse | Stoma protrudes outward excessively | Reduce manually + surgical review |
| Retraction | Stoma sinks below skin level | Difficult to fit bag - surgical review |
| Stenosis | Narrowing of stoma opening | Dilation or surgery |
| Skin excoriation | Peristomal skin becomes red, raw, sore (esp. ileostomy) | Barrier cream, correct bag sizing |
| Parastomal hernia | Bulge around stoma under skin | Surgical repair |
| Ischaemia/Necrosis | Stoma turns dark/black - blood supply cut off | Emergency - inform doctor |
| Fistula | Abnormal tract forms near stoma | Surgical management |
| Obstruction | No output - blockage | Hydration, position change, surgical review |
| Bleeding | Mild = normal | Profuse = report immediately |
STOMA CARE - QUICK POINTS
DEFINITION: Surgically created opening on abdominal wall
for waste exit (stool/urine)
TYPES:
β’ Colostomy = Colon, Left side, Formed stool, Closed bag
β’ Ileostomy = Ileum, Right side, Liquid stool, Drainable bag
β’ Urostomy = Urinary tract, Urine output
β’ Temp (Loop) vs Permanent (End stoma)
HEALTHY STOMA = Pink-red, moist, slightly raised
DANGER SIGNS = Dark/black (necrosis), retraction, no output
PROCEDURE (STEP-STEP):
1. Remove old bag (adhesive remover)
2. Clean stoma with warm water + gauze
3. Assess stoma color, size, skin
4. Measure stoma, cut flange 2-3mm bigger
5. Apply barrier paste
6. Apply new appliance + press firmly
7. Document
COMPLICATIONS (PRSS-HF):
Prolapse | Retraction | Stenosis | Skin excoriation
Hernia | Fistula | Ischaemia/Necrosis | Obstruction
KEY NURSING POINTS:
β’ Bag 1/3-1/2 full = change time
β’ Ileostomy: more fluid intake (prevent dehydration)
β’ Skin care = most important daily care
β’ Emotional support + patient education = vital
βββββββββββββββββββββββββββββββββββββββββββ
STOMA CARE FLOWCHART
βββββββββββββββββββββββββββββββββββββββββββ
STOMA = Artificial opening on abdomen
β
ββββββββββββββββββββββββββββββββ
β TYPES OF STOMA β
β Colostomy β Left, Formed β
β Ileostomy β Right, Liquid β
β Urostomy β Urine β
ββββββββββββββββββββββββββββββββ
β
STOMA CARE PROCEDURE
ββββββββββββββββββββββββββββββββ
β 1. REMOVE old bag β
β (adhesive remover wipe) β
β β β
β 2. CLEAN stoma β
β (warm water + soft gauze) β
β β β
β 3. ASSESS stoma β
β Color? Size? Skin? β
β β β
β 4. MEASURE + CUT flange β
β (2-3 mm larger than stoma)β
β β β
β 5. APPLY barrier paste β
β β β
β 6. APPLY new appliance β
β Press + hold 30 seconds β
β β β
β 7. DOCUMENT β
ββββββββββββββββββββββββββββββββ
β
ASSESS FOR COMPLICATIONS
Pink-red = β
HEALTHY
Dark/Black = π¨ NECROSIS β Report!
No output = π¨ OBSTRUCTION β Report!
Skin red/raw = Barrier cream needed
COMPLICATIONS (PRSS-HF):
Prolapse β Retraction β Stenosis
Skin excoriation β Hernia β Fistula
PATIENT EDUCATION:
β Self-bag change
β Diet modifications
β Signs to report
β Normal life is possible!
βββββββββββββββββββββββββββββββββββββββββββ
Create a PDF summary of Stoma Care for quick revision
~/nursing-notes/create_stoma_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, KeepTogether)
from reportlab.lib.enums import TA_CENTER, TA_LEFT
OUTPUT = "/home/daytona/workspace/nursing-notes/Stoma_Care.pdf"
doc = SimpleDocTemplate(
OUTPUT, pagesize=A4,
leftMargin=1.6*cm, rightMargin=1.6*cm,
topMargin=1.2*cm, bottomMargin=1.2*cm
)
# ββ Colours ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
DARK_BLUE = colors.HexColor("#1A3C6E")
BLUE = colors.HexColor("#2563EB")
LT_BLUE = colors.HexColor("#DBEAFE")
RED = colors.HexColor("#DC2626")
LT_RED = colors.HexColor("#FEE2E2")
GREEN = colors.HexColor("#16A34A")
LT_GREEN = colors.HexColor("#DCFCE7")
ORANGE = colors.HexColor("#EA580C")
LT_ORANGE = colors.HexColor("#FFF7ED")
PURPLE = colors.HexColor("#7C3AED")
LT_PURPLE = colors.HexColor("#EDE9FE")
TEAL = colors.HexColor("#0F766E")
LT_TEAL = colors.HexColor("#CCFBF1")
YELLOW = colors.HexColor("#B45309")
LT_YELLOW = colors.HexColor("#FEF3C7")
GRAY = colors.HexColor("#F1F5F9")
DARK_GRAY = colors.HexColor("#1F2937")
MID_GRAY = colors.HexColor("#6B7280")
WHITE = colors.white
W = 17.8*cm # usable page width
def S(name, **kw):
return ParagraphStyle(name, **kw)
# ββ Reusable builders ββββββββββββββββββββββββββββββββββββββββββββ
def hdr(text, bg=DARK_BLUE, fg=WHITE, fs=12):
t = Table([[Paragraph(text, S("h", fontSize=fs, textColor=fg,
fontName="Helvetica-Bold", alignment=TA_CENTER))]], colWidths=[W])
t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1),bg),
("TOPPADDING",(0,0),(-1,-1),6), ("BOTTOMPADDING",(0,0),(-1,-1),6),
("LEFTPADDING",(0,0),(-1,-1),8),
]))
return t
def box(content_para, bg=LT_BLUE, border=BLUE):
t = Table([[content_para]], colWidths=[W])
t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1),bg),
("BOX",(0,0),(-1,-1),1.5,border),
("TOPPADDING",(0,0),(-1,-1),6), ("BOTTOMPADDING",(0,0),(-1,-1),6),
("LEFTPADDING",(0,0),(-1,-1),9), ("RIGHTPADDING",(0,0),(-1,-1),9),
]))
return t
def mnem_box(text, sub=""):
rows = [[Paragraph(text, S("m", fontSize=11, textColor=PURPLE,
fontName="Helvetica-Bold", alignment=TA_CENTER))]]
if sub:
rows.append([Paragraph(sub, S("ms", fontSize=9, textColor=DARK_GRAY,
fontName="Helvetica-Oblique", alignment=TA_CENTER))])
t = Table(rows, colWidths=[W])
t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1),LT_PURPLE),
("BOX",(0,0),(-1,-1),2,PURPLE),
("TOPPADDING",(0,0),(-1,-1),7), ("BOTTOMPADDING",(0,0),(-1,-1),7),
("LEFTPADDING",(0,0),(-1,-1),8),
]))
return t
def p(text, fs=9.5, bold=False, color=DARK_GRAY, align=TA_LEFT, leading=14):
fn = "Helvetica-Bold" if bold else "Helvetica"
return Paragraph(text, S("p", fontSize=fs, textColor=color,
fontName=fn, leading=leading, alignment=align))
def sp(h=0.2): return Spacer(1, h*cm)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story = []
# ββ TITLE BANNER βββββββββββββββββββββββββββββββββββββββββββββββββ
title_t = Table([
[p("STOMA CARE", fs=20, bold=True, color=WHITE, align=TA_CENTER)],
[p("BSc Nursing 3rd Semester | MSN - Unit V (GI System)", fs=10,
color=colors.HexColor("#BFDBFE"), align=TA_CENTER)],
[p("QUICK REVISION NOTES", fs=9, bold=True,
color=colors.HexColor("#FDE68A"), align=TA_CENTER)],
], colWidths=[W])
title_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1),DARK_BLUE),
("TOPPADDING",(0,0),(-1,-1),5), ("BOTTOMPADDING",(0,0),(-1,-1),5),
]))
story += [title_t, sp(0.25)]
# ββ SECTION 1: DEFINITION + INDICATIONS ββββββββββββββββββββββββββ
story += [hdr("1. WHAT IS A STOMA? β DEFINITION & INDICATIONS"), sp(0.15)]
story.append(box(
p("<b>STOMA</b> = Greek for 'mouth/opening' β A <b>surgically created opening on the abdominal wall</b> "
"that allows waste (stool or urine) to exit the body when the normal route is blocked or removed.<br/>"
"<b>Simple:</b> An artificial opening made on the belly for waste to come out."),
bg=LT_BLUE, border=BLUE))
story.append(sp(0.15))
ind_data = [
[p("<b>Indication</b>", bold=True, color=WHITE), p("<b>Reason</b>", bold=True, color=WHITE)],
[p("Colorectal / rectal cancer"), p("Tumour blocks the bowel")],
[p("Crohn's disease / Ulcerative Colitis"), p("Bowel too inflamed / damaged")],
[p("Bowel obstruction / perforation"), p("Emergency surgery")],
[p("Abdominal trauma"), p("Road accidents, stab wounds")],
[p("Hirschsprung's disease (newborns)"), p("Part of bowel doesn't work")],
[p("Bladder cancer / injury"), p("Urostomy needed")],
]
ind_t = Table(ind_data, colWidths=[9*cm, 8.8*cm])
ind_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),BLUE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, LT_BLUE]),
("BOX",(0,0),(-1,-1),1,BLUE), ("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#BFDBFE")),
("TOPPADDING",(0,0),(-1,-1),5), ("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7), ("VALIGN",(0,0),(-1,-1),"MIDDLE"),
]))
story += [ind_t, sp(0.25)]
# ββ SECTION 2: TYPES OF STOMA βββββββββββββββββββββββββββββββββββββ
story += [hdr("2. TYPES OF STOMA", bg=TEAL), sp(0.15)]
types_data = [
[p("<b>Type</b>", bold=True, color=WHITE),
p("<b>Organ</b>", bold=True, color=WHITE),
p("<b>Side</b>", bold=True, color=WHITE),
p("<b>Output</b>", bold=True, color=WHITE),
p("<b>Bag Type</b>", bold=True, color=WHITE)],
[p("<b>Colostomy</b>", bold=True, color=TEAL), p("Large intestine"),
p("LEFT side"), p("Semi-formed stool"), p("Closed / Non-drainable")],
[p("<b>Ileostomy</b>", bold=True, color=BLUE), p("Small intestine (ileum)"),
p("RIGHT side"), p("Liquid / watery"), p("Drainable bag")],
[p("<b>Urostomy</b>", bold=True, color=PURPLE), p("Urinary tract"),
p("Either side"), p("Urine"), p("Drainable bag")],
]
types_t = Table(types_data, colWidths=[3.0*cm, 3.5*cm, 2.8*cm, 4.5*cm, 4.0*cm])
types_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),TEAL),
("BACKGROUND",(0,1),(-1,1),LT_TEAL),
("BACKGROUND",(0,2),(-1,2),LT_BLUE),
("BACKGROUND",(0,3),(-1,3),LT_PURPLE),
("BOX",(0,0),(-1,-1),1,TEAL), ("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#99F6E4")),
("TOPPADDING",(0,0),(-1,-1),6), ("BOTTOMPADDING",(0,0),(-1,-1),6),
("LEFTPADDING",(0,0),(-1,-1),7), ("VALIGN",(0,0),(-1,-1),"MIDDLE"),
]))
story += [types_t, sp(0.12)]
story.append(mnem_box("π‘ Memory Trick:",
"Ileostomy = 'I' = Inside/Right side = lIquid | Colostomy = 'C' = Colon/Left side = formed stool"))
story.append(sp(0.25))
# ββ SECTION 3: COLOSTOMY vs ILEOSTOMY βββββββββββββββββββββββββββββ
story += [hdr("3. COLOSTOMY vs ILEOSTOMY β KEY DIFFERENCES", bg=ORANGE), sp(0.15)]
diff_data = [
[p("<b>Feature</b>", bold=True, color=WHITE),
p("<b>Colostomy</b>", bold=True, color=WHITE),
p("<b>Ileostomy</b>", bold=True, color=WHITE)],
[p("Position"), p("LEFT side abdomen"), p("RIGHT side abdomen")],
[p("Stool consistency"), p("Soft β formed"), p("Liquid / watery")],
[p("Daily output"), p("300β500 ml"), p("500β1500 ml")],
[p("Skin irritation"), p("Less (alkaline)"), p("<b>More</b> (digestive enzymes)")],
[p("Bag type"), p("Closed/non-drainable"), p("<b>Drainable</b> bag")],
[p("Bag change"), p("2β3 times/day"), p("Every 48 hours")],
[p("Appearance"), p("Flat, round"), p("<b>Spouted</b> (raised/protruding)")],
[p("Irrigation"), p("Possible (sigmoid)"), p("Not possible")],
[p("Dehydration risk"), p("Low"), p("<b>HIGH</b> β drink extra fluids!")],
]
diff_t = Table(diff_data, colWidths=[4.0*cm, 6.8*cm, 7.0*cm])
diff_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),ORANGE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, LT_ORANGE]),
("BOX",(0,0),(-1,-1),1,ORANGE), ("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#FED7AA")),
("TOPPADDING",(0,0),(-1,-1),5), ("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7), ("VALIGN",(0,0),(-1,-1),"MIDDLE"),
]))
story += [diff_t, sp(0.25)]
# ββ SECTION 4: STOMA CARE PROCEDURE ββββββββββββββββββββββββββββββ
story += [hdr("4. STOMA CARE PROCEDURE (Step-by-Step)", bg=GREEN), sp(0.15)]
steps = [
("STEP 1", "REMOVE OLD BAG", LT_RED, RED,
"Use adhesive remover wipe β peel gently top to bottom β empty contents first if drainable β dispose in clinical waste"),
("STEP 2", "CLEAN STOMA", LT_GREEN, GREEN,
"Warm water + soft gauze β clean around stoma in circular motion outward β mild soap if needed β rinse well β PAT DRY (not rub)"),
("STEP 3", "ASSESS STOMA", LT_YELLOW, YELLOW,
"Observe: Colour (pink-red = healthy) | Size | Shape | Protrusion | Peristomal skin condition"),
("STEP 4", "MEASURE + CUT FLANGE", LT_BLUE, BLUE,
"Use stoma measuring guide β cut hole 2β3 mm LARGER than stoma size (too small = pressure, too large = skin contact with stool)"),
("STEP 5", "APPLY BARRIER PASTE", LT_PURPLE, PURPLE,
"Apply karaya/stomahesive paste around the opening β protects peristomal skin from leakage"),
("STEP 6", "APPLY NEW APPLIANCE", LT_TEAL, TEAL,
"Centre opening over stoma β press firmly from centre outward β hold with warm hand 30 seconds β check for leaks β for 2-piece: attach wafer first, then click bag"),
("STEP 7", "DOCUMENT", GRAY, MID_GRAY,
"Record: stoma colour, size, output type/amount, skin condition, bag changed, patient tolerance"),
]
for num, title, bg, border, detail in steps:
row = Table([[
p(f"<b>{num}</b>", fs=9, bold=True, color=border, align=TA_CENTER),
p(f"<b>{title}</b>", fs=9.5, bold=True, color=border),
p(detail, fs=9),
]], colWidths=[1.5*cm, 4.2*cm, 12.1*cm])
row.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1),bg),
("BOX",(0,0),(-1,-1),1,border),
("TOPPADDING",(0,0),(-1,-1),5), ("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),6), ("VALIGN",(0,0),(-1,-1),"MIDDLE"),
]))
story.append(row)
story.append(sp(0.08))
story.append(sp(0.2))
# ββ SECTION 5: HEALTHY vs DANGER βββββββββββββββββββββββββββββββββ
story += [hdr("5. HEALTHY STOMA vs DANGER SIGNS", bg=RED), sp(0.15)]
hd_data = [
[p("<b>β
Healthy Stoma</b>", bold=True, color=WHITE),
p("<b>π¨ Report Immediately</b>", bold=True, color=WHITE)],
[p("Pink-red colour"), p("<b>Dark red / purple / BLACK</b> = Ischaemia/Necrosis")],
[p("Moist and glistening surface"), p("Dry, dull appearance")],
[p("Slightly raised (ileostomy)"), p("Retracted below skin level")],
[p("Minimal touch bleeding"), p("Profuse or continuous bleeding")],
[p("Normal stool/urine output"), p("<b>No output for 4β6 hrs</b> = Obstruction")],
[p("Intact peristomal skin"), p("Red, raw, broken skin around stoma")],
]
hd_t = Table(hd_data, colWidths=[8.8*cm, 9.0*cm])
hd_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),RED),
("BACKGROUND",(0,1),(0,-1),LT_GREEN),
("BACKGROUND",(1,1),(1,-1),LT_RED),
("BOX",(0,0),(-1,-1),1,RED), ("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#FECACA")),
("TOPPADDING",(0,0),(-1,-1),5), ("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7), ("VALIGN",(0,0),(-1,-1),"MIDDLE"),
]))
story += [hd_t, sp(0.25)]
# ββ SECTION 6: COMPLICATIONS ββββββββββββββββββββββββββββββββββββββ
story += [hdr("6. COMPLICATIONS OF STOMA", bg=PURPLE), sp(0.15)]
story.append(mnem_box('π§ Mnemonic: "P R S S β H F"',
"Prolapse | Retraction | Stenosis | Skin excoriation | Hernia | Fistula (+Ischaemia, Obstruction)"))
story.append(sp(0.15))
comp_data = [
[p("<b>Complication</b>", bold=True, color=WHITE),
p("<b>Description</b>", bold=True, color=WHITE),
p("<b>Nursing Action</b>", bold=True, color=WHITE)],
[p("<b>Prolapse</b>", bold=True), p("Stoma protrudes excessively outward"), p("Reduce manually + surgical review")],
[p("<b>Retraction</b>", bold=True), p("Stoma sinks below skin level"), p("Difficult to fit bag β surgical review")],
[p("<b>Stenosis</b>", bold=True), p("Narrowing of stoma opening"), p("Dilation or surgical revision")],
[p("<b>Skin Excoriation</b>", bold=True), p("Peristomal skin red, raw, sore (esp. ileostomy)"), p("Correct bag sizing, barrier cream/paste")],
[p("<b>Parastomal Hernia</b>", bold=True), p("Bulge around stoma under skin"), p("Support belt + surgical repair")],
[p("<b>Ischaemia/Necrosis</b>", bold=True), p("Stoma turns DARK/BLACK β blood supply cut"), p("π¨ Emergency β inform doctor immediately!")],
[p("<b>Obstruction</b>", bold=True), p("No output for 4β6 hours"), p("Hydration, position change, surgical review")],
[p("<b>Fistula</b>", bold=True), p("Abnormal tract near stoma"), p("Surgical management")],
]
comp_t = Table(comp_data, colWidths=[3.8*cm, 7.2*cm, 6.8*cm])
comp_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),PURPLE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, LT_PURPLE]),
("BOX",(0,0),(-1,-1),1,PURPLE), ("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#DDD6FE")),
("TOPPADDING",(0,0),(-1,-1),5), ("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7), ("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [comp_t, sp(0.25)]
# ββ SECTION 7: PATIENT EDUCATION ββββββββββββββββββββββββββββββββββ
story += [hdr("7. PATIENT EDUCATION β DISCHARGE TEACHING", bg=YELLOW), sp(0.15)]
edu_items = [
("Bag Change", "Change when 1/3 to 1/2 full. Ileostomy every 48 hrs. Colostomy 2β3Γ/day."),
("Diet", "Avoid gas-forming foods (beans, cabbage). Ileostomy patients: DRINK MORE WATER (dehydration risk)."),
("Activity", "Normal life β work, swimming, exercise all allowed. Avoid heavy lifting for 6 weeks post-op."),
("Skin Care", "Keep peristomal skin dry and intact. Use barrier cream daily."),
("Report to nurse/doctor", "Dark stoma, no output 4β6 hrs, bleeding, leakage, severe skin breakdown."),
("Medications", "Some tablets may pass whole into bag β ask doctor for liquid/soluble forms."),
("Support", "Contact stoma care nurse / colostomy association for help and latest appliances."),
]
edu_data = [[p("<b>Topic</b>", bold=True, color=WHITE), p("<b>Key Points</b>", bold=True, color=WHITE)]]
for topic, detail in edu_items:
edu_data.append([p(f"<b>{topic}</b>", bold=True), p(detail)])
edu_t = Table(edu_data, colWidths=[3.5*cm, 14.3*cm])
edu_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),YELLOW),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, LT_YELLOW]),
("BOX",(0,0),(-1,-1),1,YELLOW), ("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#FDE68A")),
("TOPPADDING",(0,0),(-1,-1),5), ("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7), ("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [edu_t, sp(0.25)]
# ββ SECTION 8: EXAM QUESTIONS βββββββββββββββββββββββββββββββββββββ
story += [hdr("8. LIKELY EXAM QUESTIONS", bg=RED), sp(0.15)]
qs = [
("5 marks", "Define stoma. Classify types and give differences between colostomy and ileostomy."),
("10 marks", "Describe the nursing care / procedure for a patient with colostomy."),
("5 marks", "What are the complications of stoma? How are they managed?"),
("10 marks", "Write a nursing care plan for a patient with colostomy."),
("5 marks", "What health education will you give to a patient discharged with a colostomy?"),
("3 marks", "What is colostomy irrigation? Explain the procedure."),
("2 marks", "Difference between prolapse and retraction of stoma."),
]
q_data = [[p("<b>Marks</b>", bold=True, color=WHITE, align=TA_CENTER),
p("<b>Question</b>", bold=True, color=WHITE)]]
for m, q in qs:
q_data.append([p(f"<b>{m}</b>", bold=True, color=RED, align=TA_CENTER), p(q)])
q_t = Table(q_data, colWidths=[2.5*cm, 15.3*cm])
q_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),RED),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, LT_RED]),
("BOX",(0,0),(-1,-1),1,RED), ("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#FECACA")),
("TOPPADDING",(0,0),(-1,-1),5), ("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7), ("VALIGN",(0,0),(-1,-1),"MIDDLE"),
("ALIGN",(0,0),(0,-1),"CENTER"),
]))
story += [q_t, sp(0.2)]
# ββ FOOTER ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
footer = Table([[p("BSc Nursing 3rd Semester β’ MSN Unit V β’ Stoma Care β’ Quick Revision Notes β’ All the best! πͺ",
fs=8, color=WHITE, align=TA_CENTER)]], colWidths=[W])
footer.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1),DARK_BLUE),
("TOPPADDING",(0,0),(-1,-1),6), ("BOTTOMPADDING",(0,0),(-1,-1),6),
]))
story.append(footer)
# ββ BUILD βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc.build(story)
print(f"PDF created: {OUTPUT}")
ls /tmp/workspace/ 2>/dev/null && echo "exists" || mkdir -p /tmp/workspace/nursing-notes && echo "created"
~/nursing-notes/create_stoma_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle)
from reportlab.lib.enums import TA_CENTER, TA_LEFT
OUTPUT = "/tmp/workspace/nursing-notes/Stoma_Care.pdf"
doc = SimpleDocTemplate(
OUTPUT, pagesize=A4,
leftMargin=1.6*cm, rightMargin=1.6*cm,
topMargin=1.2*cm, bottomMargin=1.2*cm
)
DARK_BLUE = colors.HexColor("#1A3C6E")
BLUE = colors.HexColor("#2563EB")
LT_BLUE = colors.HexColor("#DBEAFE")
RED = colors.HexColor("#DC2626")
LT_RED = colors.HexColor("#FEE2E2")
GREEN = colors.HexColor("#16A34A")
LT_GREEN = colors.HexColor("#DCFCE7")
ORANGE = colors.HexColor("#EA580C")
LT_ORANGE = colors.HexColor("#FFF7ED")
PURPLE = colors.HexColor("#7C3AED")
LT_PURPLE = colors.HexColor("#EDE9FE")
TEAL = colors.HexColor("#0F766E")
LT_TEAL = colors.HexColor("#CCFBF1")
YELLOW = colors.HexColor("#B45309")
LT_YELLOW = colors.HexColor("#FEF3C7")
DARK_GRAY = colors.HexColor("#1F2937")
MID_GRAY = colors.HexColor("#6B7280")
WHITE = colors.white
W = 17.8*cm
def S(name, **kw): return ParagraphStyle(name, **kw)
def hdr(text, bg=DARK_BLUE, fg=WHITE, fs=12):
t = Table([[Paragraph(text, S("h", fontSize=fs, textColor=fg,
fontName="Helvetica-Bold", alignment=TA_CENTER))]], colWidths=[W])
t.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,-1),bg),
("TOPPADDING",(0,0),(-1,-1),6),("BOTTOMPADDING",(0,0),(-1,-1),6),
("LEFTPADDING",(0,0),(-1,-1),8)]))
return t
def box(txt, bg=LT_BLUE, border=BLUE):
t = Table([[Paragraph(txt, S("b", fontSize=9.5, textColor=DARK_GRAY,
fontName="Helvetica", leading=14))]], colWidths=[W])
t.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,-1),bg),
("BOX",(0,0),(-1,-1),1.5,border),
("TOPPADDING",(0,0),(-1,-1),6),("BOTTOMPADDING",(0,0),(-1,-1),6),
("LEFTPADDING",(0,0),(-1,-1),9),("RIGHTPADDING",(0,0),(-1,-1),9)]))
return t
def mnem(text, sub=""):
rows = [[Paragraph(text, S("m", fontSize=11, textColor=PURPLE,
fontName="Helvetica-Bold", alignment=TA_CENTER))]]
if sub:
rows.append([Paragraph(sub, S("ms", fontSize=9, textColor=DARK_GRAY,
fontName="Helvetica-Oblique", alignment=TA_CENTER))])
t = Table(rows, colWidths=[W])
t.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,-1),LT_PURPLE),
("BOX",(0,0),(-1,-1),2,PURPLE),
("TOPPADDING",(0,0),(-1,-1),7),("BOTTOMPADDING",(0,0),(-1,-1),7),
("LEFTPADDING",(0,0),(-1,-1),8)]))
return t
def p(txt, fs=9.5, bold=False, color=DARK_GRAY, align=TA_LEFT, leading=14):
fn = "Helvetica-Bold" if bold else "Helvetica"
return Paragraph(txt, S("p", fontSize=fs, textColor=color,
fontName=fn, leading=leading, alignment=align))
def sp(h=0.2): return Spacer(1, h*cm)
story = []
# TITLE
tb = Table([
[p("STOMA CARE", fs=20, bold=True, color=WHITE, align=TA_CENTER)],
[p("BSc Nursing 3rd Semester | MSN - Unit V (GI System)", fs=10,
color=colors.HexColor("#BFDBFE"), align=TA_CENTER)],
[p("QUICK REVISION NOTES", fs=9, bold=True,
color=colors.HexColor("#FDE68A"), align=TA_CENTER)],
], colWidths=[W])
tb.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,-1),DARK_BLUE),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5)]))
story += [tb, sp(0.2)]
# 1. DEFINITION
story += [hdr("1. WHAT IS A STOMA?"), sp(0.12)]
story.append(box("<b>STOMA</b> (Greek = 'mouth/opening') = A <b>surgically created opening on the abdominal wall</b> "
"that allows waste (stool/urine) to exit when the normal route is blocked.<br/>"
"<b>Indications:</b> Colorectal cancer | Crohn's / UC | Bowel obstruction | Trauma | "
"Hirschsprung's disease | Bladder cancer | After removal of rectum"))
story.append(sp(0.2))
# 2. TYPES TABLE
story += [hdr("2. TYPES OF STOMA", bg=TEAL), sp(0.12)]
td = [
[p("<b>Type</b>",bold=True,color=WHITE), p("<b>Organ</b>",bold=True,color=WHITE),
p("<b>Side</b>",bold=True,color=WHITE), p("<b>Output</b>",bold=True,color=WHITE),
p("<b>Bag</b>",bold=True,color=WHITE)],
[p("<b>Colostomy</b>",bold=True,color=TEAL), p("Large intestine"), p("LEFT"),
p("Semi-formed"), p("Closed bag")],
[p("<b>Ileostomy</b>",bold=True,color=BLUE), p("Small intestine"), p("RIGHT"),
p("Liquid/watery"), p("Drainable")],
[p("<b>Urostomy</b>",bold=True,color=PURPLE), p("Urinary tract"), p("Either"),
p("Urine"), p("Drainable")],
]
tt = Table(td, colWidths=[3.2*cm, 3.8*cm, 2.5*cm, 4.5*cm, 3.8*cm])
tt.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,0),TEAL),
("BACKGROUND",(0,1),(-1,1),LT_TEAL),("BACKGROUND",(0,2),(-1,2),LT_BLUE),
("BACKGROUND",(0,3),(-1,3),LT_PURPLE),
("BOX",(0,0),(-1,-1),1,TEAL),("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#99F6E4")),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),6),("VALIGN",(0,0),(-1,-1),"MIDDLE")]))
story += [tt, sp(0.1)]
story.append(mnem("Ileostomy = 'I' = rIght = lIquid | Colostomy = 'C' = Colon = Left = formed stool"))
story.append(sp(0.2))
# 3. COLOSTOMY vs ILEOSTOMY
story += [hdr("3. COLOSTOMY vs ILEOSTOMY", bg=ORANGE), sp(0.12)]
dd = [
[p("<b>Feature</b>",bold=True,color=WHITE), p("<b>Colostomy</b>",bold=True,color=WHITE),
p("<b>Ileostomy</b>",bold=True,color=WHITE)],
[p("Output consistency"), p("Semi-formed stool"), p("Liquid / watery")],
[p("Daily output"), p("300β500 ml"), p("500β1500 ml")],
[p("Skin irritation"), p("Less (alkaline pH)"), p("<b>MORE</b> (digestive enzymes)")],
[p("Bag type"), p("Closed/non-drainable"), p("<b>Drainable</b> bag")],
[p("Bag change frequency"), p("2β3 times/day"), p("Every 48 hours")],
[p("Stoma appearance"), p("Flat, round"), p("<b>Spouted</b> (protruding)")],
[p("Dehydration risk"), p("Low"), p("<b>HIGH</b> β drink extra fluids!")],
[p("Irrigation possible?"), p("Yes (sigmoid)"), p("No")],
]
dt = Table(dd, colWidths=[4.5*cm, 6.5*cm, 6.8*cm])
dt.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,0),ORANGE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LT_ORANGE]),
("BOX",(0,0),(-1,-1),1,ORANGE),("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#FED7AA")),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),6),("VALIGN",(0,0),(-1,-1),"MIDDLE")]))
story += [dt, sp(0.2)]
# 4. PROCEDURE
story += [hdr("4. STOMA CARE PROCEDURE (Step-by-Step)", bg=GREEN), sp(0.12)]
steps = [
("STEP 1","REMOVE OLD BAG",LT_RED,RED,
"Adhesive remover wipe β peel gently top to bottom β empty drainable bag first β dispose in clinical waste"),
("STEP 2","CLEAN STOMA",LT_GREEN,GREEN,
"Warm water + soft gauze β circular motion from stoma outward β mild soap if needed β rinse well β PAT DRY"),
("STEP 3","ASSESS STOMA",LT_YELLOW,YELLOW,
"Colour (pink-red=healthy) | Size | Shape | Protrusion | Peristomal skin condition"),
("STEP 4","MEASURE + CUT FLANGE",LT_BLUE,BLUE,
"Use stoma measuring guide β cut hole 2β3 mm LARGER than stoma (too small=pressure | too large=leakage)"),
("STEP 5","APPLY BARRIER PASTE",LT_PURPLE,PURPLE,
"Karaya/stomahesive paste around opening β protects skin from leakage and irritation"),
("STEP 6","APPLY NEW APPLIANCE",LT_TEAL,TEAL,
"Centre over stoma β press firmly outward β hold 30 sec with warm hand β 2-piece: wafer first, then click bag β check for leaks"),
("STEP 7","DOCUMENT",colors.HexColor("#F1F5F9"),MID_GRAY,
"Record: stoma colour, size, output, skin condition, bag changed, patient tolerance"),
]
for num, title, bg, border, detail in steps:
r = Table([[p(f"<b>{num}</b>",fs=8.5,bold=True,color=border,align=TA_CENTER),
p(f"<b>{title}</b>",fs=9.5,bold=True,color=border),
p(detail,fs=9)]], colWidths=[1.5*cm, 4.0*cm, 12.3*cm])
r.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,-1),bg),
("BOX",(0,0),(-1,-1),1,border),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),6),("VALIGN",(0,0),(-1,-1),"MIDDLE")]))
story += [r, sp(0.07)]
story.append(sp(0.2))
# 5. HEALTHY vs DANGER
story += [hdr("5. HEALTHY STOMA vs DANGER SIGNS", bg=RED), sp(0.12)]
hd = [
[p("<b>Healthy Stoma</b>",bold=True,color=WHITE), p("<b>Report Immediately</b>",bold=True,color=WHITE)],
[p("Pink-red colour"), p("<b>Dark red / purple / BLACK</b> = Ischaemia/Necrosis")],
[p("Moist and glistening"), p("Dry, dull appearance")],
[p("Slightly raised (ileostomy)"), p("Retracted below skin level")],
[p("Minimal touch bleeding"), p("Profuse or continuous bleeding")],
[p("Normal output"), p("<b>No output 4β6 hrs</b> = Obstruction")],
[p("Intact peristomal skin"), p("Red, raw, broken peristomal skin")],
]
ht = Table(hd, colWidths=[8.8*cm, 9.0*cm])
ht.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,0),RED),
("BACKGROUND",(0,1),(0,-1),LT_GREEN),("BACKGROUND",(1,1),(1,-1),LT_RED),
("BOX",(0,0),(-1,-1),1,RED),("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#FECACA")),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7),("VALIGN",(0,0),(-1,-1),"MIDDLE")]))
story += [ht, sp(0.2)]
# 6. COMPLICATIONS
story += [hdr("6. COMPLICATIONS OF STOMA (PRSS-HF)", bg=PURPLE), sp(0.12)]
story.append(mnem('Mnemonic: "P R S S - H F"',
"Prolapse | Retraction | Stenosis | Skin excoriation | Hernia | Fistula"))
story.append(sp(0.12))
cd = [
[p("<b>Complication</b>",bold=True,color=WHITE),
p("<b>What Happens</b>",bold=True,color=WHITE),
p("<b>Action</b>",bold=True,color=WHITE)],
[p("<b>Prolapse</b>",bold=True), p("Stoma protrudes excessively"), p("Reduce + surgical review")],
[p("<b>Retraction</b>",bold=True), p("Stoma sinks below skin"), p("Difficult to fit bag β surgery")],
[p("<b>Stenosis</b>",bold=True), p("Narrowing of stoma opening"), p("Dilation or surgery")],
[p("<b>Skin Excoriation</b>",bold=True), p("Peristomal skin raw/sore"), p("Correct bag size, barrier cream")],
[p("<b>Parastomal Hernia</b>",bold=True), p("Bulge around stoma"), p("Support belt + surgery")],
[p("<b>Ischaemia/Necrosis</b>",bold=True,color=RED), p("Stoma turns BLACK",color=RED),
p("EMERGENCY β call doctor NOW!",color=RED,bold=True)],
[p("<b>Obstruction</b>",bold=True), p("No output 4β6 hours"), p("Hydration, position, surgery")],
[p("<b>Fistula</b>",bold=True), p("Abnormal tract near stoma"), p("Surgical management")],
]
ct = Table(cd, colWidths=[3.8*cm, 7.2*cm, 6.8*cm])
ct.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,0),PURPLE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LT_PURPLE]),
("BOX",(0,0),(-1,-1),1,PURPLE),("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#DDD6FE")),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),6),("VALIGN",(0,0),(-1,-1),"TOP")]))
story += [ct, sp(0.2)]
# 7. PATIENT EDUCATION
story += [hdr("7. PATIENT EDUCATION β DISCHARGE TEACHING", bg=YELLOW), sp(0.12)]
ed = [
[p("<b>Topic</b>",bold=True,color=WHITE), p("<b>Key Points</b>",bold=True,color=WHITE)],
[p("<b>Bag Change</b>",bold=True), p("Change when 1/3β1/2 full. Ileostomy: every 48 hrs. Colostomy: 2β3Γ/day.")],
[p("<b>Diet</b>",bold=True), p("Avoid gas-forming foods (beans, cabbage). Ileostomy: DRINK MORE WATER (dehydration risk).")],
[p("<b>Activity</b>",bold=True), p("Normal life allowed β work, swim, exercise. Avoid heavy lifting 6 weeks post-op.")],
[p("<b>Skin Care</b>",bold=True), p("Keep peristomal skin clean and dry. Use barrier cream daily.")],
[p("<b>Report Urgently</b>",bold=True,color=RED), p("Dark/black stoma | No output 4β6 hrs | Profuse bleeding | Severe skin breakdown")],
[p("<b>Medications</b>",bold=True), p("Some tablets pass whole into bag β ask for liquid/soluble forms.")],
[p("<b>Support</b>",bold=True), p("Contact stoma care nurse or colostomy association for help with appliances and lifestyle.")],
]
et = Table(ed, colWidths=[3.5*cm, 14.3*cm])
et.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,0),YELLOW),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LT_YELLOW]),
("BOX",(0,0),(-1,-1),1,YELLOW),("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#FDE68A")),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7),("VALIGN",(0,0),(-1,-1),"TOP")]))
story += [et, sp(0.2)]
# 8. EXAM QUESTIONS
story += [hdr("8. LIKELY EXAM QUESTIONS", bg=RED), sp(0.12)]
qs = [
("5 marks","Define stoma. Classify types and compare colostomy vs ileostomy."),
("10 marks","Describe the nursing care procedure for a patient with colostomy."),
("5 marks","What are the complications of stoma? How are they managed?"),
("10 marks","Write a nursing care plan for a patient with colostomy."),
("5 marks","What health education will you give to a patient discharged with a colostomy?"),
("3 marks","What is colostomy irrigation? Explain the procedure."),
("2 marks","Differentiate between prolapse and retraction of stoma."),
]
qd = [[p("<b>Marks</b>",bold=True,color=WHITE,align=TA_CENTER), p("<b>Question</b>",bold=True,color=WHITE)]]
for m, q in qs:
qd.append([p(f"<b>{m}</b>",bold=True,color=RED,align=TA_CENTER), p(q)])
qt = Table(qd, colWidths=[2.5*cm, 15.3*cm])
qt.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,0),RED),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LT_RED]),
("BOX",(0,0),(-1,-1),1,RED),("INNERGRID",(0,0),(-1,-1),0.5,colors.HexColor("#FECACA")),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7),("VALIGN",(0,0),(-1,-1),"MIDDLE"),
("ALIGN",(0,0),(0,-1),"CENTER")]))
story += [qt, sp(0.15)]
# FOOTER
ft = Table([[p("BSc Nursing 3rd Semester β’ MSN Unit V β’ Stoma Care β’ Quick Revision Notes β’ All the best! πͺ",
fs=8, color=WHITE, align=TA_CENTER)]], colWidths=[W])
ft.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,-1),DARK_BLUE),
("TOPPADDING",(0,0),(-1,-1),6),("BOTTOMPADDING",(0,0),(-1,-1),6)]))
story.append(ft)
doc.build(story)
print(f"PDF created: {OUTPUT}")
python3 /tmp/workspace/nursing-notes/create_stoma_pdf.py
Stoma Care
PDF Document Β· PDF
| Section | Content |
|---|---|
| 1 | Definition + Indications table |
| 2 | Types of Stoma - Colostomy / Ileostomy / Urostomy (color-coded table) |
| 3 | Colostomy vs Ileostomy - full comparison table (9 differences) |
| 4 | Step-by-Step Procedure (7 color-coded steps) |
| 5 | Healthy Stoma vs Danger Signs (green vs red) |
| 6 | Complications - PRSS-HF mnemonic + table |
| 7 | Patient Education / Discharge Teaching |
| 8 | 7 Likely Exam Questions with marks |
Antigen Antibody Reaction
PDF Document Β· PDF
Microbiology antigen antibody reaction
| Section | Content Covered |
|---|---|
| Antigen | Definition, Epitope, examples |
| Antibody | Y-shape, Fab region, Fc region, Plasma cells, Lock-key specificity |
| Ag-Ab Reaction Steps | Full flowchart - Antigen enters β B cells β Plasma cells β Antibody β Complex |
| 5 Results (APNLO) | Agglutination, Precipitation, Neutralization, Lysis, Opsonization |
| 5 Immunoglobulins (GADME) | IgG, IgA, IgD, IgM, IgE - with functions, locations, key facts |
| Complement System | C3b (opsonization), MAC C5b6789 (lysis) |
| Short Notes | Compact revision points |
| Flowchart | Complete visual summary |
| Exam Questions | 5 likely questions with marks |
Antigen Antibody Reaction
PDF Document Β· PDF
| Question | Answer |
|---|---|
| First antibody in infection? | IgM |
| Crosses placenta? | IgG |
| Found in breast milk/saliva? | IgA |
| Causes allergy? | IgE |
| B cell receptor? | IgD |
| Most abundant? | IgG (75-80%) |
| Results mnemonic? | APNLO |
| Immunoglobulins mnemonic? | GADME |