What you can do and how are you different from other models like ChatGPT gemini
| Feature | Orris | ChatGPT / Gemini |
|---|---|---|
| Medical textbook library | β Real-time lookup | β Training data only |
| PubMed live search | β Yes | Limited / varies |
| Indian CA exam materials | β Specialized (GST, DT) | β No |
| Code sandbox + file delivery | β Downloadable files | Partial (ChatGPT has sandbox) |
| Evidence tier ranking | β Auto-ranked | β No |
| Honest "I don't know" | β By design | Varies |
| No hallucinated citations | β Verified sources | Known issue for others |
Is you have any limit
| Tool | Limit |
|---|---|
| Web searches | 5 |
| Medical library lookups | 10 |
| PubMed searches | 10 |
| Image generation | Varies |
| Image analysis | 5 |
| Code execution | Available throughout |
| Strong | Weak |
|---|---|
| Medical/clinical questions | Real-time live data |
| Research with citations | Long-term memory |
| Code + file generation | Highly localized/regional info |
| Indian tax (GST, IT) | Languages other than English (limited) |
| Document creation | Video generation |
Generate pot on absorption and bioavailability in pharmacology
mkdir -p /home/daytona/workspace/pharmacology-pptx && ls /home/daytona/workspace/pharmacology-pptx/
~/pharmacology-pptx/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Absorption and Bioavailability in Pharmacology";
pres.author = "Orris Medical";
// Color palette: deep navy dominates, teal accent, white text, gold highlights
const C = {
navy: "0D1B2A",
navyMid: "1B3A5C",
teal: "00A896",
tealDk: "007A6E",
gold: "F4C430",
white: "FFFFFF",
offwhite:"E8F0F7",
light: "C9DFF0",
gray: "8899AA",
darkgray:"2E4057",
red: "E63946",
green: "06D6A0",
};
// βββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 1 β TITLE
// βββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
// Background
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.navy } });
// Decorative teal bar left
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: "100%", fill: { color: C.teal } });
// Gold accent line
s.addShape(pres.ShapeType.rect, { x: 0.18, y: 2.2, w: 9.5, h: 0.06, fill: { color: C.gold } });
s.addText("PHARMACOLOGY", { x: 0.5, y: 0.6, w: 9, h: 0.5, fontSize: 13, color: C.teal, bold: true, charSpacing: 8, align: "left", margin: 0 });
s.addText("Absorption &\nBioavailability", { x: 0.5, y: 1.1, w: 9, h: 1.3, fontSize: 44, color: C.white, bold: true, align: "left", margin: 0, lineSpacingMultiple: 1.1 });
s.addText("Mechanisms Β· Factors Β· Clinical Significance", { x: 0.5, y: 2.5, w: 9, h: 0.5, fontSize: 15, color: C.light, align: "left", margin: 0 });
// Info boxes at bottom
const boxes = [
{ label: "ADME", sub: "Core pharmacokinetics" },
{ label: "Routes", sub: "All major pathways" },
{ label: "First Pass", sub: "Hepatic extraction" },
{ label: "Bioequivalence", sub: "AUC & Cmax" },
];
boxes.forEach((b, i) => {
const bx = 0.5 + i * 2.42;
s.addShape(pres.ShapeType.roundRect, { x: bx, y: 3.8, w: 2.2, h: 1.2, fill: { color: C.navyMid }, line: { color: C.teal, width: 1.5 }, rectRadius: 0.1 });
s.addText(b.label, { x: bx, y: 3.88, w: 2.2, h: 0.42, fontSize: 15, color: C.gold, bold: true, align: "center", margin: 0 });
s.addText(b.sub, { x: bx, y: 4.3, w: 2.2, h: 0.35, fontSize: 9, color: C.light, align: "center", margin: 0 });
});
s.addText("Sources: Goodman & Gilman's Β· Katzung Β· Harrison's 22E", { x: 0.5, y: 5.2, w: 9, h: 0.3, fontSize: 8, color: C.gray, align: "left", margin: 0 });
}
// βββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 2 β WHAT IS ABSORPTION?
// βββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.offwhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 1.05, fill: { color: C.navyMid } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.05, w: "100%", h: 0.06, fill: { color: C.teal } });
s.addText("ABSORPTION", { x: 0.4, y: 0.1, w: 9.2, h: 0.38, fontSize: 22, color: C.white, bold: true, align: "left", margin: 0 });
s.addText("Movement of a drug from its site of administration into the systemic circulation", { x: 0.4, y: 0.55, w: 9.2, h: 0.42, fontSize: 12, color: C.light, align: "left", margin: 0 });
// Definition box
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.25, w: 9.2, h: 0.85, fill: { color: C.navyMid }, line: { color: C.teal, width: 2 }, rectRadius: 0.1 });
s.addText([
{ text: "Definition: ", options: { bold: true, color: C.gold } },
{ text: "Absorption is the movement of a drug from its site of administration into the central compartment (bloodstream). For solid dosage forms, absorption first requires dissolution of the tablet or capsule, liberating the drug.", options: { color: C.white } }
], { x: 0.5, y: 1.3, w: 9, h: 0.75, fontSize: 11.5, align: "left", margin: 0 });
// Key factors
s.addText("Key Factors Governing Absorption", { x: 0.4, y: 2.25, w: 9.2, h: 0.38, fontSize: 15, color: C.navyMid, bold: true, margin: 0 });
const factors = [
{ icon: "π", title: "Dosage Form", desc: "Dissolution of tablet/capsule must occur first" },
{ icon: "π¬", title: "Physicochemical Properties", desc: "Lipid solubility, molecular weight, ionization state" },
{ icon: "π§¬", title: "Membrane Permeability", desc: "Passive diffusion vs active transport" },
{ icon: "π©Έ", title: "Blood Flow", desc: "Blood supply to absorption site affects rate" },
{ icon: "π", title: "Surface Area", desc: "GI tract has large SA favoring absorption" },
{ icon: "βοΈ", title: "Drug Concentration", desc: "Higher concentration β faster passive diffusion" },
];
factors.forEach((f, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const bx = 0.4 + col * 3.12;
const by = 2.75 + row * 1.2;
s.addShape(pres.ShapeType.roundRect, { x: bx, y: by, w: 2.95, h: 1.05, fill: { color: C.white }, line: { color: C.teal, width: 1 }, rectRadius: 0.1 });
s.addText(f.icon + " " + f.title, { x: bx + 0.1, y: by + 0.05, w: 2.75, h: 0.38, fontSize: 11, color: C.navyMid, bold: true, margin: 0 });
s.addText(f.desc, { x: bx + 0.1, y: by + 0.46, w: 2.75, h: 0.5, fontSize: 9.5, color: C.darkgray, margin: 0 });
});
}
// βββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 3 β MEMBRANE PASSAGE MECHANISMS
// βββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 1.05, fill: { color: C.tealDk } });
s.addText("MECHANISMS OF MEMBRANE PASSAGE", { x: 0.4, y: 0.12, w: 9.2, h: 0.42, fontSize: 20, color: C.white, bold: true, margin: 0 });
s.addText("Drug transport across biological membranes determines absorption rate and extent", { x: 0.4, y: 0.6, w: 9.2, h: 0.38, fontSize: 11, color: C.light, margin: 0 });
const mechs = [
{
title: "1. Passive Diffusion",
color: C.teal,
points: [
"Most common mechanism",
"Drug moves high β low concentration gradient",
"Nonionized, lipophilic forms cross better",
"Rate β concentration gradient Γ lipid solubility",
"pH-Partition hypothesis applies",
]
},
{
title: "2. Active Transport",
color: C.gold,
points: [
"Carrier-mediated; requires energy (ATP)",
"Can move drugs against concentration gradient",
"Saturable and inhibitable",
"Examples: P-glycoprotein, OATP, OAT transporters",
"Subject to drug-drug interactions",
]
},
{
title: "3. Facilitated Diffusion",
color: C.green,
points: [
"Carrier-mediated but NO energy required",
"Moves drug down concentration gradient",
"Faster than simple passive diffusion",
"Also saturable",
"Examples: glucose transporters (GLUT family)",
]
},
{
title: "4. Pinocytosis / Endocytosis",
color: C.red,
points: [
"Cell engulfs macromolecules in vesicles",
"Important for large molecules (proteins, vaccines)",
"Used by some peptide drugs",
"Not relevant for most small-molecule drugs",
"",
]
},
];
mechs.forEach((m, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const bx = 0.4 + col * 4.75;
const by = 1.2 + row * 2.1;
s.addShape(pres.ShapeType.roundRect, { x: bx, y: by, w: 4.55, h: 1.9, fill: { color: C.navyMid }, line: { color: m.color, width: 2 }, rectRadius: 0.1 });
// Title bar
s.addShape(pres.ShapeType.rect, { x: bx, y: by, w: 4.55, h: 0.38, fill: { color: m.color } });
s.addText(m.title, { x: bx + 0.1, y: by + 0.04, w: 4.35, h: 0.3, fontSize: 12, color: C.navy, bold: true, margin: 0 });
const pts = m.points.filter(p => p).map((p, j) => ({
text: p,
options: { bullet: { type: "bullet" }, breakLine: j < m.points.filter(x => x).length - 1, color: C.offwhite }
}));
s.addText(pts, { x: bx + 0.15, y: by + 0.44, w: 4.3, h: 1.38, fontSize: 9.5, margin: 0, lineSpacingMultiple: 1.15 });
});
}
// βββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 4 β pH PARTITION & IONIZATION
// βββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.offwhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 1.05, fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.05, w: "100%", h: 0.06, fill: { color: C.gold } });
s.addText("pH PARTITION HYPOTHESIS & IONIZATION", { x: 0.4, y: 0.12, w: 9.2, h: 0.42, fontSize: 20, color: C.white, bold: true, margin: 0 });
s.addText("Only the nonionized (lipophilic) form of a drug crosses biological membranes effectively", { x: 0.4, y: 0.6, w: 9.2, h: 0.38, fontSize: 11, color: C.light, margin: 0 });
// Henderson-Hasselbalch box
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.2, w: 9.2, h: 1.15, fill: { color: C.navyMid }, line: { color: C.gold, width: 2 }, rectRadius: 0.1 });
s.addText("Henderson-Hasselbalch Equation", { x: 0.55, y: 1.27, w: 9, h: 0.32, fontSize: 13, color: C.gold, bold: true, margin: 0 });
s.addText("For weak acids: pH = pKa + log([Aβ»]/[HA]) β Ionized form = Aβ» (cannot cross membrane)", { x: 0.55, y: 1.6, w: 9, h: 0.3, fontSize: 10.5, color: C.white, margin: 0 });
s.addText("For weak bases: pH = pKa + log([B]/[BHβΊ]) β Ionized form = BHβΊ (cannot cross membrane)", { x: 0.55, y: 1.9, w: 9, h: 0.3, fontSize: 10.5, color: C.white, margin: 0 });
// Stomach vs Intestine table
s.addText("Absorption Site Comparison", { x: 0.4, y: 2.5, w: 9.2, h: 0.38, fontSize: 14, color: C.navyMid, bold: true, margin: 0 });
const rows = [
["Site", "pH", "Best Absorbed", "Example"],
["Stomach", "1 β 2", "Weak ACIDS (nonionized)", "Aspirin (pKa 3.5), Ibuprofen"],
["Duodenum / Jejunum", "5 β 7", "Weak BASES & most drugs", "Morphine, Codeine, Ampicillin"],
["Ileum / Colon", "7 β 8", "Most drugs (large SA)", "Sustained-release formulations"],
["Buccal / Sublingual", "~7", "Lipophilic drugs bypass FPE", "Nitroglycerine, Buprenorphine"],
];
rows.forEach((row, ri) => {
const by = 2.95 + ri * 0.49;
const isHeader = ri === 0;
row.forEach((cell, ci) => {
const widths = [2.2, 0.9, 3.7, 2.75];
const bx = [0.4, 2.6, 3.5, 7.2][ci];
s.addShape(pres.ShapeType.rect, {
x: bx, y: by, w: widths[ci], h: 0.46,
fill: { color: isHeader ? C.navyMid : (ri % 2 === 0 ? C.white : "#EAF3FB") },
line: { color: C.light, width: 0.5 }
});
s.addText(cell, {
x: bx + 0.05, y: by + 0.05, w: widths[ci] - 0.1, h: 0.36,
fontSize: isHeader ? 10 : 9.5,
color: isHeader ? C.gold : C.darkgray,
bold: isHeader,
align: "left", margin: 0
});
});
});
}
// βββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 5 β BIOAVAILABILITY DEFINED
// βββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.2, h: "100%", fill: { color: C.gold } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 1.05, fill: { color: C.darkgray } });
s.addText("BIOAVAILABILITY (F)", { x: 0.4, y: 0.12, w: 9.2, h: 0.42, fontSize: 22, color: C.gold, bold: true, margin: 0 });
s.addText("The fraction of an administered dose that reaches the systemic circulation unchanged", { x: 0.4, y: 0.62, w: 9.2, h: 0.35, fontSize: 11.5, color: C.light, margin: 0 });
// Formula box
s.addShape(pres.ShapeType.roundRect, { x: 2.0, y: 1.15, w: 6.0, h: 1.25, fill: { color: C.navyMid }, line: { color: C.teal, width: 2.5 }, rectRadius: 0.15 });
s.addText("F = AUCoral / AUCIV Γ (Dose IV / Dose oral)", { x: 2.0, y: 1.22, w: 6.0, h: 0.48, fontSize: 16, color: C.teal, bold: true, align: "center", margin: 0 });
s.addText("where 0 < F β€ 1 (IV route: F = 1 by definition)", { x: 2.0, y: 1.72, w: 6.0, h: 0.34, fontSize: 10.5, color: C.gold, align: "center", margin: 0 });
// Two reasons for low F
s.addText("Two Main Reasons for Reduced Bioavailability", { x: 0.4, y: 2.55, w: 9.2, h: 0.4, fontSize: 14, color: C.teal, bold: true, margin: 0 });
const reasons = [
{
num: "1",
title: "Incomplete Absorption",
color: C.red,
points: [
"Poor drug solubility in GI fluids",
"Unstable at gastric pH (e.g., penicillin G)",
"Large molecular size limits membrane passage",
"Efflux transporters (P-glycoprotein) pump drug back",
"Incomplete dissolution from solid forms",
]
},
{
num: "2",
title: "Pre-systemic (First-Pass) Elimination",
color: C.gold,
points: [
"Intestinal wall metabolism (CYP3A4, MAO)",
"Hepatic metabolism before reaching systemic circulation",
"Biliary excretion of absorbed drug",
"Example: morphine F β 33% (hepatic ER = 0.67)",
"Example: lidocaine β NOT given orally (extensive FPE)",
]
}
];
reasons.forEach((r, i) => {
const bx = 0.4 + i * 4.85;
s.addShape(pres.ShapeType.roundRect, { x: bx, y: 3.05, w: 4.65, h: 2.42, fill: { color: C.navyMid }, line: { color: r.color, width: 2 }, rectRadius: 0.1 });
s.addShape(pres.ShapeType.rect, { x: bx, y: 3.05, w: 4.65, h: 0.44, fill: { color: r.color } });
s.addText(r.num + ". " + r.title, { x: bx + 0.1, y: 3.08, w: 4.45, h: 0.38, fontSize: 12, color: C.navy, bold: true, margin: 0 });
const pts = r.points.map((p, j) => ({ text: p, options: { bullet: true, breakLine: j < r.points.length - 1, color: C.offwhite } }));
s.addText(pts, { x: bx + 0.15, y: 3.56, w: 4.4, h: 1.85, fontSize: 9.5, margin: 0, lineSpacingMultiple: 1.2 });
});
}
// βββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 6 β FIRST-PASS EFFECT
// βββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.offwhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 1.05, fill: { color: C.red } });
s.addText("FIRST-PASS EFFECT (Pre-systemic Elimination)", { x: 0.4, y: 0.1, w: 9.2, h: 0.44, fontSize: 20, color: C.white, bold: true, margin: 0 });
s.addText("Oral drugs must traverse intestinal epithelium β portal vein β liver before reaching systemic circulation", { x: 0.4, y: 0.62, w: 9.2, h: 0.36, fontSize: 11, color: C.white, margin: 0 });
// Pathway flow
const steps = [
{ label: "Oral\nDose", color: C.navyMid },
{ label: "GI\nLumen", color: C.darkgray },
{ label: "Enterocyte\n(intestinal wall)", color: C.tealDk },
{ label: "Portal\nVein", color: C.navyMid },
{ label: "Liver\n(hepatocyte)", color: C.red },
{ label: "Systemic\nCirculation", color: C.teal },
];
steps.forEach((st, i) => {
const bx = 0.25 + i * 1.63;
s.addShape(pres.ShapeType.roundRect, { x: bx, y: 1.15, w: 1.42, h: 0.8, fill: { color: st.color }, rectRadius: 0.08 });
s.addText(st.label, { x: bx, y: 1.17, w: 1.42, h: 0.76, fontSize: 9, color: C.white, bold: true, align: "center", margin: 0 });
if (i < steps.length - 1) {
s.addShape(pres.ShapeType.rect, { x: bx + 1.42, y: 1.47, w: 0.21, h: 0.18, fill: { color: C.gray } });
}
});
// Metabolism sites info
s.addText("Sites of Drug Loss (Metabolism / Efflux):", { x: 0.4, y: 2.1, w: 9.2, h: 0.38, fontSize: 13, color: C.navyMid, bold: true, margin: 0 });
const sites = [
{ site: "Intestinal Wall", enzymes: "CYP3A4 (most abundant gut CYP)\nP-glycoprotein efflux transporter\nMoamine oxidase (MAO)", bg: "#EAF3FB" },
{ site: "Liver (Hepatocyte)", enzymes: "CYP450 enzymes (CYP3A4, CYP2D6...)\nGlucuronyl transferase, Sulfotransferase\nBiliary excretion of metabolites", bg: "#FFE8E8" },
];
sites.forEach((site, i) => {
const bx = 0.4 + i * 4.85;
s.addShape(pres.ShapeType.roundRect, { x: bx, y: 2.55, w: 4.65, h: 1.35, fill: { color: site.bg }, line: { color: i === 0 ? C.teal : C.red, width: 1.5 }, rectRadius: 0.1 });
s.addText(site.site, { x: bx + 0.1, y: 2.6, w: 4.45, h: 0.34, fontSize: 13, color: C.navyMid, bold: true, margin: 0 });
s.addText(site.enzymes, { x: bx + 0.1, y: 2.97, w: 4.45, h: 0.88, fontSize: 10, color: C.darkgray, margin: 0 });
});
// Formula
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 4.02, w: 9.2, h: 0.7, fill: { color: C.navyMid }, line: { color: C.gold, width: 1.5 }, rectRadius: 0.1 });
s.addText("F = f Γ (1 β ER) where f = fraction absorbed, ER = hepatic extraction ratio", { x: 0.6, y: 4.1, w: 8.8, h: 0.28, fontSize: 12.5, color: C.gold, bold: true, margin: 0 });
s.addText("Example: Morphine β f β 1 (fully absorbed), ER = 0.67 β F = 1 Γ (1 β 0.67) = 0.33 (33%)", { x: 0.6, y: 4.4, w: 8.8, h: 0.26, fontSize: 10.5, color: C.light, margin: 0 });
// High extraction drugs
s.addText("High Extraction Drugs (extensive FPE): Morphine Β· Lidocaine Β· Propranolol Β· Isoniazid Β· Verapamil Β· Tricyclic antidepressants", {
x: 0.4, y: 4.82, w: 9.2, h: 0.4,
fontSize: 9.5, color: C.darkgray, align: "center", italic: true, margin: 0
});
}
// βββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 7 β ROUTES OF ADMINISTRATION
// βββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 1.0, fill: { color: C.teal } });
s.addText("ROUTES OF ADMINISTRATION", { x: 0.4, y: 0.1, w: 9.2, h: 0.44, fontSize: 22, color: C.navy, bold: true, margin: 0 });
s.addText("Bioavailability varies widely depending on route; IV route = 100% reference standard", { x: 0.4, y: 0.6, w: 9.2, h: 0.34, fontSize: 11, color: C.navyMid, margin: 0 });
// Table header
const headers = ["Route", "Bioavail. (%)", "Onset", "First-Pass?", "Key Notes"];
const widths = [1.7, 1.3, 0.9, 1.2, 4.3];
const xStarts = [0.3, 2.0, 3.3, 4.2, 5.4];
headers.forEach((h, i) => {
s.addShape(pres.ShapeType.rect, { x: xStarts[i], y: 1.1, w: widths[i], h: 0.44, fill: { color: C.tealDk }, line: { color: C.teal, width: 0.5 } });
s.addText(h, { x: xStarts[i] + 0.05, y: 1.14, w: widths[i] - 0.1, h: 0.36, fontSize: 10, color: C.white, bold: true, margin: 0 });
});
const tableData = [
["Intravenous (IV)", "100 (by def.)", "Immediate", "None", "Gold standard; risk of infection, phlebitis"],
["Intramuscular (IM)", "75β100", "Fast", "Bypassed", "Good for poorly soluble drugs; depot formulations"],
["Subcutaneous (SC)", "75β100", "Moderate", "Bypassed", "Insulin, heparin, vaccines; slower than IM"],
["Oral (PO)", "5β<100", "Slow-mod", "Significant", "Most convenient; subject to GI & hepatic FPE"],
["Sublingual", "~100", "Fast", "Bypassed", "Rapid absorption; e.g., nitroglycerine, buprenorphine"],
["Rectal (PR)", "30β<100", "Variable", "Partial", "Less FPE than oral; useful when PO not possible"],
["Inhalation", "5β100", "Very fast", "Minimal", "Direct lung action; e.g., salbutamol, anaesthetics"],
["Transdermal", "Varies", "Slow", "Bypassed", "Sustained delivery; e.g., fentanyl, nicotine patches"],
];
tableData.forEach((row, ri) => {
const bg = ri % 2 === 0 ? C.navyMid : "#162B43";
row.forEach((cell, ci) => {
s.addShape(pres.ShapeType.rect, { x: xStarts[ci], y: 1.54 + ri * 0.48, w: widths[ci], h: 0.45, fill: { color: bg }, line: { color: "#1E3A5F", width: 0.3 } });
s.addText(cell, {
x: xStarts[ci] + 0.05, y: 1.57 + ri * 0.48, w: widths[ci] - 0.1, h: 0.38,
fontSize: ci === 4 ? 8.5 : 9,
color: ci === 1 ? C.gold : C.offwhite,
bold: ci === 0,
margin: 0
});
});
});
}
// βββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 8 β FACTORS AFFECTING BIOAVAILABILITY
// βββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.offwhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 1.05, fill: { color: C.darkgray } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.05, w: "100%", h: 0.06, fill: { color: C.teal } });
s.addText("FACTORS AFFECTING BIOAVAILABILITY", { x: 0.4, y: 0.1, w: 9.2, h: 0.42, fontSize: 20, color: C.white, bold: true, margin: 0 });
s.addText("Multiple physiological, pharmaceutical, and pathological variables influence F", { x: 0.4, y: 0.62, w: 9.2, h: 0.35, fontSize: 11, color: C.light, margin: 0 });
const categories = [
{
title: "Pharmaceutical Factors",
icon: "π",
color: C.teal,
items: ["Particle size & dissolution rate", "Formulation (salt form, prodrug)", "Excipients & binders", "Dosage form: solution > suspension > capsule > tablet"]
},
{
title: "Patient Factors",
icon: "π§ββοΈ",
color: C.gold,
items: ["GI motility & gastric emptying time", "Splanchnic blood flow", "Gut microbiome composition (>1000 species)", "Age: neonates & elderly have altered absorption"]
},
{
title: "Disease States",
icon: "π₯",
color: C.red,
items: ["Malabsorption syndromes (Crohn's, celiac)", "Liver disease β reduced first-pass metabolism", "Heart failure β reduced gut blood flow", "Renal failure β altered protein binding & Vd"]
},
{
title: "Drug Interactions",
icon: "β οΈ",
color: "#9B59B6",
items: ["Food: delays/enhances absorption (high-fat meal)", "Antacids: chelation of fluoroquinolones, tetracyclines", "P-gp inhibitors: increase bioavailability of substrates", "Enzyme inducers (rifampicin): reduce F of many drugs"]
},
];
categories.forEach((cat, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const bx = 0.4 + col * 4.85;
const by = 1.25 + row * 2.1;
s.addShape(pres.ShapeType.roundRect, { x: bx, y: by, w: 4.65, h: 1.95, fill: { color: C.white }, line: { color: cat.color, width: 2 }, rectRadius: 0.1 });
// Title row
s.addShape(pres.ShapeType.rect, { x: bx, y: by, w: 4.65, h: 0.46, fill: { color: cat.color } });
s.addText(cat.icon + " " + cat.title, { x: bx + 0.1, y: by + 0.06, w: 4.45, h: 0.36, fontSize: 12, color: C.navy, bold: true, margin: 0 });
const pts = cat.items.map((item, j) => ({
text: item,
options: { bullet: true, breakLine: j < cat.items.length - 1, color: C.darkgray }
}));
s.addText(pts, { x: bx + 0.15, y: by + 0.55, w: 4.4, h: 1.32, fontSize: 9.5, margin: 0, lineSpacingMultiple: 1.2 });
});
}
// βββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 9 β AUC & BIOEQUIVALENCE
// βββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 1.05, fill: { color: C.navyMid } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.05, w: "100%", h: 0.06, fill: { color: C.teal } });
s.addText("AUC, Cmax & BIOEQUIVALENCE", { x: 0.4, y: 0.1, w: 9.2, h: 0.42, fontSize: 22, color: C.teal, bold: true, margin: 0 });
s.addText("Pharmacokinetic metrics used to measure and compare bioavailability", { x: 0.4, y: 0.62, w: 9.2, h: 0.36, fontSize: 11.5, color: C.light, margin: 0 });
// Key parameters
const params = [
{ name: "AUC", full: "Area Under the Curve", desc: "Total drug exposure over time. AUC β bioavailability (for first-order elimination). Used to calculate F.", color: C.teal },
{ name: "Cmax", full: "Peak Plasma Concentration", desc: "Maximum drug concentration achieved. Influenced by rate of absorption and dose.", color: C.gold },
{ name: "Tmax", full: "Time to Peak Concentration", desc: "Time at which Cmax is reached. Faster absorption = earlier Tmax. Related to rate, not extent.", color: C.green },
{ name: "tΒ½", full: "Elimination Half-Life", desc: "Time to reduce concentration by 50%. Determined by Vd and clearance. Not a measure of bioavailability.", color: "#9B59B6" },
];
params.forEach((p, i) => {
const bx = 0.35 + i * 2.35;
s.addShape(pres.ShapeType.roundRect, { x: bx, y: 1.2, w: 2.2, h: 2.1, fill: { color: C.navyMid }, line: { color: p.color, width: 2 }, rectRadius: 0.1 });
s.addText(p.name, { x: bx, y: 1.22, w: 2.2, h: 0.55, fontSize: 28, color: p.color, bold: true, align: "center", margin: 0 });
s.addText(p.full, { x: bx + 0.1, y: 1.78, w: 2.0, h: 0.38, fontSize: 9, color: C.gold, align: "center", margin: 0, italic: true });
s.addText(p.desc, { x: bx + 0.1, y: 2.18, w: 2.0, h: 1.05, fontSize: 9, color: C.offwhite, margin: 0, lineSpacingMultiple: 1.2 });
});
// Bioequivalence definition
s.addShape(pres.ShapeType.roundRect, { x: 0.35, y: 3.45, w: 9.3, h: 0.85, fill: { color: C.tealDk }, line: { color: C.teal, width: 1.5 }, rectRadius: 0.1 });
s.addText("BIOEQUIVALENCE", { x: 0.55, y: 3.5, w: 9.1, h: 0.3, fontSize: 13, color: C.gold, bold: true, margin: 0 });
s.addText("Two formulations are bioequivalent when their AUC and Cmax fall within 80β125% of each other (90% CI). This is the FDA standard for generic drug approval β same active ingredient, same dose, same route, same bioavailability.", {
x: 0.55, y: 3.8, w: 9.1, h: 0.44,
fontSize: 9.5, color: C.white, margin: 0
});
// Rate vs extent note
s.addShape(pres.ShapeType.roundRect, { x: 0.35, y: 4.42, w: 9.3, h: 0.78, fill: { color: C.darkgray }, line: { color: C.gold, width: 1 }, rectRadius: 0.1 });
s.addText([
{ text: "Rate vs Extent: ", options: { bold: true, color: C.gold } },
{ text: "AUC measures EXTENT of absorption. Cmax & Tmax reflect RATE. Two drugs with equal AUC but different Cmax may have very different clinical effects, especially for single-dose therapy (e.g., hypnotics, analgesics).", options: { color: C.light } }
], { x: 0.5, y: 4.5, w: 9.1, h: 0.64, fontSize: 10, margin: 0 });
}
// βββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 10 β CLINICAL IMPLICATIONS
// βββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.offwhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 1.05, fill: { color: C.tealDk } });
s.addText("CLINICAL IMPLICATIONS", { x: 0.4, y: 0.1, w: 9.2, h: 0.44, fontSize: 22, color: C.white, bold: true, margin: 0 });
s.addText("How absorption & bioavailability knowledge guides prescribing decisions", { x: 0.4, y: 0.62, w: 9.2, h: 0.35, fontSize: 11, color: C.light, margin: 0 });
const points = [
{ title: "Route Selection", body: "Choose IV for immediate/precise effect (e.g., emergencies, drugs with extensive FPE like lidocaine). Oral for maintenance therapy when bioavailability is predictable.", icon: "π―" },
{ title: "Dose Adjustment", body: "Oral doses must compensate for first-pass effect. Morphine: PO dose ~3Γ IV dose due to F β 33%. Hepatic impairment β reduced FPE β dose reduction needed.", icon: "π" },
{ title: "Drug Interactions", body: "Grapefruit juice inhibits CYP3A4 β increases bioavailability of statins, calcium channel blockers. Rifampicin induces CYP3A4 β dramatically reduces F of many drugs.", icon: "β οΈ" },
{ title: "Formulation Design", body: "Sustained-release formulations achieve zero-order absorption. Prodrugs bypass FPE (e.g., enalapril β enalaprilat). Sublingual/transdermal bypass gut and liver entirely.", icon: "π‘" },
{ title: "Special Populations", body: "Neonates: immature gut enzymes, different gastric pH. Elderly: reduced gut motility, blood flow. Liver disease: reduced first-pass, increased F of extracted drugs.", icon: "πΆπ΄" },
{ title: "Generic Substitution", body: "Bioequivalence (80β125% AUC rule) ensures generics are clinically interchangeable. Exception: narrow therapeutic index drugs (e.g., warfarin, phenytoin) β require careful monitoring.", icon: "π" },
];
points.forEach((pt, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const bx = 0.35 + col * 3.12;
const by = 1.2 + row * 2.15;
s.addShape(pres.ShapeType.roundRect, { x: bx, y: by, w: 2.95, h: 2.0, fill: { color: C.white }, line: { color: C.teal, width: 1.5 }, rectRadius: 0.1 });
s.addText(pt.icon + " " + pt.title, { x: bx + 0.1, y: by + 0.08, w: 2.75, h: 0.38, fontSize: 11.5, color: C.navyMid, bold: true, margin: 0 });
s.addShape(pres.ShapeType.rect, { x: bx, y: by + 0.46, w: 2.95, h: 0.04, fill: { color: C.teal } });
s.addText(pt.body, { x: bx + 0.1, y: by + 0.58, w: 2.75, h: 1.35, fontSize: 9, color: C.darkgray, margin: 0, lineSpacingMultiple: 1.2 });
});
}
// βββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 11 β SUMMARY / KEY TAKEAWAYS
// βββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: "100%", fill: { color: C.teal } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 1.05, fill: { color: C.tealDk } });
s.addText("KEY TAKEAWAYS", { x: 0.4, y: 0.1, w: 9.2, h: 0.44, fontSize: 24, color: C.white, bold: true, margin: 0 });
s.addText("Absorption & Bioavailability in Pharmacology", { x: 0.4, y: 0.62, w: 9.2, h: 0.35, fontSize: 12, color: C.light, margin: 0 });
const takeaways = [
{ num: "01", text: "Absorption = drug movement from administration site to bloodstream. Bioavailability (F) = fraction reaching systemic circulation unchanged." },
{ num: "02", text: "Oral route: most convenient but subject to FPE. IV route: 100% bioavailability, the gold standard for comparison." },
{ num: "03", text: "First-Pass Effect reduces oral bioavailability via intestinal (CYP3A4, P-gp) and hepatic metabolism before systemic circulation." },
{ num: "04", text: "F = f Γ (1 β ER). High-extraction drugs (morphine, propranolol) have low F. Routes bypassing the liver (SL, IV, TD) avoid FPE." },
{ num: "05", text: "AUC measures extent of absorption; Cmax and Tmax reflect rate. Bioequivalence requires AUC and Cmax within 80β125%." },
{ num: "06", text: "Factors: drug physicochemistry, dosage form, GI physiology, blood flow, enzymes, food, disease, age, and drug interactions all alter F." },
];
takeaways.forEach((t, i) => {
const by = 1.2 + i * 0.72;
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: by, w: 0.6, h: 0.55, fill: { color: C.teal }, rectRadius: 0.08 });
s.addText(t.num, { x: 0.4, y: by + 0.06, w: 0.6, h: 0.42, fontSize: 14, color: C.navy, bold: true, align: "center", margin: 0 });
s.addText(t.text, { x: 1.1, y: by + 0.04, w: 8.6, h: 0.52, fontSize: 10, color: C.offwhite, margin: 0, lineSpacingMultiple: 1.1 });
});
// Footer
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.3, w: "100%", h: 0.32, fill: { color: C.navyMid } });
s.addText("Sources: Goodman & Gilman's Pharmacological Basis of Therapeutics | Katzung's Basic & Clinical Pharmacology 16e | Harrison's Principles of Internal Medicine 22e (2025)", {
x: 0.3, y: 5.32, w: 9.4, h: 0.26,
fontSize: 7.5, color: C.gray, align: "center", margin: 0
});
}
// Write file
pres.writeFile({ fileName: "/home/daytona/workspace/pharmacology-pptx/Absorption_Bioavailability_Pharmacology.pptx" })
.then(() => console.log("DONE"))
.catch(err => console.error("ERROR:", err));
cd /home/daytona/workspace/pharmacology-pptx && node build.js 2>&1
ls -lh /home/daytona/workspace/pharmacology-pptx/
Absorption Bioavailability Pharmacology
Presentation Β· PPTX
| Slide | Topic |
|---|---|
| 1 | Title slide with topic overview boxes |
| 2 | What is Absorption? - definition + 6 governing factors |
| 3 | Mechanisms of Membrane Passage (passive diffusion, active transport, facilitated, pinocytosis) |
| 4 | pH Partition Hypothesis & ionization - Henderson-Hasselbalch, site-by-site comparison table |
| 5 | Bioavailability defined - formula F = AUCoral/AUCIV, two reasons for reduced F |
| 6 | First-Pass Effect - pathway diagram, intestinal vs hepatic sites, F = f Γ (1-ER) with morphine example |
| 7 | Routes of Administration - full comparison table (8 routes, onset, FPE, notes) |
| 8 | Factors Affecting Bioavailability - pharmaceutical, patient, disease, drug interactions |
| 9 | AUC, Cmax, Tmax & Bioequivalence - FDA 80-125% rule, rate vs extent distinction |
| 10 | Clinical Implications - dose adjustment, route selection, drug interactions, special populations |
| 11 | Key Takeaways - 6 numbered summary points with source credits |