Can you prepare Difference between antacid,proton pump inhibitor,h2 receptor antagonist

| Feature | Antacid | H2 Receptor Antagonist (H2RA) | Proton Pump Inhibitor (PPI) |
|---|---|---|---|
| Mechanism | Chemically neutralizes acid already in the stomach lumen | Competitively blocks histamine H2 receptors on parietal cells, reducing acid secretion | Irreversibly binds and inhibits H+/K+-ATPase (proton pump), the final step in acid secretion |
| Site of action | Gastric lumen (no systemic action) | Parietal cell surface (H2 receptor) | Inside the parietal cell (proton pump) |
| Acid reduction | Raises gastric pH by neutralization; does not reduce acid production | Reduces acid secretion by ~70% | Reduces basal and stimulated acid secretion by >90% |
| Onset of action | Rapid - within minutes | Slower - up to 45 minutes for symptom relief | Requires activation in the acidic parietal cell; full effect after several doses (usually 3-5 days) |
| Duration of action | Short (30-60 min fasting; up to 3 hrs after food) | 6-12 hours | ~18 hours per dose (until new proton pumps are synthesized); extended with repeated dosing |
| Examples | Aluminium hydroxide, magnesium hydroxide, calcium carbonate, sodium bicarbonate | Cimetidine, famotidine, nizatidine | Omeprazole, esomeprazole, lansoprazole, pantoprazole, rabeprazole, dexlansoprazole |
| Route | Oral only | Oral; IV available (famotidine, cimetidine) | Oral (enteric-coated); IV available (pantoprazole, esomeprazole) |
| Prodrug? | No | No | Yes - converted to active sulfenamide in acidic canaliculi of parietal cell |
| Reversibility | N/A (not receptor/enzyme-based) | Reversible competitive antagonism | Irreversible covalent binding to H+/K+-ATPase |
| Effect on all secretory stimuli | Post-secretion neutralization only | Blocks histamine-mediated stimulation only; partial reduction of gastrin/ACh effects | Blocks the final common pathway regardless of the secretory stimulus (histamine, gastrin, ACh) |
Al(OH)3 + 3HCl → AlCl3 + 3H2O
For GERD: PPIs are now preferred over H2RAs because H2RAs take up to 45 minutes for symptom relief and PPIs provide far superior, sustained acid control. Antacids act fastest but wear off quickly. - Lippincott Illustrated Reviews: Pharmacology, p. 1420
Can you prepare pdf of this
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/acid-drugs-pdf && python3 << 'EOF' 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 import urllib.request from reportlab.platypus import Image as RLImage import io # ── Page setup ────────────────────────────────────────────────────────────── doc = SimpleDocTemplate( "/tmp/workspace/acid-drugs-pdf/Antacid_H2RA_PPI_Comparison.pdf", pagesize=A4, rightMargin=1.8*cm, leftMargin=1.8*cm, topMargin=2*cm, bottomMargin=2*cm, title="Antacid vs H2RA vs PPI – Drug Comparison", author="Orris Medical Reference" ) W, H = A4 usable_w = W - 3.6*cm # ── Styles ─────────────────────────────────────────────────────────────────── styles = getSampleStyleSheet() BRAND_BLUE = colors.HexColor("#1A4C8B") BRAND_LIGHT = colors.HexColor("#EAF2FB") HEADER_BG = colors.HexColor("#1A4C8B") ROW_ODD = colors.HexColor("#F5F9FF") ROW_EVEN = colors.white ACCENT_GREEN = colors.HexColor("#1D7A4F") ACCENT_ORG = colors.HexColor("#C05800") ACCENT_PURP = colors.HexColor("#6A2C9A") LIGHT_GRAY = colors.HexColor("#F0F0F0") DARK_GRAY = colors.HexColor("#333333") title_style = ParagraphStyle("TitleStyle", parent=styles["Title"], fontSize=20, textColor=colors.white, alignment=TA_CENTER, spaceAfter=4, fontName="Helvetica-Bold", leading=26) subtitle_style = ParagraphStyle("SubTitle", parent=styles["Normal"], fontSize=10, textColor=colors.HexColor("#AACCEE"), alignment=TA_CENTER, spaceAfter=2, fontName="Helvetica") section_style = ParagraphStyle("Section", parent=styles["Heading1"], fontSize=13, textColor=BRAND_BLUE, fontName="Helvetica-Bold", spaceBefore=14, spaceAfter=6, borderPad=2) subsection_style = ParagraphStyle("SubSection", parent=styles["Heading2"], fontSize=11, textColor=DARK_GRAY, fontName="Helvetica-Bold", spaceBefore=8, spaceAfter=4) body_style = ParagraphStyle("Body", parent=styles["Normal"], fontSize=9.5, leading=14, textColor=DARK_GRAY, fontName="Helvetica", spaceAfter=4, alignment=TA_JUSTIFY) bullet_style = ParagraphStyle("Bullet", parent=styles["Normal"], fontSize=9.5, leading=13, textColor=DARK_GRAY, fontName="Helvetica", spaceAfter=2, leftIndent=14, bulletIndent=4) caption_style = ParagraphStyle("Caption", parent=styles["Normal"], fontSize=8.5, leading=11, textColor=colors.HexColor("#555555"), fontName="Helvetica-Oblique", alignment=TA_CENTER, spaceAfter=6) note_style = ParagraphStyle("Note", parent=styles["Normal"], fontSize=8.5, leading=12, textColor=colors.HexColor("#444444"), fontName="Helvetica-Oblique", backColor=colors.HexColor("#FFFBE6"), leftIndent=8, rightIndent=8, spaceAfter=6) drug_green = ParagraphStyle("DrugGreen", parent=body_style, textColor=ACCENT_GREEN, fontName="Helvetica-Bold") drug_blue = ParagraphStyle("DrugBlue", parent=body_style, textColor=BRAND_BLUE, fontName="Helvetica-Bold") drug_purple = ParagraphStyle("DrugPurple", parent=body_style, textColor=ACCENT_PURP, fontName="Helvetica-Bold") cell_hdr = ParagraphStyle("CellHdr", parent=styles["Normal"], fontSize=9, fontName="Helvetica-Bold", textColor=colors.white, alignment=TA_CENTER, leading=12) cell_feat = ParagraphStyle("CellFeat", parent=styles["Normal"], fontSize=9, fontName="Helvetica-Bold", textColor=BRAND_BLUE, leading=12) cell_body = ParagraphStyle("CellBody", parent=styles["Normal"], fontSize=8.5, fontName="Helvetica", textColor=DARK_GRAY, leading=12) story = [] # ════════════════════════════════════════════════════════════════════════════ # HEADER BANNER # ════════════════════════════════════════════════════════════════════════════ banner_data = [[ Paragraph("Antacids · H2 Receptor Antagonists · Proton Pump Inhibitors", title_style), ]] banner_table = Table(banner_data, colWidths=[usable_w]) banner_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), HEADER_BG), ("ROUNDEDCORNERS", [6]), ("TOPPADDING", (0,0), (-1,-1), 14), ("BOTTOMPADDING",(0,0),(-1,-1), 8), ("LEFTPADDING", (0,0),(-1,-1), 10), ("RIGHTPADDING", (0,0),(-1,-1), 10), ])) story.append(banner_table) sub_data = [[Paragraph("A Comprehensive Pharmacology Comparison | Source: Lippincott Illustrated Reviews: Pharmacology", subtitle_style)]] sub_tbl = Table(sub_data, colWidths=[usable_w]) sub_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), colors.HexColor("#0F3060")), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING",(0,0),(-1,-1), 8), ("LEFTPADDING", (0,0),(-1,-1), 10), ("RIGHTPADDING", (0,0),(-1,-1), 10), ])) story.append(sub_tbl) story.append(Spacer(1, 10)) # ════════════════════════════════════════════════════════════════════════════ # MECHANISM DIAGRAM # ════════════════════════════════════════════════════════════════════════════ try: img_url = "https://cdn.orris.care/cdss_images/9b077204bf3f7a96c5095d2b0b67dc00fc0a0082bd9cb30e70b2a0d960847a71.png" req = urllib.request.Request(img_url, headers={"User-Agent": "Mozilla/5.0"}) img_data = urllib.request.urlopen(req, timeout=15).read() img_buf = io.BytesIO(img_data) rl_img = RLImage(img_buf, width=usable_w*0.88, height=usable_w*0.88*0.44) img_tbl = Table([[rl_img]], colWidths=[usable_w]) img_tbl.setStyle(TableStyle([ ("ALIGN", (0,0),(-1,-1), "CENTER"), ("TOPPADDING", (0,0),(-1,-1), 6), ("BOTTOMPADDING",(0,0),(-1,-1), 4), ])) story.append(img_tbl) story.append(Paragraph( "Figure: Parietal cell acid secretion pathways. Omeprazole (PPI) blocks the proton pump; " "famotidine (H2RA) blocks the H2-histamine receptor; antacids act in the gastric lumen.", caption_style)) except Exception as e: story.append(Paragraph(f"[Diagram could not be loaded: {e}]", caption_style)) story.append(HRFlowable(width=usable_w, thickness=1.5, color=BRAND_BLUE, spaceAfter=8)) # ════════════════════════════════════════════════════════════════════════════ # SECTION 1 – QUICK COMPARISON TABLE # ════════════════════════════════════════════════════════════════════════════ story.append(Paragraph("1. Quick Comparison Table", section_style)) col1 = usable_w * 0.22 col2 = usable_w * 0.26 col3 = usable_w * 0.26 col4 = usable_w * 0.26 def P(text, style=cell_body): return Paragraph(text, style) rows = [ # Header row [P("Feature", cell_hdr), P("Antacid", cell_hdr), P("H2 Receptor Antagonist", cell_hdr), P("Proton Pump Inhibitor", cell_hdr)], # Data rows [P("Mechanism", cell_feat), P("Chemically neutralizes HCl already in the gastric lumen"), P("Competitively & reversibly blocks H2 receptors on parietal cells → reduces acid secretion"), P("Irreversibly binds H+/K+-ATPase (proton pump) → blocks the final step of acid secretion")], [P("Site of Action", cell_feat), P("Gastric lumen (no systemic effect on secretion)"), P("Parietal cell surface – H2 receptor"), P("Inside parietal cell – secretory canaliculus")], [P("Degree of Acid Reduction", cell_feat), P("Raises gastric pH by neutralization; does not reduce production"), P("~70% reduction in acid secretion"), P(">90% inhibition of basal and stimulated acid secretion")], [P("Onset of Action", cell_feat), P("Rapid – within minutes"), P("Slower – up to 45 min for symptom relief"), P("Delayed; full effect after 3–5 days of dosing")], [P("Duration of Action", cell_feat), P("Short: 30–60 min (fasting); up to 3 hrs after food"), P("6–12 hours"), P("~18 hrs per dose; extends with repeated use")], [P("Examples", cell_feat), P("Al(OH)₃, Mg(OH)₂, CaCO₃, NaHCO₃"), P("Cimetidine, Famotidine, Nizatidine"), P("Omeprazole, Esomeprazole, Lansoprazole, Pantoprazole, Rabeprazole, Dexlansoprazole")], [P("Route", cell_feat), P("Oral only"), P("Oral; IV available (famotidine)"), P("Oral (enteric-coated); IV available (pantoprazole, esomeprazole)")], [P("Prodrug?", cell_feat), P("No"), P("No"), P("Yes – activated in acidic canaliculi of parietal cell")], [P("Reversibility", cell_feat), P("N/A"), P("Reversible competitive antagonism"), P("Irreversible covalent bond (new pumps needed for recovery)")], [P("Covers All Stimuli?", cell_feat), P("Post-secretion neutralization only"), P("Partial – blocks histamine pathway; ACh/gastrin effects persist"), P("Yes – blocks final common pathway regardless of stimulus")], [P("Tolerance?", cell_feat), P("Not applicable"), P("Yes – tolerance develops with prolonged use"), P("No significant tolerance")], ] tbl = Table(rows, colWidths=[col1, col2, col3, col4], repeatRows=1) tbl_style = TableStyle([ # Header ("BACKGROUND", (0,0), (-1,0), HEADER_BG), ("TEXTCOLOR", (0,0), (-1,0), colors.white), ("ALIGN", (0,0), (-1,0), "CENTER"), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), # Feature column ("BACKGROUND", (0,1), (0,-1), BRAND_LIGHT), # Alternating rows *[("BACKGROUND", (1,r), (-1,r), ROW_ODD if r%2==1 else ROW_EVEN) for r in range(1, len(rows))], # Grid ("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#BBCCE8")), ("LINEBELOW", (0,0), (-1,0), 1.5, BRAND_BLUE), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 5), ("RIGHTPADDING", (0,0), (-1,-1), 5), ]) tbl.setStyle(tbl_style) story.append(tbl) story.append(Spacer(1, 10)) # ════════════════════════════════════════════════════════════════════════════ # SECTION 2 – ANTACIDS # ════════════════════════════════════════════════════════════════════════════ story.append(HRFlowable(width=usable_w, thickness=1, color=ACCENT_GREEN, spaceAfter=4)) story.append(Paragraph("2. Antacids – Detailed Overview", section_style)) story.append(Paragraph("Mechanism", subsection_style)) story.append(Paragraph( "Antacids are weak bases that directly neutralize hydrochloric acid already present in the gastric lumen. " "They do <b>not</b> reduce acid production – they simply raise gastric pH after secretion has occurred. " "Example reaction: Al(OH)₃ + 3HCl → AlCl₃ + 3H₂O", body_style)) story.append(Paragraph("Pharmacokinetics", subsection_style)) story.append(Paragraph( "Food delays gastric emptying, prolonging antacid contact time and extending duration of action. " "Aluminium compounds may be partially absorbed. Magnesium compounds are largely not absorbed in healthy patients " "but can accumulate in renal failure.", body_style)) story.append(Paragraph("Adverse Effects by Agent", subsection_style)) ae_data = [ [P("Agent", cell_hdr), P("Adverse Effects", cell_hdr)], [P("Aluminium hydroxide", cell_feat), P("Constipation; phosphate depletion → antacid-induced osteomalacia (chronic use)")], [P("Magnesium hydroxide", cell_feat), P("Diarrhea; hypermagnesemia in renal failure")], [P("Calcium carbonate", cell_feat), P("Acid rebound; hypercalcaemia; milk-alkali syndrome")], [P("Sodium bicarbonate", cell_feat), P("Systemic alkalosis; CO₂ belching; contraindicated in heart failure / hypertension")], ] ae_tbl = Table(ae_data, colWidths=[usable_w*0.3, usable_w*0.7], repeatRows=1) ae_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), ACCENT_GREEN), ("TEXTCOLOR", (0,0),(-1,0), colors.white), ("BACKGROUND", (0,1),(0,-1), colors.HexColor("#E8F5EE")), ("GRID", (0,0),(-1,-1), 0.5, colors.HexColor("#AADDBB")), ("VALIGN", (0,0),(-1,-1), "TOP"), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 5), ("RIGHTPADDING", (0,0),(-1,-1), 5), *[("BACKGROUND", (1,r),(-1,r), ROW_ODD if r%2==1 else ROW_EVEN) for r in range(1,5)], ])) ae_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), ACCENT_GREEN), ("TEXTCOLOR", (0,0),(-1,0), colors.white), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("GRID", (0,0),(-1,-1), 0.5, colors.HexColor("#AADDBB")), ("VALIGN", (0,0),(-1,-1), "TOP"), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 5), ("RIGHTPADDING", (0,0),(-1,-1), 5), ])) story.append(ae_tbl) story.append(Paragraph("Clinical Uses", subsection_style)) uses_a = [ "Immediate symptomatic relief of heartburn and dyspepsia", "Mild GERD", "Perioperative aspiration prophylaxis (non-particulate antacids e.g. sodium citrate given 15–30 min before induction – nearly 100% effective at raising gastric pH above 2.5)", "Combined with alginates for GORD (alginate-antacid preparations)", ] for u in uses_a: story.append(Paragraph(f"• {u}", bullet_style)) # ════════════════════════════════════════════════════════════════════════════ # SECTION 3 – H2 RECEPTOR ANTAGONISTS # ════════════════════════════════════════════════════════════════════════════ story.append(Spacer(1, 8)) story.append(HRFlowable(width=usable_w, thickness=1, color=BRAND_BLUE, spaceAfter=4)) story.append(Paragraph("3. H2 Receptor Antagonists (H2RAs) – Detailed Overview", section_style)) story.append(Paragraph("Mechanism", subsection_style)) story.append(Paragraph( "H2RAs competitively and <b>reversibly</b> block histamine H2 receptors on gastric parietal cells. " "Since histamine acts as a central amplifier of both gastrin- and acetylcholine-driven acid secretion, " "H2 blockade reduces acid output by approximately <b>70%</b>. They inhibit basal, food-stimulated, " "and nocturnal acid secretion.", body_style)) story.append(Paragraph("Pharmacokinetics", subsection_style)) for pt in [ "Widely distributed including into breast milk and across the placenta", "Excreted mainly in urine – dose reduction needed in renal dysfunction", "Half-life increases with renal impairment", "Famotidine also available in IV formulation", ]: story.append(Paragraph(f"• {pt}", bullet_style)) story.append(Paragraph("Adverse Effects", subsection_style)) for ae in [ "<b>Cimetidine:</b> gynecomastia and galactorrhea (nonsteroidal antiandrogen effect); confusion/altered mentation (especially elderly, especially IV); strong CYP450 inhibitor – interacts with warfarin, phenytoin, clopidogrel", "H2RAs reduce absorption of drugs requiring acidic environment (e.g. itraconazole, ketoconazole)", "Tolerance develops with prolonged use (limits utility for stress ulcer prophylaxis)", "Ranitidine withdrawn from market due to NDMA (potential carcinogen) contamination", "Generally well tolerated compared to older acid-suppressing agents", ]: story.append(Paragraph(f"• {ae}", bullet_style)) story.append(Paragraph("Clinical Uses", subsection_style)) for u in [ "Peptic ulcer disease (less preferred than PPIs currently)", "GERD – mild to moderate heartburn", "Stress ulcer prophylaxis in ICU (IV infusion; tolerance may limit utility)", "Alternative to PPI in patients on clopidogrel (famotidine preferred to avoid CYP2C19 interaction)", ]: story.append(Paragraph(f"• {u}", bullet_style)) # ════════════════════════════════════════════════════════════════════════════ # SECTION 4 – PROTON PUMP INHIBITORS # ════════════════════════════════════════════════════════════════════════════ story.append(Spacer(1, 8)) story.append(HRFlowable(width=usable_w, thickness=1, color=ACCENT_PURP, spaceAfter=4)) story.append(Paragraph("4. Proton Pump Inhibitors (PPIs) – Detailed Overview", section_style)) story.append(Paragraph("Mechanism", subsection_style)) story.append(Paragraph( "PPIs are <b>prodrugs</b> with enteric coating that protects them from premature degradation in the stomach. " "After absorption in the duodenum, they are transported to the parietal cell, accumulate in the acidic secretory " "canaliculus, and are converted to the active sulfenamide form. This active metabolite forms a <b>stable " "covalent bond</b> with H+/K+-ATPase (proton pump), permanently inactivating it. Acid secretion only resumes " "when the cell synthesizes new proton pump protein (~18 hours). At standard doses, PPIs inhibit both basal and " "stimulated gastric acid secretion by <b>more than 90%</b>.", body_style)) story.append(Paragraph("Pharmacokinetics", subsection_style)) for pt in [ "Must be taken 30–60 minutes before a meal (parietal cells need to be actively secreting for drug accumulation and activation)", "Duration of effect extends with repeated dosing as steady-state pump inhibition builds", "Metabolized by CYP2C19 – genetic variation affects efficacy (poor vs. extensive metabolizers)", "Omeprazole + sodium bicarbonate: immediate-release oral formulation available (bypasses need for enteric coating)", ]: story.append(Paragraph(f"• {pt}", bullet_style)) story.append(Paragraph("Adverse Effects", subsection_style)) ae2_data = [ [P("Type", cell_hdr), P("Details", cell_hdr)], [P("Short-term", cell_feat), P("Headache, diarrhea, nausea (generally mild)")], [P("Hypomagnesemia", cell_feat), P("Impairs intestinal Mg²⁺ absorption with long-term use")], [P("Infections", cell_feat), P("Increased risk of C. difficile colitis and community-acquired pneumonia (reduced acid barrier)")], [P("Bone / Mineral", cell_feat), P("Osteoporosis/fractures (impaired Ca²⁺ absorption); Vitamin B12 deficiency")], [P("Rebound Acidity", cell_feat), P("Rebound acid hypersecretion on discontinuation – taper gradually")], [P("Renal", cell_feat), P("Acute interstitial nephritis (rare but recognized)")], [P("Drug Interaction", cell_feat), P("Reduced clopidogrel efficacy (PPIs inhibit CYP2C19 activation of clopidogrel); use famotidine instead")], ] ae2_tbl = Table(ae2_data, colWidths=[usable_w*0.25, usable_w*0.75], repeatRows=1) ae2_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), ACCENT_PURP), ("TEXTCOLOR", (0,0),(-1,0), colors.white), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("BACKGROUND", (0,1),(0,-1), colors.HexColor("#F0E8FA")), ("GRID", (0,0),(-1,-1), 0.5, colors.HexColor("#CCAAEE")), ("VALIGN", (0,0),(-1,-1), "TOP"), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 5), ("RIGHTPADDING", (0,0),(-1,-1), 5), *[("BACKGROUND", (1,r),(-1,r), ROW_ODD if r%2==1 else ROW_EVEN) for r in range(1,8)], ])) story.append(ae2_tbl) story.append(Paragraph("Clinical Uses", subsection_style)) for u in [ "GERD – first-line, especially erosive esophagitis and severe/frequent symptoms", "Peptic ulcer disease (including H. pylori eradication regimens)", "NSAID-induced ulcers (healing and prevention)", "Zollinger-Ellison syndrome (high dose)", "Stress ulcer prophylaxis in ICU", "Barrett's esophagus (long-term acid suppression)", ]: story.append(Paragraph(f"• {u}", bullet_style)) # ════════════════════════════════════════════════════════════════════════════ # SECTION 5 – CLINICAL HIERARCHY # ════════════════════════════════════════════════════════════════════════════ story.append(Spacer(1, 8)) story.append(HRFlowable(width=usable_w, thickness=1, color=ACCENT_ORG, spaceAfter=4)) story.append(Paragraph("5. Clinical Hierarchy & Treatment Ladder", section_style)) hier_data = [ [P("Clinical Need", cell_hdr), P("Drug of Choice", cell_hdr), P("Rationale", cell_hdr)], [P("Immediate symptom relief", cell_feat), P("Antacid"), P("Fastest onset (minutes); neutralizes acid already present")], [P("Moderate suppression / mild GERD", cell_feat), P("H2 Receptor Antagonist"), P("Reduces secretion by ~70%; suitable for mild/intermittent symptoms")], [P("Maximum acid suppression / erosive disease / long-term", cell_feat), P("Proton Pump Inhibitor"), P(">90% inhibition; covers all stimuli; irreversible; preferred for GERD, PUD, Zollinger-Ellison")], [P("Pre-operative aspiration prophylaxis", cell_feat), P("Non-particulate antacid (sodium citrate)"), P("Single dose 15–30 min pre-induction; ~100% effective at raising pH >2.5")], [P("Patient on clopidogrel needing gastroprotection", cell_feat), P("Famotidine (H2RA)"), P("Avoids CYP2C19 inhibition that impairs clopidogrel activation")], [P("ICU stress ulcer prophylaxis", cell_feat), P("PPI preferred (IV pantoprazole)", ), P("H2RA tolerance limits long-term ICU use; PPI more reliable")], ] hier_tbl = Table(hier_data, colWidths=[usable_w*0.28, usable_w*0.24, usable_w*0.48], repeatRows=1) hier_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), colors.HexColor("#C05800")), ("TEXTCOLOR", (0,0),(-1,0), colors.white), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("GRID", (0,0),(-1,-1), 0.5, colors.HexColor("#DDBBAA")), ("VALIGN", (0,0),(-1,-1), "TOP"), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 5), ("RIGHTPADDING", (0,0),(-1,-1), 5), *[("BACKGROUND", (0,r),(-1,r), ROW_ODD if r%2==1 else ROW_EVEN) for r in range(1,7)], ])) story.append(hier_tbl) # ════════════════════════════════════════════════════════════════════════════ # REFERENCE NOTE # ════════════════════════════════════════════════════════════════════════════ story.append(Spacer(1, 12)) story.append(HRFlowable(width=usable_w, thickness=0.5, color=colors.gray, spaceAfter=6)) story.append(Paragraph( "<i>Primary Source: Lippincott Illustrated Reviews: Pharmacology (Chapter 42 – Gastrointestinal Drugs), " "pp. 1419–1430. Generated by Orris Medical Reference · July 2026.</i>", caption_style)) # ════════════════════════════════════════════════════════════════════════════ # BUILD # ════════════════════════════════════════════════════════════════════════════ doc.build(story) print("PDF created successfully.") EOF
Antacid H2RA PPI Comparison
PDF Document · PDF