Take MCQ mock test
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() "
1-c,2-d,3-a,4-d,5-c,6-c,7-b,8-b,
| # | Topic | Result |
|---|---|---|
| Q1 | Body fluid % - young adult | β |
| Q2 | Older adult dehydration risk | β |
| Q3 | Major ECF cation | β |
| Q4 | Hyponatremia signs | β |
| Q5 | Hypermagnesemia antidote | β |
| Q6 | Hypervolemia sign | β |
| Q7 | Insensible fluid loss | β |
| Q8 | Normal serum osmolality | β |
Make a PDF quick reference card for this topic
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
Fluid Electrolyte Quick Reference
PDF Document Β· PDF
| Section | Content |
|---|---|
| Total Body Water | Age-group table (Infant/Adult/Older) with risk levels |
| Fluid Compartments | ICF vs ECF - %, major cations & anions |
| Transport Mechanisms | Diffusion, Osmosis, Filtration, Active Transport + ATP requirement |
| Fluid Intake & Output | Daily volumes, sensible vs insensible routes |
| Fluid Volume Imbalances | Side-by-side Hypovolemia vs Hypervolemia across 6 systems + labs |
| Sodium Imbalances | Hypo/Hypernatremia - causes, signs, management |
| Magnesium Imbalances | Hypo/Hypermagnesemia - causes, signs, antidote |
| Memory Tricks | 7 high-yield exam mnemonics (including your two missed questions!) |