propofol
propofol pharmacology anesthesia

| Parameter | Value |
|---|---|
| Induction dose | 1-2.5 mg/kg IV (children 2.5-3.5 mg/kg) |
| Onset | ~30-60 seconds |
| Duration after single bolus | 3-8 minutes |
| Vdss | 2-10 L/kg |
| Protein binding | 97% |
| Clearance | 20-30 mL/kg/min |
| Elimination t½ | 4-23 hours |

| Indication | Dose |
|---|---|
| Induction of GA | 1-2.5 mg/kg IV (reduced in elderly, with premedication; higher in children) |
| Maintenance of GA (TIVA) | 100-200 mcg/kg/min infusion (target plasma 3-8 mcg/mL) |
| Cardiac surgery maintenance | 50-200 mcg/kg/min + opioid |
| ICU sedation | 25-75 mcg/kg/min (target 1-2 mcg/mL) |
| Procedural sedation | 25-75 mcg/kg/min |
| PONV treatment | 10-20 mg IV bolus or 10 mcg/kg/min |
make it pdf
ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"
mkdir -p /home/daytona/workspace/propofol && python3 -c "import reportlab; print…
~/propofol/build_pdf.py
#!/usr/bin/env python3
"""Build a well-formatted PDF on Propofol using ReportLab."""
import io
import os
import requests
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import cm
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, Image, KeepTogether
)
from reportlab.platypus.flowables import PageBreak
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
OUTPUT = "/home/daytona/workspace/propofol/Propofol.pdf"
# ── Colour palette ──────────────────────────────────────────────────────────
DARK_BLUE = colors.HexColor("#1a3a5c")
MID_BLUE = colors.HexColor("#2563a8")
LIGHT_BLUE = colors.HexColor("#dbeafe")
ACCENT = colors.HexColor("#e74c3c")
GREY_BG = colors.HexColor("#f8f9fa")
GREY_LINE = colors.HexColor("#dee2e6")
WHITE = colors.white
TEXT_DARK = colors.HexColor("#1e293b")
TEXT_MID = colors.HexColor("#475569")
# ── Styles ───────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
cover_title = S("CoverTitle",
fontSize=36, leading=44, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER, spaceAfter=8)
cover_sub = S("CoverSub",
fontSize=14, leading=18, textColor=colors.HexColor("#bfdbfe"),
fontName="Helvetica", alignment=TA_CENTER, spaceAfter=6)
cover_meta = S("CoverMeta",
fontSize=10, leading=14, textColor=colors.HexColor("#93c5fd"),
fontName="Helvetica", alignment=TA_CENTER)
h1 = S("H1",
fontSize=16, leading=20, textColor=WHITE,
fontName="Helvetica-Bold", spaceBefore=14, spaceAfter=2,
backColor=DARK_BLUE, leftIndent=-1*cm, rightIndent=-1*cm,
borderPad=(6,10,6,10))
h2 = S("H2",
fontSize=12, leading=16, textColor=DARK_BLUE,
fontName="Helvetica-Bold", spaceBefore=10, spaceAfter=4,
borderPad=0)
body = S("Body",
fontSize=10, leading=15, textColor=TEXT_DARK,
fontName="Helvetica", alignment=TA_JUSTIFY, spaceAfter=4)
body_bold = S("BodyBold",
fontSize=10, leading=15, textColor=TEXT_DARK,
fontName="Helvetica-Bold", spaceAfter=4)
bullet = S("Bullet",
fontSize=10, leading=15, textColor=TEXT_DARK,
fontName="Helvetica", leftIndent=16, firstLineIndent=-10,
spaceAfter=3, bulletText="•")
caption = S("Caption",
fontSize=8, leading=11, textColor=TEXT_MID,
fontName="Helvetica-Oblique", alignment=TA_CENTER, spaceAfter=6)
note = S("Note",
fontSize=8.5, leading=13, textColor=TEXT_MID,
fontName="Helvetica-Oblique", backColor=GREY_BG,
borderPad=4, leftIndent=4, spaceAfter=6)
warn = S("Warn",
fontSize=9.5, leading=14, textColor=colors.HexColor("#7c0000"),
fontName="Helvetica-Bold", backColor=colors.HexColor("#ffe4e4"),
borderPad=6, leftIndent=4, spaceAfter=8)
# ── Image helper ─────────────────────────────────────────────────────────────
def fetch_img(url, width_cm, height_cm=None):
try:
r = requests.get(url, timeout=15)
r.raise_for_status()
buf = io.BytesIO(r.content)
w = width_cm * cm
if height_cm:
return Image(buf, width=w, height=height_cm*cm)
img = Image(buf, width=w)
img.hAlign = "CENTER"
return img
except Exception as e:
return Paragraph(f"[Image unavailable: {e}]", caption)
# ── Helper: section header ────────────────────────────────────────────────────
def section(title):
return [
Spacer(1, 0.2*cm),
Table([[Paragraph(title, S("SH",
fontSize=13, leading=17, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_LEFT)
]], colWidths=[17.5*cm]),
TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0),(-1,-1), 6),
("BOTTOMPADDING", (0,0),(-1,-1), 6),
("LEFTPADDING", (0,0),(-1,-1), 10),
("RIGHTPADDING", (0,0),(-1,-1), 10),
("ROUNDEDCORNERS",(0,0),(-1,-1), [4,4,4,4]),
]),
Spacer(1, 0.25*cm),
]
def subsection(title):
return [
Spacer(1, 0.12*cm),
Paragraph(title, h2),
HRFlowable(width="100%", thickness=1.2, color=MID_BLUE, spaceAfter=4),
]
def bullets(items):
return [Paragraph(i, bullet) for i in items]
def ref(text):
return Paragraph(f"<i>{text}</i>", note)
# ── PK / PD table helper ──────────────────────────────────────────────────────
def make_table(headers, rows, col_widths=None):
data = [headers] + rows
if not col_widths:
n = len(headers)
col_widths = [17.5*cm / n] * n
hdr_style = ParagraphStyle("TH", fontSize=9, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_CENTER)
cell_style = ParagraphStyle("TD", fontSize=9, fontName="Helvetica",
textColor=TEXT_DARK, alignment=TA_LEFT, leading=12)
formatted = []
for ri, row in enumerate(data):
formatted.append([
Paragraph(str(cell), hdr_style if ri == 0 else cell_style)
for cell in row
])
t = Table(formatted, colWidths=col_widths, repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("BACKGROUND", (0,1), (-1,-1), WHITE),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, GREY_BG]),
("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
("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"),
]))
return t
# ── Document setup ────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=2*cm, rightMargin=2*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="Propofol – Comprehensive Pharmacology Review",
author="Orris Medical AI",
subject="Pharmacology",
)
story = []
# ══════════════════════════════════════════════════════════════════════════════
# COVER PAGE
# ══════════════════════════════════════════════════════════════════════════════
cover_bg = Table(
[[Paragraph("PROPOFOL", cover_title)],
[Paragraph("2,6-Diisopropylphenol", cover_sub)],
[Spacer(1, 0.4*cm)],
[Paragraph("Comprehensive Pharmacology Review", S("CS",
fontSize=16, leading=20, textColor=colors.HexColor("#93c5fd"),
fontName="Helvetica-Bold", alignment=TA_CENTER))],
[Spacer(1, 0.3*cm)],
[HRFlowable(width="80%", thickness=1.5, color=colors.HexColor("#60a5fa"),
hAlign="CENTER", spaceAfter=12)],
[Paragraph("Chemistry · Mechanism · Pharmacokinetics · Organ Effects · Dosing · Adverse Effects", cover_meta)],
[Spacer(1, 0.5*cm)],
[Paragraph("Sources: Miller's Anesthesia 10e · Katzung's BCP 16e · Barash Clinical Anesthesia 9e · Sabiston Surgery", cover_meta)],
[Spacer(1, 0.3*cm)],
[Paragraph("July 2026 | Orris Medical AI", cover_meta)],
],
colWidths=[17.5*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), 20),
("RIGHTPADDING", (0,0), (-1,-1), 20),
("ROUNDEDCORNERS",(0,0), (-1,-1), [8,8,8,8]),
]))
story.append(Spacer(1, 2*cm))
story.append(cover_bg)
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# 1. CHEMISTRY & FORMULATION
# ══════════════════════════════════════════════════════════════════════════════
story += section("1. Chemistry & Formulation")
story.append(Paragraph(
"Propofol (2,6-diisopropylphenol) is an <b>alkylphenol</b> that is chemically "
"distinct from all other IV anesthetic classes (barbiturates, benzodiazepines, "
"etomidate, ketamine). Because it is poorly water-soluble, it is formulated as "
"an oil-in-water emulsion.", body))
story += subsection("Composition of the Standard 1% Emulsion")
story.append(make_table(
["Component", "Concentration", "Role"],
[
["Propofol (2,6-diisopropylphenol)", "1% (10 mg/mL)", "Active ingredient"],
["Soybean oil", "10%", "Lipid vehicle"],
["Glycerol", "2.25%", "Tonicity agent"],
["Egg-yolk lecithin (phospholipid)", "1.2%", "Emulsifier"],
["Sodium metabisulfite (some brands)", "trace", "Antimicrobial retardant"],
],
[6.5*cm, 4*cm, 7*cm]
))
story.append(Spacer(1, 0.15*cm))
story += bullets([
"pH ~7; milky-white, slightly viscous appearance",
"A 2% formulation (20 mg/mL) is available in some countries",
"Bacterial retardants are added, but opened vials must be used within <b>12 hours</b>",
"Metabisulfite-containing formulations: use with caution in reactive airway disease or sulfite allergy",
"Egg/soy allergy: historically cautioned, but evidence of cross-reactivity is limited",
])
story.append(ref("Katzung's Basic and Clinical Pharmacology, 16th ed."))
# ══════════════════════════════════════════════════════════════════════════════
# 2. MECHANISM OF ACTION
# ══════════════════════════════════════════════════════════════════════════════
story += section("2. Mechanism of Action")
story.append(Paragraph(
"Propofol potentiates <b>GABA-A receptor-mediated chloride currents</b>. Binding "
"to the GABA-A receptor complex enhances Cl⁻ influx, hyperpolarising the neuron "
"and suppressing excitability. This depresses the <b>ascending arousal system</b> — "
"including projections from the locus coeruleus, ventral tegmental area, "
"tuberomammillary nucleus, dorsal raphe nucleus, and basal forebrain nuclei — "
"while increasing inhibitory interneuron activity in the cortex, ultimately "
"suppressing consciousness.", body))
story.append(Spacer(1, 0.15*cm))
img_moa = fetch_img(
"https://cdn.orris.care/cdss_images/9529be85ab0b8eb43cdbcdab55fa754e25b0f470d3c6d3039d710c36f405750b.png",
14, 8.5
)
img_moa.hAlign = "CENTER"
story.append(img_moa)
story.append(Paragraph(
"Figure 1. Propofol's proposed mechanism of action. Propofol enhances GABA-mediated "
"inhibitory interneuron activity in the cortex (inset) and suppresses multiple ascending "
"arousal nuclei (locus coeruleus, VTA, tuberomammillary, dorsal raphe, PPT/LDT).",
caption))
story.append(ref("Barash, Cullen & Stoelting's Clinical Anesthesia, 9th ed., Fig. 19-6"))
# ══════════════════════════════════════════════════════════════════════════════
# 3. PHARMACOKINETICS
# ══════════════════════════════════════════════════════════════════════════════
story += section("3. Pharmacokinetics")
story += subsection("Key PK Parameters")
story.append(make_table(
["Parameter", "Propofol", "Thiopental (comparison)"],
[
["Induction dose (IV)", "1–2.5 mg/kg (adults)", "3–5 mg/kg"],
["Duration after bolus", "3–8 min", "5–10 min"],
["Volume of distribution (Vdss)", "2–10 L/kg", "2.5 L/kg"],
["Distribution t½", "2–4 min", "2–4 min"],
["Protein binding", "97%", "83%"],
["Clearance", "20–30 mL/kg/min", "3.4 mL/kg/min"],
["Elimination t½", "4–23 h", "~11 h"],
["Target plasma – maintenance", "3–8 mcg/mL", "N/A"],
["Target plasma – sedation", "1–2 mcg/mL", "N/A"],
],
[6.5*cm, 5.5*cm, 5.5*cm]
))
story.append(ref("Katzung's Basic and Clinical Pharmacology, 16th ed., Table 25-2"))
story += subsection("Redistribution and Metabolism")
story += bullets([
"<b>Single bolus:</b> awakening (~8–10 min) is driven primarily by redistribution from brain → skeletal muscle, not metabolism",
"<b>Hepatic metabolism:</b> conjugation to inactive water-soluble metabolites excreted renally",
"<b>Extrahepatic metabolism:</b> plasma clearance exceeds hepatic blood flow; the lungs may eliminate up to 30% of a bolus dose",
"<b>Three-compartment model</b> best describes propofol kinetics and forms the basis for target-controlled infusion (TCI)",
])
story += subsection("Context-Sensitive Half-Time")
story.append(Paragraph(
"The context-sensitive half-time describes how long it takes for plasma concentration "
"to fall by 50% after stopping a continuous infusion, as a function of infusion duration. "
"Propofol's context-sensitive half-time remains short (~30–40 min) even after 8 hours "
"of infusion — a major advantage over thiopental, which accumulates rapidly.", body))
img_csht = fetch_img(
"https://cdn.orris.care/cdss_images/11dfec3d12035a92f9b1dff99d81a8b5889ee893dbe906916c200f9e532e13a9.png",
13, 7.5
)
img_csht.hAlign = "CENTER"
story.append(img_csht)
story.append(Paragraph(
"Figure 2. Context-sensitive half-time comparison. Propofol maintains a short, "
"relatively flat half-time even after prolonged infusions, unlike thiopental (steep rise) "
"or midazolam (rises to ~75 min at 8 h). This property makes propofol the preferred "
"agent for intravenous maintenance anesthesia (TIVA).",
caption))
story.append(ref("Katzung's Basic and Clinical Pharmacology, 16th ed., Fig. 25-8"))
story += subsection("Dosing in Obesity")
story += bullets([
"<b>Bolus/induction:</b> dose to lean body mass (LBM) to avoid over-dosing",
"<b>Continuous infusion:</b> total body weight (TBW) or corrected body weight (CBW = IBW + 0.4×[TBW−IBW]) is recommended; LBM-based infusions may under-dose obese patients",
"Propofol clearance is increased in obesity due to higher liver volume and hepatic blood flow",
"Obese patients may show earlier awareness after infusion termination than non-obese patients",
])
story.append(ref("Miller's Anesthesia, 10th ed., Chapter 16"))
# ══════════════════════════════════════════════════════════════════════════════
# 4. ORGAN SYSTEM EFFECTS
# ══════════════════════════════════════════════════════════════════════════════
story += section("4. Organ System Effects")
story += subsection("4A. Central Nervous System")
story.append(make_table(
["Effect", "Details"],
[
["Hypnosis", "Produces unconsciousness dose-dependently; not analgesic"],
["CBF reduction", "Reduces cerebral blood flow by 53–79% (surgical doses in volunteers)"],
["CMRO₂ reduction", "Reduces cerebral metabolic rate by 48–58% (PET studies)"],
["ICP / IOP", "Decreases intracranial pressure and intraocular pressure"],
["Autoregulation", "CO₂ reactivity and cerebrovascular autoregulation preserved, even at burst-suppression doses"],
["EEG", "Burst suppression at high doses; prominent high-amplitude beta activity"],
["Seizures", "Anticonvulsant effect predominates; safe in seizure disorders"],
["Neuroprotection", "Comparable to thiopental and isoflurane in focal ischemia models"],
["Excitatory movements", "Occasional twitching/opisthotonos at induction — not true seizures"],
],
[5*cm, 12.5*cm]
))
story.append(Paragraph(
"⚠ Caution: Reduced cerebral perfusion pressure may result from the combination of "
"decreased MAP (vasodilation) and decreased CBF, even though ICP is lowered.",
warn))
story.append(ref("Miller's Anesthesia, 10th ed. | Katzung's BCP, 16th ed."))
story += subsection("4B. Cardiovascular System")
story += bullets([
"<b>Blood pressure:</b> Most pronounced BP decrease of all IV induction agents",
"<b>Mechanism:</b> Profound arterial AND venous vasodilation → reduced preload and afterload",
"<b>Heart rate:</b> Baroreflex is blunted → minimal compensatory tachycardia; bradycardia and asystole have been reported",
"<b>Risk factors for severe hypotension:</b> older age, hypovolemia, rapid injection, pre-existing cardiac disease",
"Propofol + fentanyl decreases subdural pressure in patients with intracranial tumours and lowers AVDO₂",
])
story.append(ref("Katzung's BCP, 16th ed. | Miller's Anesthesia, 10th ed."))
story += subsection("4C. Respiratory System")
story += bullets([
"Potent respiratory depressant — <b>apnea is typical after an induction dose</b>",
"Maintenance infusion: reduces tidal volume (predominant effect) and respiratory rate",
"Blunts both hypoxic and hypercapnic ventilatory responses",
"Greater suppression of upper airway reflexes than thiopental → ideal for LMA placement without neuromuscular blockade",
"Requires airway management capability at all times",
])
story += subsection("4D. Other Effects")
story.append(make_table(
["Effect", "Detail / Clinical Relevance"],
[
["Antiemetic", "Unique among IV anesthetics; reduces PONV even at subhypnotic concentrations"],
["Pain on injection", "Common; reduced by prior opioid, co-injection lidocaine, larger vein, dilution"],
["Neuromuscular junction", "Does not augment neuromuscular blockade, but good intubating conditions achievable"],
["Urine colour", "Metabolites may turn urine green — benign"],
["Lipid load", "Significant in prolonged ICU infusions; monitor triglycerides"],
],
[4.5*cm, 13*cm]
))
# ══════════════════════════════════════════════════════════════════════════════
# 5. CLINICAL USES & DOSING
# ══════════════════════════════════════════════════════════════════════════════
story += section("5. Clinical Uses & Dosing")
story.append(make_table(
["Indication", "Dose / Infusion Rate", "Target Plasma Level"],
[
["Induction of GA (adults)", "1–2.5 mg/kg IV bolus\n(titrate; reduce in elderly/premedicated)", "—"],
["Induction of GA (children)", "2.5–3.5 mg/kg IV", "—"],
["Maintenance (TIVA)", "100–200 mcg/kg/min infusion", "3–8 mcg/mL"],
["Cardiac surgery maintenance", "50–200 mcg/kg/min + opioid", "3–8 mcg/mL"],
["ICU sedation", "25–75 mcg/kg/min", "1–2 mcg/mL"],
["Procedural / MAC sedation", "25–75 mcg/kg/min", "1–2 mcg/mL"],
["PONV treatment", "10–20 mg IV bolus OR\n10 mcg/kg/min infusion", "< 1 mcg/mL"],
],
[5*cm, 7*cm, 5.5*cm]
))
story.append(ref("Katzung's BCP, 16th ed. | Miller's Anesthesia, 10th ed."))
story += subsection("Target-Controlled Infusion (TCI)")
story.append(Paragraph(
"TCI systems use pharmacokinetic models (Marsh, Schnider) incorporating patient "
"parameters (age, weight, height, sex) to automatically adjust infusion rate to a "
"target plasma or effect-site concentration. Often combined with processed EEG "
"monitoring (BIS). Widely used outside the US; provides better haemodynamic "
"stability during induction than manual bolus.", body))
story += subsection("Drug Interactions")
story.append(make_table(
["Co-Drug", "Interaction"],
[
["Opioids (fentanyl, alfentanil)", "Synergistic — reduce propofol infusion requirements by 20–30%; alfentanil decreases propofol clearance"],
["Midazolam", "Reduces propofol metabolic clearance by ~17%; plasma levels increase 20–30%"],
["Ketamine", "Reduces propofol dose requirement; partial haemodynamic offset"],
["Clonidine / dexmedetomidine", "Additive sedation; reduce propofol requirements"],
["Neuromuscular blockers", "No direct pharmacokinetic interaction"],
],
[5.5*cm, 12*cm]
))
# ══════════════════════════════════════════════════════════════════════════════
# 6. ADVERSE EFFECTS & PROPOFOL INFUSION SYNDROME
# ══════════════════════════════════════════════════════════════════════════════
story += section("6. Adverse Effects & Propofol Infusion Syndrome (PRIS)")
story.append(Paragraph(
"⚠ PROPOFOL INFUSION SYNDROME (PRIS) — Rare but potentially fatal. "
"Unexpected tachycardia during propofol infusion must prompt immediate "
"laboratory evaluation for metabolic acidosis.",
warn))
story += subsection("PRIS — Features & Risk Factors")
story.append(make_table(
["Feature", "Details"],
[
["Clinical triad", "Metabolic acidosis + rhabdomyolysis + cardiac failure/arrhythmia"],
["Additional findings", "Renal failure, lipemia, hepatomegaly"],
["Risk factors", "High dose (>4–5 mg/kg/hr), prolonged infusion (>48 h),\nlow carbohydrate intake, critical illness, children"],
["Early warning sign", "New-onset tachycardia during infusion"],
["Management", "Stop propofol immediately; supportive care; consider haemofiltration"],
],
[4.5*cm, 13*cm]
))
story += subsection("Other Adverse Effects")
story.append(make_table(
["Adverse Effect", "Notes"],
[
["Hypotension", "Most common; especially at induction; mitigate with slow titration"],
["Apnoea", "Expected after induction dose; be ready to support airway"],
["Bradycardia / asystole", "Rare; blunted baroreflex; use anticholinergics prophylactically if high risk"],
["Injection pain", "Common; lidocaine 40 mg IV prior or co-administered; use large vein"],
["Hypertriglyceridaemia", "Monitor lipids in ICU patients on prolonged infusions"],
["Green urine", "Benign phenolic metabolite discolouration"],
["Anaphylaxis", "Rare; caution with egg/soy allergy (egg lecithin in formulation)"],
],
[5*cm, 12.5*cm]
))
# ══════════════════════════════════════════════════════════════════════════════
# 7. SPECIAL POPULATIONS
# ══════════════════════════════════════════════════════════════════════════════
story += section("7. Special Populations")
story.append(make_table(
["Population", "Considerations"],
[
["Elderly", "Reduced induction dose (0.5–1.5 mg/kg); slower injection; more sensitive to hypotension; reduce infusion rates"],
["Paediatric", "Higher induction dose (2.5–3.5 mg/kg); higher infusion requirements; PRIS risk — avoid prolonged high-dose ICU infusion"],
["Obese", "Bolus to LBM; maintenance to TBW/CBW; clearance increased; recovery may be faster"],
["Cardiac disease", "High risk of hypotension; slow titration; consider etomidate for induction if severe LV dysfunction"],
["Neuro/raised ICP", "Useful — reduces ICP and CMRO₂; but maintain MAP to preserve CPP"],
["Pregnancy", "Crosses placenta; used for induction in caesarean section; neonatal sedation possible"],
["Hepatic impairment", "Clearance less affected than other drugs (extrahepatic metabolism); use normal doses with monitoring"],
],
[4.5*cm, 13*cm]
))
# ══════════════════════════════════════════════════════════════════════════════
# 8. COMPARISON WITH OTHER IV AGENTS
# ══════════════════════════════════════════════════════════════════════════════
story += section("8. Comparison with Other IV Induction Agents")
story.append(make_table(
["Feature", "Propofol", "Thiopental", "Etomidate", "Ketamine"],
[
["Mechanism", "GABA-A ↑", "GABA-A ↑", "GABA-A ↑", "NMDA antagonist"],
["Induction dose", "1–2.5 mg/kg", "3–5 mg/kg", "0.2–0.3 mg/kg", "1–2 mg/kg"],
["Duration", "3–8 min", "5–10 min", "3–8 min", "5–10 min"],
["Context-sensitive t½", "Short (30–40 min @ 8h)", "Very long (>150 min)", "Very short", "Moderate"],
["CVS effect", "↓↓ BP, ↓ HR", "↓ BP", "Neutral", "↑ BP, ↑ HR"],
["Respiratory", "Apnoea likely", "Depression", "Minimal", "Maintained"],
["ICP", "↓↓", "↓↓", "↓", "↑"],
["Antiemetic", "Yes (unique)", "No", "No", "No"],
["Analgesia", "No", "No", "No", "Yes"],
["Adrenal suppression", "No", "No", "Yes (single dose)", "No"],
["PRIS risk", "Yes", "No", "No", "No"],
],
[4*cm, 3.5*cm, 3.5*cm, 3.25*cm, 3.25*cm]
))
story.append(ref("Miller's Anesthesia, 10th ed. | Katzung's BCP, 16th ed. | Barash, 9th ed."))
# ══════════════════════════════════════════════════════════════════════════════
# 9. RECENT EVIDENCE
# ══════════════════════════════════════════════════════════════════════════════
story += section("9. Recent Evidence (2024–2025)")
story += bullets([
"<b>TCI of propofol (2025, Systematic Review, PMID 40289063):</b> "
"Recent results confirm TCI provides better haemodynamic stability during induction vs. manual bolus; "
"pharmacokinetic model selection remains important.",
"<b>Propofol vs. remimazolam vs. ciprofol for endoscopy (2025, Network Meta-Analysis, PMID 40340730):</b> "
"All three are safe and efficacious. Remimazolam showed lower incidence of hypotension and injection pain "
"vs. propofol, positioning it as an alternative for endoscopic sedation.",
"<b>Remimazolam vs. propofol in elderly patients (2024, Meta-Analysis, PMID 39069837):</b> "
"Remimazolam demonstrated significantly better haemodynamic stability than propofol in elderly patients, "
"an increasingly relevant comparison given the ageing surgical population.",
])
story.append(Paragraph(
"Note: These results do not displace propofol as the standard of care, but support considering "
"newer benzodiazepine-class agents (remimazolam) in patients at high risk of propofol-related hypotension.",
note))
# ══════════════════════════════════════════════════════════════════════════════
# 10. QUICK REFERENCE SUMMARY
# ══════════════════════════════════════════════════════════════════════════════
story += section("10. Quick Reference Summary")
story.append(make_table(
["Category", "Key Points"],
[
["Class", "Alkylphenol — distinct from all other IV anaesthetic classes"],
["Formulation", "1% lipid emulsion (soybean oil, glycerol, egg lecithin)"],
["Mechanism", "GABA-A potentiation → ↑ Cl⁻ influx → neuronal hyperpolarisation"],
["Onset", "~30–60 seconds IV"],
["Duration (bolus)", "3–8 minutes"],
["Protein binding", "97%"],
["Metabolism", "Hepatic + extrahepatic (lungs ~30% of bolus); inactive metabolites"],
["Clearance", "20–30 mL/kg/min (exceeds hepatic blood flow)"],
["Context-sensitive t½", "~30–40 min even after 8h infusion (key advantage)"],
["CNS", "↓ CBF 53–79%, ↓ CMRO₂ 48–58%, ↓ ICP, autoregulation preserved"],
["CVS", "↓↓ MAP via vasodilation + blunted baroreflex; risk of bradycardia/asystole"],
["Respiratory", "Apnoea after induction dose; ↓ tidal volume; ↓ airway reflexes"],
["Unique advantage", "Antiemetic effect (even subhypnotic doses); rapid clear recovery"],
["Key danger", "PRIS with high-dose or prolonged infusion; tachycardia is early sign"],
["Contraindications", "Allergy to propofol/excipients; must have airway management capability"],
],
[4.5*cm, 13*cm]
))
# ══════════════════════════════════════════════════════════════════════════════
# REFERENCES
# ══════════════════════════════════════════════════════════════════════════════
story += section("References")
refs_data = [
"Miller's Anesthesia, 2-Volume Set, 10th Edition. Elsevier. (Chapters 21, 28, 57)",
"Katzung's Basic and Clinical Pharmacology, 16th Edition. McGraw-Hill. (Chapter 25)",
"Barash, Cullen & Stoelting's Clinical Anesthesia, 9th Edition. Wolters Kluwer. (Chapter 19)",
"Sabiston Textbook of Surgery, The Biological Basis of Modern Surgical Practice.",
"Šafránková P, Bruthans J. Target-Controlled Infusion of Propofol: A Systematic Review of Recent Results. "
"J Med Syst. 2025 Apr 28. PMID: 40289063",
"Zhou S, Yu S, Bi Y. The safety and efficacy of remimazolam, ciprofol, and propofol anesthesia in "
"endoscopy: a systematic review and network meta-analysis. BMC Anesthesiol. 2025 May 8. PMID: 40340730",
"Pereira EM, Moraes VR, Gaya da Costa M. Remimazolam vs. propofol for general anaesthesia in elderly "
"patients: a meta-analysis with trial sequential analysis. Eur J Anaesthesiol. 2024 Oct 1. PMID: 39069837",
]
for i, r in enumerate(refs_data, 1):
story.append(Paragraph(f"{i}. {r}", S("Ref",
fontSize=9, leading=13, textColor=TEXT_MID,
fontName="Helvetica", spaceAfter=5, leftIndent=12, firstLineIndent=-12)))
story.append(Spacer(1, 0.5*cm))
story.append(HRFlowable(width="100%", thickness=0.5, color=GREY_LINE))
story.append(Paragraph(
"Generated by Orris Medical AI · July 2026 · For educational purposes only. "
"Always verify dosing against current institutional guidelines and product monographs.",
S("Footer", fontSize=7.5, leading=11, textColor=TEXT_MID,
fontName="Helvetica-Oblique", alignment=TA_CENTER, spaceBefore=6)))
# ── Build ─────────────────────────────────────────────────────────────────────
def add_page_number(canvas, doc):
canvas.saveState()
canvas.setFont("Helvetica", 8)
canvas.setFillColor(TEXT_MID)
page_num = canvas.getPageNumber()
canvas.drawRightString(19.5*cm, 1.2*cm, f"Page {page_num}")
canvas.drawString(2*cm, 1.2*cm, "Propofol — Pharmacology Review")
canvas.setStrokeColor(GREY_LINE)
canvas.setLineWidth(0.5)
canvas.line(2*cm, 1.4*cm, 19.5*cm, 1.4*cm)
canvas.restoreState()
doc.build(story, onFirstPage=add_page_number, onLaterPages=add_page_number)
print(f"PDF saved to {OUTPUT}")
cd /home/daytona/workspace/propofol && python3 build_pdf.py 2>&1
~/propofol/build_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/propofol/build_pdf.py'
cd /home/daytona/workspace/propofol && python3 build_pdf.py 2>&1
~/propofol/build_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/propofol/build_pdf.py'
cd /home/daytona/workspace/propofol && python3 build_pdf.py 2>&1
Propofol
PDF Document · PDF
can u explain that why after giving spinal Anesthesia when effect reach upto T10 pulse rate increase and after upward spread of drug cause decrease Heart rate
| Spinal Level | What Exits Here | Effect When Blocked |
|---|---|---|
| T5 - L2 | Sympathetic vasomotor fibers (to blood vessels) | Vasodilation, venous pooling, hypotension |
| T1 - T4 | Sympathetic cardiac accelerator fibers (to SA/AV node) | Bradycardia |
| Cranial nerve X (Vagus) | Parasympathetic to the heart | NOT blocked by spinal anesthesia - ever |
Block level T10:
Vasomotor block (T5-L1) → ↓ BP
Cardiac accelerators (T1-T4) still INTACT
Arterial baroreceptors fire → sympathetic surge → TACHYCARDIA ✓
Block spreads to T1-T4:
Cardiac accelerators now BLOCKED
Vagus (CN X) still INTACT and UNOPPOSED
Venous return falls → Bainbridge reflex → slows HR
Bezold-Jarisch reflex (empty LV) → vagal bradycardia
Result: BRADYCARDIA ± asystole ✗
Generate a visual diagram comparing sympathetic levels vs heart rate changes
Medical educational diagram titled "Spinal Anesthesia: Sympathetic Block Level vs Heart Rate Changes". The diagram has two main sections side by side: LEFT SIDE - A vertical spinal column diagram showing dermatome levels from C1 at top to S5 at bottom, with color-coded zones: - C1-C8: labeled "Cervical" in light gray - T1-T4: highlighted in RED, labeled "Cardiac Accelerator Fibers (Sympathetic)" with a heart icon and arrow pointing right - T5-L2: highlighted in ORANGE, labeled "Vasomotor Fibers (Sympathetic)" with a blood vessel icon - L3-S5: in light blue, labeled "Sacral/Lumbar" - A note at the top: "Vagus Nerve (CN X) = NEVER blocked by spinal" CENTER - A vertical arrow showing "Block Level Spreading UPWARD" with two zones marked: - Zone 1: "Block at T10" with green background - Zone 2: "Block reaches T1-T4" with red background RIGHT SIDE - A heart rate response graph: - Y-axis: Heart Rate (bpm), ranging from 40 to 110 - X-axis: Spinal Block Level (from Low T12/L1 at left to High T1 at right) - The curve shows: starts at 75 bpm baseline, RISES to ~100 bpm when block is at T10 (labeled "TACHYCARDIA - baroreceptor reflex, vasomotor block, BP drops, cardiac accelerators intact"), then FALLS sharply to ~45 bpm when block reaches T1-T4 (labeled "BRADYCARDIA - cardiac accelerators blocked, unopposed vagus, Bezold-Jarisch reflex") - The tachycardia peak is highlighted in green, the bradycardia trough in red BOTTOM - A mechanism legend box with three rows: Row 1: Orange box "T5-L2 blocked → venous pooling → ↓BP → baroreceptor reflex → ↑HR (if T1-T4 intact)" Row 2: Red box "T1-T4 blocked → cardiac accelerators lost → vagus unopposed → ↓HR" Row 3: Purple box "Bezold-Jarisch: empty LV → mechanoreceptors → vagal bradycardia" Clean white background, professional medical illustration style, clear labels, sans-serif font.
