Create a presentation on: How to triage, priority and benefit in trauma victim
trauma triage
WHO trauma care triage mass casualty guidelines priority benefit
SALT mass casualty triage algorithm diagram color coded priority categories
https://iris.who.int/server/api/core/bitstreams/08b0bbd3-04a…
~/
mkdir -p "/tmp/workspace/trauma-triage-presentation/src" "/tmp/workspace/trauma-triage-presentation/output" && python - <<'PY' from pptx import Presentation from pptx.util import Inches, Pt from pptx.dml.color import RGBColor from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.enum.dml import MSO_THEME_COLOR from pptx.enum.shapes import MSO_AUTO_SHAPE_TYPE from pptx.enum.text import MSO_AUTO_SIZE from pptx.enum.dml import MSO_LINE_DASH_STYLE OUT='/tmp/workspace/trauma-triage-presentation/output/Trauma_Triage_Priority_and_Benefit.pptx' prs=Presentation(); prs.slide_width=Inches(13.333); prs.slide_height=Inches(7.5) blank=prs.slide_layouts[6] # Colors NAVY=RGBColor(13,35,57); BLUE=RGBColor(25,96,155); TEAL=RGBColor(0,143,144) LIGHT=RGBColor(241,246,249); MID=RGBColor(210,223,232); TEXT=RGBColor(27,42,56) MUTED=RGBColor(91,109,123); WHITE=RGBColor(255,255,255); RED=RGBColor(196,52,55) YELLOW=RGBColor(241,174,37); GREEN=RGBColor(44,147,91); GRAY=RGBColor(104,114,123) DARKGRAY=RGBColor(57,67,77); PALE=RGBColor(247,250,252) def rect(s,x,y,w,h,fill, radius=False, line=None): sh=s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if radius else MSO_SHAPE.RECTANGLE, Inches(x), Inches(y), Inches(w), Inches(h)) sh.fill.solid(); sh.fill.fore_color.rgb=fill sh.line.color.rgb=line if line else fill if radius: sh.adjustments[0]=0.08 return sh def line(s,x1,y1,x2,y2,color,width=1.5, dash=None): sh=s.shapes.add_connector(MSO_CONNECTOR.STRAIGHT, Inches(x1), Inches(y1), Inches(x2), Inches(y2)) sh.line.color.rgb=color; sh.line.width=Pt(width) if dash: sh.line.dash_style=dash return sh def tb(s,x,y,w,h,text,size=20,color=TEXT,bold=False,align=PP_ALIGN.LEFT,font='Aptos',val=MSO_ANCHOR.TOP): sh=s.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)) tf=sh.text_frame; tf.clear(); tf.word_wrap=True; tf.margin_left=0;tf.margin_right=0;tf.margin_top=0;tf.margin_bottom=0;tf.vertical_anchor=val p=tf.paragraphs[0]; p.alignment=align r=p.add_run();r.text=text;r.font.name=font;r.font.size=Pt(size);r.font.bold=bold;r.font.color.rgb=color return sh def bullets(s,x,y,w,h,items,size=18,color=TEXT, gap=8): sh=s.shapes.add_textbox(Inches(x),Inches(y),Inches(w),Inches(h));tf=sh.text_frame;tf.clear();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): p=tf.paragraphs[0] if i==0 else tf.add_paragraph(); p.text=item; p.level=0; p.font.name='Aptos';p.font.size=Pt(size);p.font.color.rgb=color;p.space_after=Pt(gap);p.text='• '+item return sh def title(s,kicker,heading,sub=None, num=None): rect(s,0,0,13.333,.16,TEAL) tb(s,.6,.42,8,.25,kicker.upper(),10,TEAL,True) tb(s,.6,.68,11.8,.55,heading,27,NAVY,True) if sub: tb(s,.6,1.26,11.8,.42,sub,12,MUTED) if num: tb(s,12.15,.47,.55,.25,f'{num:02d}',11,MUTED,True,PP_ALIGN.RIGHT) def foot(s,source='Educational framework - follow local trauma and disaster protocols'): line(s,.6,7.10,12.73,7.10,MID,.7) tb(s,.6,7.18,9.5,.16,source,8,MUTED) tb(s,12.0,7.18,.7,.16,'TRAUMA',8,TEAL,True,PP_ALIGN.RIGHT) def arrow(s,x,y,w,h,color=BLUE): sh=s.shapes.add_shape(MSO_SHAPE.CHEVRON, Inches(x), Inches(y), Inches(w), Inches(h));sh.fill.solid();sh.fill.fore_color.rgb=color;sh.line.color.rgb=color;return sh # 1 title s=prs.slides.add_slide(blank); rect(s,0,0,13.333,7.5,NAVY); rect(s,0,0,13.333,.17,TEAL) # abstract lines / triage visual for y,c,w in [(1.28,RED,2.7),(2.12,YELLOW,2.15),(2.96,GREEN,1.6),(3.80,GRAY,1.1)]: rect(s,8.5,y,w,.33,c,True); tb(s,8.72,y+.05,w-.2,.18, {'\x00':''}.get('', ''),8,WHITE) line(s,7.48,y+.165,8.35,y+.165,RGBColor(112,151,173),1.5) circ=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(7.1),Inches(y-.02), Inches(.38), Inches(.38));circ.fill.solid();circ.fill.fore_color.rgb=c;circ.line.color.rgb=c tb(s,.75,1.25,6.6,.35,'EMERGENCY & DISASTER CARE',13,RGBColor(104,211,205),True) tb(s,.75,1.78,6.6,1.5,'Trauma Triage:\nPriority & Benefit',38,WHITE,True) tb(s,.78,3.55,5.9,.75,'A practical decision framework for single-patient trauma and mass-casualty incidents.',18,RGBColor(207,223,234)) rect(s,.78,5.45,3.35,.62,TEAL,True);tb(s,.98,5.64,2.96,.16,'SORT • STABILIZE • SEND',12,WHITE,True,PP_ALIGN.CENTER) tb(s,.78,6.73,5.8,.18,'Teaching presentation | October 2026',9,RGBColor(147,171,187)) # 2 objective s=prs.slides.add_slide(blank); title(s,'The aim','Two settings. One purpose.','Match time-sensitive needs to the care and transport resources available.',2) rect(s,.6,1.95,5.85,3.85,PALE,True, MID); rect(s,6.88,1.95,5.85,3.85,PALE,True,MID) tb(s,.95,2.35,5.1,.32,'Routine trauma',22,NAVY,True);tb(s,.95,2.86,4.9,.5,'Best care for the individual patient',19,TEAL,True) bullets(s,.95,3.64,4.95,1.55,['Rapid recognition of physiologic or anatomic threat','Destination matched to trauma-center capability','Avoid harmful undertriage and system congestion'],15) tb(s,7.23,2.35,5.1,.32,'Mass-casualty incident',22,NAVY,True);tb(s,7.23,2.86,4.9,.5,'Greatest good for the greatest number',19,TEAL,True) bullets(s,7.23,3.64,4.95,1.55,['Resource scarcity changes the decision context','Prioritize quick, high-yield lifesaving actions','Reassess categories as resources and condition change'],15) rect(s,.6,6.18,12.13,.53,NAVY,True);tb(s,.85,6.35,11.65,.16,'Triage is a dynamic allocation process, not a diagnosis or a final prognosis.',13,WHITE,True,PP_ALIGN.CENTER) foot(s,'Sabiston Textbook of Surgery, 21e, Ch. 48, pp. 1263-65') #3 principles s=prs.slides.add_slide(blank); title(s,'Core principles','Triage is a clinical and operational decision',None,3) items=[('SAFETY FIRST','Control hazards, use PPE, and establish scene safety before patient contact.',TEAL),('TIME-Critical','Identify threats that deteriorate quickly: airway, breathing, hemorrhage, shock, brain injury.',RED),('RESOURCE Aware','Use staff, transport, operating rooms, blood, and equipment where they produce meaningful benefit.',YELLOW),('DYNAMIC','Repeat triage after intervention, clinical change, or changes in available capacity.',BLUE)] for i,(h,b,c) in enumerate(items): x=.65+(i%2)*6.12;y=1.9+(i//2)*2.25 rect(s,x,y,5.65,1.76,WHITE,True,MID);rect(s,x,y,.16,1.76,c) tb(s,x+.42,y+.35,4.8,.26,h,15,c,True);tb(s,x+.42,y+.76,4.75,.65,b,14,TEXT) foot(s,'WHO Mass Casualty Management Systems; Sabiston Textbook of Surgery, 21e') #4 sequence s=prs.slides.add_slide(blank); title(s,'At the scene','A safe, repeatable first pass',None,4) steps=[('1','SCENE','Hazards? PPE? Incident command?'),('2','SORT','Direct walking wounded; identify still, non-purposeful, or visibly exsanguinating casualties.'),('3','ASSESS','Airway, breathing, circulation, mental status, major injury pattern.'),('4','INTERVENE','Only rapid actions with immediate survival benefit.'),('5','TAG & SEND','Assign priority, document, transport to appropriate destination.')] for i,(n,h,b) in enumerate(steps): x=.62+i*2.52 circ=s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(x+.68), Inches(2.03), Inches(.72), Inches(.72));circ.fill.solid();circ.fill.fore_color.rgb=TEAL if i<2 else BLUE;circ.line.color.rgb=WHITE tb(s,x+.68,2.22,.72,.18,n,14,WHITE,True,PP_ALIGN.CENTER) if i<4: arrow(s,x+1.48,2.20,.55,.35,RGBColor(139,176,198)) tb(s,x,3.02,2.08,.25,h,14,NAVY,True,PP_ALIGN.CENTER);tb(s,x,3.48,2.08,1.18,b,12,TEXT,False,PP_ALIGN.CENTER) rect(s,.75,5.95,11.85,.54,RGBColor(232,247,246),True);tb(s,1.05,6.13,11.25,.16,'Do not let prolonged assessment of one patient prevent lifesaving action for many others.',13,TEAL,True,PP_ALIGN.CENTER) foot(s,'Tintinalli’s Emergency Medicine, 9e, “Mass Casualty Triage,” pp. 907-09') #5 routine field triage s=prs.slides.add_slide(blank); title(s,'Routine trauma triage','Choose the right destination, early', 'A high-risk finding generally warrants transport to the highest appropriate trauma capability.',5) cols=[('Physiology','• SBP <90 mm Hg\n• GCS <14\n• Respiratory compromise',RED),('Anatomy','• Penetrating torso/head/proximal limb injury\n• Pelvic fracture or paralysis\n• Multiple proximal long-bone fractures',YELLOW),('Mechanism & modifiers','• High-energy mechanism\n• Older age, pregnancy\n• Anticoagulation or clinician concern',TEAL)] for i,(h,b,c) in enumerate(cols): x=.7+i*4.16; rect(s,x,2.05,3.77,3.35,WHITE,True,MID);rect(s,x,2.05,3.77,.12,c);tb(s,x+.32,2.48,3.15,.28,h,18,NAVY,True);tb(s,x+.32,3.06,3.04,1.55,b,15,TEXT) rect(s,.7,5.82,12.07,.57,NAVY,True);tb(s,.94,6.01,11.6,.18,'Clinical judgment remains essential: serious injury may follow apparently minor mechanisms.',13,WHITE,True,PP_ALIGN.CENTER) foot(s,'Current Surgical Therapy, 14e, “Prehospital Triage,” pp. 2262-64') #6 priority vs benefit s=prs.slides.add_slide(blank); title(s,'Priority and benefit','The key question in scarcity','Who needs an intervention now, and is that intervention likely to change the outcome?',6) # 2x2 rect(s,.95,1.85,5.2,4.38,WHITE,True,MID);tb(s,1.3,2.12,4.45,.3,'Decision matrix',20,NAVY,True) line(s,3.55,2.85,3.55,5.75,MID,1.2);line(s,1.3,4.30,5.75,4.30,MID,1.2) tb(s,1.55,3.12,1.65,.28,'HIGH\nbenefit',15,TEAL,True,PP_ALIGN.CENTER);tb(s,3.9,3.12,1.55,.4,'HIGH\nbenefit',15,TEAL,True,PP_ALIGN.CENTER) tb(s,1.43,4.75,1.94,.45,'LOW / uncertain\nbenefit',14,MUTED,True,PP_ALIGN.CENTER);tb(s,3.9,4.76,1.6,.45,'LOW / uncertain\nbenefit',14,MUTED,True,PP_ALIGN.CENTER) tb(s,1.37,5.80,4.5,.18,'← less urgent more urgent →',10,MUTED,False,PP_ALIGN.CENTER) # messages rect(s,6.68,2.0,5.62,1.05,RGBColor(231,247,244),True);tb(s,7.0,2.28,4.96,.2,'Immediate: urgent + actionable',17,TEAL,True);tb(s,7.0,2.6,4.96,.18,'Example: life-threatening hemorrhage controllable with a tourniquet.',11,TEXT) rect(s,6.68,3.38,5.62,1.05,RGBColor(255,247,226),True);tb(s,7.0,3.66,4.96,.2,'Delayed: serious, but can safely wait',17,RGBColor(175,119,0),True);tb(s,7.0,3.98,4.96,.18,'Treat after immediate patients or when capability expands.',11,TEXT) rect(s,6.68,4.76,5.62,1.05,RGBColor(246,235,235),True);tb(s,7.0,5.04,4.96,.2,'Expectant: needs exceed achievable benefit now',17,RED,True);tb(s,7.0,5.36,4.96,.18,'Provide comfort and reassess if resources change.',11,TEXT) foot(s,'Current Surgical Therapy, 14e, p. 2283; WHO Mass Casualty Management Systems') #7 SALT s=prs.slides.add_slide(blank); title(s,'Mass-casualty triage','SALT: Sort, Assess, Lifesaving interventions, Treatment/transport',None,7) # flow parts=[('SORT','Global sorting:\nwalk → wave/move → still/obvious major bleed',TEAL),('ASSESS','Individual rapid assessment:\nairway, breathing, perfusion, mental status',BLUE),('LIFE-SAVING ACTIONS','Only fast, feasible, high-impact actions',RED),('TREAT / TRANSPORT','Assign category and destination; repeat triage',NAVY)] for i,(h,b,c) in enumerate(parts): x=.6+i*3.15;rect(s,x,2.15,2.74,2.35,WHITE,True,MID);rect(s,x,2.15,2.74,.45,c,True);tb(s,x+.18,2.30,2.38,.16,h,11,WHITE,True,PP_ALIGN.CENTER);tb(s,x+.22,2.9,2.3,1.16,b,13,TEXT,False,PP_ALIGN.CENTER) if i<3:arrow(s,x+2.79,3.06,.28,.36,RGBColor(142,175,195)) rect(s,.75,5.18,11.85,.76,RGBColor(235,241,247),True);tb(s,1.05,5.39,11.25,.31,'A triage algorithm supports consistency. It never replaces clinical judgment, command structure, or repeated reassessment.',13,NAVY,True,PP_ALIGN.CENTER) foot(s,'Tintinalli’s Emergency Medicine, 9e, pp. 907-09') #8 categories s=prs.slides.add_slide(blank); title(s,'Category assignment','Use common language and visible tags', 'Color conventions can vary locally. Confirm the incident system before deployment.',8) cats=[('IMMEDIATE','Red','Critical problem, likely to benefit from timely intervention.',RED),('DELAYED','Yellow','Serious injury, treatment can wait for a period.',YELLOW),('MINIMAL','Green','Minor injury or ambulatory; may assist after direction.',GREEN),('EXPECTANT / DEAD','Gray','No signs of life or needs exceed survivable benefit in current conditions.',GRAY)] for i,(h,cname,b,c) in enumerate(cats): y=1.85+i*1.16;rect(s,.7,y,12.0,.87,WHITE,True,MID);rect(s,.7,y,.3,.87,c,True);tb(s,1.25,y+.20,2.3,.22,h,16,NAVY,True);tb(s,3.75,y+.25,7.85,.32,b,14,TEXT);tb(s,11.45,y+.28,.85,.16,cname,11,c,True,PP_ALIGN.RIGHT) foot(s,'Tintinalli’s Emergency Medicine, 9e, pp. 917-19') #9 life saving interventions s=prs.slides.add_slide(blank);title(s,'High-yield actions','Intervene only when the action passes four tests',None,9) qs=[('FAST','Can be done in seconds to minutes?'),('EFFECTIVE','Will it materially increase chance of survival?'),('FINITE','Can the responder move on rather than remain tied to one patient?'),('FEASIBLE','Within scope of practice and using available equipment?')] for i,(h,b) in enumerate(qs): x=.7+(i%2)*6.0;y=1.92+(i//2)*2.05;rect(s,x,y,5.55,1.53,WHITE,True,MID); circ=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x+.3),Inches(y+.38),Inches(.66),Inches(.66));circ.fill.solid();circ.fill.fore_color.rgb=TEAL;circ.line.color.rgb=TEAL;tb(s,x+.3,y+.59,.66,.14,'✓',15,WHITE,True,PP_ALIGN.CENTER);tb(s,x+1.22,y+.35,3.85,.24,h,16,TEAL,True);tb(s,x+1.22,y+.77,3.8,.36,b,13,TEXT) rect(s,.73,6.1,11.87,.45,NAVY,True);tb(s,1.03,6.24,11.3,.16,'Examples: control massive external hemorrhage, open the airway, chest decompression when indicated.',12,WHITE,False,PP_ALIGN.CENTER) foot(s,'Tintinalli’s Emergency Medicine, 9e, pp. 917-19') #10 ethics s=prs.slides.add_slide(blank); title(s,'Ethics under pressure','Fair process protects patients and responders',None,10) eth=[('Consistency','Use a trained, agreed algorithm. Avoid ad hoc criteria.'),('Impartiality','Do not prioritize on social status, wealth, disability, or perceived social worth.'),('Proportionality','Use the least restrictive resource allocation compatible with saving lives.'),('Transparency','Document decisions and communicate clearly with the team and families when possible.'),('Dignity','Comfort, symptom relief, and respect apply to every category, including expectant patients.')] for i,(h,b) in enumerate(eth): y=1.7+i*.93;rect(s,.75,y,11.85,.68,RGBColor(247,250,252),True);tb(s,1.05,y+.20,2.1,.2,h,15,NAVY,True);tb(s,3.25,y+.21,8.85,.25,b,13,TEXT) foot(s,'WHO Mass Casualty Management Systems, ethical guidelines') #11 pitfalls s=prs.slides.add_slide(blank);title(s,'Avoidable errors','What derails a triage system',None,11) left=[('Undertriage','Sending severely injured patients to insufficient capability delays definitive care.'),('Overtriage','Sending low-acuity patients to major trauma centers can create bottlenecks.'),('One-and-done tagging','A patient’s status and resource context change. Reassess.')] right=[('Tunnel vision','Do not focus on one dramatic injury while missing scene-wide priorities.'),('Unclear leadership','Use incident command, designated triage officer, and a single triage point.'),('False precision','Categories are operational tools, not exact outcome predictions.')] for col,arr in enumerate([left,right]): for i,(h,b) in enumerate(arr): x=.7+col*6.14;y=1.85+i*1.52;rect(s,x,y,5.58,1.15,WHITE,True,MID);tb(s,x+.28,y+.22,4.85,.22,h,15,RED if i==0 else NAVY,True);tb(s,x+.28,y+.58,4.85,.36,b,12,TEXT) foot(s,'Sabiston Textbook of Surgery, 21e, pp. 1271-81; 1335-45') #12 take home s=prs.slides.add_slide(blank);title(s,'Take-home framework','Make every decision answer three questions',None,12) qs=[('1','What will kill this patient first?','Identify immediate threats to airway, breathing, circulation, and brain.'),('2','What can we do now that changes survival?','Give only rapid, high-impact, feasible interventions.'),('3','Where does this patient get the best next care?','Match priority and destination to current system capacity.')] for i,(n,h,b) in enumerate(qs): x=.75+i*4.13;rect(s,x,1.92,3.63,3.32,WHITE,True,MID);circ=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x+1.43),Inches(2.3),Inches(.75),Inches(.75));circ.fill.solid();circ.fill.fore_color.rgb=TEAL;circ.line.color.rgb=TEAL;tb(s,x+1.43,2.52,.75,.16,n,14,WHITE,True,PP_ALIGN.CENTER);tb(s,x+.32,3.36,2.98,.5,h,17,NAVY,True,PP_ALIGN.CENTER);tb(s,x+.4,4.18,2.82,.5,b,13,TEXT,False,PP_ALIGN.CENTER) rect(s,.75,5.82,11.86,.63,NAVY,True);tb(s,1.05,6.02,11.25,.2,'Safe scene + rapid sorting + high-yield intervention + reassessment = better use of scarce trauma resources.',13,WHITE,True,PP_ALIGN.CENTER) foot(s) #13 sources s=prs.slides.add_slide(blank);title(s,'References','Selected sources used in this presentation',None,13) refs=[ 'Sabiston Textbook of Surgery: The Biological Basis of Modern Surgical Practice, 21e. Chapter 48: Disaster and Mass Casualty Management. pp. 1263-65, 1271-81.', 'Current Surgical Therapy, 14e. Prehospital Triage. pp. 2262-64, 2283.', 'Tintinalli’s Emergency Medicine: A Comprehensive Study, 9e. Mass Casualty Triage. pp. 907-09, 917-19.', 'World Health Organization. Mass Casualty Management Systems: Strategies and guidelines for building health sector capacity. Ethical guidelines and MCI definition.', 'Donnelly NA, et al. Substantial heterogeneity in trauma triage tool characteristic operationalization for identification of major trauma: a hybrid systematic review. Eur J Trauma Emerg Surg. 2025. PMID: 39976675.' ] for i,r in enumerate(refs): y=1.65+i*.86;rect(s,.78,y,.42,.42,TEAL,True);tb(s,.78,y+.12,.42,.12,str(i+1),10,WHITE,True,PP_ALIGN.CENTER);tb(s,1.42,y+.01,10.8,.54,r,12,TEXT) rect(s,.78,6.2,11.85,.5,RGBColor(232,247,246),True);tb(s,1.05,6.36,11.25,.16,'Use local EMS, trauma center, and incident command protocols as the operational standard.',11,TEAL,True,PP_ALIGN.CENTER) foot(s,'Prepared for education. Not a substitute for local clinical or disaster policy.') # Set all backgrounds white and initial title remains for slide in prs.slides: if slide != prs.slides[0]: bg=slide.background.fill; bg.solid(); bg.fore_color.rgb=WHITE # save prs.save(OUT) print(OUT) PY python - <<'PY' from pptx import Presentation p='/tmp/workspace/trauma-triage-presentation/output/Trauma_Triage_Priority_and_Benefit.pptx' prs=Presentation(p) print('slides',len(prs.slides)) for i,s in enumerate(prs.slides,1): txt=' '.join(sh.text for sh in s.shapes if hasattr(sh,'text_frame') and sh.has_text_frame) print(i, len(txt), txt[:80].replace('\n',' | ')) PY
python - <<'PY' from pptx import Presentation from pathlib import Path p=Path('/tmp/workspace/trauma-triage-presentation/output/Trauma_Triage_Priority_and_Benefit.pptx') prs=Presentation(str(p)) W,H=prs.slide_width,prs.slide_height issues=[] for i,slide in enumerate(prs.slides,1): for j,shape in enumerate(slide.shapes,1): if shape.left < 0 or shape.top < 0 or shape.left+shape.width > W or shape.top+shape.height > H: issues.append((i,j,'outside slide')) if getattr(shape,'has_text_frame',False): for para in shape.text_frame.paragraphs: for run in para.runs: if run.font.size and run.font.size.pt < 8: issues.append((i,j,'text under 8pt')) print('file_exists=',p.exists(),'bytes=',p.stat().st_size,'slides=',len(prs.slides),'issues=',issues) PY
Trauma Triage Priority and Benefit
Presentation · PPTX