Tell me PHYSIOLOGY OSPE first semester DPT UHS . OSPE from Blood complete chapter . Tell me important topics for this ospe , viva and important paracticles.
Physiology OSPE first semester DPT UHS blood chapter important topics viva practicals
| Feature | Normal Value |
|---|---|
| RBC count (men) | 5.2 million/mm³ (±300,000) |
| RBC count (women) | 4.7 million/mm³ (±300,000) |
| Shape | Biconcave disc |
| Diameter | ~7.8 µm |
| Thickness | 2.5 µm at edges; ~1 µm at center |
| Volume | 90–95 cubic µm |
| Parameter | Men | Women |
|---|---|---|
| Hb concentration | 15 g/100 mL | 14 g/100 mL |
| Max Hb per cell | 34 g/100 mL cells | — |
| O₂ carrying capacity | ~20 mL O₂/100 mL blood | ~19 mL O₂/100 mL blood |
| O₂ per gram Hb | 1.34 mL O₂/g Hb | — |
| Value | Range |
|---|---|
| Men | 40–45% |
| Women | 36–42% |
Proerythroblast → Basophilic erythroblast → Polychromatophilic erythroblast → Orthochromatic erythroblast → Reticulocyte → Mature RBC
| Blood Type | Antigen on RBC | Antibody in Plasma | Can Donate To | Can Receive From |
|---|---|---|---|---|
| A | A | Anti-B | A, AB | A, O |
| B | B | Anti-A | B, AB | B, O |
| AB | A & B | None | AB only | All (Universal Recipient) |
| O | None | Anti-A & Anti-B | All (Universal Donor) | O only |
| RBC Type | Anti-A | Anti-B |
|---|---|---|
| O | − | − |
| A | + | − |
| B | − | + |
| AB | + | + |
| Cell | % | Function |
|---|---|---|
| Neutrophils | 60–70% | Phagocytosis (first responders in bacterial infection) |
| Eosinophils | 2–4% | Allergy, parasitic infections |
| Basophils | 0.5–1% | Allergy (histamine, heparin release) |
| Monocytes | 3–8% | Phagocytosis (tissue macrophages) |
| Lymphocytes | 20–30% | Immunity (B cells → antibodies; T cells → cell-mediated) |
| Test | Pathway Tested | Normal Value |
|---|---|---|
| PT (Prothrombin Time) | Extrinsic + Common | 11–15 seconds |
| aPTT | Intrinsic + Common | 25–35 seconds |
| Bleeding time | Platelet plug | 1–6 minutes |
| Clotting time | Intrinsic pathway | 2–8 minutes (Lee-White method) |
| Practical | What to Know |
|---|---|
| Blood film preparation | Procedure: thin smear, stain with Leishman's/Giemsa stain |
| Differential leukocyte count (DLC) | Count 100 WBCs, identify each type under oil immersion |
| Hemoglobin estimation | Sahli's hemoglobinometer (acid hematin method): compare color with standard |
| Hematocrit (PCV) | Microhematocrit centrifuge, read packed cells %, calculate |
| Blood typing (ABO & Rh) | Tile/slide method with antisera, observe agglutination |
| ESR measurement | Westergren method: blood in anticoagulant tube, read after 1 hour |
| Bleeding time | Duke's method (ear lobe/finger): normal 1–6 min |
| Clotting time | Capillary tube method / Lee-White method: normal 2–8 min |
| Total RBC count | Haemocytometer (Neubauer chamber), dilute 1:200 with Hayem's fluid |
| Total WBC count | Haemocytometer, dilute 1:20 with Turk's fluid (glacial acetic acid + gentian violet) |
| Priority | Topic |
|---|---|
| ★★★ | ABO & Rh blood typing (theory + practical) |
| ★★★ | Hemoglobin estimation (Sahli's method) |
| ★★★ | DLC — differential count on blood film |
| ★★★ | Hematocrit / PCV |
| ★★★ | Erythroblastosis fetalis |
| ★★ | Erythropoiesis stages and regulation (EPO) |
| ★★ | Coagulation cascade (PT, aPTT, bleeding time) |
| ★★ | ESR — Westergren method, clinical significance |
| ★★ | WBC count and functions |
| ★ | Plasma proteins |
| ★ | Platelet physiology |
Reference: Guyton and Hall Textbook of Medical Physiology (14th Ed.), Chapters 33–36 — covering RBCs, WBCs, resistance/immunity, blood types, and hemostasis. These chapters are the standard for DPT 1st semester UHS curriculum.
Create a study guide PDF with blood physiology tables and procedures
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace not found"
mkdir -p /home/daytona/workspace/blood-physiology-guide && echo "created"
~/blood-physiology-guide/generate_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 mm, cm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
PageBreak, HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import BaseDocTemplate, PageTemplate, Frame
# ── Colour palette ──────────────────────────────────────────────
DARK_BLUE = colors.HexColor("#1a3a5c")
MID_BLUE = colors.HexColor("#2e6da4")
LIGHT_BLUE = colors.HexColor("#d6e8f7")
ACCENT = colors.HexColor("#e8a020")
RED = colors.HexColor("#c0392b")
GREEN = colors.HexColor("#1e8449")
LIGHT_GREY = colors.HexColor("#f4f6f8")
MID_GREY = colors.HexColor("#bdc3c7")
WHITE = colors.white
BLACK = colors.black
OUT = "/home/daytona/workspace/blood-physiology-guide/Blood_Physiology_DPT_Study_Guide.pdf"
doc = SimpleDocTemplate(
OUT, pagesize=A4,
rightMargin=1.8*cm, leftMargin=1.8*cm,
topMargin=2*cm, bottomMargin=2*cm
)
styles = getSampleStyleSheet()
# Custom styles
def S(name, **kw):
return ParagraphStyle(name, **kw)
cover_title = S("CoverTitle", fontName="Helvetica-Bold", fontSize=28, textColor=WHITE, alignment=TA_CENTER, leading=36)
cover_sub = S("CoverSub", fontName="Helvetica", fontSize=14, textColor=LIGHT_BLUE, alignment=TA_CENTER, leading=20)
cover_info = S("CoverInfo", fontName="Helvetica", fontSize=11, textColor=LIGHT_BLUE, alignment=TA_CENTER)
sec_head = S("SecHead", fontName="Helvetica-Bold", fontSize=14, textColor=WHITE, alignment=TA_LEFT,
backColor=DARK_BLUE, borderPad=6, leading=18, spaceAfter=6, spaceBefore=14)
sub_head = S("SubHead", fontName="Helvetica-Bold", fontSize=11, textColor=DARK_BLUE, alignment=TA_LEFT,
spaceBefore=8, spaceAfter=4, leading=14)
body = S("Body", fontName="Helvetica", fontSize=9.5, alignment=TA_JUSTIFY, leading=14, spaceAfter=3)
bullet_style = S("Bullet", fontName="Helvetica", fontSize=9.5, alignment=TA_LEFT, leading=13,
leftIndent=14, firstLineIndent=-10, spaceAfter=2)
note_style = S("Note", fontName="Helvetica-Oblique", fontSize=9, textColor=MID_BLUE, leading=13, spaceAfter=4)
bold_body = S("BoldBody", fontName="Helvetica-Bold", fontSize=9.5, leading=14)
toc_style = S("TOCStyle", fontName="Helvetica", fontSize=10, leading=16, leftIndent=8)
def bullet(text, color=DARK_BLUE):
return Paragraph(f"<font color='#{color.hexval()[2:]}'>•</font> {text}", bullet_style)
def heading(text):
return Paragraph(f" {text}", sec_head)
def subhead(text):
return Paragraph(text, sub_head)
def para(text):
return Paragraph(text, body)
def note(text):
return Paragraph(f"<i>{text}</i>", note_style)
def spacer(h=6):
return Spacer(1, h)
# ── Table helpers ────────────────────────────────────────────────
HDR_STYLE = [
('BACKGROUND', (0,0), (-1,0), DARK_BLUE),
('TEXTCOLOR', (0,0), (-1,0), WHITE),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,0), 9),
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('ROWBACKGROUNDS',(0,1),(-1,-1), [WHITE, LIGHT_GREY]),
('FONTNAME', (0,1), (-1,-1), 'Helvetica'),
('FONTSIZE', (0,1), (-1,-1), 8.5),
('GRID', (0,0), (-1,-1), 0.5, MID_GREY),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING',(0,0), (-1,-1), 5),
('LEFTPADDING', (0,0), (-1,-1), 6),
('RIGHTPADDING', (0,0), (-1,-1), 6),
]
def make_table(data, col_widths=None):
t = Table(data, colWidths=col_widths, repeatRows=1)
t.setStyle(TableStyle(HDR_STYLE))
return t
def accent_box(text):
"""Yellow highlighted info box."""
t = Table([[Paragraph(text, S("BoxText", fontName="Helvetica", fontSize=9, leading=13))]],
colWidths=[doc.width])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), colors.HexColor("#fef9e7")),
('BOX', (0,0), (-1,-1), 1.5, ACCENT),
('LEFTPADDING',(0,0),(-1,-1), 10),
('RIGHTPADDING',(0,0),(-1,-1),10),
('TOPPADDING', (0,0),(-1,-1), 8),
('BOTTOMPADDING',(0,0),(-1,-1),8),
]))
return t
# ════════════════════════════════════════════════════════════════
story = []
W = doc.width
# ══════════════════════════════════════════════════════
# COVER PAGE
# ══════════════════════════════════════════════════════
cover_bg = Table(
[[Paragraph("BLOOD PHYSIOLOGY", cover_title)],
[Paragraph("OSPE Study Guide", cover_sub)],
[spacer(10)],
[Paragraph("1st Semester DPT | University of Health Sciences (UHS)", cover_info)],
[spacer(6)],
[Paragraph("Reference: Guyton & Hall Textbook of Medical Physiology, 14th Ed.", cover_info)],
],
colWidths=[W+1.8*cm+1.8*cm]
)
cover_bg.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), DARK_BLUE),
('TOPPADDING', (0,0),(-1,-1), 14),
('BOTTOMPADDING',(0,0),(-1,-1),14),
('LEFTPADDING', (0,0),(-1,-1), 0),
('RIGHTPADDING',(0,0),(-1,-1), 0),
('ALIGN', (0,0),(-1,-1), 'CENTER'),
('VALIGN', (0,0),(-1,-1), 'MIDDLE'),
]))
story.append(Spacer(1, 3.5*cm))
story.append(cover_bg)
story.append(Spacer(1, 1.5*cm))
# decorative lines
story.append(HRFlowable(width="100%", thickness=3, color=ACCENT, spaceAfter=8))
cover_sections = [
("1", "Red Blood Cells & Hemoglobin"),
("2", "Hematocrit & Normal Values"),
("3", "Erythropoiesis"),
("4", "Blood Group Systems (ABO & Rh)"),
("5", "White Blood Cells"),
("6", "Platelets & Hemostasis"),
("7", "Practical Procedures"),
("8", "Viva Questions Bank"),
]
toc_data = [["Sec", "Topic"]] + cover_sections
toc_t = Table(toc_data, colWidths=[1.5*cm, W-1.5*cm])
toc_t.setStyle(TableStyle([
('BACKGROUND', (0,0),(-1,0), MID_BLUE),
('TEXTCOLOR', (0,0),(-1,0), WHITE),
('FONTNAME', (0,0),(-1,0), 'Helvetica-Bold'),
('FONTSIZE', (0,0),(-1,0), 9.5),
('FONTNAME', (0,1),(-1,-1), 'Helvetica'),
('FONTSIZE', (0,1),(-1,-1), 9.5),
('ROWBACKGROUNDS',(0,1),(-1,-1),[WHITE, LIGHT_GREY]),
('ALIGN', (0,0),(-1,-1),'LEFT'),
('VALIGN', (0,0),(-1,-1),'MIDDLE'),
('GRID', (0,0),(-1,-1),0.4,MID_GREY),
('TOPPADDING', (0,0),(-1,-1),5),
('BOTTOMPADDING',(0,0),(-1,-1),5),
('LEFTPADDING', (0,0),(-1,-1),8),
]))
story.append(toc_t)
story.append(PageBreak())
# ══════════════════════════════════════════════════════
# SECTION 1 — RED BLOOD CELLS & HEMOGLOBIN
# ══════════════════════════════════════════════════════
story.append(heading("1. RED BLOOD CELLS (ERYTHROCYTES) & HEMOGLOBIN"))
story.append(spacer(6))
story.append(subhead("1.1 RBC Morphology & Normal Values"))
rbc_data = [
["Parameter", "Value / Description"],
["Shape", "Biconcave disc — maximises SA:V ratio for gas exchange"],
["Diameter", "~7.8 micrometres"],
["Thickness (edge)", "2.5 micrometres"],
["Thickness (centre)", "~1 micrometre"],
["Volume", "90–95 cubic micrometres"],
["RBC count — Men", "5.2 million / mm3 (±300,000)"],
["RBC count — Women", "4.7 million / mm3 (±300,000)"],
["Life span", "120 days"],
["Destruction site", "Spleen (mainly), liver, bone marrow"],
]
story.append(make_table(rbc_data, col_widths=[6*cm, W-6*cm]))
story.append(spacer(8))
story.append(subhead("1.2 Hemoglobin Values"))
hb_data = [
["Parameter", "Men", "Women"],
["Blood Hb concentration", "15 g/100 mL", "14 g/100 mL"],
["Max Hb per cell", "34 g/100 mL cells", "34 g/100 mL cells"],
["O2 carrying capacity", "~20 mL O2/100 mL blood", "~19 mL O2/100 mL blood"],
["O2 per gram Hb", "1.34 mL O2/g", "1.34 mL O2/g"],
]
story.append(make_table(hb_data, col_widths=[6.5*cm, (W-6.5*cm)/2, (W-6.5*cm)/2]))
story.append(spacer(8))
story.append(subhead("1.3 Types of Hemoglobin"))
hbtype_data = [
["Type", "Chains", "Notes"],
["HbA (Adult)", "alpha2 beta2", "Predominant in adults (>95%)"],
["HbA2", "alpha2 delta2", "Minor adult form (~2.5%)"],
["HbF (Fetal)", "alpha2 gamma2", "Higher O2 affinity; left shift of ODC; replaced by HbA after birth"],
["HbS (Sickle)", "alpha2 betaS2", "Glutamate -> Valine mutation; sickle-cell disease"],
["MetHb", "Fe3+ state", "Cannot carry O2; caused by nitrites, dapsone"],
["COHb", "CO-bound", "CO affinity 250x > O2; cherry-red appearance; CO poisoning"],
]
story.append(make_table(hbtype_data, col_widths=[3.2*cm, 3.6*cm, W-6.8*cm]))
story.append(spacer(8))
story.append(subhead("1.4 Functions of RBCs"))
for f in [
"<b>O2 transport</b> — Hb binds O2 in lungs, releases in tissues",
"<b>CO2 transport</b> — as carbaminoHb (23%) and HCO3- (70%) via carbonic anhydrase",
"<b>Acid-base buffering</b> — Hb is a major blood buffer",
"<b>Carbonic anhydrase</b> — enzyme inside RBCs converts CO2 + H2O to H2CO3 (thousands x faster)",
]:
story.append(bullet(f))
story.append(spacer(4))
story.append(accent_box("Mnemonic for Hb function: <b>O-C-A-C</b> — Oxygen, CO2, Acid-base, Carbonic anhydrase"))
story.append(PageBreak())
# ══════════════════════════════════════════════════════
# SECTION 2 — HEMATOCRIT & NORMAL LAB VALUES
# ══════════════════════════════════════════════════════
story.append(heading("2. HEMATOCRIT (PCV) & NORMAL LABORATORY VALUES"))
story.append(spacer(6))
story.append(subhead("2.1 Hematocrit (Packed Cell Volume)"))
hct_data = [
["Parameter", "Men", "Women"],
["Hematocrit (PCV)", "40–45%", "36–42%"],
["Hemoglobin", "13.5–17.5 g/dL", "12.0–15.5 g/dL"],
["RBC count", "4.5–5.9 million/mm3", "4.1–5.1 million/mm3"],
["MCV (Mean Cell Volume)", "80–100 fL", "80–100 fL"],
["MCH", "27–33 pg", "27–33 pg"],
["MCHC", "32–36 g/dL", "32–36 g/dL"],
]
story.append(make_table(hct_data, col_widths=[6.5*cm, (W-6.5*cm)/2, (W-6.5*cm)/2]))
story.append(spacer(8))
story.append(subhead("2.2 Complete Blood Picture — Reference Ranges"))
cbp_data = [
["Parameter", "Normal Range", "Units"],
["WBC (Total)", "4,000–11,000", "/mm3"],
["Platelets", "150,000–400,000", "/mm3"],
["ESR — Men", "<=15", "mm/hr (Westergren)"],
["ESR — Women", "<=20", "mm/hr (Westergren)"],
["Bleeding time (Duke)", "1–6", "minutes"],
["Clotting time (Lee-White)", "2–8", "minutes"],
["PT (Prothrombin Time)", "11–15", "seconds"],
["aPTT", "25–35", "seconds"],
["Plasma proteins", "6–8", "g/dL"],
]
story.append(make_table(cbp_data, col_widths=[6.5*cm, 3*cm, W-9.5*cm]))
story.append(spacer(6))
story.append(accent_box(
"<b>Clinical Tip:</b> Hematocrit INCREASES in polycythemia vera and dehydration. "
"Hematocrit DECREASES in anemia and overhydration. "
"Hematocrit raises blood viscosity -> raises vascular resistance -> raises cardiac workload."
))
story.append(PageBreak())
# ══════════════════════════════════════════════════════
# SECTION 3 — ERYTHROPOIESIS
# ══════════════════════════════════════════════════════
story.append(heading("3. ERYTHROPOIESIS"))
story.append(spacer(6))
story.append(subhead("3.1 Sites of RBC Production"))
sites_data = [
["Stage", "Site"],
["Early embryo (first weeks)", "Yolk sac"],
["Middle trimester (fetal)", "Liver (main site)"],
["Late fetal / birth onward", "Bone marrow (red marrow)"],
["Adult active marrow sites", "Vertebrae, ribs, sternum, pelvis, proximal femur & humerus"],
]
story.append(make_table(sites_data, col_widths=[6.5*cm, W-6.5*cm]))
story.append(spacer(8))
story.append(subhead("3.2 Maturation Sequence (Erythroid Series)"))
story.append(accent_box(
"Proerythroblast -> Basophilic Erythroblast -> Polychromatophilic Erythroblast "
"-> Orthochromatic Erythroblast -> Reticulocyte -> Mature RBC\n\n"
"<b>Mnemonic:</b> <b>P-B-P-O-R-M</b> (Please Buy Plenty Of Red Meat)"
))
story.append(spacer(8))
story.append(subhead("3.3 Regulation — Erythropoietin (EPO)"))
epo_data = [
["Aspect", "Detail"],
["Source", "Kidney 90%, Liver 10%"],
["Stimulus for release", "Tissue hypoxia (low O2 delivery to kidney)"],
["Target", "Bone marrow erythroid progenitor cells"],
["Effect", "Increases RBC production; shortens maturation time"],
["Clinical use", "Recombinant EPO (epoetin alfa) in anemia of chronic kidney disease"],
["Other stimuli", "Androgens, cobalt, altitude, haemorrhage"],
]
story.append(make_table(epo_data, col_widths=[5.5*cm, W-5.5*cm]))
story.append(spacer(8))
story.append(subhead("3.4 Nutritional Requirements for Erythropoiesis"))
req_data = [
["Nutrient", "Role", "Deficiency causes"],
["Iron (Fe2+)", "Heme synthesis (protoporphyrin + Fe)", "Microcytic hypochromic anemia"],
["Vitamin B12", "DNA synthesis; nuclear maturation", "Megaloblastic (macrocytic) anemia"],
["Folic acid", "Thymidylate synthesis (DNA)", "Megaloblastic anemia (esp. pregnancy)"],
["Vitamin B6", "ALA synthesis (first step of heme)", "Sideroblastic anemia"],
["Vitamin C", "Fe3+ -> Fe2+ reduction; Fe absorption", "Impaired erythropoiesis"],
["Copper", "Ceruloplasmin: Fe mobilisation", "Anemia + leukopenia"],
["Erythropoietin", "Stimulates progenitor proliferation", "Anemia of CKD"],
]
story.append(make_table(req_data, col_widths=[3.5*cm, 6.5*cm, W-10*cm]))
story.append(spacer(6))
story.append(subhead("3.5 RBC Destruction & Hemoglobin Breakdown"))
for b in [
"After <b>120 days</b>, RBCs are removed by macrophages in spleen, liver, bone marrow",
"<b>Globin chains</b> -> amino acids (recycled for protein synthesis)",
"<b>Iron (Fe3+)</b> -> stored as ferritin / hemosiderin -> reused for new Hb",
"<b>Heme</b> -> Biliverdin (green) -> Bilirubin (yellow) -> conjugated in liver -> excreted in bile",
"<b>Jaundice</b> = elevated bilirubin; haemolytic jaundice = excess RBC destruction",
]:
story.append(bullet(b))
story.append(PageBreak())
# ══════════════════════════════════════════════════════
# SECTION 4 — BLOOD GROUPS
# ══════════════════════════════════════════════════════
story.append(heading("4. BLOOD GROUP SYSTEMS — ABO & Rh"))
story.append(spacer(6))
story.append(subhead("4.1 ABO Blood Group System"))
abo_data = [
["Blood Type", "Antigen on RBC", "Antibody in Plasma", "Can Donate To", "Can Receive From"],
["A", "A", "Anti-B", "A, AB", "A, O"],
["B", "B", "Anti-A", "B, AB", "B, O"],
["AB", "A and B","None", "AB only", "All types (Universal Recipient)"],
["O", "None", "Anti-A and Anti-B","All types (Universal Donor)", "O only"],
]
story.append(make_table(abo_data, col_widths=[2*cm, 3*cm, 4*cm, 3.5*cm, W-12.5*cm]))
story.append(spacer(8))
story.append(subhead("4.2 Blood Typing — Agglutination Results"))
typing_data = [
["RBC Type", "Anti-A Serum (Blue)", "Anti-B Serum (Yellow)", "Interpretation"],
["O", "No agglutination (−)", "No agglutination (−)", "No antigens present"],
["A", "Agglutination (+)", "No agglutination (−)", "A antigen present"],
["B", "No agglutination (−)", "Agglutination (+)", "B antigen present"],
["AB", "Agglutination (+)", "Agglutination (+)", "Both A and B antigens"],
]
story.append(make_table(typing_data, col_widths=[2*cm, 4.5*cm, 4.5*cm, W-11*cm]))
story.append(spacer(8))
story.append(subhead("4.3 Rh Blood Group System"))
rh_data = [
["Feature", "Detail"],
["Most important antigen", "D antigen (most antigenic)"],
["Rh positive", "Carries D antigen; ~85% of Whites, ~95% Black Americans, >95% Asians"],
["Rh negative", "Lacks D antigen; ~15% of Whites"],
["Antibody formation", "NOT spontaneous — requires sensitisation by exposure to Rh+ blood"],
["Six Rh antigens", "C, D, E, c, d, e"],
]
story.append(make_table(rh_data, col_widths=[5*cm, W-5*cm]))
story.append(spacer(8))
story.append(subhead("4.4 Erythroblastosis Fetalis (Hemolytic Disease of the Newborn)"))
efdata = [
["Step", "Event"],
["1", "Rh- mother x Rh+ father -> Rh+ fetus"],
["2", "During 1st delivery: fetal RBCs enter maternal circulation (sensitisation)"],
["3", "Mother forms anti-D IgG antibodies (primary immune response)"],
["4", "2nd Rh+ pregnancy: rapid secondary response -> high titre IgG anti-D"],
["5", "IgG crosses placenta -> destroys fetal RBCs -> haemolytic anaemia in fetus"],
["6", "Consequences: anaemia, jaundice, hydrops fetalis, kernicterus (bilirubin in brain)"],
["Prevention", "Anti-D immunoglobulin (RhoGAM) at 28 weeks AND within 72 hrs of delivery to Rh- mother"],
]
story.append(make_table(efdata, col_widths=[1.8*cm, W-1.8*cm]))
story.append(spacer(6))
story.append(accent_box(
"<b>Key Viva Q:</b> Why is the FIRST baby usually unaffected? "
"-> First exposure causes PRIMARY immune response (IgM, slow, cannot cross placenta). "
"Insufficient IgG formed to harm baby. Second exposure -> rapid IgG production -> crosses placenta."
))
story.append(PageBreak())
# ══════════════════════════════════════════════════════
# SECTION 5 — WHITE BLOOD CELLS
# ══════════════════════════════════════════════════════
story.append(heading("5. WHITE BLOOD CELLS (LEUKOCYTES)"))
story.append(spacer(6))
story.append(subhead("5.1 Differential Leukocyte Count (DLC)"))
dlc_data = [
["Cell Type", "Normal %", "Normal Count (/mm3)", "Primary Function"],
["Neutrophils", "60–70%", "3,000–7,000", "Phagocytosis; first responder in bacterial infection; contain enzymes in granules"],
["Lymphocytes", "20–30%", "1,500–4,000", "B cells: antibody production; T cells: cell-mediated immunity; NK cells"],
["Monocytes", "3–8%", "100–700", "Phagocytosis; differentiate into macrophages in tissues; antigen presentation"],
["Eosinophils", "2–4%", "100–400", "Allergic reactions; anti-parasitic immunity; contain major basic protein"],
["Basophils", "0.5–1%", "40–100", "Allergy/hypersensitivity; release histamine and heparin"],
]
story.append(make_table(dlc_data, col_widths=[3*cm, 2*cm, 3*cm, W-8*cm]))
story.append(spacer(6))
story.append(accent_box("<b>Mnemonic (high to low %): Never Let Monkeys Eat Bananas</b> — Neutrophils, Lymphocytes, Monocytes, Eosinophils, Basophils"))
story.append(spacer(8))
story.append(subhead("5.2 Granulocytes vs. Agranulocytes"))
gran_data = [
["Category", "Cells", "Granule Content"],
["Granulocytes (polymorphonuclear)", "Neutrophils, Eosinophils, Basophils", "Specific cytoplasmic granules visible on Giemsa/Leishman stain"],
["Agranulocytes (mononuclear)", "Lymphocytes, Monocytes", "No specific granules; large nucleus"],
]
story.append(make_table(gran_data, col_widths=[4.5*cm, 5.5*cm, W-10*cm]))
story.append(spacer(8))
story.append(subhead("5.3 Clinical Correlations"))
wbc_clin = [
["Condition", "WBC Change", "Cause"],
["Bacterial infection", "Neutrophilia (>70%)", "Bone marrow releases neutrophils; demargination"],
["Viral infection", "Lymphocytosis", "T and B cell proliferation"],
["Allergy / Parasites", "Eosinophilia (>4%)", "IL-5 driven; mast cell degranulation"],
["Leukocytosis", ">11,000 /mm3", "Infection, inflammation, leukaemia"],
["Leukopenia", "<4,000 /mm3", "Viral illness, aplastic anaemia, chemotherapy, SLE"],
["Leukaemia", "Very high (abnormal cells)", "Malignant proliferation of WBC precursors"],
]
story.append(make_table(wbc_clin, col_widths=[4*cm, 4*cm, W-8*cm]))
story.append(PageBreak())
# ══════════════════════════════════════════════════════
# SECTION 6 — PLATELETS & HEMOSTASIS
# ══════════════════════════════════════════════════════
story.append(heading("6. PLATELETS & HEMOSTASIS"))
story.append(spacer(6))
story.append(subhead("6.1 Platelets"))
plt_data = [
["Parameter", "Value"],
["Normal count", "150,000–400,000 /mm3"],
["Life span", "7–10 days"],
["Production", "Megakaryocytes in bone marrow (cytoplasmic fragmentation)"],
["Regulator", "Thrombopoietin (liver and kidney)"],
["Thrombocytopenia", "<100,000 /mm3 (bleeding risk); <20,000 -> spontaneous bleeding"],
["Thrombocytosis", ">400,000 /mm3 (thrombosis risk)"],
]
story.append(make_table(plt_data, col_widths=[4.5*cm, W-4.5*cm]))
story.append(spacer(8))
story.append(subhead("6.2 Stages of Hemostasis"))
hemo_data = [
["Stage", "Event", "Key Players"],
["1. Vascular Spasm", "Immediate vasoconstriction", "Smooth muscle; endothelin; serotonin from platelets"],
["2. Platelet Plug (Primary Hemostasis)", "Platelet adhesion -> activation -> aggregation", "vWF, collagen, GpIb (adhesion); ADP, TXA2 (aggregation); GpIIb/IIIa + fibrinogen"],
["3. Coagulation (Secondary Hemostasis)", "Fibrin clot formation via cascade", "Clotting factors; thrombin; fibrin"],
["4. Fibrinolysis", "Clot dissolution", "Plasminogen -> Plasmin (via tPA); degrades fibrin"],
]
story.append(make_table(hemo_data, col_widths=[3.8*cm, 5.5*cm, W-9.3*cm]))
story.append(spacer(8))
story.append(subhead("6.3 Coagulation Cascade"))
story.append(para(
"<b>Extrinsic Pathway:</b> Tissue Factor (Factor III) -> + Factor VII -> activates Factor X<br/>"
"<b>Intrinsic Pathway:</b> XII -> XI -> IX -> VIII -> activates Factor X<br/>"
"<b>Common Pathway:</b> Xa + Va (Prothrombinase complex) -> Prothrombin (II) -> "
"<b>Thrombin</b> (IIa) -> Fibrinogen (I) -> <b>Fibrin</b> (clot)"
))
story.append(spacer(6))
story.append(subhead("6.4 Coagulation Tests"))
coag_data = [
["Test", "Pathway Tested", "Normal Value", "Prolonged In"],
["PT (Prothrombin Time)", "Extrinsic + Common", "11–15 seconds", "Warfarin therapy; Factor VII, X, V, II, I deficiency; liver disease; Vit K deficiency"],
["aPTT (Activated Partial Thromboplastin Time)", "Intrinsic + Common", "25–35 seconds", "Heparin therapy; haemophilia A (VIII) and B (IX); Factor XI, XII deficiency"],
["INR", "Extrinsic (standardised PT)", "0.9–1.1 (therapeutic: 2–3)", "Used to monitor warfarin therapy"],
["Bleeding Time (Duke method)", "Platelet function / plug", "1–6 minutes", "Thrombocytopenia; von Willebrand disease; aspirin"],
["Clotting Time (Lee-White)", "Intrinsic pathway", "2–8 minutes", "Haemophilia; severe coagulation factor deficiency"],
]
story.append(make_table(coag_data, col_widths=[4*cm, 3.5*cm, 3.5*cm, W-11*cm]))
story.append(spacer(6))
story.append(accent_box(
"<b>Vitamin K</b> is required for activation of Factors II, VII, IX, X (and Protein C and S) via gamma-carboxylation. "
"Deficiency (newborns, malabsorption, warfarin overdose) -> prolonged PT and aPTT."
))
story.append(PageBreak())
# ══════════════════════════════════════════════════════
# SECTION 7 — PRACTICAL PROCEDURES (OSPE STATIONS)
# ══════════════════════════════════════════════════════
story.append(heading("7. PRACTICAL PROCEDURES — OSPE STATIONS"))
story.append(spacer(6))
pracs = [
(
"7.1 Sahli's Hemoglobinometer (Hb Estimation)",
[
"Principle: Blood + N/10 HCl -> Acid haematin (brown); compare with standard",
"Steps: (1) Fill Sahli tube to 20 mark with N/10 HCl",
"(2) Draw exactly 20 microlitres of blood into pipette",
"(3) Blow blood into acid; mix for 3 mins (allow haematin formation)",
"(4) Dilute with distilled water drop by drop, stirring, until colour matches standard",
"(5) Read Hb value on scale (g/dL)",
"Normal: Men 13.5–17.5 g/dL; Women 12.0–15.5 g/dL",
"Limitation: Subjective colour comparison; affected by lighting and observer error",
]
),
(
"7.2 Hematocrit (PCV) — Microhematocrit Method",
[
"Steps: (1) Fill heparinised capillary tube 3/4 full with blood",
"(2) Seal one end with clay / wax",
"(3) Centrifuge at 12,000 rpm for 5 minutes",
"(4) Read packed cell volume using haematocrit reader card",
"Formula: PCV (%) = (length of packed cells / total length of blood column) x 100",
"Normal: Men 40–45%; Women 36–42%",
"Buffy coat (thin white layer) between plasma and RBCs = WBCs + platelets",
]
),
(
"7.3 Blood Film Preparation & Differential Count (DLC)",
[
"Steps: (1) Place small drop of blood on clean glass slide",
"(2) Spread with another slide at 30-45 degrees angle -> thin wedge smear",
"(3) Air dry; stain with Leishman's stain (3 mins) then buffer (6 mins); wash; dry",
"(4) Examine under oil immersion (100x) starting from feathered edge",
"(5) Count 100 WBCs in systematic fashion (serpentine pattern)",
"(6) Express each type as percentage",
"Normal: Neutrophils 60–70%; Lymphocytes 20–30%; Monocytes 3–8%; Eosinophils 2–4%; Basophils 0.5–1%",
"Cells visible: Neutrophils (multilobed purple nucleus); Lymphocytes (large round nucleus, scant cytoplasm); RBCs (no nucleus, biconcave, pink)",
]
),
(
"7.4 Blood Typing (ABO & Rh) — Tile / Slide Method",
[
"Steps: (1) Place drop of Anti-A serum on one side of tile",
"(2) Place drop of Anti-B serum on other side",
"(3) Place drop of Anti-D (Rh) serum in third area",
"(4) Add one drop of test blood (or washed RBC suspension) to each serum",
"(5) Mix gently with separate sticks; rock tile; observe within 2 minutes",
"Agglutination = antigen present on RBCs",
"Report: Blood group (A/B/AB/O) + Rh status (positive/negative)",
]
),
(
"7.5 ESR — Westergren Method",
[
"Principle: RBCs settle due to gravity; rate depends on plasma protein composition",
"Anticoagulant: 3.8% sodium citrate (1:4 with blood)",
"Steps: (1) Fill Westergren tube to 200 mm mark with anticoagulated blood",
"(2) Keep tube vertical in stand at room temperature",
"(3) Read column of clear plasma at exactly 60 minutes",
"Normal: Men <=15 mm/hr; Women <=20 mm/hr",
"Increased by: Rouleaux formation (fibrinogen, globulins), anaemia, pregnancy, infections, malignancy",
"Decreased by: Polycythaemia, sickle cell disease, spherocytosis",
]
),
(
"7.6 Bleeding Time — Duke Method",
[
"Steps: (1) Clean ear lobe with alcohol; allow to dry",
"(2) Puncture with lancet (depth ~3 mm)",
"(3) Start stopwatch immediately",
"(4) Blot drops of blood (not wound) with filter paper every 30 seconds",
"(5) Stop watch when no fresh blood appears on paper",
"Normal: 1–6 minutes",
"Prolonged in: Thrombocytopenia, von Willebrand disease, aspirin use, platelet function disorders",
]
),
(
"7.7 Total RBC Count — Haemocytometer (Neubauer Chamber)",
[
"Dilution: 1:200 with Hayem's fluid (NaCl + Na2SO4 + HgCl2 — fixes & preserves cells)",
"Steps: (1) Add 0.02 mL blood to 3.98 mL Hayem's -> 1:200 dilution",
"(2) Fill Neubauer chamber; allow to settle 2–3 mins",
"(3) Count RBCs in 5 small squares of central 1 mm2 area (4 corners + centre) under 40x",
"Formula: RBC/mm3 = N x Dilution factor x (1/Volume counted) = N x 200 x 50 = N x 10,000",
"Where N = total RBCs counted in 5 small squares; each small square volume = 1/50 mm3 when depth = 0.1 mm",
]
),
(
"7.8 Total WBC Count — Haemocytometer",
[
"Dilution: 1:20 with Turk's fluid (1% glacial acetic acid + gentian violet — lyses RBCs, stains WBC nuclei)",
"Steps: (1) 0.05 mL blood + 0.95 mL Turk's fluid -> 1:20 dilution",
"(2) Fill Neubauer chamber; count WBCs in all 4 corner large squares (under 10x)",
"Formula: WBC/mm3 = N x 20 x (1/0.4) = N x 50",
"Where N = total WBCs in 4 large corner squares; volume of 4 large squares = 4 x 0.1 mm3 = 0.4 mm3",
]
),
]
for title, steps in pracs:
story.append(KeepTogether([
subhead(title),
] + [bullet(s) for s in steps] + [spacer(6)]))
story.append(PageBreak())
# ══════════════════════════════════════════════════════
# SECTION 8 — VIVA QUESTIONS BANK
# ══════════════════════════════════════════════════════
story.append(heading("8. VIVA QUESTIONS BANK"))
story.append(spacer(6))
viva_sections = [
("RBCs & Hemoglobin", [
"What is the shape and size of a normal RBC? Why is the biconcave shape physiologically important?",
"Define hematocrit. What are normal values for males and females?",
"What is erythropoietin? Where is it produced? What stimulates its release?",
"How many grams of oxygen does 1 gram of hemoglobin carry at 100% saturation?",
"What is the life span of an RBC? Where and how are old RBCs destroyed?",
"Trace the breakdown products of hemoglobin from RBC destruction to excretion.",
"What is the difference between HbA, HbA2, and HbF?",
"Name four nutritional requirements for erythropoiesis and their deficiency effects.",
"What is polycythemia? Differentiate primary (vera) from secondary.",
"What is reticulocyte? What does an elevated reticulocyte count indicate?",
]),
("ABO & Rh Blood Groups", [
"What are agglutinogens and agglutinins? Where are each located?",
"Who is the universal donor? Universal recipient? State the reason.",
"Why is cross-matching essential before every blood transfusion?",
"Describe the procedure of blood typing on a slide/tile.",
"What is erythroblastosis fetalis? Explain its pathogenesis step by step.",
"Why is the first Rh-incompatible baby usually unaffected?",
"What is the prevention for erythroblastosis fetalis? When is it given?",
"What is the difference between ABO and Rh blood group systems regarding antibody formation?",
"What is the most important antigen in the Rh system and why?",
]),
("White Blood Cells & Immunity", [
"Give the normal differential leukocyte count with functions of each cell.",
"What is the difference between granulocytes and agranulocytes?",
"What is leukocytosis? What are its common causes?",
"What is a 'left shift' in the DLC and what does it indicate clinically?",
"What is the role of eosinophils in allergic reactions?",
"Differentiate between monocytes and macrophages.",
"What is the role of natural killer (NK) cells?",
]),
("Platelets & Hemostasis", [
"What is the normal platelet count? Define thrombocytopenia and thrombocytosis.",
"Where are platelets produced? What regulates their production?",
"Describe the three stages of hemostasis.",
"Differentiate the intrinsic and extrinsic coagulation pathways.",
"What is the common pathway of coagulation?",
"What is the role of Vitamin K in coagulation?",
"What is the difference between bleeding time and clotting time?",
"What is fibrinolysis? What enzyme is responsible?",
"What does a prolonged PT indicate vs a prolonged aPTT?",
"What is the mechanism of action of heparin? Of warfarin?",
]),
("ESR & Plasma", [
"What is ESR? Describe the Westergren method.",
"What factors increase ESR? What factors decrease it?",
"What is Rouleaux formation? How does it affect ESR?",
"Name the major plasma proteins and their functions.",
"What is the normal total plasma protein concentration?",
"What is the difference between serum and plasma?",
]),
]
for section_title, questions in viva_sections:
story.append(subhead(section_title))
for i, q in enumerate(questions, 1):
story.append(Paragraph(f"<b>Q{i}.</b> {q}", S(f"VQ{i}", fontName="Helvetica", fontSize=9.5,
leading=14, leftIndent=12, spaceAfter=3)))
story.append(spacer(8))
# Footer note
story.append(HRFlowable(width="100%", thickness=1.5, color=DARK_BLUE, spaceBefore=10, spaceAfter=6))
story.append(Paragraph(
"Compiled for DPT 1st Semester | University of Health Sciences (UHS) | "
"Reference: Guyton & Hall Textbook of Medical Physiology 14th Ed., Chapters 32–36",
S("Footer", fontName="Helvetica-Oblique", fontSize=8, textColor=MID_GREY, alignment=TA_CENTER)
))
# ════════════════════════════════════════════════════════════════
doc.build(story)
print("PDF created:", OUT)
cd /home/daytona/workspace/blood-physiology-guide && python generate_pdf.py 2>&1
ls -lh /home/daytona/workspace/blood-physiology-guide/Blood_Physiology_DPT_Study…
Blood Physiology DPT Study Guide
PDF Document · PDF
| Section | Content |
|---|---|
| Cover + Contents | Colour-coded title page with topic index |
| 1. RBCs & Hemoglobin | Morphology table, Hb values, Hb types, functions |
| 2. Hematocrit & Normal Values | PCV table, full CBP reference ranges |
| 3. Erythropoiesis | Production sites, maturation sequence + mnemonic, EPO regulation, nutritional requirements, Hb breakdown pathway |
| 4. Blood Groups | ABO compatibility table, agglutination results, Rh system, Erythroblastosis Fetalis step-by-step |
| 5. White Blood Cells | DLC normal values, granulocytes vs agranulocytes, clinical correlations |
| 6. Platelets & Hemostasis | Platelet values, 4 stages of hemostasis, coagulation cascade, all coagulation tests |
| 7. OSPE Practical Procedures | Step-by-step: Sahli's method, PCV, DLC/blood film, blood typing, ESR (Westergren), bleeding time, RBC count, WBC count |
| 8. Viva Questions Bank | 50+ exam-style viva questions across all topics |