Composition, regulation, function , secretion of pancreatic juice 6 marks

Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Loading Image
Loading Image
I have all the information needed for a thorough 6-mark answer. Here is the complete, well-organized response:

Pancreatic Juice - Composition, Secretion, Regulation, and Function


1. Composition

Pancreatic juice is an alkaline, protein-rich fluid secreted at approximately 1,500 mL/day. It has two main components:

A. Aqueous (Electrolyte) Component

  • pH: ~8.0 (alkaline), secreted primarily by centroacinar and ductal cells
  • HCO3-: ~113 mEq/L (far exceeds plasma level of 24 mEq/L) - the hallmark ion
  • Na+, K+: Approximately equal to plasma concentrations
  • Cl-: Inversely related to HCO3- (as flow rate increases, HCO3- rises and Cl- falls - see effect of flow rate below)
  • The juice is isosmotic with plasma throughout

B. Enzymatic Component

Secreted by acinar cells as inactive precursors (zymogens):
CategoryEnzymeActive FormAction
ProteolyticTrypsinogenTrypsinSplits proteins into peptides
ChymotrypsinogenChymotrypsinSplits proteins/peptides
ProcarboxypeptidaseCarboxypeptidaseReleases free amino acids
ProelastaseElastaseDigests elastin
AmylolyticPancreatic amylase(secreted active)Hydrolyzes starch, glycogen -> disaccharides
LipolyticPancreatic lipase(secreted active)Neutral fat -> fatty acids + monoglycerides
Cholesterol esterase(secreted active)Hydrolyzes cholesterol esters
Phospholipase A2(activated by trypsin)Splits fatty acids from phospholipids
NucleolyticDNase, RNase(active)Digests nucleic acids
The juice also contains trypsin inhibitor, secreted by acinar cells to prevent autodigestion.

2. Mechanism of Secretion

The two components are produced by separate cell types:

Enzymatic Secretion (Acinar Cells)

  • Digestive enzymes are synthesized in the rough ER, packaged into zymogen granules in the Golgi, and released by exocytosis into acinar lumens.
  • Proteases are stored and secreted as inactive zymogens to prevent autodigestion.

Aqueous/Bicarbonate Secretion (Centroacinar + Ductal Cells)

As shown in the diagram below:
Mechanism of pancreatic secretion showing acinar cells, centroacinar cells, ductal cells, and HCO3- transport
The key steps are:
  1. Carbonic anhydrase in ductal cells catalyzes: CO2 + H2O → H2CO3 → H+ + HCO3-
  2. HCO3- is secreted into the duct lumen via a Cl-/HCO3- exchanger (CFTR chloride channel recycles Cl-)
  3. H+ is exported basolaterally via Na+/H+ exchanger
  4. Na+ follows HCO3- into the lumen (through tight junctions and co-transport)
  5. Water follows osmotically, creating an isosmotic NaHCO3-rich fluid
Flow rate effect: At high flow rates, HCO3- concentration rises and Cl- falls (less time for exchange in large ducts). At low flow rates, HCO3- is reabsorbed in exchange for Cl-, so Cl- is higher.

3. Activation of Proteolytic Enzymes

A critical safety cascade:
  1. Enterokinase (brush border enzyme of duodenal mucosa) cleaves trypsinogen → trypsin
  2. Trypsin then activates all other zymogens: chymotrypsinogen, procarboxypeptidase, proelastase, phospholipase A2
  3. Trypsin also autocatalytically activates more trypsinogen
  4. Trypsin inhibitor in the juice neutralizes any trypsin prematurely activated within the pancreas
Clinical relevance: In acute pancreatitis, premature activation of trypsin within the pancreatic ducts initiates a cascade of autodigestion and inflammation. Serum amylase and lipase are elevated in pancreatitis.

4. Functions

FunctionComponent Responsible
Neutralize gastric acid (raises duodenal pH to 6-7)HCO3- in aqueous component
Protein digestionTrypsin, chymotrypsin, carboxypeptidase, elastase
Carbohydrate digestionPancreatic amylase
Fat digestionLipase, cholesterol esterase, phospholipase A2
Nucleic acid digestionDNase, RNase
The alkaline pH also ensures that pancreatic lipases remain active (they are inactivated at low pH), making neutralization a prerequisite for efficient fat digestion.

5. Regulation

Three major stimuli, each acting on different targets:
Regulation of pancreatic secretion - CCK acts on acinar cells via IP3/Ca2+, secretin on ductal cells via cAMP

Hormonal Regulation

StimulusTriggerSecreted byTarget CellSecond MessengerEffect
SecretinH+ (acidic chyme) in duodenumS cells of duodenum/jejunumDuctal cellscAMP ↑Large volume, HCO3--rich, enzyme-poor juice
CCKAmino acids (Phe, Met, Trp), fatty acids, small peptidesI cells of duodenum/jejunumAcinar cellsIP3/Ca2+ ↑Enzyme-rich, low-volume juice
  • CCK and secretin together potentiate each other's effects (multiplicative, not merely additive) to ensure enzymes are produced AND washed into the duodenum.

Neural Regulation

  • Parasympathetic (vagus/ACh): Acts on acinar cells via IP3/Ca2+ (same pathway as CCK); stimulates enzyme secretion; potentiates CCK action
  • Sympathetic: Inhibits pancreatic secretion
  • Conditioned reflex secretion (sight/smell of food) is vagally mediated

Inhibitory Regulation

  • Peptide YY (from ileal endocrine cells): signals completion of intestinal phase, inhibits secretion
  • Somatostatin: General inhibitor
  • Sympathetic activity: Inhibits secretion

6. Phases of Pancreatic Secretion

PhaseStimulusMediatorContribution
Cephalic (~20%)Sight, smell, taste, thought of foodVagus nerve (ACh)Mainly enzyme-rich; small volume
Gastric (~5-10%)Gastric distensionVagovagal reflex (ACh)Mainly enzyme-rich; small volume
Intestinal (~70-80%)Chyme in duodenum - H+, amino acids, fatsSecretin + CCK + AChBoth enzymatic and aqueous; copious
The intestinal phase dominates because it is when digestion actually occurs and is regulated by the most potent stimuli.

Sources:
  • Guyton & Hall Textbook of Medical Physiology, Ch. 65
  • Ganong's Review of Medical Physiology, 26th Ed., Ch. 25
  • Costanzo Physiology, 7th Ed., Ch. 8

Make a study guide PDF summarizing pancreatic juice for revision

Reading File
Running Command

mkdir -p /home/daytona/workspace/pancreatic-juice && ls /home/daytona/workspace/

Writing File

~/pancreatic-juice/make_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, mm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont

OUTPUT = "/home/daytona/workspace/pancreatic-juice/Pancreatic_Juice_Study_Guide.pdf"

# ── Colour palette ──────────────────────────────────────────────
NAVY       = colors.HexColor("#1B3A6B")
TEAL       = colors.HexColor("#0D7C8A")
LIGHT_TEAL = colors.HexColor("#E0F4F6")
AMBER      = colors.HexColor("#F5A623")
LIGHT_AMB  = colors.HexColor("#FFF4E0")
LIGHT_GREY = colors.HexColor("#F4F6F8")
MED_GREY   = colors.HexColor("#BDC3CC")
WHITE      = colors.white
RED_SOFT   = colors.HexColor("#C0392B")
GREEN_SOFT = colors.HexColor("#1A7A4A")
PURPLE     = colors.HexColor("#6C3483")
LIGHT_PURP = colors.HexColor("#F5EEF8")

# ── Styles ───────────────────────────────────────────────────────
base = getSampleStyleSheet()

def S(name, **kw):
    return ParagraphStyle(name, **kw)

TITLE    = S("TITLE",    fontSize=22, textColor=WHITE,   alignment=TA_CENTER,
             fontName="Helvetica-Bold", leading=28, spaceAfter=4)
SUBTITLE = S("SUBTITLE", fontSize=11, textColor=LIGHT_TEAL, alignment=TA_CENTER,
             fontName="Helvetica", leading=14, spaceAfter=2)

SEC_HDR  = S("SEC_HDR",  fontSize=13, textColor=WHITE,   fontName="Helvetica-Bold",
             leading=16, leftIndent=4)
SUB_HDR  = S("SUB_HDR",  fontSize=11, textColor=NAVY,    fontName="Helvetica-Bold",
             leading=14, spaceBefore=6, spaceAfter=2)
BODY     = S("BODY",     fontSize=9,  textColor=colors.HexColor("#2C3E50"),
             fontName="Helvetica",     leading=13, spaceAfter=2, alignment=TA_JUSTIFY)
BULLET   = S("BULLET",   fontSize=9,  textColor=colors.HexColor("#2C3E50"),
             fontName="Helvetica",     leading=12, leftIndent=12, spaceAfter=2,
             bulletIndent=4)
SMALL    = S("SMALL",    fontSize=8,  textColor=colors.HexColor("#555"),
             fontName="Helvetica-Oblique", leading=10, alignment=TA_CENTER)
KEYBOX   = S("KEYBOX",   fontSize=9,  textColor=NAVY,    fontName="Helvetica-Bold",
             leading=12, alignment=TA_CENTER)
WARN     = S("WARN",     fontSize=9,  textColor=RED_SOFT, fontName="Helvetica-Bold",
             leading=12, leftIndent=8)
TH_STYLE = S("TH",       fontSize=8,  textColor=WHITE,   fontName="Helvetica-Bold",
             leading=11, alignment=TA_CENTER)
TD_STYLE = S("TD",       fontSize=8,  textColor=colors.HexColor("#2C3E50"),
             fontName="Helvetica",     leading=11, alignment=TA_CENTER)
TD_LEFT  = S("TD_LEFT",  fontSize=8,  textColor=colors.HexColor("#2C3E50"),
             fontName="Helvetica",     leading=11, alignment=TA_LEFT)

# ── Helper: section banner ────────────────────────────────────────
def section_banner(text, colour=NAVY):
    data = [[Paragraph(text, SEC_HDR)]]
    t = Table(data, colWidths=[17*cm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), colour),
        ("ROUNDEDCORNERS", [4]),
        ("TOPPADDING",    (0,0), (-1,-1), 6),
        ("BOTTOMPADDING", (0,0), (-1,-1), 6),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
    ]))
    return t

def key_box(items, colour=LIGHT_TEAL, border=TEAL):
    """Horizontal row of key-point pills."""
    row = [Paragraph(i, KEYBOX) for i in items]
    widths = [17*cm / len(items)] * len(items)
    t = Table([row], colWidths=widths)
    t.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), colour),
        ("BOX",           (0,0), (-1,-1), 1.2, border),
        ("INNERGRID",     (0,0), (-1,-1), 0.5, border),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("ALIGN",         (0,0), (-1,-1), "CENTER"),
        ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ]))
    return t

def make_table(headers, rows, col_widths, alt_colour=LIGHT_GREY):
    data = [[Paragraph(h, TH_STYLE) for h in headers]]
    for i, row in enumerate(rows):
        styled = []
        for j, cell in enumerate(row):
            style = TD_LEFT if j == 0 else TD_STYLE
            styled.append(Paragraph(str(cell), style))
        data.append(styled)
    t = Table(data, colWidths=col_widths)
    style_cmds = [
        ("BACKGROUND",    (0,0), (-1,0),  NAVY),
        ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, alt_colour]),
        ("BOX",           (0,0), (-1,-1), 0.8, MED_GREY),
        ("INNERGRID",     (0,0), (-1,-1), 0.4, MED_GREY),
        ("TOPPADDING",    (0,0), (-1,-1), 4),
        ("BOTTOMPADDING", (0,0), (-1,-1), 4),
        ("LEFTPADDING",   (0,0), (-1,-1), 5),
        ("RIGHTPADDING",  (0,0), (-1,-1), 5),
        ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ]
    t.setStyle(TableStyle(style_cmds))
    return t

def highlight_box(text, bg=LIGHT_AMB, border=AMBER):
    data = [[Paragraph(text, BODY)]]
    t = Table(data, colWidths=[17*cm])
    t.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), bg),
        ("BOX",           (0,0), (-1,-1), 1.5, border),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("RIGHTPADDING",  (0,0), (-1,-1), 10),
        ("TOPPADDING",    (0,0), (-1,-1), 6),
        ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ]))
    return t

# ── Build document ───────────────────────────────────────────────
doc = SimpleDocTemplate(
    OUTPUT, pagesize=A4,
    leftMargin=2*cm, rightMargin=2*cm,
    topMargin=1.8*cm, bottomMargin=1.8*cm,
    title="Pancreatic Juice - Study Guide",
    author="Orris Medical"
)

story = []
SP = lambda n=4: Spacer(1, n)
HR = lambda: HRFlowable(width="100%", thickness=0.5, color=MED_GREY, spaceAfter=4)

# ════════════════════════════════════════════════════════════════
# COVER HEADER
# ════════════════════════════════════════════════════════════════
cover_data = [[
    Paragraph("🫀 PANCREATIC JUICE", TITLE),
    Paragraph("Composition · Secretion · Regulation · Function", SUBTITLE),
    Paragraph("Physiology Revision Guide  |  Based on Guyton, Ganong & Costanzo", SUBTITLE),
]]
cover_t = Table(cover_data, colWidths=[17*cm])
cover_t.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), NAVY),
    ("TOPPADDING",    (0,0), (-1,-1), 14),
    ("BOTTOMPADDING", (0,0), (-1,-1), 14),
    ("LEFTPADDING",   (0,0), (-1,-1), 12),
    ("RIGHTPADDING",  (0,0), (-1,-1), 12),
    ("ROUNDEDCORNERS",[6]),
]))
story += [cover_t, SP(10)]

# Quick-facts strip
story += [
    key_box(["~1,500 mL / day", "pH 7.8 – 8.4", "Isosmotic with plasma",
             "Secreted by exocrine pancreas", "Empties into duodenum"]),
    SP(10)
]

# ════════════════════════════════════════════════════════════════
# SECTION 1 – COMPOSITION
# ════════════════════════════════════════════════════════════════
story += [section_banner("1.  COMPOSITION OF PANCREATIC JUICE", NAVY), SP(6)]

story += [Paragraph("<b>A. Aqueous (Electrolyte) Component</b> — secreted by centroacinar & ductal cells", SUB_HDR)]
story += [
    Paragraph("• <b>HCO<sub>3</sub><sup>–</sup>:</b>  ~113 mEq/L  (plasma = 24 mEq/L) — the hallmark ion, responsible for alkalinity", BULLET),
    Paragraph("• <b>Na<sup>+</sup>, K<sup>+</sup>:</b>  approximately equal to plasma concentrations", BULLET),
    Paragraph("• <b>Cl<sup>–</sup>:</b>  inversely related to HCO<sub>3</sub><sup>–</sup>  (rises when flow rate falls)", BULLET),
    Paragraph("• Fluid is <b>isosmotic</b> with plasma throughout the physiological flow range", BULLET),
    SP(4)
]

story += [Paragraph("<b>B. Enzymatic Component</b> — secreted by acinar cells as inactive zymogens", SUB_HDR)]

enz_headers = ["Category", "Zymogen / Inactive Form", "Active Enzyme", "Action"]
enz_rows = [
    ["Proteolytic", "Trypsinogen",        "Trypsin",          "Cleaves proteins → peptides (endo)"],
    ["",            "Chymotrypsinogen",   "Chymotrypsin",     "Cleaves aromatic AA peptide bonds"],
    ["",            "Procarboxypeptidase","Carboxypeptidase",  "Releases free amino acids (exo)"],
    ["",            "Proelastase",        "Elastase",          "Digests elastin & other proteins"],
    ["Amylolytic",  "—  (active)",        "Pancreatic amylase","Starch/glycogen → disaccharides"],
    ["Lipolytic",   "—  (active)",        "Pancreatic lipase", "Triglycerides → FA + monoglyceride"],
    ["",            "—  (active)",        "Cholesterol esterase","Cholesterol esters → cholesterol + FA"],
    ["",            "Prophospholipase A2","Phospholipase A2",  "Phospholipids → lyso-phospholipid + FA"],
    ["Nucleolytic", "—  (active)",        "DNase / RNase",     "Digests DNA and RNA"],
]
story += [make_table(enz_headers, enz_rows, [2.5*cm, 3.8*cm, 3.8*cm, 6.9*cm]), SP(6)]

story += [
    highlight_box(
        "<b>Trypsin Inhibitor:</b>  Also secreted by acinar cells; neutralises any trypsin "
        "prematurely activated inside the pancreas, preventing autodigestion. "
        "Inadequate inhibitor activity is a proposed trigger in acute pancreatitis.",
        bg=LIGHT_PURP, border=PURPLE
    ),
    SP(8)
]

# ════════════════════════════════════════════════════════════════
# SECTION 2 – MECHANISM OF SECRETION
# ════════════════════════════════════════════════════════════════
story += [section_banner("2.  MECHANISM OF SECRETION", TEAL), SP(6)]

story += [Paragraph("<b>A. Enzymatic Secretion (Acinar Cells)</b>", SUB_HDR)]
story += [
    Paragraph("1.  Enzymes are synthesised on <b>rough ER</b>, processed in <b>Golgi</b>, and stored as <b>zymogen granules</b>.", BULLET),
    Paragraph("2.  On stimulation (CCK / ACh), zymogen granules fuse with apical membrane and undergo <b>exocytosis</b>.", BULLET),
    Paragraph("3.  Proteases are released in <b>inactive form</b> to protect the acinar cell from autodigestion.", BULLET),
    SP(4)
]

story += [Paragraph("<b>B. Aqueous / Bicarbonate Secretion (Centroacinar + Ductal Cells)</b>", SUB_HDR)]
story += [
    Paragraph("1.  <b>Carbonic anhydrase</b> inside ductal cells: CO<sub>2</sub> + H<sub>2</sub>O → H<sub>2</sub>CO<sub>3</sub> → H<sup>+</sup> + HCO<sub>3</sub><sup>–</sup>", BULLET),
    Paragraph("2.  <b>HCO<sub>3</sub><sup>–</sup></b> is secreted into the duct lumen via a <b>Cl<sup>–</sup>/HCO<sub>3</sub><sup>–</sup> exchanger</b> (CFTR recycles Cl<sup>–</sup>).", BULLET),
    Paragraph("3.  <b>H<sup>+</sup></b> is exported basolaterally via <b>Na<sup>+</sup>/H<sup>+</sup> exchanger</b>.", BULLET),
    Paragraph("4.  <b>Na<sup>+</sup></b> enters the lumen by co-transport and through paracellular tight junctions.", BULLET),
    Paragraph("5.  Water follows osmotically → isotonic NaHCO<sub>3</sub> solution.", BULLET),
    SP(4)
]

story += [
    highlight_box(
        "<b>Flow-rate effect on composition:</b>  At HIGH flow rates (e.g., after secretin), "
        "HCO<sub>3</sub><sup>–</sup> concentration rises and Cl<sup>–</sup> falls — less time for exchange in large ducts. "
        "At LOW flow rates, HCO<sub>3</sub><sup>–</sup> is reabsorbed for Cl<sup>–</sup>, so Cl<sup>–</sup> predominates.",
        bg=LIGHT_TEAL, border=TEAL
    ),
    SP(8)
]

# ════════════════════════════════════════════════════════════════
# SECTION 3 – ACTIVATION CASCADE
# ════════════════════════════════════════════════════════════════
story += [section_banner("3.  ACTIVATION OF PROTEOLYTIC ENZYMES", colors.HexColor("#5D4037")), SP(6)]

story += [
    Paragraph(
        "Proteolytic enzymes are secreted as <b>inactive zymogens</b> and activated sequentially in the "
        "intestinal lumen — a safety mechanism preventing pancreatic autodigestion.",
        BODY
    ),
    SP(4)
]

cascade_headers = ["Step", "Event", "Enzyme Involved"]
cascade_rows = [
    ["1", "Duodenal brush-border enzyme Enterokinase cleaves trypsinogen",               "Enterokinase → Trypsin"],
    ["2", "Trypsin autocatalytically activates more trypsinogen",                         "Trypsin → Trypsin"],
    ["3", "Trypsin activates chymotrypsinogen",                                           "Trypsin → Chymotrypsin"],
    ["4", "Trypsin activates procarboxypeptidase",                                        "Trypsin → Carboxypeptidase"],
    ["5", "Trypsin activates proelastase",                                                "Trypsin → Elastase"],
    ["6", "Trypsin activates prophospholipase A2",                                        "Trypsin → Phospholipase A2"],
]
story += [make_table(cascade_headers, cascade_rows, [1*cm, 10*cm, 6*cm]), SP(6)]

story += [
    highlight_box(
        "<b>⚠ Clinical Correlation – Acute Pancreatitis:</b>  Premature activation of trypsin "
        "WITHIN the pancreatic duct initiates the cascade of autodigestion. "
        "Serum <b>amylase</b> and <b>lipase</b> rise markedly — used for diagnosis. "
        "Phospholipase A2 activation generates lyso-phosphatidylcholine, which damages cell membranes.",
        bg=colors.HexColor("#FDEDEC"), border=RED_SOFT
    ),
    SP(8)
]

# ════════════════════════════════════════════════════════════════
# SECTION 4 – FUNCTIONS
# ════════════════════════════════════════════════════════════════
story += [section_banner("4.  FUNCTIONS OF PANCREATIC JUICE", GREEN_SOFT), SP(6)]

fn_headers = ["Function", "Component Responsible", "Detail"]
fn_rows = [
    ["Neutralise gastric acid",   "HCO₃⁻ (aqueous component)",    "Raises duodenal pH from ~2 to 6–7; jejunal pH → nearly neutral"],
    ["Protein digestion",         "Trypsin, chymotrypsin, carboxypeptidase, elastase", "Endopeptidases + exopeptidase; complete digestion to amino acids"],
    ["Carbohydrate digestion",    "Pancreatic amylase",            "Starch/glycogen → disaccharides & trisaccharides (not cellulose)"],
    ["Fat digestion",             "Lipase, cholesterol esterase, phospholipase A2", "Triglycerides, cholesterol esters, and phospholipids hydrolysed"],
    ["Nucleic acid digestion",    "DNase, RNase",                  "Breaks down dietary DNA and RNA"],
    ["Enable lipase activity",    "HCO₃⁻ neutralisation",         "Pancreatic lipases are inactivated at low pH; neutralisation is prerequisite"],
]
story += [make_table(fn_headers, fn_rows, [3.8*cm, 5.5*cm, 7.7*cm]), SP(8)]

# ════════════════════════════════════════════════════════════════
# SECTION 5 – REGULATION
# ════════════════════════════════════════════════════════════════
story += [section_banner("5.  REGULATION OF PANCREATIC SECRETION", colors.HexColor("#6A1B9A")), SP(6)]

story += [Paragraph("<b>A. Hormonal Regulation (Intestinal Phase)</b>", SUB_HDR)]

reg_headers = ["Stimulus", "Stimulus Source", "Secreted by", "Target Cell", "2nd Messenger", "Effect on Juice"]
reg_rows = [
    ["H⁺ (acidic chyme)",        "Duodenal lumen", "S cells (duodenum/jejunum)", "Ductal cells",  "cAMP ↑",        "Large volume, high HCO₃⁻, low enzyme"],
    ["Amino acids, fatty acids,\nsmall peptides", "Duodenal lumen", "I cells (duodenum/jejunum)", "Acinar cells", "IP₃ / Ca²⁺ ↑", "Enzyme-rich, low volume"],
]
story += [make_table(reg_headers, reg_rows, [2.8*cm, 2.5*cm, 3.2*cm, 2.5*cm, 2.5*cm, 3.5*cm])]
story += [
    SP(4),
    Paragraph(
        "<b>Potentiation:</b>  CCK and secretin act synergistically (multiplicative effect) — "
        "together they ensure enzymes are produced AND flushed into the duodenum by the aqueous component.",
        BODY
    ),
    SP(6)
]

story += [Paragraph("<b>B. Neural Regulation</b>", SUB_HDR)]
story += [
    Paragraph("• <b>Parasympathetic (vagus / ACh):</b> Acts on acinar cells via IP₃/Ca²⁺ (same pathway as CCK); stimulates enzyme secretion; potentiates CCK effect.", BULLET),
    Paragraph("• <b>Sympathetic:</b> Inhibits pancreatic secretion.", BULLET),
    Paragraph("• <b>Conditioned reflex:</b> Sight/smell of food → vagally mediated enzyme secretion (cephalic phase).", BULLET),
    SP(6)
]

story += [Paragraph("<b>C. Inhibitory Mediators</b>", SUB_HDR)]
story += [
    Paragraph("• <b>Peptide YY</b> (from ileal endocrine cells): signals end of intestinal phase; inhibits secretion ('ileal brake').", BULLET),
    Paragraph("• <b>Somatostatin:</b> general inhibitor of GI secretions, including pancreatic juice.", BULLET),
    Paragraph("• <b>Sympathetic activity:</b> direct inhibition.", BULLET),
    SP(8)
]

# ════════════════════════════════════════════════════════════════
# SECTION 6 – PHASES
# ════════════════════════════════════════════════════════════════
story += [section_banner("6.  PHASES OF PANCREATIC SECRETION", AMBER), SP(6)]

phase_headers = ["Phase", "% of Total", "Stimulus", "Mediator", "Type of Juice"]
phase_rows = [
    ["Cephalic", "~20%",    "Sight, smell, taste, thought of food", "Vagus nerve (ACh)",         "Mainly enzyme-rich; small volume"],
    ["Gastric",  "~5–10%",  "Gastric distension",                  "Vagovagal reflex (ACh)",    "Mainly enzyme-rich; small volume"],
    ["Intestinal","~70–80%","Acidic chyme, AA, fatty acids in duodenum","Secretin + CCK + ACh",  "Both enzymatic AND aqueous; copious"],
]
story += [make_table(phase_headers, phase_rows, [2*cm, 1.8*cm, 4.8*cm, 4.4*cm, 4*cm], alt_colour=LIGHT_AMB), SP(8)]

# ════════════════════════════════════════════════════════════════
# SECTION 7 – HIGH-YIELD MEMORY AIDS
# ════════════════════════════════════════════════════════════════
story += [section_banner("7.  HIGH-YIELD MEMORY AIDS", colors.HexColor("#C0392B")), SP(6)]

story += [
    Paragraph("<b>Mnemonic — Pancreatic Enzymes: 'TCC PLCD'</b>", SUB_HDR),
    Paragraph("T – Trypsin  |  C – Chymotrypsin  |  C – Carboxypeptidase  |  "
              "P – (Pro)elastase  |  L – Lipase  |  C – Cholesterol esterase  |  D – DNase/RNase", BODY),
    SP(4)
]

story += [
    Paragraph("<b>Key Numbers to Remember</b>", SUB_HDR),
    key_box(["1,500 mL/day", "pH 8.0", "HCO₃⁻ 113 mEq/L", "Intestinal phase 70–80%"]),
    SP(6)
]

story += [
    Paragraph("<b>Secretin vs CCK — Quick Contrast</b>", SUB_HDR),
    make_table(
        ["Feature", "Secretin", "CCK"],
        [
            ["Trigger",          "H⁺ (acid) in duodenum",         "Amino acids, fatty acids, small peptides"],
            ["Secreted by",      "S cells",                        "I cells"],
            ["Target",           "Ductal cells",                   "Acinar cells"],
            ["2nd messenger",    "cAMP",                           "IP₃ / Ca²⁺"],
            ["Juice produced",   "High volume, high HCO₃⁻, low enzyme", "Low volume, enzyme-rich"],
            ["Also stimulates",  "Bile secretion",                 "Gallbladder contraction"],
        ],
        [4*cm, 6.5*cm, 6.5*cm]
    ),
    SP(8)
]

# Footer note
story += [
    HR(),
    Paragraph(
        "Sources: Guyton & Hall Textbook of Medical Physiology 14e  |  "
        "Ganong's Review of Medical Physiology 26e  |  Costanzo Physiology 7e",
        SMALL
    ),
    SP(2),
    Paragraph("Generated by Orris Medical AI  •  For revision purposes only", SMALL),
]

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

cd /home/daytona/workspace/pancreatic-juice && python make_pdf.py 2>&1

Running Command

ls -lh /home/daytona/workspace/pancreatic-juice/Pancreatic_Juice_Study_Guide.pdf

Your study guide is ready! Download it here:

Pancreatic Juice Study Guide

PDF Document · PDF


Here is what the PDF covers across 7 color-coded sections:
  1. Composition - Aqueous (electrolyte) component with HCO3- values, and a full enzyme table (zymogen → active enzyme → action)
  2. Mechanism of Secretion - Acinar cell exocytosis pathway + ductal cell bicarbonate secretion steps (carbonic anhydrase cascade), including the flow-rate effect on Cl-/HCO3- composition
  3. Activation Cascade - Step-by-step enterokinase → trypsin → all other enzymes, with the acute pancreatitis clinical correlation highlighted
  4. Functions - Table mapping each function to its responsible component
  5. Regulation - Secretin vs CCK hormonal table (triggers, cells, second messengers, juice produced), neural regulation, and inhibitory mediators (Peptide YY, somatostatin)
  6. Phases of Secretion - Cephalic (20%), Gastric (5-10%), Intestinal (70-80%) comparison table
  7. Memory Aids - TCC PLCD mnemonic, key numbers strip, and a Secretin vs CCK quick-contrast table
Sources: Guyton & Hall 14e, Ganong 26e, Costanzo Physiology 7e.
This is a shared conversation. Sign in to Orris to start your own chat.