Take MCQ mock test

Reading File
Running Command

python3 -c " import pdfplumber with pdfplumber.open('/home/daytona/workspace/attachments/27cec14d-3802-4868-8f84-2904403e2891/31dabec9-a53d-4c03-a5da-43c68c5a7831.pdf') as pdf: print(f'Total pages: {len(pdf.pages)}') for i, page in enumerate(pdf.pages): text = page.extract_text() print(f'--- PAGE {i+1} ---') print(text) print() "

I've read the full study guide. The PDF contains 8 MCQs on Fluid & Electrolyte Balance (Nursing). Let me run them as a mock test - I'll present each question one by one. But since this is a text-based interface, I'll present all 8 questions for you to attempt, then reveal answers with explanations.

🩺 Mock MCQ Test: Fluid & Electrolyte Balance

Topic: Fundamentals of Nursing | For: RRB / SGPGI / Nursing Officer Exams Total Questions: 8 | Time suggested: ~8 minutes

Q1. The percentage of water in the average young adult human body is approximately?
  • A) 40%
  • B) 50%
  • C) 60%
  • D) 70%

Q2. An older adult is at higher risk for dehydration than a middle-aged adult because:
  • A) They have more muscle mass.
  • B) They drink very little fluid.
  • C) Their body is almost 80% water.
  • D) Their compensatory mechanisms work less efficiently.

Q3. Which of the following is the most abundant cation in the extracellular fluid?
  • A) Potassium
  • B) Sodium
  • C) Calcium
  • D) Magnesium

Q4. A patient has a serum sodium level of 128 mEq/L. Which clinical feature would the nurse expect?
  • A) Intense thirst
  • B) Lethargy and confusion
  • C) Dry mucous membranes
  • D) Hypertension

Q5. What is the specific antidote for severe hypermagnesemia?
  • A) IV Furosemide
  • B) IV Insulin
  • C) IV Calcium Gluconate
  • D) Oral Magnesium supplements

Q6. Which assessment finding indicates fluid volume excess (hypervolemia)?
  • A) Weak, thready pulse
  • B) Decreased BP
  • C) Crackles on auscultation
  • D) Poor skin turgor

Q7. Insensible fluid loss occurs through which routes?
  • A) Kidney and bladder
  • B) Skin and lungs
  • C) Intestines and kidney
  • D) Skin and kidney

Q8. Normal serum osmolality range is:
  • A) 100 - 150 mOsm/kg
  • B) 275 - 295 mOsm/kg
  • C) 300 - 350 mOsm/kg
  • D) 400 - 450 mOsm/kg

Reply with your answers (e.g., "1-C, 2-D, 3-B...") and I'll score you and explain each answer in detail!

1-c,2-d,3-a,4-d,5-c,6-c,7-b,8-b,

πŸ“Š Mock Test Results: Fluid & Electrolyte Balance


Your Score: 6 / 8 (75%) βœ…


Detailed Answer Review:


Q1. Percentage of water in a young adult body?
  • Your answer: C) 60% βœ… CORRECT
  • Young adults = 60% body weight is water. Simple benchmark to remember.

Q2. Why are older adults at higher risk for dehydration?
  • Your answer: D) Their compensatory mechanisms work less efficiently βœ… CORRECT
  • Aging impairs thirst sensation, kidney concentrating ability, and hormonal regulation (ADH response) - all reduce the body's ability to compensate for fluid loss.

Q3. Most abundant cation in extracellular fluid?
  • Your answer: A) Potassium ❌ INCORRECT
  • Correct answer: B) Sodium (Na⁺)
  • Remember: Na⁺ is the king of ECF - 98% of body sodium stays outside cells. Potassium is the major cation of intracellular fluid (ICF). This is a very common exam trap!
  • πŸ“Œ Trick to remember: "Na⁺ = Outside, K⁺ = Inside"

Q4. Patient with serum Na⁺ = 128 mEq/L (Hyponatremia) - expected finding?
  • Your answer: D) Hypertension ❌ INCORRECT
  • Correct answer: B) Lethargy and confusion
  • Na⁺ < 135 = Hyponatremia β†’ water shifts INTO cells β†’ cerebral edema β†’ neurological symptoms (confusion, lethargy, seizures, coma).
  • Intense thirst and dry membranes = Hypernatremia signs. Hypertension = seen in hypervolemia/Cushing's - not hyponatremia.
  • πŸ“Œ Trick: Low Na⁺ = brain swells = neuro symptoms (confused, lethargic, seizures)

Q5. Antidote for severe hypermagnesemia?
  • Your answer: C) IV Calcium Gluconate βœ… CORRECT
  • Calcium directly antagonizes the cardiac and neuromuscular effects of excess magnesium. Same antidote is used in magnesium toxicity during eclampsia management.

Q6. Assessment finding in hypervolemia (fluid excess)?
  • Your answer: C) Crackles on auscultation βœ… CORRECT
  • Excess fluid leaks into the lungs (pulmonary edema) β†’ crackles on auscultation. Weak pulse, low BP, and poor skin turgor are all hypovolemia signs.

Q7. Routes of insensible fluid loss?
  • Your answer: B) Skin and lungs βœ… CORRECT
  • Insensible = losses you cannot directly measure. Sweat (skin) ~600-800 mL/day and respiration (lungs) ~400-600 mL/day. Urine = sensible (measurable) loss.

Q8. Normal serum osmolality?
  • Your answer: B) 275 - 295 mOsm/kg βœ… CORRECT
  • This is a fixed value to memorize. Values >295 indicate hypertonic state (dehydration); <275 indicate hypotonic state (overhydration).

πŸ“ˆ Performance Summary

#TopicResult
Q1Body fluid % - young adultβœ…
Q2Older adult dehydration riskβœ…
Q3Major ECF cation❌
Q4Hyponatremia signs❌
Q5Hypermagnesemia antidoteβœ…
Q6Hypervolemia signβœ…
Q7Insensible fluid lossβœ…
Q8Normal serum osmolalityβœ…

🎯 Key Takeaways for Weak Areas:

  1. ECF vs ICF ions - Na⁺ dominates ECF, K⁺ dominates ICF. This distinction appears in almost every nursing exam.
  2. Hyponatremia vs Hypernatremia signs - Low Na⁺ = neuro symptoms (brain swells). High Na⁺ = thirst + dry membranes (brain shrinks).
Great attempt! Would you like another round of MCQs or a deeper review of any topic?

Make a PDF quick reference card for this topic

Reading File
Running Command

python3 << 'EOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.units import mm from reportlab.platypus import (SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, HRFlowable) from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT from reportlab.platypus import KeepTogether import os os.makedirs('/home/daytona/workspace/fluid-electrolyte-card', exist_ok=True) output_path = '/home/daytona/workspace/fluid-electrolyte-card/Fluid_Electrolyte_Quick_Reference.pdf' # ── Colour palette ────────────────────────────────────────────────── NAVY = colors.HexColor('#1A3557') TEAL = colors.HexColor('#1B7F8E') ORANGE = colors.HexColor('#E87722') LIGHT_BG = colors.HexColor('#EEF4F8') YELLOW_BG = colors.HexColor('#FFF8E7') RED_LIGHT = colors.HexColor('#FDE8E8') GREEN_BG = colors.HexColor('#E8F5E9') GRAY = colors.HexColor('#555555') WHITE = colors.white MID_GRAY = colors.HexColor('#DDDDDD') doc = SimpleDocTemplate( output_path, pagesize=A4, leftMargin=12*mm, rightMargin=12*mm, topMargin=10*mm, bottomMargin=10*mm ) styles = getSampleStyleSheet() def S(name, **kw): return ParagraphStyle(name, **kw) title_style = S('Title', fontSize=17, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER, spaceAfter=2) subtitle_style = S('Sub', fontSize=9, textColor=colors.HexColor('#CCE0FF'), fontName='Helvetica', alignment=TA_CENTER, spaceAfter=4) section_style = S('Sec', fontSize=9, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER) body_style = S('Body', fontSize=7.8, textColor=colors.HexColor('#222222'), fontName='Helvetica', leading=11) bold_style = S('Bold', fontSize=7.8, textColor=NAVY, fontName='Helvetica-Bold', leading=11) small_style = S('Small', fontSize=7, textColor=GRAY, fontName='Helvetica', leading=10) bullet_style = S('Bullet', fontSize=7.5, textColor=colors.HexColor('#222222'), fontName='Helvetica', leading=11, leftIndent=8, firstLineIndent=-8) red_bold = S('RedBold', fontSize=7.8, textColor=colors.HexColor('#C0392B'), fontName='Helvetica-Bold', leading=11) green_bold = S('GreenBold', fontSize=7.8, textColor=colors.HexColor('#1B6B3A'), fontName='Helvetica-Bold', leading=11) def section_header(text, bg=TEAL): data = [[Paragraph(text, section_style)]] t = Table(data, colWidths=[186*mm]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), bg), ('TOPPADDING', (0,0), (-1,-1), 4), ('BOTTOMPADDING', (0,0), (-1,-1), 4), ('LEFTPADDING', (0,0), (-1,-1), 6), ('RIGHTPADDING', (0,0), (-1,-1), 6), ('ROUNDEDCORNERS', [4]), ])) return t def mini_header(text, bg=NAVY, width=186*mm): data = [[Paragraph(text, S('mh', fontSize=7.5, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER))]] t = Table(data, colWidths=[width]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), bg), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ('LEFTPADDING', (0,0), (-1,-1), 4), ])) return t story = [] # ══════════════════════════════════════════════════════════ # TITLE BANNER # ══════════════════════════════════════════════════════════ title_data = [[ Paragraph('Fluid & Electrolyte Balance', title_style), Paragraph('Quick Reference Card', title_style), ]] title_table = Table(title_data, colWidths=[110*mm, 76*mm]) title_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), NAVY), ('TOPPADDING', (0,0), (-1,-1), 8), ('BOTTOMPADDING', (0,0), (-1,-1), 8), ('LEFTPADDING', (0,0), (-1,-1), 8), ('RIGHTPADDING', (0,0), (-1,-1), 8), ('SPAN', (0,0), (0,0)), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ])) story.append(title_table) sub_data = [[Paragraph('Fundamentals of Nursing | RRB / SGPGI / Nursing Officer Exams | June 2026', subtitle_style)]] sub_table = Table(sub_data, colWidths=[186*mm]) sub_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), TEAL), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ])) story.append(sub_table) story.append(Spacer(1, 4*mm)) # ══════════════════════════════════════════════════════════ # ROW 1 : TBW | Compartments # ══════════════════════════════════════════════════════════ # --- TBW table --- tbw_head = Table([[Paragraph('TOTAL BODY WATER (TBW)', S('h', fontSize=7.5, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER))]], colWidths=[89*mm]) tbw_head.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),TEAL), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3)])) tbw_rows = [ [Paragraph('<b>Age Group</b>', bold_style), Paragraph('<b>% Body Wt</b>', bold_style), Paragraph('<b>Risk</b>', bold_style)], [Paragraph('Infant (<1 yr)', body_style), Paragraph('80%', red_bold), Paragraph('HIGHEST', red_bold)], [Paragraph('Young Adult', body_style), Paragraph('60%', body_style), Paragraph('Baseline', body_style)], [Paragraph('Older Adult', body_style), Paragraph('55%', body_style), Paragraph('Higher', body_style)], ] tbw_table = Table(tbw_rows, colWidths=[38*mm, 26*mm, 25*mm]) tbw_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), LIGHT_BG), ('BACKGROUND', (0,1), (-1,1), RED_LIGHT), ('ROWBACKGROUNDS', (0,2), (-1,-1), [WHITE, LIGHT_BG]), ('GRID', (0,0), (-1,-1), 0.4, MID_GRAY), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ('LEFTPADDING', (0,0), (-1,-1), 5), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 7.5), ])) tip1 = Table([[Paragraph('πŸ“Œ 60 kg adult β‰ˆ 40 L total body fluid', small_style)]], colWidths=[89*mm]) tip1.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),YELLOW_BG), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),5), ('BOX',(0,0),(-1,-1),0.5,ORANGE)])) # --- Compartments --- comp_head = Table([[Paragraph('FLUID COMPARTMENTS', S('h', fontSize=7.5, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER))]], colWidths=[93*mm]) comp_head.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),TEAL), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3)])) comp_rows = [ [Paragraph('<b>Compartment</b>', bold_style), Paragraph('<b>% TBF</b>', bold_style), Paragraph('<b>Cation</b>', bold_style), Paragraph('<b>Anion</b>', bold_style)], [Paragraph('ICF (inside cells)', body_style), Paragraph('70%', body_style), Paragraph('K⁺', red_bold), Paragraph('Phosphate', body_style)], [Paragraph('ECF (outside cells)', body_style), Paragraph('30%', body_style), Paragraph('Na⁺', green_bold), Paragraph('Cl⁻', body_style)], ] comp_table = Table(comp_rows, colWidths=[38*mm, 15*mm, 22*mm, 18*mm]) comp_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), LIGHT_BG), ('ROWBACKGROUNDS', (0,1), (-1,-1), [RED_LIGHT, GREEN_BG]), ('GRID', (0,0), (-1,-1), 0.4, MID_GRAY), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ('LEFTPADDING', (0,0), (-1,-1), 5), ('FONTSIZE', (0,0), (-1,-1), 7.5), ])) tip2 = Table([[Paragraph('πŸ“Œ Na⁺ = Outside (ECF) | K⁺ = Inside (ICF) β€” 98% each', small_style)]], colWidths=[93*mm]) tip2.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),YELLOW_BG), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),5), ('BOX',(0,0),(-1,-1),0.5,ORANGE)])) row1 = Table([[[tbw_head, tbw_table, tip1], [comp_head, comp_table, tip2]]], colWidths=[93*mm, 97*mm]) row1.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LEFTPADDING', (0,0), (-1,-1), 0), ('RIGHTPADDING', (0,0), (-1,-1), 4), ('TOPPADDING', (0,0), (-1,-1), 0), ('BOTTOMPADDING', (0,0), (-1,-1), 0), ])) story.append(row1) story.append(Spacer(1, 3*mm)) # ══════════════════════════════════════════════════════════ # ROW 2: Transport Mechanisms | Fluid Balance # ══════════════════════════════════════════════════════════ trans_head = Table([[Paragraph('TRANSPORT MECHANISMS', S('h', fontSize=7.5, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER))]], colWidths=[89*mm]) trans_head.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),NAVY), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3)])) trans_rows = [ [Paragraph('<b>Process</b>', bold_style), Paragraph('<b>Movement</b>', bold_style), Paragraph('<b>ATP?</b>', bold_style)], [Paragraph('Diffusion', body_style), Paragraph('Solute: High β†’ Low', body_style), Paragraph('No', body_style)], [Paragraph('Osmosis', body_style), Paragraph('Water: Low solute β†’ High solute', body_style), Paragraph('No', body_style)], [Paragraph('Filtration', body_style), Paragraph('Fluid: High press β†’ Low press', body_style), Paragraph('No', body_style)], [Paragraph('Active Transport', body_style), Paragraph('Solute: Low β†’ High', body_style), Paragraph('<b>YES</b>', red_bold)], ] trans_table = Table(trans_rows, colWidths=[32*mm, 42*mm, 15*mm]) trans_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), LIGHT_BG), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_BG, WHITE, LIGHT_BG]), ('GRID', (0,0), (-1,-1), 0.4, MID_GRAY), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ('LEFTPADDING', (0,0), (-1,-1), 5), ('FONTSIZE', (0,0), (-1,-1), 7.5), ])) osm_tip = Table([[Paragraph('πŸ“Œ Normal Serum Osmolality: <b>275 – 295 mOsm/kg</b>', small_style)]], colWidths=[89*mm]) osm_tip.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),YELLOW_BG), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),5), ('BOX',(0,0),(-1,-1),0.5,ORANGE)])) # Fluid I/O fio_head = Table([[Paragraph('FLUID INTAKE & OUTPUT', S('h', fontSize=7.5, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER))]], colWidths=[93*mm]) fio_head.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),NAVY), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3)])) fio_rows = [ [Paragraph('<b>Route</b>', bold_style), Paragraph('<b>Volume</b>', bold_style), Paragraph('<b>Type</b>', bold_style)], [Paragraph('Kidney (Urine)', body_style), Paragraph('Major portion', body_style), Paragraph('Sensible', green_bold)], [Paragraph('Skin (Sweat)', body_style), Paragraph('600–800 mL/day', body_style), Paragraph('Insensible', red_bold)], [Paragraph('Lungs (Resp.)', body_style), Paragraph('400–600 mL/day', body_style), Paragraph('Insensible', red_bold)], ] fio_table = Table(fio_rows, colWidths=[35*mm, 34*mm, 24*mm]) fio_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), LIGHT_BG), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_BG, WHITE]), ('GRID', (0,0), (-1,-1), 0.4, MID_GRAY), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ('LEFTPADDING', (0,0), (-1,-1), 5), ('FONTSIZE', (0,0), (-1,-1), 7.5), ])) daily_tip = Table([[Paragraph('πŸ“Œ Daily intake: 2300–2800 mL | Insensible = skin + lungs', small_style)]], colWidths=[93*mm]) daily_tip.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),YELLOW_BG), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),5), ('BOX',(0,0),(-1,-1),0.5,ORANGE)])) row2 = Table([[[trans_head, trans_table, osm_tip], [fio_head, fio_table, daily_tip]]], colWidths=[93*mm, 97*mm]) row2.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LEFTPADDING', (0,0), (-1,-1), 0), ('RIGHTPADDING', (0,0), (-1,-1), 4), ('TOPPADDING', (0,0), (-1,-1), 0), ('BOTTOMPADDING', (0,0), (-1,-1), 0), ])) story.append(row2) story.append(Spacer(1, 3*mm)) # ══════════════════════════════════════════════════════════ # ROW 3: Hypovolemia vs Hypervolemia # ══════════════════════════════════════════════════════════ story.append(section_header('FLUID VOLUME IMBALANCES', ORANGE)) story.append(Spacer(1, 1.5*mm)) imb_rows = [ [Paragraph('<b>System</b>', bold_style), Paragraph('<b>Hypovolemia (Deficit)</b>', S('hv', fontSize=7.8, textColor=colors.HexColor('#C0392B'), fontName='Helvetica-Bold')), Paragraph('<b>Hypervolemia (Excess)</b>', S('hve', fontSize=7.8, textColor=colors.HexColor('#1B6B3A'), fontName='Helvetica-Bold'))], [Paragraph('Cardiovascular', body_style), Paragraph('↑ Pulse (thready), ↓ BP, ↓ CVP', body_style), Paragraph('Bounding pulse, ↑ BP, ↑ CVP, distended veins', body_style)], [Paragraph('Respiratory', body_style), Paragraph('Tachypnea, dyspnea', body_style), Paragraph('↑ Rate + Crackles on auscultation', body_style)], [Paragraph('Renal', body_style), Paragraph('↓ Urine output (oliguria)', body_style), Paragraph('↑ Urine output (polyuria)', body_style)], [Paragraph('Skin / Integument', body_style), Paragraph('Dry skin, poor turgor (tenting), dry mouth', body_style), Paragraph('Pitting edema, pale & cool skin', body_style)], [Paragraph('Neuro', body_style), Paragraph('Confusion, dizziness', body_style), Paragraph('Confusion, headache', body_style)], [Paragraph('Lab Values', body_style), Paragraph('↑ Osmolality (>295), ↑ Hct, ↑ BUN, ↑ Na⁺, ↑ Urine SG (>1.030)', body_style), Paragraph('↓ Hct (dilution), ↓ BUN, ↓ Na⁺, ↓ Urine SG', body_style)], ] imb_table = Table(imb_rows, colWidths=[28*mm, 79*mm, 79*mm]) imb_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), LIGHT_BG), ('BACKGROUND', (1,1), (1,-1), colors.HexColor('#FEF5F5')), ('BACKGROUND', (2,1), (2,-1), colors.HexColor('#F0FBF4')), ('ROWBACKGROUNDS', (0,1), (0,-1), [WHITE, LIGHT_BG, WHITE, LIGHT_BG, WHITE, LIGHT_BG]), ('GRID', (0,0), (-1,-1), 0.4, MID_GRAY), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ('LEFTPADDING', (0,0), (-1,-1), 5), ('FONTSIZE', (0,0), (-1,-1), 7.5), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ])) story.append(imb_table) story.append(Spacer(1, 3*mm)) # ══════════════════════════════════════════════════════════ # ROW 4: Electrolyte Imbalances (Na + Mg) side by side # ══════════════════════════════════════════════════════════ story.append(section_header('ELECTROLYTE IMBALANCES', NAVY)) story.append(Spacer(1, 1.5*mm)) def electrolyte_block(title, normal, low_name, low_val, low_causes, low_sx, low_mgmt, high_name, high_val, high_causes, high_sx, high_mgmt, width): hdr_s = S('es', fontSize=7.5, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER) cell_s = S('ec', fontSize=7, textColor=colors.HexColor('#222222'), fontName='Helvetica', leading=10) bold_cell = S('eb', fontSize=7, textColor=NAVY, fontName='Helvetica-Bold', leading=10) col = width / 3 rows = [ [Paragraph(f'<b>{title}</b> Normal: {normal}', bold_cell), '', ''], [Paragraph('<b>Parameter</b>', bold_cell), Paragraph(f'<b>{low_name}</b><br/>{low_val}', S('rh', fontSize=7, textColor=colors.HexColor('#C0392B'), fontName='Helvetica-Bold', leading=10)), Paragraph(f'<b>{high_name}</b><br/>{high_val}', S('gh', fontSize=7, textColor=colors.HexColor('#1B6B3A'), fontName='Helvetica-Bold', leading=10))], [Paragraph('Causes', bold_cell), Paragraph(low_causes, cell_s), Paragraph(high_causes, cell_s)], [Paragraph('Signs/Sx', bold_cell), Paragraph(low_sx, cell_s), Paragraph(high_sx, cell_s)], [Paragraph('Management', bold_cell), Paragraph(low_mgmt, cell_s), Paragraph(high_mgmt, cell_s)], ] col_w = [col*0.65, col*1.175, col*1.175] t = Table(rows, colWidths=col_w) t.setStyle(TableStyle([ ('SPAN', (0,0), (2,0)), ('BACKGROUND', (0,0), (-1,0), TEAL), ('BACKGROUND', (0,1), (-1,1), LIGHT_BG), ('BACKGROUND', (1,2), (1,-1), colors.HexColor('#FEF5F5')), ('BACKGROUND', (2,2), (2,-1), colors.HexColor('#F0FBF4')), ('GRID', (0,0), (-1,-1), 0.4, MID_GRAY), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ('LEFTPADDING', (0,0), (-1,-1), 4), ('VALIGN', (0,0), (-1,-1), 'TOP'), ('FONTSIZE', (0,0), (-1,-1), 7), ])) return t na_block = electrolyte_block( 'SODIUM (Na⁺) β€” Major ECF Cation', '135–145 mEq/L', 'Hyponatremia', '< 135 mEq/L', 'Vomiting, diarrhea, diuretics, SIADH, Addison\'s disease, excess hypotonic IVF', 'Confusion, lethargy, seizures, coma (cerebral edema); Nausea, vomiting', 'IV: 0.9% NS or 3% NS (slowly); Oral: increase salt', 'Hypernatremia', '> 145 mEq/L', 'Excess intake, DI (Diabetes Insipidus), fever, Cushing\'s syndrome, hyperventilation', 'Restlessness, irritability, seizures; Intense thirst, dry mucous membranes', 'IV: 0.45% NS (hypotonic); Oral: encourage free water', 90*mm ) mg_block = electrolyte_block( 'MAGNESIUM (Mg²⁺) β€” Neuromuscular & Cardiac', '1.7–2.4 mg/dL', 'Hypomagnesemia', '< 1.7 mg/dL', 'Malnutrition, vomiting, diarrhea, diuretics, hyperglycemia, celiac disease', 'Tachycardia, HTN; Seizures, paresthesia, twitching; +Trousseau\'s & Chvostek\'s; Tall T waves', 'Replace Mg²⁺ orally or IV', 'Hypermagnesemia', '> 2.4 mg/dL', 'Kidney failure, excess Mg²⁺ antacids or laxatives', 'Bradycardia, hypotension; Muscle weakness, absent DTRs; Wide QRS, prolonged PR', 'Antidote: IV Calcium Gluconate; Diuretics', 96*mm ) elec_row = Table([[[na_block], [mg_block]]], colWidths=[93*mm, 97*mm]) elec_row.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LEFTPADDING', (0,0), (-1,-1), 0), ('RIGHTPADDING', (0,0), (-1,-1), 3), ('TOPPADDING', (0,0), (-1,-1), 0), ('BOTTOMPADDING',(0,0), (-1,-1), 0), ])) story.append(elec_row) story.append(Spacer(1, 3*mm)) # ══════════════════════════════════════════════════════════ # EXAM MEMORY TRICKS BOX # ══════════════════════════════════════════════════════════ trick_title = Table([[Paragraph('⚑ HIGH-YIELD EXAM MEMORY TRICKS', S('tt', fontSize=8, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER))]], colWidths=[186*mm]) trick_title.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),ORANGE), ('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)])) story.append(trick_title) tricks = [ ('Na⁺ vs K⁺ location', 'Na⁺ = Outside (ECF) | K⁺ = Inside (ICF) β€” 98% rule'), ('Hypo vs Hyper Na', 'Low Na⁺ β†’ brain SWELLS β†’ neuro symptoms (confusion, seizures) | High Na⁺ β†’ brain SHRINKS β†’ thirst, dry membranes'), ('Mg antidote', 'Hypermagnesemia antidote = IV Calcium Gluconate (blocks cardiac/neuro effects)'), ('Insensible loss', 'Skin + Lungs = Insensible | Urine = Sensible (measurable)'), ('Hypervolemia sign', 'Fluid excess β†’ fluid in lungs β†’ CRACKLES on auscultation'), ('Dehydration risk', 'Infants (80% water, immature kidneys) > Older adults (55%, poor compensation) > Young adults (60%)'), ('Hyponatremia link', 'SIADH & Addison\'s β†’ Hyponatremia | Cushing\'s & Diabetes Insipidus β†’ Hypernatremia'), ] trick_rows = [[Paragraph(f'<b>{k}</b>', S('tk', fontSize=7.5, textColor=NAVY, fontName='Helvetica-Bold', leading=11)), Paragraph(v, S('tv', fontSize=7.5, textColor=colors.HexColor('#222222'), fontName='Helvetica', leading=11))] for k, v in tricks] trick_table = Table(trick_rows, colWidths=[40*mm, 146*mm]) trick_table.setStyle(TableStyle([ ('ROWBACKGROUNDS', (0,0), (-1,-1), [YELLOW_BG, WHITE]), ('GRID', (0,0), (-1,-1), 0.3, MID_GRAY), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ('LEFTPADDING', (0,0), (-1,-1), 6), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ])) story.append(trick_table) # Footer story.append(Spacer(1, 3*mm)) footer = Table([[Paragraph('Fluid & Electrolyte Balance Quick Reference Card | Fundamentals of Nursing | For RRB / SGPGI / Nursing Officer Exams | Β© 2026', S('ft', fontSize=6.5, textColor=WHITE, fontName='Helvetica', alignment=TA_CENTER))]], colWidths=[186*mm]) footer.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),NAVY), ('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)])) story.append(footer) doc.build(story) print(f'PDF created: {output_path}') EOF

Your quick reference card is ready! πŸŽ‰

Fluid Electrolyte Quick Reference

PDF Document Β· PDF


Here's what's packed into the single-page A4 card:
SectionContent
Total Body WaterAge-group table (Infant/Adult/Older) with risk levels
Fluid CompartmentsICF vs ECF - %, major cations & anions
Transport MechanismsDiffusion, Osmosis, Filtration, Active Transport + ATP requirement
Fluid Intake & OutputDaily volumes, sensible vs insensible routes
Fluid Volume ImbalancesSide-by-side Hypovolemia vs Hypervolemia across 6 systems + labs
Sodium ImbalancesHypo/Hypernatremia - causes, signs, management
Magnesium ImbalancesHypo/Hypermagnesemia - causes, signs, antidote
Memory Tricks7 high-yield exam mnemonics (including your two missed questions!)
Color-coded: red for deficit/low states, green for excess/high states, orange for exam tips.
This is a shared conversation. Sign in to Orris to start your own chat.