detailed review of biological, natural and human induced disaster : role of anaesthesiologist

Reading File
Finding Sources
Searching the Web

role of anaesthesiologist in disaster management biological natural human-made disasters

Disasters (Biological, Natural, Human-Induced) and the Role of the Anaesthesiologist

This is a broad topic spanning disaster classification, phases of disaster management, triage systems, and anaesthesiologist-specific roles across each disaster type. A full "detailed review" would run many pages, so here is the topic map and a high-level overview first — then tell me which section you want expanded in depth.

Topic Breakdown

  1. Classification of disasters - natural (earthquake, flood, cyclone, tsunami), biological (pandemics, bioterrorism - anthrax, Ebola, COVID-19), human-induced/man-made (industrial/chemical, transport, terrorism, mass shootings, structural collapse)
  2. Disaster management cycle - mitigation, preparedness, response, recovery/rehabilitation
  3. Triage systems in mass casualty events - START triage, color-coded categorization, resource allocation under scarcity
  4. Role of the anaesthesiologist - pre-hospital and field response - airway management, field trauma stabilization, HAZMAT-suit constraints
  5. Role of the anaesthesiologist - hospital/OR phase - rapid sequence surgical anesthesia, resource-limited anesthesia techniques, mass casualty OR flow
  6. Role of the anaesthesiologist - ICU/critical care surge - ventilator management, ECMO, surge capacity planning (e.g. COVID-19 pandemic lessons)
  7. Biological/CBRN-specific anaesthetic considerations - nerve agents, cyanide toxicity, contagious pathogens, PPE-limited procedures
  8. Institutional disaster planning for anaesthesia departments - hazard vulnerability analysis, drills, staffing/leadership roles, hospital incident command system

Brief Overview

Disasters are broadly classed as natural (geophysical/meteorological), biological (epidemics, pandemics, bioterror agents), and man-made (industrial, transport, intentional violence) - Park's Textbook of Preventive and Social Medicine, p. 3739-3751, and Tintinalli's Emergency Medicine outline disaster definitions and characteristics along these lines. Management follows a cycle of mitigation, preparedness, response, and recovery.
Anaesthesiologists are considered central to disaster medicine because of overlapping skills in airway management, resuscitation, critical care, and rapid clinical decision-making under scarcity. Literature (e.g., "The Multiple Casualty Scenario: Role of the Anesthesiologist," PMC7322219) emphasizes that anaesthesiologists should be embedded in all four phases of emergency preparedness, not just the operating room - serving as trauma team leaders, triage officers, airway specialists in the field, OR/ICU surge staff, and ECMO/ventilator managers during biologic outbreaks (e.g., COVID-19, potential bioterror agents like anthrax). A recurring theme is that most anaesthesiologists lack formal disaster training despite rising frequency of both natural and man-made events, and that departmental disaster response plans with hazard-vulnerability analysis are needed institutionally (PMC8053004).
Which topic would you like me to go into detail on?
Asking for Preferences

Which part of the disaster/anaesthesiologist topic should I cover in detail?

Disasters (Biological, Natural, Human-Induced) and the Role of the Anaesthesiologist

This is a broad topic spanning disaster classification, phases of disaster management, triage systems, and anaesthesiologist-specific roles across each disaster type. A full "detailed review" would run many pages, so here is the topic map and a high-level overview first — then tell me which section you want expanded in depth.

Topic Breakdown

  1. Classification of disasters - natural (earthquake, flood, cyclone, tsunami), biological (pandemics, bioterrorism - anthrax, Ebola, COVID-19), human-induced/man-made (industrial/chemical, transport, terrorism, mass shootings, structural collapse)
  2. Disaster management cycle - mitigation, preparedness, response, recovery/rehabilitation
  3. Triage systems in mass casualty events - START triage, color-coded categorization, resource allocation under scarcity
  4. Role of the anaesthesiologist - pre-hospital and field response - airway management, field trauma stabilization, HAZMAT-suit constraints
  5. Role of the anaesthesiologist - hospital/OR phase - rapid sequence surgical anesthesia, resource-limited anesthesia techniques, mass casualty OR flow
  6. Role of the anaesthesiologist - ICU/critical care surge - ventilator management, ECMO, surge capacity planning (e.g. COVID-19 pandemic lessons)
  7. Biological/CBRN-specific anaesthetic considerations - nerve agents, cyanide toxicity, contagious pathogens, PPE-limited procedures
  8. Institutional disaster planning for anaesthesia departments - hazard vulnerability analysis, drills, staffing/leadership roles, hospital incident command system

Brief Overview

Disasters are broadly classed as natural (geophysical/meteorological), biological (epidemics, pandemics, bioterror agents), and man-made (industrial, transport, intentional violence) - Park's Textbook of Preventive and Social Medicine, p. 3739-3751, and Tintinalli's Emergency Medicine outline disaster definitions and characteristics along these lines. Management follows a cycle of mitigation, preparedness, response, and recovery.
Anaesthesiologists are considered central to disaster medicine because of overlapping skills in airway management, resuscitation, critical care, and rapid clinical decision-making under scarcity. Literature (e.g., "The Multiple Casualty Scenario: Role of the Anesthesiologist," PMC7322219) emphasizes that anaesthesiologists should be embedded in all four phases of emergency preparedness, not just the operating room - serving as trauma team leaders, triage officers, airway specialists in the field, OR/ICU surge staff, and ECMO/ventilator managers during biologic outbreaks (e.g., COVID-19, potential bioterror agents like anthrax). A recurring theme is that most anaesthesiologists lack formal disaster training despite rising frequency of both natural and man-made events, and that departmental disaster response plans with hazard-vulnerability analysis are needed institutionally (PMC8053004).
Which topic would you like me to go into detail on?

from millers for a seminar

Asking for Preferences

What deliverable format do you want for the seminar? · Should I cover the full topic (natural + biological + man-made disasters, all anaesthesiologist roles) or focus on one area from Miller's?

Disasters (Biological, Natural, Human-Induced) and the Role of the Anaesthesiologist

This is a broad topic spanning disaster classification, phases of disaster management, triage systems, and anaesthesiologist-specific roles across each disaster type. A full "detailed review" would run many pages, so here is the topic map and a high-level overview first — then tell me which section you want expanded in depth.

Topic Breakdown

  1. Classification of disasters - natural (earthquake, flood, cyclone, tsunami), biological (pandemics, bioterrorism - anthrax, Ebola, COVID-19), human-induced/man-made (industrial/chemical, transport, terrorism, mass shootings, structural collapse)
  2. Disaster management cycle - mitigation, preparedness, response, recovery/rehabilitation
  3. Triage systems in mass casualty events - START triage, color-coded categorization, resource allocation under scarcity
  4. Role of the anaesthesiologist - pre-hospital and field response - airway management, field trauma stabilization, HAZMAT-suit constraints
  5. Role of the anaesthesiologist - hospital/OR phase - rapid sequence surgical anesthesia, resource-limited anesthesia techniques, mass casualty OR flow
  6. Role of the anaesthesiologist - ICU/critical care surge - ventilator management, ECMO, surge capacity planning (e.g. COVID-19 pandemic lessons)
  7. Biological/CBRN-specific anaesthetic considerations - nerve agents, cyanide toxicity, contagious pathogens, PPE-limited procedures
  8. Institutional disaster planning for anaesthesia departments - hazard vulnerability analysis, drills, staffing/leadership roles, hospital incident command system

Brief Overview

Disasters are broadly classed as natural (geophysical/meteorological), biological (epidemics, pandemics, bioterror agents), and man-made (industrial, transport, intentional violence) - Park's Textbook of Preventive and Social Medicine, p. 3739-3751, and Tintinalli's Emergency Medicine outline disaster definitions and characteristics along these lines. Management follows a cycle of mitigation, preparedness, response, and recovery.
Anaesthesiologists are considered central to disaster medicine because of overlapping skills in airway management, resuscitation, critical care, and rapid clinical decision-making under scarcity. Literature (e.g., "The Multiple Casualty Scenario: Role of the Anesthesiologist," PMC7322219) emphasizes that anaesthesiologists should be embedded in all four phases of emergency preparedness, not just the operating room - serving as trauma team leaders, triage officers, airway specialists in the field, OR/ICU surge staff, and ECMO/ventilator managers during biologic outbreaks (e.g., COVID-19, potential bioterror agents like anthrax). A recurring theme is that most anaesthesiologists lack formal disaster training despite rising frequency of both natural and man-made events, and that departmental disaster response plans with hazard-vulnerability analysis are needed institutionally (PMC8053004).
Which topic would you like me to go into detail on?
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Searching PubMed

anesthesiologist disaster response mass casualty

Role of the Anaesthesiologist in Biological, Natural, and Human-Induced Disasters

A Detailed Seminar Review (based on Miller's Anesthesia, 10th Edition)


Introduction

Miller's Anesthesia dedicates a full chapter to disaster medicine, organized by the authors (Johnson, Mulvoy, Schnabel, Lisco) into four sections: (1) Natural disasters, (2) Acts of terrorism, (3) Chemical, Biological, Radiological, and Nuclear (CBRN) warfare, and (4) Epidemic and pandemic infectious outbreaks - Miller's Anesthesia, 10e.
The core message: "Anesthesiologists, because of their unique combination of skills and knowledge, are an extremely valuable part of the overall effort to optimize the health and recovery of victims of disaster" - their in-depth pharmacology and physiology knowledge, resuscitation expertise, critical care training, pain management skills, and surgical anesthesia experience let them extend beyond the OR into triage, ICU, and field roles when a hospital's usual staffing model breaks down (Miller's Anesthesia, 10e).

Key Points (chapter summary)

  • Anesthesiologists must be willing to modify their traditional workflow to meet mass-casualty needs.
  • Natural disasters (earthquakes, hurricanes, floods, tsunamis, tornadoes) cause massive interruptions to normal healthcare delivery.
  • Anesthesiologists deploying from resource-rich to resource-limited settings must cope with unfamiliar infectious disease burdens.
  • Providers who travel to disaster zones face physical and psychological stressors with effects lasting months to years.
  • Because local health workers are often killed or injured, visiting anesthesiologists may add the greatest value simply by replacing lost local staff temporarily.
  • Disasters (e.g., Hurricane Maria 2017, COVID-19 2020) commonly create drug and fluid shortages, requiring coordinated conservation strategies.
  • Since many disasters (e.g., 9/11) are unpredictable, pre-existing triage and coordination plans across hospital systems are critical.
  • CBRN/terrorism knowledge is now a required competency given the rise in mass shootings (over 19,000 people shot/killed or wounded in the US, 2015-2022) and terrorism.
  • During infectious outbreaks, anesthesiologists must understand transmission routes, isolation protocols, and act as consultants alongside infectious disease teams.
  • Pandemics strain systems enough that anesthesiologists are frequently redeployed outside their traditional roles (e.g., as ICU intensivists).

Section 1: Natural Disasters

Natural disasters disrupt care via damaged roads (prehospital access), loss of water/oxygen/fuel/electricity (hospital function), destroyed facilities, and broken communications.

Earthquakes

The 2010 Haiti earthquake (magnitude 7.0) killed an estimated >130,000 people, displaced 1.5 million, destroyed >80% of schools and >50% of hospitals. International anesthesiologists deployed both to provide trauma care and to backfill roles of killed/injured local staff. The USNS Comfort arrived within 72 hours and ran the largest disaster-relief operation in its history - treating >850 patients (237 children), performing 843 operations on 454 patients over five weeks (58 amputations), with musculoskeletal extremity injury as the leading diagnosis.

Tsunami

The 2004 Indian Ocean tsunami killed >230,000 and displaced >5 million, with essentially zero warning time. A Thai Red Cross team (17 surgeons, 6 anesthesiologists) reached Phang-Nga within a day and treated 107 patients over 3 days - mostly soft tissue wounds and fractures. Halothane was the only inhalational agent available, illustrating the need for anesthesiologists to be comfortable with rarely-used drugs during relief work. The team noted increased intraoperative desaturation (aspiration of seawater, lung contusion) and had no lab access to guide fluid/electrolyte/blood product management. The subsequent USNS Mercy deployment (Operation Unified Assistance) required staff to update vaccinations (typhoid, hepatitis A) and take malaria prophylaxis, and to be briefed on cultural/religious considerations (Aceh province is >90% Muslim) - illustrating the cross-cultural competency disaster anesthesiologists need.

Hurricanes

Hurricane Katrina (2005) closed New Orleans' two largest teaching hospitals (Charity Hospital never reopened), cutting Louisiana's anesthesiology residency graduates from 24/year (2004) to 13/year (2007), with 37% of anesthesiologists reporting difficulty filling open positions and 92% reporting increased daily caseload. Hurricane Maria (2017) knocked out Puerto Rico's water, power, and telecoms, and triggered mainland US drug and IV fluid shortages - anesthesiologists were positioned to lead conservation and allocation strategies nationally.

Section 2: Acts of Terrorism

September 11, 2001 (Bellevue Hospital example)

With telecommunications down, medical students served as physical "runners"; staff wore name/specialty/title labels for rapid identification. A traditional three-tier triage system was used: green (non-urgent), yellow (potentially urgent), red (immediate/life-threatening) - any yellow patient with potential airway or sedation needs was assigned a senior anesthesiology resident or critical care fellow. As the surge slowed, leadership mandated shift rotations to prevent burnout from prolonged 24/7 disaster response.

Mass Shootings

188 mass shootings (≥4 killed by a lone shooter) occurred in the US since 1966, with 1,349 deaths total and 473 between 2016-March 2023. The rising use of military-style semi-automatic rifles (e.g., AR-15) produces markedly different wound patterns than handguns - wide tissue destruction ("smashed"/"shredded" organs) from higher-velocity, higher-energy transfer - requiring anesthesiologists everywhere (not just trauma centers) to be prepared for these injury patterns.

Section 3: CBRN (Chemical, Biological, Radiological, Nuclear) Attacks

CBRN incidents arise from three causes:
  1. Intentional - deliberate release/detonation for political, religious, or ideological terror
  2. Accidental - human error causing release of toxic/radiological agents
  3. Natural - secondary release triggered by a natural disaster
The American Society of Anesthesiologists (ASA) maintains CBRN protocols/SOPs requiring system-wide training; disaster preparedness is explicitly a hospital-wide, not just ED, responsibility.
Core provider rule: "Do not become the casualty yourself." Incident command must establish maximal barrier protection before any care begins.
  • PPE: Minimum Level C protection for any provider at risk of intubation, bodily fluid exposure, or airborne infection - balances tactile dexterity with protection against chemical/biologic warfare agents.
  • Decontamination: Must be established early since hazards are assumed persistent/transmissible until proven otherwise. Triage and medical personnel deliver (1) triage, (2) TOXALS (Toxicology Advanced Life Support), and (3) antidote/pharmacologic support.
  • TOXALS mnemonic extends ACLS/ATLS/BLS to ABCDDEE: Airway, Breathing, Circulation, Disability, Drugs, Exposure, Environment - built specifically for chemical/biological/radiological scenes.
  • Civilian CBRN command structure mirrors military models (local/state/federal response layers), but full-hospital CBRN drills are logistically difficult since operations cannot easily be halted for training.

Section 4: Epidemic and Pandemic Infectious Outbreaks

Influenza

Transmission is primarily droplet/contact over short distances (≤6 feet); true sustained airborne transmission is unproven, but aerosol-generating procedures (intubation, bronchoscopy) warrant N95/airborne precautions - directly relevant to anesthesiologists managing airways in ICU, ED, ward, or OR.

SARS (2002-2003)

Originated in Guangdong, China; spread globally via air travel from a single Hong Kong hotel cluster (8,096 cases, 774 deaths across 29 countries). Toronto was the North American epicenter (361 cases, 33 deaths); over half of infected persons were healthcare workers, including three anesthesiologists and one intensivist - underscoring occupational risk for airway specialists during respiratory outbreaks. Case fatality was ~15% overall, >50% in patients over 65.

COVID-19

Anesthesiologists took on multiple roles:
  • Pre-surge planning: PPE strategy, resource allocation, staffing models (informed by prior SARS experience)
  • Advocated for and helped implement elective surgery shutdowns to preserve capacity and PPE (US Surgeon General Jerome Adams, himself an anesthesiologist, backed this)
  • Public health communication to encourage nonpharmaceutical prevention measures
  • PPE conservation/reuse innovation (e.g., aerosol capture masks placed over patients' faces and connected to suction to reduce ambient viral load)
  • Redeployment as ICU intensivists when critical care physician numbers were insufficient; "silos of critical care appropriately disappeared" as departments merged into unified teams
  • Contributed to tiered critical-care surge staffing models during repeated pandemic waves

Synthesis: Cross-Cutting Anaesthesiologist Competencies

DomainAnaesthesiologist Role
Airway/resuscitationDefinitive airway management, RSI, damage-control resuscitation
TriageField and in-hospital color-coded triage leadership, especially for airway/sedation-risk patients
OR/SurgicalRapid-sequence anesthesia with limited drugs/monitoring, mass-casualty OR flow
ICU/Critical careSurge intensivist staffing, ventilator/ECMO management
CBRN-specificPPE selection (Level C), decontamination oversight, TOXALS-based resuscitation
Pain managementOngoing analgesia for large casualty volumes
Administrative/leadershipOR resource allocation, drug/fluid conservation planning, pre-disaster institutional protocols
Psychological resilienceRecognizing and managing personal stress/burnout from prolonged disaster response

Recent Evidence Check

A 2024-2025 literature search for systematic reviews on mass-casualty management found:
  • Suda et al. 2025 (PMID: 39792184) - updated systematic review/clinical practice guideline on mass casualty incident management, covering decontamination, EMS, and triage - broadly consistent with the CBRN/triage principles above.
  • Hugelius & Becker 2024 (PMID: 39663866) - systematic review on common challenges in prehospital MCI management.
These do not contradict the Miller's Anesthesia framework but reinforce that triage and decontamination protocols remain active areas of guideline refinement - worth a mention if your seminar audience asks about "what's new" beyond the textbook.

Seminar Tip

Given the chapter's four-part structure, this maps cleanly onto a slide deck: Introduction/Key Points → Natural Disasters → Terrorism → CBRN → Pandemics → Synthesis Table → Recent Evidence. If you want, I can build this into an actual PPTX or DOCX handout - just let me know the format.

generate ppt

Reading File
Reading File
Reading File
Running Command

mkdir -p /tmp/workspace/disaster-anesthesia-seminar/output && ls -la /tmp/workspace/

Writing File

~/disaster-anesthesia-seminar/build_ppt.py

"""
Seminar deck: Role of the Anaesthesiologist in Biological, Natural and
Human-Induced Disasters (content sourced from Miller's Anesthesia, 10e)
"""
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.enum.shapes import MSO_SHAPE
import copy

# ---------- palette ----------
NAVY = RGBColor(0x0B, 0x2E, 0x4E)
TEAL = RGBColor(0x11, 0x7A, 0x8B)
LIGHT_TEAL = RGBColor(0xDD, 0xF0, 0xF2)
ORANGE = RGBColor(0xE0, 0x7A, 0x2C)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK_GRAY = RGBColor(0x33, 0x33, 0x33)
MED_GRAY = RGBColor(0x66, 0x66, 0x66)
RED = RGBColor(0xB0, 0x2A, 0x2A)

prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
SW, SH = prs.slide_width, prs.slide_height
BLANK = prs.slide_layouts[6]


def add_bg(slide, color=WHITE):
    shp = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, SH)
    shp.fill.solid()
    shp.fill.fore_color.rgb = color
    shp.line.fill.background()
    shp.shadow.inherit = False
    slide.shapes._spTree.remove(shp._element)
    slide.shapes._spTree.insert(2, shp._element)
    return shp


def add_textbox(slide, l, t, w, h, text, size=18, color=DARK_GRAY, bold=False,
                 align=PP_ALIGN.LEFT, font="Calibri", italic=False, anchor=None,
                 line_spacing=None):
    tb = slide.shapes.add_textbox(l, t, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    if anchor:
        tf.vertical_anchor = anchor
    tf.margin_left = 0
    tf.margin_right = 0
    tf.margin_top = 0
    tf.margin_bottom = 0
    lines = text.split("\n")
    for i, line in enumerate(lines):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.text = line
        p.alignment = align
        if line_spacing:
            p.line_spacing = line_spacing
        for r in p.runs:
            r.font.size = Pt(size)
            r.font.color.rgb = color
            r.font.bold = bold
            r.font.italic = italic
            r.font.name = font
    return tb


def add_bullets(slide, l, t, w, h, items, size=16, color=DARK_GRAY, font="Calibri",
                 space_after=8, bullet_color=TEAL, line_spacing=1.05):
    """items: list of (text, level, bold_lead) ; manual bullet glyph + hanging indent."""
    tb = slide.shapes.add_textbox(l, t, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = 0
    tf.margin_right = 0
    tf.margin_top = 0
    tf.margin_bottom = 0
    for i, item in enumerate(items):
        txt, level = item[0], item[1]
        lead = item[2] if len(item) > 2 else None
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.alignment = PP_ALIGN.LEFT
        p.space_after = Pt(space_after)
        p.line_spacing = line_spacing
        indent = level * 0.28
        glyph = "\u25B8" if level == 0 else "\u2013"
        gsize = size if level == 0 else size - 1
        r0 = p.add_run()
        r0.text = ("   " * level) + glyph + "  "
        r0.font.size = Pt(gsize)
        r0.font.color.rgb = bullet_color if level == 0 else MED_GRAY
        r0.font.name = font
        if lead:
            r1 = p.add_run()
            r1.text = lead
            r1.font.size = Pt(size if level == 0 else size - 1)
            r1.font.bold = True
            r1.font.color.rgb = NAVY
            r1.font.name = font
        r2 = p.add_run()
        r2.text = txt
        r2.font.size = Pt(size if level == 0 else size - 1)
        r2.font.color.rgb = color
        r2.font.name = font
    return tb


def slide_header(slide, kicker, title, num, total=18, dark=False):
    add_bg(slide, WHITE)
    bar = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, Inches(1.35))
    bar.fill.solid(); bar.fill.fore_color.rgb = NAVY
    bar.line.fill.background(); bar.shadow.inherit = False
    accent = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(1.35), SW, Pt(4))
    accent.fill.solid(); accent.fill.fore_color.rgb = ORANGE
    accent.line.fill.background(); accent.shadow.inherit = False
    add_textbox(slide, Inches(0.55), Inches(0.18), Inches(10), Inches(0.35),
                kicker.upper(), size=13, color=RGBColor(0xBF, 0xD9, 0xE6), bold=True)
    add_textbox(slide, Inches(0.55), Inches(0.52), Inches(11.5), Inches(0.75),
                title, size=26, color=WHITE, bold=True)
    add_textbox(slide, Inches(12.55), Inches(7.08), Inches(0.6), Inches(0.35),
                f"{num:02d}", size=12, color=MED_GRAY, align=PP_ALIGN.RIGHT)
    add_textbox(slide, Inches(0.55), Inches(7.08), Inches(6), Inches(0.35),
                "Role of the Anaesthesiologist in Disasters  |  Source: Miller's Anesthesia, 10e",
                size=10, color=MED_GRAY, italic=True)


def footer_source(slide, text):
    add_textbox(slide, Inches(0.55), Inches(6.65), Inches(12.2), Inches(0.35),
                text, size=10.5, color=MED_GRAY, italic=True)


# =========================================================
# SLIDE 1 — TITLE
# =========================================================
s = prs.slides.add_slide(BLANK)
add_bg(s, NAVY)
band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(5.15), SW, Inches(0.12))
band.fill.solid(); band.fill.fore_color.rgb = ORANGE
band.line.fill.background(); band.shadow.inherit = False

add_textbox(s, Inches(0.9), Inches(1.6), Inches(11.5), Inches(0.5),
            "SEMINAR  \u2022  ANAESTHESIOLOGY", size=16, color=ORANGE, bold=True)
add_textbox(s, Inches(0.9), Inches(2.15), Inches(11.5), Inches(1.9),
            "Biological, Natural and Human-Induced\nDisasters", size=42, color=WHITE, bold=True,
            line_spacing=1.05)
add_textbox(s, Inches(0.9), Inches(4.05), Inches(11.5), Inches(0.8),
            "The Role of the Anaesthesiologist", size=26, color=LIGHT_TEAL, bold=False)
add_textbox(s, Inches(0.9), Inches(5.55), Inches(11), Inches(0.5),
            "Reference: Miller's Anesthesia, 10th Edition \u2014 Chapter on Disaster Preparedness & Response",
            size=14, color=RGBColor(0xAA, 0xC4, 0xD6), italic=True)
add_textbox(s, Inches(0.9), Inches(6.9), Inches(8), Inches(0.4),
            "Presented for postgraduate seminar", size=12, color=RGBColor(0x7E, 0x9C, 0xB0))

# =========================================================
# SLIDE 2 — AGENDA
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Overview", "Agenda", 2)
agenda_items = [
    "Introduction & Key Points",
    "Section 1 \u2014 Natural Disasters (Earthquakes, Tsunami, Hurricanes)",
    "Section 2 \u2014 Acts of Terrorism (9/11, Mass Shootings)",
    "Section 3 \u2014 CBRN Attacks (Chemical / Biological / Radiological / Nuclear)",
    "Section 4 \u2014 Epidemic & Pandemic Infectious Outbreaks",
    "Cross-Cutting Anaesthesiologist Competencies",
    "Recent Evidence & Take-Home Points",
]
y = 1.75
for i, item in enumerate(agenda_items, 1):
    chip = s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(0.6), Inches(y), Inches(0.55), Inches(0.55))
    chip.fill.solid(); chip.fill.fore_color.rgb = TEAL if i % 2 else NAVY
    chip.line.fill.background(); chip.shadow.inherit = False
    tf = chip.text_frame; tf.word_wrap = False
    tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0
    p = tf.paragraphs[0]; p.text = str(i); p.alignment = PP_ALIGN.CENTER
    r = p.runs[0]; r.font.size = Pt(18); r.font.bold = True; r.font.color.rgb = WHITE
    add_textbox(s, Inches(1.35), Inches(y+0.03), Inches(10.8), Inches(0.55),
                item, size=17, color=DARK_GRAY, anchor=MSO_ANCHOR.MIDDLE)
    y += 0.72

# =========================================================
# SLIDE 3 — INTRODUCTION
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Introduction", "Why Anaesthesiologists Are Central to Disaster Response", 3)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(7.0), Inches(4.6), [
    ("In-depth pharmacology & physiology knowledge", 0),
    ("Expertise in resuscitation and airway management", 0),
    ("Extensive critical care medicine experience", 0),
    ("Skilled in pain management / alleviation", 0),
    ("Trained for complex, extensive surgical procedures", 0),
    ("Chapter is organized into four sections:", 0),
    ("Natural disasters", 1),
    ("Acts of terrorism", 1),
    ("Chemical, Biological, Radiological & Nuclear (CBRN) warfare", 1),
    ("Epidemic and pandemic infectious outbreaks", 1),
], size=16.5)

quote_box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(7.95), Inches(1.9), Inches(4.75), Inches(4.1))
quote_box.fill.solid(); quote_box.fill.fore_color.rgb = LIGHT_TEAL
quote_box.line.color.rgb = TEAL; quote_box.line.width = Pt(1)
quote_box.shadow.inherit = False
tf = quote_box.text_frame; tf.word_wrap = True
tf.margin_left = Inches(0.3); tf.margin_right = Inches(0.3); tf.margin_top = Inches(0.3)
p = tf.paragraphs[0]
r = p.add_run(); r.text = "\u201C"
r.font.size = Pt(40); r.font.color.rgb = TEAL; r.font.bold = True
p2 = tf.add_paragraph()
r2 = p2.add_run()
r2.text = ("Anesthesiologists are an extremely valuable part of the overall "
           "effort to optimize the health and recovery of victims of disaster.")
r2.font.size = Pt(18); r2.font.italic = True; r2.font.color.rgb = NAVY
p3 = tf.add_paragraph()
r3 = p3.add_run(); r3.text = "\u2014 Miller's Anesthesia, 10e"
r3.font.size = Pt(13); r3.font.color.rgb = MED_GRAY; r3.font.bold = True

# =========================================================
# SLIDE 4 — KEY POINTS
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Introduction", "Chapter Key Points", 4)
add_bullets(s, Inches(0.6), Inches(1.65), Inches(12.0), Inches(5.0), [
    ("Must be willing and able to modify traditional workflow to meet mass-casualty needs", 0),
    ("Natural disasters cause massive interruptions in normal healthcare provision", 0),
    ("Deploying from resource-rich to resource-limited settings brings unfamiliar infectious disease risk", 0),
    ("Physical and psychological stressors of disaster response can last months to years", 0),
    ("Visiting anaesthesiologists may add most value by replacing local staff who were killed/injured", 0),
    ("Disasters commonly cause drug & fluid shortages (Hurricane Maria 2017; COVID-19 2020)", 0),
    ("Unpredictable events (e.g., 9/11) make pre-existing triage & coordination plans essential", 0),
    ("Rising terrorism/mass-shooting incidence requires CBRN knowledge for every anaesthesiologist", 0),
    ("During outbreaks, anaesthesiologists act as isolation/transmission consultants alongside ID teams", 0),
    ("Pandemics force redeployment outside traditional roles (e.g., as ICU intensivists)", 0),
], size=16, space_after=10)

# =========================================================
# SECTION DIVIDER template
# =========================================================
def section_divider(num_str, title_text, subtitle_text, slide_num):
    s = prs.slides.add_slide(BLANK)
    add_bg(s, NAVY)
    band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, Inches(0.35), SH)
    band.fill.solid(); band.fill.fore_color.rgb = ORANGE
    band.line.fill.background(); band.shadow.inherit = False
    add_textbox(s, Inches(1.1), Inches(2.5), Inches(4), Inches(1.5),
                num_str, size=90, color=RGBColor(0x1F, 0x4C, 0x66), bold=True)
    add_textbox(s, Inches(1.15), Inches(3.65), Inches(10.8), Inches(1.3),
                title_text, size=38, color=WHITE, bold=True)
    add_textbox(s, Inches(1.15), Inches(4.65), Inches(10.5), Inches(1.0),
                subtitle_text, size=18, color=LIGHT_TEAL, italic=True)
    add_textbox(s, Inches(12.55), Inches(7.08), Inches(0.6), Inches(0.35),
                f"{slide_num:02d}", size=12, color=RGBColor(0x7E,0x9C,0xB0), align=PP_ALIGN.RIGHT)
    return s

# =========================================================
# SLIDE 5 — SECTION 1 DIVIDER
# =========================================================
section_divider("01", "Natural Disasters", "Earthquakes  \u2022  Tsunami  \u2022  Hurricanes", 5)

# =========================================================
# SLIDE 6 — Natural disasters overview
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Impact on the Healthcare System", 6)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(6.9), Inches(4.6), [
    ("Damage to roads disrupts prehospital access and transport", 0),
    ("Loss of water, oxygen, fuel, electricity cripples hospital function", 0),
    ("Hospitals themselves may be damaged or destroyed", 0),
    ("Telecommunications fail while call volumes spike \u2014 coordination becomes very difficult", 0),
    ("Historical events examined: earthquakes, tsunami, hurricanes", 0),
], size=17)
img_box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(7.9), Inches(1.75), Inches(4.8), Inches(4.6))
img_box.fill.solid(); img_box.fill.fore_color.rgb = LIGHT_TEAL
img_box.line.color.rgb = TEAL; img_box.shadow.inherit = False
tf = img_box.text_frame; tf.word_wrap = True; tf.vertical_anchor = MSO_ANCHOR.MIDDLE
tf.margin_left = Inches(0.35); tf.margin_right = Inches(0.35)
p = tf.paragraphs[0]; p.alignment = PP_ALIGN.LEFT
r = p.add_run(); r.text = "Disruption cascade:\n"
r.font.bold = True; r.font.size = Pt(18); r.font.color.rgb = NAVY
for line in ["Infrastructure damage", "\u2193", "Loss of utilities & access",
             "\u2193", "Hospital capacity collapse", "\u2193", "Surge of external medical teams"]:
    p2 = tf.add_paragraph(); p2.alignment = PP_ALIGN.LEFT
    r2 = p2.add_run(); r2.text = line
    r2.font.size = Pt(16) if line != "\u2193" else Pt(14)
    r2.font.color.rgb = DARK_GRAY if line != "\u2193" else TEAL
    r2.font.bold = line != "\u2193"

# =========================================================
# SLIDE 7 — Earthquakes
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Earthquakes \u2014 Haiti 2010", 7)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.6), [
    ("Magnitude 7.0 earthquake, Jan 12, 2010 \u2014 one of the most devastating disasters in modern history", 0),
    (">130,000 deaths; 1.5 million immediately displaced", 0),
    (">80% of Haitian schools and >50% of hospitals destroyed", 0),
    ("International anaesthesiologists deployed for trauma care AND to backfill roles of lost/injured local staff", 0),
    ("USNS Comfort arrived within 72 hours \u2014 largest disaster-relief operation in its history:", 0),
    (">850 patients treated (237 children); 843 operations on 454 patients over 5 weeks (58 amputations)", 1),
    ("Musculoskeletal extremity injury was the leading admission diagnosis (~40%)", 1),
    ("A single airport was the sole access point \u2014 US Air Force assumed air-traffic control", 0),
], size=16.5, space_after=9)

# =========================================================
# SLIDE 8 — Tsunami
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Tsunami \u2014 Indian Ocean, 2004", 8)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.7), [
    (">230,000 killed, >5 million displaced \u2014 essentially zero warning time", 0),
    ("Thai Red Cross team (17 surgeons, 6 anaesthesiologists) reached Phang-Nga within 1 day; treated 107 patients over 3 days", 0),
    ("Halothane was the only inhalational agent available \u2014 anaesthesiologists must be nimble with rarely-used drugs", 0),
    ("Increased intraoperative desaturation (seawater aspiration, lung contusion)", 0),
    ("No lab access to guide fluids, electrolytes, antibiotics, blood products", 0),
    ("USNS Mercy deployment (Operation Unified Assistance) required staff vaccination updates (typhoid, hepatitis A), malaria prophylaxis, and cultural/religious briefing (Aceh >90% Muslim)", 0),
    ("~60% of health workers in Aceh province died or went missing", 0),
], size=15.5, space_after=8)

# =========================================================
# SLIDE 9 — Hurricanes
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Hurricanes \u2014 Katrina (2005) & Maria (2017)", 9)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.7), [
    ("Hurricane Katrina (2005):", 0),
    ("New Orleans' two largest teaching hospitals closed; Charity Hospital never reopened", 1),
    ("Anaesthesiology residency graduates in Louisiana fell from 24/yr (2004) to 13/yr (2007)", 1),
    ("37% of anaesthesiologists reported difficulty filling open positions; 92% reported rising daily caseload", 1),
    ("Hurricane Maria (2017):", 0),
    ("Knocked out Puerto Rico's water, power, telecommunications, transport", 1),
    ("Triggered mainland US drug & IV fluid shortages \u2014 anaesthesiologists led national conservation efforts", 1),
], size=17, space_after=10)

# =========================================================
# SLIDE 10 — SECTION 2 DIVIDER
# =========================================================
section_divider("02", "Acts of Terrorism", "September 11  \u2022  Mass Shootings", 10)

# =========================================================
# SLIDE 11 — 9/11 + Mass shootings
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 2 \u00b7 Terrorism", "September 11, 2001 \u2014 Bellevue Hospital", 11)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.6), [
    ("Telecommunications down \u2014 medical students used as physical \u201Crunners\u201D", 0),
    ("Staff wore name / specialty / title labels for rapid face-to-face identification", 0),
    ("Three-tier triage used: Green (non-urgent), Yellow (potentially urgent), Red (immediate, life-threatening)", 0),
    ("Yellow patients needing airway management/sedation assigned a senior anaesthesiology resident or critical care fellow", 0),
    ("Leadership mandated shift rotations as the surge slowed \u2014 preventing burnout from prolonged 24/7 response", 0),
], size=17)

# =========================================================
# SLIDE 12 — Mass shootings
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 2 \u00b7 Terrorism", "Mass Shootings", 12)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(6.6), Inches(4.6), [
    ("188 mass shootings (\u22654 killed by a lone shooter) in the US since 1966", 0),
    ("1,349 total deaths; 473 between 2016\u2013March 2023", 0),
    ("No setting is exempt \u2014 schools, churches, offices, military bases", 0),
    ("Rising use of military-style semi-automatic rifles (e.g., AR-15) changes the injury pattern seen", 0),
], size=17)
box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(7.55), Inches(1.75), Inches(5.15), Inches(4.6))
box.fill.solid(); box.fill.fore_color.rgb = RGBColor(0xFC, 0xE9, 0xE4)
box.line.color.rgb = RED; box.shadow.inherit = False
tf = box.text_frame; tf.word_wrap = True; tf.margin_left = Inches(0.3); tf.margin_right = Inches(0.3); tf.margin_top = Inches(0.25)
p = tf.paragraphs[0]
r = p.add_run(); r.text = "Clinical Implication"
r.font.bold = True; r.font.size = Pt(18); r.font.color.rgb = RED
p2 = tf.add_paragraph()
r2 = p2.add_run()
r2.text = ("High-velocity rifle wounds cause wide tissue destruction \u2014 organs are "
           "\u201Csmashed/shredded\u201D rather than simply lacerated (vs. handgun wounds), "
           "due to markedly higher energy transfer.")
r2.font.size = Pt(16); r2.font.color.rgb = DARK_GRAY
p3 = tf.add_paragraph()
r3 = p3.add_run()
r3.text = "\nEvery anaesthesiologist \u2014 not only those at trauma centers \u2014 must be prepared for this injury pattern."
r3.font.size = Pt(15); r3.font.italic = True; r3.font.color.rgb = NAVY

# =========================================================
# SLIDE 13 — SECTION 3 DIVIDER
# =========================================================
section_divider("03", "CBRN Attacks", "Chemical \u00b7 Biological \u00b7 Radiological \u00b7 Nuclear", 13)

# =========================================================
# SLIDE 14 — CBRN causes & principles
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 3 \u00b7 CBRN", "Causes & Command Principles", 14)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(6.7), Inches(4.7), [
    ("Three causes of CBRN incidents:", 0),
    ("Intentional \u2014 deliberate terror (political / religious / ideological)", 1),
    ("Accidental \u2014 human error-induced release/detonation", 1),
    ("Natural \u2014 secondary release triggered by a natural disaster", 1),
    ("ASA maintains CBRN protocols/SOPs requiring system-wide training", 0),
    ("Disaster preparedness is a hospital-wide responsibility, not just the ED's", 0),
], size=16.5)
rule_box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(7.55), Inches(1.75), Inches(5.15), Inches(2.0))
rule_box.fill.solid(); rule_box.fill.fore_color.rgb = NAVY
rule_box.line.fill.background(); rule_box.shadow.inherit = False
tf = rule_box.text_frame; tf.word_wrap = True; tf.vertical_anchor = MSO_ANCHOR.MIDDLE
tf.margin_left = Inches(0.3); tf.margin_right = Inches(0.3)
p = tf.paragraphs[0]; p.alignment = PP_ALIGN.CENTER
r = p.add_run(); r.text = "\u201CDo not become the casualty yourself.\u201D"
r.font.size = Pt(22); r.font.bold = True; r.font.italic = True; r.font.color.rgb = WHITE
p2 = tf.add_paragraph(); p2.alignment = PP_ALIGN.CENTER
r2 = p2.add_run(); r2.text = "First rule of CBRN casualty treatment"
r2.font.size = Pt(13); r2.font.color.rgb = LIGHT_TEAL
add_bullets(s, Inches(7.55), Inches(4.05), Inches(5.15), Inches(2.4), [
    ("Incident commander sets maximal barrier protection before care begins", 0),
    ("Command structure mirrors military model: local \u2192 state \u2192 federal", 0),
], size=15)

# =========================================================
# SLIDE 15 — PPE, decontamination, TOXALS
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 3 \u00b7 CBRN", "PPE, Decontamination & TOXALS", 15)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(6.5), Inches(4.8), [
    ("Minimum PPE = Level C for intubation, bodily-fluid exposure, or airborne-infection risk", 0),
    ("Level C balances tactile dexterity with protection against chemical/biologic warfare agents", 0),
    ("Assume hazard is persistent & transmissible until proven otherwise", 0),
    ("Establish decontamination zone before life support/antidote therapy proceeds", 0),
], size=16)
toxals_box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(7.35), Inches(1.75), Inches(5.35), Inches(4.8))
toxals_box.fill.solid(); toxals_box.fill.fore_color.rgb = LIGHT_TEAL
toxals_box.line.color.rgb = TEAL; toxals_box.shadow.inherit = False
tf = toxals_box.text_frame; tf.word_wrap = True; tf.margin_left = Inches(0.3); tf.margin_right = Inches(0.3); tf.margin_top = Inches(0.25)
p = tf.paragraphs[0]
r = p.add_run(); r.text = "TOXALS \u2014 Toxicology Advanced Life Support"
r.font.bold = True; r.font.size = Pt(17); r.font.color.rgb = NAVY
p2 = tf.add_paragraph()
r2 = p2.add_run(); r2.text = "Extends ACLS / ATLS / BLS to the mnemonic:"
r2.font.size = Pt(14); r2.font.color.rgb = DARK_GRAY
mnem = [("A", "Airway"), ("B", "Breathing"), ("C", "Circulation"), ("D", "Disability"),
        ("D", "Drugs"), ("E", "Exposure"), ("E", "Environment")]
for letter, word in mnem:
    p3 = tf.add_paragraph()
    r3a = p3.add_run(); r3a.text = f"{letter} \u2014 "
    r3a.font.bold = True; r3a.font.size = Pt(15); r3a.font.color.rgb = ORANGE
    r3b = p3.add_run(); r3b.text = word
    r3b.font.size = Pt(15); r3b.font.color.rgb = DARK_GRAY

# =========================================================
# SLIDE 16 — SECTION 4 DIVIDER
# =========================================================
section_divider("04", "Epidemic & Pandemic\nOutbreaks", "Influenza  \u2022  SARS  \u2022  COVID-19", 16)

# =========================================================
# SLIDE 17 — Influenza & SARS
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 4 \u00b7 Pandemics", "Influenza & SARS \u2014 Occupational Risk", 17)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(12.0), Inches(4.8), [
    ("Influenza:", 0),
    ("Transmission mainly droplet/contact over short distances (\u22646 ft); sustained airborne spread unproven", 1),
    ("Aerosol-generating procedures (intubation, bronchoscopy) still warrant N95/airborne precautions", 1),
    ("SARS (2002\u20132003):", 0),
    ("8,096 cases, 774 deaths across 29 countries; spread globally via air travel from one Hong Kong hotel cluster", 1),
    ("Toronto epicenter: 361 cases, 33 deaths (9%); over half of infected were healthcare workers \u2014 including 3 anaesthesiologists and 1 intensivist", 1),
    ("Overall case fatality ~15%, >50% in patients over 65", 1),
], size=16, space_after=9)

# =========================================================
# SLIDE 18 — COVID-19
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 4 \u00b7 Pandemics", "COVID-19 \u2014 The Anaesthesiologist's Expanded Role", 18)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(12.0), Inches(4.9), [
    ("Pre-surge planning: PPE strategy, resource allocation, staffing models (informed by SARS experience)", 0),
    ("Advocated for/implemented elective surgery shutdowns to preserve capacity and PPE", 0),
    ("Public communication to promote nonpharmaceutical prevention (\u201Cflatten the curve\u201D)", 0),
    ("PPE conservation & innovation \u2014 e.g., aerosol-capture masks connected to suction", 0),
    ("Redeployed as ICU intensivists when critical care staff were insufficient", 0),
    ("Contributed to tiered critical-care surge staffing models across successive waves", 0),
    ("\u201CSilos of critical care appropriately disappeared\u201D \u2014 unified, cross-department teams", 0),
], size=16, space_after=9)

# =========================================================
# SLIDE 19 — Synthesis table
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Synthesis", "Cross-Cutting Anaesthesiologist Competencies", 19)

rows = [
    ("Airway / Resuscitation", "Definitive airway management, RSI, damage-control resuscitation"),
    ("Triage", "Field & in-hospital triage leadership, esp. airway/sedation-risk patients"),
    ("OR / Surgical", "Rapid-sequence anaesthesia with limited drugs/monitoring, mass-casualty OR flow"),
    ("ICU / Critical Care", "Surge intensivist staffing, ventilator/ECMO management"),
    ("CBRN-Specific", "PPE selection (Level C), decontamination oversight, TOXALS resuscitation"),
    ("Pain Management", "Ongoing analgesia across large casualty volumes"),
    ("Administrative / Leadership", "OR resource allocation, drug/fluid conservation, institutional protocols"),
    ("Psychological Resilience", "Recognizing & managing personal stress/burnout from prolonged response"),
]
top = Inches(1.7)
left = Inches(0.6)
col1_w = Inches(3.6)
col2_w = Inches(8.6)
row_h = Inches(0.62)

hdr = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left, top, col1_w + col2_w, Inches(0.5))
hdr.fill.solid(); hdr.fill.fore_color.rgb = NAVY; hdr.line.fill.background(); hdr.shadow.inherit = False
tf = hdr.text_frame; tf.margin_left = Inches(0.2); tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]; r = p.add_run(); r.text = "Domain"
r.font.bold = True; r.font.size = Pt(15); r.font.color.rgb = WHITE
hdr2 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left + col1_w, top, col2_w, Inches(0.5))
hdr2.fill.solid(); hdr2.fill.fore_color.rgb = NAVY; hdr2.line.fill.background(); hdr2.shadow.inherit = False
tf2 = hdr2.text_frame; tf2.margin_left = Inches(0.2); tf2.vertical_anchor = MSO_ANCHOR.MIDDLE
p2 = tf2.paragraphs[0]; r2 = p2.add_run(); r2.text = "Anaesthesiologist's Role"
r2.font.bold = True; r2.font.size = Pt(15); r2.font.color.rgb = WHITE

y = top + Inches(0.5)
for i, (domain, role) in enumerate(rows):
    fill = LIGHT_TEAL if i % 2 == 0 else WHITE
    c1 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left, y, col1_w, row_h)
    c1.fill.solid(); c1.fill.fore_color.rgb = fill
    c1.line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC); c1.line.width = Pt(0.5); c1.shadow.inherit = False
    tf1 = c1.text_frame; tf1.word_wrap = True; tf1.margin_left = Inches(0.15); tf1.vertical_anchor = MSO_ANCHOR.MIDDLE
    p1 = tf1.paragraphs[0]; r1 = p1.add_run(); r1.text = domain
    r1.font.bold = True; r1.font.size = Pt(13); r1.font.color.rgb = NAVY

    c2 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left + col1_w, y, col2_w, row_h)
    c2.fill.solid(); c2.fill.fore_color.rgb = fill
    c2.line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC); c2.line.width = Pt(0.5); c2.shadow.inherit = False
    tf2r = c2.text_frame; tf2r.word_wrap = True; tf2r.margin_left = Inches(0.15); tf2r.vertical_anchor = MSO_ANCHOR.MIDDLE
    p2r = tf2r.paragraphs[0]; r2r = p2r.add_run(); r2r.text = role
    r2r.font.size = Pt(13); r2r.font.color.rgb = DARK_GRAY
    y += row_h

# =========================================================
# SLIDE 20 — Recent evidence
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Beyond the Textbook", "Recent Evidence (2024\u20132025)", 20)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.5), [
    ("Suda AJ, et al. Management of mass casualty incidents: a systematic review and clinical practice guideline update. Eur J Trauma Emerg Surg. 2025.", 0),
    ("PMID: 39792184 \u2014 updated guidance on decontamination, EMS coordination, and triage", 1),
    ("Hugelius K, Becker J. Common challenges in the prehospital management of mass-casualty incidents: a systematic integrative review. Prehosp Disaster Med. 2024.", 0),
    ("PMID: 39663866 \u2014 identifies recurring prehospital coordination gaps in MCIs", 1),
], size=16, space_after=12)
note = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(0.6), Inches(4.7), Inches(12.0), Inches(1.5))
note.fill.solid(); note.fill.fore_color.rgb = RGBColor(0xFC, 0xF3, 0xE3)
note.line.color.rgb = ORANGE; note.shadow.inherit = False
tf = note.text_frame; tf.word_wrap = True; tf.margin_left = Inches(0.25); tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]
r = p.add_run()
r.text = ("These reviews reinforce, rather than contradict, the Miller's Anesthesia framework \u2014 "
          "triage and decontamination protocols remain active areas of guideline refinement.")
r.font.size = Pt(15); r.font.italic = True; r.font.color.rgb = DARK_GRAY

# =========================================================
# SLIDE 21 — Take-home points
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Summary", "Take-Home Points", 21)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.8), [
    ("Anaesthesiologists bring resuscitation, airway, ICU, and pharmacologic expertise unmatched by most other specialties in disaster settings", 0),
    ("Role extends far beyond the OR: field triage, ED resuscitation, ICU surge, CBRN decontamination zones", 0),
    ("Every disaster type (natural, terrorism, CBRN, pandemic) has distinct clinical and logistic demands \u2014 but shared principles: command structure, PPE/protection, triage, resource conservation", 0),
    ("Institutional and personal preparedness (training, drills, psychological resilience) determine effectiveness when disaster strikes", 0),
    ("Anaesthesiology leadership (ASA protocols, Surgeon General precedent) has repeatedly shaped national-level disaster response", 0),
], size=17, space_after=12)

# =========================================================
# SLIDE 22 — Thank you
# =========================================================
s = prs.slides.add_slide(BLANK)
add_bg(s, NAVY)
band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(5.15), SW, Inches(0.12))
band.fill.solid(); band.fill.fore_color.rgb = ORANGE
band.line.fill.background(); band.shadow.inherit = False
add_textbox(s, Inches(0.9), Inches(2.7), Inches(11.5), Inches(1.2),
            "Thank You", size=48, color=WHITE, bold=True)
add_textbox(s, Inches(0.9), Inches(3.75), Inches(11), Inches(0.6),
            "Questions & Discussion", size=22, color=LIGHT_TEAL)
add_textbox(s, Inches(0.9), Inches(6.6), Inches(11), Inches(0.5),
            "Source: Miller's Anesthesia, 10th Edition \u2014 Disaster Preparedness & Response Chapter",
            size=13, color=RGBColor(0x9A,0xB8,0xC8), italic=True)

prs.save("/tmp/workspace/disaster-anesthesia-seminar/output/Role_of_Anaesthesiologist_in_Disasters.pptx")
print("Saved. Total slides:", len(prs.slides.__iter__.__self__._sldIdLst))
Running Command

cd /tmp/workspace/disaster-anesthesia-seminar && python build_ppt.py

Running Command

cd /tmp/workspace/disaster-anesthesia-seminar/output && ls -la && python -c " from pptx import Presentation prs = Presentation('Role_of_Anaesthesiologist_in_Disasters.pptx') print('slides:', len(prs.slides)) for i, sl in enumerate(prs.slides,1): texts = [sh.text_frame.text[:40] for sh in sl.shapes if sh.has_text_frame and sh.text_frame.text.strip()] print(i, texts[:2]) "

The seminar deck is built and verified - 22 slides covering the full topic structure.

Role of Anaesthesiologist in Disasters

Presentation · PPTX

Deck structure (22 slides):
  1. Title slide
  2. Agenda 3-4. Introduction & Chapter Key Points
  3. Section divider - Natural Disasters 6-9. Natural disasters overview, Earthquakes (Haiti 2010), Tsunami (2004), Hurricanes (Katrina/Maria)
  4. Section divider - Acts of Terrorism 11-12. 9/11 (Bellevue triage), Mass Shootings
  5. Section divider - CBRN Attacks 14-15. CBRN causes/command principles, PPE/Decontamination/TOXALS
  6. Section divider - Epidemic & Pandemic Outbreaks 17-18. Influenza & SARS, COVID-19
  7. Synthesis table - cross-cutting anaesthesiologist competencies
  8. Recent evidence (2024-2025 systematic reviews, PMIDs included)
  9. Take-home points
  10. Thank you / Q&A
Design uses a navy/teal/orange medical palette with section-divider slides, bullet hierarchies, a comparison table, and highlight boxes for key quotes (e.g. "Do not become the casualty yourself" and the TOXALS mnemonic). All content is sourced from the Miller's Anesthesia chapter content gathered earlier, with citations preserved on slide 20 for the supplementary PubMed evidence.
Let me know if you'd like me to adjust the slide count, add speaker notes, insert actual images (earthquake/tsunami/CBRN photos), or tweak the color theme.

inculde role of anaesthesiologist in every disaster

Reading File
Writing File

~/disaster-anesthesia-seminar/build_ppt.py

"""
Seminar deck: Role of the Anaesthesiologist in Biological, Natural and
Human-Induced Disasters (content sourced from Miller's Anesthesia, 10e)
Every disaster-specific slide includes an explicit "Role of the Anaesthesiologist" box.
"""
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 pptx.enum.shapes import MSO_SHAPE

# ---------- palette ----------
NAVY = RGBColor(0x0B, 0x2E, 0x4E)
TEAL = RGBColor(0x11, 0x7A, 0x8B)
LIGHT_TEAL = RGBColor(0xDD, 0xF0, 0xF2)
ORANGE = RGBColor(0xE0, 0x7A, 0x2C)
LIGHT_ORANGE = RGBColor(0xFC, 0xEA, 0xD9)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK_GRAY = RGBColor(0x33, 0x33, 0x33)
MED_GRAY = RGBColor(0x66, 0x66, 0x66)
RED = RGBColor(0xB0, 0x2A, 0x2A)

prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
SW, SH = prs.slide_width, prs.slide_height
BLANK = prs.slide_layouts[6]


def add_bg(slide, color=WHITE):
    shp = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, SH)
    shp.fill.solid()
    shp.fill.fore_color.rgb = color
    shp.line.fill.background()
    shp.shadow.inherit = False
    slide.shapes._spTree.remove(shp._element)
    slide.shapes._spTree.insert(2, shp._element)
    return shp


def add_textbox(slide, l, t, w, h, text, size=18, color=DARK_GRAY, bold=False,
                 align=PP_ALIGN.LEFT, font="Calibri", italic=False, anchor=None,
                 line_spacing=None):
    tb = slide.shapes.add_textbox(l, t, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    if anchor:
        tf.vertical_anchor = anchor
    tf.margin_left = 0
    tf.margin_right = 0
    tf.margin_top = 0
    tf.margin_bottom = 0
    lines = text.split("\n")
    for i, line in enumerate(lines):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.text = line
        p.alignment = align
        if line_spacing:
            p.line_spacing = line_spacing
        for r in p.runs:
            r.font.size = Pt(size)
            r.font.color.rgb = color
            r.font.bold = bold
            r.font.italic = italic
            r.font.name = font
    return tb


def add_bullets(slide, l, t, w, h, items, size=16, color=DARK_GRAY, font="Calibri",
                 space_after=8, bullet_color=TEAL, line_spacing=1.05):
    """items: list of (text, level[, bold_lead])."""
    tb = slide.shapes.add_textbox(l, t, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = 0
    tf.margin_right = 0
    tf.margin_top = 0
    tf.margin_bottom = 0
    for i, item in enumerate(items):
        txt, level = item[0], item[1]
        lead = item[2] if len(item) > 2 else None
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.alignment = PP_ALIGN.LEFT
        p.space_after = Pt(space_after)
        p.line_spacing = line_spacing
        glyph = "\u25B8" if level == 0 else "\u2013"
        gsize = size if level == 0 else size - 1
        r0 = p.add_run()
        r0.text = ("   " * level) + glyph + "  "
        r0.font.size = Pt(gsize)
        r0.font.color.rgb = bullet_color if level == 0 else MED_GRAY
        r0.font.name = font
        if lead:
            r1 = p.add_run()
            r1.text = lead
            r1.font.size = Pt(size if level == 0 else size - 1)
            r1.font.bold = True
            r1.font.color.rgb = NAVY
            r1.font.name = font
        r2 = p.add_run()
        r2.text = txt
        r2.font.size = Pt(size if level == 0 else size - 1)
        r2.font.color.rgb = color
        r2.font.name = font
    return tb


def role_box(slide, l, t, w, h, items, title="ROLE OF THE ANAESTHESIOLOGIST", size=14.5):
    """A highlighted callout box (orange accent) listing the anaesthesiologist's role
    for the specific disaster on that slide. items = list of strings."""
    box = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, l, t, w, h)
    box.fill.solid(); box.fill.fore_color.rgb = LIGHT_ORANGE
    box.line.color.rgb = ORANGE; box.line.width = Pt(1.25)
    box.shadow.inherit = False

    # header strip
    hdr = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, l, t, w, Inches(0.5))
    hdr.fill.solid(); hdr.fill.fore_color.rgb = ORANGE
    hdr.line.fill.background(); hdr.shadow.inherit = False
    tfh = hdr.text_frame; tfh.vertical_anchor = MSO_ANCHOR.MIDDLE
    tfh.margin_left = Inches(0.2); tfh.margin_right = Inches(0.1)
    ph = tfh.paragraphs[0]
    rh = ph.add_run(); rh.text = "\u2695  " + title
    rh.font.bold = True; rh.font.size = Pt(14); rh.font.color.rgb = WHITE

    tb = slide.shapes.add_textbox(l + Inches(0.25), t + Inches(0.62), w - Inches(0.45), h - Inches(0.75))
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0
    for i, txt in enumerate(items):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.space_after = Pt(6)
        p.line_spacing = 1.05
        r0 = p.add_run(); r0.text = "\u2022  "
        r0.font.size = Pt(size); r0.font.bold = True; r0.font.color.rgb = ORANGE
        r1 = p.add_run(); r1.text = txt
        r1.font.size = Pt(size); r1.font.color.rgb = DARK_GRAY
    return box


def slide_header(slide, kicker, title, num):
    add_bg(slide, WHITE)
    bar = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, Inches(1.35))
    bar.fill.solid(); bar.fill.fore_color.rgb = NAVY
    bar.line.fill.background(); bar.shadow.inherit = False
    accent = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(1.35), SW, Pt(4))
    accent.fill.solid(); accent.fill.fore_color.rgb = ORANGE
    accent.line.fill.background(); accent.shadow.inherit = False
    add_textbox(slide, Inches(0.55), Inches(0.18), Inches(10), Inches(0.35),
                kicker.upper(), size=13, color=RGBColor(0xBF, 0xD9, 0xE6), bold=True)
    add_textbox(slide, Inches(0.55), Inches(0.52), Inches(11.5), Inches(0.75),
                title, size=25, color=WHITE, bold=True)
    add_textbox(slide, Inches(12.55), Inches(7.08), Inches(0.6), Inches(0.35),
                f"{num:02d}", size=12, color=MED_GRAY, align=PP_ALIGN.RIGHT)
    add_textbox(slide, Inches(0.55), Inches(7.08), Inches(7.5), Inches(0.35),
                "Role of the Anaesthesiologist in Disasters  |  Source: Miller's Anesthesia, 10e",
                size=10, color=MED_GRAY, italic=True)


def section_divider(num_str, title_text, subtitle_text, slide_num):
    s = prs.slides.add_slide(BLANK)
    add_bg(s, NAVY)
    band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, Inches(0.35), SH)
    band.fill.solid(); band.fill.fore_color.rgb = ORANGE
    band.line.fill.background(); band.shadow.inherit = False
    add_textbox(s, Inches(1.1), Inches(2.5), Inches(4), Inches(1.5),
                num_str, size=90, color=RGBColor(0x1F, 0x4C, 0x66), bold=True)
    add_textbox(s, Inches(1.15), Inches(3.65), Inches(10.8), Inches(1.3),
                title_text, size=38, color=WHITE, bold=True)
    add_textbox(s, Inches(1.15), Inches(4.65), Inches(10.5), Inches(1.0),
                subtitle_text, size=18, color=LIGHT_TEAL, italic=True)
    add_textbox(s, Inches(12.55), Inches(7.08), Inches(0.6), Inches(0.35),
                f"{slide_num:02d}", size=12, color=RGBColor(0x7E, 0x9C, 0xB0), align=PP_ALIGN.RIGHT)
    return s


# =========================================================
# SLIDE 1 — TITLE
# =========================================================
s = prs.slides.add_slide(BLANK)
add_bg(s, NAVY)
band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(5.15), SW, Inches(0.12))
band.fill.solid(); band.fill.fore_color.rgb = ORANGE
band.line.fill.background(); band.shadow.inherit = False

add_textbox(s, Inches(0.9), Inches(1.6), Inches(11.5), Inches(0.5),
            "SEMINAR  \u2022  ANAESTHESIOLOGY", size=16, color=ORANGE, bold=True)
add_textbox(s, Inches(0.9), Inches(2.15), Inches(11.5), Inches(1.9),
            "Biological, Natural and Human-Induced\nDisasters", size=42, color=WHITE, bold=True,
            line_spacing=1.05)
add_textbox(s, Inches(0.9), Inches(4.05), Inches(11.5), Inches(0.8),
            "The Role of the Anaesthesiologist", size=26, color=LIGHT_TEAL, bold=False)
add_textbox(s, Inches(0.9), Inches(5.55), Inches(11), Inches(0.5),
            "Reference: Miller's Anesthesia, 10th Edition \u2014 Chapter on Disaster Preparedness & Response",
            size=14, color=RGBColor(0xAA, 0xC4, 0xD6), italic=True)
add_textbox(s, Inches(0.9), Inches(6.9), Inches(8), Inches(0.4),
            "Presented for postgraduate seminar", size=12, color=RGBColor(0x7E, 0x9C, 0xB0))

# =========================================================
# SLIDE 2 — AGENDA
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Overview", "Agenda", 2)
agenda_items = [
    "Introduction & Key Points",
    "Section 1 \u2014 Natural Disasters (Earthquakes, Tsunami, Hurricanes)",
    "Section 2 \u2014 Acts of Terrorism (9/11, Mass Shootings)",
    "Section 3 \u2014 CBRN Attacks (Chemical / Biological / Radiological / Nuclear)",
    "Section 4 \u2014 Epidemic & Pandemic Infectious Outbreaks",
    "Cross-Cutting Anaesthesiologist Competencies",
    "Recent Evidence & Take-Home Points",
]
y = 1.75
for i, item in enumerate(agenda_items, 1):
    chip = s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(0.6), Inches(y), Inches(0.55), Inches(0.55))
    chip.fill.solid(); chip.fill.fore_color.rgb = TEAL if i % 2 else NAVY
    chip.line.fill.background(); chip.shadow.inherit = False
    tf = chip.text_frame; tf.word_wrap = False
    tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0
    p = tf.paragraphs[0]; p.text = str(i); p.alignment = PP_ALIGN.CENTER
    r = p.runs[0]; r.font.size = Pt(18); r.font.bold = True; r.font.color.rgb = WHITE
    add_textbox(s, Inches(1.35), Inches(y + 0.03), Inches(10.8), Inches(0.55),
                item, size=17, color=DARK_GRAY, anchor=MSO_ANCHOR.MIDDLE)
    y += 0.72

# =========================================================
# SLIDE 3 — INTRODUCTION
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Introduction", "Why Anaesthesiologists Are Central to Disaster Response", 3)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(7.0), Inches(4.6), [
    ("In-depth pharmacology & physiology knowledge", 0),
    ("Expertise in resuscitation and airway management", 0),
    ("Extensive critical care medicine experience", 0),
    ("Skilled in pain management / alleviation", 0),
    ("Trained for complex, extensive surgical procedures", 0),
    ("Chapter is organized into four sections:", 0),
    ("Natural disasters", 1),
    ("Acts of terrorism", 1),
    ("Chemical, Biological, Radiological & Nuclear (CBRN) warfare", 1),
    ("Epidemic and pandemic infectious outbreaks", 1),
], size=16.5)

quote_box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(7.95), Inches(1.9), Inches(4.75), Inches(4.1))
quote_box.fill.solid(); quote_box.fill.fore_color.rgb = LIGHT_TEAL
quote_box.line.color.rgb = TEAL; quote_box.line.width = Pt(1)
quote_box.shadow.inherit = False
tf = quote_box.text_frame; tf.word_wrap = True
tf.margin_left = Inches(0.3); tf.margin_right = Inches(0.3); tf.margin_top = Inches(0.3)
p = tf.paragraphs[0]
r = p.add_run(); r.text = "\u201C"
r.font.size = Pt(40); r.font.color.rgb = TEAL; r.font.bold = True
p2 = tf.add_paragraph()
r2 = p2.add_run()
r2.text = ("Anesthesiologists are an extremely valuable part of the overall "
           "effort to optimize the health and recovery of victims of disaster.")
r2.font.size = Pt(18); r2.font.italic = True; r2.font.color.rgb = NAVY
p3 = tf.add_paragraph()
r3 = p3.add_run(); r3.text = "\u2014 Miller's Anesthesia, 10e"
r3.font.size = Pt(13); r3.font.color.rgb = MED_GRAY; r3.font.bold = True

# =========================================================
# SLIDE 4 — KEY POINTS
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Introduction", "Chapter Key Points", 4)
add_bullets(s, Inches(0.6), Inches(1.65), Inches(12.0), Inches(5.0), [
    ("Must be willing and able to modify traditional workflow to meet mass-casualty needs", 0),
    ("Natural disasters cause massive interruptions in normal healthcare provision", 0),
    ("Deploying from resource-rich to resource-limited settings brings unfamiliar infectious disease risk", 0),
    ("Physical and psychological stressors of disaster response can last months to years", 0),
    ("Visiting anaesthesiologists may add most value by replacing local staff who were killed/injured", 0),
    ("Disasters commonly cause drug & fluid shortages (Hurricane Maria 2017; COVID-19 2020)", 0),
    ("Unpredictable events (e.g., 9/11) make pre-existing triage & coordination plans essential", 0),
    ("Rising terrorism/mass-shooting incidence requires CBRN knowledge for every anaesthesiologist", 0),
    ("During outbreaks, anaesthesiologists act as isolation/transmission consultants alongside ID teams", 0),
    ("Pandemics force redeployment outside traditional roles (e.g., as ICU intensivists)", 0),
], size=15.5, space_after=9)

# =========================================================
# SLIDE 5 — SECTION 1 DIVIDER
# =========================================================
section_divider("01", "Natural Disasters", "Earthquakes  \u2022  Tsunami  \u2022  Hurricanes", 5)

# =========================================================
# SLIDE 6 — Natural disasters overview (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Impact on the Healthcare System", 6)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(6.6), Inches(4.6), [
    ("Damage to roads disrupts prehospital access and transport", 0),
    ("Loss of water, oxygen, fuel, electricity cripples hospital function", 0),
    ("Hospitals themselves may be damaged or destroyed", 0),
    ("Telecommunications fail while call volumes spike \u2014 coordination becomes very difficult", 0),
    ("Historical events examined: earthquakes, tsunami, hurricanes", 0),
], size=16)
role_box(s, Inches(7.4), Inches(1.75), Inches(5.3), Inches(4.65), [
    "Extend beyond OR into field, ED, and improvised care sites when local systems collapse",
    "Provide resuscitation, airway, and pain management with severely limited resources",
    "Backfill for killed/injured local physicians as first priority in resource-poor regions",
    "Coordinate with relief organizations (military, Red Cross, NGOs) for staffing/logistics",
])

# =========================================================
# SLIDE 7 — Earthquakes (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Earthquakes \u2014 Haiti 2010", 7)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Magnitude 7.0 earthquake, Jan 2010 \u2014 among the most devastating disasters in modern history", 0),
    (">130,000 deaths; 1.5 million immediately displaced", 0),
    (">80% of schools and >50% of hospitals destroyed", 0),
    ("USNS Comfort arrived within 72 hours:", 0),
    (">850 patients treated; 843 operations on 454 patients over 5 weeks (58 amputations)", 1),
    ("Musculoskeletal extremity injury was the leading diagnosis (~40%)", 1),
], size=15, space_after=8)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Deployed internationally to provide trauma/surgical anaesthesia in field hospitals",
    "Temporarily replaced Haitian anaesthesiologists killed or injured in the earthquake",
    "Staffed the USNS Comfort as volunteers, adapting to shipboard OR conditions",
    "Managed a caseload dominated by fractures, crush injury, and amputations with limited monitoring",
])

# =========================================================
# SLIDE 8 — Tsunami (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Tsunami \u2014 Indian Ocean, 2004", 8)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    (">230,000 killed, >5 million displaced \u2014 essentially zero warning time", 0),
    ("Thai Red Cross team reached Phang-Nga within 1 day; treated 107 patients in 3 days", 0),
    ("Halothane was the only inhalational agent available", 0),
    ("No lab access to guide fluids, electrolytes, blood products", 0),
    ("~60% of health workers in Aceh province died or went missing", 0),
], size=15, space_after=8)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Co-led multidisciplinary relief teams (1 surgeon + 1 anaesthesiologist model)",
    "Used GA via rapid-sequence induction, spinal, regional, or local techniques as available",
    "Adapted to rarely-used agents (halothane) and managed desaturation from seawater aspiration/lung contusion without lab support",
    "Completed pre-deployment vaccination, malaria prophylaxis, and cultural/religious briefing",
])

# =========================================================
# SLIDE 9 — Hurricanes (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Hurricanes \u2014 Katrina (2005) & Maria (2017)", 9)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Katrina: New Orleans' two largest teaching hospitals closed; Charity Hospital never reopened", 0),
    ("LA anaesthesiology residency graduates fell from 24/yr (2004) to 13/yr (2007)", 0),
    ("37% of anaesthesiologists reported difficulty filling open positions; 92% reported rising caseload", 0),
    ("Maria: knocked out Puerto Rico's water, power, telecom, transport", 0),
    ("Triggered mainland US drug & IV fluid shortages", 0),
], size=15, space_after=8)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Sustained OR/anaesthesia coverage despite hospital closures and workforce loss",
    "Absorbed sharply increased daily caseload with fewer available anaesthesiologists",
    "Led national conservation/allocation strategies for scarce drugs and IV fluids after Maria",
    "Supported continuity of anaesthesiology training programs amid infrastructure loss",
])

# =========================================================
# SLIDE 10 — SECTION 2 DIVIDER
# =========================================================
section_divider("02", "Acts of Terrorism", "September 11  \u2022  Mass Shootings", 10)

# =========================================================
# SLIDE 11 — 9/11 (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 2 \u00b7 Terrorism", "September 11, 2001 \u2014 Bellevue Hospital", 11)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Telecommunications down \u2014 medical students used as physical \u201Crunners\u201D", 0),
    ("Staff wore name/specialty/title labels for rapid identification", 0),
    ("Three-tier triage: Green (non-urgent), Yellow (potentially urgent), Red (immediate)", 0),
    ("Leadership mandated shift rotations as the surge slowed", 0),
], size=15.5, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Assigned to every Yellow-category patient with potential airway/sedation needs",
    "Senior residents and critical care fellows staffed triage directly on the front line",
    "Adapted workflow to a communication breakdown (no phones/pagers)",
    "Helped design shift-rotation schedules to prevent burnout during prolonged response",
])

# =========================================================
# SLIDE 12 — Mass shootings (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 2 \u00b7 Terrorism", "Mass Shootings", 12)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("188 mass shootings (\u22654 killed by a lone shooter) in the US since 1966", 0),
    ("1,349 total deaths; 473 between 2016\u2013March 2023", 0),
    ("No setting is exempt \u2014 schools, churches, offices, military bases", 0),
    ("Military-style rifles (e.g., AR-15) cause markedly higher-energy wounds \u2014 organs \u201Csmashed/shredded\u201D rather than simply lacerated", 0),
], size=15, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Every anaesthesiologist \u2014 not only trauma-center staff \u2014 must be ready for this injury pattern",
    "Deliver damage-control anaesthesia: rapid massive transfusion, hemorrhage control, permissive hypotension as indicated",
    "Coordinate OR throughput when multiple casualties require near-simultaneous surgery",
    "Provide acute and ongoing pain management for survivors with severe soft-tissue/orthopedic injury",
])

# =========================================================
# SLIDE 13 — SECTION 3 DIVIDER
# =========================================================
section_divider("03", "CBRN Attacks", "Chemical \u00b7 Biological \u00b7 Radiological \u00b7 Nuclear", 13)

# =========================================================
# SLIDE 14 — CBRN causes & principles (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 3 \u00b7 CBRN", "Causes & Command Principles", 14)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Three causes of CBRN incidents:", 0),
    ("Intentional \u2014 deliberate terror", 1),
    ("Accidental \u2014 human error-induced release/detonation", 1),
    ("Natural \u2014 secondary release triggered by a natural disaster", 1),
    ("ASA maintains CBRN protocols/SOPs requiring system-wide training", 0),
    ("\u201CDo not become the casualty yourself\u201D \u2014 first rule of CBRN treatment", 0),
], size=15.5, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Determine their specific role BEFORE a mass-casualty/CBRN event occurs (pre-event planning)",
    "Complete ASA-recommended CBRN SOP training as part of hospital-wide (not just ED) preparedness",
    "Support incident command by defining protection level before initiating any patient contact",
])

# =========================================================
# SLIDE 15 — PPE, decontamination, TOXALS (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 3 \u00b7 CBRN", "PPE, Decontamination & TOXALS", 15)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Minimum PPE = Level C for intubation, fluid exposure, or airborne-infection risk", 0),
    ("Assume hazard is persistent & transmissible until proven otherwise", 0),
    ("TOXALS mnemonic extends ACLS/ATLS/BLS to:", 0),
    ("A-Airway, B-Breathing, C-Circulation, D-Disability, D-Drugs, E-Exposure, E-Environment", 1),
], size=15.5, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Don Level C PPE and provide airway/vascular access despite reduced dexterity in HAZMAT suits",
    "Deliver TOXALS-based resuscitation and antidote therapy inside the decontamination zone",
    "Manage ventilators for respiratory failure caused by nerve agents or biologic agents in ICU/PACU overflow areas",
])

# =========================================================
# SLIDE 16 — SECTION 4 DIVIDER
# =========================================================
section_divider("04", "Epidemic & Pandemic\nOutbreaks", "Influenza  \u2022  SARS  \u2022  COVID-19", 16)

# =========================================================
# SLIDE 17 — Influenza & SARS (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 4 \u00b7 Pandemics", "Influenza & SARS \u2014 Occupational Risk", 17)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Influenza spreads mainly by droplet/contact over short distances (\u22646 ft)", 0),
    ("SARS (2002\u20132003): 8,096 cases, 774 deaths across 29 countries", 0),
    ("Toronto epicenter: 361 cases, 33 deaths; over half infected were healthcare workers, including 3 anaesthesiologists and 1 intensivist", 0),
    ("Overall SARS case fatality ~15%, >50% in patients over 65", 0),
], size=15, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Recognized as high occupational-exposure-risk group due to airway procedures (intubation, bronchoscopy)",
    "Applied N95/airborne precautions for all aerosol-generating procedures",
    "Served as consultants alongside infectious disease teams on isolation and transmission-prevention pathways",
])

# =========================================================
# SLIDE 18 — COVID-19 (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 4 \u00b7 Pandemics", "COVID-19 \u2014 The Anaesthesiologist's Expanded Role", 18)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Massive strain on staffing, PPE, and ICU capacity worldwide", 0),
    ("Elective surgery shutdowns implemented to preserve capacity/PPE", 0),
    ("Surgeon General Jerome Adams (an anaesthesiologist) helped shape US policy", 0),
    ("Repeated surge waves required flexible critical-care staffing models", 0),
], size=15, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Led pre-surge planning: PPE strategy, resource allocation, staffing models",
    "Redeployed as ICU intensivists when critical care staff were insufficient",
    "Innovated PPE solutions (e.g., aerosol-capture masks) and conservation protocols",
    "Helped dissolve critical-care \u201Csilos,\u201D forming unified cross-department surge teams",
])

# =========================================================
# SLIDE 19 — Synthesis table
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Synthesis", "Cross-Cutting Anaesthesiologist Competencies", 19)

rows = [
    ("Airway / Resuscitation", "Definitive airway management, RSI, damage-control resuscitation"),
    ("Triage", "Field & in-hospital triage leadership, esp. airway/sedation-risk patients"),
    ("OR / Surgical", "Rapid-sequence anaesthesia with limited drugs/monitoring, mass-casualty OR flow"),
    ("ICU / Critical Care", "Surge intensivist staffing, ventilator/ECMO management"),
    ("CBRN-Specific", "PPE selection (Level C), decontamination oversight, TOXALS resuscitation"),
    ("Pain Management", "Ongoing analgesia across large casualty volumes"),
    ("Administrative / Leadership", "OR resource allocation, drug/fluid conservation, institutional protocols"),
    ("Psychological Resilience", "Recognizing & managing personal stress/burnout from prolonged response"),
]
top = Inches(1.7)
left = Inches(0.6)
col1_w = Inches(3.6)
col2_w = Inches(8.6)
row_h = Inches(0.62)

hdr = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left, top, col1_w + col2_w, Inches(0.5))
hdr.fill.solid(); hdr.fill.fore_color.rgb = NAVY; hdr.line.fill.background(); hdr.shadow.inherit = False
tf = hdr.text_frame; tf.margin_left = Inches(0.2); tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]; r = p.add_run(); r.text = "Domain"
r.font.bold = True; r.font.size = Pt(15); r.font.color.rgb = WHITE
hdr2 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left + col1_w, top, col2_w, Inches(0.5))
hdr2.fill.solid(); hdr2.fill.fore_color.rgb = NAVY; hdr2.line.fill.background(); hdr2.shadow.inherit = False
tf2 = hdr2.text_frame; tf2.margin_left = Inches(0.2); tf2.vertical_anchor = MSO_ANCHOR.MIDDLE
p2 = tf2.paragraphs[0]; r2 = p2.add_run(); r2.text = "Anaesthesiologist's Role"
r2.font.bold = True; r2.font.size = Pt(15); r2.font.color.rgb = WHITE

y = top + Inches(0.5)
for i, (domain, role) in enumerate(rows):
    fill = LIGHT_TEAL if i % 2 == 0 else WHITE
    c1 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left, y, col1_w, row_h)
    c1.fill.solid(); c1.fill.fore_color.rgb = fill
    c1.line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC); c1.line.width = Pt(0.5); c1.shadow.inherit = False
    tf1 = c1.text_frame; tf1.word_wrap = True; tf1.margin_left = Inches(0.15); tf1.vertical_anchor = MSO_ANCHOR.MIDDLE
    p1 = tf1.paragraphs[0]; r1 = p1.add_run(); r1.text = domain
    r1.font.bold = True; r1.font.size = Pt(13); r1.font.color.rgb = NAVY

    c2 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left + col1_w, y, col2_w, row_h)
    c2.fill.solid(); c2.fill.fore_color.rgb = fill
    c2.line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC); c2.line.width = Pt(0.5); c2.shadow.inherit = False
    tf2r = c2.text_frame; tf2r.word_wrap = True; tf2r.margin_left = Inches(0.15); tf2r.vertical_anchor = MSO_ANCHOR.MIDDLE
    p2r = tf2r.paragraphs[0]; r2r = p2r.add_run(); r2r.text = role
    r2r.font.size = Pt(13); r2r.font.color.rgb = DARK_GRAY
    y += row_h

# =========================================================
# SLIDE 20 — Recent evidence
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Beyond the Textbook", "Recent Evidence (2024\u20132025)", 20)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.5), [
    ("Suda AJ, et al. Management of mass casualty incidents: a systematic review and clinical practice guideline update. Eur J Trauma Emerg Surg. 2025.", 0),
    ("PMID: 39792184 \u2014 updated guidance on decontamination, EMS coordination, and triage", 1),
    ("Hugelius K, Becker J. Common challenges in the prehospital management of mass-casualty incidents: a systematic integrative review. Prehosp Disaster Med. 2024.", 0),
    ("PMID: 39663866 \u2014 identifies recurring prehospital coordination gaps in MCIs", 1),
], size=16, space_after=12)
note = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(0.6), Inches(4.7), Inches(12.0), Inches(1.5))
note.fill.solid(); note.fill.fore_color.rgb = RGBColor(0xFC, 0xF3, 0xE3)
note.line.color.rgb = ORANGE; note.shadow.inherit = False
tf = note.text_frame; tf.word_wrap = True; tf.margin_left = Inches(0.25); tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]
r = p.add_run()
r.text = ("These reviews reinforce, rather than contradict, the Miller's Anesthesia framework \u2014 "
          "triage and decontamination protocols remain active areas of guideline refinement.")
r.font.size = Pt(15); r.font.italic = True; r.font.color.rgb = DARK_GRAY

# =========================================================
# SLIDE 21 — Take-home points
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Summary", "Take-Home Points", 21)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.8), [
    ("Anaesthesiologists bring resuscitation, airway, ICU, and pharmacologic expertise unmatched by most other specialties in disaster settings", 0),
    ("Role extends far beyond the OR: field triage, ED resuscitation, ICU surge, CBRN decontamination zones", 0),
    ("Every disaster type (natural, terrorism, CBRN, pandemic) has distinct clinical/logistic demands \u2014 but shares principles: command structure, PPE/protection, triage, resource conservation", 0),
    ("Institutional and personal preparedness (training, drills, psychological resilience) determine effectiveness when disaster strikes", 0),
    ("Anaesthesiology leadership (ASA protocols, Surgeon General precedent) has repeatedly shaped national-level disaster response", 0),
], size=16.5, space_after=12)

# =========================================================
# SLIDE 22 — Thank you
# =========================================================
s = prs.slides.add_slide(BLANK)
add_bg(s, NAVY)
band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(5.15), SW, Inches(0.12))
band.fill.solid(); band.fill.fore_color.rgb = ORANGE
band.line.fill.background(); band.shadow.inherit = False
add_textbox(s, Inches(0.9), Inches(2.7), Inches(11.5), Inches(1.2),
            "Thank You", size=48, color=WHITE, bold=True)
add_textbox(s, Inches(0.9), Inches(3.75), Inches(11), Inches(0.6),
            "Questions & Discussion", size=22, color=LIGHT_TEAL)
add_textbox(s, Inches(0.9), Inches(6.6), Inches(11), Inches(0.5),
            "Source: Miller's Anesthesia, 10th Edition \u2014 Disaster Preparedness & Response Chapter",
            size=13, color=RGBColor(0x9A, 0xB8, 0xC8), italic=True)

prs.save("/tmp/workspace/disaster-anesthesia-seminar/output/Role_of_Anaesthesiologist_in_Disasters.pptx")
print("Saved. Total slides:", len(prs.slides._sldIdLst))
Running Command

rm /tmp/workspace/disaster-anesthesia-seminar/build_ppt.py

Writing File

~/disaster-anesthesia-seminar/build_ppt.py

"""
Seminar deck: Role of the Anaesthesiologist in Biological, Natural and
Human-Induced Disasters (content sourced from Miller's Anesthesia, 10e)
Every disaster-specific slide includes an explicit "Role of the Anaesthesiologist" box.
"""
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 pptx.enum.shapes import MSO_SHAPE

# ---------- palette ----------
NAVY = RGBColor(0x0B, 0x2E, 0x4E)
TEAL = RGBColor(0x11, 0x7A, 0x8B)
LIGHT_TEAL = RGBColor(0xDD, 0xF0, 0xF2)
ORANGE = RGBColor(0xE0, 0x7A, 0x2C)
LIGHT_ORANGE = RGBColor(0xFC, 0xEA, 0xD9)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK_GRAY = RGBColor(0x33, 0x33, 0x33)
MED_GRAY = RGBColor(0x66, 0x66, 0x66)
RED = RGBColor(0xB0, 0x2A, 0x2A)

prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
SW, SH = prs.slide_width, prs.slide_height
BLANK = prs.slide_layouts[6]


def add_bg(slide, color=WHITE):
    shp = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, SH)
    shp.fill.solid()
    shp.fill.fore_color.rgb = color
    shp.line.fill.background()
    shp.shadow.inherit = False
    slide.shapes._spTree.remove(shp._element)
    slide.shapes._spTree.insert(2, shp._element)
    return shp


def add_textbox(slide, l, t, w, h, text, size=18, color=DARK_GRAY, bold=False,
                 align=PP_ALIGN.LEFT, font="Calibri", italic=False, anchor=None,
                 line_spacing=None):
    tb = slide.shapes.add_textbox(l, t, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    if anchor:
        tf.vertical_anchor = anchor
    tf.margin_left = 0
    tf.margin_right = 0
    tf.margin_top = 0
    tf.margin_bottom = 0
    lines = text.split("\n")
    for i, line in enumerate(lines):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.text = line
        p.alignment = align
        if line_spacing:
            p.line_spacing = line_spacing
        for r in p.runs:
            r.font.size = Pt(size)
            r.font.color.rgb = color
            r.font.bold = bold
            r.font.italic = italic
            r.font.name = font
    return tb


def add_bullets(slide, l, t, w, h, items, size=16, color=DARK_GRAY, font="Calibri",
                 space_after=8, bullet_color=TEAL, line_spacing=1.05):
    """items: list of (text, level[, bold_lead])."""
    tb = slide.shapes.add_textbox(l, t, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = 0
    tf.margin_right = 0
    tf.margin_top = 0
    tf.margin_bottom = 0
    for i, item in enumerate(items):
        txt, level = item[0], item[1]
        lead = item[2] if len(item) > 2 else None
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.alignment = PP_ALIGN.LEFT
        p.space_after = Pt(space_after)
        p.line_spacing = line_spacing
        glyph = "\u25B8" if level == 0 else "\u2013"
        gsize = size if level == 0 else size - 1
        r0 = p.add_run()
        r0.text = ("   " * level) + glyph + "  "
        r0.font.size = Pt(gsize)
        r0.font.color.rgb = bullet_color if level == 0 else MED_GRAY
        r0.font.name = font
        if lead:
            r1 = p.add_run()
            r1.text = lead
            r1.font.size = Pt(size if level == 0 else size - 1)
            r1.font.bold = True
            r1.font.color.rgb = NAVY
            r1.font.name = font
        r2 = p.add_run()
        r2.text = txt
        r2.font.size = Pt(size if level == 0 else size - 1)
        r2.font.color.rgb = color
        r2.font.name = font
    return tb


def role_box(slide, l, t, w, h, items, title="ROLE OF THE ANAESTHESIOLOGIST", size=14.5):
    """A highlighted callout box (orange accent) listing the anaesthesiologist's role
    for the specific disaster on that slide. items = list of strings."""
    box = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, l, t, w, h)
    box.fill.solid(); box.fill.fore_color.rgb = LIGHT_ORANGE
    box.line.color.rgb = ORANGE; box.line.width = Pt(1.25)
    box.shadow.inherit = False

    hdr = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, l, t, w, Inches(0.5))
    hdr.fill.solid(); hdr.fill.fore_color.rgb = ORANGE
    hdr.line.fill.background(); hdr.shadow.inherit = False
    tfh = hdr.text_frame; tfh.vertical_anchor = MSO_ANCHOR.MIDDLE
    tfh.margin_left = Inches(0.2); tfh.margin_right = Inches(0.1)
    ph = tfh.paragraphs[0]
    rh = ph.add_run(); rh.text = "\u2695  " + title
    rh.font.bold = True; rh.font.size = Pt(14); rh.font.color.rgb = WHITE

    tb = slide.shapes.add_textbox(l + Inches(0.25), t + Inches(0.62), w - Inches(0.45), h - Inches(0.75))
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0
    for i, txt in enumerate(items):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.space_after = Pt(6)
        p.line_spacing = 1.05
        r0 = p.add_run(); r0.text = "\u2022  "
        r0.font.size = Pt(size); r0.font.bold = True; r0.font.color.rgb = ORANGE
        r1 = p.add_run(); r1.text = txt
        r1.font.size = Pt(size); r1.font.color.rgb = DARK_GRAY
    return box


def slide_header(slide, kicker, title, num):
    add_bg(slide, WHITE)
    bar = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, Inches(1.35))
    bar.fill.solid(); bar.fill.fore_color.rgb = NAVY
    bar.line.fill.background(); bar.shadow.inherit = False
    accent = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(1.35), SW, Pt(4))
    accent.fill.solid(); accent.fill.fore_color.rgb = ORANGE
    accent.line.fill.background(); accent.shadow.inherit = False
    add_textbox(slide, Inches(0.55), Inches(0.18), Inches(10), Inches(0.35),
                kicker.upper(), size=13, color=RGBColor(0xBF, 0xD9, 0xE6), bold=True)
    add_textbox(slide, Inches(0.55), Inches(0.52), Inches(11.5), Inches(0.75),
                title, size=25, color=WHITE, bold=True)
    add_textbox(slide, Inches(12.55), Inches(7.08), Inches(0.6), Inches(0.35),
                f"{num:02d}", size=12, color=MED_GRAY, align=PP_ALIGN.RIGHT)
    add_textbox(slide, Inches(0.55), Inches(7.08), Inches(7.5), Inches(0.35),
                "Role of the Anaesthesiologist in Disasters  |  Source: Miller's Anesthesia, 10e",
                size=10, color=MED_GRAY, italic=True)


def section_divider(num_str, title_text, subtitle_text, slide_num):
    s = prs.slides.add_slide(BLANK)
    add_bg(s, NAVY)
    band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, Inches(0.35), SH)
    band.fill.solid(); band.fill.fore_color.rgb = ORANGE
    band.line.fill.background(); band.shadow.inherit = False
    add_textbox(s, Inches(1.1), Inches(2.5), Inches(4), Inches(1.5),
                num_str, size=90, color=RGBColor(0x1F, 0x4C, 0x66), bold=True)
    add_textbox(s, Inches(1.15), Inches(3.65), Inches(10.8), Inches(1.3),
                title_text, size=38, color=WHITE, bold=True)
    add_textbox(s, Inches(1.15), Inches(4.65), Inches(10.5), Inches(1.0),
                subtitle_text, size=18, color=LIGHT_TEAL, italic=True)
    add_textbox(s, Inches(12.55), Inches(7.08), Inches(0.6), Inches(0.35),
                f"{slide_num:02d}", size=12, color=RGBColor(0x7E, 0x9C, 0xB0), align=PP_ALIGN.RIGHT)
    return s


# =========================================================
# SLIDE 1 — TITLE
# =========================================================
s = prs.slides.add_slide(BLANK)
add_bg(s, NAVY)
band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(5.15), SW, Inches(0.12))
band.fill.solid(); band.fill.fore_color.rgb = ORANGE
band.line.fill.background(); band.shadow.inherit = False

add_textbox(s, Inches(0.9), Inches(1.6), Inches(11.5), Inches(0.5),
            "SEMINAR  \u2022  ANAESTHESIOLOGY", size=16, color=ORANGE, bold=True)
add_textbox(s, Inches(0.9), Inches(2.15), Inches(11.5), Inches(1.9),
            "Biological, Natural and Human-Induced\nDisasters", size=42, color=WHITE, bold=True,
            line_spacing=1.05)
add_textbox(s, Inches(0.9), Inches(4.05), Inches(11.5), Inches(0.8),
            "The Role of the Anaesthesiologist", size=26, color=LIGHT_TEAL, bold=False)
add_textbox(s, Inches(0.9), Inches(5.55), Inches(11), Inches(0.5),
            "Reference: Miller's Anesthesia, 10th Edition \u2014 Chapter on Disaster Preparedness & Response",
            size=14, color=RGBColor(0xAA, 0xC4, 0xD6), italic=True)
add_textbox(s, Inches(0.9), Inches(6.9), Inches(8), Inches(0.4),
            "Presented for postgraduate seminar", size=12, color=RGBColor(0x7E, 0x9C, 0xB0))

# =========================================================
# SLIDE 2 — AGENDA
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Overview", "Agenda", 2)
agenda_items = [
    "Introduction & Key Points",
    "Section 1 \u2014 Natural Disasters (Earthquakes, Tsunami, Hurricanes)",
    "Section 2 \u2014 Acts of Terrorism (9/11, Mass Shootings)",
    "Section 3 \u2014 CBRN Attacks (Chemical / Biological / Radiological / Nuclear)",
    "Section 4 \u2014 Epidemic & Pandemic Infectious Outbreaks",
    "Cross-Cutting Anaesthesiologist Competencies",
    "Recent Evidence & Take-Home Points",
]
y = 1.75
for i, item in enumerate(agenda_items, 1):
    chip = s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(0.6), Inches(y), Inches(0.55), Inches(0.55))
    chip.fill.solid(); chip.fill.fore_color.rgb = TEAL if i % 2 else NAVY
    chip.line.fill.background(); chip.shadow.inherit = False
    tf = chip.text_frame; tf.word_wrap = False
    tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0
    p = tf.paragraphs[0]; p.text = str(i); p.alignment = PP_ALIGN.CENTER
    r = p.runs[0]; r.font.size = Pt(18); r.font.bold = True; r.font.color.rgb = WHITE
    add_textbox(s, Inches(1.35), Inches(y + 0.03), Inches(10.8), Inches(0.55),
                item, size=17, color=DARK_GRAY, anchor=MSO_ANCHOR.MIDDLE)
    y += 0.72

# =========================================================
# SLIDE 3 — INTRODUCTION
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Introduction", "Why Anaesthesiologists Are Central to Disaster Response", 3)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(7.0), Inches(4.6), [
    ("In-depth pharmacology & physiology knowledge", 0),
    ("Expertise in resuscitation and airway management", 0),
    ("Extensive critical care medicine experience", 0),
    ("Skilled in pain management / alleviation", 0),
    ("Trained for complex, extensive surgical procedures", 0),
    ("Chapter is organized into four sections:", 0),
    ("Natural disasters", 1),
    ("Acts of terrorism", 1),
    ("Chemical, Biological, Radiological & Nuclear (CBRN) warfare", 1),
    ("Epidemic and pandemic infectious outbreaks", 1),
], size=16.5)

quote_box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(7.95), Inches(1.9), Inches(4.75), Inches(4.1))
quote_box.fill.solid(); quote_box.fill.fore_color.rgb = LIGHT_TEAL
quote_box.line.color.rgb = TEAL; quote_box.line.width = Pt(1)
quote_box.shadow.inherit = False
tf = quote_box.text_frame; tf.word_wrap = True
tf.margin_left = Inches(0.3); tf.margin_right = Inches(0.3); tf.margin_top = Inches(0.3)
p = tf.paragraphs[0]
r = p.add_run(); r.text = "\u201C"
r.font.size = Pt(40); r.font.color.rgb = TEAL; r.font.bold = True
p2 = tf.add_paragraph()
r2 = p2.add_run()
r2.text = ("Anesthesiologists are an extremely valuable part of the overall "
           "effort to optimize the health and recovery of victims of disaster.")
r2.font.size = Pt(18); r2.font.italic = True; r2.font.color.rgb = NAVY
p3 = tf.add_paragraph()
r3 = p3.add_run(); r3.text = "\u2014 Miller's Anesthesia, 10e"
r3.font.size = Pt(13); r3.font.color.rgb = MED_GRAY; r3.font.bold = True

# =========================================================
# SLIDE 4 — KEY POINTS
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Introduction", "Chapter Key Points", 4)
add_bullets(s, Inches(0.6), Inches(1.65), Inches(12.0), Inches(5.0), [
    ("Must be willing and able to modify traditional workflow to meet mass-casualty needs", 0),
    ("Natural disasters cause massive interruptions in normal healthcare provision", 0),
    ("Deploying from resource-rich to resource-limited settings brings unfamiliar infectious disease risk", 0),
    ("Physical and psychological stressors of disaster response can last months to years", 0),
    ("Visiting anaesthesiologists may add most value by replacing local staff who were killed/injured", 0),
    ("Disasters commonly cause drug & fluid shortages (Hurricane Maria 2017; COVID-19 2020)", 0),
    ("Unpredictable events (e.g., 9/11) make pre-existing triage & coordination plans essential", 0),
    ("Rising terrorism/mass-shooting incidence requires CBRN knowledge for every anaesthesiologist", 0),
    ("During outbreaks, anaesthesiologists act as isolation/transmission consultants alongside ID teams", 0),
    ("Pandemics force redeployment outside traditional roles (e.g., as ICU intensivists)", 0),
], size=15.5, space_after=9)

# =========================================================
# SLIDE 5 — SECTION 1 DIVIDER
# =========================================================
section_divider("01", "Natural Disasters", "Earthquakes  \u2022  Tsunami  \u2022  Hurricanes", 5)

# =========================================================
# SLIDE 6 — Natural disasters overview (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Impact on the Healthcare System", 6)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(6.6), Inches(4.6), [
    ("Damage to roads disrupts prehospital access and transport", 0),
    ("Loss of water, oxygen, fuel, electricity cripples hospital function", 0),
    ("Hospitals themselves may be damaged or destroyed", 0),
    ("Telecommunications fail while call volumes spike \u2014 coordination becomes very difficult", 0),
    ("Historical events examined: earthquakes, tsunami, hurricanes", 0),
], size=16)
role_box(s, Inches(7.4), Inches(1.75), Inches(5.3), Inches(4.65), [
    "Extend beyond OR into field, ED, and improvised care sites when local systems collapse",
    "Provide resuscitation, airway, and pain management with severely limited resources",
    "Backfill for killed/injured local physicians as first priority in resource-poor regions",
    "Coordinate with relief organizations (military, Red Cross, NGOs) for staffing/logistics",
])

# =========================================================
# SLIDE 7 — Earthquakes (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Earthquakes \u2014 Haiti 2010", 7)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Magnitude 7.0 earthquake, Jan 2010 \u2014 among the most devastating disasters in modern history", 0),
    (">130,000 deaths; 1.5 million immediately displaced", 0),
    (">80% of schools and >50% of hospitals destroyed", 0),
    ("USNS Comfort arrived within 72 hours:", 0),
    (">850 patients treated; 843 operations on 454 patients over 5 weeks (58 amputations)", 1),
    ("Musculoskeletal extremity injury was the leading diagnosis (~40%)", 1),
], size=15, space_after=8)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Deployed internationally to provide trauma/surgical anaesthesia in field hospitals",
    "Temporarily replaced Haitian anaesthesiologists killed or injured in the earthquake",
    "Staffed the USNS Comfort as volunteers, adapting to shipboard OR conditions",
    "Managed a caseload dominated by fractures, crush injury, and amputations with limited monitoring",
])

# =========================================================
# SLIDE 8 — Tsunami (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Tsunami \u2014 Indian Ocean, 2004", 8)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    (">230,000 killed, >5 million displaced \u2014 essentially zero warning time", 0),
    ("Thai Red Cross team reached Phang-Nga within 1 day; treated 107 patients in 3 days", 0),
    ("Halothane was the only inhalational agent available", 0),
    ("No lab access to guide fluids, electrolytes, blood products", 0),
    ("~60% of health workers in Aceh province died or went missing", 0),
], size=15, space_after=8)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Co-led multidisciplinary relief teams (1 surgeon + 1 anaesthesiologist model)",
    "Used GA via rapid-sequence induction, spinal, regional, or local techniques as available",
    "Adapted to rarely-used agents (halothane) and managed desaturation from seawater aspiration/lung contusion without lab support",
    "Completed pre-deployment vaccination, malaria prophylaxis, and cultural/religious briefing",
])

# =========================================================
# SLIDE 9 — Hurricanes (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Hurricanes \u2014 Katrina (2005) & Maria (2017)", 9)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Katrina: New Orleans' two largest teaching hospitals closed; Charity Hospital never reopened", 0),
    ("LA anaesthesiology residency graduates fell from 24/yr (2004) to 13/yr (2007)", 0),
    ("37% of anaesthesiologists reported difficulty filling open positions; 92% reported rising caseload", 0),
    ("Maria: knocked out Puerto Rico's water, power, telecom, transport", 0),
    ("Triggered mainland US drug & IV fluid shortages", 0),
], size=15, space_after=8)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Sustained OR/anaesthesia coverage despite hospital closures and workforce loss",
    "Absorbed sharply increased daily caseload with fewer available anaesthesiologists",
    "Led national conservation/allocation strategies for scarce drugs and IV fluids after Maria",
    "Supported continuity of anaesthesiology training programs amid infrastructure loss",
])

# =========================================================
# SLIDE 10 — SECTION 2 DIVIDER
# =========================================================
section_divider("02", "Acts of Terrorism", "September 11  \u2022  Mass Shootings", 10)

# =========================================================
# SLIDE 11 — 9/11 (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 2 \u00b7 Terrorism", "September 11, 2001 \u2014 Bellevue Hospital", 11)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Telecommunications down \u2014 medical students used as physical \u201Crunners\u201D", 0),
    ("Staff wore name/specialty/title labels for rapid identification", 0),
    ("Three-tier triage: Green (non-urgent), Yellow (potentially urgent), Red (immediate)", 0),
    ("Leadership mandated shift rotations as the surge slowed", 0),
], size=15.5, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Assigned to every Yellow-category patient with potential airway/sedation needs",
    "Senior residents and critical care fellows staffed triage directly on the front line",
    "Adapted workflow to a communication breakdown (no phones/pagers)",
    "Helped design shift-rotation schedules to prevent burnout during prolonged response",
])

# =========================================================
# SLIDE 12 — Mass shootings (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 2 \u00b7 Terrorism", "Mass Shootings", 12)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("188 mass shootings (\u22654 killed by a lone shooter) in the US since 1966", 0),
    ("1,349 total deaths; 473 between 2016\u2013March 2023", 0),
    ("No setting is exempt \u2014 schools, churches, offices, military bases", 0),
    ("Military-style rifles (e.g., AR-15) cause markedly higher-energy wounds \u2014 organs \u201Csmashed/shredded\u201D rather than simply lacerated", 0),
], size=15, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Every anaesthesiologist \u2014 not only trauma-center staff \u2014 must be ready for this injury pattern",
    "Deliver damage-control anaesthesia: rapid massive transfusion, hemorrhage control, permissive hypotension as indicated",
    "Coordinate OR throughput when multiple casualties require near-simultaneous surgery",
    "Provide acute and ongoing pain management for survivors with severe soft-tissue/orthopedic injury",
])

# =========================================================
# SLIDE 13 — SECTION 3 DIVIDER
# =========================================================
section_divider("03", "CBRN Attacks", "Chemical \u00b7 Biological \u00b7 Radiological \u00b7 Nuclear", 13)

# =========================================================
# SLIDE 14 — CBRN causes & principles (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 3 \u00b7 CBRN", "Causes & Command Principles", 14)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Three causes of CBRN incidents:", 0),
    ("Intentional \u2014 deliberate terror", 1),
    ("Accidental \u2014 human error-induced release/detonation", 1),
    ("Natural \u2014 secondary release triggered by a natural disaster", 1),
    ("ASA maintains CBRN protocols/SOPs requiring system-wide training", 0),
    ("\u201CDo not become the casualty yourself\u201D \u2014 first rule of CBRN treatment", 0),
], size=15.5, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Determine their specific role BEFORE a mass-casualty/CBRN event occurs (pre-event planning)",
    "Complete ASA-recommended CBRN SOP training as part of hospital-wide (not just ED) preparedness",
    "Support incident command by defining protection level before initiating any patient contact",
])

# =========================================================
# SLIDE 15 — PPE, decontamination, TOXALS (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 3 \u00b7 CBRN", "PPE, Decontamination & TOXALS", 15)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Minimum PPE = Level C for intubation, fluid exposure, or airborne-infection risk", 0),
    ("Assume hazard is persistent & transmissible until proven otherwise", 0),
    ("TOXALS mnemonic extends ACLS/ATLS/BLS to:", 0),
    ("A-Airway, B-Breathing, C-Circulation, D-Disability, D-Drugs, E-Exposure, E-Environment", 1),
], size=15.5, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Don Level C PPE and provide airway/vascular access despite reduced dexterity in HAZMAT suits",
    "Deliver TOXALS-based resuscitation and antidote therapy inside the decontamination zone",
    "Manage ventilators for respiratory failure caused by nerve agents or biologic agents in ICU/PACU overflow areas",
])

# =========================================================
# SLIDE 16 — SECTION 4 DIVIDER
# =========================================================
section_divider("04", "Epidemic & Pandemic\nOutbreaks", "Influenza  \u2022  SARS  \u2022  COVID-19", 16)

# =========================================================
# SLIDE 17 — Influenza & SARS (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 4 \u00b7 Pandemics", "Influenza & SARS \u2014 Occupational Risk", 17)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Influenza spreads mainly by droplet/contact over short distances (\u22646 ft)", 0),
    ("SARS (2002\u20132003): 8,096 cases, 774 deaths across 29 countries", 0),
    ("Toronto epicenter: 361 cases, 33 deaths; over half infected were healthcare workers, including 3 anaesthesiologists and 1 intensivist", 0),
    ("Overall SARS case fatality ~15%, >50% in patients over 65", 0),
], size=15, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Recognized as high occupational-exposure-risk group due to airway procedures (intubation, bronchoscopy)",
    "Applied N95/airborne precautions for all aerosol-generating procedures",
    "Served as consultants alongside infectious disease teams on isolation and transmission-prevention pathways",
])

# =========================================================
# SLIDE 18 — COVID-19 (+ role box)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 4 \u00b7 Pandemics", "COVID-19 \u2014 The Anaesthesiologist's Expanded Role", 18)
add_bullets(s, Inches(0.6), Inches(1.7), Inches(6.7), Inches(4.9), [
    ("Massive strain on staffing, PPE, and ICU capacity worldwide", 0),
    ("Elective surgery shutdowns implemented to preserve capacity/PPE", 0),
    ("Surgeon General Jerome Adams (an anaesthesiologist) helped shape US policy", 0),
    ("Repeated surge waves required flexible critical-care staffing models", 0),
], size=15, space_after=9)
role_box(s, Inches(7.55), Inches(1.7), Inches(5.15), Inches(4.9), [
    "Led pre-surge planning: PPE strategy, resource allocation, staffing models",
    "Redeployed as ICU intensivists when critical care staff were insufficient",
    "Innovated PPE solutions (e.g., aerosol-capture masks) and conservation protocols",
    "Helped dissolve critical-care \u201Csilos,\u201D forming unified cross-department surge teams",
])

# =========================================================
# SLIDE 19 — Synthesis table
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Synthesis", "Cross-Cutting Anaesthesiologist Competencies", 19)

rows = [
    ("Airway / Resuscitation", "Definitive airway management, RSI, damage-control resuscitation"),
    ("Triage", "Field & in-hospital triage leadership, esp. airway/sedation-risk patients"),
    ("OR / Surgical", "Rapid-sequence anaesthesia with limited drugs/monitoring, mass-casualty OR flow"),
    ("ICU / Critical Care", "Surge intensivist staffing, ventilator/ECMO management"),
    ("CBRN-Specific", "PPE selection (Level C), decontamination oversight, TOXALS resuscitation"),
    ("Pain Management", "Ongoing analgesia across large casualty volumes"),
    ("Administrative / Leadership", "OR resource allocation, drug/fluid conservation, institutional protocols"),
    ("Psychological Resilience", "Recognizing & managing personal stress/burnout from prolonged response"),
]
top = Inches(1.7)
left = Inches(0.6)
col1_w = Inches(3.6)
col2_w = Inches(8.6)
row_h = Inches(0.62)

hdr = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left, top, col1_w + col2_w, Inches(0.5))
hdr.fill.solid(); hdr.fill.fore_color.rgb = NAVY; hdr.line.fill.background(); hdr.shadow.inherit = False
tf = hdr.text_frame; tf.margin_left = Inches(0.2); tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]; r = p.add_run(); r.text = "Domain"
r.font.bold = True; r.font.size = Pt(15); r.font.color.rgb = WHITE
hdr2 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left + col1_w, top, col2_w, Inches(0.5))
hdr2.fill.solid(); hdr2.fill.fore_color.rgb = NAVY; hdr2.line.fill.background(); hdr2.shadow.inherit = False
tf2 = hdr2.text_frame; tf2.margin_left = Inches(0.2); tf2.vertical_anchor = MSO_ANCHOR.MIDDLE
p2 = tf2.paragraphs[0]; r2 = p2.add_run(); r2.text = "Anaesthesiologist's Role"
r2.font.bold = True; r2.font.size = Pt(15); r2.font.color.rgb = WHITE

y = top + Inches(0.5)
for i, (domain, role) in enumerate(rows):
    fill = LIGHT_TEAL if i % 2 == 0 else WHITE
    c1 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left, y, col1_w, row_h)
    c1.fill.solid(); c1.fill.fore_color.rgb = fill
    c1.line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC); c1.line.width = Pt(0.5); c1.shadow.inherit = False
    tf1 = c1.text_frame; tf1.word_wrap = True; tf1.margin_left = Inches(0.15); tf1.vertical_anchor = MSO_ANCHOR.MIDDLE
    p1 = tf1.paragraphs[0]; r1 = p1.add_run(); r1.text = domain
    r1.font.bold = True; r1.font.size = Pt(13); r1.font.color.rgb = NAVY

    c2 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left + col1_w, y, col2_w, row_h)
    c2.fill.solid(); c2.fill.fore_color.rgb = fill
    c2.line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC); c2.line.width = Pt(0.5); c2.shadow.inherit = False
    tf2r = c2.text_frame; tf2r.word_wrap = True; tf2r.margin_left = Inches(0.15); tf2r.vertical_anchor = MSO_ANCHOR.MIDDLE
    p2r = tf2r.paragraphs[0]; r2r = p2r.add_run(); r2r.text = role
    r2r.font.size = Pt(13); r2r.font.color.rgb = DARK_GRAY
    y += row_h

# =========================================================
# SLIDE 20 — Recent evidence
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Beyond the Textbook", "Recent Evidence (2024\u20132025)", 20)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.5), [
    ("Suda AJ, et al. Management of mass casualty incidents: a systematic review and clinical practice guideline update. Eur J Trauma Emerg Surg. 2025.", 0),
    ("PMID: 39792184 \u2014 updated guidance on decontamination, EMS coordination, and triage", 1),
    ("Hugelius K, Becker J. Common challenges in the prehospital management of mass-casualty incidents: a systematic integrative review. Prehosp Disaster Med. 2024.", 0),
    ("PMID: 39663866 \u2014 identifies recurring prehospital coordination gaps in MCIs", 1),
], size=16, space_after=12)
note = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(0.6), Inches(4.7), Inches(12.0), Inches(1.5))
note.fill.solid(); note.fill.fore_color.rgb = RGBColor(0xFC, 0xF3, 0xE3)
note.line.color.rgb = ORANGE; note.shadow.inherit = False
tf = note.text_frame; tf.word_wrap = True; tf.margin_left = Inches(0.25); tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]
r = p.add_run()
r.text = ("These reviews reinforce, rather than contradict, the Miller's Anesthesia framework \u2014 "
          "triage and decontamination protocols remain active areas of guideline refinement.")
r.font.size = Pt(15); r.font.italic = True; r.font.color.rgb = DARK_GRAY

# =========================================================
# SLIDE 21 — Take-home points
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Summary", "Take-Home Points", 21)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.8), [
    ("Anaesthesiologists bring resuscitation, airway, ICU, and pharmacologic expertise unmatched by most other specialties in disaster settings", 0),
    ("Role extends far beyond the OR: field triage, ED resuscitation, ICU surge, CBRN decontamination zones", 0),
    ("Every disaster type (natural, terrorism, CBRN, pandemic) has distinct clinical/logistic demands \u2014 but shares principles: command structure, PPE/protection, triage, resource conservation", 0),
    ("Institutional and personal preparedness (training, drills, psychological resilience) determine effectiveness when disaster strikes", 0),
    ("Anaesthesiology leadership (ASA protocols, Surgeon General precedent) has repeatedly shaped national-level disaster response", 0),
], size=16.5, space_after=12)

# =========================================================
# SLIDE 22 — Thank you
# =========================================================
s = prs.slides.add_slide(BLANK)
add_bg(s, NAVY)
band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(5.15), SW, Inches(0.12))
band.fill.solid(); band.fill.fore_color.rgb = ORANGE
band.line.fill.background(); band.shadow.inherit = False
add_textbox(s, Inches(0.9), Inches(2.7), Inches(11.5), Inches(1.2),
            "Thank You", size=48, color=WHITE, bold=True)
add_textbox(s, Inches(0.9), Inches(3.75), Inches(11), Inches(0.6),
            "Questions & Discussion", size=22, color=LIGHT_TEAL)
add_textbox(s, Inches(0.9), Inches(6.6), Inches(11), Inches(0.5),
            "Source: Miller's Anesthesia, 10th Edition \u2014 Disaster Preparedness & Response Chapter",
            size=13, color=RGBColor(0x9A, 0xB8, 0xC8), italic=True)

prs.save("/tmp/workspace/disaster-anesthesia-seminar/output/Role_of_Anaesthesiologist_in_Disasters.pptx")
print("Saved. Total slides:", len(prs.slides._sldIdLst))
Running Command

cd /tmp/workspace/disaster-anesthesia-seminar && python build_ppt.py

Running Command

cd /tmp/workspace/disaster-anesthesia-seminar/output && ls -la && python -c " from pptx import Presentation prs = Presentation('Role_of_Anaesthesiologist_in_Disasters.pptx') print('slides:', len(prs.slides)) for i, sl in enumerate(prs.slides,1): texts = [sh.text_frame.text.split(chr(10))[0][:45] for sh in sl.shapes if sh.has_text_frame and sh.text_frame.text.strip()] role = 'ROLE BOX' if any('ANAESTHESIOLOGIST' in t.upper() and 'ROLE OF' in t.upper() for t in texts) else '' print(i, role, texts[:3]) "

Every disaster-specific slide now has a dedicated, highlighted "⚕ ROLE OF THE ANAESTHESIOLOGIST" callout box (orange header, distinct from the fact bullets) with content pulled directly from Miller's Anesthesia. Verified across all 10 disaster-content slides:
SlideTopicRole box included
6Natural disasters overview
7Earthquakes (Haiti 2010)
8Tsunami (2004)
9Hurricanes (Katrina/Maria)
119/11 terrorism
12Mass shootings
14CBRN causes/command
15CBRN PPE/decontamination/TOXALS
17Influenza & SARS
18COVID-19
(Section dividers and the synthesis/summary slides intentionally don't need a separate role box since they either have no disaster-specific content or are already entirely about the anaesthesiologist's role.)
Each box gives 3-4 concise, disaster-specific actions the anaesthesiologist takes (e.g., for Haiti: "temporarily replaced Haitian anaesthesiologists killed/injured," "staffed USNS Comfort," "managed fracture/amputation caseload"; for CBRN PPE: "don Level C PPE," "deliver TOXALS resuscitation," "manage ventilators in ICU/PACU overflow").

Role of Anaesthesiologist in Disasters

Presentation · PPTX

Let me know if you'd like the role boxes expanded further, speaker notes added, or actual photos/diagrams inserted alongside each disaster.

dont need role of anaesthesiologist in every slide , only at the end of each disaster category

Running Command

rm /tmp/workspace/disaster-anesthesia-seminar/build_ppt.py

Writing File

~/disaster-anesthesia-seminar/build_ppt.py

"""
Seminar deck: Role of the Anaesthesiologist in Biological, Natural and
Human-Induced Disasters (content sourced from Miller's Anesthesia, 10e)
Disaster-fact slides are clean; a single consolidated "Role of the
Anaesthesiologist" slide appears at the END of each disaster category.
"""
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 pptx.enum.shapes import MSO_SHAPE

# ---------- palette ----------
NAVY = RGBColor(0x0B, 0x2E, 0x4E)
TEAL = RGBColor(0x11, 0x7A, 0x8B)
LIGHT_TEAL = RGBColor(0xDD, 0xF0, 0xF2)
ORANGE = RGBColor(0xE0, 0x7A, 0x2C)
LIGHT_ORANGE = RGBColor(0xFC, 0xEA, 0xD9)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK_GRAY = RGBColor(0x33, 0x33, 0x33)
MED_GRAY = RGBColor(0x66, 0x66, 0x66)
RED = RGBColor(0xB0, 0x2A, 0x2A)

prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
SW, SH = prs.slide_width, prs.slide_height
BLANK = prs.slide_layouts[6]


def add_bg(slide, color=WHITE):
    shp = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, SH)
    shp.fill.solid()
    shp.fill.fore_color.rgb = color
    shp.line.fill.background()
    shp.shadow.inherit = False
    slide.shapes._spTree.remove(shp._element)
    slide.shapes._spTree.insert(2, shp._element)
    return shp


def add_textbox(slide, l, t, w, h, text, size=18, color=DARK_GRAY, bold=False,
                 align=PP_ALIGN.LEFT, font="Calibri", italic=False, anchor=None,
                 line_spacing=None):
    tb = slide.shapes.add_textbox(l, t, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    if anchor:
        tf.vertical_anchor = anchor
    tf.margin_left = 0
    tf.margin_right = 0
    tf.margin_top = 0
    tf.margin_bottom = 0
    lines = text.split("\n")
    for i, line in enumerate(lines):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.text = line
        p.alignment = align
        if line_spacing:
            p.line_spacing = line_spacing
        for r in p.runs:
            r.font.size = Pt(size)
            r.font.color.rgb = color
            r.font.bold = bold
            r.font.italic = italic
            r.font.name = font
    return tb


def add_bullets(slide, l, t, w, h, items, size=16, color=DARK_GRAY, font="Calibri",
                 space_after=8, bullet_color=TEAL, line_spacing=1.05):
    """items: list of (text, level[, bold_lead])."""
    tb = slide.shapes.add_textbox(l, t, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = 0
    tf.margin_right = 0
    tf.margin_top = 0
    tf.margin_bottom = 0
    for i, item in enumerate(items):
        txt, level = item[0], item[1]
        lead = item[2] if len(item) > 2 else None
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.alignment = PP_ALIGN.LEFT
        p.space_after = Pt(space_after)
        p.line_spacing = line_spacing
        glyph = "\u25B8" if level == 0 else "\u2013"
        gsize = size if level == 0 else size - 1
        r0 = p.add_run()
        r0.text = ("   " * level) + glyph + "  "
        r0.font.size = Pt(gsize)
        r0.font.color.rgb = bullet_color if level == 0 else MED_GRAY
        r0.font.name = font
        if lead:
            r1 = p.add_run()
            r1.text = lead
            r1.font.size = Pt(size if level == 0 else size - 1)
            r1.font.bold = True
            r1.font.color.rgb = NAVY
            r1.font.name = font
        r2 = p.add_run()
        r2.text = txt
        r2.font.size = Pt(size if level == 0 else size - 1)
        r2.font.color.rgb = color
        r2.font.name = font
    return tb


def slide_header(slide, kicker, title, num):
    add_bg(slide, WHITE)
    bar = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, Inches(1.35))
    bar.fill.solid(); bar.fill.fore_color.rgb = NAVY
    bar.line.fill.background(); bar.shadow.inherit = False
    accent = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(1.35), SW, Pt(4))
    accent.fill.solid(); accent.fill.fore_color.rgb = ORANGE
    accent.line.fill.background(); accent.shadow.inherit = False
    add_textbox(slide, Inches(0.55), Inches(0.18), Inches(10), Inches(0.35),
                kicker.upper(), size=13, color=RGBColor(0xBF, 0xD9, 0xE6), bold=True)
    add_textbox(slide, Inches(0.55), Inches(0.52), Inches(11.5), Inches(0.75),
                title, size=25, color=WHITE, bold=True)
    add_textbox(slide, Inches(12.55), Inches(7.08), Inches(0.6), Inches(0.35),
                f"{num:02d}", size=12, color=MED_GRAY, align=PP_ALIGN.RIGHT)
    add_textbox(slide, Inches(0.55), Inches(7.08), Inches(7.5), Inches(0.35),
                "Role of the Anaesthesiologist in Disasters  |  Source: Miller's Anesthesia, 10e",
                size=10, color=MED_GRAY, italic=True)


def section_divider(num_str, title_text, subtitle_text, slide_num):
    s = prs.slides.add_slide(BLANK)
    add_bg(s, NAVY)
    band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, Inches(0.35), SH)
    band.fill.solid(); band.fill.fore_color.rgb = ORANGE
    band.line.fill.background(); band.shadow.inherit = False
    add_textbox(s, Inches(1.1), Inches(2.5), Inches(4), Inches(1.5),
                num_str, size=90, color=RGBColor(0x1F, 0x4C, 0x66), bold=True)
    add_textbox(s, Inches(1.15), Inches(3.65), Inches(10.8), Inches(1.3),
                title_text, size=38, color=WHITE, bold=True)
    add_textbox(s, Inches(1.15), Inches(4.65), Inches(10.5), Inches(1.0),
                subtitle_text, size=18, color=LIGHT_TEAL, italic=True)
    add_textbox(s, Inches(12.55), Inches(7.08), Inches(0.6), Inches(0.35),
                f"{slide_num:02d}", size=12, color=RGBColor(0x7E, 0x9C, 0xB0), align=PP_ALIGN.RIGHT)
    return s


def role_summary_slide(num, kicker, title, groups):
    """A full end-of-category slide: consolidated 'Role of the Anaesthesiologist'
    for that disaster category. groups = list of (subheading, [bullet strings])."""
    s = prs.slides.add_slide(BLANK)
    add_bg(s, WHITE)
    bar = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, Inches(1.35))
    bar.fill.solid(); bar.fill.fore_color.rgb = ORANGE
    bar.line.fill.background(); bar.shadow.inherit = False
    accent = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(1.35), SW, Pt(4))
    accent.fill.solid(); accent.fill.fore_color.rgb = NAVY
    accent.line.fill.background(); accent.shadow.inherit = False
    add_textbox(s, Inches(0.55), Inches(0.18), Inches(10), Inches(0.35),
                kicker.upper(), size=13, color=RGBColor(0xFC, 0xE0, 0xC4), bold=True)
    add_textbox(s, Inches(0.55), Inches(0.5), Inches(11.8), Inches(0.75),
                "\u2695  " + title, size=27, color=WHITE, bold=True)
    add_textbox(s, Inches(12.55), Inches(7.08), Inches(0.6), Inches(0.35),
                f"{num:02d}", size=12, color=MED_GRAY, align=PP_ALIGN.RIGHT)
    add_textbox(s, Inches(0.55), Inches(7.08), Inches(7.5), Inches(0.35),
                "Role of the Anaesthesiologist in Disasters  |  Source: Miller's Anesthesia, 10e",
                size=10, color=MED_GRAY, italic=True)

    n = len(groups)
    gap = Inches(0.35)
    total_w = SW - Inches(1.2) - gap * (n - 1)
    col_w = Emu(int(total_w / n)) if n else SW
    x = Inches(0.6)
    top = Inches(1.75)
    height = Inches(5.1)
    for heading, bullets in groups:
        box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, x, top, col_w, height)
        box.fill.solid(); box.fill.fore_color.rgb = LIGHT_ORANGE
        box.line.color.rgb = ORANGE; box.line.width = Pt(1.25)
        box.shadow.inherit = False
        hdr = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, x, top, col_w, Inches(0.55))
        hdr.fill.solid(); hdr.fill.fore_color.rgb = NAVY
        hdr.line.fill.background(); hdr.shadow.inherit = False
        tfh = hdr.text_frame; tfh.vertical_anchor = MSO_ANCHOR.MIDDLE; tfh.word_wrap = True
        tfh.margin_left = Inches(0.15); tfh.margin_right = Inches(0.1)
        ph = tfh.paragraphs[0]; ph.alignment = PP_ALIGN.CENTER
        rh = ph.add_run(); rh.text = heading
        rh.font.bold = True; rh.font.size = Pt(15); rh.font.color.rgb = WHITE

        tb = s.shapes.add_textbox(x + Inches(0.2), top + Inches(0.68), col_w - Inches(0.4), height - Inches(0.85))
        tf = tb.text_frame; tf.word_wrap = True
        tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0
        for i, txt in enumerate(bullets):
            p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
            p.space_after = Pt(9)
            p.line_spacing = 1.08
            r0 = p.add_run(); r0.text = "\u2022  "
            r0.font.size = Pt(14); r0.font.bold = True; r0.font.color.rgb = ORANGE
            r1 = p.add_run(); r1.text = txt
            r1.font.size = Pt(14); r1.font.color.rgb = DARK_GRAY
        x = Emu(int(x) + int(col_w) + int(gap))
    return s


from pptx.util import Emu

# =========================================================
# SLIDE 1 — TITLE
# =========================================================
s = prs.slides.add_slide(BLANK)
add_bg(s, NAVY)
band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(5.15), SW, Inches(0.12))
band.fill.solid(); band.fill.fore_color.rgb = ORANGE
band.line.fill.background(); band.shadow.inherit = False

add_textbox(s, Inches(0.9), Inches(1.6), Inches(11.5), Inches(0.5),
            "SEMINAR  \u2022  ANAESTHESIOLOGY", size=16, color=ORANGE, bold=True)
add_textbox(s, Inches(0.9), Inches(2.15), Inches(11.5), Inches(1.9),
            "Biological, Natural and Human-Induced\nDisasters", size=42, color=WHITE, bold=True,
            line_spacing=1.05)
add_textbox(s, Inches(0.9), Inches(4.05), Inches(11.5), Inches(0.8),
            "The Role of the Anaesthesiologist", size=26, color=LIGHT_TEAL, bold=False)
add_textbox(s, Inches(0.9), Inches(5.55), Inches(11), Inches(0.5),
            "Reference: Miller's Anesthesia, 10th Edition \u2014 Chapter on Disaster Preparedness & Response",
            size=14, color=RGBColor(0xAA, 0xC4, 0xD6), italic=True)
add_textbox(s, Inches(0.9), Inches(6.9), Inches(8), Inches(0.4),
            "Presented for postgraduate seminar", size=12, color=RGBColor(0x7E, 0x9C, 0xB0))

# =========================================================
# SLIDE 2 — AGENDA
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Overview", "Agenda", 2)
agenda_items = [
    "Introduction & Key Points",
    "Section 1 \u2014 Natural Disasters + Role of the Anaesthesiologist",
    "Section 2 \u2014 Acts of Terrorism + Role of the Anaesthesiologist",
    "Section 3 \u2014 CBRN Attacks + Role of the Anaesthesiologist",
    "Section 4 \u2014 Epidemic/Pandemic Outbreaks + Role of the Anaesthesiologist",
    "Cross-Cutting Anaesthesiologist Competencies",
    "Recent Evidence & Take-Home Points",
]
y = 1.75
for i, item in enumerate(agenda_items, 1):
    chip = s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(0.6), Inches(y), Inches(0.55), Inches(0.55))
    chip.fill.solid(); chip.fill.fore_color.rgb = TEAL if i % 2 else NAVY
    chip.line.fill.background(); chip.shadow.inherit = False
    tf = chip.text_frame; tf.word_wrap = False
    tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0
    p = tf.paragraphs[0]; p.text = str(i); p.alignment = PP_ALIGN.CENTER
    r = p.runs[0]; r.font.size = Pt(18); r.font.bold = True; r.font.color.rgb = WHITE
    add_textbox(s, Inches(1.35), Inches(y + 0.03), Inches(10.8), Inches(0.55),
                item, size=17, color=DARK_GRAY, anchor=MSO_ANCHOR.MIDDLE)
    y += 0.72

# =========================================================
# SLIDE 3 — INTRODUCTION
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Introduction", "Why Anaesthesiologists Are Central to Disaster Response", 3)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(7.0), Inches(4.6), [
    ("In-depth pharmacology & physiology knowledge", 0),
    ("Expertise in resuscitation and airway management", 0),
    ("Extensive critical care medicine experience", 0),
    ("Skilled in pain management / alleviation", 0),
    ("Trained for complex, extensive surgical procedures", 0),
    ("Chapter is organized into four sections:", 0),
    ("Natural disasters", 1),
    ("Acts of terrorism", 1),
    ("Chemical, Biological, Radiological & Nuclear (CBRN) warfare", 1),
    ("Epidemic and pandemic infectious outbreaks", 1),
], size=16.5)

quote_box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(7.95), Inches(1.9), Inches(4.75), Inches(4.1))
quote_box.fill.solid(); quote_box.fill.fore_color.rgb = LIGHT_TEAL
quote_box.line.color.rgb = TEAL; quote_box.line.width = Pt(1)
quote_box.shadow.inherit = False
tf = quote_box.text_frame; tf.word_wrap = True
tf.margin_left = Inches(0.3); tf.margin_right = Inches(0.3); tf.margin_top = Inches(0.3)
p = tf.paragraphs[0]
r = p.add_run(); r.text = "\u201C"
r.font.size = Pt(40); r.font.color.rgb = TEAL; r.font.bold = True
p2 = tf.add_paragraph()
r2 = p2.add_run()
r2.text = ("Anesthesiologists are an extremely valuable part of the overall "
           "effort to optimize the health and recovery of victims of disaster.")
r2.font.size = Pt(18); r2.font.italic = True; r2.font.color.rgb = NAVY
p3 = tf.add_paragraph()
r3 = p3.add_run(); r3.text = "\u2014 Miller's Anesthesia, 10e"
r3.font.size = Pt(13); r3.font.color.rgb = MED_GRAY; r3.font.bold = True

# =========================================================
# SLIDE 4 — KEY POINTS
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Introduction", "Chapter Key Points", 4)
add_bullets(s, Inches(0.6), Inches(1.65), Inches(12.0), Inches(5.0), [
    ("Must be willing and able to modify traditional workflow to meet mass-casualty needs", 0),
    ("Natural disasters cause massive interruptions in normal healthcare provision", 0),
    ("Deploying from resource-rich to resource-limited settings brings unfamiliar infectious disease risk", 0),
    ("Physical and psychological stressors of disaster response can last months to years", 0),
    ("Visiting anaesthesiologists may add most value by replacing local staff who were killed/injured", 0),
    ("Disasters commonly cause drug & fluid shortages (Hurricane Maria 2017; COVID-19 2020)", 0),
    ("Unpredictable events (e.g., 9/11) make pre-existing triage & coordination plans essential", 0),
    ("Rising terrorism/mass-shooting incidence requires CBRN knowledge for every anaesthesiologist", 0),
    ("During outbreaks, anaesthesiologists act as isolation/transmission consultants alongside ID teams", 0),
    ("Pandemics force redeployment outside traditional roles (e.g., as ICU intensivists)", 0),
], size=15.5, space_after=9)

# =========================================================
# SLIDE 5 — SECTION 1 DIVIDER
# =========================================================
section_divider("01", "Natural Disasters", "Earthquakes  \u2022  Tsunami  \u2022  Hurricanes", 5)

# =========================================================
# SLIDE 6 — Natural disasters overview (facts only)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Impact on the Healthcare System", 6)
add_bullets(s, Inches(0.6), Inches(1.8), Inches(12.0), Inches(4.8), [
    ("Damage to roads disrupts prehospital access and transport", 0),
    ("Loss of water, oxygen, fuel, electricity cripples hospital function", 0),
    ("Hospitals themselves may be damaged or destroyed", 0),
    ("Telecommunications fail while call volumes spike \u2014 coordination becomes very difficult", 0),
    ("Historical events examined in this section: earthquakes, tsunami, hurricanes", 0),
], size=18, space_after=14)

# =========================================================
# SLIDE 7 — Earthquakes (facts only)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Earthquakes \u2014 Haiti 2010", 7)
add_bullets(s, Inches(0.6), Inches(1.8), Inches(12.0), Inches(4.9), [
    ("Magnitude 7.0 earthquake, Jan 12, 2010 \u2014 among the most devastating disasters in modern history", 0),
    (">130,000 deaths; 1.5 million people immediately displaced", 0),
    (">80% of Haitian schools and >50% of Haitian hospitals destroyed", 0),
    ("USNS Comfort arrived within 72 hours \u2014 largest disaster-relief operation in its history:", 0),
    (">850 patients treated (237 children); 843 operations on 454 patients over 5 weeks (58 amputations)", 1),
    ("Musculoskeletal extremity injury was the leading admission diagnosis (~40%)", 1),
    ("A single airport was the sole access point \u2014 US Air Force assumed air-traffic control", 0),
], size=17, space_after=11)

# =========================================================
# SLIDE 8 — Tsunami (facts only)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Tsunami \u2014 Indian Ocean, 2004", 8)
add_bullets(s, Inches(0.6), Inches(1.8), Inches(12.0), Inches(4.9), [
    (">230,000 killed, >5 million displaced \u2014 essentially zero warning time", 0),
    ("Thai Red Cross team (17 surgeons, 6 anaesthesiologists) reached Phang-Nga within 1 day; treated 107 patients over 3 days", 0),
    ("Halothane was the only inhalational anaesthetic agent available on site", 0),
    ("Increased intraoperative desaturation (seawater aspiration, lung contusion) with no lab access to guide fluids/electrolytes/blood products", 0),
    ("USNS Mercy (Operation Unified Assistance) required staff vaccination updates, malaria prophylaxis, cultural/religious briefing (Aceh >90% Muslim)", 0),
    ("~60% of health workers in Aceh province died or went missing", 0),
], size=16, space_after=10)

# =========================================================
# SLIDE 9 — Hurricanes (facts only)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 1 \u00b7 Natural Disasters", "Hurricanes \u2014 Katrina (2005) & Maria (2017)", 9)
add_bullets(s, Inches(0.6), Inches(1.8), Inches(12.0), Inches(4.9), [
    ("Hurricane Katrina (2005):", 0),
    ("New Orleans' two largest teaching hospitals closed; Charity Hospital never reopened", 1),
    ("Louisiana anaesthesiology residency graduates fell from 24/yr (2004) to 13/yr (2007)", 1),
    ("37% of anaesthesiologists reported difficulty filling open positions; 92% reported rising daily caseload", 1),
    ("Hurricane Maria (2017):", 0),
    ("Knocked out Puerto Rico's water, power, telecommunications, transport", 1),
    ("Triggered mainland US drug & IV fluid shortages", 1),
], size=17, space_after=11)

# =========================================================
# SLIDE 10 — ROLE SUMMARY: Natural Disasters
# =========================================================
role_summary_slide(10, "End of Section 1", "Role of the Anaesthesiologist in Natural Disasters", [
    ("Earthquakes", [
        "Deploy internationally to provide trauma/surgical anaesthesia in field hospitals",
        "Temporarily replace local anaesthesiologists killed or injured in the disaster",
        "Staff hospital ships (e.g., USNS Comfort) as volunteers, adapting to shipboard OR conditions",
        "Manage caseloads dominated by fractures, crush injury, and amputations with limited monitoring",
    ]),
    ("Tsunami", [
        "Co-lead multidisciplinary relief teams (1 surgeon + 1 anaesthesiologist model)",
        "Deliver GA (rapid-sequence induction), spinal, regional, or local techniques with whatever agents are available",
        "Manage desaturation and complications without lab or monitoring support",
        "Complete pre-deployment vaccination, prophylaxis, and cultural/religious briefing",
    ]),
    ("Hurricanes", [
        "Sustain OR/anaesthesia coverage despite hospital closures and workforce loss",
        "Absorb sharply increased daily caseload with fewer available anaesthesiologists",
        "Lead national conservation/allocation strategies for scarce drugs and IV fluids",
        "Support continuity of anaesthesiology training programs amid infrastructure loss",
    ]),
])

# =========================================================
# SLIDE 11 — SECTION 2 DIVIDER
# =========================================================
section_divider("02", "Acts of Terrorism", "September 11  \u2022  Mass Shootings", 11)

# =========================================================
# SLIDE 12 — 9/11 (facts only)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 2 \u00b7 Terrorism", "September 11, 2001 \u2014 Bellevue Hospital", 12)
add_bullets(s, Inches(0.6), Inches(1.8), Inches(12.0), Inches(4.9), [
    ("Telecommunications down \u2014 medical students used as physical \u201Crunners\u201D", 0),
    ("Staff wore name/specialty/title labels for rapid face-to-face identification", 0),
    ("Three-tier triage used: Green (non-urgent), Yellow (potentially urgent), Red (immediate, life-threatening)", 0),
    ("Yellow patients with potential airway/sedation needs were assigned a senior anaesthesiology resident or critical care fellow", 0),
    ("Leadership mandated shift rotations as the surge slowed, to prevent burnout from prolonged 24/7 response", 0),
], size=17, space_after=12)

# =========================================================
# SLIDE 13 — Mass shootings (facts only)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 2 \u00b7 Terrorism", "Mass Shootings", 13)
add_bullets(s, Inches(0.6), Inches(1.8), Inches(12.0), Inches(4.9), [
    ("188 mass shootings (\u22654 killed by a lone shooter) in the US since 1966", 0),
    ("1,349 total deaths since 1966; 473 between 2016\u2013March 2023", 0),
    ("No setting is exempt \u2014 schools, churches, offices, military bases", 0),
    ("Rising use of military-style semi-automatic rifles (e.g., AR-15) changes the injury pattern seen", 0),
    ("These wounds show wide tissue destruction \u2014 organs \u201Csmashed/shredded\u201D rather than simply lacerated \u2014 due to much higher energy transfer than handgun wounds", 0),
], size=17, space_after=12)

# =========================================================
# SLIDE 14 — ROLE SUMMARY: Acts of Terrorism
# =========================================================
role_summary_slide(14, "End of Section 2", "Role of the Anaesthesiologist in Acts of Terrorism", [
    ("September 11", [
        "Assigned to every Yellow-category patient with potential airway/sedation needs",
        "Senior residents and critical care fellows staffed triage directly on the front line",
        "Adapted workflow to a total communication breakdown (no phones/pagers)",
        "Helped design shift-rotation schedules to prevent burnout during prolonged response",
    ]),
    ("Mass Shootings", [
        "Every anaesthesiologist \u2014 not only trauma-center staff \u2014 must be ready for high-velocity rifle wound patterns",
        "Deliver damage-control anaesthesia: rapid massive transfusion, hemorrhage control, permissive hypotension as indicated",
        "Coordinate OR throughput when multiple casualties require near-simultaneous surgery",
        "Provide acute and ongoing pain management for survivors with severe soft-tissue/orthopedic injury",
    ]),
])

# =========================================================
# SLIDE 15 — SECTION 3 DIVIDER
# =========================================================
section_divider("03", "CBRN Attacks", "Chemical \u00b7 Biological \u00b7 Radiological \u00b7 Nuclear", 15)

# =========================================================
# SLIDE 16 — CBRN causes & principles (facts only)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 3 \u00b7 CBRN", "Causes & Command Principles", 16)
add_bullets(s, Inches(0.6), Inches(1.8), Inches(12.0), Inches(4.9), [
    ("Three causes of CBRN incidents:", 0),
    ("Intentional \u2014 deliberate terror for political, religious, or ideological purposes", 1),
    ("Accidental \u2014 human error-induced release of toxic/radiological agents", 1),
    ("Natural \u2014 secondary release triggered by a natural disaster", 1),
    ("American Society of Anesthesiologists (ASA) maintains CBRN protocols/SOPs requiring system-wide training", 0),
    ("Disaster preparedness is a hospital-wide responsibility, not just the ED's", 0),
    ("\u201CDo not become the casualty yourself\u201D \u2014 first rule of CBRN casualty treatment", 0),
], size=16.5, space_after=10)

# =========================================================
# SLIDE 17 — PPE, decontamination, TOXALS (facts only)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 3 \u00b7 CBRN", "PPE, Decontamination & TOXALS", 17)
add_bullets(s, Inches(0.6), Inches(1.8), Inches(12.0), Inches(4.9), [
    ("Minimum PPE = Level C for any provider at risk of intubation, bodily-fluid exposure, or airborne infection", 0),
    ("Level C balances tactile dexterity with protection against chemical/biologic warfare agents", 0),
    ("Assume the hazard is persistent & transmissible until proven otherwise", 0),
    ("Decontamination zone must be established before life-support/antidote therapy proceeds", 0),
    ("TOXALS (Toxicology Advanced Life Support) extends ACLS/ATLS/BLS to the mnemonic ABCDDEE:", 0),
    ("Airway, Breathing, Circulation, Disability, Drugs, Exposure, Environment", 1),
], size=16.5, space_after=10)

# =========================================================
# SLIDE 18 — ROLE SUMMARY: CBRN
# =========================================================
role_summary_slide(18, "End of Section 3", "Role of the Anaesthesiologist in CBRN Attacks", [
    ("Preparedness", [
        "Determine specific role BEFORE a mass-casualty/CBRN event occurs (pre-event planning)",
        "Complete ASA-recommended CBRN SOP training as part of hospital-wide (not just ED) preparedness",
        "Support incident command by helping define the protection level before any patient contact",
    ]),
    ("On-Scene / In-Hospital Care", [
        "Don Level C PPE and provide airway/vascular access despite reduced dexterity in HAZMAT suits",
        "Deliver TOXALS-based resuscitation and antidote therapy inside the decontamination zone",
        "Manage ventilators for respiratory failure from nerve-agent or biologic-agent exposure in ICU/PACU overflow areas",
    ]),
])

# =========================================================
# SLIDE 19 — SECTION 4 DIVIDER
# =========================================================
section_divider("04", "Epidemic & Pandemic\nOutbreaks", "Influenza  \u2022  SARS  \u2022  COVID-19", 19)

# =========================================================
# SLIDE 20 — Influenza & SARS (facts only)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 4 \u00b7 Pandemics", "Influenza & SARS \u2014 Occupational Risk", 20)
add_bullets(s, Inches(0.6), Inches(1.8), Inches(12.0), Inches(4.9), [
    ("Influenza spreads mainly by droplet/contact over short distances (\u22646 ft); sustained airborne spread unproven", 0),
    ("Aerosol-generating procedures (intubation, bronchoscopy) still carry transmission risk", 0),
    ("SARS (2002\u20132003): 8,096 cases, 774 deaths across 29 countries, spread globally via air travel from a single Hong Kong hotel cluster", 0),
    ("Toronto epicenter: 361 cases, 33 deaths (9%); over half of infected were healthcare workers, including 3 anaesthesiologists and 1 intensivist", 0),
    ("Overall SARS case fatality ~15%, >50% in patients over 65", 0),
], size=16, space_after=10)

# =========================================================
# SLIDE 21 — COVID-19 (facts only)
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Section 4 \u00b7 Pandemics", "COVID-19", 21)
add_bullets(s, Inches(0.6), Inches(1.8), Inches(12.0), Inches(4.9), [
    ("Massive strain on staffing, PPE, and ICU capacity worldwide", 0),
    ("Elective surgery shutdowns implemented to preserve capacity and PPE", 0),
    ("US Surgeon General Jerome Adams (an anaesthesiologist) helped shape national policy", 0),
    ("mRNA vaccines (Pfizer/BioNTech, Moderna) authorized Dec 2020; among 11 vaccines with WHO Emergency Use Listing by 2022", 0),
    ("Repeated surge waves required flexible, tiered critical-care staffing models", 0),
], size=16.5, space_after=10)

# =========================================================
# SLIDE 22 — ROLE SUMMARY: Pandemics
# =========================================================
role_summary_slide(22, "End of Section 4", "Role of the Anaesthesiologist in Pandemics", [
    ("Influenza & SARS", [
        "Recognized as a high occupational-exposure-risk group due to airway procedures (intubation, bronchoscopy)",
        "Applied N95/airborne precautions for all aerosol-generating procedures",
        "Served as consultants alongside infectious disease teams on isolation and transmission-prevention pathways",
    ]),
    ("COVID-19", [
        "Led pre-surge planning: PPE strategy, resource allocation, staffing models",
        "Redeployed as ICU intensivists when critical care staff were insufficient",
        "Innovated PPE solutions (e.g., aerosol-capture masks) and conservation protocols",
        "Helped dissolve critical-care \u201Csilos,\u201D forming unified cross-department surge teams",
    ]),
])

# =========================================================
# SLIDE 23 — Synthesis table
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Synthesis", "Cross-Cutting Anaesthesiologist Competencies", 23)

rows = [
    ("Airway / Resuscitation", "Definitive airway management, RSI, damage-control resuscitation"),
    ("Triage", "Field & in-hospital triage leadership, esp. airway/sedation-risk patients"),
    ("OR / Surgical", "Rapid-sequence anaesthesia with limited drugs/monitoring, mass-casualty OR flow"),
    ("ICU / Critical Care", "Surge intensivist staffing, ventilator/ECMO management"),
    ("CBRN-Specific", "PPE selection (Level C), decontamination oversight, TOXALS resuscitation"),
    ("Pain Management", "Ongoing analgesia across large casualty volumes"),
    ("Administrative / Leadership", "OR resource allocation, drug/fluid conservation, institutional protocols"),
    ("Psychological Resilience", "Recognizing & managing personal stress/burnout from prolonged response"),
]
top = Inches(1.7)
left = Inches(0.6)
col1_w = Inches(3.6)
col2_w = Inches(8.6)
row_h = Inches(0.62)

hdr = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left, top, col1_w + col2_w, Inches(0.5))
hdr.fill.solid(); hdr.fill.fore_color.rgb = NAVY; hdr.line.fill.background(); hdr.shadow.inherit = False
tf = hdr.text_frame; tf.margin_left = Inches(0.2); tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]; r = p.add_run(); r.text = "Domain"
r.font.bold = True; r.font.size = Pt(15); r.font.color.rgb = WHITE
hdr2 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left + col1_w, top, col2_w, Inches(0.5))
hdr2.fill.solid(); hdr2.fill.fore_color.rgb = NAVY; hdr2.line.fill.background(); hdr2.shadow.inherit = False
tf2 = hdr2.text_frame; tf2.margin_left = Inches(0.2); tf2.vertical_anchor = MSO_ANCHOR.MIDDLE
p2 = tf2.paragraphs[0]; r2 = p2.add_run(); r2.text = "Anaesthesiologist's Role"
r2.font.bold = True; r2.font.size = Pt(15); r2.font.color.rgb = WHITE

y = top + Inches(0.5)
for i, (domain, role) in enumerate(rows):
    fill = LIGHT_TEAL if i % 2 == 0 else WHITE
    c1 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left, y, col1_w, row_h)
    c1.fill.solid(); c1.fill.fore_color.rgb = fill
    c1.line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC); c1.line.width = Pt(0.5); c1.shadow.inherit = False
    tf1 = c1.text_frame; tf1.word_wrap = True; tf1.margin_left = Inches(0.15); tf1.vertical_anchor = MSO_ANCHOR.MIDDLE
    p1 = tf1.paragraphs[0]; r1 = p1.add_run(); r1.text = domain
    r1.font.bold = True; r1.font.size = Pt(13); r1.font.color.rgb = NAVY

    c2 = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, left + col1_w, y, col2_w, row_h)
    c2.fill.solid(); c2.fill.fore_color.rgb = fill
    c2.line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC); c2.line.width = Pt(0.5); c2.shadow.inherit = False
    tf2r = c2.text_frame; tf2r.word_wrap = True; tf2r.margin_left = Inches(0.15); tf2r.vertical_anchor = MSO_ANCHOR.MIDDLE
    p2r = tf2r.paragraphs[0]; r2r = p2r.add_run(); r2r.text = role
    r2r.font.size = Pt(13); r2r.font.color.rgb = DARK_GRAY
    y += row_h

# =========================================================
# SLIDE 24 — Recent evidence
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Beyond the Textbook", "Recent Evidence (2024\u20132025)", 24)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.5), [
    ("Suda AJ, et al. Management of mass casualty incidents: a systematic review and clinical practice guideline update. Eur J Trauma Emerg Surg. 2025.", 0),
    ("PMID: 39792184 \u2014 updated guidance on decontamination, EMS coordination, and triage", 1),
    ("Hugelius K, Becker J. Common challenges in the prehospital management of mass-casualty incidents: a systematic integrative review. Prehosp Disaster Med. 2024.", 0),
    ("PMID: 39663866 \u2014 identifies recurring prehospital coordination gaps in MCIs", 1),
], size=16, space_after=12)
note = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(0.6), Inches(4.7), Inches(12.0), Inches(1.5))
note.fill.solid(); note.fill.fore_color.rgb = RGBColor(0xFC, 0xF3, 0xE3)
note.line.color.rgb = ORANGE; note.shadow.inherit = False
tf = note.text_frame; tf.word_wrap = True; tf.margin_left = Inches(0.25); tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]
r = p.add_run()
r.text = ("These reviews reinforce, rather than contradict, the Miller's Anesthesia framework \u2014 "
          "triage and decontamination protocols remain active areas of guideline refinement.")
r.font.size = Pt(15); r.font.italic = True; r.font.color.rgb = DARK_GRAY

# =========================================================
# SLIDE 25 — Take-home points
# =========================================================
s = prs.slides.add_slide(BLANK)
slide_header(s, "Summary", "Take-Home Points", 25)
add_bullets(s, Inches(0.6), Inches(1.75), Inches(12.0), Inches(4.8), [
    ("Anaesthesiologists bring resuscitation, airway, ICU, and pharmacologic expertise unmatched by most other specialties in disaster settings", 0),
    ("Role extends far beyond the OR: field triage, ED resuscitation, ICU surge, CBRN decontamination zones", 0),
    ("Every disaster type (natural, terrorism, CBRN, pandemic) has distinct clinical/logistic demands \u2014 but shares principles: command structure, PPE/protection, triage, resource conservation", 0),
    ("Institutional and personal preparedness (training, drills, psychological resilience) determine effectiveness when disaster strikes", 0),
    ("Anaesthesiology leadership (ASA protocols, Surgeon General precedent) has repeatedly shaped national-level disaster response", 0),
], size=16.5, space_after=12)

# =========================================================
# SLIDE 26 — Thank you
# =========================================================
s = prs.slides.add_slide(BLANK)
add_bg(s, NAVY)
band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(5.15), SW, Inches(0.12))
band.fill.solid(); band.fill.fore_color.rgb = ORANGE
band.line.fill.background(); band.shadow.inherit = False
add_textbox(s, Inches(0.9), Inches(2.7), Inches(11.5), Inches(1.2),
            "Thank You", size=48, color=WHITE, bold=True)
add_textbox(s, Inches(0.9), Inches(3.75), Inches(11), Inches(0.6),
            "Questions & Discussion", size=22, color=LIGHT_TEAL)
add_textbox(s, Inches(0.9), Inches(6.6), Inches(11), Inches(0.5),
            "Source: Miller's Anesthesia, 10th Edition \u2014 Disaster Preparedness & Response Chapter",
            size=13, color=RGBColor(0x9A, 0xB8, 0xC8), italic=True)

prs.save("/tmp/workspace/disaster-anesthesia-seminar/output/Role_of_Anaesthesiologist_in_Disasters.pptx")
print("Saved. Total slides:", len(prs.slides._sldIdLst))
Running Command

cd /tmp/workspace/disaster-anesthesia-seminar && python build_ppt.py

Running Command

cd /tmp/workspace/disaster-anesthesia-seminar/output && ls -la && python -c " from pptx import Presentation prs = Presentation('Role_of_Anaesthesiologist_in_Disasters.pptx') print('slides:', len(prs.slides)) for i, sl in enumerate(prs.slides,1): texts = [sh.text_frame.text.split(chr(10))[0][:55] for sh in sl.shapes if sh.has_text_frame and sh.text_frame.text.strip()] print(i, texts[:2]) "

Done. Restructured the deck to 26 slides - each disaster-fact slide is now clean (facts only), with a single consolidated "⚕ Role of the Anaesthesiologist in [Category]" slide placed right at the end of each of the four sections:
#Slide
1-4Title, Agenda, Introduction, Key Points
5-9Section 1: Natural Disasters - overview, Earthquakes, Tsunami, Hurricanes (facts only)
10→ Role of the Anaesthesiologist in Natural Disasters (Earthquakes / Tsunami / Hurricanes columns)
11-13Section 2: Acts of Terrorism - 9/11, Mass Shootings (facts only)
14→ Role of the Anaesthesiologist in Acts of Terrorism
15-17Section 3: CBRN Attacks - Causes/Command, PPE/Decon/TOXALS (facts only)
18→ Role of the Anaesthesiologist in CBRN Attacks
19-21Section 4: Pandemics - Influenza/SARS, COVID-19 (facts only)
22→ Role of the Anaesthesiologist in Pandemics
23-26Synthesis table, Recent evidence, Take-home points, Thank you
Each "Role" slide uses a distinct navy/orange design with sub-columns (e.g. Earthquakes / Tsunami / Hurricanes) so the anaesthesiologist-specific content is still fully captured, just consolidated instead of repeated on every slide.

Role of Anaesthesiologist in Disasters

Presentation · PPTX

Let me know if you'd like any further tweaks (e.g., images, speaker notes, or trimming slide count).
This is a shared conversation. Sign in to Orris to start your own chat.