Scola for ventral hernia in depth master this

Reading File
SCOLA (Subcutaneous OnLay Anterior) for ventral hernia is a laparoscopic/open technique combining subcutaneous dissection with mesh placement in the onlay position. It is used for primary and incisional ventral hernias. Let me pull comprehensive textbook coverage on this.
Searching sources...
Finding Sources
Finding Sources
Searching PubMed

SCOLA subcutaneous onlay laparoscopic approach ventral hernia

Good - found textbook sections and key PubMed papers. Now let me pull the relevant textbook content and the key systematic review abstract simultaneously.
Reading File
Reading File
Reading Article

PMID: 41667727

Reading Article

PMID: 39730131

Good foundation. Now let me pull more specific SCOLA content - the Sabiston minimally invasive section and robotic-assisted section, plus search for SCOLA-specific paragraphs.
Reading File
Finding Sources
Reading Article

PMID: 39506083

Found the dedicated SCOLA section in Sabiston at line 1180. Let me read it fully now, along with the surrounding content.
Reading File
Reading File
Excellent - I now have the complete Sabiston SCOLA section and the figure. Let me fetch the key SCOLA figure and also look for diastasis recti and complications content to round out the master guide.
Loading Image
Finding Sources
Finding Sources
Now let me get the onlay prosthetic technique details and the Mulholland section on diastasis management to complete the picture.
Reading File
Reading File
I now have comprehensive material. Let me compile the complete master guide on SCOLA for ventral hernia.

SCOLA for Ventral Hernia - Complete Master Guide

1. What is SCOLA?

SCOLA stands for SubCutaneous OnLay Laparoscopic/Endoscopic Approach. It was first described by Claus et al. in 2018 (Brazil) and represents an anterior, extraperitoneal, minimally invasive technique for repairing midline ventral hernias - especially those coexisting with diastasis recti.
The name has two variants in the literature:
  • SCOLA = SubCutaneous OnLay Laparoscopic Approach
  • SCOE = SubCutaneous Onlay Endoscopic approach (used interchangeably, particularly in the US)

2. Anatomy and Rationale

Why an anterior subcutaneous approach?

Traditional ventral hernia options place mesh either:
  • Intraperitoneal (IPOM) - requires peritoneal entry, barrier mesh, tack fixation, causes visceral risk
  • Retromuscular/sublay - complex dissection, higher operative time
  • Open onlay - large wound, high SSI rates up to 20%, disrupts perforators
SCOLA creates a subcutaneous working space anterior to the anterior rectus fascia, keeping entirely out of the peritoneal cavity. This eliminates:
  • Risk of visceral/bowel injury
  • Need for intraperitoneal (barrier-coated) mesh
  • Post-operative pain from tack fixation
The target layer is the space between the subcutaneous fat and the anterior aponeurosis of the rectus abdominis, accessed via insufflation with CO₂.
SCOLA CO₂ insufflation of the subcutaneous space, showing the laparoscope entering from the pubis and dissecting cranially toward the chest
FIGURE 80.8 from Sabiston: CO₂ insufflation of the subcutaneous space during SCOLA. (From Claus et al. 2018)

3. Indications

SCOLA is best suited for:
IndicationDetails
Primary midline ventral herniasUmbilical, epigastric hernias
Small-to-medium defectsTypically <4 cm width
Diastasis rectiInter-rectus distance >2-2.5 cm; SCOLA uniquely addresses both simultaneously
Coexisting hernia + diastasisThe primary "sweet spot" indication
Patients not requiring dermolipectomyThose who do not need skin/fat removal (no skin excess)
Desire to avoid peritoneal entryHigh prior adhesions but mesh in onlay plane preferred
Key point: The original Claus series used a patient selection criterion of hernia <4 cm and diastasis <4 cm. - Sabiston Textbook of Surgery, p. 1655

4. Contraindications / Relative Contraindications

  • Large defects >4 cm (increased tension risk)
  • Significant excess skin requiring panniculectomy/dermolipectomy (open approach preferred)
  • Prior subcutaneous infection or mesh in that plane
  • Defects requiring component separation or myofascial release (sublay/eTEP preferred)
  • Swiss-cheese (multiple) defects widely scattered (laparoscopic IPOM is better suited) - Mulholland Surgery, p. 3745

5. Step-by-Step Operative Technique

Patient Positioning

  • Supine
  • Arms tucked (or standard position)
  • Foley catheter to decompress bladder

Port Placement (Pfannenstiel Line)

Three trocars placed at/along the Pfannenstiel incision line (suprapubic):
PortSizePosition
Midline suprapubic11 mmCamera port
Left lateral suprapubic5 mmWorking port
Right lateral suprapubic5 mmWorking port
This Pfannenstiel placement keeps all scars in a natural skin crease - cosmetically ideal.

Creating the Working Space

  1. Insert the 11-mm trocar - stop dissection at the anterior aponeurosis of the rectus abdominis (do NOT enter the rectus sheath or peritoneum)
  2. Insufflate CO₂ into the subcutaneous space - pressure up to 10 mmHg
  3. Dissect subcutaneous tissue off the anterior fascia toward the xiphoid cranially and the ribs laterally - this creates wide working space for mesh

Umbilical Management

  • The umbilical stalk is transected to allow full access to the subcutaneous plane at the midline
  • The umbilicus is re-created during closure (umbilicoplasty)

Hernia Sac and Defect Closure

  1. Open the hernia sac
  2. Reduce hernia contents
  3. Close the fascial defect with running barbed suture (e.g., V-Loc or Stratafix)
  4. If diastasis recti is present: plicate the linea alba in the same step using barbed suture - achieving both repairs simultaneously

Mesh Placement

  • Polypropylene mesh (non-coated, no barrier required - not in contact with viscera)
  • Placed in the onlay position directly on the anterior rectus fascia
  • Mesh fixation options:
    • Fibrin glue
    • Sutures
    • Tacks
  • Adequate overlap (at least 3-5 cm) around the closed defect

Drain Placement

  • A closed suction drain is routinely left in the subcutaneous space to reduce seroma
  • Often removed at outpatient follow-up

6. Mesh Considerations in SCOLA

FactorSCOLA Onlay Placement
Mesh typePolypropylene (standard, non-coated)
Barrier coat required?No - extraperitoneal position
Overlap≥3-5 cm in all directions
Contact with visceraNone
CostLower than barrier/composite IPOM mesh
The absence of a need for intraperitoneal barrier mesh is a major cost advantage over IPOM. - Deshpande et al., J Minim Access Surg 2024 [PMID: 39730131]

7. SCOLA vs. Other Techniques - Comparison

FeatureSCOLAIPOMIPOM+Open OnlayRives-Stoppa/eTEP
Peritoneal entryNoYesYesNoNo/partial
Mesh positionOnlay (subcutaneous)IntraperitonealIntraperitonealOnlayRetromuscular
Barrier mesh neededNoYesYesNoNo
Defect closureYesSometimesYesYesYes
Diastasis repairYesNoNoYesLimited
Post-op painLowModerate-highModerateHighModerate
SSI riskModerateLowLowHigh (up to 20%)Low
Seroma riskHigh (~19-27%)~10%~10%HighModerate
Ideal defect size<4 cm<10 cm<10 cmAny4-10 cm
ComplexityModerateLow-moderateModerateModerateHigh
Key finding from comparison trial: SCOLA resulted in significantly less post-operative pain on VAS (day 1, discharge, first follow-up) compared to IPOM+. Material cost of SCOLA was significantly lower. Seroma rate was higher in SCOLA (27.3% vs. 10.3% for IPOM+) but no recurrence at 1 year in either group. - Deshpande et al., J Minim Access Surg 2024 [PMID: 39730131]

8. SCOLA vs. Open Onlay - Key Difference

The open onlay repair involves wide subcutaneous dissection through a laparotomy incision, which:
  • Obliterates the periumbilical epigastric perforators
  • Disrupts the lymphatic layer anterior to the fascia
  • SSI/SSO rates up to 20%
  • Hernia recurrence is higher (Pascal's Law: intra-abdominal pressure acts upward against onlay mesh)
SCOLA's endoscopic approach preserves vascular perforators (no large skin incisions), minimizes dead space handled, and reduces SSI - while retaining the onlay position. - Mulholland Surgery, p. 3733-3734

9. Robotic SCOLA

The robotic platform ("RSCOLA" or robotic-assisted SCOE) is an emerging evolution:
  • Allows better articulation in the subcutaneous space
  • Facilitates intracorporeal barbed suture plication of diastasis and defect closure
  • A 2026 case report describes robotic SCOLA for superior recurrence after prior open TAR (transversus abdominis release) - [PMID: 42179714]
  • Benefits: improved 3D visualization, ergonomics, precise suturing - Mulholland Surgery, p. 3747

10. Complications

ComplicationRateNotes
Seroma19-27% (most common)Related to extent of subcutaneous dissection, not mesh use per se
Surgical site infection (SSI)~5% (mesh group)Only seen when mesh used; 0% in no-mesh series
Recurrence~1.7% (mesh), 0% (no mesh)Very low at short follow-up
Umbilical necrosisRareFrom umbilical stalk transection
Wound infectionUncommonSubcutaneous approach risk
Critical insight from 2026 meta-analysis (Vitiello et al. [PMID: 41667727]):
  • 247 patients, 6 studies, mean follow-up 9.5 months
  • Seroma is more influenced by the extent of dissection than by mesh presence
  • Mesh reinforcement may modestly reduce recurrence but increases SSI risk
  • Overall recurrence rate is low (~1.7% with mesh)
  • Evidence quality remains moderate (non-randomized, small cohorts)

Seroma Prevention

  • Routine drain placement (removed outpatient)
  • Fibrin glue to obliterate dead space
  • Preservation of subcutaneous lymphatics
  • Minimizing extent of dissection

11. Special Indication: Diastasis Recti

Diastasis recti = separation of the two rectus abdominis muscles with a stretched (but intact) linea alba. It:
  • Does NOT require repair in absence of symptoms
  • But causes abdominal wall muscular dysfunction, pelvic floor effects, poor cosmesis
  • Surgical options: open plication (plastic surgery approach) vs. laparoscopic plication vs. SCOLA
SCOLA is the ideal technique when diastasis co-exists with a midline ventral hernia because:
  1. Single operation addresses both problems
  2. No need for open skin excision (unlike abdominoplasty)
  3. Plication with barbed suture + mesh onlay in same subcutaneous working space
  4. Evidence shows improvement in pelvic floor function after diastasis repair (Olsson et al.) - Mulholland Surgery, p. 3727
From the Mehta et al. 2024 Indian series ([PMID: 39506083]): 33 patients, SCOLA with hernia defect closure + diastasis plication + polypropylene mesh onlay. No recurrence at 4-18 months. Patient satisfaction 90.9%.

12. Swiss-Cheese Hernias and Special Variants

SCOLA has been applied to:
  • Swiss-cheese hernias (multiple defects) following thoracoabdominal incisions - Case report 2025 [PMID: 40254811]
  • Recurrence after TAR - 2026 case report using robotic SCOLA [PMID: 42179714]
However, for true swiss-cheese defects with wide separation, laparoscopic IPOM may be better suited given the multiple defect coverage required. - Mulholland Surgery, p. 3745

13. Patient Selection Summary

Ideal SCOLA patient:
  • Midline small-to-medium ventral hernia (<4 cm)
  • Coexisting diastasis recti
  • Does NOT need dermolipectomy/skin resection
  • Wants minimally invasive approach with no peritoneal entry
  • Low wound risk overall
Avoid SCOLA when:
  • Large defects >4-6 cm (limited mesh overlap, high tension)
  • Multiple scattered defects (swiss cheese - better for IPOM)
  • Significant skin excess requiring panniculectomy (open approach)
  • Need for myofascial release/component separation (eTEP/Rives-Stoppa better)

14. Evidence Summary

StudyDesignNKey Finding
Vitiello 2026 [PMID: 41667727]SR + Meta-analysis247Low recurrence (1.7%), seroma 19%, SSI 5% with mesh; seroma driven by dissection extent
Mehta 2024 [PMID: 39506083]Prospective obs.330% recurrence, 90.9% satisfaction
Deshpande 2024 [PMID: 39730131]Prospective obs.51SCOLA = less pain, lower cost vs. IPOM+; higher seroma (27% vs. 10%)
Dong 2021 [PMID: 33206243]Case seriesInitial US seriesFeasibility confirmed for small midline hernias + diastasis
Shinde 2022 [PMID: 35859952]Case seriesIndian modificationNovel technique variant
Overall evidence level: Moderate (Level III-IV). No RCTs yet. High-quality comparative data with longer follow-up is needed.

15. Quick Exam/Viva Points

  1. SCOLA described by: Claus et al., 2018, Brazil
  2. Plane of dissection: Subcutaneous space anterior to anterior rectus fascia
  3. Unique advantage over IPOM: No peritoneal entry, no barrier mesh needed, less post-op pain
  4. Unique advantage over open onlay: No large incision, preserves perforators, lower SSI
  5. Ideal defect size: <4 cm
  6. Mesh type: Non-coated polypropylene
  7. Most common complication: Seroma (~19-27%)
  8. Umbilical stalk: Transected intraoperatively, re-created at closure
  9. Port placement: Along Pfannenstiel line (11 mm midline + two 5 mm lateral)
  10. CO₂ pressure: Up to 10 mmHg in subcutaneous space
  11. Defect closure suture: Running barbed suture (e.g., V-Loc)
  12. Why seroma happens: Extensive subcutaneous dissection creates dead space
  13. Robotic SCOLA: Emerging - better dexterity for plication, intracorporeal suturing
  14. Best indication: Ventral hernia + diastasis recti coexisting, no dermolipectomy need

Sources:

Generate a complication management flowchart for seroma and infection after SCOLA

I'll create a detailed, professional flowchart as a high-quality image using Python/matplotlib in the sandbox.
Running Command

ls -la /tmp/workspace/ 2>/dev/null || echo "workspace empty or missing"

Running Command

mkdir -p /tmp/workspace/scola-flowchart && python3 << 'PYEOF' import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import matplotlib.patches as mpatches from matplotlib.patches import FancyBboxPatch, FancyArrowPatch import matplotlib.patheffects as pe fig, ax = plt.subplots(figsize=(22, 30)) ax.set_xlim(0, 22) ax.set_ylim(0, 30) ax.axis('off') fig.patch.set_facecolor('#F0F4F8') # ── Color palette ────────────────────────────────────────────────────────────── C = { 'title_bg' : '#1A2E4A', 'title_fg' : '#FFFFFF', 'start' : '#2C5F8A', 'start_fg' : '#FFFFFF', 'decision' : '#E07B2A', 'decision_fg' : '#FFFFFF', 'action' : '#2A7A4B', 'action_fg' : '#FFFFFF', 'warning' : '#C0392B', 'warning_fg' : '#FFFFFF', 'info' : '#5B4C8A', 'info_fg' : '#FFFFFF', 'success' : '#1D6A3E', 'success_fg' : '#FFFFFF', 'seroma_hdr' : '#2C5F8A', 'infect_hdr' : '#8A2C2C', 'arrow' : '#34495E', 'note_bg' : '#FFF9E6', 'note_border' : '#E6B800', } def box(ax, x, y, w, h, text, facecolor, textcolor='white', fontsize=9, style='round,pad=0.1', bold=False, wrap=True, zorder=3): b = FancyBboxPatch((x - w/2, y - h/2), w, h, boxstyle=style, linewidth=1.2, edgecolor='#2C3E50', facecolor=facecolor, zorder=zorder) ax.add_patch(b) weight = 'bold' if bold else 'normal' ax.text(x, y, text, ha='center', va='center', fontsize=fontsize, color=textcolor, fontweight=weight, wrap=wrap, zorder=zorder+1, multialignment='center') def diamond(ax, x, y, w, h, text, facecolor, textcolor='white', fontsize=8.5): dx, dy = w/2, h/2 pts = [(x, y+dy), (x+dx, y), (x, y-dy), (x-dx, y)] poly = plt.Polygon(pts, closed=True, facecolor=facecolor, edgecolor='#2C3E50', linewidth=1.2, zorder=3) ax.add_patch(poly) ax.text(x, y, text, ha='center', va='center', fontsize=fontsize, color=textcolor, fontweight='bold', zorder=4, multialignment='center') def arrow(ax, x1, y1, x2, y2, label='', color='#34495E', lw=1.8): ax.annotate('', xy=(x2, y2), xytext=(x1, y1), arrowprops=dict(arrowstyle='->', color=color, lw=lw, connectionstyle='arc3,rad=0.0')) if label: mx, my = (x1+x2)/2, (y1+y2)/2 ax.text(mx+0.15, my, label, fontsize=8, color=color, fontweight='bold') def harrow(ax, x1, y1, x2, y2, label='', color='#34495E'): """Horizontal then vertical arrow via bent path""" ax.annotate('', xy=(x2, y2), xytext=(x1, y1), arrowprops=dict(arrowstyle='->', color=color, lw=1.8, connectionstyle=f'angle,angleA=0,angleB=90')) if label: mx = (x1+x2)/2 ax.text(mx, y1+0.12, label, fontsize=8, color=color, fontweight='bold', ha='center') # ══════════════════════════════════════════════════════════════════════════════ # TITLE BANNER # ══════════════════════════════════════════════════════════════════════════════ title_bg = FancyBboxPatch((0.3, 28.3), 21.4, 1.5, boxstyle='round,pad=0.05', linewidth=0, facecolor=C['title_bg'], zorder=5) ax.add_patch(title_bg) ax.text(11, 29.15, 'COMPLICATION MANAGEMENT FLOWCHART AFTER SCOLA', ha='center', va='center', fontsize=15, color='white', fontweight='bold', zorder=6) ax.text(11, 28.65, 'SubCutaneous OnLay Laparoscopic/Endoscopic Approach | Seroma & Surgical Site Infection (SSI)', ha='center', va='center', fontsize=9.5, color='#B8D4F0', zorder=6) # ══════════════════════════════════════════════════════════════════════════════ # COLUMN HEADERS # ══════════════════════════════════════════════════════════════════════════════ # Left column: Seroma | Right column: SSI seroma_hdr = FancyBboxPatch((0.3, 27.0), 10.2, 0.9, boxstyle='round,pad=0.05', linewidth=0, facecolor='#2C5F8A', zorder=5) ax.add_patch(seroma_hdr) ax.text(5.4, 27.45, '🔵 SEROMA (Most Common — ~19–27%)', ha='center', va='center', fontsize=11, color='white', fontweight='bold', zorder=6) infect_hdr = FancyBboxPatch((11.5, 27.0), 10.2, 0.9, boxstyle='round,pad=0.05', linewidth=0, facecolor='#8A2C2C', zorder=5) ax.add_patch(infect_hdr) ax.text(16.6, 27.45, '🔴 SURGICAL SITE INFECTION (SSI — ~5%)', ha='center', va='center', fontsize=11, color='white', fontweight='bold', zorder=6) # Vertical divider ax.plot([11, 11], [0.5, 27.0], color='#AAB8C2', lw=1.5, linestyle='--', zorder=2) # ══════════════════════════════════════════════════════════════════════════════ # ─────────────── LEFT COLUMN: SEROMA ──────────────────────────────────────── # ══════════════════════════════════════════════════════════════════════════════ # S1 – Post-op assessment box(ax, 5.4, 26.3, 9.0, 0.65, 'Post-op Assessment (Day 1 – Week 6)', C['start'], bold=True, fontsize=9.5) arrow(ax, 5.4, 25.97, 5.4, 25.45) # S2 – Swelling? diamond(ax, 5.4, 25.1, 7.0, 0.75, 'Subcutaneous swelling / fullness at surgical site?', C['decision'], fontsize=8.5) arrow(ax, 5.4, 24.72, 5.4, 24.2, label='YES') # NO branch ax.annotate('', xy=(9.9, 25.1), xytext=(8.9, 25.1), arrowprops=dict(arrowstyle='->', color=C['success'], lw=1.8)) box(ax, 10.3, 25.1, 0.7, 0.5, 'Continue\nroutine\nfollow-up', C['success'], fontsize=7) ax.text(9.4, 25.25, 'NO', fontsize=8, color=C['success'], fontweight='bold') # S3 – Clinical evaluation box(ax, 5.4, 23.85, 9.0, 0.65, 'Clinical Evaluation: Fluctuant? Tender? Erythema? Fever?', C['info'], fontsize=8.5) arrow(ax, 5.4, 23.52, 5.4, 22.9) # S4 – Signs of infection? diamond(ax, 5.4, 22.55, 7.5, 0.72, 'Erythema / Fever / Purulence / Leukocytosis?', C['warning'], fontsize=8.5) # YES → cross to infection column (handled by note) ax.annotate('', xy=(11.0, 22.55), xytext=(9.15, 22.55), arrowprops=dict(arrowstyle='->', color=C['warning'], lw=2.0, connectionstyle='arc3,rad=0.0')) ax.text(9.8, 22.72, 'YES →\nSSI path', fontsize=8, color=C['warning'], fontweight='bold', ha='center') arrow(ax, 5.4, 22.19, 5.4, 21.55, label='NO / Pure seroma') # S5 – Ultrasound box(ax, 5.4, 21.2, 9.0, 0.65, 'Ultrasound Confirmation\n(Anechoic fluid collection, no septations)', C['start'], fontsize=8.5) arrow(ax, 5.4, 20.87, 5.4, 20.25) # S6 – Size? diamond(ax, 5.4, 19.9, 7.5, 0.72, 'Collection size?\n(clinically symptomatic?)', C['decision'], fontsize=8.5) arrow(ax, 5.4, 19.54, 5.4, 18.85, label='< 5 cm / asymptomatic') # Small seroma box(ax, 5.4, 18.5, 9.0, 0.65, 'Conservative Management\n• Reassure patient • Compressive garment • Avoid strenuous activity • Review at 4–6 weeks', C['action'], fontsize=8.2) arrow(ax, 5.4, 18.17, 5.4, 17.55) # Resolved? diamond(ax, 5.4, 17.2, 7.0, 0.7, 'Resolved at 6-week review?', C['decision'], fontsize=8.5) # YES ax.annotate('', xy=(1.6, 17.2), xytext=(1.9, 17.2), arrowprops=dict(arrowstyle='->', color=C['success'], lw=1.8)) box(ax, 1.0, 17.2, 1.8, 0.5, 'Discharge /\nRoutine FU', C['success'], fontsize=7.5) ax.text(1.95, 17.38, 'YES', fontsize=8, color=C['success'], fontweight='bold') arrow(ax, 5.4, 16.85, 5.4, 16.25, label='NO / Enlarging') # Large seroma branch from S6 ax.annotate('', xy=(9.1, 18.55), xytext=(8.65, 19.54), arrowprops=dict(arrowstyle='->', color=C['warning'], lw=1.8, connectionstyle='arc3,rad=0.0')) ax.text(9.3, 19.2, '≥5 cm /\nSymptomatic', fontsize=8, color=C['warning'], fontweight='bold', ha='center') # Aspiration box(ax, 5.4, 15.9, 9.2, 0.65, 'Ultrasound-Guided Aspiration\n(Can be repeated 1–2×; send fluid for C&S if cloudy)', C['action'], fontsize=8.2) arrow(ax, 5.4, 15.57, 5.4, 14.95) diamond(ax, 5.4, 14.6, 7.5, 0.7, 'Recurs after 2 aspirations?', C['decision'], fontsize=8.5) arrow(ax, 5.4, 14.24, 5.4, 13.55, label='YES') # NO branch ax.annotate('', xy=(1.6, 14.6), xytext=(1.9, 14.6), arrowprops=dict(arrowstyle='->', color=C['success'], lw=1.8)) box(ax, 1.0, 14.6, 1.8, 0.5, 'Monitor 2–4\nweeks\nthen discharge', C['success'], fontsize=7.5) ax.text(1.95, 14.78, 'NO', fontsize=8, color=C['success'], fontweight='bold') box(ax, 5.4, 13.2, 9.2, 0.7, 'Persistent / Chronic Seroma\n• Drain insertion (closed suction) • Sclerotherapy (doxycycline / tetracycline)\n• Consider re-exploration if mesh folded / wrinkled', C['warning'], fontsize=8.0) arrow(ax, 5.4, 12.85, 5.4, 12.2) box(ax, 5.4, 11.85, 9.2, 0.65, 'Resolution? → Discharge\nNo resolution → Surgical review; consider mesh explanation if infected seroma', C['info'], fontsize=8.0) # PREVENTION BOX (seroma) prev_bg = FancyBboxPatch((0.5, 10.5), 9.8, 1.1, boxstyle='round,pad=0.1', linewidth=1.5, edgecolor=C['note_border'], facecolor=C['note_bg'], zorder=3) ax.add_patch(prev_bg) ax.text(5.4, 11.27, '⚠ SEROMA PREVENTION (intraoperative)', ha='center', va='center', fontsize=8.5, fontweight='bold', color='#7A5C00', zorder=4) ax.text(5.4, 10.85, 'Routine closed-suction drain | Fibrin glue to dead space | Minimize dissection extent\nPreserve subcutaneous lymphatics | Compressive dressing post-op', ha='center', va='center', fontsize=7.8, color='#5C4200', zorder=4, multialignment='center') # ══════════════════════════════════════════════════════════════════════════════ # ─────────────── RIGHT COLUMN: SSI ────────────────────────────────────────── # ══════════════════════════════════════════════════════════════════════════════ # I1 – Post-op assessment box(ax, 16.6, 26.3, 9.0, 0.65, 'Post-op Assessment (Day 3 – Week 6)', '#8A2C2C', bold=True, fontsize=9.5) arrow(ax, 16.6, 25.97, 16.6, 25.45) # I2 – Signs of SSI? diamond(ax, 16.6, 25.1, 8.5, 0.75, 'Wound erythema / warmth / swelling / discharge\nor fever / raised WBC / CRP?', C['warning'], fontsize=8.5) arrow(ax, 16.6, 24.72, 16.6, 24.12, label='YES') ax.annotate('', xy=(20.9, 25.1), xytext=(20.85, 25.1), arrowprops=dict(arrowstyle='->', color=C['success'], lw=1.8)) box(ax, 21.3, 25.1, 0.8, 0.5, 'Routine\nFU', C['success'], fontsize=7.5) ax.text(20.65, 25.28, 'NO', fontsize=8, color=C['success'], fontweight='bold') # I3 – Classify box(ax, 16.6, 23.75, 9.2, 0.72, 'CLASSIFY SSI (CDC Criteria)\n▸ Superficial ▸ Deep ▸ Organ/Space (mesh involved?)', '#8A2C2C', fontsize=8.5) arrow(ax, 16.6, 23.39, 16.6, 22.75) # I4 – Superficial vs Deep diamond(ax, 16.6, 22.4, 8.5, 0.72, 'Deep SSI / Mesh involvement suspected?', C['decision'], fontsize=8.5) # NO – superficial branch arrow(ax, 12.35, 22.4, 11.8, 22.4) # left arrow to superficial box ax.text(12.4, 22.55, 'NO (Superficial)', fontsize=8, color='#27AE60', fontweight='bold') # YES – deep branch arrow(ax, 16.6, 22.04, 16.6, 21.4, label='YES (Deep)') # Superficial box box(ax, 13.3, 21.4, 3.8, 1.3, 'SUPERFICIAL SSI\n─────────────\n• Wound swab for C&S\n• Empiric PO antibiotics\n (Co-amoxiclav / Cefalexin)\n• Wound opening if fluctuant\n• Warm saline irrigation\n• Dressing changes\n• Review 48–72 h', C['action'], fontsize=8.0) # Deep SSI box(ax, 18.6, 21.0, 5.8, 1.1, 'DEEP SSI Workup\n• Blood cultures + wound swab\n• CT abdomen/pelvis\n (gas, fluid collection, mesh integrity)\n• IV antibiotics (empiric broad-spectrum)', C['warning'], fontsize=8.0) arrow(ax, 18.6, 20.45, 18.6, 19.85) diamond(ax, 18.6, 19.5, 6.0, 0.72, 'CT: Peri-mesh collection /\nMesh contamination?', C['decision'], fontsize=8.5) # NO → medical management ax.annotate('', xy=(14.8, 19.5), xytext=(15.6, 19.5), arrowprops=dict(arrowstyle='->', color=C['action'], lw=1.8)) ax.text(15.1, 19.65, 'NO', fontsize=8, color=C['action'], fontweight='bold') box(ax, 13.9, 19.5, 2.4, 0.9, 'Continue IV Abx\n48–72 h, then\nstep-down PO\nReview 1 week', C['action'], fontsize=7.8) # YES → surgical arrow(ax, 18.6, 19.14, 18.6, 18.45, label='YES') box(ax, 18.6, 18.1, 5.8, 0.7, 'CT-guided or Surgical Drainage\n• Percutaneous drain if accessible\n• IV Abx: Pip-Tazo / Meropenem guided by cultures', C['warning'], fontsize=8.0) arrow(ax, 18.6, 17.75, 18.6, 17.1) diamond(ax, 18.6, 16.75, 6.2, 0.72, 'Response to drainage + Abx\n(72 h reassessment)?', C['decision'], fontsize=8.5) # YES → recover ax.annotate('', xy=(14.6, 16.75), xytext=(15.5, 16.75), arrowprops=dict(arrowstyle='->', color=C['success'], lw=1.8)) ax.text(15.1, 16.92, 'YES', fontsize=8, color=C['success'], fontweight='bold') box(ax, 13.9, 16.75, 2.4, 0.9, 'Complete Abx course\n(4–6 weeks if mesh)\nRegular wound review\nImagine at 3 months', C['success'], fontsize=7.5) # NO → explant decision arrow(ax, 18.6, 16.39, 18.6, 15.7, label='NO / Worsening') box(ax, 18.6, 15.35, 6.2, 0.7, '⚠ MESH EXPLANTATION DECISION\nMultidisciplinary discussion (surgeon + ID + radiologist)', C['warning'], bold=True, fontsize=8.2) arrow(ax, 18.6, 15.0, 18.6, 14.35) diamond(ax, 18.6, 14.0, 6.5, 0.72, 'Mesh salvage possible?\n(Early infection, clean tissue, controlled)', C['decision'], fontsize=8.5) arrow(ax, 18.6, 13.64, 18.6, 12.95, label='NO') ax.annotate('', xy=(21.95, 14.0), xytext=(21.85, 14.0), arrowprops=dict(arrowstyle='->', color=C['action'], lw=1.8)) ax.text(21.7, 14.18, 'YES', fontsize=8, color=C['action'], fontweight='bold') box(ax, 21.5, 13.5, 0.9, 1.0, 'Aggressive\nwound wash-\nout, NPWT,\nDelayed\nprimary\nclosure', C['action'], fontsize=7.0) box(ax, 18.6, 12.6, 6.5, 0.7, 'MESH EXPLANTATION\n• Remove mesh • Debride infected tissue\n• NPWT (Vacuum therapy) • Plan delayed repair at 3–6 months', C['warning'], fontsize=8.0) arrow(ax, 18.6, 12.25, 18.6, 11.6) box(ax, 18.6, 11.25, 6.5, 0.7, 'Post-explantation Care\n• Culture-directed Abx • Wound healing by secondary intention or flap\n• Nutritional support • Delayed ventral hernia re-repair', C['info'], fontsize=7.8) # PREVENTION BOX (SSI) prev_ssi = FancyBboxPatch((11.5, 10.5), 9.8, 1.1, boxstyle='round,pad=0.1', linewidth=1.5, edgecolor='#C0392B', facecolor='#FFF0F0', zorder=3) ax.add_patch(prev_ssi) ax.text(16.4, 11.27, '⚠ SSI PREVENTION (peri-operative)', ha='center', va='center', fontsize=8.5, fontweight='bold', color='#7A0000', zorder=4) ax.text(16.4, 10.85, 'Pre-op antibiotics (30 min before) | Skin antisepsis (chlorhexidine) | Avoid mesh-skin contact\nMinimize OR time | Normoglycemia | SCOLA mesh: non-coated PP (lower SSI vs IPOM barrier mesh)', ha='center', va='center', fontsize=7.5, color='#5C0000', zorder=4, multialignment='center') # ══════════════════════════════════════════════════════════════════════════════ # LEGEND # ══════════════════════════════════════════════════════════════════════════════ legend_bg = FancyBboxPatch((0.3, 9.3), 21.4, 0.9, boxstyle='round,pad=0.05', linewidth=1, edgecolor='#AAB8C2', facecolor='#EEF2F7', zorder=3) ax.add_patch(legend_bg) ax.text(11, 9.95, 'LEGEND', ha='center', va='center', fontsize=9, fontweight='bold', color='#2C3E50') legend_items = [ (1.5, 9.6, C['start'], 'Start / Assessment'), (5.5, 9.6, C['decision'], 'Decision / Branch'), (9.5, 9.6, C['action'], 'Action / Treatment'), (13.5, 9.6, C['warning'], 'Critical / Escalation'), (17.5, 9.6, C['success'], 'Resolution / Discharge'), (20.8, 9.6, C['info'], 'Investigation'), ] for lx, ly, lc, lt in legend_items: b = FancyBboxPatch((lx-0.5, ly-0.2), 1.0, 0.38, boxstyle='round,pad=0.05', facecolor=lc, edgecolor='none', zorder=4) ax.add_patch(b) ax.text(lx, ly-0.48, lt, ha='center', va='top', fontsize=7, color='#2C3E50', zorder=5) # ══════════════════════════════════════════════════════════════════════════════ # CROSS-REFERENCE ARROW (seroma → SSI) # ══════════════════════════════════════════════════════════════════════════════ ax.annotate('', xy=(11.4, 22.55), xytext=(9.15, 22.55), arrowprops=dict(arrowstyle='->', color=C['warning'], lw=2.2, linestyle='dashed')) ax.text(10.3, 22.72, 'Refer to\nSSI path →', fontsize=7.5, color=C['warning'], fontweight='bold', ha='center') # Footer ax.text(11, 8.85, 'Based on: Vitiello et al. 2026 (SR/Meta-analysis, PMID 41667727) | Deshpande et al. 2024 (PMID 39730131) | Sabiston Textbook of Surgery | Mulholland & Greenfield Surgery 7e', ha='center', va='center', fontsize=7, color='#7F8C8D') plt.tight_layout(pad=0.5) plt.savefig('/tmp/workspace/scola-flowchart/SCOLA_Complication_Flowchart.png', dpi=180, bbox_inches='tight', facecolor='#F0F4F8') plt.close() print("Saved successfully.") PYEOF

Your credits are exhausted. You can purchase a top-up or subscribe to a plan to continue using Orris. If you're already subscribed, your daily credits will reset tomorrow.
This is a shared conversation. Sign in to Orris to start your own chat.