E fast ppt picture

Asking for Preferences
Reading File
Reading File
Searching Images

EFAST extended focused assessment sonography trauma ultrasound

An anatomical diagram illustrating the transducer placement for the FAST (Focused Assessment with Sonography in Trauma) and eFAST (extended FAST) examinations on a human torso. The diagram uses color-coded ultrasound probes to distinguish between protocols. Blue probes indicate the standard FAST positions: the subxiphoid view (pericardial assessment), the right upper quadrant (Morison's pouch/hepatorenal space), the left upper quadrant (splenorenal space), and the suprapubic view (pelvic/rectovesical or recto-uterine pouch assessment) to detect free intraperitoneal fluid. Green probes represent the eFAST extensions: bilateral anterior thoracic views at the second to fourth intercostal spaces and mid-axillary views to assess for pneumothorax and hemothorax. This illustration is an educational tool for emergency medicine, trauma surgery, and radiology, demonstrating the systematic sonographic approach used to identify life-threatening hemorrhage or air in the thoracic and abdominal cavities during the primary survey of trauma patients.

An anatomical diagram illustrating the transducer placement for the FAST (Focused Assessment with Sonography in Trauma) and eFAST (extended FAST) examinations on a human torso. The diagram uses color-coded ultrasound probes to distinguish between protocols. Blue probes indicate the standard FAST positions: the subxiphoid view (pericardial assessment), the right upper quadrant (Morison's pouch/hepatorenal space), the left upper quadrant (splenorenal space), and the suprapubic view (pelvic/rectovesical or recto-uterine pouch assessment) to detect free intraperitoneal fluid. Green probes represent the eFAST extensions: bilateral anterior thoracic views at the second to fourth intercostal spaces and mid-axillary views to assess for pneumothorax and hemothorax. This illustration is an educational tool for emergency medicine, trauma surgery, and radiology, demonstrating the systematic sonographic approach used to identify life-threatening hemorrhage or air in the thoracic and abdominal cavities during the primary survey of trauma patients.

Educational photographs of test platforms for evaluating ultrasound probe adapters and robotic automation in emergency medicine. Figures A and B show a clinical torso mannequin configured for the Extended Focused Assessment with Sonography for Trauma (eFAST) exam. The mannequin is equipped with integrated force-sensing resistors, indicated by white rectangular patches with red wiring, strategically positioned at standardized eFAST scan points (e.g., pericardial, perihepatic, perisplenic, and pelvic views) to measure contact repeatability and force application. Figures C and D display an ultrasound tissue phantom representing the femoral region, used for image repeatability testing. This phantom features anatomically correct skin-tone material and internal vasculature suitable for evaluating vascular access and probe-to-tissue contact stability. The setup demonstrates specialized medical simulation technology used in biomedical engineering and clinical robotics to standardize ultrasound imaging protocols and improve procedural accuracy in high-stakes diagnostic environments.

Educational photographs of test platforms for evaluating ultrasound probe adapters and robotic automation in emergency medicine. Figures A and B show a clinical torso mannequin configured for the Extended Focused Assessment with Sonography for Trauma (eFAST) exam. The mannequin is equipped with integrated force-sensing resistors, indicated by white rectangular patches with red wiring, strategically positioned at standardized eFAST scan points (e.g., pericardial, perihepatic, perisplenic, and pelvic views) to measure contact repeatability and force application. Figures C and D display an ultrasound tissue phantom representing the femoral region, used for image repeatability testing. This phantom features anatomically correct skin-tone material and internal vasculature suitable for evaluating vascular access and probe-to-tissue contact stability. The setup demonstrates specialized medical simulation technology used in biomedical engineering and clinical robotics to standardize ultrasound imaging protocols and improve procedural accuracy in high-stakes diagnostic environments.

This dual-panel image demonstrates a left-sided retroperitoneal hematoma through different imaging modalities. Image (a) is a retroperitoneal Extended Focused Assessment with Sonography for Trauma (r-EFAST) ultrasound scan. It shows an anechoic to hypoechoic fluid collection in the left perirenal space, with electronic callipers (dotted line marked 'A' and 'X') measuring the 1.5 cm hematoma. Image (b) is an axial contrast-enhanced CT scan of the abdomen. It reveals a hyperdense collection representing a combined perirenal and pararenal hematoma (indicated by a white arrow). The hematoma is situated adjacent to the left kidney, causing anterior displacement of the renal parenchyma. These images illustrate the diagnostic utility of specialized ultrasound protocols (r-EFAST) compared to gold-standard CT imaging for detecting retroperitoneal bleeding following invasive medical procedures. The clinical significance lies in the rapid identification of post-catheterization complications in patients presenting with flank pain and hemodynamic instability.

This dual-panel image demonstrates a left-sided retroperitoneal hematoma through different imaging modalities. Image (a) is a retroperitoneal Extended Focused Assessment with Sonography for Trauma (r-EFAST) ultrasound scan. It shows an anechoic to hypoechoic fluid collection in the left perirenal space, with electronic callipers (dotted line marked 'A' and 'X') measuring the 1.5 cm hematoma. Image (b) is an axial contrast-enhanced CT scan of the abdomen. It reveals a hyperdense collection representing a combined perirenal and pararenal hematoma (indicated by a white arrow). The hematoma is situated adjacent to the left kidney, causing anterior displacement of the renal parenchyma. These images illustrate the diagnostic utility of specialized ultrasound protocols (r-EFAST) compared to gold-standard CT imaging for detecting retroperitoneal bleeding following invasive medical procedures. The clinical significance lies in the rapid identification of post-catheterization complications in patients presenting with flank pain and hemodynamic instability.

This composite image illustrates the use of M-mode ultrasonography for the diagnosis of pneumothorax (PTX) using both a tissue phantom and human simulator scans. (A) Anatomical diagram showing a rib cage phantom with an integrated actuator mechanism used to simulate lung respiration. (B) M-mode ultrasound image of the phantom showing the 'seashore' sign, characterized by a granular, textured appearance deep to the pleural line, indicating normal lung sliding. (C) M-mode image of the phantom showing the 'barcode' or 'stratosphere' sign, where parallel horizontal lines replace the granular texture, signifying the absence of lung sliding indicative of a pneumothorax. (D) Human eFAST simulator baseline scan demonstrating normal respiratory motion in M-mode with undulating lines and heterogeneous texture. (E) Human eFAST simulator scan showing PTX injury with rigid, striated echogenic lines and a uniform linear pattern. These visual signatures are critical landmarks in the eFAST (Extended Focused Assessment with Sonography for Trauma) protocol for identifying air in the pleural cavity.

This composite image illustrates the use of M-mode ultrasonography for the diagnosis of pneumothorax (PTX) using both a tissue phantom and human simulator scans. (A) Anatomical diagram showing a rib cage phantom with an integrated actuator mechanism used to simulate lung respiration. (B) M-mode ultrasound image of the phantom showing the 'seashore' sign, characterized by a granular, textured appearance deep to the pleural line, indicating normal lung sliding. (C) M-mode image of the phantom showing the 'barcode' or 'stratosphere' sign, where parallel horizontal lines replace the granular texture, signifying the absence of lung sliding indicative of a pneumothorax. (D) Human eFAST simulator baseline scan demonstrating normal respiratory motion in M-mode with undulating lines and heterogeneous texture. (E) Human eFAST simulator scan showing PTX injury with rigid, striated echogenic lines and a uniform linear pattern. These visual signatures are critical landmarks in the eFAST (Extended Focused Assessment with Sonography for Trauma) protocol for identifying air in the pleural cavity.

This diagnostic image displays a split-screen B-mode ultrasound of a left hemothorax in a 30-year-old male. The scan, performed using a cardiac preset and harmonic imaging (2D HAR) at 3.6 MHz, shows a large anechoic to hypoechoic fluid collection in the pleural space, consistent with blood accumulation. The fluid collection demonstrates heterogeneous internal echotexture. Superior to the fluid, the lung appears as a consolidated, hyperechoic structure floating within the effusion. Dotted caliper lines indicate volumetric measurements (D1, D2, D3), with a calculated volume of approximately 416.09 cm³. The image demonstrates clinical utility in the eFAST (Extended Focused Assessment with Sonography for Trauma) protocol for identifying pleural effusions and hemothorax. Key ultrasound parameters are visible on the right sidebar, including a dynamic range (DR) of 65 and a frame rate (FR) of 59, optimized for high-contrast thoracic imaging.

This diagnostic image displays a split-screen B-mode ultrasound of a left hemothorax in a 30-year-old male. The scan, performed using a cardiac preset and harmonic imaging (2D HAR) at 3.6 MHz, shows a large anechoic to hypoechoic fluid collection in the pleural space, consistent with blood accumulation. The fluid collection demonstrates heterogeneous internal echotexture. Superior to the fluid, the lung appears as a consolidated, hyperechoic structure floating within the effusion. Dotted caliper lines indicate volumetric measurements (D1, D2, D3), with a calculated volume of approximately 416.09 cm³. The image demonstrates clinical utility in the eFAST (Extended Focused Assessment with Sonography for Trauma) protocol for identifying pleural effusions and hemothorax. Key ultrasound parameters are visible on the right sidebar, including a dynamic range (DR) of 65 and a frame rate (FR) of 59, optimized for high-contrast thoracic imaging.

This dual-modality figure presents a comparison of diagnostic imaging for a retroperitoneal hematoma. Image (a) is a retroperitoneal-Extended Focused Assessment with Sonography for Trauma (r-EFAST) ultrasound scan showing a left renal hematoma. The pathology appears as a hypoechoic (dark) fluid collection adjacent to the kidney, with calipers indicating a 6 cm measurement. Image (b) is an axial computed tomography (CT) scan with intravenous contrast of the same patient. The CT confirms a large perirenal hematoma (white arrow) that extends into the pararenal space. Notably, the CT scan demonstrates inhomogeneous contrast distribution within the left renal parenchyma, suggesting compromised perfusion or parenchymal injury. This comparison illustrates the utility of bedside ultrasound in the rapid detection of retroperitoneal bleeding following invasive procedures, while CT provides superior anatomical detail regarding the extent of the hematoma and the functional status of the renal tissue. The clinical focus is on emergency radiology, trauma, and post-procedural complication monitoring for medical students and residents.

This dual-modality figure presents a comparison of diagnostic imaging for a retroperitoneal hematoma. Image (a) is a retroperitoneal-Extended Focused Assessment with Sonography for Trauma (r-EFAST) ultrasound scan showing a left renal hematoma. The pathology appears as a hypoechoic (dark) fluid collection adjacent to the kidney, with calipers indicating a 6 cm measurement. Image (b) is an axial computed tomography (CT) scan with intravenous contrast of the same patient. The CT confirms a large perirenal hematoma (white arrow) that extends into the pararenal space. Notably, the CT scan demonstrates inhomogeneous contrast distribution within the left renal parenchyma, suggesting compromised perfusion or parenchymal injury. This comparison illustrates the utility of bedside ultrasound in the rapid detection of retroperitoneal bleeding following invasive procedures, while CT provides superior anatomical detail regarding the extent of the hematoma and the functional status of the renal tissue. The clinical focus is on emergency radiology, trauma, and post-procedural complication monitoring for medical students and residents.

A split-field thoracic ultrasound image demonstrating normal lung findings in both B-mode (left) and M-mode (right). The left panel shows a 2-D grayscale view of the chest wall with alternating hyperechoic and hypoechoic layers representing subcutaneous tissue and muscle. A distinct, bright hyperechoic horizontal line (indicated by white arrowheads) represents the normal pleura. The right panel displays the M-mode 'seashore sign,' which confirms the presence of lung sliding and rules out pneumothorax at that site. The 'sea' portion (top) consists of horizontal, parallel linear echogenicities representing the stationary chest wall. Below the pleural line, the 'shore' (bottom) displays a granular, sandy texture representing the dynamic motion of the pulmonary parenchyma during respiration. This visual comparison is a fundamental component of the Extended Focused Assessment with Sonography for Trauma (eFAST) protocol used to evaluate for intra-pleural air or fluid.

A split-field thoracic ultrasound image demonstrating normal lung findings in both B-mode (left) and M-mode (right). The left panel shows a 2-D grayscale view of the chest wall with alternating hyperechoic and hypoechoic layers representing subcutaneous tissue and muscle. A distinct, bright hyperechoic horizontal line (indicated by white arrowheads) represents the normal pleura. The right panel displays the M-mode 'seashore sign,' which confirms the presence of lung sliding and rules out pneumothorax at that site. The 'sea' portion (top) consists of horizontal, parallel linear echogenicities representing the stationary chest wall. Below the pleural line, the 'shore' (bottom) displays a granular, sandy texture representing the dynamic motion of the pulmonary parenchyma during respiration. This visual comparison is a fundamental component of the Extended Focused Assessment with Sonography for Trauma (eFAST) protocol used to evaluate for intra-pleural air or fluid.

Reading File
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Running Command

mkdir -p /tmp/workspace/efast-ppt && ls /tmp/workspace/efast-ppt/

Writing File

~/efast-ppt/build_efast.py

import json, subprocess, base64, sys
from io import BytesIO
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.oxml.ns import qn
from lxml import etree

# ─── Colours ────────────────────────────────────────────────────────────────
DARK_BLUE   = RGBColor(0x0D, 0x2B, 0x55)   # deep navy
MED_BLUE    = RGBColor(0x14, 0x5C, 0x9E)   # mid-blue header
ACCENT      = RGBColor(0x00, 0xB0, 0xD4)   # teal accent
WHITE       = RGBColor(0xFF, 0xFF, 0xFF)
LIGHT_GREY  = RGBColor(0xF0, 0xF4, 0xF8)
TEXT_DARK   = RGBColor(0x1A, 0x1A, 0x2E)
BULLET_COL  = RGBColor(0x00, 0xB0, 0xD4)

W = Inches(13.333)
H = Inches(7.5)

prs = Presentation()
prs.slide_width  = W
prs.slide_height = H
blank = prs.slide_layouts[6]  # fully blank

# ─── Helper: filled rectangle ───────────────────────────────────────────────
def add_rect(slide, x, y, w, h, fill_rgb, line_rgb=None):
    shape = slide.shapes.add_shape(1, x, y, w, h)  # MSO_SHAPE_TYPE.RECTANGLE = 1
    shape.fill.solid()
    shape.fill.fore_color.rgb = fill_rgb
    if line_rgb:
        shape.line.color.rgb = line_rgb
        shape.line.width = Pt(1)
    else:
        shape.line.fill.background()
    return shape

# ─── Helper: textbox ────────────────────────────────────────────────────────
def add_tb(slide, text, x, y, w, h, size=18, bold=False, color=TEXT_DARK,
           align=PP_ALIGN.LEFT, wrap=True, italic=False):
    tb = slide.shapes.add_textbox(x, y, w, h)
    tf = tb.text_frame
    tf.word_wrap = wrap
    tf.margin_left  = 0
    tf.margin_right = 0
    tf.margin_top   = 0
    tf.margin_bottom= 0
    p = tf.paragraphs[0]
    p.alignment = align
    r = p.add_run()
    r.text = text
    r.font.name  = "Calibri"
    r.font.size  = Pt(size)
    r.font.bold  = bold
    r.font.italic = italic
    r.font.color.rgb = color
    return tb

# ─── Helper: multi-bullet textbox ───────────────────────────────────────────
def add_bullets(slide, items, x, y, w, h, size=15, color=TEXT_DARK, indent=True):
    tb = slide.shapes.add_textbox(x, y, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = Inches(0.1)
    tf.margin_top  = 0
    first = True
    for item in items:
        if first:
            p = tf.paragraphs[0]
            first = False
        else:
            p = tf.add_paragraph()
        p.space_before = Pt(4)
        r = p.add_run()
        r.text = ("• " if indent else "") + item
        r.font.name  = "Calibri"
        r.font.size  = Pt(size)
        r.font.color.rgb = color
    return tb

# ─── Helper: fetch image from URL → BytesIO ─────────────────────────────────
def fetch_image(url):
    try:
        result = json.loads(subprocess.check_output(
            ["python", "/tmp/skills/shared/scripts/fetch_images.py", url],
            timeout=30
        ))
        if result and result[0].get("base64"):
            b64 = result[0]["base64"]
            if "," in b64:
                b64 = b64.split(",", 1)[1]
            return BytesIO(base64.b64decode(b64))
    except Exception as e:
        print(f"  [warn] fetch failed for {url}: {e}", file=sys.stderr)
    return None

# ─── Helper: add image safely ───────────────────────────────────────────────
def add_image(slide, url, x, y, w, h):
    bio = fetch_image(url)
    if bio:
        try:
            slide.shapes.add_picture(bio, x, y, w, h)
            return True
        except Exception as e:
            print(f"  [warn] add_picture failed: {e}", file=sys.stderr)
    return False

# ═══════════════════════════════════════════════════════════════════════════
# SLIDE 1 — TITLE SLIDE
# ═══════════════════════════════════════════════════════════════════════════
slide1 = prs.slides.add_slide(blank)

# Full background
add_rect(slide1, 0, 0, W, H, DARK_BLUE)

# Accent bar (left side vertical stripe)
add_rect(slide1, 0, 0, Inches(0.45), H, ACCENT)

# Top accent line
add_rect(slide1, 0, 0, W, Inches(0.08), ACCENT)

# Title
add_tb(slide1,
       "eFAST Examination",
       Inches(1.1), Inches(1.8), Inches(11), Inches(1.6),
       size=56, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

# Subtitle
add_tb(slide1,
       "Extended Focused Assessment with Sonography for Trauma",
       Inches(1.1), Inches(3.5), Inches(11), Inches(0.9),
       size=22, bold=False, color=ACCENT, align=PP_ALIGN.CENTER)

# Divider
add_rect(slide1, Inches(3.5), Inches(4.55), Inches(6.3), Inches(0.05), ACCENT)

# Tagline
add_tb(slide1,
       "Rapid · Repeatable · Non-invasive · Bedside",
       Inches(1.1), Inches(4.75), Inches(11), Inches(0.7),
       size=16, italic=True, color=WHITE, align=PP_ALIGN.CENTER)

# Footer
add_tb(slide1,
       "Emergency Medicine  |  Trauma Surgery  |  Critical Care",
       Inches(1.1), Inches(6.7), Inches(11), Inches(0.5),
       size=12, color=RGBColor(0xA0, 0xC4, 0xE0), align=PP_ALIGN.CENTER)

# ═══════════════════════════════════════════════════════════════════════════
# SLIDE 2 — WHAT IS eFAST?
# ═══════════════════════════════════════════════════════════════════════════
slide2 = prs.slides.add_slide(blank)
add_rect(slide2, 0, 0, W, H, LIGHT_GREY)
add_rect(slide2, 0, 0, W, Inches(1.35), DARK_BLUE)
add_rect(slide2, 0, 0, Inches(0.08), H, ACCENT)
add_rect(slide2, 0, Inches(1.35), Inches(0.08), H - Inches(1.35), MED_BLUE)

# Slide title
add_tb(slide2, "What is eFAST?",
       Inches(0.25), Inches(0.22), Inches(9), Inches(0.9),
       size=34, bold=True, color=WHITE)

# Slide number
add_tb(slide2, "01", Inches(12.3), Inches(0.22), Inches(0.9), Inches(0.8),
       size=28, bold=True, color=ACCENT, align=PP_ALIGN.RIGHT)

# Left text column
bullets_left = [
    "eFAST = Extended Focused Assessment with Sonography for Trauma",
    "Bedside ultrasound exam — rapid, non-invasive, repeatable during resuscitation",
    "Evolved from FAST (Focused Abdominal Sonography for Trauma), first developed in the 1970s",
    "Replaces diagnostic peritoneal lavage (DPL) in most modern trauma algorithms",
    "Incorporated into ATLS (Advanced Trauma Life Support) as standard of care",
    "Can be performed on any patient — infants to pregnant women",
]
add_bullets(slide2, bullets_left,
            Inches(0.35), Inches(1.6), Inches(7.4), Inches(5.5),
            size=15, color=TEXT_DARK)

# Right panel image
img_url = "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_5060df12afa1185b81b7aa008a4dd32715d375d3aab5722b28d7f496591185a8.jpg"
added = add_image(slide2, img_url, Inches(7.9), Inches(1.5), Inches(5.0), Inches(5.6))
if not added:
    add_rect(slide2, Inches(7.9), Inches(1.5), Inches(5.0), Inches(5.6), MED_BLUE)
    add_tb(slide2, "eFAST\nProbe Positions\nDiagram",
           Inches(7.9), Inches(3.2), Inches(5.0), Inches(1.5),
           size=16, color=WHITE, align=PP_ALIGN.CENTER)

# Caption
add_tb(slide2, "Probe placement for FAST (blue) and eFAST (green) examinations",
       Inches(7.9), Inches(7.0), Inches(5.0), Inches(0.4),
       size=10, italic=True, color=MED_BLUE, align=PP_ALIGN.CENTER)

# ═══════════════════════════════════════════════════════════════════════════
# SLIDE 3 — VIEWS & ANATOMY
# ═══════════════════════════════════════════════════════════════════════════
slide3 = prs.slides.add_slide(blank)
add_rect(slide3, 0, 0, W, H, LIGHT_GREY)
add_rect(slide3, 0, 0, W, Inches(1.35), DARK_BLUE)
add_rect(slide3, 0, 0, Inches(0.08), H, ACCENT)

add_tb(slide3, "eFAST Views & Anatomy",
       Inches(0.25), Inches(0.22), Inches(9), Inches(0.9),
       size=34, bold=True, color=WHITE)
add_tb(slide3, "02", Inches(12.3), Inches(0.22), Inches(0.9), Inches(0.8),
       size=28, bold=True, color=ACCENT, align=PP_ALIGN.RIGHT)

# ── four view cards ──────────────────────────────────────────────────────
card_data = [
    ("Subxiphoid / Parasternal",  "Pericardial effusion\nCardiac tamponade\nHeart motion"),
    ("Right Upper Quadrant",       "Morison's pouch\nHepato-renal space\nRight paracolic gutter"),
    ("Left Upper Quadrant",        "Splenorenal space\nLeft paracolic gutter\nLeft hemithorax base"),
    ("Suprapubic (Pelvic)",        "Recto-vesical pouch (M)\nPouchy of Douglas (F)\nFree pelvic fluid"),
]
extra = [
    ("Bilateral Thoracic\n(eFAST extension)", "Anterior chest 2nd-4th ICS\nMid-axillary view\nPneumothorax / Hemothorax"),
    ("M-mode Lung",                            "Seashore sign → normal\nBarcode sign → pneumothorax\nLung sliding assessment"),
]

cx = Inches(0.22)
cy = Inches(1.5)
cw = Inches(3.1)
ch = Inches(2.4)
gap = Inches(0.2)

all_cards = card_data
for i, (title, body) in enumerate(all_cards):
    col = i % 4
    row = i // 4
    x = cx + col * (cw + gap)
    y = cy + row * (ch + gap)
    add_rect(slide3, x, y, cw, ch, WHITE)
    # card header
    add_rect(slide3, x, y, cw, Inches(0.5), MED_BLUE)
    add_tb(slide3, title, x + Inches(0.08), y + Inches(0.04),
           cw - Inches(0.15), Inches(0.45),
           size=12, bold=True, color=WHITE, wrap=True)
    add_tb(slide3, body, x + Inches(0.1), y + Inches(0.55),
           cw - Inches(0.2), ch - Inches(0.65),
           size=12, color=TEXT_DARK, wrap=True)

# Row 2: eFAST extensions (2 cards side by side, centred)
row2_y = cy + ch + gap
row2_start_x = Inches(0.22) + Inches(1.55)  # indent to centre under 4 cards
for i, (title, body) in enumerate(extra):
    x = row2_start_x + i * (cw + gap + Inches(3.3))
    add_rect(slide3, x, row2_y, cw + Inches(0.5), ch, WHITE)
    add_rect(slide3, x, row2_y, cw + Inches(0.5), Inches(0.5), ACCENT)
    add_tb(slide3, title, x + Inches(0.08), row2_y + Inches(0.04),
           cw + Inches(0.3), Inches(0.45),
           size=12, bold=True, color=WHITE, wrap=True)
    add_tb(slide3, body, x + Inches(0.1), row2_y + Inches(0.55),
           cw + Inches(0.3), ch - Inches(0.65),
           size=12, color=TEXT_DARK, wrap=True)

# Seashore / Barcode image (right side)
img_url3 = "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_59e138b16fde412e5797be3c63b3e2ebde6049450b75014e0c2f2067b890ede4.jpg"
add_image(slide3, img_url3, Inches(9.7), Inches(1.5), Inches(3.45), Inches(5.6))
add_tb(slide3, "M-mode: Seashore (normal) vs. Barcode (PTX)",
       Inches(9.7), Inches(7.05), Inches(3.45), Inches(0.35),
       size=9, italic=True, color=MED_BLUE, align=PP_ALIGN.CENTER)

# ═══════════════════════════════════════════════════════════════════════════
# SLIDE 4 — PERFORMING THE EXAM
# ═══════════════════════════════════════════════════════════════════════════
slide4 = prs.slides.add_slide(blank)
add_rect(slide4, 0, 0, W, H, LIGHT_GREY)
add_rect(slide4, 0, 0, W, Inches(1.35), MED_BLUE)
add_rect(slide4, 0, 0, Inches(0.08), H, ACCENT)

add_tb(slide4, "Performing the eFAST Exam",
       Inches(0.25), Inches(0.22), Inches(9), Inches(0.9),
       size=34, bold=True, color=WHITE)
add_tb(slide4, "03", Inches(12.3), Inches(0.22), Inches(0.9), Inches(0.8),
       size=28, bold=True, color=ACCENT, align=PP_ALIGN.RIGHT)

# Left column: equipment
add_rect(slide4, Inches(0.22), Inches(1.5), Inches(4.0), Inches(5.6), WHITE)
add_rect(slide4, Inches(0.22), Inches(1.5), Inches(4.0), Inches(0.5), DARK_BLUE)
add_tb(slide4, "Equipment", Inches(0.3), Inches(1.53), Inches(3.85), Inches(0.45),
       size=14, bold=True, color=WHITE)
add_bullets(slide4, [
    "Phased-array or curvilinear probe\n(2-5 MHz) for abdominal views",
    "High-frequency linear probe\n(6-13 MHz) optimal for pleural views",
    "Patient supine during primary survey",
    "Probe marker orientation:\n- RUQ/LUQ: cephalad\n- Subxiphoid: toward left shoulder\n- Suprapubic: cephalad or transverse",
], Inches(0.32), Inches(2.1), Inches(3.8), Inches(4.8), size=13, color=TEXT_DARK, indent=True)

# Middle column: technique
add_rect(slide4, Inches(4.42), Inches(1.5), Inches(4.5), Inches(5.6), WHITE)
add_rect(slide4, Inches(4.42), Inches(1.5), Inches(4.5), Inches(0.5), DARK_BLUE)
add_tb(slide4, "Examination Sequence", Inches(4.5), Inches(1.53), Inches(4.3), Inches(0.45),
       size=14, bold=True, color=WHITE)
steps = [
    "1  Subxiphoid — pericardial effusion",
    "2  Right upper quadrant — Morison's pouch",
    "3  Left upper quadrant — splenorenal",
    "4  Suprapubic — pelvic free fluid",
    "5  Right anterior chest — lung sliding / PTX",
    "6  Left anterior chest — lung sliding / PTX",
    "7  Bilateral costophrenic angles — hemothorax",
]
add_bullets(slide4, steps, Inches(4.52), Inches(2.1), Inches(4.3), Inches(4.8),
            size=13, color=TEXT_DARK, indent=False)

# Right: image
img_url4 = "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_6882730bc3b4a21d9b31976397409ed7956985a1c04ed2ed01e0aed5af710230.jpg"
added4 = add_image(slide4, img_url4, Inches(9.12), Inches(1.5), Inches(3.9), Inches(5.6))
if not added4:
    add_rect(slide4, Inches(9.12), Inches(1.5), Inches(3.9), Inches(5.6), MED_BLUE)
add_tb(slide4, "Normal lung sliding — Seashore sign (M-mode)",
       Inches(9.12), Inches(7.05), Inches(3.9), Inches(0.35),
       size=9, italic=True, color=MED_BLUE, align=PP_ALIGN.CENTER)

# ═══════════════════════════════════════════════════════════════════════════
# SLIDE 5 — POSITIVE FINDINGS
# ═══════════════════════════════════════════════════════════════════════════
slide5 = prs.slides.add_slide(blank)
add_rect(slide5, 0, 0, W, H, LIGHT_GREY)
add_rect(slide5, 0, 0, W, Inches(1.35), DARK_BLUE)
add_rect(slide5, 0, 0, Inches(0.08), H, ACCENT)

add_tb(slide5, "Positive eFAST Findings",
       Inches(0.25), Inches(0.22), Inches(9), Inches(0.9),
       size=34, bold=True, color=WHITE)
add_tb(slide5, "04", Inches(12.3), Inches(0.22), Inches(0.9), Inches(0.8),
       size=28, bold=True, color=ACCENT, align=PP_ALIGN.RIGHT)

# Finding cards
findings = [
    ("Free Intraperitoneal Fluid",
     "Appears anechoic (black)\nRUQ: Morison's pouch\nLUQ: splenorenal recess\nPelvis: behind bladder / uterus\nDetects > 100 mL of free blood"),
    ("Pericardial Effusion\n/ Tamponade",
     "Anechoic halo around heart\nSubxiphoid view\nParasternal long-axis view\nLoss of cardiac motion\n→ Emergency pericardiocentesis"),
    ("Pneumothorax",
     "Absent lung sliding\nBarcode sign on M-mode\nLung point (pathognomonic)\nAbolished comet-tail artefacts\nHigher sensitivity than CXR"),
    ("Hemothorax",
     "Anechoic fluid at costophrenic angle\nCompressed/floating lung\nDetects as little as 10 mL\nChallenging on supine CXR\nGuides thoracocentesis / chest drain"),
]

fw = Inches(3.1)
fh = Inches(5.5)
fx_start = Inches(0.22)
fy = Inches(1.5)
fgap = Inches(0.22)

for i, (title, body) in enumerate(findings):
    fx = fx_start + i * (fw + fgap)
    add_rect(slide5, fx, fy, fw, fh, WHITE)
    add_rect(slide5, fx, fy, fw, Inches(0.6), MED_BLUE)
    add_tb(slide5, title, fx + Inches(0.08), fy + Inches(0.04),
           fw - Inches(0.15), Inches(0.55),
           size=12, bold=True, color=WHITE, wrap=True)
    add_bullets(slide5, body.split("\n"),
                fx + Inches(0.1), fy + Inches(0.68),
                fw - Inches(0.2), fh - Inches(0.8),
                size=12, color=TEXT_DARK, indent=True)

# Add RUQ positive image below 1st card or on the right
img_url5 = "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_4e1ccec826f3d736679ec4b2889f8ddecca0f59265e13e88bdc9035c1fa26f6b.jpg"
add_image(slide5, img_url5, Inches(9.7), Inches(1.5), Inches(3.45), Inches(5.5))
add_tb(slide5, "Retroperitoneal hematoma: r-EFAST vs CT",
       Inches(9.7), Inches(7.0), Inches(3.45), Inches(0.4),
       size=9, italic=True, color=MED_BLUE, align=PP_ALIGN.CENTER)

# ═══════════════════════════════════════════════════════════════════════════
# SLIDE 6 — ACCURACY, LIMITATIONS & CLINICAL CONTEXT
# ═══════════════════════════════════════════════════════════════════════════
slide6 = prs.slides.add_slide(blank)
add_rect(slide6, 0, 0, W, H, LIGHT_GREY)
add_rect(slide6, 0, 0, W, Inches(1.35), MED_BLUE)
add_rect(slide6, 0, 0, Inches(0.08), H, ACCENT)

add_tb(slide6, "Accuracy, Limitations & Clinical Context",
       Inches(0.25), Inches(0.22), Inches(11), Inches(0.9),
       size=30, bold=True, color=WHITE)
add_tb(slide6, "05", Inches(12.3), Inches(0.22), Inches(0.9), Inches(0.8),
       size=28, bold=True, color=ACCENT, align=PP_ALIGN.RIGHT)

# Accuracy panel
add_rect(slide6, Inches(0.22), Inches(1.5), Inches(4.0), Inches(5.5), WHITE)
add_rect(slide6, Inches(0.22), Inches(1.5), Inches(4.0), Inches(0.5), ACCENT)
add_tb(slide6, "Sensitivity & Specificity", Inches(0.3), Inches(1.53),
       Inches(3.85), Inches(0.45), size=13, bold=True, color=WHITE)
add_bullets(slide6, [
    "Hypotensive blunt trauma:\n→ sensitivity ≈ 100%",
    "Normotensive blunt trauma:\n→ sensitivity 42-86%\n→ specificity 98-99%",
    "Pneumothorax:\n→ superior to supine CXR\n(CXR sensitivity 47-75%)",
    "Haemothorax:\n→ detects as little as 10 mL",
    "Detects free blood > 100 mL",
], Inches(0.32), Inches(2.1), Inches(3.8), Inches(4.7), size=12, color=TEXT_DARK)

# Limitations panel
add_rect(slide6, Inches(4.42), Inches(1.5), Inches(4.5), Inches(5.5), WHITE)
add_rect(slide6, Inches(4.42), Inches(1.5), Inches(4.5), Inches(0.5), RGBColor(0xC0, 0x39, 0x2B))
add_tb(slide6, "Limitations", Inches(4.5), Inches(1.53), Inches(4.3), Inches(0.45),
       size=13, bold=True, color=WHITE)
add_bullets(slide6, [
    "Operator dependent",
    "Unreliable in obesity or bowel gas",
    "Hollow viscus injury not well seen",
    "Low sensitivity (29-35%) for solid organ injury without haemoperitoneum",
    "Cannot exclude injury in penetrating trauma",
    "Unreliable for retroperitoneum",
    "May need repeat or CT supplementation",
], Inches(4.52), Inches(2.1), Inches(4.3), Inches(4.7), size=12, color=TEXT_DARK)

# Clinical context panel
add_rect(slide6, Inches(9.12), Inches(1.5), Inches(3.9), Inches(5.5), WHITE)
add_rect(slide6, Inches(9.12), Inches(1.5), Inches(3.9), Inches(0.5), DARK_BLUE)
add_tb(slide6, "When to Use", Inches(9.2), Inches(1.53), Inches(3.75), Inches(0.45),
       size=13, bold=True, color=WHITE)
add_bullets(slide6, [
    "Blunt & penetrating torso trauma",
    "Unstable trauma patient",
    "Suspected cardiac tamponade",
    "Ruptured ectopic pregnancy",
    "Unexplained hypotension / shock",
    "Serial assessment during resuscitation",
    "When CT is unavailable or delayed",
    "Part of RUSH exam in undifferentiated shock",
], Inches(9.2), Inches(2.1), Inches(3.75), Inches(4.7), size=12, color=TEXT_DARK)

# ═══════════════════════════════════════════════════════════════════════════
# SLIDE 7 — SUMMARY / KEY TAKEAWAYS
# ═══════════════════════════════════════════════════════════════════════════
slide7 = prs.slides.add_slide(blank)
add_rect(slide7, 0, 0, W, H, DARK_BLUE)
add_rect(slide7, 0, 0, Inches(0.45), H, ACCENT)
add_rect(slide7, 0, H - Inches(0.08), W, Inches(0.08), ACCENT)

add_tb(slide7, "Key Takeaways",
       Inches(1.0), Inches(0.35), Inches(11), Inches(1.0),
       size=38, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

add_rect(slide7, Inches(2.5), Inches(1.45), Inches(8.3), Inches(0.05), ACCENT)

takeaways = [
    "eFAST extends classic FAST with bilateral thoracic views to detect pneumothorax and hemothorax",
    "Performs 7 sonographic windows: subxiphoid, RUQ, LUQ, suprapubic, 2× anterior chest, 2× costophrenic",
    "Sensitivity approaches 100% for free fluid in haemodynamically unstable blunt trauma",
    "Seashore sign = normal lung sliding;  Barcode sign = pneumothorax (M-mode)",
    "More sensitive than supine CXR for pneumothorax — avoids radiation in primary survey",
    "Limitations: operator dependent; misses hollow viscus injury; unreliable in penetrating trauma",
    "A positive eFAST in an unstable patient mandates urgent surgical intervention",
]

for i, t in enumerate(takeaways):
    y_pos = Inches(1.6) + i * Inches(0.75)
    # Bullet circle
    add_rect(slide7, Inches(1.0), y_pos + Inches(0.15), Inches(0.3), Inches(0.3), ACCENT)
    add_tb(slide7, t, Inches(1.5), y_pos, Inches(11.2), Inches(0.7),
           size=14, color=WHITE, wrap=True)

# ─── Save ───────────────────────────────────────────────────────────────────
out_path = "/tmp/workspace/efast-ppt/eFAST_Examination.pptx"
prs.save(out_path)
print(f"Saved: {out_path}")
Running Command

cd /tmp/workspace/efast-ppt && python build_efast.py 2>&1

Finding Files

**/*.py in /tmp/skills

Running Command

python /tmp/skills/shared/scripts/fetch_images.py "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_5060df12afa1185b81b7aa008a4dd32715d375d3aab5722b28d7f496591185a8.jpg" 2>&1 | head -5

Running Command

ls -la /tmp/workspace/efast-ppt/ && python -c " from pptx import Presentation prs = Presentation('/tmp/workspace/efast-ppt/eFAST_Examination.pptx') print(f'Slides: {len(prs.slides)}') for i, s in enumerate(prs.slides, 1): texts = [sh.text_frame.text[:50] for sh in s.shapes if sh.has_text_frame and sh.text_frame.text.strip()] print(f'Slide {i}: {texts[:2]}') "

Running Command

python /tmp/skills/shared/scripts/fetch_images.py \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_5060df12afa1185b81b7aa008a4dd32715d375d3aab5722b28d7f496591185a8.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_59e138b16fde412e5797be3c63b3e2ebde6049450b75014e0c2f2067b890ede4.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_6882730bc3b4a21d9b31976397409ed7956985a1c04ed2ed01e0aed5af710230.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_4e1ccec826f3d736679ec4b2889f8ddecca0f59265e13e88bdc9035c1fa26f6b.jpg" \ 2>&1 | python -c " import sys, json data = json.load(sys.stdin) for item in data: has = 'OK' if item.get('base64') else 'FAIL' print(has, item['url'][-40:]) "

Editing File

~/efast-ppt/build_efast.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/efast-ppt/build_efast.py'
Running Command

cd /tmp/workspace/efast-ppt && python build_efast.py 2>&1

Running Command

ls -lh /tmp/workspace/efast-ppt/eFAST_Examination.pptx && python -c " from pptx import Presentation prs = Presentation('/tmp/workspace/efast-ppt/eFAST_Examination.pptx') print(f'Slides: {len(prs.slides)}') for i, s in enumerate(prs.slides, 1): imgs = [sh for sh in s.shapes if sh.shape_type == 13] print(f'Slide {i}: {len(imgs)} image(s)') "

Your eFAST presentation is ready! Here's a summary of what's inside:

eFAST Examination

Presentation · PPTX


7 slides, 16:9 widescreen, navy/teal clinical theme:
SlideTitleImages
1Title Slide - eFAST Examination-
2What is eFAST? - History, evolution from FAST/DPL, ATLS standardProbe placement diagram (FAST blue / eFAST green)
3eFAST Views & Anatomy - 6 view cards (subxiphoid, RUQ, LUQ, suprapubic, bilateral thoracic, M-mode)Seashore vs. Barcode sign (M-mode)
4Performing the Exam - Equipment, 7-step examination sequenceNormal lung sliding seashore sign
5Positive Findings - Free fluid, pericardial effusion/tamponade, pneumothorax, hemothoraxRetroperitoneal hematoma: r-EFAST vs CT
6Accuracy, Limitations & Clinical Context - Sensitivity/specificity data, limitations, indications-
7Key Takeaways - 7 bullet summary-
All clinical content sourced from Bailey & Love's Surgery, Roberts & Hedges' Emergency Procedures, and Fischer's Mastery of Surgery.

Find recent research on eFAST accuracy in specific trauma scenarios

Searching PubMed

eFAST accuracy sensitivity specificity trauma

Searching PubMed

FAST ultrasound pneumothorax blunt trauma accuracy

Searching the Web

eFAST examination accuracy trauma 2023 2024 systematic review sensitivity specificity

Reading Article

PMID: 40913875

Reading Article

PMID: 36247707

Searching PubMed

eFAST penetrating trauma sensitivity hemopericardium

Searching PubMed

FAST ultrasound pediatric trauma accuracy

Reading Article

PMID: 36800399

Reading Article

PMID: 39954070

Reading Web Page

https://pmc.ncbi.nlm.nih.gov/articles/PMC12595777

I now have a comprehensive picture. Here is the synthesized report:

Recent Research on eFAST Accuracy in Specific Trauma Scenarios

1. Blunt Abdominal Trauma - Free Fluid / Hemoperitoneum

The picture here is nuanced. A 2022 retrospective study of 2,758 blunt trauma patients (Kim et al., Emerg Med Int 2022, PMID 36247707) found an overall FAST sensitivity of only 33.3% for intra-abdominal free fluid, with specificity of 98.8%. Sensitivity improved to 49.1% in haemodynamically unstable patients (SBP ≤90 mmHg). The authors concluded FAST should be reserved for selected, unstable patients rather than applied universally.
By contrast, a 2025 study using experienced physicians (PMC12595777, n=158) found higher sensitivity for hemoperitoneum: 81.3% sensitivity, 100% specificity, PPV 100%, AUC 0.91. None of the false-negative hemoperitoneum cases required subsequent intervention, suggesting many were clinically insignificant small volumes.
Key takeaway: Sensitivity for abdominal free fluid is highly operator- and volume-dependent. Small collections in normotensive patients are frequently missed; the exam performs best when ≥100 mL of blood is present.

2. Thoracic Trauma - Pneumothorax Detection

This is eFAST's most consistently strong performance domain, though a notable dissenting study exists.
  • A 2025 study at a level I trauma center (Singer et al., J Emerg Med 2025, PMID 40913875) found that for clinically significant pneumothorax (requiring tube thoracostomy within 2.5 hours), POCUS sensitivity was 68% when performed by general emergency physicians, rising to 84% when reviewed by fellowship-trained physicians - compared to only 48% for supine CXR. Specificity was 100% for both. The authors specifically raised concerns about less-experienced operators.
  • A comparative study on blunt chest trauma (PMC12619629, n=large, CT as gold standard) found eFAST sensitivity 98.1% and specificity 98.8% for hemo/pneumothorax combined, versus CXR sensitivity 76.9% and specificity 85.2%. Clinical examination was a distant third at 34.6% sensitivity.
  • The thoracic trauma study from 2025 (PMC12964099) reported eFAST sensitivity of 90% for pneumothorax and 86% for hemothorax against CT reference, with both specificities at 95%.
  • A J Trauma 2022 paper (Santorelli et al., PMID 34932040) was provocatively titled "Not So FAST" - arguing chest ultrasound under-diagnoses traumatic pneumothorax in real-world settings, particularly when technique is suboptimal.
Key takeaway: eFAST for pneumothorax consistently outperforms supine CXR (sensitivity ~47-75%) when performed by trained operators. Reported sensitivities range widely (59-98%) depending on operator experience, patient positioning, and whether only clinically significant PTX is counted.

3. Hemothorax Detection

This is eFAST's weakest thoracic component. The 2025 newly-trained physician study found hemothorax sensitivity of only 35.7% (specificity 100%), with 9 false-negatives - 5 of whom eventually required chest tubes. The thoracic trauma study reported better performance at 86% sensitivity with experienced operators.
Key takeaway: Hemothorax sensitivity is lower than pneumothorax sensitivity and more operator-dependent. A negative eFAST does not rule out hemothorax requiring intervention.

4. Penetrating Trauma

No recent high-quality meta-analysis specifically for penetrating trauma was identified. The most relevant recent work is the prehospital eFAST domain. A 2025 military medicine observational study (Roberts et al., Mil Med 2025, PMID 39954070) of paramedic-performed eFAST (n=64, mostly MVCs) showed sensitivity 80%, specificity 95.8%, PPV 50%, NPV 98%. The low PPV reflects high false-positive rates from misinterpreting normal anatomy.
The consistent evidence across textbooks (Roberts & Hedges; Bailey & Love) remains that eFAST is less reliable in penetrating trauma than blunt trauma and should not be used to exclude injury in this setting.

5. Obesity as a Modifier

A 2023 prospective study (Armstrong et al., Am Surg 2023, PMID 36800399) of 202 consecutive blunt trauma patients found the odds ratio for an inaccurate eFAST increased by 5.65% for every 1 kg/m² rise in BMI (95% CI 0.1-10.8%). A BMI increase from 36 to 40 roughly doubled the odds of an inaccurate result. This quantifies what clinicians already suspect.

6. Prehospital and Non-Expert Operators

  • Paramedic-performed eFAST after basic training shows promise. A 2026 retrospective study (Springer/Scand J Trauma, n=169 exams) found eFAST sensitivity 100% (3/3) and specificity 96.6% (28/29) in the prehospital setting.
  • Tele-guided eFAST by inexperienced operators (paramedics guided remotely) achieved sensitivity 75-100% and specificity 93-99% across anatomical zones (dergipark.org.tr, n=147), supporting prehospital/remote deployment.

6. Pediatric Trauma

A 2025 RCT protocol (Holmes et al., Trials 2025, PMID 41388553) is currently enrolling to definitively assess FAST utility in haemodynamically stable children with blunt abdominal trauma - a population where eFAST accuracy is thought to be even lower than in adults due to smaller fluid volumes and different anatomy. Results are pending.

Summary Table

ScenarioSensitivity (recent range)SpecificityNotable caveat
Hemoperitoneum (blunt, normotensive)33-81%~99-100%Very volume/operator dependent
Hemoperitoneum (blunt, hypotensive)~49-100%~99%Best performance
Pneumothorax (experienced)84-98%95-100%Beats supine CXR (47-76%)
Pneumothorax (general ED physician)59-68%100%Technique critical
Hemothorax36-86%~95-100%Weakest thoracic domain
Penetrating traumalower/unreliablehighCannot exclude injury
Obesity (high BMI)reducedreducedOR +5.65%/kg/m²
Paramedic-performed (prehospital)80-100%93-97%Training quality matters
Bottom line from recent evidence: eFAST specificity is consistently near-perfect across scenarios (it rarely gives a false positive). Sensitivity is the variable quantity - most affected by operator experience, patient BMI, hemodynamic status, and the size of the collection being sought. A positive eFAST in an unstable patient should drive immediate surgical action; a negative eFAST should not be used to exclude injury, particularly in normotensive, obese, or penetrating trauma patients.
This is a shared conversation. Sign in to Orris to start your own chat.