attachment
attachment
attachment
attachment

Make detail and easy to understand notes as a nursing student in 3 - 4 point s in each topic

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
I now have enough information from the library plus strong foundational knowledge to write comprehensive, student-friendly notes. Here are your complete nursing notes on Oxygenation Needs:

🫁 OXYGENATION NEEDS - Nursing Notes


1. Review of Cardiovascular and Respiratory Physiology

  • The respiratory system brings oxygen (Oβ‚‚) into the body and removes carbon dioxide (COβ‚‚). Air travels: nose/mouth β†’ pharynx β†’ trachea β†’ bronchi β†’ alveoli, where gas exchange happens.
  • The cardiovascular system transports Oβ‚‚ from the lungs to every body cell. The right heart pumps deoxygenated blood to the lungs; the left heart pumps oxygenated blood to the body (systemic circulation).
  • Normal values to remember: POβ‚‚ = 90-100 mmHg, Oβ‚‚ saturation = 95-100%, COβ‚‚ (PaCOβ‚‚) = 35-45 mmHg. These are your key reference points when assessing a patient's oxygenation status.
  • The diaphragm and intercostal muscles drive breathing. On inspiration, the diaphragm contracts and flattens, creating negative pressure that pulls air in. Expiration is normally passive (relaxation). Anything that weakens these muscles (e.g., spinal injury, sedation) reduces ventilation.

2. Factors Affecting Respiratory Functioning

  • Age: Newborns have immature lungs (less surfactant); the elderly have decreased lung elasticity and muscle strength, making them more prone to respiratory infections and fatigue.
  • Environment and lifestyle: Smoking destroys cilia and causes mucus buildup. Air pollution, allergens, and occupational dust (asbestos, coal) cause chronic inflammation and reduce lung capacity.
  • Health conditions: Obesity limits diaphragm movement; anxiety increases respiratory rate; pain from surgery causes shallow breathing (splinting), raising the risk of atelectasis (lung collapse).
  • Position and activity: Lying flat (supine) compresses the diaphragm, especially in obese patients. Semi-Fowler's or Fowler's position (30-45Β°) is best for maximizing lung expansion. Exercise increases Oβ‚‚ demand and respiratory rate normally.

3. Alterations in Respiratory Functioning

A. Conditions Affecting the Airway

  • Obstruction can be caused by a foreign body, secretions, mucus plugs, bronchospasm (asthma), or edema (anaphylaxis). An obstructed airway is a life-threatening emergency - act immediately.
  • COPD (chronic obstructive pulmonary disease) causes permanently narrowed airways from inflammation and destruction of alveolar walls. Patients breathe with pursed lips to create back-pressure and keep airways open.
  • Asthma causes episodic airway narrowing from bronchospasm and inflammation. Triggers include allergens, cold air, and exercise. Hallmark sign: wheezing on expiration.
  • Signs of airway problems: noisy breathing (stridor, wheezing), use of accessory muscles (neck and shoulder muscles pulling with each breath), nasal flaring, and cyanosis (blue lips/fingertips - a late and serious sign).

B. Conditions Affecting Movement of Air (Ventilation)

  • Hypoventilation means breathing is too slow or shallow - COβ‚‚ builds up (hypercapnia) and Oβ‚‚ drops (hypoxia). Causes: opioid drugs, head injury, neuromuscular disease.
  • Hyperventilation means breathing is too fast and deep - COβ‚‚ is blown off (hypocapnia). Causes: anxiety/panic, fever, pain, diabetic ketoacidosis. Patient feels tingling in fingers and lips.
  • Atelectasis is collapsed alveoli, most common after surgery when patients breathe shallowly. Prevented by deep breathing exercises, early ambulation, and incentive spirometry.
  • Pleural effusion / pneumothorax is fluid or air in the pleural space, which collapses the lung. A tension pneumothorax (air under pressure) is immediately life-threatening - watch for tracheal deviation.

C. Conditions Affecting Diffusion

  • Diffusion is the passive movement of Oβ‚‚ from alveoli into the blood and COβ‚‚ from blood into alveoli, driven by concentration gradients.
  • Impaired diffusion occurs in pneumonia (fluid fills alveoli), pulmonary edema (heart failure pushes fluid into lungs), and pulmonary fibrosis (thickened alveolar walls create a barrier).
  • The A-a gradient (difference between alveolar and arterial Oβ‚‚) is normally 10-15 mmHg. A wider gap indicates a diffusion problem or ventilation-perfusion mismatch.
  • Key sign: patient may appear to breathe okay but still be hypoxic - SpOβ‚‚ monitoring is essential because you cannot always tell diffusion failure by respiratory rate alone.

D. Conditions Affecting Oxygen Transport

  • Hemoglobin (Hgb) is the Oβ‚‚ carrier. Anemia (low Hgb) means less capacity to carry Oβ‚‚ even if lungs work perfectly. SpOβ‚‚ may read normal, yet the total Oβ‚‚ delivered to tissues is dangerously low.
  • CO poisoning: Carbon monoxide binds to hemoglobin 200x more strongly than Oβ‚‚, blocking transport. Pulse oximetry reads falsely normal (85-100%) - do NOT rely on SpOβ‚‚; check carboxyhemoglobin level.
  • The oxygen-hemoglobin dissociation curve is sigmoidal. At SpOβ‚‚ > 90% (POβ‚‚ > 70 mmHg), the curve is flat - small Oβ‚‚ drops cause little saturation change. Below 90%, the curve is steep - even small POβ‚‚ drops cause a huge fall in saturation. This is why SpOβ‚‚ < 90% is a clinical emergency threshold.
  • Factors shifting the curve: Fever, acidosis, and high COβ‚‚ shift the curve right (Hgb releases Oβ‚‚ more easily to tissues - good for exercise but bad in severe illness). Hypothermia and alkalosis shift it left (Hgb holds onto Oβ‚‚ too tightly).

4. Alterations in Oxygenation

  • Hypoxia = insufficient Oβ‚‚ at the tissue level. Early signs: restlessness, anxiety, confusion, increased heart rate, increased respiratory rate. Late signs: cyanosis, bradycardia, decreased level of consciousness.
  • Hypoxemia = low Oβ‚‚ in the blood (SpOβ‚‚ < 94%, PaOβ‚‚ < 80 mmHg). It leads to hypoxia if untreated. The five causes are: low inspired Oβ‚‚, hypoventilation, diffusion impairment, V/Q mismatch, and shunting.
  • Hypercapnia (high COβ‚‚) causes headache, flushing, drowsiness, and eventually COβ‚‚ narcosis. In COPD patients, high COβ‚‚ may be their normal - giving too much Oβ‚‚ can remove their hypoxic drive and stop breathing.
  • Cyanosis is a late and unreliable sign. Central cyanosis (lips, tongue) is more significant than peripheral cyanosis (fingertips, which can just be cold).

5. Nursing Interventions to Promote Oxygenation

A. Assessment

  • Complete respiratory assessment: Rate, rhythm, depth, effort; auscultate all lung fields; observe chest symmetry; check SpOβ‚‚; note skin color, mental status, and use of accessory muscles.
  • Vital signs pattern: Tachycardia + tachypnea + low SpOβ‚‚ together = strong sign of respiratory compromise. Always assess trending, not just one reading.
  • History: Ask about smoking, allergies, recent surgery, medications (opioids, sedatives), and pre-existing lung/heart disease.
  • Positioning: Before any intervention, sit the patient up (Fowler's 45-90Β°) to maximize diaphragm excursion and lung expansion.

B. Maintenance of Patent Airway

  • Head-tilt chin-lift (or jaw thrust if cervical injury suspected) opens the airway in an unconscious patient by lifting the tongue away from the pharynx.
  • Oropharyngeal airway (OPA): A hard curved device inserted in unconscious patients to hold the tongue forward. Never use in a conscious patient - it triggers the gag reflex and causes vomiting.
  • Nasopharyngeal airway (NPA): A soft rubber tube inserted through the nostril - tolerated by semi-conscious patients. Lubricate before insertion; avoid in suspected skull base fracture.
  • Endotracheal tube (ETT) / tracheostomy: Used when the above fail or for long-term mechanical ventilation. Nursing care: secure the tube, monitor cuff pressure (20-30 cmHβ‚‚O), provide oral care every 2-4 hours to prevent ventilator-associated pneumonia (VAP).

C. Oxygen Administration

  • Nasal cannula: 1-6 L/min β†’ delivers 24-44% Oβ‚‚. Most comfortable for patients. Use for mild hypoxia. Ensure prongs sit correctly in nostrils and check for skin breakdown behind ears.
  • Simple face mask: 6-10 L/min β†’ delivers 35-50% Oβ‚‚. Must use minimum 6 L/min to flush out exhaled COβ‚‚ from the mask. Patient cannot eat or drink with it on.
  • Non-rebreather mask (NRM): 10-15 L/min β†’ delivers 60-90% Oβ‚‚. Has a reservoir bag and one-way valves. The bag must remain inflated at all times. Used in emergencies.
  • Venturi mask: Delivers precise, controlled Oβ‚‚ concentrations (24%, 28%, 31%, 35%, 40%, 60%) using color-coded adaptors. Best for COPD patients where exact FiOβ‚‚ matters. Always document which color adaptor is in use.

D. Suctioning - Oral and Tracheal

  • Oral suctioning (Yankauer catheter): Used to remove secretions from the mouth and oropharynx. Safe, quick, can be done in conscious patients. Insert only to the visible area - do not advance blindly into the throat.
  • Tracheal/nasotracheal suctioning: Insert a sterile suction catheter into the trachea. Apply suction only while withdrawing (never while inserting). Limit each pass to 10-15 seconds to prevent hypoxia.
  • Before suctioning: Pre-oxygenate with 100% Oβ‚‚ for 30-60 seconds. After suctioning: re-assess breath sounds and SpOβ‚‚. If SpOβ‚‚ drops during suctioning, stop immediately and give Oβ‚‚.
  • Catheter size rule: Use a catheter no wider than half the internal diameter of the airway/tube to avoid blocking ventilation during the procedure.

E. Chest Physiotherapy (CPT)

  • Percussion: Cup the hands and rhythmically clap over the chest wall (over a towel/gown) to loosen thick secretions stuck in airways. Work from the outer lung toward the center. Avoid bony prominences.
  • Vibration: Apply fine, rapid, downward pressure to the chest wall only during expiration to help move secretions toward larger airways where they can be coughed or suctioned out.
  • Postural drainage: Position the patient so the affected lung segment is uppermost, using gravity to drain secretions into the large airways. There are specific positions for each lung lobe (e.g., Trendelenburg for lower lobes). Perform before meals or 1-2 hours after to avoid vomiting.
  • Combined technique: CPT works best when percussion + vibration + postural drainage are combined, followed by deep coughing or suctioning to clear the loosened secretions.

F. Care of Chest Drainage

  • Purpose: A chest tube (intercostal drain) removes air (pneumothorax), blood (hemothorax), or fluid (pleural effusion) from the pleural space to re-expand the lung.
  • Underwater seal principle: The distal end of the drainage tube sits 2 cm below water. This creates a one-way valve - fluid/air can exit but cannot re-enter. You should see gentle tidaling (water moving with breathing) - this confirms the system is patent.
  • Nursing care: Keep the drainage unit below the level of the chest at all times. Never clamp for more than a few seconds (only when changing the bottle or checking for air leaks, per protocol). Bubbling in the water seal chamber indicates an air leak (normal initially; persistent bubbling = problem).
  • Emergency - dislodged tube: If the chest tube falls out, immediately cover the site with a gloved hand or sterile dressing taped on three sides only (flutter valve effect) and call the doctor urgently.

G. Pulse Oximetry

  • What it measures: SpOβ‚‚ (peripheral oxygen saturation) using light absorption by oxyhemoglobin vs. deoxyhemoglobin. Normal SpOβ‚‚ = 95-100%. SpOβ‚‚ < 90% requires urgent action.
  • Factors that cause false readings: Poor peripheral circulation (cold, shock, Raynaud's), nail polish (especially dark/blue), patient movement/shivering, carbon monoxide poisoning (reads falsely high), methemoglobinemia (reads ~85% regardless of true level), and severe anemia.
  • Placement tips: Fingertip is standard. Use earlobe or forehead probe in poor peripheral perfusion. Ensure sensor is on a warm, well-perfused site and correlate with the plethysmographic waveform (should show a steady pulse wave).
  • Limitations: SpOβ‚‚ only measures saturation - it does NOT measure ventilation or COβ‚‚. A patient can have a normal SpOβ‚‚ while retaining dangerous amounts of COβ‚‚ (e.g., on supplemental Oβ‚‚). Always assess clinically alongside SpOβ‚‚.

6. Restorative and Continuing Care

A. Hydration

  • Adequate fluid intake (1.5-2.5 L/day unless restricted) keeps mucus thin and easy to expectorate. Thick, tenacious secretions are harder to cough up and more likely to cause plugging and atelectasis.
  • IV fluids may be needed in patients who cannot drink. However, over-hydration in heart failure or renal failure patients can worsen pulmonary edema - monitor fluid balance carefully.
  • Offer warm fluids (warm water, herbal teas) to patients with respiratory conditions - warmth helps liquefy secretions.
  • Mouth care is part of hydration management: dry mucous membranes increase infection risk, and a moist mouth encourages deeper breathing.

B. Humidification

  • Purpose: Supplemental Oβ‚‚ delivered by cylinder or wall supply is completely dry. Breathing dry Oβ‚‚ dries out the respiratory mucosa, thickens secretions, and can cause nosebleeds and mucosal damage.
  • Bubble humidifier: A simple jar of sterile water attached between the Oβ‚‚ source and the delivery device. Used when flow is > 4 L/min via nasal cannula or any flow via mask.
  • Heated humidification is used for intubated/mechanically ventilated patients to warm and fully saturate inspired gas, protecting the lower airway and maintaining ciliary function.
  • Change humidifier water using sterile water (never tap water - Legionella risk) and change the device per hospital protocol (typically every 24-48 hours) to prevent bacterial colonization.

C. Coughing Techniques

  • Effective cough: Take a deep breath, hold briefly, then cough two short, sharp coughs. This builds enough pressure to propel secretions upward. A single weak cough is far less effective.
  • Huff coughing (forced expiration technique): Inhale deeply, then make a "ha-ha-ha" sound (glottis open). Less effort than a full cough but still moves secretions. Useful for patients with COPD or post-surgery pain.
  • Splinted coughing: After abdominal or chest surgery, teach the patient to press a pillow firmly against the incision before coughing. This reduces pain and supports the wound, allowing a stronger, deeper cough.
  • Cascading cough: Used for weak patients - a series of small coughs at progressively lower lung volumes to incrementally move secretions from deeper airways toward the mouth.

D. Breathing Exercises

  • Diaphragmatic (abdominal) breathing: Place one hand on the abdomen; breathe in so the abdomen rises (not the chest). This maximizes use of the diaphragm - the most efficient breathing muscle. Teaches patients to breathe more deeply and efficiently.
  • Pursed-lip breathing (PLB): Inhale slowly through the nose for 2 counts, exhale through pursed lips for 4 counts. Creates back-pressure that keeps small airways open during expiration. The main self-management technique for COPD patients to relieve dyspnea.
  • Deep breathing exercises: Post-operative patients should do 5-10 deep breaths every 1-2 hours while awake. This reopens collapsed alveoli and prevents atelectasis and pneumonia.
  • Segmental breathing: Focuses expansion on one specific area of the lung (e.g., the right lower lobe) by placing the hands over that area and breathing into them. Used after surgery or pneumonia affecting one zone.

E. Incentive Spirometry

  • What it is: A handheld device that provides visual feedback during deep inspiration. The patient inhales through the mouthpiece and tries to raise a ball or piston to a target level. This measures and encourages maximum sustained inspiration.
  • How to use: Sit the patient upright, exhale normally, seal lips around mouthpiece, inhale slowly and deeply to raise the indicator as high as possible, hold for 3-5 seconds, then exhale. Repeat 10 times per session, every 1-2 hours while awake.
  • Key nursing point: Incentive spirometry is most effective when combined with coughing immediately after use to clear any secretions that were loosened by the deep inspiration.
  • Contraindications/caution: Not suitable for uncooperative, unconscious, or very weak patients. Patients with a vital capacity < 10 ml/kg, or those who cannot follow instructions, will not benefit. Always encourage and coach - patient motivation directly determines how well it works.

Quick Memory Aid - OXYGENATION ABCs for Nurses:
  • A = Airway patent? Position patient upright
  • B = Breathing - rate, rhythm, effort, SpOβ‚‚
  • C = Circulation - pulse, skin color, capillary refill
  • D = Devices - correct Oβ‚‚ delivery device and flow rate?
  • E = Educate - breathing exercises, coughing, hydration, smoking cessation

Generate a quick reference summary card covering SpOβ‚‚ interpretation and oxygen devices

Generating Image

A clean, professional nursing quick reference summary card titled "SpOβ‚‚ Interpretation & Oxygen Devices". Top section: "SpOβ‚‚ Interpretation" table with color-coded rows: - 95–100%: Green background, "NORMAL – No intervention needed" - 91–94%: Yellow background, "MILD HYPOXIA – Monitor closely, consider Oβ‚‚" - 86–90%: Orange background, "MODERATE HYPOXIA – Start Oβ‚‚ therapy, notify MD" - Below 85%: Red background, "SEVERE HYPOXIA – Urgent intervention, high-flow Oβ‚‚" Middle section: "Oxygen Delivery Devices" table with 5 rows: Row 1: Nasal Cannula | 1–6 L/min | 24–44% FiOβ‚‚ | Mild hypoxia, comfortable Row 2: Simple Face Mask | 6–10 L/min | 35–50% FiOβ‚‚ | Moderate hypoxia Row 3: Non-Rebreather Mask | 10–15 L/min | 60–90% FiOβ‚‚ | Emergency/severe hypoxia Row 4: Venturi Mask | Variable | 24–60% FiOβ‚‚ (precise) | COPD, controlled Oβ‚‚ Row 5: Bag-Valve Mask | 15 L/min | ~100% FiOβ‚‚ | Respiratory arrest Bottom section: "Factors Causing FALSE SpOβ‚‚ Readings" in a warning box: ⚠ Low perfusion/cold hands | Dark nail polish | CO poisoning (reads HIGH) | Methemoglobinemia (reads ~85%) | Severe anemia | Patient movement Footer: "Remember: SpOβ‚‚ does NOT measure COβ‚‚ – always assess the patient clinically!" Clean white background, medical blue and teal color scheme, bold headings, easy to read fonts, suitable for a nursing student reference card.

SpOβ‚‚ & Oxygen Devices Quick Reference Card
Here is your quick reference summary card! Here's a text breakdown to go along with it:

SpOβ‚‚ Interpretation at a Glance

SpOβ‚‚ LevelStatusAction
95 - 100%🟒 NormalNo intervention needed
91 - 94%🟑 Mild HypoxiaMonitor closely, consider Oβ‚‚
86 - 90%🟠 Moderate HypoxiaStart Oβ‚‚, notify doctor
≀ 85%πŸ”΄ Severe HypoxiaUrgent - high-flow Oβ‚‚ immediately

Oxygen Delivery Devices

DeviceFlow RateFiOβ‚‚ DeliveredBest Used For
Nasal Cannula1-6 L/min24-44%Mild hypoxia, comfort
Simple Face Mask6-10 L/min35-50%Moderate hypoxia
Non-Rebreather Mask10-15 L/min60-90%Emergency/severe hypoxia
Venturi MaskVariable24-60% (precise)COPD - controlled Oβ‚‚
Bag-Valve Mask15 L/min~100%Respiratory arrest

⚠️ Causes of FALSE SpOβ‚‚ Readings

  • Falsely HIGH: CO poisoning, dark nail polish
  • Falsely LOW / inaccurate: Cold/poorly perfused fingers, patient movement, methemoglobinemia (locks at ~85%), severe anemia

Golden Rule: SpOβ‚‚ only measures oxygen saturation - it does NOT detect COβ‚‚ retention. Always assess the patient clinically alongside the monitor!

Create a PDF reference card I can print and carry

Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace

Running Command

mkdir -p /home/daytona/workspace/oxygenation-card && python3 -c "from reportlab.lib import colors; print('reportlab ok')"

Writing File

~/oxygenation-card/build_card.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm, cm
from reportlab.platypus import (
    SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, HRFlowable
)
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.platypus import KeepTogether

OUTPUT = "/home/daytona/workspace/oxygenation-card/SpO2_OxygenDevices_ReferenceCard.pdf"

# ── Colours ──────────────────────────────────────────────────────────────────
NAVY      = colors.HexColor("#1A3A5C")
TEAL      = colors.HexColor("#0E7C7B")
LIGHT_BG  = colors.HexColor("#F0F6FA")
GREEN_BG  = colors.HexColor("#D4EDDA")
GREEN_TXT = colors.HexColor("#155724")
YELLOW_BG = colors.HexColor("#FFF3CD")
YELLOW_TXT= colors.HexColor("#856404")
ORANGE_BG = colors.HexColor("#FFE0B2")
ORANGE_TXT= colors.HexColor("#7B3F00")
RED_BG    = colors.HexColor("#F8D7DA")
RED_TXT   = colors.HexColor("#721C24")
WARN_BG   = colors.HexColor("#FFF8E1")
WARN_BDR  = colors.HexColor("#F9A825")
WHITE     = colors.white
GREY_HDR  = colors.HexColor("#2C5F8A")
GREY_ALT  = colors.HexColor("#EAF2F8")

# ── Styles ────────────────────────────────────────────────────────────────────
def sty(name, **kw):
    base = dict(fontName="Helvetica", fontSize=9, leading=12, textColor=colors.black)
    base.update(kw)
    return ParagraphStyle(name, **base)

title_sty   = sty("title",   fontName="Helvetica-Bold", fontSize=17, textColor=WHITE,
                  alignment=TA_CENTER, leading=22)
sub_sty     = sty("sub",     fontName="Helvetica", fontSize=9, textColor=colors.HexColor("#CCE5FF"),
                  alignment=TA_CENTER, leading=13)
sec_sty     = sty("sec",     fontName="Helvetica-Bold", fontSize=11, textColor=WHITE,
                  alignment=TA_CENTER, leading=15)
body_sty    = sty("body",    fontSize=8.5, leading=12)
body_bold   = sty("bold",    fontName="Helvetica-Bold", fontSize=8.5, leading=12)
body_cen    = sty("cen",     fontSize=8.5, leading=12, alignment=TA_CENTER)
small_sty   = sty("small",   fontSize=7.5, leading=11)
foot_sty    = sty("foot",    fontSize=7.5, textColor=colors.HexColor("#555555"),
                  alignment=TA_CENTER, leading=11)
warn_sty    = sty("warn",    fontName="Helvetica-Bold", fontSize=9, textColor=colors.HexColor("#7B3F00"),
                  alignment=TA_CENTER, leading=13)
mnem_sty    = sty("mnem",    fontName="Helvetica-Bold", fontSize=8.5, textColor=NAVY, leading=13)

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=14*mm, rightMargin=14*mm,
    topMargin=12*mm,  bottomMargin=12*mm,
)

W = A4[0] - 28*mm   # usable width

story = []

# ══════════════════════════════════════════════════════════════════════════════
# HEADER BANNER
# ══════════════════════════════════════════════════════════════════════════════
header_data = [[
    Paragraph("🫁  OXYGENATION QUICK REFERENCE CARD", title_sty),
]]
header_data += [[
    Paragraph("SpOβ‚‚ Interpretation  β€’  Oxygen Delivery Devices  β€’  Pulse Oximetry Pitfalls  β€’  Clinical Tips", sub_sty),
]]
header_tbl = Table(header_data, colWidths=[W])
header_tbl.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), NAVY),
    ("TOPPADDING",    (0,0), (-1,-1), 8),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 8),
    ("RIGHTPADDING",  (0,0), (-1,-1), 8),
    ("ROUNDEDCORNERS", [6]),
]))
story.append(header_tbl)
story.append(Spacer(1, 6))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 1 – SpOβ‚‚ Interpretation
# ══════════════════════════════════════════════════════════════════════════════
def section_header(title):
    t = Table([[Paragraph(title, sec_sty)]], colWidths=[W])
    t.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), TEAL),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("RIGHTPADDING",  (0,0), (-1,-1), 10),
    ]))
    return t

story.append(section_header("1.  SpOβ‚‚ INTERPRETATION"))
story.append(Spacer(1, 3))

spo2_data = [
    [
        Paragraph("<b>SpOβ‚‚ Range</b>", body_bold),
        Paragraph("<b>Status</b>", body_bold),
        Paragraph("<b>Clinical Meaning</b>", body_bold),
        Paragraph("<b>Nurse Action</b>", body_bold),
    ],
    [
        Paragraph("<b>95 – 100%</b>", sty("g1", fontName="Helvetica-Bold", fontSize=9, textColor=GREEN_TXT, leading=12)),
        Paragraph("βœ…  NORMAL", sty("g2", fontName="Helvetica-Bold", fontSize=9, textColor=GREEN_TXT, alignment=TA_CENTER, leading=12)),
        Paragraph("Adequate oxygenation; tissues well-perfused", body_sty),
        Paragraph("Continue monitoring; document baseline", body_sty),
    ],
    [
        Paragraph("<b>91 – 94%</b>", sty("y1", fontName="Helvetica-Bold", fontSize=9, textColor=YELLOW_TXT, leading=12)),
        Paragraph("⚠️  MILD HYPOXIA", sty("y2", fontName="Helvetica-Bold", fontSize=9, textColor=YELLOW_TXT, alignment=TA_CENTER, leading=12)),
        Paragraph("Early hypoxia; compensatory tachycardia may begin", body_sty),
        Paragraph("Reposition (Fowler's), consider nasal cannula 2-4 L/min, notify if no improvement", body_sty),
    ],
    [
        Paragraph("<b>86 – 90%</b>", sty("o1", fontName="Helvetica-Bold", fontSize=9, textColor=ORANGE_TXT, leading=12)),
        Paragraph("πŸ”Ά  MODERATE HYPOXIA", sty("o2", fontName="Helvetica-Bold", fontSize=9, textColor=ORANGE_TXT, alignment=TA_CENTER, leading=12)),
        Paragraph("Significant hypoxia; increased work of breathing", body_sty),
        Paragraph("Start Oβ‚‚ therapy NOW, notify MD, reassess q15 min", body_sty),
    ],
    [
        Paragraph("<b>≀ 85%</b>", sty("r1", fontName="Helvetica-Bold", fontSize=9, textColor=RED_TXT, leading=12)),
        Paragraph("🚨  SEVERE / CRITICAL", sty("r2", fontName="Helvetica-Bold", fontSize=9, textColor=RED_TXT, alignment=TA_CENTER, leading=12)),
        Paragraph("Life-threatening; multi-organ failure risk", body_sty),
        Paragraph("HIGH-FLOW Oβ‚‚ immediately, call rapid response / code, prepare for intubation", body_sty),
    ],
]

col_w = [W*0.13, W*0.18, W*0.34, W*0.35]
spo2_tbl = Table(spo2_data, colWidths=col_w, repeatRows=1)
spo2_tbl.setStyle(TableStyle([
    # Header row
    ("BACKGROUND",    (0,0), (-1,0), GREY_HDR),
    ("TEXTCOLOR",     (0,0), (-1,0), WHITE),
    ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
    # Row backgrounds
    ("BACKGROUND",    (0,1), (-1,1), GREEN_BG),
    ("BACKGROUND",    (0,2), (-1,2), YELLOW_BG),
    ("BACKGROUND",    (0,3), (-1,3), ORANGE_BG),
    ("BACKGROUND",    (0,4), (-1,4), RED_BG),
    # Grid
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#AAAAAA")),
    ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("RIGHTPADDING",  (0,0), (-1,-1), 6),
]))
story.append(spo2_tbl)
story.append(Spacer(1, 7))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 2 – Oxygen Delivery Devices
# ══════════════════════════════════════════════════════════════════════════════
story.append(section_header("2.  OXYGEN DELIVERY DEVICES"))
story.append(Spacer(1, 3))

dev_data = [
    [
        Paragraph("<b>Device</b>", body_bold),
        Paragraph("<b>Flow Rate</b>", body_bold),
        Paragraph("<b>FiOβ‚‚ Delivered</b>", body_bold),
        Paragraph("<b>Best Used For</b>", body_bold),
        Paragraph("<b>Key Nursing Points</b>", body_bold),
    ],
    [
        Paragraph("<b>Nasal Cannula</b>", body_bold),
        Paragraph("1 – 6 L/min", body_cen),
        Paragraph("24 – 44%", sty("nc", fontName="Helvetica-Bold", fontSize=8.5, textColor=GREEN_TXT, alignment=TA_CENTER, leading=12)),
        Paragraph("Mild hypoxia; long-term use; eating/talking OK", body_sty),
        Paragraph("Check prongs in nostrils; skin behind ears for breakdown; add humidifier >4 L/min", small_sty),
    ],
    [
        Paragraph("<b>Simple Face Mask</b>", body_bold),
        Paragraph("6 – 10 L/min", body_cen),
        Paragraph("35 – 50%", sty("sm", fontName="Helvetica-Bold", fontSize=8.5, textColor=YELLOW_TXT, alignment=TA_CENTER, leading=12)),
        Paragraph("Moderate hypoxia; short-term use", body_sty),
        Paragraph("Min 6 L/min to flush COβ‚‚ from mask; patient cannot eat with mask on", small_sty),
    ],
    [
        Paragraph("<b>Non-Rebreather Mask (NRM)</b>", body_bold),
        Paragraph("10 – 15 L/min", body_cen),
        Paragraph("60 – 90%", sty("nr", fontName="Helvetica-Bold", fontSize=8.5, textColor=ORANGE_TXT, alignment=TA_CENTER, leading=12)),
        Paragraph("Severe/emergency hypoxia", body_sty),
        Paragraph("Reservoir bag MUST stay inflated; one-way valves must be intact; monitor closely", small_sty),
    ],
    [
        Paragraph("<b>Venturi Mask</b>", body_bold),
        Paragraph("Variable\n(per adaptor)", body_cen),
        Paragraph("24 – 60%\n(Precise)", sty("vm", fontName="Helvetica-Bold", fontSize=8.5, textColor=TEAL, alignment=TA_CENTER, leading=12)),
        Paragraph("COPD; precise Oβ‚‚ control needed", body_sty),
        Paragraph("Colour-coded adaptors (blue=24%, white=28%, yellow=35%, red=40%, green=60%); document adaptor colour used", small_sty),
    ],
    [
        Paragraph("<b>Bag-Valve Mask (BVM)</b>", body_bold),
        Paragraph("15 L/min", body_cen),
        Paragraph("~100%", sty("bv", fontName="Helvetica-Bold", fontSize=8.5, textColor=RED_TXT, alignment=TA_CENTER, leading=12)),
        Paragraph("Respiratory arrest; apnoea", body_sty),
        Paragraph("Requires 2-person technique for best seal; 1 breath every 5-6 sec; watch for chest rise", small_sty),
    ],
]

col_w2 = [W*0.17, W*0.11, W*0.12, W*0.25, W*0.35]
dev_tbl = Table(dev_data, colWidths=col_w2, repeatRows=1)
dev_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), GREY_HDR),
    ("TEXTCOLOR",     (0,0), (-1,0), WHITE),
    ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
    ("BACKGROUND",    (0,2), (-1,2), GREY_ALT),
    ("BACKGROUND",    (0,4), (-1,4), GREY_ALT),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#AAAAAA")),
    ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 5),
    ("RIGHTPADDING",  (0,0), (-1,-1), 5),
]))
story.append(dev_tbl)
story.append(Spacer(1, 7))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 3 – False SpOβ‚‚ Readings  (2-col layout)
# ══════════════════════════════════════════════════════════════════════════════
story.append(section_header("3.  CAUSES OF FALSE / INACCURATE SpOβ‚‚ READINGS"))
story.append(Spacer(1, 3))

false_data = [
    [
        Paragraph("<b>Cause</b>", body_bold),
        Paragraph("<b>Effect on Reading</b>", body_bold),
        Paragraph("<b>What To Do</b>", body_bold),
        Paragraph("<b>Cause</b>", body_bold),
        Paragraph("<b>Effect on Reading</b>", body_bold),
        Paragraph("<b>What To Do</b>", body_bold),
    ],
    [
        Paragraph("CO Poisoning", body_bold),
        Paragraph("Falsely HIGH (85–100%)", sty("fh", fontSize=8, textColor=RED_TXT, leading=11)),
        Paragraph("Order carboxyhemoglobin level; give 100% Oβ‚‚", small_sty),
        Paragraph("Dark Nail Polish", body_bold),
        Paragraph("Falsely LOW or erratic", sty("fl", fontSize=8, textColor=ORANGE_TXT, leading=11)),
        Paragraph("Remove polish or use earlobe/forehead probe", small_sty),
    ],
    [
        Paragraph("Methemoglobinemia", body_bold),
        Paragraph("Locks at ~85%", sty("mh", fontSize=8, textColor=RED_TXT, leading=11)),
        Paragraph("Check methemoglobin level by co-oximetry", small_sty),
        Paragraph("Patient Movement / Shivering", body_bold),
        Paragraph("Erratic / unreliable", sty("er", fontSize=8, textColor=ORANGE_TXT, leading=11)),
        Paragraph("Stabilise limb; use a different probe site", small_sty),
    ],
    [
        Paragraph("Poor Perfusion / Cold Hands", body_bold),
        Paragraph("Falsely LOW or no reading", sty("fl2", fontSize=8, textColor=ORANGE_TXT, leading=11)),
        Paragraph("Warm the hand; use earlobe probe; assess clinically", small_sty),
        Paragraph("Severe Anaemia", body_bold),
        Paragraph("Normal SpOβ‚‚ but low Oβ‚‚ content", sty("an", fontSize=8, textColor=ORANGE_TXT, leading=11)),
        Paragraph("Check Hgb/Hct; SpOβ‚‚ alone is misleading", small_sty),
    ],
]

col_w3 = [W*0.13, W*0.15, W*0.22, W*0.16, W*0.15, W*0.19]
false_tbl = Table(false_data, colWidths=col_w3, repeatRows=1)
false_tbl.setStyle(TableStyle([
    ("BACKGROUND",  (0,0), (-1,0), GREY_HDR),
    ("TEXTCOLOR",   (0,0), (-1,0), WHITE),
    ("BACKGROUND",  (0,2), (-1,2), GREY_ALT),
    ("BACKGROUND",  (3,0), (5,0), GREY_HDR),
    ("GRID",        (0,0), (-1,-1), 0.4, colors.HexColor("#AAAAAA")),
    ("LINEAFTER",   (2,0), (2,-1), 1.5, TEAL),
    ("VALIGN",      (0,0), (-1,-1), "MIDDLE"),
    ("TOPPADDING",  (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0),(-1,-1), 4),
    ("LEFTPADDING", (0,0), (-1,-1), 5),
    ("RIGHTPADDING",(0,0), (-1,-1), 5),
]))
story.append(false_tbl)
story.append(Spacer(1, 7))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 4 – Golden Rules / Mnemonics  (2-col)
# ══════════════════════════════════════════════════════════════════════════════
story.append(section_header("4.  CLINICAL TIPS & GOLDEN RULES"))
story.append(Spacer(1, 3))

tips_left = [
    "πŸ”‘  <b>SpOβ‚‚ does NOT measure COβ‚‚.</b> A patient on supplemental Oβ‚‚ can have normal SpOβ‚‚ while retaining dangerous COβ‚‚ (e.g. COPD). Always assess clinically.",
    "πŸ”‘  <b>SpOβ‚‚ &lt; 90% = Emergency threshold.</b> Below 90%, the Oβ‚‚-Hgb dissociation curve is steep β€” small Oβ‚‚ drops cause large saturation falls. Act fast.",
    "πŸ”‘  <b>COPD patients:</b> Use Venturi mask for precise FiOβ‚‚. Giving too much Oβ‚‚ can remove their hypoxic drive and cause hypoventilation.",
    "πŸ”‘  <b>Pre-oxygenate before suctioning</b> with 100% Oβ‚‚ for 30-60 sec. Limit each suction pass to ≀15 seconds. Stop if SpOβ‚‚ drops.",
]

tips_right = [
    "πŸ”‘  <b>Assess the PATIENT, not just the monitor.</b> Restlessness, confusion, and tachycardia are early hypoxia signs β€” often before SpOβ‚‚ drops.",
    "πŸ”‘  <b>Fowler's position (30–90Β°)</b> maximises lung expansion by allowing the diaphragm to descend freely. Always position first.",
    "πŸ”‘  <b>NRM reservoir bag</b> must stay at least Β½ inflated. If it collapses completely with each breath, increase the flow rate immediately.",
    "πŸ”‘  <b>Humidify Oβ‚‚</b> at flows >4 L/min or for intubated patients. Dry Oβ‚‚ damages the airway mucosa and thickens secretions.",
]

def tip_cell(tips):
    items = []
    for t in tips:
        items.append(Paragraph(t, sty("tip", fontSize=8, leading=12, textColor=NAVY)))
        items.append(Spacer(1, 3))
    return items

from reportlab.platypus import KeepInFrame

left_frame  = KeepInFrame(W*0.49, 200, tip_cell(tips_left),  mode='shrink')
right_frame = KeepInFrame(W*0.49, 200, tip_cell(tips_right), mode='shrink')

tips_tbl = Table([[left_frame, right_frame]], colWidths=[W*0.49, W*0.51])
tips_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), LIGHT_BG),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("LINEAFTER",     (0,0), (0,-1), 1, TEAL),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 7),
    ("RIGHTPADDING",  (0,0), (-1,-1), 7),
    ("BOX",           (0,0), (-1,-1), 0.5, TEAL),
]))
story.append(tips_tbl)
story.append(Spacer(1, 7))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 5 – ABC Mnemonic
# ══════════════════════════════════════════════════════════════════════════════
abc_data = [
    [Paragraph("NURSING OXYGENATION ABCs", sty("mnhdr", fontName="Helvetica-Bold", fontSize=9.5, textColor=WHITE, alignment=TA_CENTER, leading=14))],
    [Paragraph(
        "<b>A</b> = Airway patent? Position upright    "
        "<b>B</b> = Breathing β€” rate, rhythm, effort, SpOβ‚‚    "
        "<b>C</b> = Circulation β€” pulse, skin colour    "
        "<b>D</b> = Device β€” correct Oβ‚‚ device & flow rate?    "
        "<b>E</b> = Educate β€” breathing exercises, coughing, hydration",
        sty("abc", fontSize=8.5, textColor=NAVY, alignment=TA_CENTER, leading=14)
    )],
]
abc_tbl = Table(abc_data, colWidths=[W])
abc_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), NAVY),
    ("BACKGROUND",    (0,1), (-1,1), colors.HexColor("#E8F4FD")),
    ("BOX",           (0,0), (-1,-1), 1, NAVY),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 8),
    ("RIGHTPADDING",  (0,0), (-1,-1), 8),
]))
story.append(abc_tbl)
story.append(Spacer(1, 6))

# ══════════════════════════════════════════════════════════════════════════════
# FOOTER
# ══════════════════════════════════════════════════════════════════════════════
story.append(HRFlowable(width=W, thickness=0.5, color=TEAL))
story.append(Spacer(1, 3))
story.append(Paragraph(
    "πŸ“‹  Nursing Quick Reference Card  β€’  Oxygenation Needs  β€’  For educational use only β€” always follow local clinical guidelines and protocols",
    foot_sty
))

# ── Build ─────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF written to: {OUTPUT}")
Running Command

python3 /home/daytona/workspace/oxygenation-card/build_card.py

Running Command

ls -lh /home/daytona/workspace/oxygenation-card/

Your printable reference card is ready! πŸŽ‰

SpO2 OxygenDevices ReferenceCard

PDF Document Β· PDF


Here is what's included on the single A4 card (print-ready, fits on one page):
Section 1 - SpOβ‚‚ Interpretation Table Color-coded rows (green/yellow/orange/red) for 95-100%, 91-94%, 86-90%, and ≀85% with the status, clinical meaning, and exact nurse action for each.
Section 2 - Oxygen Delivery Devices Table All 5 devices (Nasal Cannula, Simple Mask, NRM, Venturi Mask, BVM) with flow rates, FiOβ‚‚ ranges, best use cases, and key nursing points.
Section 3 - Causes of False SpOβ‚‚ Readings Side-by-side table covering CO poisoning, methemoglobinemia, poor perfusion, dark nail polish, patient movement, and severe anemia - with what to do for each.
Section 4 - Clinical Tips & Golden Rules 8 high-yield nursing tips in a two-column layout (e.g., COPD + Venturi mask, pre-oxygenation before suctioning, Fowler's position).
Section 5 - Nursing ABCs Mnemonic A β†’ E quick memory aid at the bottom.
Print tip: Print at 100% scale on A4 paper (not "fit to page"). Laminate it for durability on the ward!
This is a shared conversation. Sign in to Orris to start your own chat.