I am assigned the role of moderator in a Panel discussion on “Use of Phasix mesh in surgery” where there will be five renowned professors as panelists. It is of 40-45 minutes. I want to design this with real time clinical scenarios depicting every aspects of bioresorbable mesh its indications contraindications, interesting cases and very interactive. Draft me a script of me as the moderator
Phasix mesh bioresorbable P4HB indications contraindications clinical outcomes 2024 2025
Phasix mesh P4HB bioresorbable hernia repair outcomes
Phasix mesh surgical technique complications real world cases contaminated field hernia
[FORMAT LEGEND]
- [MOD] = Your lines as Moderator
- [SCENARIO] = Clinical case slide/display cue
- [DIRECT] = Directed question to a specific panelist
- [OPEN] = Open question to all panelists
- [AUDIENCE] = Audience interaction cue
- (italics) = Stage direction / timing note
"How many of you have personally used Phasix mesh or a P4HB-based bioresorbable mesh in your practice in the last two years?"
CASE 1: The Contaminated HerniaA 58-year-old male with Type 2 diabetes (HbA1c 8.4%), previous open appendicectomy, and a midline incisional hernia following a Hartmann's procedure reversal. He now presents with a W3 hernia (EHS classification), with a defect of 12 cm. During surgery, the bowel is entered inadvertently - the field is now Grade CDC III/potentially contaminated. Your scrub nurse asks: "Do we still place the mesh?"
CASE 2: The High-Risk Patient - Obese, ImmunosuppressedA 47-year-old woman, BMI 42, on long-term prednisolone for Crohn's disease, non-smoker. She underwent a laparotomy for small bowel resection 18 months ago and now presents with a symptomatic W2 incisional hernia. She has had two previous mesh repairs with polypropylene - both eventually required explantation for chronic infection. She says: "I cannot go through that again."
CASE 3: Prophylactic Mesh PlacementA 32-year-old woman, BMI 27, no comorbidities, undergoes an elective open sigmoid colectomy for recurrent diverticulitis. She asks if there is anything you can do to prevent an incisional hernia. Her mother had two hernia repairs after abdominal surgery. You are considering prophylactic mesh reinforcement of the midline closure.
CASE 4: The Unusual Case - Pregnancy After Bioresorbable MeshA 29-year-old woman underwent abdominal wall reconstruction with Phasix mesh two years ago following a diastasis recti repair complicated by a midline hernia. She is now 10 weeks pregnant and was referred to you for counselling. Her previous surgeon used a large piece of Phasix in a retromuscular position. She asks: "Is my baby safe? Will I need a C-section? Is my hernia going to come back?"
| Parameter | Data |
|---|---|
| Resorption time | 12-18 months |
| Material | Poly-4-hydroxybutyrate (P4HB) |
| 5-year recurrence (Grade 3 VHWG) | 15.9% (Phasix Trial, Ann Surg Open 2023) |
| Pooled recurrence (meta-analysis) | 4% (95% CI: 0-12%) |
| Pooled complication rate | 50% (95% CI: 27-72%) |
| CDC IV contaminated field SSOPI | ~35.4% (unpublished multi-institution data, 2025) |
| Mesh explantation required | Rare; 1 case in 40+ CDC IV patients in 2025 series |
| Key antibiotic warning | Tetracycline HCl + kanamycin sulfate used in manufacture |
| Formal contraindication | Do NOT use where permanent organ/wound support is required |
| Key contraindication warning | Not for bridging; not near excised/active cancer (Phasix ST) |
| Segment | Time | Cumulative |
|---|---|---|
| Opening + Audience Pulse | 4 min | 4 min |
| Science anchor + Evidence overview | 4 min | 8 min |
| Scenario 1: Contaminated Field | 9 min | 17 min |
| Scenario 2: High-Risk Patient | 7 min | 24 min |
| Scenario 3: Prophylactic Use | 6 min | 30 min |
| Scenario 4: Unusual/Pregnancy Case | 6 min | 36 min |
| Contraindications rapid-fire | 4 min | 40 min |
| Take-home + Closing | 3 min | 43 min |
| Audience Q&A | 2 min | 45 min |
Generate a ppt for the same.
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "workspace ready"
Generate a ppt for the same.
mkdir -p /tmp/workspace/phasix-panel && echo "ready"
~/phasix-panel/build_ppt.py
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.util import Inches, Pt
from io import BytesIO
import copy
# ── Colour palette ──────────────────────────────────────────────────────────
DARK_NAVY = RGBColor(0x0D, 0x2B, 0x4E) # deep navy – backgrounds/headers
MID_BLUE = RGBColor(0x1A, 0x5E, 0x9E) # panel blue – accent bars
TEAL = RGBColor(0x00, 0x96, 0x9E) # teal – highlights
ORANGE = RGBColor(0xE8, 0x6C, 0x1A) # orange – case labels / warm accent
LIGHT_GREY = RGBColor(0xF2, 0xF5, 0xF9) # slide background (light)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK_TEXT = RGBColor(0x1C, 0x1C, 0x2E)
MID_TEXT = RGBColor(0x3A, 0x3A, 0x5C)
CASE_BG = RGBColor(0xFF, 0xF3, 0xE4) # warm cream for case boxes
CASE_BORDER = RGBColor(0xE8, 0x6C, 0x1A)
BULLET_TEAL = TEAL
GREEN = RGBColor(0x1A, 0x8A, 0x4A)
RED = RGBColor(0xC0, 0x23, 0x23)
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
blank_layout = prs.slide_layouts[6]
# ── Helper utilities ─────────────────────────────────────────────────────────
def add_rect(slide, x, y, w, h, fill_color=None, line_color=None, line_width=Pt(0)):
shape = slide.shapes.add_shape(1, Inches(x), Inches(y), Inches(w), Inches(h))
shape.line.width = line_width
if fill_color:
shape.fill.solid()
shape.fill.fore_color.rgb = fill_color
else:
shape.fill.background()
if line_color:
shape.line.color.rgb = line_color
shape.line.width = line_width if line_width else Pt(1.5)
else:
shape.line.fill.background()
return shape
def add_tb(slide, x, y, w, h, text, size=18, bold=False, color=DARK_TEXT,
align=PP_ALIGN.LEFT, italic=False, wrap=True, v_anchor=MSO_ANCHOR.TOP,
margin_left=0.08, margin_top=0.04, margin_right=0.08, margin_bottom=0.04):
tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = tb.text_frame
tf.word_wrap = wrap
tf.vertical_anchor = v_anchor
tf.margin_left = Inches(margin_left)
tf.margin_right = Inches(margin_right)
tf.margin_top = Inches(margin_top)
tf.margin_bottom= Inches(margin_bottom)
p = tf.paragraphs[0]
p.alignment = align
r = p.add_run()
r.text = text
r.font.name = "Calibri"
r.font.size = Pt(size)
r.font.bold = bold
r.font.italic = italic
r.font.color.rgb = color
return tb, tf
def add_para(tf, text, size=16, bold=False, color=DARK_TEXT,
align=PP_ALIGN.LEFT, italic=False, space_before=Pt(4), bullet_char=None):
from pptx.oxml.ns import qn
from lxml import etree
p = tf.add_paragraph()
p.alignment = align
p.space_before = space_before
if bullet_char:
r = p.add_run()
r.text = bullet_char + " " + text
else:
r = p.add_run()
r.text = text
r.font.name = "Calibri"
r.font.size = Pt(size)
r.font.bold = bold
r.font.italic = italic
r.font.color.rgb = color
return p
def slide_bg(slide, color=LIGHT_GREY):
"""Fill slide background."""
bg = slide.background
fill = bg.fill
fill.solid()
fill.fore_color.rgb = color
def top_bar(slide, title, subtitle=None, bar_color=DARK_NAVY, title_color=WHITE,
sub_color=TEAL, bar_height=1.15):
"""Standard top bar with title."""
add_rect(slide, 0, 0, 13.333, bar_height, fill_color=bar_color)
# accent line
add_rect(slide, 0, bar_height, 13.333, 0.055, fill_color=TEAL)
add_tb(slide, 0.4, 0.12, 12.0, bar_height - 0.15,
title, size=30, bold=True, color=title_color,
align=PP_ALIGN.LEFT, v_anchor=MSO_ANCHOR.MIDDLE)
if subtitle:
add_tb(slide, 0.4, bar_height - 0.30, 12.0, 0.4,
subtitle, size=15, bold=False, color=sub_color,
align=PP_ALIGN.LEFT)
def footer(slide, text="Panel Discussion | Phasix Mesh in Surgery | 2026"):
add_rect(slide, 0, 7.22, 13.333, 0.28, fill_color=DARK_NAVY)
add_tb(slide, 0.4, 7.24, 12.5, 0.24,
text, size=10, color=RGBColor(0xAA, 0xC4, 0xDF),
align=PP_ALIGN.CENTER, margin_top=0, margin_bottom=0)
def section_label(slide, text, x=0.4, y=1.32, color=TEAL):
add_tb(slide, x, y, 12.0, 0.3, text.upper(),
size=10, bold=True, color=color, align=PP_ALIGN.LEFT,
margin_top=0, margin_bottom=0)
def divider(slide, y=1.70, color=MID_BLUE, width=12.5, x=0.4):
add_rect(slide, x, y, width, 0.025, fill_color=color)
def case_box(slide, x, y, w, h, case_num, label, lines, label_color=ORANGE):
"""Styled clinical case card."""
# shadow
add_rect(slide, x+0.06, y+0.07, w, h, fill_color=RGBColor(0xD0,0xD8,0xE8))
# main box
add_rect(slide, x, y, w, h, fill_color=WHITE, line_color=CASE_BORDER, line_width=Pt(2))
# top accent stripe
add_rect(slide, x, y, w, 0.32, fill_color=label_color)
# case label
add_tb(slide, x+0.12, y+0.03, w-0.2, 0.28,
f"CASE {case_num} | {label}", size=11, bold=True,
color=WHITE, margin_top=0, margin_bottom=0)
# body text
tb, tf = add_tb(slide, x+0.15, y+0.40, w-0.28, h-0.55,
lines[0], size=12, color=DARK_TEXT, wrap=True,
margin_left=0.05, margin_top=0.03)
for line in lines[1:]:
add_para(tf, line, size=12, color=DARK_TEXT, space_before=Pt(3))
def bullet_block(slide, x, y, w, h, items, size=16, heading=None,
heading_color=MID_BLUE, bullet="▸", item_color=DARK_TEXT,
bg_color=None, border_color=None):
if bg_color:
add_rect(slide, x, y, w, h, fill_color=bg_color,
line_color=border_color, line_width=Pt(1.2) if border_color else Pt(0))
tb, tf = add_tb(slide, x+0.12, y+0.08, w-0.22, h-0.15,
heading if heading else items[0],
size=size, bold=True if heading else False,
color=heading_color if heading else item_color, wrap=True,
margin_left=0.04, margin_top=0.04)
start = 0 if not heading else 0
items_to_add = items if not heading else items
for itm in items_to_add:
add_para(tf, itm, size=size-1, color=item_color,
space_before=Pt(5), bullet_char=bullet)
return tb, tf
def icon_kv(slide, x, y, key, val, key_color=MID_BLUE, val_color=DARK_TEXT):
add_tb(slide, x, y, 2.2, 0.32, key, size=12, bold=True, color=key_color,
margin_left=0, margin_top=0)
add_tb(slide, x+2.25, y, 4.0, 0.32, val, size=12, color=val_color,
margin_left=0, margin_top=0)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 1 — TITLE SLIDE
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, DARK_NAVY)
# diagonal accent graphic (top-right)
add_rect(s, 9.8, 0, 3.533, 7.5, fill_color=RGBColor(0x12, 0x3B, 0x6E))
add_rect(s, 11.5, 0, 1.833, 7.5, fill_color=RGBColor(0x17, 0x4E, 0x8A))
# teal accent bar left
add_rect(s, 0, 0, 0.18, 7.5, fill_color=TEAL)
# horizontal rule
add_rect(s, 0.4, 3.55, 9.0, 0.06, fill_color=TEAL)
# Title
tb, tf = add_tb(s, 0.55, 1.1, 9.0, 1.5,
"USE OF PHASIX MESH IN SURGERY",
size=38, bold=True, color=WHITE,
align=PP_ALIGN.LEFT, wrap=True,
v_anchor=MSO_ANCHOR.MIDDLE)
# Sub
add_tb(s, 0.55, 2.75, 9.0, 0.55,
"Bioresorbable P4HB Mesh — Science, Indications & Clinical Practice",
size=18, color=TEAL, align=PP_ALIGN.LEFT)
# Panel label
add_rect(s, 0.55, 3.75, 5.5, 0.50, fill_color=RGBColor(0x1A, 0x5E, 0x9E))
add_tb(s, 0.65, 3.78, 5.3, 0.44,
"EXPERT PANEL DISCUSSION | 40-45 MINUTES",
size=13, bold=True, color=WHITE, align=PP_ALIGN.LEFT,
margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
# Details
add_tb(s, 0.55, 4.42, 8.0, 0.35,
"Moderated Panel · 5 Renowned Panelists · Interactive Clinical Scenarios",
size=13, color=RGBColor(0xAA, 0xC4, 0xDF), align=PP_ALIGN.LEFT)
add_tb(s, 0.55, 4.85, 5.0, 0.30,
"July 2026",
size=13, color=RGBColor(0x88, 0xAA, 0xCC), align=PP_ALIGN.LEFT)
# Mesh label on right panel
add_tb(s, 10.0, 2.8, 3.0, 0.5, "PHASIX™", size=28, bold=True,
color=TEAL, align=PP_ALIGN.CENTER)
add_tb(s, 10.0, 3.35, 3.0, 0.4, "Poly-4-Hydroxybutyrate", size=11,
color=RGBColor(0x88, 0xAA, 0xCC), align=PP_ALIGN.CENTER)
add_tb(s, 10.0, 3.75, 3.0, 0.35, "Fully Bioresorbable", size=11,
color=RGBColor(0x88, 0xAA, 0xCC), align=PP_ALIGN.CENTER)
add_tb(s, 10.0, 4.1, 3.0, 0.35, "12-18 Month Resorption", size=11,
color=RGBColor(0x88, 0xAA, 0xCC), align=PP_ALIGN.CENTER)
footer(s, "Panel Discussion | Use of Phasix Mesh in Surgery | 2026")
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 2 — PANEL AGENDA / STRUCTURE
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, LIGHT_GREY)
top_bar(s, "Panel Structure & Agenda", subtitle="40-45 Minute Interactive Discussion")
footer(s)
segments = [
("01", "Opening & Scene-Setting", "0-4 min", "Audience pulse • Panelist introductions"),
("02", "The Science of Phasix", "4-8 min", "P4HB biology • Evidence summary • Cost-efficacy"),
("03", "Case 1: Contaminated Field", "8-17 min", "CDC III/IV hernia • Mesh choice decision tree"),
("04", "Case 2: High-Risk Patient", "17-24 min", "Obese + immunosuppressed • Technique & positioning"),
("05", "Case 3: Prophylactic Use", "24-30 min", "Primary closure reinforcement • Young patients"),
("06", "Case 4: Unusual Case", "30-36 min", "Pregnancy after AWR • Long-term scaffold fate"),
("07", "Contraindications Rapid-Fire", "36-40 min", "Panel verdict on 5 challenging scenarios"),
("08", "Take-Homes & Q&A", "40-45 min", "Consensus messages • Audience questions"),
]
row_h = 0.60
start_y = 1.28
for i, (num, title, timing, desc) in enumerate(segments):
y = start_y + i * row_h
bg = WHITE if i % 2 == 0 else RGBColor(0xE8, 0xEF, 0xF8)
add_rect(s, 0.35, y, 12.6, row_h - 0.05, fill_color=bg)
# number pill
add_rect(s, 0.35, y, 0.55, row_h - 0.05, fill_color=MID_BLUE)
add_tb(s, 0.36, y+0.02, 0.52, row_h-0.1, num, size=14, bold=True,
color=WHITE, align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE,
margin_top=0, margin_bottom=0)
# title
add_tb(s, 1.0, y+0.08, 4.2, 0.38, title, size=13, bold=True,
color=DARK_NAVY, margin_top=0, margin_bottom=0)
# timing
add_rect(s, 5.3, y+0.1, 1.4, 0.34, fill_color=TEAL)
add_tb(s, 5.32, y+0.12, 1.36, 0.30, timing, size=11, bold=True,
color=WHITE, align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE,
margin_top=0, margin_bottom=0)
# desc
add_tb(s, 6.85, y+0.10, 6.0, 0.38, desc, size=11,
color=MID_TEXT, margin_top=0, margin_bottom=0)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 3 — THE SCIENCE: WHAT IS PHASIX?
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, LIGHT_GREY)
top_bar(s, "What is Phasix™ Mesh?", subtitle="Poly-4-Hydroxybutyrate (P4HB) — The Science Behind the Scaffold")
footer(s)
# Left column — properties
add_rect(s, 0.35, 1.30, 6.1, 5.6, fill_color=WHITE,
line_color=RGBColor(0xCC,0xD8,0xEC), line_width=Pt(1))
add_rect(s, 0.35, 1.30, 6.1, 0.42, fill_color=MID_BLUE)
add_tb(s, 0.55, 1.33, 5.8, 0.36, "MATERIAL & PROPERTIES", size=12, bold=True,
color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
props = [
("Material", "Poly-4-Hydroxybutyrate (P4HB) — biologically derived via fermentation"),
("Structure", "Open-pore monofilament scaffold — promotes rapid tissue ingrowth"),
("Resorption", "Fully resorbed in 12-18 months via hydrolysis"),
("Metabolites", "Broken down to CO₂ + H₂O — cleared by the Krebs cycle"),
("Collagen", "Promotes Type III → Type I collagen maturation at repair site"),
("Immune resp.", "Minimal foreign body reaction; early anti-inflammatory macrophage response"),
("Strength", "Maintains mechanical strength during critical early healing phase"),
]
py = 1.85
for k, v in props:
add_rect(s, 0.38, py, 5.9, 0.52, fill_color=RGBColor(0xF0,0xF4,0xFB))
add_tb(s, 0.50, py+0.05, 1.4, 0.38, k+":", size=11, bold=True,
color=MID_BLUE, margin_top=0, margin_bottom=0)
add_tb(s, 1.92, py+0.05, 4.2, 0.42, v, size=11, color=DARK_TEXT,
wrap=True, margin_top=0, margin_bottom=0)
py += 0.57
# Right column — key numbers
add_rect(s, 6.75, 1.30, 6.25, 5.6, fill_color=WHITE,
line_color=RGBColor(0xCC,0xD8,0xEC), line_width=Pt(1))
add_rect(s, 6.75, 1.30, 6.25, 0.42, fill_color=DARK_NAVY)
add_tb(s, 6.92, 1.33, 5.9, 0.36, "KEY CLINICAL DATA", size=12, bold=True,
color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
stats = [
("4%", "Pooled recurrence rate", "(Meta-analysis, 95% CI 0-12%)", TEAL),
("15.9%", "5-yr recurrence, Grade 3 VHWG", "(Phasix Trial, Ann Surg Open 2023)", MID_BLUE),
("50%", "Pooled complication rate", "(95% CI 27-72% — includes seromas)", ORANGE),
(">85%", "Patients NOT needing re-repair", "(CDC IV contaminated field, 2025)", GREEN),
]
sy = 1.85
for val, label, note, col in stats:
add_rect(s, 6.80, sy, 6.1, 1.20, fill_color=RGBColor(0xF0,0xF4,0xFB))
add_rect(s, 6.80, sy, 0.18, 1.20, fill_color=col)
add_tb(s, 7.10, sy+0.10, 2.0, 0.65, val, size=30, bold=True,
color=col, align=PP_ALIGN.LEFT, v_anchor=MSO_ANCHOR.MIDDLE,
margin_top=0, margin_bottom=0)
add_tb(s, 9.15, sy+0.10, 3.6, 0.38, label, size=12, bold=True,
color=DARK_NAVY, wrap=True, margin_top=0, margin_bottom=0)
add_tb(s, 9.15, sy+0.52, 3.6, 0.32, note, size=10, color=MID_TEXT,
italic=True, wrap=True, margin_top=0, margin_bottom=0)
sy += 1.30
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 4 — INDICATIONS & CONTRAINDICATIONS
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, LIGHT_GREY)
top_bar(s, "Indications & Contraindications", subtitle="Official Labelling + Expert Clinical Context")
footer(s)
# Left — indications
add_rect(s, 0.35, 1.30, 5.9, 5.7, fill_color=RGBColor(0xF0,0xFB,0xF4),
line_color=GREEN, line_width=Pt(1.5))
add_rect(s, 0.35, 1.30, 5.9, 0.45, fill_color=GREEN)
add_tb(s, 0.55, 1.33, 5.6, 0.38, "✔ INDICATIONS", size=13, bold=True,
color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
indications = [
"Ventral & incisional hernia repair (clean & contaminated fields)",
"Abdominal fascial defect repair — bridging or reinforcement",
"Plastic & reconstructive surgery — soft tissue reinforcement",
"Abdominal wall reconstruction (AWR) with component separation",
"Hiatal hernia repair (Phasix ST variant)",
"Prophylactic incision reinforcement to prevent hernia formation",
"High-risk patients where permanent mesh infection risk is elevated",
"Patients with prior synthetic mesh failure / chronic infection",
"Reproductive-age women where future abdominal surgery is anticipated",
]
iy = 1.88
for item in indications:
add_tb(s, 0.60, iy, 5.5, 0.48, "▸ " + item, size=11.5,
color=DARK_TEXT, wrap=True, margin_left=0.05, margin_top=0.02)
iy += 0.50
# Right — contraindications + warnings
add_rect(s, 6.55, 1.30, 6.45, 2.80, fill_color=RGBColor(0xFD,0xF0,0xF0),
line_color=RED, line_width=Pt(1.5))
add_rect(s, 6.55, 1.30, 6.45, 0.45, fill_color=RED)
add_tb(s, 6.72, 1.33, 6.2, 0.38, "✘ CONTRAINDICATIONS", size=13, bold=True,
color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
contras = [
"Where PERMANENT wound/organ support is required (formal CI)",
"Bridging repair — fascial closure must be achievable",
"Proximity to existing or excised malignancy (Phasix ST)",
"Known allergy to tetracycline HCl or kanamycin sulfate",
"Parastomal hernia where lifelong structural support is essential",
]
cy = 1.88
for item in contras:
add_tb(s, 6.72, cy, 6.1, 0.50, "✘ " + item, size=11.5,
color=RED, wrap=True, margin_left=0.05, margin_top=0.02)
cy += 0.52
# Warnings box
add_rect(s, 6.55, 4.22, 6.45, 2.78, fill_color=RGBColor(0xFF,0xF8,0xEE),
line_color=ORANGE, line_width=Pt(1.5))
add_rect(s, 6.55, 4.22, 6.45, 0.45, fill_color=ORANGE)
add_tb(s, 6.72, 4.25, 6.2, 0.38, "⚠ WARNINGS & PRECAUTIONS", size=13, bold=True,
color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
warnings = [
"Antibiotic sensitivity: manufacturing exposes to tetracycline HCl + kanamycin sulfate",
"Laparoscopic/robotic use: EU MDR clinical data not yet fully established",
"Phasix ST: coated side MUST face bowel/sensitive organs — orientation critical",
"Not for proximity to abdominopelvic cavity cancer (Phasix ST label)",
"Adverse reactions: seroma, infection, pain, adhesion, fistula, recurrence",
]
wy = 4.78
for item in warnings:
add_tb(s, 6.72, wy, 6.1, 0.46, "⚠ " + item, size=11,
color=RGBColor(0x7A, 0x3A, 0x00), wrap=True, margin_left=0.05, margin_top=0.02)
wy += 0.46
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 5 — CASE 1: CONTAMINATED FIELD
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, LIGHT_GREY)
top_bar(s, "Clinical Scenario 1 — The Contaminated Field", subtitle="CDC Grade III / Potentially Contaminated Hernia Repair")
footer(s)
# Case card
add_rect(s, 0.35, 1.28, 12.65, 1.82, fill_color=CASE_BG,
line_color=CASE_BORDER, line_width=Pt(2))
add_rect(s, 0.35, 1.28, 12.65, 0.36, fill_color=ORANGE)
add_tb(s, 0.52, 1.30, 12.3, 0.32,
"CASE 1 | 58-year-old male | T2DM (HbA1c 8.4%) | Post-Hartmann's reversal | W3 midline incisional hernia | Defect 12 cm",
size=11.5, bold=True, color=WHITE, margin_top=0, margin_bottom=0,
v_anchor=MSO_ANCHOR.MIDDLE)
add_tb(s, 0.52, 1.70, 12.2, 0.50,
"Intraoperative enterotomy — field now CDC Grade III (potentially contaminated). Fascial closure achievable with component separation. "
"Scrub nurse asks: 'Do we still place the mesh?'",
size=12, color=DARK_TEXT, wrap=True, margin_left=0.05, margin_top=0.02)
add_tb(s, 0.52, 2.82, 12.2, 0.26,
"Key Question: Place Phasix vs. biological mesh vs. primary repair only? Plane of placement? Timing?",
size=11.5, bold=True, italic=True, color=DARK_NAVY, wrap=True,
margin_left=0.05, margin_top=0.02)
# Two columns below
# Left — Evidence
add_rect(s, 0.35, 3.22, 6.1, 3.78, fill_color=WHITE,
line_color=RGBColor(0xCC,0xD8,0xEC), line_width=Pt(1))
add_rect(s, 0.35, 3.22, 6.1, 0.38, fill_color=MID_BLUE)
add_tb(s, 0.52, 3.25, 5.8, 0.32, "EVIDENCE SNAPSHOT", size=12, bold=True,
color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
ev_items = [
"5-yr recurrence 15.9% in VHWG Grade 3 (Phasix Trial, Ann Surg Open 2023)",
"No mesh-related complications requiring explantation at 5 years",
">85% CDC IV patients did NOT require re-repair at follow-up (2025 series)",
"Only 1 mesh infection requiring excision in 40+ CDC IV cases (multi-institution 2025)",
"SSOPI rate ~35.4% in CDC IV contaminated field — acceptable range",
"P4HB minimal foreign-body reaction resolves as mesh resorbs",
"Preclinical: superior resistance to Staph. aureus vs. permanent synthetic mesh",
]
ey = 3.72
for item in ev_items:
add_tb(s, 0.50, ey, 5.8, 0.44, "▸ " + item, size=11,
color=DARK_TEXT, wrap=True, margin_left=0.05, margin_top=0.01)
ey += 0.46
# Right — Panel discussion prompts
add_rect(s, 6.65, 3.22, 6.35, 3.78, fill_color=WHITE,
line_color=RGBColor(0xCC,0xD8,0xEC), line_width=Pt(1))
add_rect(s, 6.65, 3.22, 6.35, 0.38, fill_color=TEAL)
add_tb(s, 6.82, 3.25, 6.0, 0.32, "PANEL DISCUSSION POINTS", size=12, bold=True,
color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
panel_pts = [
"Decision tree: bioresorbable vs. biological mesh in contamination",
"Plane of placement: retromuscular vs. onlay vs. IPOM",
"Role of component separation (TAR/Rives-Stoppa) in this context",
"Absolute contamination cut-off: CDC IV faecal soiling — any mesh?",
"Antibiotic irrigation + drain protocols alongside Phasix",
"When would you abandon mesh entirely and stage the repair?",
]
pp = 3.72
for item in panel_pts:
add_tb(s, 6.80, pp, 6.0, 0.44, "▶ " + item, size=11,
color=DARK_TEXT, wrap=True, margin_left=0.05, margin_top=0.01)
pp += 0.50
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 6 — CASE 2: HIGH-RISK PATIENT
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, LIGHT_GREY)
top_bar(s, "Clinical Scenario 2 — The High-Risk Patient", subtitle="Obese + Immunosuppressed + Prior Mesh Failure")
footer(s)
add_rect(s, 0.35, 1.28, 12.65, 1.88, fill_color=CASE_BG,
line_color=CASE_BORDER, line_width=Pt(2))
add_rect(s, 0.35, 1.28, 12.65, 0.36, fill_color=ORANGE)
add_tb(s, 0.52, 1.30, 12.3, 0.32,
"CASE 2 | 47-year-old woman | BMI 42 | Crohn's disease on long-term prednisolone | W2 incisional hernia post-bowel resection",
size=11.5, bold=True, color=WHITE, margin_top=0, margin_bottom=0,
v_anchor=MSO_ANCHOR.MIDDLE)
add_tb(s, 0.52, 1.70, 12.2, 0.55,
"Two prior polypropylene mesh repairs — both required explantation for chronic infection. "
"Patient states: 'I cannot go through that again.' Fascial defect 8 cm. No active bowel disease.",
size=12, color=DARK_TEXT, wrap=True, margin_left=0.05, margin_top=0.02)
add_tb(s, 0.52, 2.88, 12.2, 0.26,
"Key Question: Does bioresorbable mesh change the risk calculus? Open vs. MIS approach? Weight / steroid optimisation threshold?",
size=11.5, bold=True, italic=True, color=DARK_NAVY, wrap=True,
margin_left=0.05, margin_top=0.02)
# Risk factor boxes
risk_factors = [
("BMI 42", "Obesity → ↑ SSI risk, ↑ abdominal wall tension, ↑ seroma", RED),
("Prednisolone", "Impaired collagen synthesis → scaffold cannot rely on neotissue", ORANGE),
("Crohn's", "Transmural inflammation → fistula / entero-cutaneous risk", ORANGE),
("Prior mesh failure", "Altered anatomy, scarring, biofilm — re-seeding of infection", RED),
]
rx = 0.35
for label, desc, col in risk_factors:
add_rect(s, rx, 3.30, 3.05, 1.10, fill_color=WHITE,
line_color=col, line_width=Pt(2))
add_rect(s, rx, 3.30, 3.05, 0.32, fill_color=col)
add_tb(s, rx+0.12, 3.32, 2.85, 0.28, label, size=12, bold=True,
color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
add_tb(s, rx+0.12, 3.68, 2.82, 0.62, desc, size=11, color=DARK_TEXT,
wrap=True, margin_left=0.05, margin_top=0.02)
rx += 3.18
# Panel discussion points
add_rect(s, 0.35, 4.55, 12.65, 2.5, fill_color=WHITE,
line_color=RGBColor(0xCC,0xD8,0xEC), line_width=Pt(1))
add_rect(s, 0.35, 4.55, 12.65, 0.38, fill_color=MID_BLUE)
add_tb(s, 0.52, 4.58, 12.2, 0.32, "PANEL DISCUSSION POINTS & EVIDENCE", size=12, bold=True,
color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
panel2 = [
("Srivastava et al. 2025 (Hernia)", "P4HB effective in high-risk patients + contaminated abdomen — acceptable outcomes"),
("Approach", "Open vs. laparoscopic vs. robotic: EU MDR data for laparoscopic Phasix still evolving"),
("Optimisation threshold", "BMI cut-off before elective repair? Steroid taper protocol? HbA1c target?"),
("Retromuscular positioning", "Preferred plane — reduces SSI exposure, improves tissue coverage"),
("Patient counselling", "'The mesh dissolves — your tissue must do the work': honest expectation-setting"),
]
py2 = 5.05
for ref, desc in panel2:
add_tb(s, 0.50, py2, 2.4, 0.38, ref+":", size=11, bold=True,
color=TEAL, margin_top=0, margin_bottom=0)
add_tb(s, 2.95, py2, 10.0, 0.42, desc, size=11, color=DARK_TEXT,
wrap=True, margin_top=0, margin_bottom=0)
py2 += 0.43
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 7 — CASE 3: PROPHYLACTIC USE
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, LIGHT_GREY)
top_bar(s, "Clinical Scenario 3 — Prophylactic Mesh Placement", subtitle="Preventing Incisional Hernia in Elective Laparotomy")
footer(s)
add_rect(s, 0.35, 1.28, 12.65, 1.72, fill_color=CASE_BG,
line_color=CASE_BORDER, line_width=Pt(2))
add_rect(s, 0.35, 1.28, 12.65, 0.36, fill_color=ORANGE)
add_tb(s, 0.52, 1.30, 12.3, 0.32,
"CASE 3 | 32-year-old woman | BMI 27 | No comorbidities | Elective open sigmoid colectomy for recurrent diverticulitis",
size=11.5, bold=True, color=WHITE, margin_top=0, margin_bottom=0,
v_anchor=MSO_ANCHOR.MIDDLE)
add_tb(s, 0.52, 1.70, 12.2, 0.52,
"Strong family history of incisional hernia. Patient enquires about hernia prevention. "
"Considering prophylactic bioresorbable mesh reinforcement of midline closure. Clean field (CDC Grade I).",
size=12, color=DARK_TEXT, wrap=True, margin_left=0.05, margin_top=0.02)
add_tb(s, 0.52, 2.76, 12.2, 0.26,
"Key Question: Is prophylactic bioresorbable mesh the future of elective laparotomy closure? Or over-treatment? What happens after mesh resorption?",
size=11.5, bold=True, italic=True, color=DARK_NAVY, wrap=True,
margin_left=0.05, margin_top=0.02)
# Three columns
col_data = [
("FOR Prophylaxis", GREEN, [
"2025: Phasix now formally indicated for prophylactic incision reinforcement",
"Phasix EHS 2025 brochure: designed to 'protect quality of life after surgery'",
"Collagen scaffold matures: Type III → Type I over resorption period",
"Avoids the morbidity of a future hernia repair entirely",
"Relevant in midline laparotomy, stoma formation, high-risk closures",
]),
("AGAINST / Cautions", RED, [
"Formal CI: not for use where PERMANENT support is required",
"After resorption: tissue alone bears the load — relies on neotissue quality",
"Young patient: decades of abdominal stress ahead — scaffold gone in 18 months",
"No long-term RCT data on prophylactic Phasix beyond 5 years",
"Cost-benefit unclear in low-risk, young, BMI-normal patients",
]),
("Expert Considerations", MID_BLUE, [
"Risk-stratify: BMI, prior surgery, planned stoma, steroid use",
"Bueno-Lledó 2024 (Hernia): long-term results show sustained low recurrence",
"Preclinical: ingrown tissue retains strength after mesh resorption",
"Shared decision-making: patient must understand the bioresorbable concept",
"Consider mesh-augmented mass closure vs. prophylactic overlay",
]),
]
cx = 0.35
for col_title, col_color, items in col_data:
add_rect(s, cx, 3.18, 4.12, 3.82, fill_color=WHITE,
line_color=col_color, line_width=Pt(1.5))
add_rect(s, cx, 3.18, 4.12, 0.38, fill_color=col_color)
add_tb(s, cx+0.12, 3.21, 3.9, 0.32, col_title, size=12, bold=True,
color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
iy = 3.66
for item in items:
add_tb(s, cx+0.14, iy, 3.86, 0.54, "▸ " + item, size=10.5,
color=DARK_TEXT, wrap=True, margin_left=0.04, margin_top=0.01)
iy += 0.54
cx += 4.30
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 8 — CASE 4: UNUSUAL CASE / PREGNANCY
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, LIGHT_GREY)
top_bar(s, "Clinical Scenario 4 — The Unusual Case", subtitle="Pregnancy After Abdominal Wall Reconstruction with Bioresorbable Mesh")
footer(s)
add_rect(s, 0.35, 1.28, 12.65, 1.82, fill_color=CASE_BG,
line_color=CASE_BORDER, line_width=Pt(2))
add_rect(s, 0.35, 1.28, 12.65, 0.36, fill_color=ORANGE)
add_tb(s, 0.52, 1.30, 12.3, 0.32,
"CASE 4 | 29-year-old woman | Diastasis recti + midline hernia | AWR with large retromuscular Phasix mesh 2 years prior | Now 10 weeks pregnant",
size=11.5, bold=True, color=WHITE, margin_top=0, margin_bottom=0,
v_anchor=MSO_ANCHOR.MIDDLE)
add_tb(s, 0.52, 1.70, 12.2, 0.55,
"Referred for counselling. Mesh fully absorbed. She asks: 'Is my baby safe? Will I need a C-section? "
"Will my hernia come back?' Her obstetrician has never seen this situation before.",
size=12, color=DARK_TEXT, wrap=True, margin_left=0.05, margin_top=0.02)
add_tb(s, 0.52, 2.88, 12.2, 0.26,
"Key Question: Mode of delivery? Mechanical integrity of neo-collagen wall under pregnancy/labour stress? Recurrence risk?",
size=11.5, bold=True, italic=True, color=DARK_NAVY, wrap=True,
margin_left=0.05, margin_top=0.02)
# Literature highlight
add_rect(s, 0.35, 3.26, 7.5, 1.30, fill_color=RGBColor(0xE8,0xF4,0xFF),
line_color=MID_BLUE, line_width=Pt(1.5))
add_rect(s, 0.35, 3.26, 0.22, 1.30, fill_color=MID_BLUE)
add_tb(s, 0.72, 3.32, 7.0, 0.28, "LITERATURE: Putko et al. (2026) — Front Surg", size=11, bold=True,
color=MID_BLUE, margin_top=0, margin_bottom=0)
add_tb(s, 0.72, 3.65, 7.0, 0.78,
"Case report: bioresorbable implant in anterior AWR in women of reproductive age — "
"successful pregnancy AND 10-year follow-up documented. No catastrophic abdominal wall failure reported.",
size=11, color=DARK_TEXT, wrap=True, margin_left=0.04, margin_top=0.02)
# Right — questions for panel
add_rect(s, 8.05, 3.26, 5.0, 1.30, fill_color=RGBColor(0xFF,0xF3,0xE4),
line_color=ORANGE, line_width=Pt(1.5))
add_rect(s, 8.05, 3.26, 0.22, 1.30, fill_color=ORANGE)
add_tb(s, 8.42, 3.32, 4.5, 0.28, "KEY CLINICAL QUESTION", size=11, bold=True,
color=ORANGE, margin_top=0, margin_bottom=0)
add_tb(s, 8.42, 3.65, 4.5, 0.78,
"When the mesh is gone — is the body's own collagen strong enough for the mechanical "
"stress of pregnancy, labour, and delivery?",
size=11, color=DARK_TEXT, wrap=True, margin_left=0.04, margin_top=0.02)
# Panel points in grid
panel4 = [
("Delivery mode", "No universal consensus — individualise based on defect size, repair quality, obstetric factors"),
("C-section consideration", "Preferred if previous large AWR + diastasis — avoids extreme Valsalva forces on neo-collagen wall"),
("Recurrence risk", "No definitive data; anecdotal evidence from 2026 case report is reassuring at 10 years"),
("Collagen quality", "Type I collagen matures over resorption period — but individual variation in remodelling is real"),
("Counselling point", "Patient must understand: 'The mesh is gone — your tissue is the repair now'"),
("Multidisciplinary", "Involve obstetrician + hernia surgeon in joint counselling — unfamiliar territory for most OB teams"),
]
px = 0.35
py = 4.68
toggle = True
for key, val in panel4:
bg = RGBColor(0xF0,0xF4,0xFB) if toggle else WHITE
add_rect(s, px, py, 12.65, 0.42, fill_color=bg)
add_tb(s, px+0.12, py+0.05, 2.5, 0.32, key+":", size=11, bold=True,
color=MID_BLUE, margin_top=0, margin_bottom=0)
add_tb(s, px+2.72, py+0.05, 10.1, 0.38, val, size=11, color=DARK_TEXT,
wrap=True, margin_top=0, margin_bottom=0)
py += 0.42
toggle = not toggle
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 9 — CONTRAINDICATIONS RAPID-FIRE
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, LIGHT_GREY)
top_bar(s, "Contraindications Rapid-Fire", subtitle="Panel Verdict — Use it / Don't Use it / Maybe?")
footer(s)
add_tb(s, 0.4, 1.26, 12.5, 0.32,
"Moderator presents each scenario — each panelist gives a one-word verdict: USE IT | DON'T USE IT | MAYBE",
size=12, bold=True, color=DARK_NAVY, italic=True, margin_top=0)
scenarios = [
("1", "Morbidly Obese Patient",
"BMI 55, elective hernia repair, clean field. No prior mesh. Technically achievable fascial closure.",
"Hotly debated — obesity ↑ seroma/SSI risk but Phasix avoids long-term mesh complications of permanent implant"),
("2", "Antibiotic Allergy",
"Known allergy to tetracycline or kanamycin sulfate. Manufacturing process uses both antibiotics.",
"Formal WARNING — safety in hypersensitive patients unknown. DO NOT USE without allergy workup."),
("3", "Bridging Repair",
"Large defect — fascial closure is NOT possible. Mesh would be the sole structural element permanently.",
"FORMAL CONTRAINDICATION — Phasix is NOT for use where permanent wound support is required."),
("4", "Parastomal Hernia",
"Permanent structural support needed at stoma site for the patient's lifetime.",
"Generally avoid — lifelong mechanical demand cannot be met by a 12-18 month scaffold alone."),
("5", "Active Malignancy",
"Bowel resection for cancer — incidental hernia repair. Phasix ST would be intraperitoneal.",
"Phasix ST formal warning: safety near existing/excised cancer NOT established. Exercise caution."),
]
sy = 1.68
for num, title, scenario, verdict in scenarios:
add_rect(s, 0.35, sy, 12.65, 1.00, fill_color=WHITE,
line_color=RGBColor(0xCC,0xD8,0xEC), line_width=Pt(0.8))
# number
add_rect(s, 0.35, sy, 0.52, 1.00, fill_color=DARK_NAVY)
add_tb(s, 0.35, sy+0.22, 0.52, 0.55, num, size=16, bold=True,
color=WHITE, align=PP_ALIGN.CENTER, margin_top=0, margin_bottom=0,
v_anchor=MSO_ANCHOR.MIDDLE)
# title + scenario
add_tb(s, 0.95, sy+0.05, 5.8, 0.32, title, size=12, bold=True,
color=DARK_NAVY, margin_top=0, margin_bottom=0)
add_tb(s, 0.95, sy+0.40, 5.8, 0.52, scenario, size=10.5,
color=MID_TEXT, wrap=True, margin_top=0, margin_bottom=0)
# verdict
add_rect(s, 6.9, sy+0.12, 6.0, 0.76, fill_color=RGBColor(0xF0,0xF4,0xFB))
add_tb(s, 7.05, sy+0.14, 5.8, 0.66, "Panel context: " + verdict,
size=10.5, color=DARK_TEXT, italic=True, wrap=True,
margin_left=0.05, margin_top=0.03)
sy += 1.06
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 10 — PHASIX vs ALTERNATIVES COMPARISON
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, LIGHT_GREY)
top_bar(s, "Phasix vs. Alternative Mesh Options", subtitle="Helping the Panel Frame the Choice for Each Patient")
footer(s)
headers = ["Feature", "Phasix™ (P4HB)", "Permanent Synthetic\n(PP/PVDF)", "Biological Mesh\n(porcine/bovine)", "Composite Mesh\n(PP + absorbable)"]
col_w = [2.2, 2.5, 2.5, 2.6, 2.4]
col_x = [0.3, 2.55, 5.1, 7.65, 10.3]
header_colors = [DARK_NAVY, MID_BLUE, RED, GREEN, TEAL]
rows = [
["Resorption", "Full (12-18 mo)", "None (permanent)", "Full / partial", "Partial"],
["Tissue ingrowth", "Rapid + strong", "Good", "Variable", "Good (PP layer)"],
["Infection risk", "Low – resorbs", "Biofilm risk", "Low – degrades", "Moderate"],
["Cost", "High", "Low", "Very High", "Moderate"],
["Contaminated field","Yes (evidence)", "Avoid", "Yes (standard)", "Caution"],
["Bridging repair", "NO (CI)", "Yes", "Yes (limited data)","Yes"],
["Permanent support","NO (CI)", "Yes", "Unreliable LT", "Yes (PP layer)"],
["Long-term data", "5 yr (growing)", "Extensive", "Mixed RCT results", "Moderate"],
]
# Header row
hx = 0.3
for i, (hdr, hw, hcol) in enumerate(zip(headers, col_w, header_colors)):
add_rect(s, hx, 1.28, hw - 0.04, 0.52, fill_color=hcol)
add_tb(s, hx+0.08, 1.30, hw-0.16, 0.48, hdr, size=11, bold=True,
color=WHITE, align=PP_ALIGN.CENTER, wrap=True,
margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
hx += hw
# Data rows
row_y = 1.82
for ri, row in enumerate(rows):
bg = WHITE if ri % 2 == 0 else RGBColor(0xEE, 0xF3, 0xFA)
rx = 0.3
for ci, (cell, cw) in enumerate(zip(row, col_w)):
add_rect(s, rx, row_y, cw - 0.04, 0.56, fill_color=bg,
line_color=RGBColor(0xD0,0xD8,0xE8), line_width=Pt(0.5))
cell_color = DARK_TEXT
if ci == 1 and cell in ["NO (CI)", "Low – resorbs", "High", "Rapid + strong"]:
cell_color = MID_BLUE
if cell in ["NO (CI)", "Avoid", "Biofilm risk"]:
cell_color = RED
add_tb(s, rx+0.10, row_y+0.06, cw-0.22, 0.44, cell, size=11,
color=cell_color, bold=(ci==0), align=PP_ALIGN.CENTER,
wrap=True, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
rx += cw
row_y += 0.58
# note
add_tb(s, 0.35, 6.80, 12.6, 0.28,
"* CI = Contraindication per manufacturer labelling. LT = long term. Panel discussion: which mesh for which patient?",
size=10, color=MID_TEXT, italic=True, margin_top=0)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 11 — TECHNICAL TIPS & PLACEMENT PRINCIPLES
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, LIGHT_GREY)
top_bar(s, "Technical Principles — Placing Phasix Mesh", subtitle="Plane Selection · Fixation · Orientation · Phasix ST vs Standard")
footer(s)
# Left column
add_rect(s, 0.35, 1.28, 5.9, 5.72, fill_color=WHITE,
line_color=RGBColor(0xCC,0xD8,0xEC), line_width=Pt(1))
add_rect(s, 0.35, 1.28, 5.9, 0.40, fill_color=DARK_NAVY)
add_tb(s, 0.50, 1.30, 5.7, 0.36, "STANDARD PHASIX — PLACEMENT TIPS", size=12,
bold=True, color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
tips_left = [
("Preferred plane", "Retromuscular (Rives-Stoppa / TAPP) — best tissue coverage, lowest SSI exposure"),
("Overlap", "Minimum 3-5 cm overlap beyond fascial defect edge in all directions"),
("Fixation", "Absorbable tacks or sutures — non-permanent fixation preferred given mesh resorbs"),
("Orientation", "No specific orientation required for standard Phasix (no coating)"),
("Drain", "Closed-suction drain over mesh — reduces seroma in retromuscular plane"),
("Size selection", "Available up to 50×50 cm — choose generously; can be trimmed intraoperatively"),
("Closure", "Always achieve fascial closure — Phasix is NOT a bridging device"),
("Laparoscopic", "EU MDR data still evolving — discuss with team / ethics board pre-operatively"),
]
ty = 1.78
for key, val in tips_left:
add_rect(s, 0.38, ty, 5.84, 0.60, fill_color=RGBColor(0xF0,0xF4,0xFB))
add_tb(s, 0.50, ty+0.04, 1.65, 0.50, key+":", size=10.5, bold=True,
color=MID_BLUE, margin_top=0, margin_bottom=0)
add_tb(s, 2.20, ty+0.04, 3.95, 0.54, val, size=10.5, color=DARK_TEXT,
wrap=True, margin_top=0, margin_bottom=0)
ty += 0.64
# Right column — Phasix ST
add_rect(s, 6.55, 1.28, 6.45, 5.72, fill_color=WHITE,
line_color=RGBColor(0xCC,0xD8,0xEC), line_width=Pt(1))
add_rect(s, 6.55, 1.28, 6.45, 0.40, fill_color=TEAL)
add_tb(s, 6.70, 1.30, 6.2, 0.36, "PHASIX™ ST — SUTUREABLE + ANTI-ADHESION", size=12,
bold=True, color=WHITE, margin_top=0, margin_bottom=0, v_anchor=MSO_ANCHOR.MIDDLE)
add_tb(s, 6.70, 1.75, 6.2, 0.38,
"Phasix ST = P4HB scaffold + ePTFE anti-adhesion barrier coating on one side",
size=11.5, bold=True, color=DARK_NAVY, wrap=True, margin_left=0.05, margin_top=0)
st_tips = [
("Indication", "Intraperitoneal (IPOM) or sublay where visceral contact is anticipated"),
("Orientation CRITICAL", "Coated ePTFE side MUST face bowel / sensitive organs. NEVER reverse."),
("Sutureability", "Can be sutured — useful for complex reconstructions needing precise fixation"),
("Hiatal use", "Specifically indicated for hiatal hernia reinforcement"),
("Cancer proximity", "NOT for use near existing or excised malignancy — formal safety warning"),
("Contamination", "Some evidence for CDC III use; CDC IV data more limited than standard Phasix"),
("Antibiotic warning", "Same manufacturing antibiotic exposure as standard Phasix — check allergy status"),
]
sty = 2.22
for key, val in st_tips:
add_rect(s, 6.58, sty, 6.38, 0.62, fill_color=RGBColor(0xF0,0xFB,0xF9))
add_tb(s, 6.70, sty+0.04, 1.65, 0.52, key+":", size=10.5, bold=True,
color=TEAL, margin_top=0, margin_bottom=0)
add_tb(s, 8.40, sty+0.04, 4.4, 0.56, val, size=10.5, color=DARK_TEXT,
wrap=True, margin_top=0, margin_bottom=0)
sty += 0.66
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 12 — TAKE-HOME MESSAGES & CONSENSUS
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, DARK_NAVY)
add_rect(s, 0, 0, 13.333, 0.06, fill_color=TEAL) # thin top stripe
add_tb(s, 0.5, 0.18, 12.0, 0.80,
"Panel Consensus — Take-Home Messages",
size=30, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
add_tb(s, 0.5, 1.00, 12.0, 0.36,
"What every surgeon should leave this session knowing about Phasix mesh",
size=15, color=TEAL, align=PP_ALIGN.LEFT)
add_rect(s, 0.4, 1.42, 12.55, 0.04, fill_color=TEAL)
messages = [
("1", "Phasix is a time-limited scaffold — not a permanent implant. The body must do the final work after 12-18 months."),
("2", "The contaminated field is where bioresorbable mesh earns its place. Evidence supports use in Grade 3 VHWG — and cautiously in Grade 4."),
("3", "The formal contraindication is clear: NEVER use where permanent wound/organ support is the only structural element (bridging repair)."),
("4", "High-risk patients — obese, immunosuppressed, prior mesh failure — may benefit most from avoiding a permanent foreign body."),
("5", "Prophylactic use is a growing indication. 2025 data supports it, but patient selection and shared decision-making are essential."),
("6", "The right question is not 'Is Phasix good?' — the question is 'Is this the right patient, the right defect, and the right plane?'"),
]
my = 1.58
for num, msg in messages:
add_rect(s, 0.40, my, 12.55, 0.78, fill_color=RGBColor(0x12, 0x3B, 0x6E))
add_rect(s, 0.40, my, 0.52, 0.78, fill_color=TEAL)
add_tb(s, 0.41, my+0.14, 0.50, 0.50, num, size=18, bold=True,
color=DARK_NAVY, align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE,
margin_top=0, margin_bottom=0)
add_tb(s, 1.02, my+0.10, 11.8, 0.58, msg, size=13, color=WHITE,
wrap=True, margin_left=0.05, margin_top=0.04)
my += 0.84
footer(s, "Panel Discussion | Use of Phasix Mesh in Surgery | 2026")
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 13 — Q&A / CLOSING
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(blank_layout)
slide_bg(s, DARK_NAVY)
add_rect(s, 0, 0, 13.333, 0.06, fill_color=ORANGE)
# decorative right block
add_rect(s, 9.5, 0, 3.833, 7.5, fill_color=RGBColor(0x12, 0x3B, 0x6E))
add_rect(s, 11.2, 0, 2.133, 7.5, fill_color=RGBColor(0x17, 0x4E, 0x8A))
add_rect(s, 9.5, 0, 0.14, 7.5, fill_color=ORANGE)
add_tb(s, 0.6, 1.2, 8.5, 1.4,
"Questions & Discussion",
size=40, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
add_tb(s, 0.6, 2.7, 8.5, 0.50,
"The floor is open — one question per person, directed to any panelist",
size=16, color=TEAL, align=PP_ALIGN.LEFT)
add_rect(s, 0.6, 3.32, 7.5, 0.04, fill_color=TEAL)
provocations = [
"Has any panelist had a Phasix failure? What happened and what did you learn?",
"If this were your family member on the table — which mesh would you choose?",
"In 10 years, will bioresorbable mesh replace permanent synthetic as standard of care?",
"What is the one patient you would never use Phasix for, no matter what?",
]
pq = 3.50
for q in provocations:
add_tb(s, 0.6, pq, 8.6, 0.48, "Q " + q, size=13,
color=RGBColor(0xCC, 0xE0, 0xFF), wrap=True,
margin_left=0.05, margin_top=0.02)
add_rect(s, 0.6, pq+0.46, 7.5, 0.025, fill_color=RGBColor(0x25, 0x50, 0x80))
pq += 0.54
add_tb(s, 0.6, 5.80, 8.5, 0.40,
"Thank you to our distinguished panelists and to this outstanding audience.",
size=13, color=RGBColor(0xAA, 0xC4, 0xDF), italic=True, align=PP_ALIGN.LEFT)
add_tb(s, 9.7, 3.0, 3.2, 0.45, "PHASIX™ MESH", size=20, bold=True,
color=TEAL, align=PP_ALIGN.CENTER)
add_tb(s, 9.7, 3.55, 3.2, 0.35, "Natural · Not Permanent", size=12,
color=RGBColor(0xAA, 0xC4, 0xDF), align=PP_ALIGN.CENTER)
add_tb(s, 9.7, 3.95, 3.2, 0.35, "Proven Results", size=12,
color=RGBColor(0xAA, 0xC4, 0xDF), align=PP_ALIGN.CENTER)
add_tb(s, 9.7, 4.50, 3.2, 0.35, "P4HB Bioresorbable", size=11,
color=RGBColor(0x88, 0xAA, 0xCC), align=PP_ALIGN.CENTER)
add_tb(s, 9.7, 4.90, 3.2, 0.35, "12-18 Month Scaffold", size=11,
color=RGBColor(0x88, 0xAA, 0xCC), align=PP_ALIGN.CENTER)
add_tb(s, 9.7, 5.30, 3.2, 0.35, "Panel Discussion 2026", size=11,
color=RGBColor(0x88, 0xAA, 0xCC), align=PP_ALIGN.CENTER)
footer(s, "Panel Discussion | Use of Phasix Mesh in Surgery | 2026")
# ════════════════════════════════════════════════════════════════════════════
# SAVE
# ════════════════════════════════════════════════════════════════════════════
out_path = "/tmp/workspace/phasix-panel/Phasix_Mesh_Panel_Discussion.pptx"
buf = BytesIO()
prs.save(buf)
with open(out_path, "wb") as f:
f.write(buf.getvalue())
print(f"Saved: {out_path}")
print(f"Slides: {len(prs.slides)}")
cd /tmp/workspace/phasix-panel && python build_ppt.py 2>&1
Phasix Mesh Panel Discussion
Presentation · PPTX
| # | Slide | Content |
|---|---|---|
| 1 | Title Slide | Professional cover with Phasix branding, navy/teal design |
| 2 | Panel Agenda | Full 8-segment timeline with duration bars |
| 3 | What is Phasix? | P4HB properties table + 4 key clinical statistics with colour-coded stat cards |
| 4 | Indications & Contraindications | Green/red/orange three-panel layout with all official warnings |
| 5 | Case 1: Contaminated Field | Case card + evidence snapshot (5-yr trial data) + panel discussion points |
| 6 | Case 2: High-Risk Patient | Case card + 4 risk factor boxes (BMI, steroids, Crohn's, prior mesh) + panel prompts |
| 7 | Case 3: Prophylactic Use | Case card + 3-column debate (For / Against / Expert considerations) |
| 8 | Case 4: Pregnancy After AWR | Case card + 2026 literature highlight + 6-row Q&A grid |
| 9 | Contraindications Rapid-Fire | All 5 scenarios with numbered cards and panel context verdicts |
| 10 | Phasix vs. Alternatives | Full comparison table: P4HB vs. PP/PVDF vs. Biological vs. Composite |
| 11 | Technical Principles | Standard Phasix placement tips + Phasix ST orientation warnings |
| 12 | Take-Home Messages | 6 consensus statements on dark navy with teal accent cards |
| 13 | Q&A / Closing | Provocative final questions, closing acknowledgement |
See now the set of questions have changed. I am uploading it
The title of panel discussion is “complex cases, complex choices. Phasix mesh”
python3 -c " from docx import Document doc = Document('/tmp/workspace/attachments/b7d60c62-d7c7-442f-ad17-4b5c398576f9/Dr. Ashish Vashisth.docx') for p in doc.paragraphs: if p.text.strip(): print(f'[{p.style.name}] {p.text}') "
FORMAT KEY [MOD] = Your lines | [DIRECT →] = Directed to a specific panelist | [OPEN] = All panelists | [AUDIENCE] = Room interaction | (italics) = stage direction / timing note
"What are the most important factors influencing your mesh choice today - defect size, contamination level, patient comorbidities, tissue quality, recurrence risk, location of implantation, or cost?"
"Which single factor do YOU weight most heavily when choosing mesh?" (Defect size / Contamination / Patient comorbidity / Cost)
"Historically, surgeons often chose between permanent synthetic and biologic meshes. How has the emergence of bioresorbable meshes changed this treatment algorithm?"
"Where do you see bioresorbable meshes fitting on the spectrum between permanent synthetics and biologics? What patient populations stand to benefit the most?"
"Is the future of mesh selection moving toward a risk-stratified approach rather than a one-mesh-for-all strategy? If so, how should surgeons build that decision framework?"
"Hiatal hernia repair remains associated with concerns about recurrence and mesh-related complications at the hiatus. How do you currently approach reinforcement of large hiatal defects?"
"Can bioresorbable meshes fill the current therapeutic gap in clean-contaminated cases where surgeons may hesitate to use traditional permanent synthetic meshes yet seek more durable support than biologics provide?"
"As surgeons increasingly perform concomitant procedures - ventral hernia repair with cholecystectomy, appendectomy, bariatric surgery, or colorectal procedures - how should mesh selection evolve in these settings?"
"What characteristics would an ideal prophylactic mesh possess for stoma-site reinforcement, and do bioresorbable meshes have a role in reducing long-term mesh-related concerns in these patients?"
"If you were mentoring young hernia surgeons today, what practical framework would you teach for selecting the right mesh for the right patient - rather than focusing on a specific technology?"
| Q# | Core Topic | Directed To | Time |
|---|---|---|---|
| 1 | Mesh selection factors | OPEN → E | 3-8 min |
| 2 | Algorithm change with bioresorbable | A, D | 8-13 min |
| 3 | Spectrum: synthetic → biologic | OPEN → B | 13-18 min |
| 4 | Risk-stratified framework | E, C | 18-23 min |
| 5 | Hiatal hernia reinforcement | C, D | 23-28 min |
| 6 | Therapeutic gap in contamination | OPEN → A | 28-32 min |
| 7 | Concomitant procedures | B, C | 32-36 min |
| 8 | Prophylactic stoma-site mesh | B, D | 36-40 min |
| 9 | Framework for young surgeons | ALL | 40-44 min |
~/phasix-panel/build_ppt_v2.py
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from io import BytesIO
# ── Palette ─────────────────────────────────────────────────────────────────
NAVY = RGBColor(0x0D, 0x2B, 0x4E)
NAVY2 = RGBColor(0x12, 0x3B, 0x6E)
MID_BLUE = RGBColor(0x1A, 0x5E, 0x9E)
TEAL = RGBColor(0x00, 0x96, 0x9E)
ORANGE = RGBColor(0xE8, 0x6C, 0x1A)
LIGHT_BG = RGBColor(0xF2, 0xF5, 0xF9)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK_TEXT = RGBColor(0x1C, 0x1C, 0x2E)
MID_TEXT = RGBColor(0x3A, 0x3A, 0x5C)
GREEN = RGBColor(0x1A, 0x8A, 0x4A)
RED = RGBColor(0xC0, 0x23, 0x23)
GOLD = RGBColor(0xC8, 0x9A, 0x0A)
PALE_BLUE = RGBColor(0xE8, 0xF0, 0xFA)
PALE_TEAL = RGBColor(0xE0, 0xF7, 0xF8)
PALE_ORANGE = RGBColor(0xFF, 0xF3, 0xE4)
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
BL = prs.slide_layouts[6] # blank
# ── Helpers ──────────────────────────────────────────────────────────────────
def bg(slide, color=LIGHT_BG):
f = slide.background.fill; f.solid(); f.fore_color.rgb = color
def rect(slide, x, y, w, h, fill=None, line=None, lw=Pt(0)):
sh = slide.shapes.add_shape(1, Inches(x), Inches(y), Inches(w), Inches(h))
sh.fill.solid() if fill else sh.fill.background()
if fill: sh.fill.fore_color.rgb = fill
if line:
sh.line.color.rgb = line; sh.line.width = lw if lw else Pt(1.5)
else:
sh.line.fill.background()
return sh
def tb(slide, x, y, w, h, text, size=14, bold=False, color=DARK_TEXT,
align=PP_ALIGN.LEFT, italic=False, wrap=True,
va=MSO_ANCHOR.TOP, ml=0.08, mt=0.04, mr=0.08, mb=0.04):
t = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = t.text_frame; tf.word_wrap = wrap; tf.vertical_anchor = va
tf.margin_left=Inches(ml); tf.margin_right=Inches(mr)
tf.margin_top=Inches(mt); tf.margin_bottom=Inches(mb)
p = tf.paragraphs[0]; p.alignment = align
r = p.add_run(); r.text = text
r.font.name="Calibri"; r.font.size=Pt(size)
r.font.bold=bold; r.font.italic=italic; r.font.color.rgb=color
return t, tf
def para(tf, text, size=13, bold=False, color=DARK_TEXT,
align=PP_ALIGN.LEFT, italic=False, sp=Pt(5), bullet=None):
p = tf.add_paragraph(); p.alignment = align; p.space_before = sp
r = p.add_run()
r.text = (bullet + " " + text) if bullet else text
r.font.name="Calibri"; r.font.size=Pt(size)
r.font.bold=bold; r.font.italic=italic; r.font.color.rgb=color
def header(slide, title, sub=None):
rect(slide, 0, 0, 13.333, 1.10, fill=NAVY)
rect(slide, 0, 1.10, 13.333, 0.055, fill=TEAL)
tb(slide, 0.4, 0.10, 12.5, 0.90, title, size=28, bold=True, color=WHITE,
va=MSO_ANCHOR.MIDDLE, mt=0, mb=0)
if sub:
tb(slide, 0.4, 0.82, 12.5, 0.32, sub, size=13, color=TEAL, mt=0, mb=0)
def footer(slide, text="Complex Cases, Complex Choices. Phasix Mesh. | Panel Discussion 2026"):
rect(slide, 0, 7.22, 13.333, 0.28, fill=NAVY)
tb(slide, 0.4, 7.24, 12.5, 0.24, text, size=9.5,
color=RGBColor(0xAA,0xC4,0xDF), align=PP_ALIGN.CENTER, mt=0, mb=0)
def q_pill(slide, num, x=0.40, y=1.22):
"""Question number pill."""
rect(slide, x, y, 0.72, 0.38, fill=ORANGE)
tb(slide, x, y, 0.72, 0.38, f"Q{num}", size=14, bold=True,
color=WHITE, align=PP_ALIGN.CENTER, va=MSO_ANCHOR.MIDDLE, mt=0, mb=0)
def q_box(slide, question_text, x=1.22, y=1.22, w=11.72, h=0.70):
"""The question itself in a styled box."""
rect(slide, x, y, w, h, fill=PALE_ORANGE, line=ORANGE, lw=Pt(1.5))
tb(slide, x+0.12, y+0.06, w-0.22, h-0.10,
question_text, size=13.5, bold=True, color=DARK_TEXT,
wrap=True, mt=0, mb=0)
def panel_box(slide, x, y, w, h, title, items, hdr_color=MID_BLUE,
bg_color=WHITE, bullet="▸"):
rect(slide, x, y, w, h, fill=bg_color,
line=RGBColor(0xCC,0xD8,0xEC), lw=Pt(0.8))
rect(slide, x, y, w, 0.36, fill=hdr_color)
tb(slide, x+0.12, y+0.02, w-0.20, 0.32, title.upper(), size=11,
bold=True, color=WHITE, mt=0, mb=0, va=MSO_ANCHOR.MIDDLE)
t, tf = tb(slide, x+0.14, y+0.44, w-0.26, h-0.52,
items[0], size=11.5, color=DARK_TEXT, wrap=True,
ml=0.04, mt=0.02)
for item in items[1:]:
para(tf, item, size=11.5, color=DARK_TEXT, sp=Pt(5), bullet=bullet)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 1 — TITLE
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(BL)
bg(s, NAVY)
rect(s, 10.2, 0, 3.133, 7.5, fill=NAVY2)
rect(s, 11.6, 0, 1.733, 7.5, fill=RGBColor(0x17,0x4E,0x8A))
rect(s, 0, 0, 0.18, 7.5, fill=TEAL)
rect(s, 0, 0, 0.06, 7.5, fill=ORANGE)
tb(s, 0.55, 0.80, 9.4, 0.60,
"PANEL DISCUSSION", size=14, bold=True, color=TEAL)
# Main title split on two lines
tb(s, 0.55, 1.38, 9.4, 1.20,
"Complex Cases,", size=42, bold=True, color=WHITE)
tb(s, 0.55, 2.52, 9.4, 1.00,
"Complex Choices.", size=42, bold=True, color=WHITE)
rect(s, 0.55, 3.62, 9.0, 0.07, fill=ORANGE)
tb(s, 0.55, 3.82, 9.0, 0.60,
"Phasix™ Mesh", size=30, bold=True, color=TEAL)
tb(s, 0.55, 4.55, 9.0, 0.40,
"Bioresorbable P4HB Mesh · Expert Panel · 40-45 Minutes",
size=14, color=RGBColor(0xAA,0xC4,0xDF))
tb(s, 0.55, 5.10, 5.5, 0.36,
"5 Renowned Panelists · 9 Clinical Questions · July 2026",
size=12, color=RGBColor(0x88,0xAA,0xCC))
# Right panel labels
for i, txt in enumerate([
("PHASIX™", 22, TEAL, 2.80),
("Poly-4-Hydroxybutyrate", 11, RGBColor(0x88,0xAA,0xCC), 3.38),
("Fully Bioresorbable", 11, RGBColor(0x88,0xAA,0xCC), 3.72),
("12-18 Month Scaffold", 11, RGBColor(0x88,0xAA,0xCC), 4.06),
("P4HB → CO₂ + H₂O", 11, RGBColor(0x88,0xAA,0xCC), 4.40),
]):
label, sz, col, yt = txt
tb(s, 10.3, yt, 2.8, 0.38, label, size=sz, bold=(sz>15),
color=col, align=PP_ALIGN.CENTER, mt=0, mb=0)
footer(s)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 2 — PANEL OVERVIEW / AGENDA
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(BL)
bg(s)
header(s, "Panel Overview — 9 Questions, 40-45 Minutes",
sub="Structured discussion framework for the moderator and panelists")
footer(s)
questions = [
("Q1", "Mesh Selection Factors", "3-8 min", "Defect size · Contamination · Comorbidities · Cost"),
("Q2", "Treatment Algorithm Change", "8-13 min", "Impact of bioresorbable mesh on the synthetic vs. biologic binary"),
("Q3", "Spectrum Positioning", "13-18 min", "Where does bioresorbable mesh fit — and which patients benefit most?"),
("Q4", "Risk-Stratified Framework", "18-23 min", "Building a practical decision framework for mesh selection"),
("Q5", "Hiatal Hernia Reinforcement", "23-28 min", "Recurrence, complications, Phasix ST at the hiatus"),
("Q6", "Therapeutic Gap", "28-32 min", "Clean-contaminated cases: filling the space between synthetic and biologic"),
("Q7", "Concomitant Procedures", "32-36 min", "Hernia + cholecystectomy / bariatric / colorectal — evolving mesh choice"),
("Q8", "Prophylactic Stoma Mesh", "36-40 min", "Ideal characteristics · Bioresorbable at stoma site · CI debate"),
("Q9", "Framework for Young Surgeons", "40-44 min", "First principles: right patient · right defect · right plane · right time"),
]
ry = 1.26
for num, title, timing, desc in questions:
i = questions.index((num, title, timing, desc))
bg_row = WHITE if i % 2 == 0 else PALE_BLUE
rect(s, 0.30, ry, 12.75, 0.56, fill=bg_row)
rect(s, 0.30, ry, 0.62, 0.56, fill=MID_BLUE)
tb(s, 0.30, ry+0.08, 0.62, 0.40, num, size=13, bold=True,
color=WHITE, align=PP_ALIGN.CENTER, mt=0, mb=0, va=MSO_ANCHOR.MIDDLE)
tb(s, 1.02, ry+0.08, 3.80, 0.36, title, size=12, bold=True,
color=DARK_TEXT, mt=0, mb=0)
rect(s, 5.00, ry+0.10, 1.35, 0.32, fill=TEAL)
tb(s, 5.00, ry+0.10, 1.35, 0.32, timing, size=10.5, bold=True,
color=WHITE, align=PP_ALIGN.CENTER, va=MSO_ANCHOR.MIDDLE, mt=0, mb=0)
tb(s, 6.48, ry+0.10, 6.45, 0.36, desc, size=11, color=MID_TEXT, mt=0, mb=0)
ry += 0.58
# ════════════════════════════════════════════════════════════════════════════
# SLIDES 3-11 — ONE SLIDE PER QUESTION
# ════════════════════════════════════════════════════════════════════════════
slide_data = [
# (Q#, title, subtitle, question_text, left_title, left_items, right_title, right_items, context_line)
(
1,
"Mesh Selection — What Factors Drive Your Choice?",
"Q1 · Factors: Defect Size · Contamination · Comorbidities · Tissue Quality · Recurrence Risk · Cost",
"What are the most important factors influencing your mesh choice today: defect size, contamination level, patient comorbidities, tissue quality, recurrence risk, location of implantation, or cost?",
"Key Influencing Factors",
[
"Defect size & location — W1/W2/W3 (EHS) changes repair strategy fundamentally",
"Contamination class — CDC I-IV drives synthetic vs. bioresorbable vs. biologic decision",
"Patient comorbidities — BMI, diabetes, steroids, prior mesh failure, immune status",
"Tissue quality — poor fascia = poor scaffold; bioresorbable mesh relies on neotissue",
"Recurrence risk — VHWG grading, previous repairs, connective tissue disorders",
"Location — retromuscular vs. IPOM vs. hiatal demands different mechanical properties",
"Cost — bioresorbable mesh is significantly more expensive than permanent synthetic",
],
"Moderator Prompts",
[
"Is mesh selection truly algorithmic — or expert pattern recognition?",
"Poll the room: which single factor weighs most heavily in your practice?",
"Ask each panelist: top two factors, ranked — 30 seconds each",
"Push Panelist E: is there a validated framework, or dressed-up intuition?",
"Probe: does the factor weighting change between elective and emergency cases?",
],
"AUDIENCE POLL: Which factor weighs most heavily? Defect size / Contamination / Comorbidity / Cost"
),
(
2,
"How Has Bioresorbable Mesh Changed the Algorithm?",
"Q2 · The Treatment Algorithm: Permanent Synthetic → Bioresorbable → Biologic",
"Historically, surgeons often chose between permanent synthetic and biologic meshes. How has the emergence of bioresorbable meshes changed this treatment algorithm?",
"The Old Binary",
[
"PERMANENT SYNTHETIC (PP/PVDF): Cheap, durable, well-evidenced — but biofilm risk, chronic pain, mesh-related complications up to 4.5% at 5 years",
"BIOLOGIC: Expensive, variable remodelling, inconsistent long-term results — but tolerated in contaminated fields",
"The gap: clean-contaminated fields where synthetic is too risky and biologic too unreliable",
"Entry of P4HB bioresorbable mesh: third lane — temporary scaffold + tissue remodelling",
"Phasix resorbs 12-18 months → breakdown to CO₂ + H₂O via Krebs cycle",
"5-yr trial: 15.9% recurrence in Grade 3 VHWG · No explantations required",
],
"Discussion Points",
[
"Panelist A: Has your personal algorithm actually changed in daily practice?",
"Panelist D: Does the platform (lap/robotic) affect mesh choice?",
"Key tension: EU MDR data for laparoscopic Phasix still evolving",
"Does bioresorbable mesh REPLACE one of the two, or ADD a third option?",
"When would you still choose permanent synthetic over Phasix in a clean field?",
"When would you still choose biologic over Phasix in a contaminated field?",
],
"DATA POINT: Traditional contaminated-field recurrence up to 40% vs. Phasix trial 15.9% at 5 years"
),
(
3,
"Where Does Bioresorbable Mesh Fit on the Spectrum?",
"Q3 · Spectrum: Permanent Synthetic ←→ Bioresorbable ←→ Biologic · Patient Population Fit",
"Where do you see bioresorbable meshes fitting on the spectrum between permanent synthetics and biologics? What patient populations stand to benefit the most?",
"The Spectrum",
[
"Permanent synthetic: proven long-term, low cost, high infection/chronic pain risk",
"Bioresorbable (Phasix): time-limited scaffold, 12-18 months, tissue remodelling",
"Biologic: degradable, immunologically inert, inconsistent, very expensive",
"Phasix sits CLOSEST to permanent synthetic in mechanical performance during resorption",
"Key distinction: bioresorbable ≠ biologic — P4HB is NOT derived from animal tissue",
"After resorption: success depends entirely on quality of neotissue / collagen scaffold",
],
"Ideal Patient Profile for Phasix",
[
"Age 35-65, reasonable tissue quality, no severe collagen disorders",
"Contaminated or clean-contaminated field (CDC II-III) — primary use case",
"Prior permanent mesh infection / explantation — avoids re-seeding risk",
"Concurrent GI procedures (bowel resection, stoma formation)",
"Patient seeking to avoid lifetime permanent implant (reproductive age, active lifestyle)",
"Panelist B: describe your 'archetype' Phasix patient in one sentence",
],
"PANEL ROUND: If permanent synthetic = left end, biologic = right end — where does Phasix sit on the dial?"
),
(
4,
"Is Risk-Stratified Mesh Selection the Future?",
"Q4 · Decision Framework · Risk Stratification · Practical Implementation",
"Is the future of mesh selection moving toward a risk-stratified approach rather than a one-mesh-for-all strategy? If so, how should surgeons build that decision framework?",
"Building the Framework",
[
"STEP 1 — Grade the defect: EHS classification (W1/W2/W3) + VHWG grade (1-4)",
"STEP 2 — Grade the wound: CDC wound class (I-IV) drives infection risk",
"STEP 3 — Profile the patient: BMI, DM, steroids, immune status, tissue quality",
"STEP 4 — Define the goal: reinforcement only vs. bridging vs. prophylaxis",
"STEP 5 — Plane selection: retromuscular / IPOM / onlay — mesh properties must match",
"STEP 6 — Choose mesh: permanent / bioresorbable / biologic based on above",
"KEY RULE: Bioresorbable only where fascial closure is achievable (no bridging)",
],
"Moderator Prompts",
[
"Panelist E: walk through the full framework variables — 2 minutes",
"Panelist C: how do you operationalise this in a busy unit at the bedside?",
"Is a written protocol teachable — or does it only come with operative volume?",
"Audience poll: who uses a formal institutional protocol vs. informal judgment?",
"Key debate: is VHWG grading or CDC wound class the more important variable?",
"Where does cost fit in the framework for a public vs. private healthcare system?",
],
"KEY PRINCIPLE: One-mesh-for-all is the fastest route to a one-complication-for-all outcome"
),
(
5,
"Hiatal Hernia — How Do You Reinforce Large Defects?",
"Q5 · Hiatal Hernia · Mesh at the Hiatus · Recurrence · Phasix ST",
"Hiatal hernia repair remains associated with concerns about recurrence and mesh-related complications at the hiatus. How do you currently approach reinforcement of large hiatal defects?",
"The Problem at the Hiatus",
[
"Recurrence after large hiatal repair: up to 25-30% without mesh reinforcement",
"Permanent synthetic mesh at hiatus: erosion, stricture, dysphagia — serious complications",
"Biologic mesh at hiatus: variable results, expensive, concerns about long-term durability",
"Phasix ST: P4HB scaffold + ePTFE anti-adhesion coating — indicated for hiatal repair",
"Phasix ST: coated side MUST face oesophagus/viscera — orientation is critical",
"Theoretical advantage: resorbs before chronic erosion / stricture can develop",
"Still evolving: long-term data on bioresorbable mesh at hiatus limited to date",
],
"Discussion Points",
[
"Panelist C: personal approach to large (>5 cm) hiatal defects — cruroplasty alone vs. mesh?",
"Panelist D: fixation challenges at the hiatus — mobile crura + bioresorbable mesh?",
"Panel rapid round: size threshold for reinforcement — one line each",
"What happens after Phasix resorbs at the hiatus — is residual crura repair enough?",
"Phasix ST warning: NOT for proximity to excised/existing cancer — relevant in fundoplication for Barrett's?",
"Robotic hiatal repair: does the approach change the mesh choice?",
],
"PHASIX ST: ePTFE anti-adhesion barrier · Coated side faces viscera · Indicated for hiatal hernia"
),
(
6,
"Can Bioresorbable Mesh Fill the Therapeutic Gap?",
"Q6 · Clean-Contaminated Cases · Synthetic Too Risky · Biologic Too Expensive · Phasix in the Middle",
"Can bioresorbable meshes fill the current therapeutic gap in clean-contaminated cases where surgeons may hesitate to use traditional permanent synthetic meshes yet seek more durable support than biologics provide?",
"The Therapeutic Gap",
[
"CDC Grade II-III: permanent synthetic = biofilm risk; biologic = cost + variable outcomes",
"Gap exists for: bowel resection + hernia, stoma creation, enterotomy, contaminated AWR",
"Phasix evidence in contaminated field:",
" · 5-yr VHWG Grade 3: 15.9% recurrence, no mesh explantations (Ann Surg Open 2023)",
" · >85% CDC IV patients did NOT require re-repair at follow-up (2025 multi-institution)",
" · SSOPI rate ~35.4% in CDC IV — acceptable in this high-risk population",
" · Only 1 mesh infection requiring excision in 40+ CDC IV cases",
"P4HB: preclinical superiority to synthetic mesh vs. Staph. aureus colonisation",
],
"Honest Debate Points",
[
"Is the 'therapeutic gap' real — or a marketing narrative? Panel: honest verdict",
"Panelist A: 15.9% recurrence at 5 years in Grade 3 — success or normalising failure?",
"Compare: permanent mesh in clean field = <5% recurrence at 5 years",
"Is the value proposition durability, or avoidance of chronic mesh complications?",
"Cost-effectiveness: Phasix >> synthetic. Is the gap worth the price premium?",
"Would you use Phasix in Grade IV (faecal contamination)? One-word panel verdict.",
],
"EVIDENCE: Pooled recurrence 4% (meta-analysis, 95% CI 0-12%) · Pooled complication rate 50% (95% CI 27-72%)"
),
(
7,
"Concomitant Procedures — How Should Mesh Choice Evolve?",
"Q7 · Hernia + Cholecystectomy / Appendectomy / Bariatric / Colorectal",
"As surgeons increasingly perform concomitant procedures such as ventral hernia repair with cholecystectomy, appendectomy, bariatric surgery, or colorectal procedures, how should mesh selection evolve in these settings?",
"Common Concomitant Scenarios",
[
"Hernia + cholecystectomy / appendectomy: field class changes if spillage occurs — be prepared",
"Hernia + colorectal resection: field upgrades to CDC II-III minimum; bowel entry = CDC III",
"Hernia + bariatric (sleeve/bypass): clean field BUT massive future weight loss changes abdominal wall mechanics",
"Hernia + stoma formation: prophylactic parastomal mesh opportunity (→ Q8)",
"Hernia + complex AWR (TAR/Rives): component separation + mesh plane determines choice",
"Principle: plan for the WORST anticipated field class before incision",
],
"Mesh Strategy by Procedure",
[
"Colorectal + hernia: bioresorbable preferred if bowel opened — avoids permanent implant in contaminated field",
"Bariatric + hernia: consider permanent synthetic (patient will have permanent mechanical demand as weight drops)",
"Bariatric Q: does BMI falling 45→28 change abdominal wall tension? Bioresorbable scaffold may benefit this transition period",
"Panelist B: sigmoid colectomy + umbilical hernia — your real intraoperative decision",
"Panelist C: sleeve gastrectomy + hiatal + ventral hernia — three meshes or one strategy?",
"Key teaching: change your mesh on the table if field class changes intraoperatively",
],
"RAPID ROUND: Concomitant colorectal + ventral hernia — what mesh? One line each panelist."
),
(
8,
"Prophylactic Stoma-Site Mesh — Bioresorbable Role?",
"Q8 · Ideal Mesh Characteristics · Parastomal Reinforcement · Bioresorbable vs. Permanent CI Debate",
"What characteristics would an ideal prophylactic mesh possess for stoma-site reinforcement, and do bioresorbable meshes have a role in reducing long-term mesh-related concerns in these patients?",
"Ideal Prophylactic Stoma Mesh",
[
"Must accommodate stomal aperture without stenosis or distortion",
"Must tolerate long-term mechanical loading — peristalsis, Valsalva, weight fluctuation",
"Low infection / erosion risk — permanent foreign body at bowel interface is high-stakes",
"Permanent synthetic: proven but erosion, stenosis, difficulty at reversal surgery",
"Biologic: low chronic risk but variable durability, very expensive",
"Bioresorbable (Phasix): resorbs before chronic erosion — but is temporary support enough?",
"CRITICAL TENSION: Phasix CI states 'not where permanent support required' — stoma is lifelong",
],
"Panel Debate",
[
"Panelist B: permanent synthetic vs. Phasix at stoma formation — your verdict",
"Panelist D: technical approach — how do you place prophylactic mesh at stoma laparoscopically?",
"The CI question: is prophylactic Phasix at a stoma site contraindicated by design?",
"Counterargument: if Phasix stimulates mature Type I collagen scaffold — does the tissue carry the load after resorption?",
"Putko 2026 (Front Surg): bioresorbable AWR survived 10-yr pregnancy follow-up — neotissue can hold",
"Panel verdict (one word each): Justified / Risky / Context-dependent",
],
"KEY CI: Phasix should NOT be used where PERMANENT wound or organ support is required — does this apply to a stoma site?"
),
(
9,
"What Framework Would You Teach Young Surgeons?",
"Q9 · First Principles · Mentoring · Right Patient · Right Defect · Right Plane · Right Time",
"If you were mentoring young hernia surgeons today, what practical framework would you teach for selecting the right mesh for the right patient rather than focusing on a specific technology?",
"The First Principles Framework",
[
"1. Understand the BIOLOGY first — what does this patient's tissue need to do after repair?",
"2. Grade everything — defect (EHS), wound (CDC), patient (VHWG) before picking any mesh",
"3. Fascial closure is non-negotiable — mesh is reinforcement, not replacement of anatomy",
"4. Match mesh life to patient need — bioresorbable for temporary scaffold; permanent for lifelong demand",
"5. The plane determines the mesh as much as the mesh determines the outcome",
"6. Cost is a real variable — train to justify the premium, not to avoid the conversation",
"7. When in doubt — ask what happens when this mesh fails, and plan for that scenario",
],
"Panelist Wisdom — One Minute Each",
[
"Panelist A: the single most important lesson from your complications",
"Panelist B: the case that changed how you think about mesh selection",
"Panelist C: the question you ask every patient before choosing mesh",
"Panelist D: the technical principle young surgeons underestimate most",
"Panelist E: what the evidence can and cannot tell us — and where judgment fills the gap",
"CLOSING: 'Right patient · Right defect · Right plane · Right time'",
],
"CLOSING SYNTHESIS: Mesh selection is a patient risk assessment translated into a material decision"
),
]
for (qn, title, sub, question, ltitle, litems, rtitle, ritems, context) in slide_data:
s = prs.slides.add_slide(BL)
bg(s)
header(s, title, sub=sub)
footer(s)
# Question pill + box
q_pill(s, qn)
q_box(s, question, x=1.22, y=1.20, w=11.72, h=0.72)
# Context strip
rect(s, 0.30, 2.02, 12.75, 0.32, fill=PALE_TEAL)
tb(s, 0.50, 2.04, 12.40, 0.28, context, size=10.5, bold=True,
color=RGBColor(0x00,0x60,0x65), italic=True, mt=0, mb=0)
# Two columns
col_y = 2.40
col_h = 4.65
# Left panel
panel_box(s, 0.30, col_y, 6.20, col_h,
ltitle, litems, hdr_color=MID_BLUE, bg_color=WHITE)
# Right panel
panel_box(s, 6.70, col_y, 6.35, col_h,
rtitle, ritems, hdr_color=TEAL, bg_color=PALE_BLUE)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 12 — KEY DATA REFERENCE
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(BL)
bg(s)
header(s, "Key Evidence Reference — Phasix Mesh Data",
sub="Clinical data points to support panel discussion")
footer(s)
stats = [
("4%", "Pooled recurrence rate", "Meta-analysis · Tran et al. Hernia 2024 · 95% CI: 0-12%", TEAL),
("15.9%", "5-year recurrence in Grade 3 VHWG", "Phasix Trial · Ann Surg Open 2023 · No mesh explantations", MID_BLUE),
(">85%", "Did NOT require re-repair", "CDC IV contaminated field · Multi-institution series 2025", GREEN),
("50%", "Pooled complication rate", "95% CI 27-72% — includes seromas · Not all require intervention", ORANGE),
("12-18m","Resorption timeline", "Hydrolysis → CO₂ + H₂O · Cleared by Krebs cycle", NAVY),
("0", "Mesh explantations at 5 yrs", "VHWG Grade 3 subgroup · Phasix Trial long-term arm", GREEN),
]
sx, sy = 0.30, 1.28
for i, (val, label, note, col) in enumerate(stats):
cx = sx + (i % 3) * 4.35
cy = sy + (i // 3) * 1.62
rect(s, cx, cy, 4.20, 1.50, fill=WHITE,
line=RGBColor(0xCC,0xD8,0xEC), lw=Pt(0.8))
rect(s, cx, cy, 0.20, 1.50, fill=col)
tb(s, cx+0.35, cy+0.12, 1.60, 0.72, val, size=30, bold=True,
color=col, mt=0, mb=0, va=MSO_ANCHOR.MIDDLE)
tb(s, cx+2.05, cy+0.12, 2.00, 0.38, label, size=11.5, bold=True,
color=DARK_TEXT, wrap=True, mt=0, mb=0)
tb(s, cx+2.05, cy+0.55, 2.00, 0.56, note, size=10, color=MID_TEXT,
italic=True, wrap=True, mt=0, mb=0)
# Sources
rect(s, 0.30, 4.60, 12.75, 1.10, fill=PALE_BLUE,
line=RGBColor(0xCC,0xD8,0xEC), lw=Pt(0.8))
tb(s, 0.50, 4.68, 12.40, 0.28, "KEY REFERENCES", size=11, bold=True,
color=MID_BLUE, mt=0, mb=0)
refs = [
"Van den Dop et al. Five-Year Follow-Up of a Slowly Resorbable Biosynthetic P4HB Mesh. Ann Surg Open 2023.",
"Tran DH et al. Use of poly-4-hydroxybutyrate (P4HB, Phasix™) mesh in ventral hernia repair: systematic review and meta-analysis. Hernia 2024;28:989-1004.",
"Bueno-Lledó J et al. Long-term results with biosynthetic absorbable P4HB mesh in ventral abdominal wall repair: multicentre analysis. Hernia 2024;28:1103-12.",
"Srivastava AK et al. Bio-resorbable P4HB mesh for abdominal wall reconstruction in high-risk patients and contaminated abdomen. Hernia 2025.",
]
ry2 = 5.00
for ref in refs:
tb(s, 0.50, ry2, 12.40, 0.28, "▸ " + ref, size=9.5, color=MID_TEXT,
mt=0, mb=0)
ry2 += 0.24
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 13 — CLOSING / Q&A
# ════════════════════════════════════════════════════════════════════════════
s = prs.slides.add_slide(BL)
bg(s, NAVY)
rect(s, 0, 0, 13.333, 0.08, fill=ORANGE)
rect(s, 9.8, 0, 3.533, 7.5, fill=NAVY2)
rect(s, 11.4, 0, 1.933, 7.5, fill=RGBColor(0x17,0x4E,0x8A))
rect(s, 9.8, 0, 0.12, 7.5, fill=ORANGE)
tb(s, 0.55, 1.00, 9.0, 0.50, "PANEL DISCUSSION", size=14, bold=True, color=TEAL)
tb(s, 0.55, 1.52, 9.0, 1.10, "Questions &\nDiscussion", size=38, bold=True, color=WHITE)
rect(s, 0.55, 2.72, 8.5, 0.06, fill=TEAL)
tb(s, 0.55, 2.88, 9.0, 0.40,
"The floor is open — one question per person, directed to any panelist",
size=14, color=TEAL)
provocations = [
"Has any panelist had a Phasix failure? What happened and what did you learn?",
"If this were your family member — which mesh would you choose, and why?",
"In 10 years, will bioresorbable mesh replace permanent synthetic as standard of care?",
"One word: would you use bioresorbable mesh in a Grade IV faecal contamination field?",
]
py = 3.42
for q in provocations:
tb(s, 0.55, py, 9.0, 0.44, "Q " + q, size=12.5,
color=RGBColor(0xCC,0xE0,0xFF), wrap=True, ml=0.05, mt=0.02)
rect(s, 0.55, py+0.42, 8.5, 0.022, fill=RGBColor(0x25,0x50,0x80))
py += 0.54
tb(s, 0.55, 5.62, 9.0, 0.40,
"Right patient · Right defect · Right plane · Right time",
size=14, bold=True, color=TEAL, italic=True)
tb(s, 0.55, 6.10, 9.0, 0.38,
"Thank you to our distinguished panelists and to this outstanding audience.",
size=12, color=RGBColor(0xAA,0xC4,0xDF), italic=True)
# Right panel
for txt, sz, col, yt in [
("PHASIX™", 22, TEAL, 2.50),
("Complex Cases", 13, RGBColor(0xAA,0xC4,0xDF), 3.10),
("Complex Choices", 13, RGBColor(0xAA,0xC4,0xDF), 3.48),
("Phasix Mesh", 16, WHITE, 3.92),
("Panel 2026", 11, RGBColor(0x88,0xAA,0xCC), 4.35),
]:
tb(s, 9.92, yt, 3.0, 0.44, txt, size=sz, bold=(sz>14),
color=col, align=PP_ALIGN.CENTER, mt=0, mb=0)
footer(s)
# ════════════════════════════════════════════════════════════════════════════
# SAVE
# ════════════════════════════════════════════════════════════════════════════
out = "/tmp/workspace/phasix-panel/Complex_Cases_Complex_Choices_Phasix.pptx"
buf = BytesIO()
prs.save(buf)
with open(out, "wb") as f:
f.write(buf.getvalue())
print(f"Saved: {out}")
print(f"Total slides: {len(prs.slides)}")
cd /tmp/workspace/phasix-panel && python build_ppt_v2.py 2>&1
Complex Cases Complex Choices Phasix
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | New title slide — "Complex Cases, Complex Choices. Phasix Mesh." |
| 2 | Panel agenda — all 9 questions with timing bars |
| 3 | Q1 — Mesh selection factors (defect, contamination, comorbidities, cost) |
| 4 | Q2 — How bioresorbable mesh changed the treatment algorithm |
| 5 | Q3 — Where Phasix sits on the synthetic-biologic spectrum + ideal patient profile |
| 6 | Q4 — Risk-stratified decision framework — step-by-step |
| 7 | Q5 — Hiatal hernia reinforcement + Phasix ST specifics |
| 8 | Q6 — The therapeutic gap in clean-contaminated cases |
| 9 | Q7 — Concomitant procedures (bariatric, colorectal, cholecystectomy) |
| 10 | Q8 — Prophylactic stoma-site mesh + the contraindication debate |
| 11 | Q9 — First-principles framework for young surgeons |
| 12 | Key evidence reference — 6 data stat cards + 4 citations |
| 13 | Q&A / Closing — provocative final questions + closing synthesis |
Give the ppt
Complex Cases Complex Choices Phasix
Presentation · PPTX
Give me the moderator script for the same
FORMAT KEY [MOD] = Your lines | [DIRECT →] = Directed to a specific panelist | [OPEN] = All panelists | [AUDIENCE] = Room interaction | (italics) = stage direction / timing note
"What are the most important factors influencing your mesh choice today - defect size, contamination level, patient comorbidities, tissue quality, recurrence risk, location of implantation, or cost?"
"Which single factor do YOU weight most heavily when choosing mesh?" (Defect size / Contamination / Patient comorbidity / Cost)
"Historically, surgeons often chose between permanent synthetic and biologic meshes. How has the emergence of bioresorbable meshes changed this treatment algorithm?"
"Where do you see bioresorbable meshes fitting on the spectrum between permanent synthetics and biologics? What patient populations stand to benefit the most?"
"Is the future of mesh selection moving toward a risk-stratified approach rather than a one-mesh-for-all strategy? If so, how should surgeons build that decision framework?"
"Hiatal hernia repair remains associated with concerns about recurrence and mesh-related complications at the hiatus. How do you currently approach reinforcement of large hiatal defects?"
"Can bioresorbable meshes fill the current therapeutic gap in clean-contaminated cases where surgeons may hesitate to use traditional permanent synthetic meshes yet seek more durable support than biologics provide?"
"As surgeons increasingly perform concomitant procedures - ventral hernia repair with cholecystectomy, appendectomy, bariatric surgery, or colorectal procedures - how should mesh selection evolve in these settings?"
"What characteristics would an ideal prophylactic mesh possess for stoma-site reinforcement, and do bioresorbable meshes have a role in reducing long-term mesh-related concerns in these patients?"
"If you were mentoring young hernia surgeons today, what practical framework would you teach for selecting the right mesh for the right patient - rather than focusing on a specific technology?"
| Q# | Core Topic | Key Direction | Timing |
|---|---|---|---|
| 1 | Mesh selection factors | OPEN + Panelist E | 3-8 min |
| 2 | Algorithm change | Panelist A, D | 8-13 min |
| 3 | Spectrum positioning | OPEN + Panelist B | 13-18 min |
| 4 | Risk-stratified framework | Panelist E, C | 18-23 min |
| 5 | Hiatal hernia | Panelist C, D | 23-28 min |
| 6 | Therapeutic gap | OPEN + Panelist A | 28-32 min |
| 7 | Concomitant procedures | Panelist B, C | 32-36 min |
| 8 | Prophylactic stoma mesh | Panelist B, D | 36-40 min |
| 9 | Framework for young surgeons | ALL (1 min each) | 40-44 min |
| Q&A | Floor questions | Redirect to panelists | 44-45 min |
Make a editable word file of it
~/phasix-panel/build_script_docx.py
from docx import Document
from docx.shared import Pt, Inches, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
from docx.oxml import OxmlElement
doc = Document()
# ── Page margins ─────────────────────────────────────────────────────────────
for section in doc.sections:
section.top_margin = Inches(1.0)
section.bottom_margin = Inches(1.0)
section.left_margin = Inches(1.2)
section.right_margin = Inches(1.2)
# ── Styles ───────────────────────────────────────────────────────────────────
normal = doc.styles["Normal"]
normal.font.name = "Calibri"
normal.font.size = Pt(11)
def set_heading_style(style, size, color_hex, bold=True, space_before=12, space_after=4):
style.font.name = "Calibri"
style.font.size = Pt(size)
style.font.bold = bold
style.font.color.rgb = RGBColor(
int(color_hex[0:2],16), int(color_hex[2:4],16), int(color_hex[4:6],16))
style.paragraph_format.space_before = Pt(space_before)
style.paragraph_format.space_after = Pt(space_after)
set_heading_style(doc.styles["Heading 1"], 20, "0D2B4E", space_before=0, space_after=6)
set_heading_style(doc.styles["Heading 2"], 15, "1A5E9E", space_before=14, space_after=4)
set_heading_style(doc.styles["Heading 3"], 12, "00969E", space_before=10, space_after=3)
# ── Helper functions ─────────────────────────────────────────────────────────
def add_heading(text, level=1):
doc.add_heading(text, level=level)
def add_para(text, bold=False, italic=False, color_hex=None,
size=11, space_before=2, space_after=2, align=WD_ALIGN_PARAGRAPH.LEFT,
left_indent=None):
p = doc.add_paragraph()
p.alignment = align
p.paragraph_format.space_before = Pt(space_before)
p.paragraph_format.space_after = Pt(space_after)
if left_indent:
p.paragraph_format.left_indent = Inches(left_indent)
run = p.add_run(text)
run.font.name = "Calibri"
run.font.size = Pt(size)
run.font.bold = bold
run.font.italic = italic
if color_hex:
run.font.color.rgb = RGBColor(
int(color_hex[0:2],16), int(color_hex[2:4],16), int(color_hex[4:6],16))
return p
def add_bullet(text, level=0, bold=False, color_hex=None):
p = doc.add_paragraph(style="List Bullet")
p.paragraph_format.left_indent = Inches(0.3 + level * 0.25)
p.paragraph_format.space_before = Pt(2)
p.paragraph_format.space_after = Pt(2)
run = p.add_run(text)
run.font.name = "Calibri"
run.font.size = Pt(11)
run.font.bold = bold
if color_hex:
run.font.color.rgb = RGBColor(
int(color_hex[0:2],16), int(color_hex[2:4],16), int(color_hex[4:6],16))
def add_label_line(label, text, label_color="1A5E9E", text_color="1C1C2E"):
p = doc.add_paragraph()
p.paragraph_format.space_before = Pt(3)
p.paragraph_format.space_after = Pt(3)
r1 = p.add_run(label + " ")
r1.font.name = "Calibri"; r1.font.size = Pt(11); r1.font.bold = True
r1.font.color.rgb = RGBColor(int(label_color[0:2],16),
int(label_color[2:4],16),
int(label_color[4:6],16))
r2 = p.add_run(text)
r2.font.name = "Calibri"; r2.font.size = Pt(11); r2.font.bold = False
r2.font.color.rgb = RGBColor(int(text_color[0:2],16),
int(text_color[2:4],16),
int(text_color[4:6],16))
def add_q_box(q_num, question_text):
"""Question box: bold orange label + question in navy bold."""
p = doc.add_paragraph()
p.paragraph_format.space_before = Pt(8)
p.paragraph_format.space_after = Pt(4)
p.paragraph_format.left_indent = Inches(0)
r1 = p.add_run(f"QUESTION {q_num} ")
r1.font.name = "Calibri"; r1.font.size = Pt(11); r1.font.bold = True
r1.font.color.rgb = RGBColor(0xE8, 0x6C, 0x1A)
r2 = p.add_run(question_text)
r2.font.name = "Calibri"; r2.font.size = Pt(12); r2.font.bold = True
r2.font.color.rgb = RGBColor(0x0D, 0x2B, 0x4E)
def add_mod(text):
"""Moderator speech line."""
p = doc.add_paragraph()
p.paragraph_format.space_before = Pt(5)
p.paragraph_format.space_after = Pt(4)
r = p.add_run(text)
r.font.name = "Calibri"; r.font.size = Pt(11); r.font.bold = False
r.font.color.rgb = RGBColor(0x1C, 0x1C, 0x2E)
def add_direction(text):
"""Stage direction in italics, grey."""
p = doc.add_paragraph()
p.paragraph_format.space_before = Pt(2)
p.paragraph_format.space_after = Pt(2)
p.paragraph_format.left_indent = Inches(0.3)
r = p.add_run(text)
r.font.name = "Calibri"; r.font.size = Pt(10); r.font.italic = True
r.font.color.rgb = RGBColor(0x66, 0x66, 0x88)
def add_direct_q(panelist, question):
"""Directed question to a panelist."""
p = doc.add_paragraph()
p.paragraph_format.space_before = Pt(5)
p.paragraph_format.space_after = Pt(3)
p.paragraph_format.left_indent = Inches(0.2)
r1 = p.add_run(f"[DIRECT → {panelist}] ")
r1.font.name = "Calibri"; r1.font.size = Pt(11); r1.font.bold = True
r1.font.color.rgb = RGBColor(0x00, 0x96, 0x9E)
r2 = p.add_run(question)
r2.font.name = "Calibri"; r2.font.size = Pt(11)
r2.font.color.rgb = RGBColor(0x1C, 0x1C, 0x2E)
def add_open_q(text):
p = doc.add_paragraph()
p.paragraph_format.space_before = Pt(5)
p.paragraph_format.space_after = Pt(3)
p.paragraph_format.left_indent = Inches(0.2)
r1 = p.add_run("[OPEN — All Panelists] ")
r1.font.name = "Calibri"; r1.font.size = Pt(11); r1.font.bold = True
r1.font.color.rgb = RGBColor(0x1A, 0x5E, 0x9E)
r2 = p.add_run(text)
r2.font.name = "Calibri"; r2.font.size = Pt(11)
r2.font.color.rgb = RGBColor(0x1C, 0x1C, 0x2E)
def add_audience(text):
p = doc.add_paragraph()
p.paragraph_format.space_before = Pt(5)
p.paragraph_format.space_after = Pt(3)
p.paragraph_format.left_indent = Inches(0.2)
r1 = p.add_run("[AUDIENCE] ")
r1.font.name = "Calibri"; r1.font.size = Pt(11); r1.font.bold = True
r1.font.color.rgb = RGBColor(0x1A, 0x8A, 0x4A)
r2 = p.add_run(text)
r2.font.name = "Calibri"; r2.font.size = Pt(11)
r2.font.color.rgb = RGBColor(0x1C, 0x1C, 0x2E)
def add_data_callout(text):
"""Data callout box in teal."""
p = doc.add_paragraph()
p.paragraph_format.space_before = Pt(6)
p.paragraph_format.space_after = Pt(6)
p.paragraph_format.left_indent = Inches(0.3)
r = p.add_run("DATA POINT: " + text)
r.font.name = "Calibri"; r.font.size = Pt(10.5); r.font.bold = True
r.font.color.rgb = RGBColor(0x00, 0x60, 0x65)
def add_separator():
p = doc.add_paragraph("─" * 90)
p.paragraph_format.space_before = Pt(4)
p.paragraph_format.space_after = Pt(4)
for run in p.runs:
run.font.color.rgb = RGBColor(0xCC, 0xD8, 0xEC)
run.font.size = Pt(8)
def add_table_row(table, col1, col2, col3=None, header=False):
row = table.add_row()
cells = row.cells
for i, val in enumerate([col1, col2, col3] if col3 else [col1, col2]):
if val is None: continue
p = cells[i].paragraphs[0]
p.alignment = WD_ALIGN_PARAGRAPH.LEFT
run = p.add_run(val)
run.font.name = "Calibri"
run.font.size = Pt(10)
run.font.bold = header
if header:
run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
cells[i]._tc.get_or_add_tcPr()
shd = OxmlElement('w:shd')
shd.set(qn('w:val'), 'clear')
shd.set(qn('w:color'), 'auto')
shd.set(qn('w:fill'), '0D2B4E')
cells[i]._tc.get_or_add_tcPr().append(shd)
# ════════════════════════════════════════════════════════════════════════════
# TITLE PAGE
# ════════════════════════════════════════════════════════════════════════════
add_heading("Complex Cases, Complex Choices. Phasix Mesh.", level=1)
add_para("MODERATOR SCRIPT", bold=True, size=13, color_hex="1A5E9E",
space_before=4, space_after=2)
add_para("Panel Discussion · 40-45 Minutes · 5 Panelists",
size=12, color_hex="3A3A5C", space_before=2, space_after=2)
add_para("July 2026", size=11, color_hex="3A3A5C", space_before=2, space_after=8)
add_separator()
# FORMAT KEY
add_heading("FORMAT KEY", level=3)
keys = [
("[MOD]", "Your lines as moderator — read aloud"),
("[DIRECT → Panelist X]", "Directed question to a specific panelist"),
("[OPEN — All Panelists]", "Question open to all panelists"),
("[AUDIENCE]", "Audience interaction — show of hands or live poll"),
("(italics)", "Stage direction / timing note — not spoken aloud"),
("DATA POINT:", "Key evidence to drop into the discussion"),
]
for k, v in keys:
add_label_line(k, v)
add_separator()
# PANELIST ROLES
add_heading("PANELIST ROLES", level=3)
add_direction("Assign these roles to your five panelists before the session based on their expertise.")
roles = [
("Panelist A", "Hernia & Abdominal Wall Surgeon"),
("Panelist B", "Colorectal / General Surgeon"),
("Panelist C", "Bariatric / Upper GI Surgeon"),
("Panelist D", "Laparoscopic / Minimally Invasive Surgeon"),
("Panelist E", "Senior Surgeon / Evidence & Guidelines Expert"),
]
for r, d in roles:
add_label_line(r + ":", d, label_color="E86C1A")
doc.add_page_break()
# ════════════════════════════════════════════════════════════════════════════
# SEGMENT 1 — OPENING
# ════════════════════════════════════════════════════════════════════════════
add_heading("SEGMENT 1 — OPENING", level=2)
add_para("Minutes 0-3", italic=True, color_hex="666688", size=10)
add_separator()
add_mod(
"Good [morning/afternoon] everyone. Welcome to what I believe will be one of the sharpest, "
"most practically useful sessions of this meeting."
)
add_mod(
"The title says it all: \"Complex Cases. Complex Choices. Phasix Mesh.\""
)
add_mod(
"We are not here to deliver a manufacturer brochure. We are here because real surgical decisions — "
"in contaminated fields, in obese patients, in concurrent procedures, at the hiatus — are never simple. "
"And the emergence of bioresorbable synthetic mesh has genuinely changed the calculation."
)
add_mod(
"I have five outstanding colleagues beside me who have lived these decisions in real operating rooms "
"with real patients. Let me introduce them."
)
add_direction("(20-second introduction per panelist — name, institution, specialty only.)")
add_mod(
"We have nine questions. We have forty-five minutes. Let's not waste a second."
)
# ════════════════════════════════════════════════════════════════════════════
# SEGMENT 2 — Q1
# ════════════════════════════════════════════════════════════════════════════
add_heading("SEGMENT 2 — QUESTION 1: MESH SELECTION FACTORS", level=2)
add_para("Minutes 3-8", italic=True, color_hex="666688", size=10)
add_separator()
add_q_box(1,
"What are the most important factors influencing your mesh choice today: defect size, "
"contamination level, patient comorbidities, tissue quality, recurrence risk, location of "
"implantation, or cost?")
add_audience(
"Live poll or show of hands — \"Which single factor do YOU weight most heavily when choosing "
"mesh?\" (Defect size / Contamination / Patient comorbidity / Cost)")
add_direction("(Pause for response from the room.)")
add_open_q(
"Panel — thirty seconds each — your top two factors, ranked. No long explanations yet.")
add_direction("(Keep it rapid — enforce the time.)")
add_mod(
"Interesting. We notice [contamination / comorbidity / cost] keeps coming up. We often teach "
"mesh selection as a structured matrix — but at the bedside, in a genuinely difficult case at "
"2 in the afternoon, is it truly systematic? Or is it pattern recognition dressed up as an algorithm?"
)
add_direct_q("Panelist E",
"Professor, is there a validated decision framework you actually use at the bedside — "
"or are we practising expert intuition and calling it a protocol?")
add_direction("(Allow 90 seconds.)")
add_mod("That honest answer takes us directly to Question 2.")
# ════════════════════════════════════════════════════════════════════════════
# SEGMENT 3 — Q2
# ════════════════════════════════════════════════════════════════════════════
add_heading("SEGMENT 3 — QUESTION 2: THE TREATMENT ALGORITHM", level=2)
add_para("Minutes 8-13", italic=True, color_hex="666688", size=10)
add_separator()
add_q_box(2,
"Historically, surgeons often chose between permanent synthetic and biologic meshes. "
"How has the emergence of bioresorbable meshes changed this treatment algorithm?")
add_direct_q("Panelist A",
"Professor, give us the honest version. Has your personal algorithm actually changed — "
"or is bioresorbable mesh still a niche tool that hasn't broken through into your everyday practice?")
add_direction("(Allow 90 seconds.)")
add_direct_q("Panelist D",
"And from the minimally invasive perspective — does the platform change the mesh choice? "
"Do you think differently about bioresorbable mesh laparoscopically versus open?")
add_direction("(Allow 60 seconds.)")
add_data_callout(
"5-year Phasix trial: 15.9% recurrence in Grade 3 VHWG contaminated hernias · "
"No mesh-related complications requiring explantation · "
"Traditional contaminated-field recurrence teaching: up to 40%")
add_mod(
"That is a meaningful shift. But where exactly does bioresorbable mesh sit on the spectrum "
"between permanent synthetic and biologic? That is Question 3."
)
# ════════════════════════════════════════════════════════════════════════════
# SEGMENT 4 — Q3
# ════════════════════════════════════════════════════════════════════════════
add_heading("SEGMENT 4 — QUESTION 3: THE SPECTRUM", level=2)
add_para("Minutes 13-18", italic=True, color_hex="666688", size=10)
add_separator()
add_q_box(3,
"Where do you see bioresorbable meshes fitting on the spectrum between permanent synthetics "
"and biologics? What patient populations stand to benefit the most?")
add_open_q(
"Panel — quick round. If permanent synthetic is the left end of the dial and biologic is the right end — "
"where does Phasix sit? And does it replace one of them, or does it occupy something in between? "
"Sixty seconds each.")
add_direction("(Keep it punchy — enforce the time.)")
add_mod(
"Here is the tension I want to name directly. Phasix resorbs in 12 to 18 months. After that, "
"you are trusting the body's own neo-collagen scaffold — Type III maturing to Type I — to carry "
"the mechanical load. For a 65-year-old with poor tissue quality, that is a leap of faith. "
"For a 45-year-old with good vascularity and no metabolic disease — it may be the most elegant "
"solution we have."
)
add_direct_q("Panelist B",
"Professor, which patient is in your mind when you reach for Phasix? Give me the archetype — "
"age, BMI, comorbidities, field. One or two sentences.")
add_direction("(Allow 90 seconds.)")
# ════════════════════════════════════════════════════════════════════════════
# SEGMENT 5 — Q4
# ════════════════════════════════════════════════════════════════════════════
add_heading("SEGMENT 5 — QUESTION 4: RISK-STRATIFIED FRAMEWORK", level=2)
add_para("Minutes 18-23", italic=True, color_hex="666688", size=10)
add_separator()
add_q_box(4,
"Is the future of mesh selection moving toward a risk-stratified approach rather than a "
"one-mesh-for-all strategy? If so, how should surgeons build that decision framework?")
add_audience(
"Hands up: who uses a formal written institutional protocol for mesh selection? "
"(Pause.) And who uses informal pattern recognition built on experience? "
"(Pause.) That gap is exactly why this question matters.")
add_direct_q("Panelist E",
"Professor, walk us through what a robust risk-stratification framework looks like in practice. "
"What variables go in — VHWG grade, CDC wound class, BMI, immune status, tissue quality? "
"And where does bioresorbable mesh appear in that framework?")
add_direction("(Allow 2 minutes.)")
add_direct_q("Panelist C",
"A practical challenge, Professor — in a busy surgical unit, how do you operationalise this "
"at the bedside when you are already scrubbed and the field has just changed? "
"Is a decision framework genuinely teachable, or does it only come with volume?")
add_direction("(Allow 60 seconds.)")
add_mod(
"The hiatus is one of the most specific — and most difficult — situations where this framework "
"gets truly tested. That is Question 5."
)
# ════════════════════════════════════════════════════════════════════════════
# SEGMENT 6 — Q5
# ════════════════════════════════════════════════════════════════════════════
add_heading("SEGMENT 6 — QUESTION 5: HIATAL HERNIA", level=2)
add_para("Minutes 23-28", italic=True, color_hex="666688", size=10)
add_separator()
add_q_box(5,
"Hiatal hernia repair remains associated with concerns about recurrence and mesh-related "
"complications at the hiatus. How do you currently approach reinforcement of large hiatal defects?")
add_direct_q("Panelist C",
"Professor, this is your zone. Hiatal hernia reinforcement has been one of the most contested "
"areas in hernia surgery — permanent mesh has caused erosion, stricture, dysphagia. Biologic mesh "
"has been inconsistent. Where does Phasix ST — the anti-adhesion-coated version — specifically "
"fit at the hiatus for you?")
add_direction("(Allow 2 minutes.)")
add_direct_q("Panelist D",
"From a technical standpoint — laparoscopic or robotic hiatal repair with bioresorbable mesh. "
"The crura are mobile. The mesh resorbs in 18 months. What are the fixation challenges, "
"and does an absorbable mesh at a dynamic structure concern you technically?")
add_direction("(Allow 90 seconds.)")
add_open_q(
"Rapid round — one line each: what is your personal size threshold at the hiatus "
"above which you always reinforce?")
add_direction("(Go around quickly.)")
add_data_callout(
"Phasix ST: P4HB scaffold + ePTFE anti-adhesion barrier · "
"Coated side MUST face oesophagus/viscera — orientation is critical · "
"Formal warning: NOT for proximity to existing or excised malignancy")
# ════════════════════════════════════════════════════════════════════════════
# SEGMENT 7 — Q6
# ════════════════════════════════════════════════════════════════════════════
add_heading("SEGMENT 7 — QUESTION 6: THE THERAPEUTIC GAP", level=2)
add_para("Minutes 28-32", italic=True, color_hex="666688", size=10)
add_separator()
add_q_box(6,
"Can bioresorbable meshes fill the current therapeutic gap in clean-contaminated cases where "
"surgeons may hesitate to use traditional permanent synthetic meshes yet seek more durable "
"support than biologics provide?")
add_open_q(
"Is there actually a gap? Or is this a marketing narrative that the industry has expertly "
"constructed? Panel — honest opinions only, not product endorsements.")
add_direction("(Allow 60 seconds per panelist — short and sharp.)")
add_data_callout(
"CDC III-IV evidence: >85% of patients did not require re-repair (2025 multi-institution series) · "
"Only 1 mesh infection requiring excision in 40+ CDC IV cases · "
"SSOPI rate ~35.4% in CDC IV — considered acceptable in this high-risk population")
add_mod(
"The contaminated field data is real. In CDC Grade III cases, permanent synthetic mesh carries "
"a known biofilm risk. Biologic mesh is expensive, inconsistent in long-term remodelling, and "
"degrades unpredictably. Phasix in the retromuscular plane in Grade 3 VHWG hernias — 5-year data, "
"no explantations required, 15.9% recurrence. If that is not filling a gap, what is?"
)
add_direct_q("Panelist A",
"But Professor — devil's advocate. Is 15.9% recurrence at 5 years in Grade 3 hernias genuinely "
"a success? Or are we normalising a result that permanent synthetic mesh in a clean field "
"would beat by a wide margin?")
add_direction("(Allow 90 seconds.)")
# ════════════════════════════════════════════════════════════════════════════
# SEGMENT 8 — Q7
# ════════════════════════════════════════════════════════════════════════════
add_heading("SEGMENT 8 — QUESTION 7: CONCOMITANT PROCEDURES", level=2)
add_para("Minutes 32-36", italic=True, color_hex="666688", size=10)
add_separator()
add_q_box(7,
"As surgeons increasingly perform concomitant procedures such as ventral hernia repair with "
"cholecystectomy, appendectomy, bariatric surgery, or colorectal procedures, how should mesh "
"selection evolve in these settings?")
add_direct_q("Panelist B",
"Professor, you do complex colorectal work. When you are resecting a sigmoid and the patient has "
"a coincidental umbilical hernia — the bowel work has now upgraded the field class. Walk us through "
"your real intraoperative decision. What mesh, what plane, and does your choice change if there was spillage?")
add_direction("(Allow 90 seconds.)")
add_direct_q("Panelist C",
"Bariatric surgery and hernia repair — increasingly done together. The patient is obese, the field "
"is generally clean, but the mechanical demands on the repair are enormous as weight drops from "
"BMI 45 to 28 over the next two years. Does bioresorbable mesh make sense when the mechanical "
"environment is going to change so dramatically during the resorption window?")
add_direction("(Allow 90 seconds.)")
add_open_q(
"Rapid round — one line each: concomitant colorectal resection plus ventral hernia — "
"what is your mesh of choice?")
add_direction("(Go around quickly.)")
# ════════════════════════════════════════════════════════════════════════════
# SEGMENT 9 — Q8
# ════════════════════════════════════════════════════════════════════════════
add_heading("SEGMENT 9 — QUESTION 8: PROPHYLACTIC STOMA-SITE MESH", level=2)
add_para("Minutes 36-40", italic=True, color_hex="666688", size=10)
add_separator()
add_q_box(8,
"What characteristics would an ideal prophylactic mesh possess for stoma-site reinforcement, "
"and do bioresorbable meshes have a role in reducing long-term mesh-related concerns in these patients?")
add_direct_q("Panelist B",
"Professor — prophylactic parastomal mesh is now in multiple guidelines, but permanent synthetic "
"mesh at the stoma site carries its own chronic concerns: erosion, stenosis, technical difficulties "
"at reversal. Is bioresorbable mesh the answer here — or does the parastomal site demand permanent "
"structural support given that a stoma is a lifelong mechanical demand?")
add_direction("(Allow 90 seconds.)")
add_direct_q("Panelist D",
"Technically — placing prophylactic mesh at stoma formation laparoscopically or robotically. "
"What plane, what fixation, and does the mesh type change your technical approach?")
add_direction("(Allow 60 seconds.)")
add_mod(
"I want to put a specific tension on the table. Phasix's own formal contraindication states: "
"it should NOT be used in repairs where permanent wound or organ support from the mesh is required. "
"A stoma site carries a lifelong mechanical demand. Is prophylactic bioresorbable mesh at a stoma "
"site therefore — by the manufacturer's own labelling — contradicted by design?"
)
add_open_q(
"One word each — panel verdict: Justified / Risky / Context-dependent. Go around.")
add_direction("(Rapid round.)")
# ════════════════════════════════════════════════════════════════════════════
# SEGMENT 10 — Q9
# ════════════════════════════════════════════════════════════════════════════
add_heading("SEGMENT 10 — QUESTION 9: FRAMEWORK FOR YOUNG SURGEONS", level=2)
add_para("Minutes 40-44", italic=True, color_hex="666688", size=10)
add_separator()
add_q_box(9,
"If you were mentoring young hernia surgeons today, what practical framework would you teach "
"for selecting the right mesh for the right patient — rather than focusing on a specific technology?")
add_open_q(
"This is your chance to speak directly to every trainee and early-career surgeon in this room. "
"What is the mental model? What are the first principles? One minute each — no interruptions from me.")
add_direction("(Go around — enforce 60 seconds per panelist. No interruptions.)")
add_mod(
"Thank you. Let me attempt to distil what our panel has offered across nine questions."
)
add_mod(
"Mesh selection is not a product choice. It is a patient risk assessment translated into a material "
"decision. The emergence of bioresorbable mesh has not replaced the binary — it has given us a third "
"dimension. And that third dimension is most valuable precisely where the binary fails: in contaminated "
"fields, in high-risk patients, in concurrent procedures, at the hiatus, and in patients where a "
"permanent foreign body is a liability rather than a solution."
)
add_mod(
"Phasix is not the answer to every complex case. But for the complex cases where permanent mesh "
"is too risky and biologic mesh is too unpredictable — it may be exactly the right choice."
)
add_para(
"The question — as our panel has demonstrated today — is always: right patient, right defect, "
"right plane, right time.",
bold=True, color_hex="0D2B4E", size=12, space_before=6, space_after=6
)
add_mod("We have one minute for the floor.")
# ════════════════════════════════════════════════════════════════════════════
# SEGMENT 11 — Q&A
# ════════════════════════════════════════════════════════════════════════════
add_heading("SEGMENT 11 — AUDIENCE Q&A", level=2)
add_para("Minutes 44-45", italic=True, color_hex="666688", size=10)
add_separator()
add_audience("One sharp question from the floor. Directed to any panelist.")
add_direction("(Take 1-2 questions. Redirect as needed: 'Professor X — that is really your domain.')")
add_direction(
"(If time permits, close with this provocation to the panel:)")
add_mod(
"Final question to the panel — yes or no only: in ten years, will bioresorbable mesh be "
"the standard of care for incisional hernia repair?"
)
add_direction("(Rapid yes/no round.)")
add_mod(
"Thank you to our five panelists for their honesty, their experience, and their willingness "
"to disagree constructively — that is where the real learning happens. And thank you to every "
"one of you in this room for your engagement. Please continue these conversations in the corridor. "
"Good [morning/afternoon]."
)
doc.add_page_break()
# ════════════════════════════════════════════════════════════════════════════
# CHEAT SHEET
# ════════════════════════════════════════════════════════════════════════════
add_heading("MODERATOR'S CHEAT SHEET", level=2)
add_separator()
add_heading("Timing & Direction Guide", level=3)
# Table
table = doc.add_table(rows=1, cols=4)
table.style = "Table Grid"
hdr = table.rows[0].cells
for i, h in enumerate(["Q#", "Core Topic", "Key Direction", "Timing"]):
p = hdr[i].paragraphs[0]
run = p.add_run(h)
run.font.bold = True; run.font.name = "Calibri"; run.font.size = Pt(10)
run.font.color.rgb = RGBColor(0xFF,0xFF,0xFF)
shd = OxmlElement('w:shd')
shd.set(qn('w:val'), 'clear')
shd.set(qn('w:color'), 'auto')
shd.set(qn('w:fill'), '0D2B4E')
hdr[i]._tc.get_or_add_tcPr().append(shd)
rows_data = [
("Q1", "Mesh selection factors", "OPEN + Panelist E", "3-8 min"),
("Q2", "Algorithm change", "Panelist A, D", "8-13 min"),
("Q3", "Spectrum positioning", "OPEN + Panelist B", "13-18 min"),
("Q4", "Risk-stratified framework", "Panelist E, C", "18-23 min"),
("Q5", "Hiatal hernia", "Panelist C, D", "23-28 min"),
("Q6", "Therapeutic gap", "OPEN + Panelist A", "28-32 min"),
("Q7", "Concomitant procedures", "Panelist B, C", "32-36 min"),
("Q8", "Prophylactic stoma mesh", "Panelist B, D", "36-40 min"),
("Q9", "Framework for young surgeons", "ALL (1 min each)", "40-44 min"),
("Q&A","Floor questions", "Redirect to panelists", "44-45 min"),
]
for r in rows_data:
row = table.add_row().cells
for i, val in enumerate(r):
p = row[i].paragraphs[0]
run = p.add_run(val)
run.font.name = "Calibri"; run.font.size = Pt(10)
doc.add_paragraph()
add_heading("Contingency Lines — When Discussion Stalls", level=3)
contingency = [
"\"Professor, I sense you disagree — say it.\"",
"\"If this were your family member on the table — which mesh would you choose, and why?\"",
"\"Has anyone on this panel had a Phasix failure? What happened and what did you learn?\"",
"\"One word: bioresorbable mesh in Grade IV faecal contamination — yes or no.\"",
"\"What is the one patient type you would never use Phasix for, no matter what?\"",
"\"In 10 years, will bioresorbable mesh replace permanent synthetic as standard of care? Yes or no.\"",
]
for c in contingency:
add_bullet(c)
doc.add_paragraph()
add_heading("Key Data Points — Have These Ready", level=3)
data_pts = [
"5-year recurrence VHWG Grade 3: 15.9% (Ann Surg Open 2023) — no explantations required",
"Pooled recurrence (meta-analysis): 4% (Tran et al. Hernia 2024 · 95% CI: 0-12%)",
"CDC IV contaminated field: >85% did NOT require re-repair (2025 multi-institution series)",
"Pooled complication rate: 50% (95% CI 27-72% — includes seromas, not all interventional)",
"Resorption timeline: 12-18 months — hydrolysis → CO₂ + H₂O → Krebs cycle",
"Formal CI: NOT for bridging / NOT where permanent wound or organ support is required",
"Antibiotic warning: tetracycline HCl + kanamycin sulfate used in manufacturing process",
"Phasix ST warning: NOT for proximity to existing or excised malignancy",
]
for d in data_pts:
add_bullet(d)
doc.add_paragraph()
add_heading("Key References", level=3)
refs = [
"Van den Dop et al. Five-Year Follow-Up of a Slowly Resorbable Biosynthetic P4HB Mesh. Ann Surg Open. 2023.",
"Tran DH et al. Use of poly-4-hydroxybutyrate (P4HB, Phasix™) mesh in ventral hernia repair: systematic review and meta-analysis. Hernia. 2024;28:989-1004.",
"Bueno-Lledó J et al. Long-term results with biosynthetic absorbable P4HB mesh in ventral abdominal wall repair: multicentre analysis. Hernia. 2024;28:1103-12.",
"Srivastava AK et al. Bio-resorbable P4HB mesh for abdominal wall reconstruction in high-risk patients and contaminated abdomen. Hernia. 2025.",
"Putko M et al. Bioresorbable implant in anterior AWR in women of reproductive age: case report with pregnancy and 10-year follow-up. Front Surg. 2026.",
]
for r in refs:
add_bullet(r)
# ════════════════════════════════════════════════════════════════════════════
# SAVE
# ════════════════════════════════════════════════════════════════════════════
out = "/tmp/workspace/phasix-panel/Moderator_Script_Complex_Cases_Phasix.docx"
doc.save(out)
print(f"Saved: {out}")
cd /tmp/workspace/phasix-panel && python build_script_docx.py 2>&1
Moderator Script Complex Cases Phasix
Word Document · DOCX
[MOD] in dark text, [DIRECT →] in teal, [OPEN] in blue, [AUDIENCE] in green