All forceps with image, identification points and specific use
surgical forceps types identification points uses images complete guide
https://meistersurgical.com/forcep-types
types of forceps surgery identification Adson DeBakey Allis Babcock Kocher Kelly mosquito images
https://operativereview.com/grasping-instruments
forceps surgical instruments images identification chart Halsted mosquito Crile Allis Babcock Kocher Russian Bonney



















| Forceps | Type | Key ID Feature | Primary Use |
|---|---|---|---|
| DeBakey | Non-locking | Long, fine parallel serrations, no teeth | Vascular/atraumatic tissue |
| Adson | Non-locking | Short, lightweight, 1x2 teeth or serrated | Skin closure, suturing |
| Adson-Brown | Non-locking | Multiple fine comb teeth | Plastic surgery, skin grafts |
| Rat-Tooth | Non-locking | Prominent 1x2 interlocking teeth | Fascia, tough tissue |
| Russian | Non-locking | Round cupped/spoon tip | Bowel, pelvic surgery |
| Ferris-Smith | Non-locking | Heavy body + large teeth | Dense fascia, periosteum |
| Gerald | Non-locking | Very fine narrow tips | Microsurgery, cardiothoracic |
| Mosquito (Halsted) | Locking | Smallest clamp, full serrations, tiny jaw | Tiny vessel hemostasis |
| Kelly | Locking | Serrations on distal half only | Medium vessel hemostasis |
| Crile | Locking | Full-length serrations, similar size to Kelly | General hemostasis |
| Rochester-Pean | Locking | Large, heavy, full serrations | Large vessel/pedicle clamp |
| Tonsil (Schmidt) | Locking | Long curved narrow tip | Tonsillectomy, deep cavities |
| Allis | Locking | Multiple small interlocking teeth | Fascia, tough tissue biopsy |
| Babcock | Locking | Rounded open triangular fenestrated tip | Bowel, fallopian tube, appendix |
| Kocher (Ochsner) | Locking | Serrations + terminal 1x2 tooth | Fibrous tissue, thyroid |
| Right Angle (Mixter) | Locking | 90° bent jaw | Passing ligatures, cholecystectomy |
| Pennington (Duval) | Locking | Pointed triangular fenestrated tip | Rectal/colorectal surgery |
| Foerster Sponge | Locking | Large oval ring jaws | Sponge holding, cervix grasping |
| Barrett Tenaculum | Locking | Single curved sharp hook | Cervix grasping, gynecology |
| Simpson Obstetric | Obstetric | Divergent shanks, fenestrated blade | OA position forceps delivery |
| Kielland Obstetric | Obstetric | Minimal pelvic curve, sliding lock | Rotational forceps delivery |
Generate a PDF quick-reference card of forceps identification
mkdir -p /tmp/workspace/forceps-ref/images && ls /tmp/workspace/forceps-ref/
cd /tmp/workspace/forceps-ref/images && \ wget -q -O debakey.jpg "https://operativereview.com/wp-content/uploads/2022/06/DeBakey-Forceps.jpg" && \ wget -q -O adson.jpg "https://operativereview.com/wp-content/uploads/2022/06/Adson-Forceps.jpg" && \ wget -q -O adson_brown.jpg "https://operativereview.com/wp-content/uploads/2022/06/Adson-Brown-Forceps.jpg" && \ wget -q -O rat_tooth.jpg "https://operativereview.com/wp-content/uploads/2022/06/Tissue-Rat-Tooth-Forceps.jpg" && \ wget -q -O russian.jpg "https://operativereview.com/wp-content/uploads/2022/06/Russian-Forceps.jpg" && \ wget -q -O ferris_smith.jpg "https://operativereview.com/wp-content/uploads/2022/06/Ferris-Smith-Forceps.jpg" && \ wget -q -O gerald.jpg "https://operativereview.com/wp-content/uploads/2022/06/Gerald-Forceps.jpg" && \ wget -q -O mosquito.jpg "https://operativereview.com/wp-content/uploads/2022/06/Mosquito.jpg" && \ wget -q -O kelly.jpg "https://operativereview.com/wp-content/uploads/2022/06/Kelly-Forcep.jpg" && \ wget -q -O crile.jpg "https://operativereview.com/wp-content/uploads/2022/06/Hemostat-Crile.jpg" && \ wget -q -O pean.jpg "https://operativereview.com/wp-content/uploads/2022/06/Rochester-Pean-Forcep.jpg" && \ wget -q -O tonsil.jpg "https://operativereview.com/wp-content/uploads/2022/06/Tonsil-Forcep.jpg" && \ wget -q -O allis.jpg "https://operativereview.com/wp-content/uploads/2022/06/Allis-Forcep.jpg" && \ wget -q -O babcock.jpg "https://operativereview.com/wp-content/uploads/2022/06/Babcock-Forcep.jpg" && \ wget -q -O kocher.jpg "https://operativereview.com/wp-content/uploads/2022/06/Kocher-Forceps.jpg" && \ wget -q -O right_angle.jpg "https://operativereview.com/wp-content/uploads/2022/06/Mixter-Right-Angle.jpg" && \ wget -q -O pennington.jpg "https://operativereview.com/wp-content/uploads/2022/06/Pennington-Forceps.jpg" && \ wget -q -O foerster.jpg "https://operativereview.com/wp-content/uploads/2022/06/Forester-Forceps.jpg" && \ wget -q -O tenaculum.jpg "https://operativereview.com/wp-content/uploads/2022/06/Barrett-Tenaculum.jpg" && \ wget -q -O backhaus.jpg "https://operativereview.com/wp-content/uploads/2022/06/Backhaus-Towel-Clamp.jpg" && \ ls -lh *.jpg | wc -l
python3 - << 'EOF' import urllib.request import os base = "https://operativereview.com/wp-content/uploads/2022/06/" images = { "debakey.jpg": "DeBakey-Forceps.jpg", "adson.jpg": "Adson-Forceps.jpg", "adson_brown.jpg": "Adson-Brown-Forceps.jpg", "rat_tooth.jpg": "Tissue-Rat-Tooth-Forceps.jpg", "russian.jpg": "Russian-Forceps.jpg", "ferris_smith.jpg": "Ferris-Smith-Forceps.jpg", "gerald.jpg": "Gerald-Forceps.jpg", "mosquito.jpg": "Mosquito.jpg", "kelly.jpg": "Kelly-Forcep.jpg", "crile.jpg": "Hemostat-Crile.jpg", "pean.jpg": "Rochester-Pean-Forcep.jpg", "tonsil.jpg": "Tonsil-Forcep.jpg", "allis.jpg": "Allis-Forcep.jpg", "babcock.jpg": "Babcock-Forcep.jpg", "kocher.jpg": "Kocher-Forceps.jpg", "right_angle.jpg": "Mixter-Right-Angle.jpg", "pennington.jpg": "Pennington-Forceps.jpg", "foerster.jpg": "Forester-Forceps.jpg", "tenaculum.jpg": "Barrett-Tenaculum.jpg", "backhaus.jpg": "Backhaus-Towel-Clamp.jpg", } dest = "/tmp/workspace/forceps-ref/images/" headers = {'User-Agent': 'Mozilla/5.0'} ok, fail = 0, 0 for local, remote in images.items(): url = base + remote path = dest + local try: req = urllib.request.Request(url, headers=headers) with urllib.request.urlopen(req, timeout=10) as r, open(path, 'wb') as f: f.write(r.read()) ok += 1 except Exception as e: print(f"FAIL {local}: {e}") fail += 1 print(f"Downloaded: {ok}, Failed: {fail}") os.listdir(dest) EOF
~/forceps-ref/build_pdf.py
"""
Forceps Quick-Reference Card PDF Generator
Uses reportlab to create a well-structured, multi-page PDF reference card.
"""
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm, cm
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,
HRFlowable, KeepTogether, Image as RLImage, PageBreak
)
from reportlab.platypus.flowables import Flowable
from reportlab.lib.colors import HexColor
import os
# ── Paths ─────────────────────────────────────────────────────────────────────
IMG_DIR = "/tmp/workspace/forceps-ref/images/"
OUT_PDF = "/tmp/workspace/forceps-ref/Forceps_Quick_Reference_Card.pdf"
# ── Colour Palette ─────────────────────────────────────────────────────────────
COL_HEADER_BG = HexColor("#1A3A5C") # dark navy
COL_HEADER_FG = colors.white
COL_SEC_BG = HexColor("#2E6DA4") # medium blue
COL_SEC_FG = colors.white
COL_CARD_BG1 = HexColor("#EAF2FB") # light blue tint (non-locking)
COL_CARD_BG2 = HexColor("#FEF9EC") # light amber (hemostatic)
COL_CARD_BG3 = HexColor("#EEF7EE") # light green (tissue graspers)
COL_CARD_BG4 = HexColor("#FFF0F0") # light pink (obstetric)
COL_CARD_BG5 = HexColor("#F5F0FF") # light purple (towel clamp)
COL_ID_BG = HexColor("#FFF3CD") # pale yellow for ID points
COL_BORDER = HexColor("#2E6DA4")
COL_MNEMONIC_BG = HexColor("#E8F4F8")
COL_ACCENT = HexColor("#D9534F") # red accent for key ID words
COL_BODY_TEXT = HexColor("#1C1C1C")
COL_GRID = HexColor("#BBCFE0")
COL_ALT_ROW = HexColor("#F0F6FB")
# ── Styles ─────────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()
def make_style(name, parent='Normal', **kwargs):
return ParagraphStyle(name, parent=styles[parent], **kwargs)
title_style = make_style('DocTitle', fontSize=22, textColor=COL_HEADER_FG,
alignment=TA_CENTER, fontName='Helvetica-Bold',
spaceAfter=2)
subtitle_style = make_style('DocSubtitle', fontSize=11, textColor=HexColor("#BDD7EE"),
alignment=TA_CENTER, fontName='Helvetica')
sec_style = make_style('SectionHead', fontSize=13, textColor=COL_SEC_FG,
fontName='Helvetica-Bold', alignment=TA_CENTER,
spaceBefore=2, spaceAfter=2)
card_name_style = make_style('CardName', fontSize=10.5, textColor=COL_HEADER_BG,
fontName='Helvetica-Bold', spaceBefore=2, spaceAfter=1)
card_aka_style = make_style('CardAka', fontSize=8, textColor=HexColor("#555555"),
fontName='Helvetica-Oblique', spaceAfter=2)
label_style = make_style('Label', fontSize=7.5, textColor=HexColor("#444444"),
fontName='Helvetica-Bold', spaceBefore=1)
body_style = make_style('Body', fontSize=7.5, textColor=COL_BODY_TEXT,
fontName='Helvetica', leading=10, spaceAfter=1)
bullet_style = make_style('Bullet', fontSize=7.5, textColor=COL_BODY_TEXT,
fontName='Helvetica', leading=10,
leftIndent=8, firstLineIndent=-6, spaceAfter=0)
red_bullet_style= make_style('RedBullet', fontSize=7.5, textColor=COL_ACCENT,
fontName='Helvetica-Bold', leading=10,
leftIndent=8, firstLineIndent=-6, spaceAfter=0)
use_style = make_style('Use', fontSize=7.5, textColor=HexColor("#1A5C1A"),
fontName='Helvetica', leading=10,
leftIndent=8, firstLineIndent=-6, spaceAfter=0)
table_hdr_style = make_style('TblHdr', fontSize=7, textColor=colors.white,
fontName='Helvetica-Bold', alignment=TA_CENTER)
table_body_style= make_style('TblBody', fontSize=6.5, textColor=COL_BODY_TEXT,
fontName='Helvetica', leading=9)
mnemonic_style = make_style('Mnemonic', fontSize=8, textColor=HexColor("#1A3A5C"),
fontName='Helvetica-Bold', leading=11)
footer_style = make_style('Footer', fontSize=6.5, textColor=HexColor("#888888"),
fontName='Helvetica', alignment=TA_CENTER)
# ── Helper: safe image ─────────────────────────────────────────────────────────
def safe_img(fname, width, height):
path = IMG_DIR + fname
if os.path.exists(path):
try:
img = RLImage(path, width=width, height=height)
img.hAlign = 'CENTER'
return img
except Exception:
pass
return Paragraph(f"[{fname}]", body_style)
# ── Helper: coloured header band ───────────────────────────────────────────────
def section_band(title, bg=COL_SEC_BG):
tbl = Table([[Paragraph(title, sec_style)]], colWidths=[175*mm])
tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), bg),
('TOPPADDING', (0,0), (-1,-1), 4),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
('LEFTPADDING', (0,0), (-1,-1), 8),
('RIGHTPADDING', (0,0), (-1,-1), 8),
('ROUNDEDCORNERS', [4]),
]))
return tbl
# ── Helper: forceps card ───────────────────────────────────────────────────────
def forceps_card(img_file, name, aka, id_points, uses, bg=COL_CARD_BG1, img_w=52*mm, img_h=30*mm):
"""
Returns a Table representing one forceps card.
Left column = image; Right column = name + ID + uses.
"""
img_cell = [safe_img(img_file, img_w, img_h)]
id_items = [Paragraph('<font color="#B8860B">★</font> ' + p, bullet_style) for p in id_points]
use_items = [Paragraph('✓ ' + u, use_style) for u in uses]
text_cell = (
[Paragraph(name, card_name_style)] +
([Paragraph(f"Also: {aka}", card_aka_style)] if aka else []) +
[Paragraph("KEY IDENTIFICATION:", label_style)] +
id_items +
[Spacer(1, 2)] +
[Paragraph("SPECIFIC USES:", label_style)] +
use_items
)
tbl = Table(
[[img_cell, text_cell]],
colWidths=[img_w + 4*mm, 175*mm - img_w - 4*mm - 4*mm],
rowHeights=None
)
tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), bg),
('VALIGN', (0,0), (-1,-1), 'TOP'),
('ALIGN', (0,0), (0,-1), 'CENTER'),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
('LEFTPADDING', (0,0), (0,-1), 4),
('RIGHTPADDING', (0,0), (0,-1), 3),
('LEFTPADDING', (1,0), (1,-1), 5),
('RIGHTPADDING', (1,0), (1,-1), 5),
('BOX', (0,0), (-1,-1), 0.6, COL_BORDER),
('LINEBELOW', (0,0), (-1,-1), 0.3, COL_GRID),
('ROUNDEDCORNERS', [3]),
]))
return tbl
# ── Data ───────────────────────────────────────────────────────────────────────
NON_LOCKING = [
dict(
img_file="debakey.jpg", name="DeBakey Forceps",
aka="DeBakey Tissue Forceps",
id_points=[
"Long slender tips with fine PARALLEL longitudinal serrations (no teeth)",
"Atraumatic — serrations grip without crushing",
"Spring-tension handle (non-locking)",
"Available 6–12 inches; tip inset shows 2 rows of fine ridges",
],
uses=[
"Vascular surgery — handling aorta, veins, arteries atraumatically",
"Cardiac surgery — fragile cardiac tissue",
"Bowel and intestinal anastomosis",
"Any delicate tissue where crushing must be avoided",
],
bg=COL_CARD_BG1,
),
dict(
img_file="adson.jpg", name="Adson Forceps",
aka="Adson Tissue Forceps",
id_points=[
"Short (4.75 in), lightweight, with wider platform tip",
"Available TOOTHED (1×2 rat-tooth) or SERRATED (smooth/atraumatic)",
"Serrated grip ridges along handle body",
"Smallest & most delicate of the standard thumb forceps",
],
uses=[
"Skin closure and suturing — holding skin edges precisely",
"Plastic and reconstructive surgery",
"Superficial/minor procedures requiring high precision",
"Holding fine fascia during wound closure",
],
bg=COL_CARD_BG1,
),
dict(
img_file="adson_brown.jpg", name="Adson-Brown Forceps",
aka="Brown Forceps",
id_points=[
"Multiple FINE COMB-LIKE TEETH (9×9 configuration) at the tip",
"Short lightweight body — similar to Adson but multi-tooth tip",
"Tip inset shows row of many fine interlocking teeth",
],
uses=[
"Plastic surgery and skin grafting",
"Delicate skin-edge holding without crushing",
"Fine reconstructive procedures",
],
bg=COL_CARD_BG1,
),
dict(
img_file="rat_tooth.jpg", name="Rat-Tooth Forceps (Tissue Forceps)",
aka="Standard Tissue Forceps",
id_points=[
"Prominent SINGLE TOOTH interlocking with 2 teeth (1×2 pattern)",
"Teeth are large and pointed — like 'rat teeth'",
"Serrated grip platform on handle",
"Available straight or angled",
],
uses=[
"General surgery — holding tough tissue (fascia, skin, periosteum)",
"Orthopedic procedures requiring firm grip on dense tissue",
"Wound closure when a strong secure grip is needed",
"NOT for delicate or vascular tissue (traumatic)",
],
bg=COL_CARD_BG1,
),
dict(
img_file="russian.jpg", name="Russian Tissue Forceps",
aka="Russian Forceps",
id_points=[
"ROUND CUPPED / SPOON-SHAPED tip — immediately identifiable",
"Scalloped serrated cup distributes pressure over wider area",
"Wider jaw at tip than other thumb forceps",
"Spring-tension non-locking handle",
],
uses=[
"Abdominal and pelvic surgery — peritoneum, bowel serosa, thick tissue",
"Thoracic surgery",
"Gynecological procedures",
"Bowel work — cupped tip reduces point pressure",
],
bg=COL_CARD_BG1,
),
dict(
img_file="ferris_smith.jpg", name="Ferris-Smith Forceps",
aka="Bonney / Bickle Forceps",
id_points=[
"Heavy-duty thumb forceps with large 1×2 or 2×3 interlocking teeth",
"Teeth are LARGER and more prominent than standard rat-tooth",
"Wider, heavier body than Adson or standard tissue forceps",
],
uses=[
"Heavy tissue manipulation — fascia, periosteum, dense connective tissue",
"General and gynecological surgery requiring powerful grip",
"Holding tough fascial edges during abdominal closure",
],
bg=COL_CARD_BG1,
),
dict(
img_file="gerald.jpg", name="Gerald Forceps",
aka="Gerald Thumb Forceps",
id_points=[
"Very fine, narrow, delicate tips — miniaturised DeBakey profile",
"Fine transverse serrations at distal tip",
"Small overall profile; shorter than standard thumb forceps",
],
uses=[
"Cardiovascular and thoracic microsurgery",
"Handling fine sutures and delicate vascular tissue",
"Procedures requiring extreme precision under magnification",
],
bg=COL_CARD_BG1,
),
]
HEMOSTATIC = [
dict(
img_file="mosquito.jpg", name="Halsted Mosquito Forceps",
aka="Mosquito Clamp",
id_points=[
"SMALLEST hemostatic clamp (~5 in / 12.5 cm)",
"Fine short jaws with FULL-LENGTH transverse serrations",
"Ring handle + ratchet lock (1–3 clicks)",
"Available STRAIGHT or CURVED (curved more common)",
],
uses=[
"Clamping tiny/fine blood vessels",
"Tagging (holding) suture ends",
"Subcutaneous tissue hemostasis",
"Pediatric and microsurgical cases",
],
bg=COL_CARD_BG2,
),
dict(
img_file="kelly.jpg", name="Kelly Forceps (Kelly Clamp)",
aka="Kelly Hemostat",
id_points=[
"Medium size (5.5–6.25 in); ring handle + ratchet",
"Jaws serrated on DISTAL HALF ONLY — key difference from Crile",
"Heavier jaw than mosquito; straight or curved variants",
"Tip inset: serrations stop halfway up the jaw",
],
uses=[
"Clamping medium-sized blood vessels",
"Blunt dissection in soft tissue",
"Grasping drains and tubes",
"General hemostasis deeper than mosquito can reach",
],
bg=COL_CARD_BG2,
),
dict(
img_file="crile.jpg", name="Crile Forceps (Hemostat / Snap)",
aka="Crile Clamp",
id_points=[
"Similar size to Kelly (5.5–6.25 in)",
"Jaws serrated FULL LENGTH — serrations run entire jaw (vs. Kelly = distal half only)",
"Ring handle + ratchet; straight or curved",
"Most commonly used 'snap' in general surgery",
],
uses=[
"Hemostasis of medium vessels",
"Clamping bleeders in soft tissue",
"Grasping tissue, packing, and drain placement",
],
bg=COL_CARD_BG2,
),
dict(
img_file="pean.jpg", name="Rochester-Pean Forceps",
aka="Pean Clamp",
id_points=[
"LARGE, HEAVY hemostatic clamp (6.25–9 in)",
"Full-length transverse serrations on broad, long jaws",
"Much heavier and longer than Kelly or Crile",
"Ring handle + ratchet",
],
uses=[
"Clamping large vessels and thick tissue pedicles",
"Hysterectomy (uterine pedicles)",
"Bowel resections and major abdominal surgery",
],
bg=COL_CARD_BG2,
),
dict(
img_file="tonsil.jpg", name="Tonsil Forceps (Schmidt Forceps)",
aka="Schmidt / Schnidt Clamp",
id_points=[
"LONG CURVED NARROW TIP — hallmark feature",
"Fine serrations throughout the curved jaw",
"Ring handle + ratchet; tip curves sharply for deep cavities",
],
uses=[
"Tonsillectomy",
"Packing gauze into throat or deep cavities",
"Passing ties around vessels in deep narrow fields",
"Nasopharyngeal procedures",
],
bg=COL_CARD_BG2,
),
]
TISSUE_GRASPERS = [
dict(
img_file="allis.jpg", name="Allis Forceps (Allis Clamp)",
aka="Allis Tissue Forceps",
id_points=[
"Multiple FINE INTERLOCKING TEETH at tip — small comb/serrated edge",
"Teeth numerous and fine (unlike the single large rat-tooth)",
"Ring handle + ratchet; typically 6–9 in",
],
uses=[
"Grasping fascia, breast tissue, and tough dense structures",
"Holding tissue for excision or biopsy",
"Bowel and gynecological surgery",
"NOT for bowel serosa — traumatic grip",
],
bg=COL_CARD_BG3,
),
dict(
img_file="babcock.jpg", name="Babcock Forceps (Babcock Clamp)",
aka="Babcock Tissue Forceps",
id_points=[
"TRIANGULAR OPEN-FENESTRATED (windowed) ROUNDED tip — most recognisable feature",
"No teeth — jaws curve around tissue without penetrating",
"Ring handle + ratchet; atraumatic despite being locking",
],
uses=[
"Holding fallopian tubes, bowel, and delicate viscera without perforation",
"Appendectomy (holding the appendix)",
"Thyroid surgery and laparoscopic-assist procedures",
"Any hollow organ or tubular structure that must not be pierced",
],
bg=COL_CARD_BG3,
),
dict(
img_file="kocher.jpg", name="Kocher Forceps (Ochsner Forceps)",
aka="Kocher Clamp / Ochsner Clamp",
id_points=[
"Full transverse serrations PLUS a SINGLE TERMINAL TOOTH (1×2) at jaw tip",
"Combination of serrations + teeth is the KEY ID feature",
"Ring handle + ratchet; robust heavyweight instrument",
],
uses=[
"Clamping thick fibrous tissue pedicles",
"Thyroid surgery (clamping thyroid parenchyma)",
"Hernia repair (holding fascial edges)",
"Heavy hemostasis when strong grip needed on friable/fibrous tissue",
],
bg=COL_CARD_BG3,
),
dict(
img_file="right_angle.jpg", name="Right Angle Forceps",
aka="Mixter / Gemini / Lahey Forceps",
id_points=[
"Jaws bent at 90° RIGHT ANGLE to shaft — defining feature",
"Fine transverse serrations on curved jaw",
"Ring handle + ratchet",
],
uses=[
"Passing ligatures (ties) around vessels and ducts",
"Cholecystectomy — encircling cystic duct and artery",
"Vascular surgery — passing vessel loops",
"Dissection around tubular structures",
],
bg=COL_CARD_BG3,
),
dict(
img_file="pennington.jpg", name="Pennington Forceps (Duval Forceps)",
aka="Pennington / Duval",
id_points=[
"TRIANGULAR OPEN-FENESTRATED tip with a POINTED apex",
"Pointed triangular fenestration distinguishes it from Babcock (rounded)",
"Ring handle + ratchet",
],
uses=[
"Rectal and colorectal surgery — grasping rectal mucosa and bowel",
"Holding bowel edges during anastomosis",
"Hemorrhoidectomy",
],
bg=COL_CARD_BG3,
),
dict(
img_file="foerster.jpg", name="Foerster Sponge Forceps",
aka="Ring Forceps / Foerster Clamp",
id_points=[
"LARGE OVAL / CIRCULAR RING-SHAPED JAWS — both jaws form an open oval when closed",
"Jaws may be serrated or smooth; large fenestrated oval tip is unmistakable",
"Ring handle + ratchet",
],
uses=[
"Holding and applying sponges/swabs (wound packing)",
"Cervical dilation and gynecological procedures (holding the cervix)",
"Applying antiseptic prep (betadine/chlorhexidine) with gauze",
"Sponge count maintenance in the operative field",
],
bg=COL_CARD_BG3,
),
dict(
img_file="tenaculum.jpg", name="Barrett Tenaculum Forceps",
aka="Cervical Tenaculum",
id_points=[
"Curved SINGLE SHARP HOOK/TOOTH at the tip (tenaculum = hook)",
"Long shaft with ring handle and ratchet",
"Distinctive single-pronged curved point",
],
uses=[
"Grasping the cervix during gynecological procedures",
"D&C, IUD insertion, hysteroscopy",
"Uterine manipulation during surgical procedures",
],
bg=COL_CARD_BG3,
),
dict(
img_file="backhaus.jpg", name="Backhaus Towel Clamp",
aka="Backhaus Penetrating Towel Clamp",
id_points=[
"Sharp POINTED TIPS that penetrate drapes/towels",
"Ring handle + ratchet; spring-lock design",
"Smaller and lighter than tissue clamps",
],
uses=[
"Securing sterile drapes to the patient",
"Holding towels around the operative field",
"Sometimes used as a temporary skin clamp",
],
bg=COL_CARD_BG5,
),
]
OBSTETRIC = [
dict(
img_file=None, name="Simpson Forceps",
aka="Simpson Obstetric Forceps",
id_points=[
"Cephalic curve + pelvic curve present",
"DIVERGENT SHANKS — shanks spread apart (do not overlap)",
"Fenestrated (windowed) blades",
"English lock (fixed pivot)",
],
uses=[
"Assisted vaginal delivery — fetal head engaged in occiput anterior (OA) position",
"Most common forceps for straightforward operative vaginal delivery",
],
bg=COL_CARD_BG4,
),
dict(
img_file=None, name="Kielland Forceps",
aka="Kjelland Forceps",
id_points=[
"MINIMAL PELVIC CURVE — almost straight shanks (key distinguishing feature)",
"SLIDING LOCK (not fixed English lock) — allows correction of asynclitism",
"Near-straight design + sliding lock are diagnostic",
],
uses=[
"Rotational forceps delivery — rotating fetal head in transverse or OP position",
"Deep transverse arrest of the fetal head",
],
bg=COL_CARD_BG4,
),
]
# ── Summary table data ─────────────────────────────────────────────────────────
SUMMARY_ROWS = [
# [Name, Type, Key ID, Primary Use]
["DeBakey", "Non-locking", "Parallel longitudinal serrations; no teeth", "Vascular / atraumatic tissue"],
["Adson", "Non-locking", "Short; 1×2 teeth or fine serrations; narrow tip", "Skin closure, suturing"],
["Adson-Brown", "Non-locking", "9×9 fine comb teeth at tip", "Plastic surgery, skin grafts"],
["Rat-Tooth", "Non-locking", "Prominent 1×2 interlocking teeth", "Fascia, tough tissue"],
["Russian", "Non-locking", "Round cupped/spoon-shaped tip", "Bowel, pelvic surgery"],
["Ferris-Smith", "Non-locking", "Heavy body + large 1×2 teeth", "Dense fascia, periosteum"],
["Gerald", "Non-locking", "Very fine narrow tips; miniature DeBakey", "Microsurgery, cardiothoracic"],
["Mosquito (Halsted)", "Hemostatic", "Smallest clamp; full serrations; tiny jaw", "Tiny vessel hemostasis"],
["Kelly", "Hemostatic", "Serrations on DISTAL HALF only", "Medium vessel hemostasis"],
["Crile", "Hemostatic", "Serrations FULL LENGTH", "General hemostasis"],
["Rochester-Pean", "Hemostatic", "Large heavy; full serrations", "Large vessel / pedicle clamping"],
["Tonsil (Schmidt)", "Hemostatic", "Long curved narrow tip", "Tonsillectomy, deep cavities"],
["Allis", "Tissue Grasper", "Multiple fine interlocking comb teeth", "Fascia, tough tissue biopsy"],
["Babcock", "Tissue Grasper", "Rounded open triangular fenestrated tip", "Bowel, fallopian tube, appendix"],
["Kocher (Ochsner)", "Tissue Grasper", "Serrations + terminal 1×2 tooth", "Fibrous tissue, thyroid"],
["Right Angle (Mixter)", "Tissue Grasper", "90° bent jaw", "Passing ligatures, cholecystectomy"],
["Pennington (Duval)", "Tissue Grasper", "Pointed triangular fenestrated tip", "Rectal / colorectal surgery"],
["Foerster Sponge", "Tissue Grasper", "Large oval ring-shaped jaws", "Sponge holding, cervix grasping"],
["Tenaculum (Barrett)", "Tissue Grasper", "Single curved sharp hook at tip", "Cervix grasping, gynecology"],
["Backhaus Towel Clamp", "Towel Clamp", "Sharp penetrating pointed tips", "Securing drapes"],
["Simpson", "Obstetric", "Divergent shanks; fenestrated blade; English lock", "OA position forceps delivery"],
["Kielland", "Obstetric", "Minimal pelvic curve; sliding lock", "Rotational forceps delivery"],
]
# ── Mnemonics ──────────────────────────────────────────────────────────────────
MNEMONICS = [
('Kelly = Half serrations', 'Serrations on only the DISTAL HALF of the jaw'),
('Crile = Complete serrations', 'FULL-LENGTH serrations — entire jaw'),
('Babcock = Bowel-safe', 'Rounded fenestrated tip — no teeth, no pierce'),
('Kocher = Toothy Kocher', 'Serrations PLUS a terminal tooth — unique combo'),
('Russian = Round cup', 'Cupped/spoon tip distributes pressure'),
('Right Angle = Pass a tie', 'The 90° bend is made for ligature passage'),
('Mosquito = Smallest', 'Tiniest hemostatic clamp for the tiniest vessels'),
('Pennington = Pointed triangle', 'vs. Babcock\'s ROUNDED triangle'),
]
# ── Build the PDF ──────────────────────────────────────────────────────────────
def build():
doc = SimpleDocTemplate(
OUT_PDF,
pagesize=A4,
leftMargin=17*mm, rightMargin=17*mm,
topMargin=14*mm, bottomMargin=14*mm,
title="Forceps Quick-Reference Card",
author="Orris Medical Reference",
subject="Surgical Forceps Identification & Uses"
)
story = []
# ── Cover banner ──────────────────────────────────────────────────────────
banner = Table(
[[Paragraph("SURGICAL FORCEPS", title_style)],
[Paragraph("Quick-Reference Identification Card", subtitle_style)],
[Paragraph("Identification Points • Specific Uses • Mnemonics", subtitle_style)]],
colWidths=[175*mm]
)
banner.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), COL_HEADER_BG),
('TOPPADDING', (0,0), (-1,-1), 8),
('BOTTOMPADDING', (0,0), (-1,-1), 8),
('LEFTPADDING', (0,0), (-1,-1), 10),
('RIGHTPADDING', (0,0), (-1,-1), 10),
]))
story.append(banner)
story.append(Spacer(1, 6))
# ── Section helper ────────────────────────────────────────────────────────
def add_section(title, cards, bg):
story.append(section_band(title, bg))
story.append(Spacer(1, 3))
for card in cards:
fn = card.get('img_file')
c = forceps_card(
img_file=fn if fn else "",
name=card['name'],
aka=card.get('aka', ''),
id_points=card['id_points'],
uses=card['uses'],
bg=card.get('bg', COL_CARD_BG1),
img_w=54*mm,
img_h=32*mm,
)
story.append(KeepTogether([c, Spacer(1, 3)]))
add_section("SECTION 1 — NON-LOCKING (THUMB / PICK-UP) FORCEPS", NON_LOCKING, COL_HEADER_BG)
story.append(Spacer(1, 4))
add_section("SECTION 2 — LOCKING HEMOSTATIC CLAMPS", HEMOSTATIC, HexColor("#8B4513"))
story.append(Spacer(1, 4))
add_section("SECTION 3 — LOCKING TISSUE GRASPERS (SPECIAL)", TISSUE_GRASPERS, HexColor("#2E7D32"))
story.append(Spacer(1, 4))
add_section("SECTION 4 — OBSTETRIC FORCEPS", OBSTETRIC, HexColor("#880E4F"))
# ── Summary table ─────────────────────────────────────────────────────────
story.append(PageBreak())
story.append(section_band("QUICK-REFERENCE SUMMARY TABLE", COL_HEADER_BG))
story.append(Spacer(1, 5))
hdr = [Paragraph(h, table_hdr_style) for h in ["Forceps", "Type", "Key ID Feature", "Primary Use"]]
tbl_data = [hdr]
for i, row in enumerate(SUMMARY_ROWS):
tbl_data.append([Paragraph(row[j], table_body_style) for j in range(4)])
col_w = [38*mm, 28*mm, 65*mm, 44*mm]
sum_tbl = Table(tbl_data, colWidths=col_w, repeatRows=1)
ts = TableStyle([
('BACKGROUND', (0,0), (-1,0), COL_HEADER_BG),
('TEXTCOLOR', (0,0), (-1,0), colors.white),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,0), 8),
('ALIGN', (0,0), (-1,-1), 'LEFT'),
('VALIGN', (0,0), (-1,-1), 'TOP'),
('TOPPADDING', (0,0), (-1,-1), 3),
('BOTTOMPADDING', (0,0), (-1,-1), 3),
('LEFTPADDING', (0,0), (-1,-1), 4),
('RIGHTPADDING', (0,0), (-1,-1), 4),
('GRID', (0,0), (-1,-1), 0.4, COL_GRID),
('LINEBELOW', (0,0), (-1,0), 1.2, COL_HEADER_BG),
])
for i in range(1, len(tbl_data)):
bg = COL_ALT_ROW if i % 2 == 0 else colors.white
ts.add('BACKGROUND', (0,i), (-1,i), bg)
sum_tbl.setStyle(ts)
story.append(sum_tbl)
# ── Mnemonics box ─────────────────────────────────────────────────────────
story.append(Spacer(1, 10))
story.append(section_band("MEMORY MNEMONICS", HexColor("#5B2C6F")))
story.append(Spacer(1, 4))
mnem_rows = []
for key, detail in MNEMONICS:
mnem_rows.append([
Paragraph(f'<b>"{key}"</b>', mnemonic_style),
Paragraph(detail, body_style)
])
mnem_tbl = Table(mnem_rows, colWidths=[72*mm, 103*mm])
mnem_tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), COL_MNEMONIC_BG),
('TOPPADDING', (0,0), (-1,-1), 4),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
('LEFTPADDING', (0,0), (-1,-1), 6),
('RIGHTPADDING', (0,0), (-1,-1), 6),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('GRID', (0,0), (-1,-1), 0.4, COL_GRID),
('LINEAFTER', (0,0), (0,-1), 1.0, COL_BORDER),
('BOX', (0,0), (-1,-1), 0.8, COL_BORDER),
]))
for i in range(len(mnem_rows)):
if i % 2 == 0:
mnem_tbl.setStyle(TableStyle([('BACKGROUND', (0,i), (-1,i), HexColor("#D6EAF8"))]))
story.append(mnem_tbl)
# ── Footer note ───────────────────────────────────────────────────────────
story.append(Spacer(1, 8))
story.append(HRFlowable(width="100%", thickness=0.5, color=COL_GRID))
story.append(Spacer(1, 3))
story.append(Paragraph(
"Images courtesy of The Operative Review of Surgery (operativereview.com) • "
"Content compiled from Fischer's Mastery of Surgery 8e, Pfenninger & Fowler's Procedures for Primary Care 3e, and clinical references • "
"For educational use only — always verify with current clinical guidelines",
footer_style
))
doc.build(story)
print(f"PDF generated: {OUT_PDF}")
build()
python3 /tmp/workspace/forceps-ref/build_pdf.py 2>&1
~/forceps-ref/build_pdf.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/forceps-ref/build_pdf.py'
python3 /tmp/workspace/forceps-ref/build_pdf.py 2>&1
python3 -c " from pypdf import PdfReader r = PdfReader('/tmp/workspace/forceps-ref/Forceps_Quick_Reference_Card.pdf') print(f'Pages: {len(r.pages)}') import os size = os.path.getsize('/tmp/workspace/forceps-ref/Forceps_Quick_Reference_Card.pdf') print(f'File size: {size/1024:.1f} KB') "
Forceps Quick Reference Card
PDF Document · PDF
| Section | Content |
|---|---|
| Section 1 | 7 Non-locking thumb forceps (DeBakey, Adson, Adson-Brown, Rat-Tooth, Russian, Ferris-Smith, Gerald) |
| Section 2 | 5 Hemostatic clamps (Mosquito, Kelly, Crile, Pean, Tonsil/Schmidt) |
| Section 3 | 8 Locking tissue graspers (Allis, Babcock, Kocher, Right Angle, Pennington, Foerster, Tenaculum, Backhaus) |
| Section 4 | 2 Obstetric forceps (Simpson, Kielland) |
| Summary page | Full 22-row quick-reference table |
| Mnemonics box | 8 key memory mnemonics (Kelly = Half, Crile = Complete, Babcock = Bowel-safe, etc.) |
All forceps with image, identification points and specific use




















| Forceps | Type | Key ID Feature | Primary Use |
|---|---|---|---|
| DeBakey | Non-locking | Parallel longitudinal serrations; no teeth | Vascular / atraumatic tissue |
| Adson | Non-locking | Short; 1×2 teeth or fine serrations | Skin closure, suturing |
| Adson-Brown | Non-locking | 9×9 fine comb teeth at tip | Plastic surgery, skin grafts |
| Rat-Tooth | Non-locking | Prominent 1×2 interlocking teeth | Fascia, tough tissue |
| Russian | Non-locking | Round cupped/spoon-shaped tip | Bowel, pelvic surgery |
| Ferris-Smith | Non-locking | Heavy body + large 1×2 teeth | Dense fascia, periosteum |
| Gerald | Non-locking | Very fine narrow miniature tips | Microsurgery, cardiothoracic |
| Mosquito (Halsted) | Hemostatic | Smallest clamp; full serrations | Tiny vessel hemostasis |
| Kelly | Hemostatic | Serrations on distal half only | Medium vessel hemostasis |
| Crile | Hemostatic | Serrations full length | General hemostasis |
| Rochester-Pean | Hemostatic | Large heavy; full serrations | Large vessel / pedicle clamping |
| Tonsil (Schmidt) | Hemostatic | Long curved narrow tip | Tonsillectomy, deep cavities |
| Allis | Tissue Grasper | Multiple fine interlocking comb teeth | Fascia, tough tissue biopsy |
| Babcock | Tissue Grasper | Rounded open triangular fenestrated tip | Bowel, fallopian tube, appendix |
| Kocher (Ochsner) | Tissue Grasper | Serrations + terminal 1×2 tooth | Fibrous tissue, thyroid |
| Right Angle (Mixter) | Tissue Grasper | 90° bent jaw | Passing ligatures, cholecystectomy |
| Pennington (Duval) | Tissue Grasper | Pointed triangular fenestrated tip | Rectal / colorectal surgery |
| Foerster Sponge | Tissue Grasper | Large oval ring-shaped jaws | Sponge holding, cervix grasping |
| Tenaculum (Barrett) | Tissue Grasper | Single curved sharp hook at tip | Cervix grasping, gynecology |
| Backhaus | Towel Clamp | Sharp penetrating pointed tips | Securing drapes |
| Simpson | Obstetric | Divergent shanks; English lock | OA position forceps delivery |
| Kielland | Obstetric | Minimal pelvic curve; sliding lock | Rotational forceps delivery |
| Mnemonic | Meaning |
|---|---|
| "Kelly = Half serrations" | Serrations on the distal HALF of the jaw only |
| "Crile = Complete serrations" | FULL-LENGTH serrations - entire jaw |
| "Babcock = Bowel-safe" | Rounded fenestrated tip; no teeth; no pierce |
| "Kocher = Toothy Kocher" | Serrations PLUS a terminal tooth - unique combination |
| "Russian = Round cup" | Cupped/spoon tip distributes pressure |
| "Right Angle = Pass a tie" | 90° bend designed for ligature passage around structures |
| "Mosquito = Smallest" | Tiniest hemostatic clamp for the tiniest vessels |
| "Pennington = Pointed triangle" | vs. Babcock's ROUNDED triangle |
Forceps Quick Reference Card
PDF Document · PDF