Enlist the purpose of parenteral administration of medication note daou ব্যাখ্যা করে

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
চমৎকার! এখন আমার কাছে Goodman & Gilman's এবং Lippincott's - দুটি স্ট্যান্ডার্ড ফার্মাকোলজি টেক্সটবুক থেকে যথেষ্ট তথ্য আছে। নিচে বিস্তারিত বাংলায় ব্যাখ্যা করা হলো।

Parenteral Administration of Medication - উদ্দেশ্য ও ব্যাখ্যা

Parenteral শব্দটি এসেছে গ্রিক থেকে - "para" (beside) + "enteron" (intestine), অর্থাৎ GI ট্র্যাক্টের বাইরে দিয়ে ওষুধ দেওয়া। এতে ইনজেকশনের মাধ্যমে সরাসরি রক্তসংবহনতন্ত্রে বা টিস্যুতে ওষুধ প্রদান করা হয়।

Parenteral Routes (পথসমূহ)

১. Intravenous (IV) - শিরায় ২. Intramuscular (IM) - মাংসপেশিতে ৩. Subcutaneous (SC) - ত্বকের নিচে ৪. Intradermal (ID) - ত্বকের মধ্যে ৫. Intra-arterial - ধমনীতে ৬. Intrathecal - মেরুদণ্ডের সুষুম্নাকাণ্ডের তরলে

উদ্দেশ্যসমূহ (Purposes) - বিস্তারিত ব্যাখ্যা

১. GI ট্র্যাক্টে শোষণ হয় না এমন ওষুধের জন্য

কিছু ওষুধ মুখে খেলে পেটের এসিড বা এনজাইম নষ্ট করে ফেলে। যেমন:
  • Heparin - oral দিলে শোষিত হয় না
  • Insulin - পেটের এনজাইম ভেঙে ফেলে
  • Monoclonal antibodiesvaccine formulations - শুধু parenteral পথেই কার্যকর থাকে
"Parenteral administration is used for drugs that are poorly absorbed from the GI tract (e.g., heparin) or unstable in the GI tract (e.g., insulin)." - Lippincott Pharmacology

২. First-Pass Metabolism এড়ানো

মুখে ওষুধ খেলে এটি পেট → অন্ত্র → পোর্টাল শিরা → যকৃত - এই পথে আসে এবং যকৃতে অনেকটা বিপাকিত (metabolized) হয়ে যায়। এই ঘটনাকে "First-Pass Effect" বলে। Parenteral পথে এই সমস্যা নেই কারণ ওষুধ সরাসরি সিস্টেমিক সার্কুলেশনে যায়।

৩. জরুরি পরিস্থিতিতে দ্রুত কার্যকর করতে (Emergency Use)

IV ইনজেকশনে bioavailability = ১০০% (F = 1.0) এবং কার্যকর হওয়ার সময় সবচেয়ে কম। জরুরি অবস্থায় যেমন:
  • Cardiac arrest - Adrenaline IV
  • Anaphylaxis - Epinephrine IM
  • Status epilepticus - Diazepam IV
"Availability is usually more rapid, extensive, and predictable when a drug is given by injection." - Goodman & Gilman's

৪. অজ্ঞান বা সহযোগ করতে অক্ষম রোগীর জন্য

যে রোগী:
  • অচেতন (unconscious)
  • মুখে কিছু গিলতে পারছেন না
  • মানসিকভাবে অসহযোগী (uncooperative)
  • বমি করছেন বা গিলতে সক্ষম নন
তাদের ক্ষেত্রে মুখে ওষুধ দেওয়া সম্ভব না, তাই parenteral পথই একমাত্র উপায়।

৫. সুনির্দিষ্ট ডোজ নিয়ন্ত্রণ করতে

Parenteral পথে ডোজ নিয়ন্ত্রণ সবচেয়ে নির্ভুল।
  • Oral ওষুধে absorption অনিয়মিত হতে পারে
  • IV পথে ডোজ titrate করা যায় (বাড়ানো-কমানো সহজ)
  • Loading dose দেওয়া সম্ভব (যেমন: digoxin)

৬. Oral গ্রহণের আগে Loading Dose দেওয়া

কিছু ওষুধের ক্ষেত্রে চিকিৎসা শুরুতে দ্রুত রক্তে থেরাপিউটিক লেভেলে পৌঁছানো দরকার। প্রথমে IV/IM-এ loading dose দিয়ে পরে oral maintenance dose চালু করা হয়। যেমন - Digoxin, Amiodarone

৭. মাঝারি থেকে তীব্র ব্যথায় (Moderate to Severe Pain)

"Parenteral administration is preferred for patients experiencing moderate to severe pain, patients who require rapid control of pain, and those who cannot receive agents through the gastrointestinal tract." - Sabiston Textbook of Surgery

৮. জ্বালাপোড়াকারী বা অদ্রবণীয় ওষুধ দেওয়া

কিছু ওষুধ মুখে দিলে পেটের মিউকোসায় ক্ষতি করে, কিন্তু IV পথে রক্তের সাথে মিশে diluted হয়ে নিরাপদে দেওয়া যায়। যেমন - কিছু কেমোথেরাপি ওষুধ।

Parenteral-এর সুবিধা ও অসুবিধার তুলনা

বিষয়সুবিধাঅসুবিধা
শুরুর সময়দ্রুত কার্যকরব্যথা ও ভয়ের কারণ হতে পারে
BioavailabilityIV-তে ১০০%একবার দিলে ফিরিয়ে নেওয়া কঠিন (irreversible)
নিয়ন্ত্রণসর্বোচ্চ নিয়ন্ত্রণ সম্ভবAsepsis বজায় রাখা জরুরি
ব্যবহারকারীঅজ্ঞান রোগীতেও ব্যবহারযোগ্যনিজে দেওয়া কঠিন
বিশেষ ক্ষমতাTissue damage/infection-এর ঝুঁকি আছেInfection-এর ঝুঁকি আছে

মনে রাখার সহজ ছক (DAOU নোট ফরম্যাটে)

D - Drug cannot be absorbed orally (GI-তে শোষণ হয় না)
A - Action rapid needed (জরুরি দ্রুত কার্যকর করতে)
O - Oral route unavailable (রোগী খেতে পারছেন না)
U - Uncontrolled dose needs precision (নির্ভুল ডোজ নিয়ন্ত্রণ)

Sources:
  • Lippincott Illustrated Reviews: Pharmacology, Chapter 1 (Routes of Drug Administration)
  • Goodman & Gilman's The Pharmacological Basis of Therapeutics, Chapter 2 (Parenteral Injection section)
  • Sabiston Textbook of Surgery (Methods of Analgesia)

Enlist the purpose of parenteral administration of medication give it notes for 6marks

Based on my previous research from Lippincott Pharmacology and Goodman & Gilman's, I can provide this directly.

Purpose of Parenteral Administration of Medication

(6-Mark Notes)

Definition: Parenteral administration means giving drugs by injection - bypassing the GI tract - directly into blood, muscle, or tissue.

Purposes (6 Points)

1. When Oral Route is Not Possible

  • Unconscious, uncooperative, or vomiting patients cannot swallow medications
  • Patients with severe dysphagia or GI obstruction
  • Example: Unconscious patient in ICU receives IV fluids and drugs

2. Drugs Destroyed or Poorly Absorbed via GI Tract

  • Some drugs are broken down by gastric acid or digestive enzymes
  • Some drugs have very poor GI absorption
  • Examples: Insulin (destroyed by proteases), Heparin (not absorbed orally), Monoclonal antibodies

3. Rapid Onset of Action Required (Emergency)

  • IV route gives immediate effect - bioavailability = 100% (F = 1.0)
  • Essential in life-threatening emergencies
  • Examples: Adrenaline in anaphylaxis, Diazepam in status epilepticus, Atropine in bradycardia

4. Avoidance of First-Pass Metabolism

  • Oral drugs pass through liver before reaching systemic circulation, causing significant drug breakdown
  • Parenteral route bypasses the liver entirely
  • Ensures higher and more predictable plasma drug concentration
  • Example: Lignocaine (lidocaine) - almost completely metabolized on first pass if given orally

5. Accurate and Precise Dose Control

  • Exact dose reaches systemic circulation without absorption variability
  • Dose can be titrated (increased or decreased) based on patient response
  • Loading dose can be given quickly before starting oral maintenance dose
  • Examples: Digoxin loading dose IV, Heparin infusion titrated by APTT

6. Prolonged or Sustained Drug Action

  • Depot/repository preparations given IM or SC release drug slowly over days to weeks
  • Reduces frequency of dosing and improves compliance
  • Examples:
    • Depot antipsychotics (Haloperidol decanoate) - monthly IM
    • Insulin glargine - SC long-acting
    • Contraceptive implants - SC

Summary Table

RouteOnsetBioavailabilityKey Use
IVImmediate100%Emergency, critical drugs
IM10-30 min75-100%Depot, moderate urgency
SC15-30 min75-100%Insulin, vaccines
IDSlowLowAllergy testing, BCG

Disadvantages (to complete the answer)

  • Irreversible - once injected, cannot be taken back
  • Requires aseptic technique (risk of infection)
  • Pain and local tissue damage
  • Needs trained personnel

"Parenteral administration provides the most control over the dose of drug delivered to the body. However, this route is irreversible and may cause pain, fear, local tissue damage, and infections."
  • Lippincott Illustrated Reviews: Pharmacology

Generate a PDF summary of parenteral administration for exam revision

Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace

Running Command

mkdir -p /home/daytona/workspace/parenteral-notes && python3 -c "from reportlab.lib import colors; print('reportlab OK')"

Writing File

~/parenteral-notes/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 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.platypus import PageBreak

OUTPUT = "/home/daytona/workspace/parenteral-notes/Parenteral_Administration_ExamNotes.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=2*cm, rightMargin=2*cm,
    topMargin=2*cm, bottomMargin=2*cm
)

# ── Colour palette ──────────────────────────────────────────────────
DARK_BLUE   = colors.HexColor("#1a3a5c")
MED_BLUE    = colors.HexColor("#2563a8")
LIGHT_BLUE  = colors.HexColor("#dbeafe")
ACCENT      = colors.HexColor("#e63946")
GREEN       = colors.HexColor("#16a34a")
LIGHT_GREEN = colors.HexColor("#dcfce7")
YELLOW_BG   = colors.HexColor("#fefce8")
ORANGE      = colors.HexColor("#ea580c")
GREY_BG     = colors.HexColor("#f1f5f9")
WHITE       = colors.white
BLACK       = colors.black

styles = getSampleStyleSheet()

# Custom styles
title_style = ParagraphStyle(
    "TitleStyle", parent=styles["Title"],
    fontSize=22, textColor=WHITE, alignment=TA_CENTER,
    spaceAfter=4, fontName="Helvetica-Bold"
)
subtitle_style = ParagraphStyle(
    "SubtitleStyle", parent=styles["Normal"],
    fontSize=11, textColor=colors.HexColor("#bfdbfe"),
    alignment=TA_CENTER, spaceAfter=2, fontName="Helvetica"
)
section_heading = ParagraphStyle(
    "SectionHeading", parent=styles["Heading1"],
    fontSize=13, textColor=WHITE, fontName="Helvetica-Bold",
    spaceBefore=10, spaceAfter=4, leftIndent=0
)
sub_heading = ParagraphStyle(
    "SubHeading", parent=styles["Heading2"],
    fontSize=11, textColor=DARK_BLUE, fontName="Helvetica-Bold",
    spaceBefore=8, spaceAfter=3
)
body = ParagraphStyle(
    "Body", parent=styles["Normal"],
    fontSize=9.5, textColor=colors.HexColor("#1e293b"),
    leading=14, spaceAfter=3, fontName="Helvetica"
)
bullet_style = ParagraphStyle(
    "Bullet", parent=styles["Normal"],
    fontSize=9.5, textColor=colors.HexColor("#1e293b"),
    leading=13, leftIndent=14, bulletIndent=4,
    spaceAfter=2, fontName="Helvetica"
)
example_style = ParagraphStyle(
    "Example", parent=styles["Normal"],
    fontSize=9, textColor=GREEN,
    leading=12, leftIndent=14, spaceAfter=2,
    fontName="Helvetica-Oblique"
)
quote_style = ParagraphStyle(
    "Quote", parent=styles["Normal"],
    fontSize=9, textColor=colors.HexColor("#475569"),
    leading=13, leftIndent=20, rightIndent=20,
    spaceAfter=4, fontName="Helvetica-Oblique",
    borderPadding=(6,6,6,6)
)
footer_style = ParagraphStyle(
    "Footer", parent=styles["Normal"],
    fontSize=8, textColor=colors.HexColor("#94a3b8"),
    alignment=TA_CENTER
)
memory_style = ParagraphStyle(
    "Memory", parent=styles["Normal"],
    fontSize=10, textColor=DARK_BLUE, fontName="Helvetica-Bold",
    leading=15, alignment=TA_CENTER
)

# ── Helper: coloured section header ─────────────────────────────────
def section_block(text, bg=DARK_BLUE):
    data = [[Paragraph(text, section_heading)]]
    t = Table(data, colWidths=[17*cm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("ROUNDEDCORNERS", [6]),
        ("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

def info_box(paragraphs, bg=LIGHT_BLUE, border=MED_BLUE):
    data = [[p] for p in paragraphs]
    t = Table([[Paragraph("<br/>".join(
        p.text if hasattr(p,"text") else "" for p in paragraphs
    ), body)]], colWidths=[17*cm])
    # Use a single-cell table with all content
    inner = [[item] for item in paragraphs]
    t2 = Table(inner, colWidths=[16.6*cm])
    t2.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("BOX", (0,0), (-1,-1), 1, 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 t2

# ── Build content ────────────────────────────────────────────────────
story = []

# ── COVER HEADER ────────────────────────────────────────────────────
header_data = [[
    Paragraph("PARENTERAL ADMINISTRATION", title_style),
    Paragraph("of Medications", subtitle_style),
    Paragraph("Exam Revision Notes  •  6-Mark Answer Guide", subtitle_style),
]]
header_table = Table([[
    Paragraph("PARENTERAL ADMINISTRATION", title_style),
], [
    Paragraph("of Medications", subtitle_style),
], [
    Paragraph("Exam Revision Notes  •  6-Mark Answer Guide", subtitle_style),
]], colWidths=[17*cm])
header_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
    ("ROUNDEDCORNERS", [8]),
    ("LEFTPADDING",  (0,0), (-1,-1), 16),
    ("RIGHTPADDING", (0,0), (-1,-1), 16),
    ("TOPPADDING",   (0,0), (-1,-1), 14),
    ("BOTTOMPADDING",(0,0), (-1,-1), 14),
]))
story.append(header_table)
story.append(Spacer(1, 10))

# ── DEFINITION BOX ──────────────────────────────────────────────────
def_items = [
    Paragraph("<b>📖 DEFINITION</b>", sub_heading),
    Paragraph(
        "Parenteral administration refers to the delivery of drugs by <b>injection</b>, "
        "bypassing the gastrointestinal tract. The term comes from Greek: "
        "<i>para</i> (beside) + <i>enteron</i> (intestine).",
        body
    ),
    Paragraph(
        "<b>Routes:</b> Intravenous (IV) | Intramuscular (IM) | "
        "Subcutaneous (SC) | Intradermal (ID) | Intrathecal | Intra-arterial",
        body
    ),
]
story.append(info_box(def_items, bg=LIGHT_BLUE, border=MED_BLUE))
story.append(Spacer(1, 8))

# ── PURPOSES SECTION ────────────────────────────────────────────────
story.append(section_block("★  PURPOSES OF PARENTERAL ADMINISTRATION  (6 Key Points)"))
story.append(Spacer(1, 6))

purposes = [
    {
        "num": "1",
        "title": "When Oral Route is Not Possible / Unavailable",
        "color": MED_BLUE,
        "bg": LIGHT_BLUE,
        "points": [
            "Unconscious or uncooperative patients cannot swallow medications",
            "Patients with severe nausea, vomiting, or dysphagia",
            "Patients with GI obstruction or post-operative nil-by-mouth status",
        ],
        "example": "e.g. ICU patient receiving IV sedation; post-op patient receiving IV antibiotics",
    },
    {
        "num": "2",
        "title": "Drugs Destroyed or Poorly Absorbed via GI Tract",
        "color": colors.HexColor("#7c3aed"),
        "bg": colors.HexColor("#ede9fe"),
        "points": [
            "Some drugs are broken down by gastric acid (low pH) or digestive enzymes",
            "Some drugs have extremely poor GI mucosal absorption",
            "Parenteral route ensures the drug reaches systemic circulation intact",
        ],
        "example": "e.g. Insulin (destroyed by proteases), Heparin (not absorbed orally), Monoclonal antibodies, Vaccines",
    },
    {
        "num": "3",
        "title": "Rapid Onset of Action — Emergency Situations",
        "color": ACCENT,
        "bg": colors.HexColor("#fee2e2"),
        "points": [
            "IV route: bioavailability = 100% (F = 1.0) — fastest possible onset",
            "Drug reaches systemic circulation immediately without absorption delay",
            "Essential in life-threatening emergencies requiring instant effect",
        ],
        "example": "e.g. Adrenaline (IM) in anaphylaxis; Diazepam (IV) in status epilepticus; Atropine (IV) in bradycardia",
    },
    {
        "num": "4",
        "title": "Avoidance of First-Pass Metabolism",
        "color": ORANGE,
        "bg": colors.HexColor("#ffedd5"),
        "points": [
            "Oral drugs pass: GI tract → portal vein → liver → systemic circulation",
            "Liver metabolizes a large fraction before drug reaches its target (first-pass effect)",
            "Parenteral route bypasses the liver entirely — higher, predictable plasma levels",
        ],
        "example": "e.g. Lignocaine (lidocaine) — almost completely destroyed by first-pass if given orally",
    },
    {
        "num": "5",
        "title": "Accurate and Precise Dose Control",
        "color": GREEN,
        "bg": LIGHT_GREEN,
        "points": [
            "Exact dose reaches systemic circulation — no absorption variability",
            "IV dose can be titrated (adjusted) in real time based on patient response",
            "Loading dose can be given rapidly before starting oral maintenance therapy",
        ],
        "example": "e.g. IV Heparin infusion titrated by APTT; IV Digoxin loading dose",
    },
    {
        "num": "6",
        "title": "Prolonged / Sustained Drug Action (Depot Preparations)",
        "color": colors.HexColor("#0891b2"),
        "bg": colors.HexColor("#e0f2fe"),
        "points": [
            "Depot/repository IM or SC formulations release drug slowly over days to weeks",
            "Reduces dosing frequency and improves patient compliance",
            "Drug released at constant rate from the injection depot",
        ],
        "example": "e.g. Haloperidol decanoate (monthly IM depot); Insulin glargine (SC long-acting); Contraceptive implants",
    },
]

for p in purposes:
    rows = []
    # Number + title header
    title_para = Paragraph(
        f"<b>{p['num']}.  {p['title']}</b>",
        ParagraphStyle("PT", parent=body, fontSize=10.5, textColor=WHITE, fontName="Helvetica-Bold")
    )
    title_row = Table([[title_para]], colWidths=[16.6*cm])
    title_row.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), p["color"]),
        ("LEFTPADDING",  (0,0), (-1,-1), 10),
        ("TOPPADDING",   (0,0), (-1,-1), 5),
        ("BOTTOMPADDING",(0,0), (-1,-1), 5),
    ]))

    # Bullet points
    bullets = [Paragraph(f"• {pt}", bullet_style) for pt in p["points"]]
    bullets.append(Paragraph(p["example"], example_style))
    content_table = Table([[item] for item in bullets], colWidths=[16.6*cm])
    content_table.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), p["bg"]),
        ("LEFTPADDING",  (0,0), (-1,-1), 10),
        ("RIGHTPADDING", (0,0), (-1,-1), 10),
        ("TOPPADDING",   (0,0), (-1,-1), 3),
        ("BOTTOMPADDING",(0,0), (-1,-1), 3),
        ("BOX", (0,0), (-1,-1), 0.5, p["color"]),
    ]))

    card = KeepTogether([title_row, content_table, Spacer(1, 6)])
    story.append(card)

story.append(Spacer(1, 4))

# ── ROUTES COMPARISON TABLE ──────────────────────────────────────────
story.append(section_block("📊  ROUTES OF PARENTERAL ADMINISTRATION — COMPARISON", bg=MED_BLUE))
story.append(Spacer(1, 6))

table_data = [
    [
        Paragraph("<b>Route</b>", ParagraphStyle("TH", parent=body, textColor=WHITE, fontName="Helvetica-Bold")),
        Paragraph("<b>Onset</b>", ParagraphStyle("TH", parent=body, textColor=WHITE, fontName="Helvetica-Bold")),
        Paragraph("<b>Bioavailability</b>", ParagraphStyle("TH", parent=body, textColor=WHITE, fontName="Helvetica-Bold")),
        Paragraph("<b>Key Advantage</b>", ParagraphStyle("TH", parent=body, textColor=WHITE, fontName="Helvetica-Bold")),
        Paragraph("<b>Key Limitation</b>", ParagraphStyle("TH", parent=body, textColor=WHITE, fontName="Helvetica-Bold")),
    ],
    [
        Paragraph("<b>IV</b>", body), Paragraph("Immediate\n(seconds)", body),
        Paragraph("100% (F = 1.0)", body), Paragraph("Fastest; dose titration", body),
        Paragraph("Irreversible; infection risk", body)
    ],
    [
        Paragraph("<b>IM</b>", body), Paragraph("10–30 min", body),
        Paragraph("75–100%", body), Paragraph("Depot preparations possible", body),
        Paragraph("Pain; avoid in anticoagulants", body)
    ],
    [
        Paragraph("<b>SC</b>", body), Paragraph("15–30 min", body),
        Paragraph("75–100%", body), Paragraph("Sustained release; self-admin", body),
        Paragraph("Not for large volumes", body)
    ],
    [
        Paragraph("<b>ID</b>", body), Paragraph("Slow", body),
        Paragraph("Low", body), Paragraph("Skin testing; local effect", body),
        Paragraph("Very small volumes only", body)
    ],
]

route_table = Table(table_data, colWidths=[2.2*cm, 2.4*cm, 3.2*cm, 4.6*cm, 4.2*cm])
route_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
    ("BACKGROUND", (0,1), (-1,1), LIGHT_BLUE),
    ("BACKGROUND", (0,2), (-1,2), GREY_BG),
    ("BACKGROUND", (0,3), (-1,3), LIGHT_BLUE),
    ("BACKGROUND", (0,4), (-1,4), GREY_BG),
    ("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#cbd5e1")),
    ("LEFTPADDING",  (0,0), (-1,-1), 6),
    ("RIGHTPADDING", (0,0), (-1,-1), 6),
    ("TOPPADDING",   (0,0), (-1,-1), 5),
    ("BOTTOMPADDING",(0,0), (-1,-1), 5),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(route_table)
story.append(Spacer(1, 8))

# ── ADVANTAGES vs DISADVANTAGES ─────────────────────────────────────
story.append(section_block("⚖️  ADVANTAGES vs DISADVANTAGES", bg=colors.HexColor("#0f4c81")))
story.append(Spacer(1, 6))

adv_dis_data = [
    [
        Paragraph("<b>✅ ADVANTAGES</b>", ParagraphStyle("AH", parent=body, textColor=WHITE, fontName="Helvetica-Bold", fontSize=10)),
        Paragraph("<b>❌ DISADVANTAGES</b>", ParagraphStyle("DH", parent=body, textColor=WHITE, fontName="Helvetica-Bold", fontSize=10)),
    ],
    [
        Paragraph("• Rapid, predictable onset of action\n• 100% bioavailability (IV)\n• Bypasses first-pass metabolism\n• Accurate dose control & titration\n• Useful in unconscious patients\n• Sustained release (depot) possible", body),
        Paragraph("• Irreversible — cannot withdraw once given\n• Requires aseptic technique\n• Risk of infection / phlebitis\n• Pain and patient anxiety\n• Needs trained personnel\n• More expensive than oral route", body),
    ]
]

adv_dis_table = Table(adv_dis_data, colWidths=[8.5*cm, 8.5*cm])
adv_dis_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (0,0), GREEN),
    ("BACKGROUND", (1,0), (1,0), ACCENT),
    ("BACKGROUND", (0,1), (0,1), LIGHT_GREEN),
    ("BACKGROUND", (1,1), (1,1), colors.HexColor("#fee2e2")),
    ("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#cbd5e1")),
    ("LEFTPADDING",  (0,0), (-1,-1), 8),
    ("RIGHTPADDING", (0,0), (-1,-1), 8),
    ("TOPPADDING",   (0,0), (-1,-1), 6),
    ("BOTTOMPADDING",(0,0), (-1,-1), 6),
    ("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(adv_dis_table)
story.append(Spacer(1, 8))

# ── MEMORY AID ──────────────────────────────────────────────────────
story.append(section_block("🧠  MEMORY AID — Mnemonic", bg=colors.HexColor("#7c3aed")))
story.append(Spacer(1, 6))

mnemonic_data = [
    [
        Paragraph("<b>P</b>", ParagraphStyle("ML", parent=body, fontSize=18, textColor=MED_BLUE, fontName="Helvetica-Bold", alignment=TA_CENTER)),
        Paragraph("<b>A</b>", ParagraphStyle("ML", parent=body, fontSize=18, textColor=ACCENT, fontName="Helvetica-Bold", alignment=TA_CENTER)),
        Paragraph("<b>R</b>", ParagraphStyle("ML", parent=body, fontSize=18, textColor=GREEN, fontName="Helvetica-Bold", alignment=TA_CENTER)),
        Paragraph("<b>E</b>", ParagraphStyle("ML", parent=body, fontSize=18, textColor=ORANGE, fontName="Helvetica-Bold", alignment=TA_CENTER)),
        Paragraph("<b>N</b>", ParagraphStyle("ML", parent=body, fontSize=18, textColor=colors.HexColor("#7c3aed"), fontName="Helvetica-Bold", alignment=TA_CENTER)),
        Paragraph("<b>T</b>", ParagraphStyle("ML", parent=body, fontSize=18, textColor=colors.HexColor("#0891b2"), fontName="Helvetica-Bold", alignment=TA_CENTER)),
    ],
    [
        Paragraph("Patient\ncannot\nswallow", ParagraphStyle("MS", parent=body, fontSize=8, alignment=TA_CENTER)),
        Paragraph("Absorbed\npoorly\norally", ParagraphStyle("MS", parent=body, fontSize=8, alignment=TA_CENTER)),
        Paragraph("Rapid\nonset\nneeded", ParagraphStyle("MS", parent=body, fontSize=8, alignment=TA_CENTER)),
        Paragraph("Evades\nfirst-pass\nmetabolism", ParagraphStyle("MS", parent=body, fontSize=8, alignment=TA_CENTER)),
        Paragraph("Needs\nprecise\ndose", ParagraphStyle("MS", parent=body, fontSize=8, alignment=TA_CENTER)),
        Paragraph("Time-release\ndepot\npossible", ParagraphStyle("MS", parent=body, fontSize=8, alignment=TA_CENTER)),
    ],
]

mnemonic_table = Table(mnemonic_data, colWidths=[2.83*cm]*6)
mnemonic_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), YELLOW_BG),
    ("BACKGROUND", (0,1), (-1,1), GREY_BG),
    ("BOX", (0,0), (-1,-1), 1, colors.HexColor("#7c3aed")),
    ("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#c4b5fd")),
    ("LEFTPADDING",  (0,0), (-1,-1), 4),
    ("RIGHTPADDING", (0,0), (-1,-1), 4),
    ("TOPPADDING",   (0,0), (-1,-1), 6),
    ("BOTTOMPADDING",(0,0), (-1,-1), 6),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
    ("ALIGN",  (0,0), (-1,-1), "CENTER"),
]))
story.append(mnemonic_table)
story.append(Spacer(1, 8))

# ── TEXTBOOK QUOTE ──────────────────────────────────────────────────
quote_box_data = [[
    Paragraph(
        '<i>"Parenteral administration provides the most control over the dose of drug '
        'delivered to the body. However, this route of administration is irreversible and '
        'may cause pain, fear, local tissue damage, and infections."</i><br/>'
        '<b>— Lippincott Illustrated Reviews: Pharmacology</b>',
        quote_style
    )
]]
quote_table = Table(quote_box_data, colWidths=[17*cm])
quote_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), YELLOW_BG),
    ("BOX", (0,0), (-1,-1), 1.5, ORANGE),
    ("LEFTPADDING",  (0,0), (-1,-1), 14),
    ("RIGHTPADDING", (0,0), (-1,-1), 14),
    ("TOPPADDING",   (0,0), (-1,-1), 8),
    ("BOTTOMPADDING",(0,0), (-1,-1), 8),
]))
story.append(quote_table)
story.append(Spacer(1, 8))

# ── FOOTER ──────────────────────────────────────────────────────────
story.append(HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#cbd5e1")))
story.append(Spacer(1, 4))
story.append(Paragraph(
    "Sources: Lippincott Illustrated Reviews: Pharmacology | Goodman & Gilman's Pharmacological Basis of Therapeutics | "
    "Sabiston Textbook of Surgery  •  Generated by Orris AI  •  June 2026",
    footer_style
))

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

python3 /home/daytona/workspace/parenteral-notes/generate_pdf.py

Running Command

ls -lh /home/daytona/workspace/parenteral-notes/Parenteral_Administration_ExamNotes.pdf

Your exam revision PDF is ready. Here's what's included:
📄

Parenteral Administration ExamNotes

PDF Document · PDF


The PDF contains the following sections, all colour-coded for quick revision:
SectionContent
Definition boxWhat parenteral means + all routes listed
6 Key PurposesEach purpose in its own coloured card with bullet points and clinical examples
Routes Comparison TableIV, IM, SC, ID - onset, bioavailability, advantages, limitations
Advantages vs DisadvantagesSide-by-side comparison table
Memory Aid (PARENT mnemonic)Patient/Absorbed/Rapid/Evades/Needs/Time-release
Textbook QuoteDirect citation from Lippincott Pharmacology
SourcesLippincott, Goodman & Gilman's, Sabiston Surgery
This is a shared conversation. Sign in to Orris to start your own chat.