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 |