do you know all the concepts from guyton and hall medical physiology textbook 13th edition ?
| Detail | Info |
|---|---|
| Book | Guyton and Hall Textbook of Medical Physiology |
| ISBN | 9780443111013 |
| Total sections/headings | 2,055 indexed headings |
| Content blocks | 10 blocks (~38,000+ lines of text total) |
| Speciality | Physiology |
So you have access and can read every line of this textbook's every units, and everything in this book?
Teach me these topics Cardiac muscle; action potentials in cardiac muscle; the heart as a pump; cardiac cycle; regulation of heart pumping; function of the heart valves
This "all-or-nothing" behavior of the heart syncytia is fundamental - either the whole atria contract together, or none of it contracts.
| Feature | Skeletal Muscle | Ventricular Cardiac Muscle |
|---|---|---|
| Resting membrane potential | -85 to -90 mV | -85 to -90 mV |
| Peak overshoot | +20 to +30 mV | +20 mV |
| Duration | 1-5 milliseconds | ~0.2-0.3 seconds |
| Plateau | Absent | Present |
"Duration of contraction of cardiac muscle is mainly a function of the duration of the action potential, including the plateau - about 0.2 second in atrial muscle and 0.3 second in ventricular muscle." - Guyton & Hall
Note: With aging, hypertension, or cardiac fibrosis, ventricles stiffen - they rely more on atrial contraction to achieve adequate filling.
| Wave | Cause |
|---|---|
| a wave | Atrial contraction - right atrial pressure rises 4-6 mmHg; left atrial rises 7-8 mmHg |
| c wave | AV valves bulge backward into atria at start of ventricular contraction |
| v wave | Venous blood fills atria while AV valves are closed during ventricular systole |
"The heart automatically pumps into the arterial system all the blood that comes to it from the veins."
| Valve | Location | Type | Opens When... | Closes When... |
|---|---|---|---|---|
| Mitral (bicuspid) | Between left atrium and left ventricle | AV valve | Ventricular pressure drops below atrial pressure (diastole) | Ventricular pressure exceeds atrial pressure (systole) |
| Tricuspid | Between right atrium and right ventricle | AV valve | Same as mitral | Same as mitral |
| Aortic | Between left ventricle and aorta | Semilunar valve | LV pressure exceeds ~80 mmHg | Aortic pressure exceeds LV pressure |
| Pulmonary | Between right ventricle and pulmonary artery | Semilunar valve | RV pressure exceeds ~8 mmHg | Pulmonary artery pressure exceeds RV pressure |
| Sound | Cause | Timing |
|---|---|---|
| S1 (lub) | AV valves (mitral + tricuspid) snapping shut | Start of ventricular systole |
| S2 (dub) | Semilunar valves (aortic + pulmonary) snapping shut | End of ventricular systole |
| S3 (pathological) | Rapid ventricular filling in early diastole - blood hitting stiff walls | Early diastole |
| S4 (pathological) | Atrial contraction against a stiff ventricle | Late diastole (just before S1) |
SA Node fires
↓
Atria depolarize (P wave) → Atria contract (atrial kick)
↓
AV Node delay (0.1 sec) → allows atrial filling of ventricles
↓
Bundle of His → Purkinje fibers → Ventricles depolarize (QRS)
↓
Isovolumic contraction → AV valves close (S1)
↓
Semilunar valves open → Ejection (stroke volume ~70 mL, EF ~60%)
↓
Isovolumic relaxation → Semilunar valves close (S2)
↓
AV valves open → Rapid filling → Slow filling → Atrial kick
↓
Next cycle begins
If i upload guyton and hall medical physiology 13th edition, are you able to open it and help me learnit?
One note: very large PDFs (the full textbook can be 1000+ pages) are processed in sections, so I'll read the relevant parts based on your questions rather than the entire book at once. This actually works better for focused learning anyway!
Cardiac muscle is a syncytium,explain the concept according to guyton and hall textbook of medical physiology, in bulletpoints in simple way while keeping terminology intact
"Cardiac muscle is a syncytium of many heart muscle cells in which the cardiac cells are so interconnected that when one cell becomes excited, the action potential rapidly spreads to all of them." - Guyton & Hall
| Key Term | Simple Meaning |
|---|---|
| Syncytium | Many cells acting as one unit |
| Intercalated discs | Dark bands = cell membranes separating individual cardiac cells |
| Gap junctions | Pores in the intercalated disc that let ions pass freely |
| Atrial syncytium | All atrial muscle cells electrically connected |
| Ventricular syncytium | All ventricular muscle cells electrically connected |
| AV bundle | The only electrical bridge between atria and ventricles |
| Fibrous tissue | Electrically insulating barrier between atrial and ventricular syncytia |
Explain how the AV bundle delay ensures proper atrial-to-ventricular timing
| Segment | Time |
|---|---|
| SA node → AV node (via internodal pathways) | 0.03 sec |
| Delay within the AV node itself | 0.09 sec |
| Delay in the penetrating AV bundle | 0.04 sec |
| Total delay before ventricles are excited | 0.16 sec |
Exception: In rare cases, an abnormal accessory pathway (as in Wolff-Parkinson-White syndrome) penetrates the fibrous barrier at a point other than the AV bundle. This allows impulses to travel backward from ventricles to atria, causing serious cardiac arrhythmias.
SA Node fires (0.00 sec)
↓ [0.03 sec - fast, through atria]
AV Node arrives (0.03 sec) → ATRIA CONTRACT HERE
↓ [0.09 sec delay - slow, AV node]
Penetrating AV Bundle (0.12 sec)
↓ [0.04 sec delay - AV bundle fascicles]
Ventricular Purkinje system entered (0.16 sec)
↓ [0.03 sec - lightning fast, Purkinje fibers]
Entire ventricular muscle activated (0.19 sec) → VENTRICLES CONTRACT
| Feature | Effect |
|---|---|
| Slow AV nodal conduction (few gap junctions) | Creates the critical 0.16 sec delay |
| Fast Purkinje conduction (many gap junctions) | Entire ventricle contracts as one powerful unit |
| One-way conduction of AV bundle | Prevents dangerous backward impulse reentry |
| Fibrous barrier between atria and ventricles | Forces all impulses through the single AV bundle pathway |
| Sequential atrial then ventricular contraction | Atria prime/fill ventricles before ventricles eject blood |
"This delay allows the atria to contract ahead of ventricular contraction, thereby pumping blood into the ventricles before the strong ventricular contraction begins. Thus, the atria act as primer pumps for the ventricles." - Guyton & Hall
Give me key points of everything in this chapter 9 with brief, easy-to-understand, explanation or detail
| Wave | Cause |
|---|---|
| a wave | Atrial contraction (right atrium ↑4-6 mmHg; left atrium ↑7-8 mmHg) |
| c wave | AV valves bulge backward into atria when ventricles begin contracting |
| v wave | Blood fills atria from veins while AV valves are closed; disappears when AV valves open |
| Phase | What Happens |
|---|---|
| Isovolumic contraction | Ventricles contract, pressure rises, AV valves snap shut (S1), semilunar valves still closed, no blood moves yet (0.02-0.03 sec) |
| Rapid ejection | LV pressure > 80 mmHg → aortic valve opens; ~70% of stroke volume ejected in first 1/3 of ejection period |
| Slow ejection | Remaining ~30% ejected in the last 2/3 |
| Isovolumic relaxation | Ventricles relax, arterial pressure snaps semilunar valves shut (S2), AV valves still closed, pressure drops rapidly, no volume change (0.03-0.06 sec) |
| Sound | Cause | Timing |
|---|---|---|
| S1 (lub) | AV valves closing | Start of systole |
| S2 (dub) | Semilunar valves closing | End of systole |
| Topic | Key Number / Fact |
|---|---|
| Action potential duration | 0.2 sec (atrial), 0.3 sec (ventricular) |
| Resting membrane potential | -85 mV |
| Cardiac cycle at 72 bpm | 0.833 sec |
| Atrial kick contribution | 20-30% of ventricular filling |
| End-diastolic volume | 110-120 mL |
| Stroke volume | ~70 mL |
| Ejection fraction | ~60% |
| Isovolumic contraction time | 0.02-0.03 sec |
| Isovolumic relaxation time | 0.03-0.06 sec |
| LV pressure to open aortic valve | >80 mmHg |
| RV pressure to open pulmonary valve | >8 mmHg |
| Sympathetic: max heart rate | 180-200 (rarely 250) beats/min |
| Vagal stimulation effect on output | Can reduce by 50%+ |
| Hyperkalemia danger zone | 8-12 mEq/L |
| Cardiac output at rest | 4-6 L/min |
| Exercise cardiac output | Up to 4-7x resting |
| # | Section | Core Idea |
|---|---|---|
| 1 | Cardiac Muscle Types | 3 types: atrial, ventricular, conductive |
| 2 | Cardiac Muscle Anatomy | Striated, latticework, syncytium, torsion |
| 3 | Action Potentials | Plateau, long refractory period, no tetany |
| 4 | Excitation-Contraction Coupling | Ca²⁺ from T-tubules + SR, depends on extracellular Ca²⁺ |
| 5 | Cardiac Cycle | 0.833 sec, systole vs. diastole, a/c/v waves |
| 6 | Atria as Primer Pumps | 3 phases, adds 20-30% filling |
| 7 | Ventricles as Pumps | Isovolumic contraction/relaxation, ejection, EDV/ESV/EF |
| 8 | Heart Valves | AV valves (chordae), semilunar valves (cups), S1/S2 |
| 9 | Work Output | Volume-pressure work vs. kinetic energy |
| 10 | Volume-Pressure Relationship | Diastolic vs. systolic pressure curves, optimal filling |
| 11 | Frank-Starling Mechanism | More stretch = more force = more output |
| 12 | Nervous Control | Sympathetic (+) vs. Parasympathetic (-), cardiac function curves |
| 13 | Potassium Effects | High K⁺ = weak, slow, can be fatal |
| 14 | Calcium Effects | High Ca²⁺ = spastic; Low Ca²⁺ = weak |
| 15 | Temperature Effects | Heat = faster rate; Cold = slower rate |
| 16 | Arterial Pressure vs. Output | Pressure doesn't limit output until >160 mmHg |
Create a study guide PDF of Chapter 9 key points for quick revision
ls -la /home/daytona/workspace/
mkdir -p /home/daytona/workspace/guyton-ch9 && python3 -c "from reportlab.lib import colors; print('reportlab ok')"
~/guyton-ch9/build_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
OUTPUT = "/home/daytona/workspace/guyton-ch9/Guyton_Ch9_Study_Guide.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="Guyton & Hall Ch.9 Study Guide",
author="Orris Medical Library"
)
# ── Colour palette ──────────────────────────────────────────────
NAVY = colors.HexColor("#1a3a5c")
BLUE = colors.HexColor("#2563eb")
LBLUE = colors.HexColor("#dbeafe")
TEAL = colors.HexColor("#0d9488")
LTEAL = colors.HexColor("#ccfbf1")
GOLD = colors.HexColor("#d97706")
LGOLD = colors.HexColor("#fef3c7")
RED = colors.HexColor("#dc2626")
LRED = colors.HexColor("#fee2e2")
LGREY = colors.HexColor("#f1f5f9")
MGREY = colors.HexColor("#64748b")
WHITE = colors.white
BLACK = colors.HexColor("#1e293b")
styles = getSampleStyleSheet()
# ── Custom styles ────────────────────────────────────────────────
def S(name, **kw):
return ParagraphStyle(name, **kw)
COVER_TITLE = S("CoverTitle", fontSize=28, textColor=WHITE,
leading=34, alignment=TA_CENTER, fontName="Helvetica-Bold")
COVER_SUB = S("CoverSub", fontSize=14, textColor=colors.HexColor("#bfdbfe"),
leading=20, alignment=TA_CENTER, fontName="Helvetica")
COVER_NOTE = S("CoverNote", fontSize=10, textColor=colors.HexColor("#93c5fd"),
leading=14, alignment=TA_CENTER, fontName="Helvetica-Oblique")
SEC_HEAD = S("SecHead", fontSize=13, textColor=WHITE,
leading=17, fontName="Helvetica-Bold",
spaceBefore=6, spaceAfter=4,
leftIndent=0, borderPad=6)
SUBSEC = S("SubSec", fontSize=11, textColor=NAVY,
leading=15, fontName="Helvetica-Bold",
spaceBefore=8, spaceAfter=2)
BODY = S("Body", fontSize=9.5, textColor=BLACK,
leading=14, fontName="Helvetica",
spaceBefore=1, spaceAfter=1, alignment=TA_JUSTIFY)
BULLET = S("Bullet", fontSize=9.5, textColor=BLACK,
leading=14, fontName="Helvetica",
leftIndent=14, firstLineIndent=-10,
spaceBefore=1, spaceAfter=1)
SUBBULLET = S("SubBullet", fontSize=9, textColor=MGREY,
leading=13, fontName="Helvetica",
leftIndent=28, firstLineIndent=-10,
spaceBefore=0, spaceAfter=0)
HIGHLIGHT = S("Highlight", fontSize=9.5, textColor=NAVY,
leading=14, fontName="Helvetica-Bold",
leftIndent=14, firstLineIndent=-10,
spaceBefore=1, spaceAfter=1)
KEY_BOX = S("KeyBox", fontSize=9, textColor=RED,
leading=13, fontName="Helvetica-Bold",
spaceBefore=1, spaceAfter=1, alignment=TA_CENTER)
TABLE_HDR = S("TblHdr", fontSize=9, textColor=WHITE,
leading=12, fontName="Helvetica-Bold", alignment=TA_CENTER)
TABLE_CELL = S("TblCell", fontSize=9, textColor=BLACK,
leading=12, fontName="Helvetica", alignment=TA_LEFT)
TABLE_CELLC = S("TblCellC", fontSize=9, textColor=BLACK,
leading=12, fontName="Helvetica", alignment=TA_CENTER)
FOOTER_ST = S("Footer", fontSize=8, textColor=MGREY,
leading=10, alignment=TA_CENTER, fontName="Helvetica-Oblique")
# ── Helper functions ─────────────────────────────────────────────
def section_header(text, color=NAVY):
tbl = Table([[Paragraph(text, SEC_HEAD)]], colWidths=[17*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("ROUNDEDCORNERS", [4,4,4,4]),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
return tbl
def colored_box(content_rows, bg=LBLUE, border=BLUE):
"""Wrap a list of flowables in a colored rounded box via a 1-cell table."""
inner = Table([[r] for r in content_rows], colWidths=[15.5*cm])
inner.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 1, border),
]))
return inner
def b(text): return Paragraph(f"• {text}", BULLET)
def bb(text): return Paragraph(f"– {text}", SUBBULLET)
def h(text): return Paragraph(text, HIGHLIGHT)
def p(text): return Paragraph(text, BODY)
def sub(text): return Paragraph(text, SUBSEC)
def sp(n=4): return Spacer(1, n)
def hr(): return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#cbd5e1"), spaceAfter=4, spaceBefore=4)
def data_table(headers, rows, col_widths):
data = [[Paragraph(h_, TABLE_HDR) for h_ in headers]]
for row in rows:
data.append([Paragraph(str(c), TABLE_CELLC if i > 0 else TABLE_CELL)
for i, c in enumerate(row)])
tbl = Table(data, colWidths=col_widths)
style = [
("BACKGROUND", (0,0), (-1,0), NAVY),
("BACKGROUND", (0,1), (-1,-1), LGREY),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LGREY]),
("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#94a3b8")),
("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#cbd5e1")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]
tbl.setStyle(TableStyle(style))
return tbl
# ── Build story ──────────────────────────────────────────────────
story = []
# ════════════════════ COVER PAGE ════════════════════
cover = Table(
[[Paragraph("GUYTON & HALL", COVER_TITLE)],
[Paragraph("Medical Physiology", COVER_SUB)],
[Spacer(1, 12)],
[Paragraph("CHAPTER 9", S("", fontSize=22, textColor=colors.HexColor("#fbbf24"),
leading=28, alignment=TA_CENTER, fontName="Helvetica-Bold"))],
[Paragraph("Cardiac Muscle; The Heart as a Pump<br/>and Function of the Heart Valves",
S("", fontSize=16, textColor=WHITE, leading=22, alignment=TA_CENTER,
fontName="Helvetica-Bold"))],
[Spacer(1, 24)],
[Paragraph("QUICK REVISION STUDY GUIDE", S("", fontSize=12,
textColor=colors.HexColor("#bfdbfe"), leading=16, alignment=TA_CENTER,
fontName="Helvetica-Bold"))],
[Spacer(1, 8)],
[Paragraph("16 Sections · All Key Points · Quick-Reference Tables",
COVER_NOTE)],
[Spacer(1, 32)],
[Paragraph("Source: Guyton and Hall Textbook of Medical Physiology (ISBN 9780443111013)",
COVER_NOTE)],
],
colWidths=[17*cm]
)
cover.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), NAVY),
("ROUNDEDCORNERS",[8,8,8,8]),
("TOPPADDING", (0,0), (-1,-1), 14),
("BOTTOMPADDING", (0,0), (-1,-1), 14),
("LEFTPADDING", (0,0), (-1,-1), 20),
("RIGHTPADDING", (0,0), (-1,-1), 20),
]))
story.append(cover)
story.append(Spacer(1, 20))
# ════════════════════ SECTION 1 ════════════════════
story.append(section_header("1. Cardiac Muscle Physiology — Three Types", NAVY))
story.append(sp(6))
story.append(b("Three major types of cardiac muscle:"))
story.append(bb("<b>Atrial muscle</b> — contracts to push blood into ventricles"))
story.append(bb("<b>Ventricular muscle</b> — contracts to push blood into arteries"))
story.append(bb("<b>Specialized excitatory & conductive fibers</b> (SA node, AV node, Purkinje) — few contractile fibrils; their job is generating and conducting electrical signals"))
story.append(b("Atrial and ventricular muscle contract <b>similarly to skeletal muscle</b> but with a much <b>longer duration</b>"))
story.append(sp())
# ════════════════════ SECTION 2 ════════════════════
story.append(section_header("2. Cardiac Muscle Anatomy", TEAL))
story.append(sp(6))
story.append(b("<b>Striated</b> like skeletal muscle — actin & myosin filaments slide during contraction (sliding filament mechanism)"))
story.append(b("Fibers arranged in a <b>latticework</b> — divide, recombine, and spread"))
story.append(sp(4))
story.append(sub("Left Ventricular Torsion"))
story.append(b("Muscle arranged in a <b>double helix</b>: outer layer spirals left, inner layer spirals right"))
story.append(b("Creates a <b>wringing/twisting motion</b> during systole — like squeezing a wet towel"))
story.append(b("Apex rotates counterclockwise; base rotates clockwise"))
story.append(b("At end-systole the LV acts like a <b>loaded spring</b> → recoils in diastole, actively <b>sucking blood in</b>"))
story.append(sp(4))
story.append(sub("Cardiac Muscle Is a Syncytium"))
story.append(b("<b>Intercalated discs</b> = dark bands in histology; cell membranes separating individual cardiac cells"))
story.append(b("At each disc, membranes fuse → <b>gap junctions</b> (permeable pores) let ions flow freely"))
story.append(b("One cell excited → action potential spreads <b>instantly to ALL cells</b>"))
story.append(b("Two syncytia: <b>Atrial syncytium</b> & <b>Ventricular syncytium</b>"))
story.append(b("Separated by a <b>fibrous ring</b> (electrical insulator) — only bridge = <b>AV bundle (bundle of His)</b>"))
story.append(b("Separation ensures atria contract <b>first</b>, then ventricles"))
story.append(sp())
# ════════════════════ SECTION 3 ════════════════════
story.append(section_header("3. Action Potentials in Cardiac Muscle", colors.HexColor("#7c3aed")))
story.append(sp(6))
story.append(b("Resting membrane potential = <b>−85 mV</b>; peaks at <b>+20 mV</b> → amplitude = <b>105 mV</b>"))
story.append(b("Key feature: a long <b>PLATEAU</b> lasting <b>~0.2 sec (atrial)</b> and <b>~0.3 sec (ventricular)</b>"))
story.append(b("Makes cardiac contraction <b>15× longer</b> than skeletal muscle contraction"))
story.append(sp(4))
story.append(sub("Why the Plateau Exists — Two Reasons"))
story.append(h("① Slow L-type Ca²⁺ channels (slow calcium channels) open and stay open for tenths of a second → Ca²⁺ & Na⁺ keep flowing in → maintains depolarization"))
story.append(h("② K⁺ permeability decreases ~5-fold after depolarization → K⁺ cannot rush out to repolarize the cell"))
story.append(sp(4))
story.append(sub("The Absolute Refractory Period"))
story.append(b("Lasts ~<b>0.2–0.25 sec</b> = almost the entire contraction"))
story.append(b("Cardiac muscle <b>CANNOT be tetanized</b> — this is life-saving"))
story.append(b("If tetany were possible, the heart would never relax to fill → <b>death</b>"))
story.append(sp())
# ════════════════════ SECTION 4 ════════════════════
story.append(section_header("4. Excitation-Contraction Coupling & Ca²⁺", TEAL))
story.append(sp(6))
story.append(b("Action potential → spreads into cell interior via <b>T-tubules</b>"))
story.append(b("T-tubule action potential → Ca²⁺ released from <b>sarcoplasmic reticulum (SR)</b>"))
story.append(b("<b>Extra Ca²⁺ also enters from outside the cell</b> through T-tubule walls (voltage-dependent Ca²⁺ channels)"))
story.append(b("Extracellular Ca²⁺ triggers more SR release via <b>ryanodine receptor channels</b> (calcium-induced calcium release)"))
story.append(b("Ca²⁺ + troponin → cross-bridge formation → <b>contraction</b>"))
story.append(sp(4))
key_rows = [
[Paragraph("<b>Why extracellular Ca²⁺ is essential:</b>", TABLE_CELL),
Paragraph("Cardiac SR is <b>less developed</b> than skeletal muscle SR — not enough internal Ca²⁺ for full contraction", TABLE_CELL)],
[Paragraph("<b>T-tubule size:</b>", TABLE_CELL),
Paragraph("<b>5× wider</b> than skeletal muscle (25× volume); coated with mucopolysaccharides that bind Ca²⁺", TABLE_CELL)],
[Paragraph("<b>No Ca²⁺ = no beat:</b>", TABLE_CELL),
Paragraph("Heart in calcium-free solution <b>stops beating quickly</b>", TABLE_CELL)],
]
tbl = Table(key_rows, colWidths=[5.5*cm, 11*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), LTEAL),
("BOX", (0,0), (-1,-1), 0.5, TEAL),
("INNERGRID", (0,0), (-1,-1), 0.3, TEAL),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(tbl)
story.append(sp())
# ════════════════════ SECTION 5 ════════════════════
story.append(section_header("5. The Cardiac Cycle", BLUE))
story.append(sp(6))
story.append(b("All events from one heartbeat to the beginning of the next"))
story.append(b("At <b>72 beats/min</b> → one cycle = <b>0.833 seconds</b>"))
story.append(b("Initiated by SA node → atria → AV node delay → ventricles"))
story.append(sp(4))
story.append(sub("Atrial Pressure Waves"))
story.append(data_table(
["Wave", "Cause"],
[["a wave", "Atrial contraction — RA ↑4–6 mmHg, LA ↑7–8 mmHg"],
["c wave", "AV valves bulge backward into atria at start of ventricular contraction"],
["v wave", "Blood fills atria from veins while AV valves are CLOSED; disappears when AV valves reopen"]],
[3*cm, 13.5*cm]
))
story.append(sp())
# ════════════════════ SECTION 6 ════════════════════
story.append(section_header("6. Atria as Primer Pumps", colors.HexColor("#0891b2")))
story.append(sp(6))
story.append(b("Atrial filling occurs in <b>3 phases</b>:"))
story.append(bb("<b>Reservoir phase</b> — blood flows in from great veins / pulmonary veins"))
story.append(bb("<b>Conduit phase</b> — ~70–80% flows directly through atria into ventricles <i>before</i> atrial contraction"))
story.append(bb("<b>Contractile phase (atrial kick)</b> — contraction adds final 20–30% to ventricular filling"))
story.append(b("Atria increase ventricular filling effectiveness by ~<b>30%</b>"))
story.append(b("Without atrial contraction: OK at rest (heart has <b>300–400% reserve</b>), but exercise may cause shortness of breath"))
story.append(sp())
# ════════════════════ SECTION 7 ════════════════════
story.append(section_header("7. Ventricles as Pumps — Phases of Systole & Diastole", NAVY))
story.append(sp(6))
story.append(data_table(
["Phase", "What Happens", "Key Numbers"],
[
["Rapid filling (diastole)", "AV valves open; blood rushes in — first ⅓ of diastole", "70–80% of filling"],
["Slow filling (diastole)", "Trickle from veins through atria — middle ⅓", "Small amount"],
["Atrial kick (diastole)", "Atria contract; final thrust — last ⅓", "20–30% of filling"],
["Isovolumic contraction", "Pressure ↑, AV valves close (S1), no blood ejected yet", "0.02–0.03 sec"],
["Rapid ejection (systole)", "Semilunar valves open; ~70% of SV ejected — first ⅓ of ejection", "LV >80 mmHg; RV >8 mmHg"],
["Slow ejection (systole)", "Remaining ~30% of SV ejected — last ⅔ of ejection", "EF ≈ 60%"],
["Isovolumic relaxation", "Semilunar valves snap shut (S2); pressure drops, no volume change", "0.03–0.06 sec"],
],
[4.5*cm, 8.5*cm, 4.5*cm]
))
story.append(sp(6))
story.append(sub("Key Volume Numbers"))
story.append(data_table(
["Parameter", "Value"],
[["End-Diastolic Volume (EDV)", "110–120 mL"],
["Stroke Volume (SV)", "~70 mL"],
["End-Systolic Volume (ESV)", "~40–50 mL"],
["Ejection Fraction (EF)", "~60%"]],
[8.5*cm, 8.5*cm]
))
story.append(sp())
# ════════════════════ SECTION 8 ════════════════════
story.append(section_header("8. Heart Valves — Prevent Backflow", TEAL))
story.append(sp(6))
story.append(sub("AV Valves (Mitral & Tricuspid)"))
story.append(b("Prevent backflow from ventricles → atria during systole"))
story.append(b("<b>Chordae tendineae</b> (tendon-like cords) connect valve leaflets to <b>papillary muscles</b>"))
story.append(b("Papillary muscles contract with ventricle → pull chordae taut → prevent leaflets everting into atria"))
story.append(b("Chordae rupture or papillary muscle failure → valve prolapse → <b>regurgitation</b>"))
story.append(sp(4))
story.append(sub("Semilunar Valves (Aortic & Pulmonary)"))
story.append(b("Each has <b>3 cup-shaped cusps</b> — no chordae needed"))
story.append(b("When ventricle relaxes → backflow fills the cups → cusps meet → <b>snap shut</b>"))
story.append(b("Open with almost no resistance; close with no leakage"))
story.append(sp(4))
story.append(sub("Heart Sounds"))
story.append(data_table(
["Sound", "Cause", "Timing"],
[["S1 (lub)", "AV valves closing", "Start of systole"],
["S2 (dub)", "Semilunar valves closing", "End of systole"],
["S3 (path.)", "Rapid ventricular filling against stiff walls", "Early diastole"],
["S4 (path.)", "Atrial contraction against stiff ventricle", "Late diastole (just before S1)"]],
[3*cm, 9*cm, 5.5*cm]
))
story.append(sp())
# ════════════════════ SECTION 9 ════════════════════
story.append(section_header("9. Work Output of the Heart", colors.HexColor("#7c3aed")))
story.append(sp(6))
story.append(b("<b>Stroke work output</b> = energy converted to work each beat"))
story.append(b("Two components: <b>Volume-pressure work</b> (major — moving blood against pressure) & <b>Kinetic energy</b> (minor — ~1% normally)"))
story.append(b("Right ventricle does ~<b>1/6</b> the work of the left ventricle (pulmonary pressure = 1/6 systemic)"))
story.append(b("In <b>aortic stenosis</b>: kinetic energy can exceed <b>50%</b> of total work (blood forced through narrow valve at high speed)"))
story.append(sp())
# ════════════════════ SECTION 10 ════════════════════
story.append(section_header("10. Ventricular Volume-Pressure Relationship", BLUE))
story.append(sp(6))
story.append(b("<b>Diastolic pressure curve:</b> below 150 mL → pressure stays low (fills easily); above 150 mL → pressure rises sharply (fibrous tissue + pericardium limits stretch)"))
story.append(b("<b>Systolic pressure curve:</b> peaks at ~150–170 mL filling; if overfilled, systolic pressure actually falls (actin-myosin filaments pulled too far apart, fewer cross-bridges)"))
story.append(b("Optimal cardiac output = optimal filling — both overfilling and underfilling reduce efficiency"))
story.append(sp())
# ════════════════════ SECTION 11 ════════════════════
story.append(section_header("11. Regulation — Frank-Starling Mechanism (Intrinsic)", TEAL))
story.append(sp(6))
box_items = [
Paragraph("<b>Frank-Starling Law:</b> The more the heart is stretched during filling, the greater the force of contraction, and the more blood pumped into the aorta.",
S("", fontSize=10, textColor=NAVY, leading=15, fontName="Helvetica-Bold",
leftIndent=4, spaceBefore=2, spaceAfter=2)),
Paragraph("Within physiological limits — <i>the heart pumps ALL the blood that returns to it by way of the veins.</i>",
S("", fontSize=9.5, textColor=BLACK, leading=14, fontName="Helvetica-Oblique",
leftIndent=4, spaceBefore=2, spaceAfter=2)),
]
story.append(colored_box(box_items, bg=LBLUE, border=BLUE))
story.append(sp(6))
story.append(b("<b>Mechanism:</b> More filling → muscle stretched → more optimal actin-myosin overlap → greater cross-bridge force"))
story.append(b("Automatically <b>balances right and left ventricular output</b> second by second"))
story.append(b("<b>Bainbridge reflex:</b> Stretch of right atrium also increases heart rate by 10–20% (minor additional effect)"))
story.append(sp())
# ════════════════════ SECTION 12 ════════════════════
story.append(section_header("12. Nervous Control — Sympathetic & Parasympathetic", NAVY))
story.append(sp(6))
story.append(data_table(
["", "Sympathetic", "Parasympathetic (Vagal)"],
[["Heart Rate", "70 → 180–200 bpm (up to 250)", "Can briefly stop heart; escapes at 20–40 bpm"],
["Contractile Force", "Doubles (inotropy ↑↑)", "Reduces by 20–30%"],
["Net Output Change", "2–3× increase", "50%+ decrease"],
["Main Target", "Atria + Ventricles", "Mainly Atria (→ mainly affects HR)"],
["Baseline (at rest)", "Maintains output ~30% above zero", "Balanced with sympathetic tone"]],
[4*cm, 6.5*cm, 6.5*cm]
))
story.append(sp())
# ════════════════════ SECTION 13 ════════════════════
story.append(section_header("13. Effect of Potassium Ions (K⁺)", colors.HexColor("#b91c1c")))
story.append(sp(6))
story.append(b("<b>Excess K⁺ (hyperkalemia):</b> Heart becomes <b>dilated, flaccid, slow</b>"))
story.append(b("High extracellular K⁺ → <b>partially depolarizes</b> resting membrane (less negative) → weaker action potential → weaker contraction"))
story.append(b("Can also <b>block AV conduction</b>"))
story.append(b("<b>Danger zone: 8–12 mEq/L</b> (2–3× normal) → severe weakness, arrhythmia, <b>death</b>"))
story.append(sp())
# ════════════════════ SECTION 14 ════════════════════
story.append(section_header("14. Effect of Calcium Ions (Ca²⁺)", TEAL))
story.append(sp(6))
story.append(b("<b>Excess Ca²⁺ (hypercalcemia):</b> Opposite of K⁺ → heart moves toward <b>spastic contraction</b> (directly activates contractile process)"))
story.append(b("<b>Deficient Ca²⁺ (hypocalcemia):</b> Cardiac weakness (similar to hyperkalemia)"))
story.append(b("Blood Ca²⁺ is tightly regulated → cardiac Ca²⁺ effects are <b>rarely a clinical concern</b> in isolation"))
story.append(sp())
# ════════════════════ SECTION 15 ════════════════════
story.append(section_header("15. Effect of Temperature", colors.HexColor("#0891b2")))
story.append(sp(6))
story.append(b("<b>High temperature / fever:</b>"))
story.append(bb("Greatly <b>increases heart rate</b> (can double it)"))
story.append(bb("Heat increases membrane permeability to ions → speeds self-excitation"))
story.append(bb("Moderate rise (exercise) temporarily enhances contractile strength"))
story.append(bb("Prolonged elevation exhausts cardiac metabolic systems → <b>weakens heart</b>"))
story.append(b("<b>Low temperature / hypothermia:</b>"))
story.append(bb("Greatly decreases heart rate → can fall to a few beats/min (60–70°F / 15–21°C)"))
story.append(sp())
# ════════════════════ SECTION 16 ════════════════════
story.append(section_header("16. Arterial Pressure Load vs. Cardiac Output", NAVY))
story.append(sp(6))
story.append(b("Increasing aortic pressure does <b>NOT reduce cardiac output</b> until arterial pressure exceeds <b>~160 mmHg</b>"))
story.append(b("In the normal range (80–140 mmHg), cardiac output is determined by <b>venous return</b> (ease of peripheral blood flow), not arterial pressure"))
story.append(b("The Frank-Starling mechanism compensates automatically for increased pressure load"))
story.append(sp())
# ════════════════════ QUICK REFERENCE TABLE ════════════════════
story.append(hr())
story.append(section_header("⚡ QUICK REFERENCE — KEY NUMBERS AT A GLANCE", GOLD))
story.append(sp(6))
story.append(data_table(
["Parameter", "Value"],
[
["Action potential duration (ventricular)", "~0.3 sec (0.2 sec atrial)"],
["Resting membrane potential", "−85 mV"],
["Peak action potential", "+20 mV (amplitude = 105 mV)"],
["Cardiac cycle at 72 bpm", "0.833 sec"],
["Atrial kick contribution to filling", "20–30%"],
["End-diastolic volume (EDV)", "110–120 mL"],
["Stroke volume (SV)", "~70 mL"],
["End-systolic volume (ESV)", "~40–50 mL"],
["Ejection fraction (EF)", "~60%"],
["Isovolumic contraction time", "0.02–0.03 sec"],
["Isovolumic relaxation time", "0.03–0.06 sec"],
["LV pressure to open aortic valve", ">80 mmHg"],
["RV pressure to open pulmonary valve", ">8 mmHg"],
["Sympathetic — max heart rate", "180–200 bpm (rarely 250)"],
["Vagal stimulation — output reduction", "50%+ decrease"],
["Hyperkalemia danger zone", "8–12 mEq/L"],
["Cardiac output at rest", "4–6 L/min"],
["Cardiac output during exercise", "Up to 4–7× resting"],
["Arterial pressure limit (output drops beyond)", ">160 mmHg"],
["Atrial primer pump reserve", "300–400% cardiac reserve at rest"],
],
[9*cm, 8.5*cm]
))
story.append(sp(8))
# Footer note
story.append(Paragraph(
"Source: Guyton and Hall Textbook of Medical Physiology, ISBN 9780443111013, Chapter 9 (pp. 121–134) · Study guide compiled by Orris",
FOOTER_ST
))
# ── Build PDF ────────────────────────────────────────────────────
doc.build(story)
print("PDF created:", OUTPUT)
cd /home/daytona/workspace/guyton-ch9 && python3 build_pdf.py
ls -lh /home/daytona/workspace/guyton-ch9/Guyton_Ch9_Study_Guide.pdf
Guyton Ch9 Study Guide
PDF Document · PDF