Details about "Intestinal staplers" - principle, diagram or images, description of all parts, technique of application, indications, complications and other necessary details
intestinal surgical staplers principle parts technique application indications complications
https://lexington-med.com/2026/02/blog-anatomy-of-a-surgical…

| Part | Description |
|---|---|
| Handle | Ergonomic grip; houses the firing mechanism |
| Shaft | Connects handle to the jaws |
| I-beam/Driver | The firing mechanism; advances forward pushing staple drivers upward and carrying the blade |
| Staple cartridge (lower jaw) | Loaded with 2-3 rows of staples in staggered configuration; color-coded by height |
| Anvil (upper jaw) | Fixed opposing jaw; contains the forming pockets that shape staples into "B" |
| Knife/blade | Central blade housed within the cartridge that cuts between staple rows |
| Safety mechanism | Prevents accidental firing |
| Articulating head | Present in laparoscopic versions; allows angulation for positioning |

| Part | Description |
|---|---|
| Handle | Housing for the firing and approximation mechanism |
| Shaft | May be straight or curved (for transanal insertion) |
| Staple head/cartridge | Circular arrangement of 2 rows of staples on the body of the device |
| Anvil | Detachable mushroom-shaped disc with a central spike; sutured into the proximal bowel with a purse-string suture |
| Center rod/pin | Telescoping pin that connects body to anvil; extends when turning the knob to "open" position |
| Approximation knob | Turning knob that advances or retracts the pin to mate with/separate from the anvil |
| Tissue gap indicator | Green/red indicator shows whether tissue compression is in the correct range |
| Firing trigger/handle squeeze | Deploys the staples and the circular knife simultaneously |
| Circular knife | Cuts the tissue inner to the double staple rings, creating the anastomotic lumen |






| Procedure | Stapler Type Used |
|---|---|
| Right hemicolectomy with ileocolic anastomosis | GIA (side-to-side) + TA or GIA (closure) |
| Low anterior resection (LAR) | TA (rectal transection) + EEA (colorectal anastomosis) |
| Ileal pouch-anal anastomosis (IPAA / J-pouch) | GIA (pouch formation) + 25 mm EEA (anastomosis) |
| Total colectomy with ileorectal anastomosis | GIA / EEA |
| Hartmann's reversal | EEA |
| Small bowel resection / anastomosis | GIA (side-to-side) |
| STEP procedure (serial transverse enteroplasty) | Linear GIA applied from alternating directions |
| Gastric sleeve / bypass (bariatric) | GIA (stomach division/anastomosis) |
| Esophagojejunostomy | 25 mm EEA |
| Recto-sigmoid resection | EEA (25-29 mm) |
| Meckel's diverticulum excision | GIA across the base |
| Whipple / hepatobiliary resection | GIA for parenchymal and vascular transection |
| Feature | Stapled | Hand-Sewn |
|---|---|---|
| Speed | Faster | Slower |
| Consistency | More uniform | Operator-dependent |
| Ileocolic leak rate | Lower (RCT data) | Higher |
| Colorectal (LAR) | Equivalent outcomes | Technically harder deep in pelvis |
| Anastomotic stricture | Higher (EEA) | Lower |
| Cost | Higher (disposable cartridges) | Lower |
| Deep pelvic anastomosis | Excellent (EEA) | Very difficult |
Give this details as proper pdf with good tables
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace does not exist"
mkdir -p /home/daytona/workspace/intestinal-staplers && echo "Directory created"
~/intestinal-staplers/generate_pdf.py
import json
import subprocess
import base64
import os
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import cm, mm
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
PageBreak, HRFlowable, Image, KeepTogether
)
from reportlab.platypus.flowables import HRFlowable
from reportlab.lib.colors import HexColor
from io import BytesIO
OUTPUT_PATH = "/home/daytona/workspace/intestinal-staplers/Intestinal_Staplers.pdf"
# ── Color palette ────────────────────────────────────────────────────────────
DARK_BLUE = HexColor("#1a3a5c")
MED_BLUE = HexColor("#2e6da4")
LIGHT_BLUE = HexColor("#d6e8f7")
ACCENT = HexColor("#e8f4fd")
TABLE_HEAD = HexColor("#1a3a5c")
TABLE_ALT = HexColor("#eef5fb")
WHITE = colors.white
BLACK = colors.black
DARK_GRAY = HexColor("#333333")
MED_GRAY = HexColor("#666666")
BORDER = HexColor("#2e6da4")
# ── Styles ───────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()
def make_style(name, **kwargs):
return ParagraphStyle(name, **kwargs)
cover_title = make_style('CoverTitle',
fontName='Helvetica-Bold', fontSize=32, textColor=WHITE,
alignment=TA_CENTER, leading=40, spaceAfter=8)
cover_sub = make_style('CoverSub',
fontName='Helvetica', fontSize=16, textColor=HexColor("#a8d4f5"),
alignment=TA_CENTER, leading=22, spaceAfter=6)
cover_date = make_style('CoverDate',
fontName='Helvetica', fontSize=11, textColor=HexColor("#c8e0f0"),
alignment=TA_CENTER, leading=16)
h1 = make_style('H1',
fontName='Helvetica-Bold', fontSize=18, textColor=DARK_BLUE,
spaceBefore=18, spaceAfter=8, leading=24,
borderPad=4, borderColor=MED_BLUE)
h2 = make_style('H2',
fontName='Helvetica-Bold', fontSize=14, textColor=MED_BLUE,
spaceBefore=14, spaceAfter=5, leading=20)
h3 = make_style('H3',
fontName='Helvetica-Bold', fontSize=11, textColor=DARK_BLUE,
spaceBefore=10, spaceAfter=4, leading=16)
body = make_style('Body',
fontName='Helvetica', fontSize=10, textColor=DARK_GRAY,
leading=15, spaceAfter=5, alignment=TA_JUSTIFY)
bullet = make_style('Bullet',
fontName='Helvetica', fontSize=10, textColor=DARK_GRAY,
leading=14, spaceAfter=3, leftIndent=18, bulletIndent=6,
alignment=TA_LEFT)
caption = make_style('Caption',
fontName='Helvetica-Oblique', fontSize=8.5, textColor=MED_GRAY,
alignment=TA_CENTER, leading=12, spaceAfter=8)
note_style = make_style('Note',
fontName='Helvetica-Oblique', fontSize=9, textColor=MED_GRAY,
leading=13, spaceAfter=4, leftIndent=12)
source_style = make_style('Source',
fontName='Helvetica', fontSize=8.5, textColor=MED_GRAY,
leading=12, spaceAfter=3, leftIndent=12)
# ── Table style helpers ───────────────────────────────────────────────────────
def std_table_style(has_header=True):
s = [
('BACKGROUND', (0,0), (-1,0), TABLE_HEAD),
('TEXTCOLOR', (0,0), (-1,0), WHITE),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,0), 10),
('ALIGN', (0,0), (-1,-1), 'LEFT'),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('FONTNAME', (0,1), (-1,-1), 'Helvetica'),
('FONTSIZE', (0,1), (-1,-1), 9.5),
('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, TABLE_ALT]),
('GRID', (0,0), (-1,-1), 0.5, HexColor("#aacde8")),
('LINEBELOW', (0,0), (-1,0), 1.5, MED_BLUE),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
('LEFTPADDING', (0,0), (-1,-1), 7),
('RIGHTPADDING', (0,0), (-1,-1), 7),
('WORDWRAP', (0,0), (-1,-1), True),
]
return TableStyle(s)
def section_rule():
return HRFlowable(width="100%", thickness=1.5, color=MED_BLUE,
spaceAfter=4, spaceBefore=2)
def thin_rule():
return HRFlowable(width="100%", thickness=0.5, color=HexColor("#c0d8ed"),
spaceAfter=3, spaceBefore=2)
# ── Image fetcher ─────────────────────────────────────────────────────────────
def fetch_image_bytes(url):
try:
result = subprocess.check_output(
["node", "/home/daytona/skills/shared/scripts/fetch_images.js", url],
timeout=30
)
data = json.loads(result)
if data and data[0].get("base64"):
raw = base64.b64decode(data[0]["base64"].split(",")[1])
return BytesIO(raw)
except Exception as e:
print(f" Warning: could not fetch {url}: {e}")
return None
def make_img(url, width_cm, caption_text=None):
"""Return a list of flowables: [Image, Caption?]"""
buf = fetch_image_bytes(url)
if buf is None:
return []
img = Image(buf, width=width_cm*cm, height=None)
# Maintain aspect ratio
orig_w, orig_h = img.imageWidth, img.imageHeight
if orig_w and orig_h:
ratio = orig_h / orig_w
img._width = width_cm * cm
img._height = width_cm * cm * ratio
img.drawWidth = img._width
img.drawHeight = img._height
items = [img]
if caption_text:
items.append(Paragraph(caption_text, caption))
return items
# ── Page header/footer callbacks ──────────────────────────────────────────────
HEADER_TEXT = "INTESTINAL STAPLERS — Surgical Reference"
FOOTER_TEXT = "Sources: Hinman's Atlas of Urologic Surgery | Sabiston Textbook of Surgery | Fischer's Mastery of Surgery"
def on_page(canvas, doc):
canvas.saveState()
w, h = A4
# Header bar
canvas.setFillColor(DARK_BLUE)
canvas.rect(0, h-28*mm, w, 10*mm, fill=1, stroke=0)
canvas.setFillColor(WHITE)
canvas.setFont('Helvetica-Bold', 9)
canvas.drawString(1.5*cm, h-22*mm, HEADER_TEXT)
canvas.setFont('Helvetica', 8)
canvas.drawRightString(w-1.5*cm, h-22*mm, f"Page {doc.page}")
# Footer line
canvas.setStrokeColor(MED_BLUE)
canvas.setLineWidth(0.5)
canvas.line(1.5*cm, 1.8*cm, w-1.5*cm, 1.8*cm)
canvas.setFillColor(MED_GRAY)
canvas.setFont('Helvetica-Oblique', 7)
canvas.drawCentredString(w/2, 1.2*cm, FOOTER_TEXT)
canvas.restoreState()
def on_first_page(canvas, doc):
# No header/footer on cover
pass
# ── Build document ────────────────────────────────────────────────────────────
def build():
doc = SimpleDocTemplate(
OUTPUT_PATH, pagesize=A4,
leftMargin=1.8*cm, rightMargin=1.8*cm,
topMargin=3.2*cm, bottomMargin=2.8*cm,
title="Intestinal Staplers – Complete Surgical Reference",
author="Orris Medical Reference"
)
story = []
W = A4[0] - 3.6*cm # usable width
# ══════════════════════════════════════════════════════════════════════════
# COVER PAGE
# ══════════════════════════════════════════════════════════════════════════
cover_data = [[
Paragraph("INTESTINAL STAPLERS", cover_title),
Paragraph("Principle · Parts · Technique · Indications · Complications", cover_sub),
Spacer(1, 0.4*cm),
Paragraph("A Complete Surgical Reference", cover_sub),
Spacer(1, 1.5*cm),
Paragraph("Sources: Hinman's Atlas of Urologic Surgery | Sabiston Textbook of Surgery | Fischer's Mastery of Surgery", cover_date),
Spacer(1, 0.3*cm),
Paragraph("Compiled by Orris Medical AI | June 2026", cover_date),
]]
cover_table = Table([[cover_data[0][i]] for i in range(len(cover_data[0]))],
colWidths=[W])
cover_table.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), DARK_BLUE),
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('TOPPADDING', (0,0), (-1,-1), 12),
('BOTTOMPADDING', (0,0), (-1,-1), 12),
('LEFTPADDING', (0,0), (-1,-1), 20),
('RIGHTPADDING', (0,0), (-1,-1), 20),
('ROUNDEDCORNERS', [8]),
]))
# Simple cover block
story.append(Spacer(1, 3*cm))
cover_box = Table([
[Paragraph("INTESTINAL STAPLERS", cover_title)],
[Spacer(1, 0.3*cm)],
[Paragraph("Principle • Parts • Technique • Indications • Complications", cover_sub)],
[Spacer(1, 0.2*cm)],
[Paragraph("A Complete Surgical Reference", cover_sub)],
[Spacer(1, 2*cm)],
[Paragraph("Sources: Hinman's Atlas of Urologic Surgery | Sabiston Textbook of Surgery | Fischer's Mastery of Surgery", cover_date)],
[Spacer(1, 0.3*cm)],
[Paragraph("Compiled by Orris Medical AI | June 2026", cover_date)],
], colWidths=[W+1*cm])
cover_box.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), DARK_BLUE),
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('TOPPADDING', (0,0), (-1,0), 40),
('BOTTOMPADDING', (0,-1), (-1,-1), 40),
('TOPPADDING', (0,1), (-1,-2), 2),
('BOTTOMPADDING', (0,1), (-1,-2), 2),
('LEFTPADDING', (0,0), (-1,-1), 30),
('RIGHTPADDING', (0,0), (-1,-1), 30),
]))
story.append(cover_box)
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════
# SECTION 1: INTRODUCTION & HISTORY
# ══════════════════════════════════════════════════════════════════════════
story.append(Paragraph("1. Introduction & Historical Background", h1))
story.append(section_rule())
story.append(Paragraph(
"Intestinal division and anastomosis was transformed by surgical stapling devices over the past 100 years. "
"The first surgical stapler for bowel surgery was created in <b>1908</b> by Hungarian surgeon Humer Hultl and "
"instrument designer Victor Fischer. After modifications in the 1920s, Soviet surgeons refined the technology "
"in the 1940s-50s, developing the first circular anastomotic stapler and first reusable devices. "
"US surgeon Mark Ravitch brought the technology from Russia, and with colleague Felicien Steichen developed "
"the modern instruments in clinical use today. Commercial production in the US followed in the 1960s-70s "
"with interchangeable and disposable cartridges of various staple heights.", body))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"The stapled anastomosis is best known for its ability to significantly decrease operative time and its "
"consistent reproducible results. For elective intestinal surgery, a stapled anastomosis shows equivalent "
"or superior outcomes compared to hand-sewn technique. Stapled ileocolic anastomosis after right "
"hemicolectomy has a significantly <b>lower leak rate</b> than hand-sutured anastomosis (Goulder 2012).", body))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 2: BASIC PRINCIPLE
# ══════════════════════════════════════════════════════════════════════════
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("2. Basic Principle", h1))
story.append(section_rule())
story.append(Paragraph(
"All intestinal staplers share the same fundamental mechanism:", body))
steps = [
"A <b>two-piece system</b> (two jaws or a detachable anvil) clamps the tissue between them under controlled compression.",
"One jaw carries a <b>reloadable staple cartridge</b>; the opposing jaw (anvil) has forming pockets that shape the staple legs.",
"On firing, an <b>I-beam/driver mechanism</b> pushes rows of staples through the tissue; the legs pass through and bend against the anvil pockets.",
"Each staple deforms into a <b>\"B\" shape</b> — the hallmark of correct formation. This allows hemostatic closure while preserving tissue perfusion (neither over-compressed causing ischemia, nor under-compressed causing bleeding).",
"Staple formation pressure is critical; manufacturing tolerances on cartridges and anvils are measured in <b>microns</b>.",
"Staplers with a cutting blade simultaneously <b>divide AND seal</b> tissue in one motion.",
]
for s in steps:
story.append(Paragraph(f"<bullet>•</bullet> {s}", bullet))
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph(
'<b>The "B" Shape of a Properly Formed Staple</b>', h3))
story.append(Paragraph(
'The staple leg is pushed through tissue and bends against the anvil forming pocket to produce a '
'"B" profile. This shape compresses but does not strangulate tissue, maintaining microvascular integrity '
'at the anastomotic edge.', body))
# B-shape image
story.extend(make_img(
"https://cdn.orris.care/cdss_images/1a5fcaae75945af0452bdbe30cf700f898b990dc0d155505092e531cb8cdc0ea.png",
5,
'Figure 1. "B" shape of a properly formed surgical staple. (Fischer\'s Mastery of Surgery, 8th ed.)'
))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 3: TYPES OF STAPLERS
# ══════════════════════════════════════════════════════════════════════════
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("3. Types of Intestinal Staplers", h1))
story.append(section_rule())
# Overview comparison table
story.append(Paragraph("3.1 Overview Comparison", h2))
overview_data = [
["Stapler Type", "Also Known As", "Cuts?", "Staple Rows", "Primary Use"],
["Linear Cutting", "GIA (Gastrointestinal Anastomosis)\nEndo-GIA / Echelon (laparoscopic)",
"Yes", "2x2 or 2x3 rows\n(each side of blade)", "Bowel division, side-to-side anastomosis"],
["Linear Non-Cutting", "TA (ThoracoAbdominal)\nProximate TL",
"No", "2 rows", "Close bowel without dividing; pelvic transection"],
["Circular Cutting", "EEA (End-to-End Anastomosis)\nCDH/ILS",
"Yes", "2 circular rows", "End-to-end luminal anastomosis (colorectal, esophageal)"],
["Curved Cutting", "Contour Stapler (Ethicon)",
"Yes", "Multiple rows", "Deep pelvic resection; combines TA access with cutting"],
]
ov_col = [W*0.2, W*0.28, W*0.08, W*0.2, W*0.24]
ov_table = Table(
[[Paragraph(cell, ParagraphStyle('tc', fontName='Helvetica-Bold' if r==0 else 'Helvetica',
fontSize=9.5 if r>0 else 10,
textColor=WHITE if r==0 else DARK_GRAY,
leading=13)) for cell in row]
for r, row in enumerate(overview_data)],
colWidths=ov_col, repeatRows=1)
ov_table.setStyle(std_table_style())
story.append(ov_table)
story.append(Spacer(1, 0.4*cm))
# ── 3.2 GIA ─────────────────────────────────────────────────────────────
story.append(Paragraph("3.2 Linear Cutting Stapler (GIA)", h2))
story.append(Paragraph(
"The GIA is the most commonly used intestinal stapling device. It fires two pairs of staggered staple rows "
"on each side of a central cutting blade, simultaneously dividing and sealing tissue in a single motion. "
"Common brands: <b>GIA</b> (Covidien/Medtronic), <b>Proximate Linear Cutter</b> (Ethicon). "
"Laparoscopic versions: <b>Endo-GIA</b> (Medtronic), <b>Echelon</b> (Ethicon).", body))
story.append(Paragraph("<b>Parts of the GIA Stapler:</b>", h3))
gia_parts = [
["Part", "Description"],
["Handle", "Ergonomic grip housing the firing mechanism; may be powered in newer models"],
["Shaft", "Connects handle to jaws; articulating in laparoscopic versions for angulation"],
["I-beam / Driver", "The firing mechanism; advances forward pushing staple drivers upward and carrying the blade through the full jaw length"],
["Staple Cartridge\n(lower jaw)", "Contains 2-3 staggered rows of titanium staples; color-coded by staple height (White/Blue/Green); single-use, reloadable"],
["Anvil (upper jaw)", "Fixed opposing jaw with forming pockets (recesses) that shape the staple legs into the 'B' configuration"],
["Knife / Blade", "Central cutting blade housed within the cartridge channel; cuts between the two sets of staple rows simultaneously with staple firing"],
["Safety lock", "Prevents accidental premature firing; must be disengaged before firing"],
["Jaw closure knob/lever", "Closes and locks the jaws onto tissue before firing; ensures uniform tissue compression"],
["Articulating head\n(laparoscopic)", "Allows the jaw assembly to angle for optimal tissue alignment through a trocar"],
]
gia_col = [W*0.28, W*0.72]
gia_table = Table(
[[Paragraph(cell, ParagraphStyle('tc', fontName='Helvetica-Bold' if r==0 else 'Helvetica',
fontSize=9.5 if r>0 else 10,
textColor=WHITE if r==0 else DARK_GRAY,
leading=13)) for cell in row]
for r, row in enumerate(gia_parts)],
colWidths=gia_col, repeatRows=1)
gia_table.setStyle(std_table_style())
story.append(gia_table)
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("<b>Staple Cartridge Color-Coding (GIA / Linear staplers):</b>", h3))
cc_data = [
["Color", "Open Staple Height", "Closed Height", "Tissue Application"],
["White", "2.5 mm", "~1 mm", "Vascular tissue, mesentery, thin structures"],
["Blue", "3.8 mm", "~1.5 mm", "Standard: small bowel, colon, normal tissue"],
["Green", "4.8 mm", "~2 mm", "Thick tissue: stomach, thickened/oedematous bowel"],
["Purple/Black\n(tri-staple)", "Varies", "Variable", "Specialty thick-tissue applications (bariatric)"],
]
cc_col = [W*0.12, W*0.2, W*0.18, W*0.5]
cc_table = Table(
[[Paragraph(cell, ParagraphStyle('tc', fontName='Helvetica-Bold' if r==0 else 'Helvetica',
fontSize=9.5 if r>0 else 10,
textColor=WHITE if r==0 else DARK_GRAY,
leading=13, backColor=(
HexColor("#f0f0f0") if (r>0 and cell=="White") else
HexColor("#dbe9f8") if (r>0 and cell=="Blue") else
HexColor("#c8e6c9") if (r>0 and cell=="Green") else
colors.white
))) for cell in row]
for r, row in enumerate(cc_data)],
colWidths=cc_col, repeatRows=1)
cc_table.setStyle(std_table_style())
story.append(cc_table)
story.append(Spacer(1, 0.3*cm))
# GIA application figure
story.extend(make_img(
"https://cdn.orris.care/cdss_images/46664fddf6b35723c4b4f01f821bafc59a6cfbc7aa96d1a7f517a4bf02ac453c.png",
7,
"Figure 2. GIA stapler jaws placed within bowel lumens and fired along the antimesenteric border "
"to create a side-to-side anastomosis. (Hinman's Atlas / Steichen, Stapling Techniques)"
))
# ── 3.3 TA ──────────────────────────────────────────────────────────────
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph("3.3 Linear Non-Cutting Stapler (TA / Proximate TL)", h2))
story.append(Paragraph(
"The TA stapler fires rows of staples without a cutting blade. Division is accomplished separately "
"(scalpel or scissors after firing). The handle is typically set at a <b>90-degree angle</b> to the shaft "
"for deep pelvic access. A <b>distal pin</b> must be engaged before firing to prevent tissue from "
"being pushed out during staple deployment. Available staple line lengths: 30-90 mm.", body))
# ── 3.4 EEA ─────────────────────────────────────────────────────────────
story.append(Paragraph("3.4 Circular Cutting Stapler (EEA)", h2))
story.append(Paragraph(
"The EEA is a two-piece detachable system for <b>end-to-end luminal anastomosis</b> with simultaneous "
"circular tissue resection. It is inserted through the rectum (transanally) for colorectal anastomoses. "
"Available diameters: <b>21, 25, 28, 29, 31, 33 mm</b> (note: the resultant inner anastomotic lumen "
"is up to 10 mm smaller than device diameter).", body))
story.append(Paragraph("<b>Parts of the EEA Stapler:</b>", h3))
eea_parts = [
["Part", "Description"],
["Handle", "Housing for the firing trigger and approximation mechanism; ergonomic grip"],
["Shaft", "Straight or curved (for transanal insertion); connects handle to staple head"],
["Staple head /\nCartridge body", "Carries 2 circular rows of titanium staples arranged concentrically around the central cutting ring"],
["Anvil", "Detachable mushroom-shaped disc; has a central spike/post that mates with the pin; sutured into proximal bowel with a full-thickness purse-string suture"],
["Center rod / Pin", "Telescoping pin that connects the stapler body to the anvil; advances by turning the knob to 'open' position; retracts to close"],
["Approximation knob", "Rotary knob at the handle end; turning brings the two bowel ends together ('closes'); opposite direction separates them"],
["Tissue gap indicator", "Green/amber/red marker on shaft; confirms adequate tissue compression is achieved before firing (prevents under- or over-compression)"],
["Firing trigger /\nHandle squeeze", "Fires the device; simultaneously deploys both circular staple rows AND the circular knife in one motion"],
["Circular knife", "Cuts the tissue inner to the double staple rings, creating the anastomotic lumen; the cut tissue pieces ('donuts') remain on the device after removal"],
]
eea_col = [W*0.28, W*0.72]
eea_table = Table(
[[Paragraph(cell, ParagraphStyle('tc', fontName='Helvetica-Bold' if r==0 else 'Helvetica',
fontSize=9.5 if r>0 else 10,
textColor=WHITE if r==0 else DARK_GRAY,
leading=13)) for cell in row]
for r, row in enumerate(eea_parts)],
colWidths=eea_col, repeatRows=1)
eea_table.setStyle(std_table_style())
story.append(eea_table)
story.append(Spacer(1, 0.3*cm))
# EEA image
story.extend(make_img(
"https://cdn.orris.care/cdss_images/9816924805485e229f07ae4e432b8368020d45158e8c6f31ec3148d1799389b5.png",
10,
"Figure 3. Circular (EEA) stapler. A: Full device showing curved shaft, handle and anvil head. "
"B: Close-up of the stapler head showing the two concentric circular staple rows and central cutting ring. "
"(Fischer's Mastery of Surgery, 8th ed.)"
))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 4: TECHNIQUE OF APPLICATION
# ══════════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(Paragraph("4. Technique of Application", h1))
story.append(section_rule())
# 4.1 Side-to-side
story.append(Paragraph("4.1 Side-to-Side (Functional End-to-End) Anastomosis — GIA Stapler", h2))
story.append(Paragraph(
"Most commonly used for ileocolic, small bowel-to-bowel, or entero-enteric anastomoses "
"during right hemicolectomy, small bowel resection, and colonic resections.", body))
sts_steps = [
["Step", "Action", "Key Points"],
["1", "Bowel resection", "Use GIA stapler to divide the proximal and distal bowel margins; this closes and divides both ends simultaneously"],
["2", "Create enterotomies", "Cut a corner off each stapled end OR make a small stab on the antimesenteric side ~1 cm from the staple line (Fig. 4.1)"],
["3", "Position GIA limbs", "Insert one jaw of the GIA stapler into each bowel lumen; align the two limbs along the antimesenteric border"],
["4", "Confirm no mesentery", "Before closing, verify no mesenteric fat is trapped between the jaws — mesentery in the staple line risks ischemia"],
["5", "Close and fire", "Close the jaws firmly; push the driver to the end of its track and back — deploys all staples and divides tissue"],
["6", "Inspect staple line", "Open and remove stapler; directly inspect internal anastomotic staple line for active bleeding; oversew any bleeders"],
["7", "Crotch stitch", "Place a figure-of-eight or interrupted suture at the apex of the common channel — this 'crotch stitch' reduces tension at the highest-stress point"],
["8", "Close enterotomy", "Approximate the open ends with Allis clamps, OFFSETTING the two staple lines; fire another GIA load or a TA stapler below the clamps"],
["9", "Reinforce (optional)", "The staple line can be reinforced with interrupted Lembert sutures; close mesentery per surgeon preference"],
]
sts_col = [W*0.06, W*0.22, W*0.72]
sts_table = Table(
[[Paragraph(cell, ParagraphStyle('tc', fontName='Helvetica-Bold' if r==0 else 'Helvetica',
fontSize=9.5 if r>0 else 10,
textColor=WHITE if r==0 else DARK_GRAY,
leading=13)) for cell in row]
for r, row in enumerate(sts_steps)],
colWidths=sts_col, repeatRows=1)
sts_table.setStyle(std_table_style())
story.append(sts_table)
story.append(Spacer(1, 0.3*cm))
# Enterotomy image
story.extend(make_img(
"https://cdn.orris.care/cdss_images/509e9e5a440954e0c92ee0d63e24ca630c48f4342dcfa103ca2012ccd00a1dbf.png",
6,
"Figure 4. Enterotomy on the antimesenteric side — created between the mesenteric border (yellow fat) "
"and the two bowel limbs to allow GIA jaw insertion. (Hinman's Atlas / Steichen, Stapling Techniques)"
))
# Common enterotomy closure image
story.extend(make_img(
"https://cdn.orris.care/cdss_images/21574b9563e6dd9d9c32ad6893695376a294922169cf4033bc31ded91ca0e992.png",
7,
"Figure 5. TA stapler (or second GIA load) closing the common enterotomy below Allis clamps "
"with offset staple lines. (Hinman's Atlas / Steichen)"
))
# 4.2 EEA colorectal
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("4.2 End-to-End (Double-Staple) Colorectal Anastomosis — EEA Stapler", h2))
story.append(Paragraph(
"Used for low anterior resection (LAR), sigmoidectomy, ileal pouch-anal anastomosis (IPAA), "
"and Hartmann's reversal. The double-staple technique involves a TA-stapled rectal stump "
"and an EEA-created end-to-end anastomosis.", body))
eea_steps = [
["Step", "Action", "Key Points"],
["1", "Bowel resection", "Resect the affected bowel; fire a TA stapler across the rectum for the distal margin — creates the rectal stump"],
["2", "Prepare anvil", "Open the proximal colon end; place the EEA anvil into it; secure with a full-thickness purse-string suture (hand-sewn or purse-string device)"],
["3", "Insert EEA body", "Insert the EEA handle/body transanally through the rectum; advance to the top of the rectal stump"],
["4", "Extend pin", "Turn the knob to 'open' position — the center pin telescopes out; it should exit directly through or just beside the TA staple line of the distal stump (Fig. 4.4)"],
["5", "Mate anvil to pin", "Connect the anvil shaft spike to the center pin of the stapler body"],
["6", "Approximate & check", "Turn the knob to 'closed' — draws both ends of bowel together; confirm the tissue gap indicator is in the GREEN (optimal compression) zone; ensure NO adjacent bowel/organs are trapped"],
["7", "Fire", "Fire the instrument — simultaneously deploys two circular rows of staples AND the circular knife; creates the anastomosis"],
["8", "Check donuts", "Withdraw the device; inspect both circular 'donuts' of tissue — BOTH must be COMPLETE rings; an incomplete donut = defective anastomosis requiring repair or revision"],
["9", "Leak test", "Perform rigid or flexible sigmoidoscopy with air/saline insufflation — confirms anastomosis is airtight before closure"],
["10", "Diverting stoma?", "Consider loop ileostomy if: positive leak test, prior pelvic radiation, malnutrition, steroid use, technically difficult anatomy, or very low pelvic anastomosis"],
]
eea_s_col = [W*0.06, W*0.22, W*0.72]
eea_s_table = Table(
[[Paragraph(cell, ParagraphStyle('tc', fontName='Helvetica-Bold' if r==0 else 'Helvetica',
fontSize=9.5 if r>0 else 10,
textColor=WHITE if r==0 else DARK_GRAY,
leading=13)) for cell in row]
for r, row in enumerate(eea_steps)],
colWidths=eea_s_col, repeatRows=1)
eea_s_table.setStyle(std_table_style())
story.append(eea_s_table)
story.append(Spacer(1, 0.3*cm))
# EEA sequence image
story.extend(make_img(
"https://cdn.orris.care/cdss_images/21737096409961b35aa58bf32bc874c2dc383c91d106f43430ddb57dec9600f7.png",
W/cm,
"Figure 6. EEA colorectal anastomosis sequence. A: Anvil sutured with purse-string into proximal colon; "
"stapled rectal stump below. B: EEA device introduced transanally. C: Pin extended and mated with anvil. "
"D: Cross-section at moment of firing — staples and cut shown. E: Final intact colorectal anastomosis. "
"(Fischer's Mastery of Surgery, adapted from ASCRS Manual of Colon and Rectal Surgery)"
))
# EEA detail image
story.extend(make_img(
"https://cdn.orris.care/cdss_images/d943981fc44af2406bff8cca757b866e668a5f52769815aa96e4d4c8f8e94428.png",
12,
"Figure 7. EEA pin advanced through the rectal stump in the pelvic cavity. The pin connects to the anvil "
"already secured with purse-string in the proximal colon (right side). (Hinman's Atlas / Steichen)"
))
# EEA closed mechanism
story.extend(make_img(
"https://cdn.orris.care/cdss_images/08338bf6c32c1ce3e8dd48b07c5555962cd30802d93e706c849999712894fc78.png",
9,
"Figure 8 (A, B). EEA mechanism closed by turning the knob — the two bowel ends are approximated "
"ready for firing. Pelvic anatomy shown with bladder (blue oval) above. (Hinman's Atlas / Steichen)"
))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 5: INDICATIONS
# ══════════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(Paragraph("5. Indications", h1))
story.append(section_rule())
ind_data = [
["Procedure", "Stapler Used", "Key Details"],
["Right hemicolectomy\nwith ileocolic anastomosis",
"GIA (anastomosis)\n+ TA or GIA (enterotomy closure)",
"Lower anastomotic leak rate vs. hand-sewn (Goulder 2012)"],
["Left hemicolectomy /\nSigmoidectomy",
"GIA or TA (bowel division)\n+ EEA 28-29 mm",
"EEA for anastomosis; TA for distal margin closure"],
["Low anterior resection (LAR)",
"TA (rectal transection)\n+ EEA 28-33 mm",
"EEA fired transanally; requires intraoperative leak test"],
["Ultra-low anterior resection",
"TA + EEA 25-28 mm",
"High technical difficulty; diverting ileostomy often required"],
["Ileal pouch-anal anastomosis\n(IPAA / J-pouch)",
"GIA (J-pouch construction)\n+ EEA 25 mm",
"25 mm EEA for ileoanal anastomosis; protective loop ileostomy standard"],
["Hartmann's reversal",
"EEA (colorectal re-anastomosis)",
"Transanal EEA to rejoin sigmoid to rectal stump"],
["Small bowel resection",
"GIA (side-to-side)\n+ GIA or TA (closure)",
"Functional end-to-end; widely used for ileocolic and jejunoileal anastomoses"],
["STEP procedure\n(Serial Transverse Enteroplasty)",
"Linear GIA",
"Applied from alternating directions along the mesenteric border to lengthen bowel in short gut syndrome"],
["Gastrectomy /\nGastric bypass (Roux-en-Y)",
"GIA (gastric division, anastomosis)\nEEA for esophagojejunostomy",
"Green cartridge for thick gastric tissue; linear stapler for Billroth II reconstruction"],
["Sleeve gastrectomy",
"GIA (green/blue cartridges)",
"Multiple sequential firings along greater curvature; staple line reinforcement often used"],
["Esophagojejunostomy",
"EEA 25-28 mm",
"EEA fired via gastrotomy or transoral; high leak risk — careful technique essential"],
["Whipple / HPB surgery",
"GIA (pancreatic/hepatic\nparenchymal transection)",
"White cartridge for vessels/ducts; staple line reinforcement with biologic material"],
["Meckel's diverticulum excision",
"GIA across the base",
"Linear fire across diverticular base; avoids narrowing the ileal lumen"],
["Colostomy / ileostomy creation\nand closure",
"GIA or TA",
"TA for bowel closure; GIA for re-anastomosis during reversal"],
]
ind_col = [W*0.30, W*0.28, W*0.42]
ind_table = Table(
[[Paragraph(cell, ParagraphStyle('tc', fontName='Helvetica-Bold' if r==0 else 'Helvetica',
fontSize=9 if r>0 else 10,
textColor=WHITE if r==0 else DARK_GRAY,
leading=13)) for cell in row]
for r, row in enumerate(ind_data)],
colWidths=ind_col, repeatRows=1)
ind_table.setStyle(std_table_style())
story.append(ind_table)
# ══════════════════════════════════════════════════════════════════════════
# SECTION 6: COMPLICATIONS
# ══════════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(Paragraph("6. Complications", h1))
story.append(section_rule())
comp_data = [
["Complication", "Mechanism / Cause", "Prevention / Management"],
["Anastomotic leak\n(most feared)",
"Inadequate blood supply; tension; incomplete donuts (EEA); wrong staple height; misfired device; infection, malnutrition, radiation, steroids",
"Ensure tension-free, well-vascularised anastomosis; check donuts; perform leak test; diverting stoma in high-risk cases; re-exploration if clinical leak develops"],
["Staple line bleeding\n(intraluminal or extraluminal)",
"Wrong staple height (too small = incomplete closure); inadequate tissue compression; staple misfire; missed vessel in cartridge",
"Correct cartridge selection; oversew bleeding points intraoperatively; fibrin glue; clips to extraluminal bleeding; endoscopy and haemostasis for intraluminal post-op bleeding"],
["Anastomotic stricture",
"Ischaemia; excessive fibrosis; oversewing; inherent lumen reduction with EEA (up to 10 mm smaller than device diameter)",
"Appropriate device diameter selection; avoid ischaemia; endoscopic balloon dilation for symptomatic stricture post-operatively"],
["Device misfire /\nmalfunction",
"Incomplete staple deployment; knife failure (staples fired but tissue not cut); cartridge fired without tissue; cartridge reuse",
"Check safety mechanism; correct jaw closure; single-use cartridges only; inspect the cartridge before and after firing; have backup cartridges available"],
["Tissue inclusion errors",
"Mesentery caught in GIA jaws (risks ischaemia); adjacent bowel in EEA closure; ureter or vaginal wall incorporated",
"Visual confirmation before closing jaws; sweep mesentery clear; ensure correct anatomy identification especially in EEA pelvic use"],
["Bowel obstruction",
"Early: haematoma/oedema at anastomosis; Late: anastomotic stricture, adhesions around staple line",
"Adequate haemostasis; correct staple height; follow up with endoscopy if obstruction suspected post-operatively"],
["Incomplete donuts\n(EEA specific)",
"Defective purse-string placement; anvil not fully seated; excessive tissue thickness; partial misfire",
"Both donuts must be inspected after every EEA firing; incomplete donut = reinspect anastomosis and add reinforcement sutures; consider revision"],
["Missed ischaemia /\ntension",
"Over-reliance on stapler without verifying blood supply or tension",
"Confirm pink bowel edges, visible mesenteric pulsations, and no tension after firing; re-resect if doubtful"],
["Wound infection /\nport-site seeding",
"Contamination during anastomosis; bowel contents spillage; inadvertent firing",
"Bowel preparation; prophylactic antibiotics; careful technique; specimen bag use laparoscopically"],
]
comp_col = [W*0.22, W*0.36, W*0.42]
comp_table = Table(
[[Paragraph(cell, ParagraphStyle('tc', fontName='Helvetica-Bold' if r==0 else 'Helvetica',
fontSize=9 if r>0 else 10,
textColor=WHITE if r==0 else DARK_GRAY,
leading=13)) for cell in row]
for r, row in enumerate(comp_data)],
colWidths=comp_col, repeatRows=1)
comp_table.setStyle(std_table_style())
story.append(comp_table)
story.append(Spacer(1, 0.5*cm))
# ── Staple line reinforcement box
story.append(Paragraph("6.1 Staple Line Reinforcement (SLR)", h2))
story.append(Paragraph(
"Several adjuncts exist to reduce bleeding and leak rates. They are applied to the stapler cartridge "
"before firing or to the staple line after firing:", body))
slr_data = [
["Reinforcement Type", "Material", "Evidence"],
["Absorbable synthetic buttress", "Glycolide or trimethylene carbonate copolymer matrix; sold by stapler manufacturers (Seamguard, etc.)", "Reduces post-op bleeding; mixed data on leak prevention; possibly increased leak in some series"],
["Biologic buttress", "Porcine small intestinal submucosa (SIS); bovine pericardium", "Theoretical benefit; widely used in bariatric surgery"],
["Oversewing", "Running or interrupted absorbable sutures over the staple line", "Common in colorectal and bariatric surgery; adds time but provides reinforcement layer"],
["Fibrin glue / tissue sealant", "Topical fibrin-based sealants applied to staple line", "Adjunct only; not a substitute for correct technique"],
]
slr_col = [W*0.22, W*0.42, W*0.36]
slr_table = Table(
[[Paragraph(cell, ParagraphStyle('tc', fontName='Helvetica-Bold' if r==0 else 'Helvetica',
fontSize=9 if r>0 else 10,
textColor=WHITE if r==0 else DARK_GRAY,
leading=13)) for cell in row]
for r, row in enumerate(slr_data)],
colWidths=slr_col, repeatRows=1)
slr_table.setStyle(std_table_style())
story.append(slr_table)
# ══════════════════════════════════════════════════════════════════════════
# SECTION 7: STAPLED vs HAND-SEWN
# ══════════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(Paragraph("7. Stapled vs. Hand-Sewn Anastomosis", h1))
story.append(section_rule())
comp2_data = [
["Feature", "Stapled", "Hand-Sewn"],
["Operative speed", "Faster (significant time savings)", "Slower"],
["Consistency", "More uniform; less operator-dependent", "Highly operator-dependent"],
["Ileocolic leak rate", "Lower (RCT data: Goulder 2012)", "Higher"],
["Colorectal anastomosis", "Equivalent outcomes; preferred for low pelvic access", "Very difficult deep in pelvis"],
["Anastomotic stricture", "Higher incidence (especially EEA)", "Lower incidence"],
["Deep pelvic access", "Excellent with EEA transanal technique", "Extremely difficult / near impossible"],
["Cost", "Higher (disposable cartridges)", "Lower (sutures only)"],
["Esophageal anastomosis", "EEA preferred for ease and consistency", "Alternative; higher technical demand"],
["Emergency / ischaemia", "Stapler may still be used but judgment critical", "Preferred when tissue quality uncertain"],
["Learning curve", "Shorter for standard procedures", "Longer; requires suturing proficiency"],
]
comp2_col = [W*0.28, W*0.36, W*0.36]
comp2_table = Table(
[[Paragraph(cell, ParagraphStyle('tc', fontName='Helvetica-Bold' if r==0 else 'Helvetica',
fontSize=9.5 if r>0 else 10,
textColor=WHITE if r==0 else DARK_GRAY,
leading=13)) for cell in row]
for r, row in enumerate(comp2_data)],
colWidths=comp2_col, repeatRows=1)
comp2_table.setStyle(std_table_style())
story.append(comp2_table)
# ══════════════════════════════════════════════════════════════════════════
# SECTION 8: TECHNICAL PEARLS
# ══════════════════════════════════════════════════════════════════════════
story.append(Spacer(1, 0.4*cm))
story.append(Paragraph("8. Technical Pearls & Key Points", h1))
story.append(section_rule())
pearls = [
"<b>Cartridge selection is the most common source of error</b> — always match staple height to tissue thickness; incorrect height leads to either ischaemia (too small) or inadequate haemostasis/leakage (too large).",
"<b>Offset the staple lines</b> when closing the common enterotomy (side-to-side anastomosis) — prevents a bulky single-point junction.",
"<b>Both donuts must be complete</b> after every EEA firing — an incomplete donut is a mandatory indication to inspect and reinforce the anastomosis.",
"<b>Always perform a leak test</b> for distal colorectal anastomoses — air/saline via flexible or rigid sigmoidoscopy; a positive test must be addressed before closure.",
"<b>No mesentery in the GIA jaws</b> — mesentery incorporation leads to ischaemia of the anastomosis.",
"<b>Bowel orientation for EEA</b> — ensure the proximal bowel does NOT rotate during approximation (knob closure); rotation creates a twisted anastomosis.",
"<b>Powered staplers</b> (motorised handle) are now available and may improve firing consistency across variable tissue thicknesses.",
"<b>Laparoscopic/robotic versions</b> (Endo-GIA, Echelon, robotic linear stapler) use identical principles but are delivered through trocars; articulation assists with deep pelvic or complex-angle applications.",
"<b>Single-use cartridges only</b> — never reuse a cartridge; ensure the safety mechanism is disengaged before firing.",
"<b>Diverting stoma</b> decision is individualised — mandatory if leak test is positive and cannot be repaired; strongly consider in radiated pelvis, malnutrition, immunosuppression, or technical difficulty.",
"<b>Inspect the cartridge</b> after removal — confirms all staples were deployed; missing staples in the used cartridge indicate a misfire.",
]
for p in pearls:
story.append(Paragraph(f"<bullet>•</bullet> {p}", bullet))
story.append(Spacer(1, 0.3*cm))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 9: NEW TECHNOLOGY
# ══════════════════════════════════════════════════════════════════════════
story.append(Paragraph("9. New Technology & Developments", h1))
story.append(section_rule())
story.append(Paragraph(
"The number of new stapling devices entering the market continues to increase. All adhere to the "
"same \"B\"-shape staple principle but incorporate innovations for specific clinical needs:", body))
new_tech = [
["Innovation", "Description"],
["Powered / motorised handles", "Consistent firing speed regardless of surgeon hand strength; reduces variation in staple formation across tissue types"],
["Articulating laparoscopic heads", "Multi-directional articulation allows optimal tissue angle in deep pelvis or difficult laparoscopic anatomy; available in Endo-GIA, Echelon Flex"],
["Robotic linear staplers", "Integrated into robotic platforms (da Vinci, Hugo); allows precise angulation and controlled firing under direct vision"],
["Tri-staple technology", "Three rows of variable-height staples in one cartridge (e.g. Medtronic Tri-Staple); adapts to tissue thickness variations across a single firing"],
["Curved cutting staplers", "Contour stapler (Ethicon) — curve/bend in cartridge for better deep pelvic access; fires and cuts simultaneously"],
["Buttress-integrated cartridges", "Synthetic absorb absorbable matrix pre-loaded on cartridge; reduces need for separate reinforcement material application"],
["Smart staplers", "Sensors providing real-time feedback on tissue thickness and optimal staple height; audible/visual indicators (e.g. Ethicon ECHELON with gripping surface technology)"],
]
nt_col = [W*0.28, W*0.72]
nt_table = Table(
[[Paragraph(cell, ParagraphStyle('tc', fontName='Helvetica-Bold' if r==0 else 'Helvetica',
fontSize=9.5 if r>0 else 10,
textColor=WHITE if r==0 else DARK_GRAY,
leading=13)) for cell in row]
for r, row in enumerate(new_tech)],
colWidths=nt_col, repeatRows=1)
nt_table.setStyle(std_table_style())
story.append(nt_table)
# ══════════════════════════════════════════════════════════════════════════
# REFERENCES
# ══════════════════════════════════════════════════════════════════════════
story.append(Spacer(1, 0.5*cm))
story.append(Paragraph("References & Sources", h1))
story.append(section_rule())
refs = [
"Cone MM, Geiger TM. <i>Intestinal Division and Anastomosis — Stapling Techniques.</i> In: <b>Hinman's Atlas of Urologic Surgery</b>, 4th ed. Elsevier, 2017. pp. 55-58.",
"Sabiston DC. <i>Surgical Staplers.</i> In: <b>Sabiston Textbook of Surgery: The Biological Basis of Modern Surgical Practice</b>, 21st ed. Elsevier, 2022.",
"Oberkofer CE, Nocito A. <i>Surgical Staplers.</i> In: <b>Fischer's Mastery of Surgery</b>, 8th ed. Lippincott Williams & Wilkins, 2023. Chapter 16.",
"Steichen FM. <i>Stapling Techniques: General Surgery</i>, 3rd ed. U.S. Surgical Corporation, 1988.",
"Goulder F. Bowel anastomoses: the theory, the practice and the evidence base. <i>World J Gastrointest Surg.</i> 2012;4(9):208-213.",
"Hunt SR, Silviera ML. <i>Anastomotic construction.</i> In: Steele SR et al., eds. <b>The ASCRS Manual of Colon and Rectal Surgery</b>, 3rd ed. Springer, 2019:119-133.",
"Beart RW, Kelly KA. Randomized prospective evaluation of the EEA stapler for colorectal anastomoses. <i>Am J Surg.</i> 1981;141:143-147.",
]
for ref in refs:
story.append(Paragraph(f"<bullet>•</bullet> {ref}", source_style))
# ── Build ────────────────────────────────────────────────────────────────
doc.build(story,
onFirstPage=on_first_page,
onLaterPages=on_page)
print(f"PDF saved to: {OUTPUT_PATH}")
if __name__ == "__main__":
build()
cd /home/daytona/workspace/intestinal-staplers && python generate_pdf.py 2>&1
ls -lh /home/daytona/workspace/intestinal-staplers/Intestinal_Staplers.pdf
Intestinal Staplers
PDF Document · PDF
| Section | Content |
|---|---|
| Cover page | Professional dark-blue title cover |
| 1. Introduction | History from 1908 to modern era |
| 2. Basic Principle | "B" shape mechanism with image |
| 3. Types of Staplers | GIA, TA, EEA, Curved — with full parts tables and color-coding table |
| 4. Technique | Step-by-step tables for side-to-side & EEA colorectal anastomosis + 6 surgical diagrams |
| 5. Indications | 14-row table covering all GI procedures |
| 6. Complications | 9-complication table with mechanisms and management + SLR sub-table |
| 7. Stapled vs. Hand-sewn | Direct comparison table |
| 8. Technical Pearls | 11 key operative tips |
| 9. New Technology | 7 modern innovations table + full references |