Make presentation on basics of airways management

Reading File
Reading File
Reading File
Searching the Web

basic airway management AHA adult BLS airway opening bag mask ventilation guidelines

Searching PubMed

airway management AND education

Finding Sources
Finding Sources
Searching Images

basic airway anatomy diagram upper airway oral pharynx larynx

Searching Images

head tilt chin lift airway opening maneuver diagram

Reading File
Browsing Directory

~/

Reading File
Reading File
Reading Web Page

https://cpr.heart.org/en/resuscitation-science/cpr-and-ecc-g…

Searching Images

oropharyngeal airway and nasopharyngeal airway airway adjuncts illustration

Running Command

mkdir -p "/tmp/workspace/airway-management-presentation/src" "/tmp/workspace/airway-management-presentation/assets" "/tmp/workspace/airway-management-presentation/output" && python /tmp/skills/shared/scripts/fetch_images.py "https://cdn.orris.care/cdss_images/13d28d865edc9593a62c9faaa1e630d39f2dab8b2281db84626e8e6883683fb3.png" > "/tmp/workspace/airway-management-presentation/assets/fetched_image.json" && python -c "import json; d=json.load(open('/tmp/workspace/airway-management-presentation/assets/fetched_image.json')); print([(x.get('url'), bool(x.get('base64')), x.get('error')) for x in d])"

Running Command

python - <<'PY' import json, base64 from pathlib import Path p=Path('/tmp/workspace/airway-management-presentation/assets/fetched_image.json') d=json.loads(p.read_text())[0] raw=base64.b64decode(d['base64'].split(',',1)[1]) Path('/tmp/workspace/airway-management-presentation/assets/manual_maneuvers.png').write_bytes(raw) print(len(raw)) PY

Running Command

python - <<'PY' from PIL import Image im=Image.open('/tmp/workspace/airway-management-presentation/assets/manual_maneuvers.png') print(im.size) PY

Running Command

cat > "/tmp/workspace/airway-management-presentation/src/create_deck.py" <<'PY' from pptx import Presentation from pptx.util import Inches, Pt from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR from pptx.dml.color import RGBColor from pptx.enum.dml import MSO_THEME_COLOR from pptx.enum.text import MSO_AUTO_SIZE from pathlib import Path OUT=Path('/tmp/workspace/airway-management-presentation/output/Basics_of_Airway_Management.pptx') IMG='/tmp/workspace/airway-management-presentation/assets/manual_maneuvers.png' prs=Presentation(); prs.slide_width=Inches(13.333); prs.slide_height=Inches(7.5) blank=prs.slide_layouts[6] # palette NAVY=RGBColor(12,36,57); BLUE=RGBColor(20,105,151); TEAL=RGBColor(20,151,151); CYAN=RGBColor(103,201,209) INK=RGBColor(31,46,60); MID=RGBColor(87,105,119); PALE=RGBColor(240,247,249); WHITE=RGBColor(255,255,255); ORANGE=RGBColor(230,121,46); RED=RGBColor(190,61,62); GREEN=RGBColor(50,145,105) def rect(s,x,y,w,h,fill,rad=False,line=None): shp=s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if rad else MSO_SHAPE.RECTANGLE, Inches(x), Inches(y), Inches(w), Inches(h)) shp.fill.solid(); shp.fill.fore_color.rgb=fill shp.line.color.rgb=line if line else fill if rad: shp.adjustments[0]=0.12 return shp def text(s,x,y,w,h,txt,size=20,color=INK,bold=False,align=PP_ALIGN.LEFT, font='Aptos', valign=MSO_ANCHOR.TOP): tb=s.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)); tf=tb.text_frame; tf.clear(); tf.word_wrap=True tf.margin_left=tf.margin_right=tf.margin_top=tf.margin_bottom=0 tf.vertical_anchor=valign p=tf.paragraphs[0]; p.alignment=align r=p.add_run(); r.text=txt; r.font.name=font; r.font.size=Pt(size); r.font.bold=bold; r.font.color.rgb=color return tb def bullet_list(s,x,y,w,h,items,size=19,color=INK, bullet_color=None, gap=8): tb=s.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)); tf=tb.text_frame; tf.clear(); tf.word_wrap=True tf.margin_left=Inches(.05); 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.bullet=True return tb def title(s,num,heading,sub=''): rect(s,0,0,13.333,.22,TEAL) text(s,.55,.43,11.5,.45,heading,29,NAVY,True) if sub: text(s,.57,.91,11.5,.3,sub,12,MID) text(s,12.2,.46,.55,.3,f'{num:02d}',13,TEAL,True,PP_ALIGN.RIGHT) def footer(s): rect(s,.55,7.08,12.2,.02,RGBColor(215,227,232)) text(s,.55,7.18,7,.18,'Basics of Airway Management | Educational overview - follow local protocols and scope of practice',8,MID) def icon_circle(s,x,y,label,color=TEAL): shp=s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(x), Inches(y), Inches(.55), Inches(.55)); shp.fill.solid(); shp.fill.fore_color.rgb=color; shp.line.color.rgb=color text(s,x,y+.07,.55,.25,label,14,WHITE,True,PP_ALIGN.CENTER) # Slide 1 s=prs.slides.add_slide(blank); rect(s,0,0,13.333,7.5,NAVY); rect(s,0,0,13.333,.18,TEAL) text(s,.75,.85,7.6,.5,'BASICS OF',19,CYAN,True) text(s,.72,1.35,8.8,1.25,'Airway\nManagement',48,WHITE,True) text(s,.76,3.1,6.7,.55,'A practical, first-response approach to opening, protecting, and supporting the airway',21,RGBColor(220,237,241)) # stylized airway line for x,y,r,c in [(10.2,1.0,.92,TEAL),(9.7,2.27,.58,CYAN),(10.8,2.6,.43,TEAL),(9.35,3.25,.31,CYAN),(10.25,3.85,.24,TEAL)]: shp=s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(x), Inches(y), Inches(r), Inches(r)); shp.fill.solid(); shp.fill.fore_color.rgb=c; shp.line.color.rgb=c for a,b in [((10.65,1.92),(10.0,2.27)),((10.18,2.82),(9.55,3.27)),((10.16,2.82),(10.95,2.62)),((9.63,3.56),(10.4,3.95))]: ln=s.shapes.add_connector(MSO_CONNECTOR.STRAIGHT, Inches(a[0]), Inches(a[1]), Inches(b[0]), Inches(b[1])); ln.line.color.rgb=WHITE; ln.line.width=Pt(2.5) text(s,.76,6.45,5.5,.3,'For students and first responders',14,CYAN,True) text(s,.76,6.82,6,.22,'Adult-focused. Not a substitute for hands-on training.',11,RGBColor(185,209,216)) # Slide 2 s=prs.slides.add_slide(blank); title(s,2,'Why airway management matters','Airway comes first because oxygen cannot reach the lungs through a blocked passage.'); footer(s) text(s,.62,1.48,3.3,.35,'THE AIM',14,TEAL,True) text(s,.62,1.9,3.25,1.3,'Keep the airway\nopen and support\noxygenation.',29,NAVY,True) for i,(hd,body,c) in enumerate([('Recognize','Spot obstruction or inadequate breathing early.',BLUE),('Open','Use simple positioning maneuvers first.',TEAL),('Ventilate','Give effective breaths if breathing is absent or inadequate.',ORANGE)]): x=4.3+i*2.83; rect(s,x,1.55,2.45,3.55,PALE,True); icon_circle(s,x+.24,1.85,str(i+1),c); text(s,x+.24,2.63,2.0,.35,hd,20,NAVY,True); text(s,x+.24,3.2,1.98,1.25,body,16,INK) rect(s,.62,5.65,11.9,.86,RGBColor(230,244,243),True); text(s,.92,5.9,11.3,.3,'Think: airway patency + breathing effectiveness + escalation for a failing airway.',19,NAVY,True,PP_ALIGN.CENTER) # Slide 3 s=prs.slides.add_slide(blank); title(s,3,'Rapid assessment: look, listen, feel','Make a rapid assessment while protecting yourself and calling for help.'); footer(s) items=[('LOOK','Chest rise, work of breathing, cyanosis, facial/neck trauma, secretions or blood.'),('LISTEN','Snoring, gurgling, stridor, silence, or a changed voice may signal obstruction.'),('FEEL','Air movement at the mouth/nose; assess pulse and response according to your training.')] for i,(h,b) in enumerate(items): y=1.45+i*1.48; icon_circle(s,.7,y,str(i+1),[BLUE,TEAL,ORANGE][i]); text(s,1.42,y+.01,1.28,.25,h,15,[BLUE,TEAL,ORANGE][i],True); text(s,2.8,y-.02,9.4,.6,b,19,INK) rect(s,.7,6.0,11.9,.55,RGBColor(253,240,231),True); text(s,.95,6.16,11.4,.2,'Red flags: inability to speak, severe distress, altered consciousness, silent airway, or worsening oxygenation.',14,RED,True,PP_ALIGN.CENTER) # Slide 4 s=prs.slides.add_slide(blank); title(s,4,'Common causes of airway compromise','In an unconscious supine patient, the tongue may fall backward and obstruct the upper airway.'); footer(s) causes=[('Loss of tone','Unconsciousness, sedation, or fatigue allows soft tissue and tongue displacement.'),('Material in airway','Secretions, vomit, blood, food, or a foreign body can obstruct airflow.'),('Swelling or injury','Anaphylaxis, burns, infection, trauma, or hematoma can narrow the airway.')] for i,(h,b) in enumerate(causes): x=.65+i*4.1; rect(s,x,1.55,3.55,3.65,WHITE,True,RGBColor(213,227,232)); icon_circle(s,x+.28,1.88,['T','S','!'][i],[TEAL,BLUE,ORANGE][i]); text(s,x+.28,2.7,2.8,.4,h,20,NAVY,True); text(s,x+.28,3.33,2.92,1.2,b,16,INK) text(s,.75,5.85,11.8,.35,'If there is a visible, easily removable obstruction, remove it. Do not perform blind finger sweeps.',19,RED,True,PP_ALIGN.CENTER) # Slide 5 s=prs.slides.add_slide(blank); title(s,5,'Open the airway: simple maneuvers','Choose the maneuver based on the clinical situation. Reassess after every intervention.'); footer(s) s.shapes.add_picture(IMG, Inches(.62), Inches(1.45), width=Inches(7.15), height=Inches(2.39)) text(s,.65,3.98,6.95,.25,'Illustration: manual maneuvers (tongue obstruction, head-tilt/chin-lift, jaw thrust)',10,MID) rect(s,8.15,1.45,4.45,2.05,RGBColor(230,244,243),True); text(s,8.45,1.73,3.85,.28,'Head-tilt / chin-lift',21,TEAL,True); text(s,8.45,2.2,3.8,.93,'Use when cervical spine injury is not suspected. Lift the chin while gently tilting the head back.',16,INK) rect(s,8.15,3.85,4.45,2.05,RGBColor(235,244,250),True); text(s,8.45,4.13,3.85,.28,'Jaw thrust',21,BLUE,True); text(s,8.45,4.6,3.8,.95,'Prefer with suspected head or neck trauma. If it fails to open the airway, prioritize oxygenation and use head-tilt/chin-lift.',16,INK) # Slide 6 s=prs.slides.add_slide(blank); title(s,6,'Basic airway adjuncts','Adjuncts help maintain patency. They do not replace positioning, suction, or reassessment.'); footer(s) for i,(h,tag,body,c) in enumerate([('Oropharyngeal airway (OPA)','Unconscious patient','Use only when absent gag reflex. Size appropriately. Avoid forcing placement.',TEAL),('Nasopharyngeal airway (NPA)','Some consciousness / gag present','Lubricate and insert gently. Avoid if suspected basilar skull fracture or major mid-face trauma.',BLUE)]): x=.7+i*6.15; rect(s,x,1.5,5.75,3.85,PALE,True); rect(s,x,1.5,5.75,.13,c); text(s,x+.35,1.92,4.95,.35,h,23,NAVY,True); rect(s,x+.35,2.55,2.52,.38,c,True); text(s,x+.48,2.64,2.25,.18,tag,11,WHITE,True,PP_ALIGN.CENTER); text(s,x+.35,3.25,4.85,1.05,body,18,INK) text(s,.7,5.9,11.9,.35,'Suction is often required when secretions, blood, or vomit are present. Have it ready before ventilating when possible.',18,ORANGE,True,PP_ALIGN.CENTER) # Slide 7 s=prs.slides.add_slide(blank); title(s,7,'Bag-mask ventilation (BMV)','A basic skill that can be lifesaving when breathing is absent or inadequate.'); footer(s) steps=[('1','Position','Open the airway and position the patient appropriately.'),('2','Seal','Choose the correct mask size and create a tight seal.'),('3','Ventilate','Squeeze the bag over about 1 second, only until visible chest rise.'),('4','Reassess','Watch chest movement, oxygenation, and clinical response.')] for i,(n,h,b) in enumerate(steps): x=.62+i*3.14; icon_circle(s,x,1.62,n,[BLUE,TEAL,ORANGE,GREEN][i]); text(s,x,2.35,2.6,.3,h,18,NAVY,True); text(s,x,2.85,2.62,1.08,b,15,INK) rect(s,.72,5.0,11.85,1.05,RGBColor(253,240,231),True); text(s,1.0,5.25,11.3,.47,'Avoid excessive volume or force: it can inflate the stomach, increase aspiration risk, and reduce ventilation effectiveness.',18,RED,True,PP_ALIGN.CENTER) # Slide 8 s=prs.slides.add_slide(blank); title(s,8,'Two-person BMV is often better','One provider maintains the airway and mask seal while the other squeezes the bag.'); footer(s) # two person schematic for x,y,label,c in [(1.05,2.0,'A',TEAL),(4.0,2.0,'P',BLUE)]: icon_circle(s,x,y,label,c) text(s,.72,1.45,4.5,.3,'TEAM TECHNIQUE',14,TEAL,True) text(s,1.0,2.75,1.5,.5,'Seal + jaw\nthrust',20,NAVY,True,PP_ALIGN.CENTER); text(s,3.75,2.75,1.5,.5,'Squeeze\nthe bag',20,NAVY,True,PP_ALIGN.CENTER) ln=s.shapes.add_connector(MSO_CONNECTOR.STRAIGHT, Inches(2.05), Inches(2.27), Inches(3.75), Inches(2.27)); ln.line.color.rgb=TEAL; ln.line.width=Pt(4) rect(s,6.0,1.55,6.0,3.7,PALE,True); bullet_list(s,6.35,1.95,5.22,2.8,['Better mask seal and jaw position','More consistent, gentler ventilation','Use if single-rescuer BMV is difficult','Minimize interruptions to CPR where applicable'],19) rect(s,.7,5.85,11.9,.55,RGBColor(230,244,243),True); text(s,.92,6.02,11.45,.2,'Target effectiveness: visible chest rise with each breath, not an oversized breath.',16,NAVY,True,PP_ALIGN.CENTER) # Slide 9 s=prs.slides.add_slide(blank); title(s,9,'Escalation: supraglottic airway and tracheal tube','Advanced devices require equipment, skill, confirmation of placement, and ongoing monitoring.'); footer(s) for i,(h,desc,c) in enumerate([('Supraglottic airway (SGA)','Device seated above the glottis. Often used when BMV is difficult or as an alternative to intubation.',TEAL),('Endotracheal tube (ETT)','Definitive tracheal device. Requires trained operator; confirm position with waveform capnography when available.',BLUE)]): y=1.48+i*2.25; rect(s,.75,y,11.8,1.8,PALE,True); rect(s,.75,y,.15,1.8,c); text(s,1.18,y+.33,3.2,.35,h,21,NAVY,True); text(s,4.35,y+.31,7.35,.82,desc,18,INK) text(s,.75,6.22,11.7,.28,'Do not delay basic airway maneuvers and effective BMV while preparing advanced airway management.',18,RED,True,PP_ALIGN.CENTER) # Slide 10 s=prs.slides.add_slide(blank); title(s,10,'A simple airway-management sequence','Use a structured approach and escalate early when the airway is deteriorating.'); footer(s) sequence=[('Assess','Responsiveness, airway, breathing; call for help.'),('Position','Head-tilt/chin-lift or jaw thrust if trauma suspected.'),('Clear','Suction/remove visible obstruction; add appropriate adjunct.'),('Oxygenate','Provide oxygen and BMV if required. Aim for visible chest rise.'),('Escalate','SGA/ETT and expert help when basic measures fail.')] for i,(h,b) in enumerate(sequence): x=.53+i*2.53; rect(s,x,2.05,2.18,2.5,WHITE,True,RGBColor(210,225,230)); icon_circle(s,x+.82,2.3,str(i+1),[BLUE,TEAL,ORANGE,GREEN,NAVY][i]); text(s,x+.2,3.12,1.78,.3,h,17,NAVY,True,PP_ALIGN.CENTER); text(s,x+.18,3.58,1.82,.6,b,13,INK,False,PP_ALIGN.CENTER) if i<4: text(s,x+2.2,3.06,.32,.3,'›',28,TEAL,True,PP_ALIGN.CENTER) rect(s,.72,5.55,11.9,.7,RGBColor(253,240,231),True); text(s,.95,5.77,11.4,.25,'If the patient becomes unresponsive and is not breathing normally, activate the emergency response system and begin CPR according to local guidelines.',15,RED,True,PP_ALIGN.CENTER) # Slide 11 s=prs.slides.add_slide(blank); title(s,11,'Key takeaways','Simple, timely actions often make the greatest difference.'); footer(s) bullet_list(s,.82,1.42,7.0,4.55,['Airway obstruction is common in unconscious patients and may be caused by posterior tongue displacement.','Start with basic maneuvers: head-tilt/chin-lift, or jaw thrust when trauma is suspected.','Use suction and appropriately selected adjuncts when needed.','Effective BMV produces visible chest rise without excessive force or volume.','Escalate based on patient need, available expertise, and local protocols.'],21,INK,gap=13) rect(s,8.45,1.55,3.85,3.75,NAVY,True); text(s,8.85,2.0,3.0,.3,'REMEMBER',14,CYAN,True,PP_ALIGN.CENTER); text(s,8.85,2.6,3.0,1.45,'Open\nOxygenate\nEscalate',31,WHITE,True,PP_ALIGN.CENTER); text(s,8.85,4.65,3.0,.35,'Reassess after every step.',13,RGBColor(203,230,233),False,PP_ALIGN.CENTER) # Slide 12 s=prs.slides.add_slide(blank); title(s,12,'References and learning resources','Use hands-on, supervised training to develop psychomotor skills.'); footer(s) refs=[ 'Roberts and Hedges’ Clinical Procedures in Emergency Medicine: “Opening the Airway” and manual airway maneuvers, pp. 82-83.', 'Miller’s Anesthesia, 10th ed.: “Update to Airway Management and Ventilation in Cardiac Arrest,” pp. 12198-12199.', 'American Heart Association. Highlights of the 2025 AHA Guidelines for CPR and ECC: airway management and ventilation recommendations.', 'Resuscitation Council UK. Advanced Life Support, Chapter 7: Airway Management and Ventilation.' ] bullet_list(s,.75,1.4,11.7,3.3,refs,17,INK,gap=12) rect(s,.75,5.35,11.8,.85,RGBColor(230,244,243),True); text(s,1.05,5.58,11.2,.35,'Practice under qualified supervision. Follow your organization’s equipment policies, emergency pathways, and scope of practice.',16,NAVY,True,PP_ALIGN.CENTER) text(s,.75,6.55,11.8,.2,'Prepared October 2026 | Adult-focused introductory presentation',10,MID,False,PP_ALIGN.CENTER) # Add speaker notes? not supported stable across package; source slide provided. prs.save(OUT) print(OUT) PY python "/tmp/workspace/airway-management-presentation/src/create_deck.py"

Running Command

python - <<'PY' from pptx import Presentation from pathlib import Path p=Path('/tmp/workspace/airway-management-presentation/output/Basics_of_Airway_Management.pptx') prs=Presentation(p) print('exists',p.exists(),'size',p.stat().st_size,'slides',len(prs.slides)) for i,slide in enumerate(prs.slides,1): txt=' | '.join(sh.text.replace('\n',' / ') for sh in slide.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()) print(f'{i:02d}: {txt[:220]}') PY python - <<'PY' import zipfile p='/tmp/workspace/airway-management-presentation/output/Basics_of_Airway_Management.pptx' with zipfile.ZipFile(p) as z: bad=z.testzip() print('zip_integrity',bad or 'OK') PY

Created a 12-slide beginner-level PowerPoint covering assessment, airway-opening maneuvers, adjuncts, bag-mask ventilation, escalation, and key references.

Basics of Airway Management

Presentation · PPTX

Can you make this a bit longer and more comprehensive like 18 slides

Reading File
Reading File
Searching the Web

2025 American Heart Association airway management bag mask ventilation airway adjuncts guidelines adult CPR

Searching PubMed

airway management AND ventilation

Browsing Directory

~/airway-management-presentation

Reading File
Finding Sources
Finding Sources
Finding Sources
Running Command

cat > "/tmp/workspace/airway-management-presentation/src/extend_deck.py" <<'PY' from pptx import Presentation from pptx.util import Inches, Pt from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR from pptx.dml.color import RGBColor from pathlib import Path SRC=Path('/tmp/workspace/airway-management-presentation/output/Basics_of_Airway_Management.pptx') OUT=Path('/tmp/workspace/airway-management-presentation/output/Basics_of_Airway_Management_18_Slides.pptx') prs=Presentation(SRC); blank=prs.slide_layouts[6] NAVY=RGBColor(12,36,57); BLUE=RGBColor(20,105,151); TEAL=RGBColor(20,151,151); CYAN=RGBColor(103,201,209) INK=RGBColor(31,46,60); MID=RGBColor(87,105,119); PALE=RGBColor(240,247,249); WHITE=RGBColor(255,255,255); ORANGE=RGBColor(230,121,46); RED=RGBColor(190,61,62); GREEN=RGBColor(50,145,105) def rect(s,x,y,w,h,fill,rad=False,line=None): shp=s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if rad else MSO_SHAPE.RECTANGLE, Inches(x), Inches(y), Inches(w), Inches(h)); shp.fill.solid(); shp.fill.fore_color.rgb=fill; shp.line.color.rgb=line if line else fill if rad: shp.adjustments[0]=0.12 return shp def text(s,x,y,w,h,txt,size=20,color=INK,bold=False,align=PP_ALIGN.LEFT,valign=MSO_ANCHOR.TOP): tb=s.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)); tf=tb.text_frame; tf.clear(); tf.word_wrap=True; tf.margin_left=tf.margin_right=tf.margin_top=tf.margin_bottom=0; tf.vertical_anchor=valign p=tf.paragraphs[0]; p.alignment=align; r=p.add_run(); r.text=txt; r.font.name='Aptos'; r.font.size=Pt(size); r.font.bold=bold; r.font.color.rgb=color return tb def bullets(s,x,y,w,h,items,size=18,gap=9): tb=s.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)); tf=tb.text_frame; tf.clear(); tf.word_wrap=True; tf.margin_left=Inches(.06); 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=INK; p.space_after=Pt(gap); p.bullet=True return tb def title(s,num,head,sub): rect(s,0,0,13.333,.22,TEAL); text(s,.55,.43,11.4,.45,head,28,NAVY,True); text(s,.57,.91,11.4,.28,sub,12,MID); text(s,12.15,.46,.6,.3,f'{num:02d}',13,TEAL,True,PP_ALIGN.RIGHT) def footer(s): rect(s,.55,7.08,12.2,.02,RGBColor(215,227,232)); text(s,.55,7.18,7,.18,'Basics of Airway Management | Educational overview - follow local protocols and scope of practice',8,MID) def circle(s,x,y,label,c=TEAL): shp=s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(x), Inches(y), Inches(.56), Inches(.56)); shp.fill.solid(); shp.fill.fore_color.rgb=c; shp.line.color.rgb=c; text(s,x,y+.08,.56,.22,label,14,WHITE,True,PP_ALIGN.CENTER) def add(head,sub): s=prs.slides.add_slide(blank); title(s,len(prs.slides),head,sub); footer(s); return s # 13 anatomy s=add('Upper-airway anatomy: what can obstruct?','A basic mental model helps explain the effect of positioning and adjuncts.') # simple vertical path diagram parts=[('Nose / mouth',1.2,TEAL),('Pharynx',2.1,BLUE),('Tongue / soft tissue',3.0,ORANGE),('Laryngeal inlet',3.9,TEAL),('Trachea',4.8,BLUE)] for label,y,c in parts: rect(s,1.05,y,3.2,.58,PALE,True); circle(s,1.28,y+.01,'',c); text(s,2.0,y+.16,1.9,.22,label,17,NAVY,True) if y<4.8: text(s,2.25,y+.63,.6,.2,'↓',19,MID,True,PP_ALIGN.CENTER) rect(s,5.2,1.45,6.85,4.5,RGBColor(253,240,231),True) text(s,5.55,1.78,5.9,.32,'Why the airway closes in reduced consciousness',20,RED,True) bullets(s,5.58,2.35,5.85,2.8,['Loss of muscle tone allows the tongue and soft tissues to fall posteriorly.','Secretions, blood, vomit, or swelling further narrow the passage.','Airway maneuvers move the mandible and soft tissue forward to improve patency.'],18,12) text(s,.92,6.38,11.6,.22,'Key point: a noisy airway can be partially obstructed. A silent airway in a deteriorating patient is an emergency.',16,RED,True,PP_ALIGN.CENTER) #14 equipment s=add('Prepare before you intervene','A ready, checked setup prevents avoidable delays when an airway rapidly deteriorates.') columns=[('Oxygenation','Oxygen source\nBag-valve-mask\nAppropriate masks',TEAL),('Airway','OPA and NPA sizes\nSupraglottic devices\nET tubes if within scope',BLUE),('Suction','Yankauer catheter\nSuction tubing/canister\nCheck function',ORANGE),('Monitoring','Pulse oximeter\nCapnography if advanced airway\nClinical reassessment',GREEN)] for i,(h,b,c) in enumerate(columns): x=.55+i*3.15; rect(s,x,1.55,2.75,3.95,PALE,True); rect(s,x,1.55,2.75,.12,c); circle(s,x+.28,1.92,str(i+1),c); text(s,x+.28,2.72,2.1,.3,h,19,NAVY,True); text(s,x+.28,3.33,2.1,1.45,b,16,INK) rect(s,.72,5.95,11.85,.55,RGBColor(230,244,243),True); text(s,.95,6.12,11.4,.22,'Assign roles early: airway positioning/mask seal, bag ventilation, suction, monitoring, and team lead.',16,NAVY,True,PP_ALIGN.CENTER) #15 suction s=add('Suction and airway clearance','Suction is a first-line tool when secretions, blood, or vomit are impairing airway patency or visualization.') rect(s,.68,1.48,5.5,4.55,PALE,True); text(s,1.0,1.8,4.6,.3,'Practical sequence',21,NAVY,True) bullets(s,1.0,2.35,4.65,3.05,['Turn on and check suction before the attempt.','Use an appropriate large-bore catheter for upper-airway contamination.','Suction under direct view when possible.','Reoxygenate and reassess after clearing the airway.'],18,12) rect(s,6.58,1.48,5.95,4.55,RGBColor(253,240,231),True); text(s,6.92,1.8,5.0,.3,'Avoid these errors',21,RED,True) bullets(s,6.92,2.35,4.9,3.05,['Delaying suction while contamination continues.','Prolonged attempts that worsen hypoxia.','Forgetting that suction does not replace positioning, oxygenation, or ventilation.'],18,14) text(s,.75,6.38,11.8,.22,'Have suction immediately available whenever bag-mask ventilation or advanced airway management is planned.',16,TEAL,True,PP_ALIGN.CENTER) #16 FBAO s=add('Foreign-body airway obstruction (FBAO)','Act according to the severity of obstruction and the patient’s level of consciousness. Follow current local resuscitation guidance.') for i,(h,b,c) in enumerate([('Mild obstruction','Effective cough, able to speak or breathe\n→ Encourage coughing and observe.',GREEN),('Severe obstruction','Unable to speak, ineffective cough, worsening distress\n→ Activate help and begin trained-rescuer measures.',ORANGE),('Unresponsive patient','Lower to a firm surface, activate emergency response, begin CPR and inspect for a visible object when opening the airway.',RED)]): y=1.4+i*1.55; rect(s,.75,y,11.7,1.22,PALE,True); circle(s,1.08,y+.31,str(i+1),c); text(s,1.93,y+.19,2.35,.28,h,19,NAVY,True); text(s,4.3,y+.18,7.45,.55,b,16,INK) rect(s,.75,6.15,11.7,.45,RGBColor(253,240,231),True); text(s,.95,6.27,11.25,.18,'Remove only a visible object that can be safely reached. Do not use blind finger sweeps.',14,RED,True,PP_ALIGN.CENTER) #17 difficult airway warning signs s=add('Recognize a potentially difficult or failing airway','Early escalation is safer than waiting for complete obstruction or respiratory arrest.') left=['Rapidly increasing swelling of tongue, lips, or neck','Stridor, muffled voice, drooling, inability to lie flat','Facial/neck burns, inhalational injury, major trauma','Blood, vomit, or secretions that cannot be cleared','Repeated failure of BMV or inability to maintain oxygenation'] rect(s,.72,1.43,7.3,4.85,RGBColor(253,240,231),True); text(s,1.04,1.77,6.6,.3,'Warning signs',22,RED,True); bullets(s,1.05,2.35,6.35,3.4,left,18,10) rect(s,8.45,1.43,3.85,4.85,NAVY,True); text(s,8.82,1.9,3.1,.3,'RESPOND',14,CYAN,True,PP_ALIGN.CENTER); text(s,8.78,2.55,3.15,1.7,'Call for\nexperienced help\nearly',29,WHITE,True,PP_ALIGN.CENTER); text(s,8.85,4.78,3.0,.62,'Continue basic oxygenation and ventilation while preparing the next step.',14,RGBColor(211,236,238),False,PP_ALIGN.CENTER) #18 confirmation monitoring post airway s=add('Reassess and monitor continuously','Airway management is not complete after device placement or the first successful breath.') steps=[('Observe','Chest rise, respiratory effort, skin colour, condensation, and patient response.'),('Measure','Pulse oximetry when reliable. Use waveform capnography to confirm and monitor ET tube placement when available.'),('Secure','Secure the device, keep suction available, and reassess after movement or deterioration.'),('Document','Record device, size/depth where relevant, oxygen delivery, response, and escalation decisions.')] for i,(h,b) in enumerate(steps): x=.66+(i%2)*6.15; y=1.48+(i//2)*2.08; rect(s,x,y,5.75,1.55,PALE,True); circle(s,x+.3,y+.42,str(i+1),[TEAL,BLUE,ORANGE,GREEN][i]); text(s,x+1.05,y+.27,4.2,.28,h,20,NAVY,True); text(s,x+1.05,y+.72,4.1,.54,b,15,INK) rect(s,.75,6.22,11.7,.45,RGBColor(230,244,243),True); text(s,.94,6.34,11.3,.18,'Every reassessment asks: Is the airway open? Is ventilation effective? What is the next safest action?',15,NAVY,True,PP_ALIGN.CENTER) prs.save(OUT) print(OUT, len(prs.slides)) PY python "/tmp/workspace/airway-management-presentation/src/extend_deck.py" && python - <<'PY' from pptx import Presentation from pathlib import Path p=Path('/tmp/workspace/airway-management-presentation/output/Basics_of_Airway_Management_18_Slides.pptx') prs=Presentation(p) print('exists=',p.exists(),'size=',p.stat().st_size,'slides=',len(prs.slides)) for i in range(12,18): print(i+1, next((sh.text.replace('\n',' / ') for sh in prs.slides[i].shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()),'')) PY

Running Command

python - <<'PY' from pptx import Presentation from pathlib import Path import zipfile p=Path('/tmp/workspace/airway-management-presentation/output/Basics_of_Airway_Management_18_Slides.pptx') with zipfile.ZipFile(p) as z: print('zip_integrity=', z.testzip() or 'OK') prs=Presentation(p) assert len(prs.slides)==18 for n, slide in enumerate(prs.slides,1): texts=[sh.text.strip() for sh in slide.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()] assert texts, f'Empty slide {n}' print('all_slides_nonempty=OK') print('file_bytes=',p.stat().st_size) PY

Expanded the presentation to 18 slides, adding:
  • Upper-airway anatomy and mechanisms of obstruction
  • Airway equipment preparation
  • Suction and airway clearance
  • Foreign-body airway obstruction
  • Warning signs of a difficult or failing airway
  • Ongoing reassessment, confirmation, and monitoring

Basics of Airway Management 18 Slides

Presentation · PPTX

Update the deck with current airway management guidelines followed in India and also sequence the slides properly

Reading File
Reading File
Searching the Web

India current airway management guidelines Indian Society of Anaesthesiologists difficult airway guidelines 2025

Searching PubMed

India airway management guidelines

Reading Web Page

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

Finding Sources
Finding Sources
Browsing Directory

~/airway-management-presentation

Running Command

cat > "/tmp/workspace/airway-management-presentation/src/create_india_aidaa_2025_deck.py" <<'PY' from pptx import Presentation from pptx.util import Inches, Pt from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR from pptx.dml.color import RGBColor from pathlib import Path OUT=Path('/tmp/workspace/airway-management-presentation/output/Airway_Management_India_AIDAA_2025.pptx') IMG='/tmp/workspace/airway-management-presentation/assets/manual_maneuvers.png' prs=Presentation(); prs.slide_width=Inches(13.333); prs.slide_height=Inches(7.5); BLANK=prs.slide_layouts[6] NAVY=RGBColor(12,36,57); BLUE=RGBColor(20,105,151); TEAL=RGBColor(20,151,151); CYAN=RGBColor(103,201,209); INK=RGBColor(31,46,60); MID=RGBColor(87,105,119); PALE=RGBColor(240,247,249); WHITE=RGBColor(255,255,255); ORANGE=RGBColor(230,121,46); RED=RGBColor(190,61,62); GREEN=RGBColor(50,145,105); AMBER=RGBColor(253,240,231) def box(s,x,y,w,h,fill,round=False,line=None): q=s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if round else MSO_SHAPE.RECTANGLE, Inches(x),Inches(y),Inches(w),Inches(h)); q.fill.solid(); q.fill.fore_color.rgb=fill; q.line.color.rgb=line or fill if round:q.adjustments[0]=.12 return q def tx(s,x,y,w,h,t,sz=18,c=INK,b=False,a=PP_ALIGN.LEFT,v=MSO_ANCHOR.TOP): q=s.shapes.add_textbox(Inches(x),Inches(y),Inches(w),Inches(h)); f=q.text_frame; f.clear(); f.word_wrap=True; f.margin_left=f.margin_right=f.margin_top=f.margin_bottom=0; f.vertical_anchor=v; p=f.paragraphs[0];p.alignment=a;r=p.add_run();r.text=t;r.font.name='Aptos';r.font.size=Pt(sz);r.font.bold=b;r.font.color.rgb=c;return q def bl(s,x,y,w,h,items,sz=17,gap=9): q=s.shapes.add_textbox(Inches(x),Inches(y),Inches(w),Inches(h)); f=q.text_frame;f.clear();f.word_wrap=True;f.margin_left=Inches(.06);f.margin_right=f.margin_top=f.margin_bottom=0 for i,t in enumerate(items): p=f.paragraphs[0] if i==0 else f.add_paragraph();p.text=t;p.level=0;p.bullet=True;p.font.name='Aptos';p.font.size=Pt(sz);p.font.color.rgb=INK;p.space_after=Pt(gap) return q def badge(s,x,y,t,c=TEAL): q=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x),Inches(y),Inches(.55),Inches(.55));q.fill.solid();q.fill.fore_color.rgb=c;q.line.color.rgb=c;tx(s,x,y+.08,.55,.22,t,13,WHITE,True,PP_ALIGN.CENTER) def header(s,n,h,sub): box(s,0,0,13.333,.2,TEAL);tx(s,.55,.4,11.2,.45,h,28,NAVY,True);tx(s,.57,.89,11.4,.28,sub,12,MID);tx(s,12.15,.46,.58,.25,f'{n:02}',13,TEAL,True,PP_ALIGN.RIGHT) def foot(s): box(s,.55,7.08,12.2,.02,RGBColor(215,227,232));tx(s,.55,7.18,8,.17,'India-aligned educational overview | AIDAA 2025 applies to trained airway clinicians under general anaesthesia',8,MID) def slide(h,sub): s=prs.slides.add_slide(BLANK);header(s,len(prs.slides),h,sub);foot(s);return s # 1 s=prs.slides.add_slide(BLANK);box(s,0,0,13.333,7.5,NAVY);box(s,0,0,13.333,.18,TEAL);tx(s,.75,.8,8,.35,'INDIA-ALIGNED EDUCATIONAL DECK',15,CYAN,True);tx(s,.72,1.3,8.4,1.25,'Basics of\nAirway Management',46,WHITE,True);tx(s,.76,3.05,7.2,.65,'Sequenced for initial assessment, basic care, escalation, and difficult-airway rescue.',20,RGBColor(215,236,239));box(s,.76,4.25,6.45,.72,RGBColor(25,67,91),True);tx(s,1.02,4.46,5.9,.25,'Updated with All India Difficult Airway Association (AIDAA) 2025 guidance',15,WHITE,True,PP_ALIGN.CENTER) for x,y,r,c in [(10.1,.95,.95,TEAL),(9.65,2.25,.6,CYAN),(10.8,2.58,.42,TEAL),(9.35,3.28,.3,CYAN),(10.3,3.85,.25,TEAL)]: q=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x),Inches(y),Inches(r),Inches(r));q.fill.solid();q.fill.fore_color.rgb=c;q.line.color.rgb=c for a,b in [((10.55,1.9),(9.98,2.28)),((10.12,2.82),(9.52,3.3)),((10.12,2.82),(10.92,2.62)),((9.6,3.55),(10.45,3.97))]: l=s.shapes.add_connector(MSO_CONNECTOR.STRAIGHT,Inches(a[0]),Inches(a[1]),Inches(b[0]),Inches(b[1]));l.line.color.rgb=WHITE;l.line.width=Pt(2.5) tx(s,.76,6.47,7,.25,'Adult-focused. Introductory teaching, not a substitute for supervised clinical training.',11,RGBColor(185,209,216)) # 2 s=slide('Learning outcomes and scope','Understand the sequence. Advanced airway procedures must remain within training, credentialing, and local institutional policy.') for i,(h,b,c) in enumerate([('Recognize','Identify airway compromise and call for help early.',TEAL),('Optimize','Use positioning, oxygenation, suction, and basic adjuncts.',BLUE),('Rescue','Understand the AIDAA 2025 escalation concepts for trained teams.',ORANGE)]): x=.75+i*4.15;box(s,x,1.55,3.62,3.65,PALE,True);badge(s,x+.32,1.93,str(i+1),c);tx(s,x+.32,2.72,2.8,.32,h,22,NAVY,True);tx(s,x+.32,3.34,2.85,1.05,b,17,INK) box(s,.75,5.85,11.85,.55,AMBER,True);tx(s,.98,6.02,11.35,.22,'This deck distinguishes basic airway support from specialist difficult-airway management.',16,RED,True,PP_ALIGN.CENTER) #3 s=slide('The sequence at a glance','The slide order follows the clinical workflow, from preparation to post-event documentation.') seq=[('Prepare','Team, equipment, suction, oxygen'),('Assess','Airway and breathing; recognize danger'),('Optimize','Position, oxygenate, clear, adjuncts'),('Ventilate','Effective face-mask ventilation'),('Escalate','SGA / tracheal tube by trained team'),('Rescue','Code D and emergency pathway if failure')] for i,(h,b) in enumerate(seq): x=.45+(i%3)*4.25;y=1.45+(i//3)*2.25;box(s,x,y,3.75,1.55,PALE,True);badge(s,x+.28,y+.47,str(i+1),[TEAL,BLUE,ORANGE,GREEN,BLUE,RED][i]);tx(s,x+1.04,y+.28,2.4,.25,h,19,NAVY,True);tx(s,x+1.04,y+.7,2.35,.38,b,14,INK) #4 s=slide('Prepare: team, plan, equipment','AIDAA emphasizes preparation, timely assistance, and a dedicated, organized difficult-airway cart or carry kit.') for i,(h,b,c) in enumerate([('Team','State the primary plan, rescue plan, roles, and trigger to call for help.',TEAL),('Equipment','Oxygen, BMV, suction, adjuncts, SGA, intubation tools, monitoring.',BLUE),('Backup','Ensure access to difficult-airway cart and emergency front-of-neck equipment where appropriate.',ORANGE)]): x=.72+i*4.1;box(s,x,1.5,3.55,3.85,PALE,True);badge(s,x+.28,1.85,str(i+1),c);tx(s,x+.28,2.65,2.95,.3,h,21,NAVY,True);tx(s,x+.28,3.2,2.9,1.35,b,16,INK) box(s,.75,5.9,11.8,.55,RGBColor(230,244,243),True);tx(s,1,6.07,11.3,.21,'India-specific AIDAA term: “Code D” is a hospital emergency call for a difficult airway requiring immediate help.',15,NAVY,True,PP_ALIGN.CENTER) #5 s=slide('Assess: identify airway compromise early','Assess response, airway patency, breathing, oxygenation, and the trajectory of deterioration.') for i,(h,b,c) in enumerate([('Look','Chest movement, work of breathing, secretions, blood, facial/neck trauma.',TEAL),('Listen','Snoring, gurgling, stridor, silence, or altered voice.',BLUE),('Feel / monitor','Air movement, pulse as trained, pulse oximetry when reliable.',ORANGE)]): y=1.42+i*1.4;badge(s,.77,y+.03,str(i+1),c);tx(s,1.52,y,1.25,.25,h,17,c,True);tx(s,2.85,y-.02,9,.48,b,18,INK) box(s,.75,5.9,11.8,.55,AMBER,True);tx(s,.95,6.07,11.4,.2,'Red flags: inability to speak, progressive swelling, severe distress, stridor, altered consciousness, or silent airway.',15,RED,True,PP_ALIGN.CENTER) #6 s=slide('Why obstruction occurs','In reduced consciousness, posterior tongue and soft-tissue displacement is a common cause of upper-airway obstruction.') parts=[('Nose / mouth',1.45,TEAL),('Pharynx',2.28,BLUE),('Tongue / soft tissue',3.11,ORANGE),('Laryngeal inlet',3.94,TEAL),('Trachea',4.77,BLUE)] for label,y,c in parts: box(s,1.0,y,3.3,.55,PALE,True);badge(s,1.22,y,'',c);tx(s,1.95,y+.15,2,.2,label,16,NAVY,True) if y<4.7:tx(s,2.28,y+.57,.6,.2,'↓',17,MID,True,PP_ALIGN.CENTER) box(s,5.1,1.45,7,4.45,AMBER,True);tx(s,5.48,1.8,5.9,.28,'Common contributors',21,RED,True);bl(s,5.5,2.35,5.8,2.8,['Loss of tone from unconsciousness, sedation, or fatigue.','Secretions, blood, vomit, food, or other material.','Swelling or trauma from anaphylaxis, burns, infection, or haematoma.'],18,13) #7 s=slide('Optimize: position and open the airway','Use a head-tilt/chin-lift when cervical spine injury is not suspected. Use jaw thrust first when trauma is suspected.') s.shapes.add_picture(IMG,Inches(.62),Inches(1.35),width=Inches(7.1),height=Inches(2.37));tx(s,.67,3.82,6.9,.2,'Manual airway maneuvers: tongue obstruction, head-tilt/chin-lift, and jaw thrust',10,MID) box(s,8.1,1.38,4.45,1.95,RGBColor(230,244,243),True);tx(s,8.4,1.66,3.8,.25,'Head-tilt / chin-lift',20,TEAL,True);tx(s,8.4,2.14,3.72,.7,'Open the airway with a gentle head tilt and chin lift when trauma is not suspected.',16,INK) box(s,8.1,3.7,4.45,1.95,RGBColor(235,244,250),True);tx(s,8.4,3.98,3.8,.25,'Jaw thrust',20,BLUE,True);tx(s,8.4,4.46,3.7,.7,'Use first with suspected cervical spine injury. If ineffective, prioritize oxygenation and ventilation.',16,INK) #8 s=slide('Optimize: oxygenation and preoxygenation','Preoxygenation creates an oxygen reservoir before an intubation attempt. Start early when invasive airway management may be needed.') box(s,.72,1.45,5.25,4.6,PALE,True);tx(s,1.05,1.78,4.4,.3,'Core actions',21,NAVY,True);bl(s,1.05,2.32,4.35,3.05,['Position the patient appropriately, often head-up if feasible.','Give high-concentration oxygen using the best available interface.','Address poor mask seal, obstruction, and secretions.','Continue oxygen delivery during rescue attempts when feasible.'],17,11) box(s,6.35,1.45,6,4.6,AMBER,True);tx(s,6.7,1.78,5.1,.3,'AIDAA 2025 emphasis',21,RED,True);bl(s,6.7,2.32,5,3.1,['Peri-intubation oxygenation, including apnoeic oxygenation where appropriate.','Track oxygen saturation and elapsed time during airway rescue.','Only proceed to another securing attempt when SpO₂ is at least 95%, per the adult general-anaesthesia algorithm.'],17,11) #9 s=slide('Clear the airway and use basic adjuncts','Suction, positioning, and appropriately chosen adjuncts work together. Reassess after each intervention.') for i,(h,b,c) in enumerate([('Suction','Clear secretions, blood, or vomit. Check function before airway attempts.',ORANGE),('OPA','For an unconscious patient without a gag reflex. Choose an appropriate size.',TEAL),('NPA','May be useful with preserved reflexes. Avoid with suspected basilar skull fracture or major mid-face trauma.',BLUE)]): x=.67+i*4.15;box(s,x,1.5,3.6,3.8,PALE,True);badge(s,x+.28,1.85,str(i+1),c);tx(s,x+.28,2.64,2.9,.28,h,21,NAVY,True);tx(s,x+.28,3.22,2.85,1.28,b,16,INK) box(s,.75,5.85,11.8,.55,AMBER,True);tx(s,1,6.02,11.3,.22,'Remove only material that is visible and can be safely reached. Do not perform blind finger sweeps.',16,RED,True,PP_ALIGN.CENTER) #10 s=slide('Ventilate: effective bag-mask ventilation','Bag-mask ventilation is a core rescue skill. Use the best seal, open airway, and give only enough volume for visible chest rise.') steps=[('Position','Open the airway and select an appropriate mask.'),('Seal','Use a two-handed mask seal if possible; jaw thrust may improve patency.'),('Ventilate','Squeeze over about 1 second to visible chest rise.'),('Reassess','Observe chest rise, oxygenation, and clinical response.')] for i,(h,b) in enumerate(steps): x=.58+i*3.14;badge(s,x,1.6,str(i+1),[TEAL,BLUE,ORANGE,GREEN][i]);tx(s,x,2.34,2.65,.25,h,18,NAVY,True);tx(s,x,2.82,2.6,.82,b,15,INK) box(s,.75,5.2,11.8,.85,AMBER,True);tx(s,1.02,5.45,11.25,.35,'Avoid excessive volume or force: gastric insufflation increases aspiration risk and may reduce ventilation effectiveness.',17,RED,True,PP_ALIGN.CENTER) #11 s=slide('Troubleshoot poor face-mask ventilation','Treat failure as a prompt to optimize and change strategy, not to persist with ineffective attempts.') items=[('Mask seal','Reposition mask, use two-person technique, consider different mask size.'),('Airway position','Re-open airway, jaw thrust, adjust head position, insert adjunct if appropriate.'),('Obstruction','Suction or remove visible material. Consider laryngospasm, swelling, or foreign body.'),('Technique / operator','Change technique, equipment, or operator early. Escalate to trained support.')] for i,(h,b) in enumerate(items): x=.65+(i%2)*6.15;y=1.48+(i//2)*2.1;box(s,x,y,5.7,1.55,PALE,True);badge(s,x+.3,y+.45,str(i+1),[TEAL,BLUE,ORANGE,RED][i]);tx(s,x+1.05,y+.26,4.1,.25,h,19,NAVY,True);tx(s,x+1.05,y+.7,4.08,.52,b,15,INK) #12 s=slide('Foreign-body airway obstruction','Management depends on whether obstruction is mild, severe, or has progressed to unresponsiveness. Follow current BLS training and local emergency protocols.') for i,(h,b,c) in enumerate([('Mild','Effective cough and able to speak or breathe: encourage coughing and observe.',GREEN),('Severe','Ineffective cough, unable to speak, or worsening distress: activate help and start trained-rescuer manoeuvres.',ORANGE),('Unresponsive','Lower to a firm surface, activate emergency response, start CPR, and inspect for a visible object when opening the airway.',RED)]): y=1.38+i*1.5;box(s,.75,y,11.75,1.17,PALE,True);badge(s,1.08,y+.3,str(i+1),c);tx(s,1.93,y+.18,2.1,.25,h,19,NAVY,True);tx(s,4.1,y+.18,7.7,.48,b,16,INK) box(s,.75,6.08,11.75,.45,AMBER,True);tx(s,.95,6.2,11.25,.18,'Do not delay emergency activation or CPR in an unresponsive patient with suspected FBAO.',14,RED,True,PP_ALIGN.CENTER) #13 s=slide('Escalate: advanced airway options','For appropriately trained clinicians, face mask, a second-generation SGA, and a tracheal tube are oxygenation and ventilation options.') for i,(h,b,c) in enumerate([('Face mask','Continue optimized BMV when effective. This remains a valid rescue method.',TEAL),('Second-generation SGA','A rescue or primary device depending on the patient, setting, expertise, and local policy.',BLUE),('Tracheal tube','Requires trained operator, plan, preparation, confirmation, and ongoing monitoring.',ORANGE)]): x=.67+i*4.15;box(s,x,1.45,3.62,3.92,PALE,True);badge(s,x+.28,1.8,str(i+1),c);tx(s,x+.28,2.62,2.9,.28,h,20,NAVY,True);tx(s,x+.28,3.2,2.88,1.35,b,16,INK) box(s,.75,5.85,11.8,.55,RGBColor(230,244,243),True);tx(s,.97,6.02,11.35,.22,'AIDAA 2025 uses a circular rescue concept: switch promptly among effective face-mask, SGA, and tracheal-tube strategies.',15,NAVY,True,PP_ALIGN.CENTER) #14 s=slide('AIDAA 2025: unanticipated difficult airway in adults','This is an overview of the AIDAA adult guideline for trained clinicians managing an unanticipated difficult airway under general anaesthesia.') box(s,.7,1.4,12,4.85,PALE,True) sequence=[('Primary plan fails','Recognize ineffective ventilation or failed intended device.'),('Declare Code D','Call for immediate skilled assistance and difficult-airway resources.'),('Re-oxygenate and optimize','Position, oxygen delivery, neuromuscular blockade where appropriate, and change tool/technique/operator.'),('Switch devices promptly','Face mask, second-generation SGA, or tracheal tube have no fixed hierarchy in rescue.'),('Limit attempts','AIDAA suggests up to 3 failed attempts with each device while SpO₂ remains ≥95%.')] for i,(h,b) in enumerate(sequence): y=1.68+i*.82;badge(s,1.02,y,str(i+1),[TEAL,RED,BLUE,ORANGE,GREEN][i]);tx(s,1.8,y+.04,2.6,.2,h,16,NAVY,True);tx(s,4.3,y+.03,7.55,.33,b,15,INK) #15 s=slide('When ventilation fails: the emergency trigger','AIDAA 2025 uses “complete ventilation failure” as the trigger to move immediately to emergency cricothyroidotomy for trained clinicians.') box(s,.75,1.45,5.55,4.7,AMBER,True);tx(s,1.1,1.78,4.75,.3,'Complete ventilation failure',22,RED,True);tx(s,1.1,2.36,4.65,1.15,'Best attempts at ventilation using a face mask, SGA, and tracheal tube have all failed, even if oxygenation may still be maintained.',19,INK);tx(s,1.1,4.32,4.65,.45,'This is a clinical emergency. Call for help and continue rescue oxygenation efforts.',16,RED,True) box(s,6.72,1.45,5.78,4.7,NAVY,True);tx(s,7.12,1.82,5,.28,'TRAINED-TEAM ACTION',15,CYAN,True,PP_ALIGN.CENTER);tx(s,7.2,2.55,4.85,1.45,'Proceed to\nemergency\ncricothyroidotomy',30,WHITE,True,PP_ALIGN.CENTER);tx(s,7.2,4.92,4.85,.38,'Technique and equipment depend on clinician familiarity and availability.',14,RGBColor(210,235,238),False,PP_ALIGN.CENTER) #16 s=slide('Confirm and monitor the airway','Device placement is not the endpoint. Confirm ventilation, maintain oxygenation, secure the device, and reassess continuously.') for i,(h,b,c) in enumerate([('Clinical checks','Chest rise, bilateral air entry, patient response, and device depth/position where relevant.',TEAL),('Waveform capnography','AIDAA 2025: confirm tracheal placement with six sustained capnograph traces without falling CO₂ levels.',BLUE),('Ongoing monitoring','Pulse oximetry, capnography if intubated, and reassessment after movement or clinical change.',ORANGE)]): x=.67+i*4.15;box(s,x,1.48,3.62,3.85,PALE,True);badge(s,x+.28,1.83,str(i+1),c);tx(s,x+.28,2.64,2.9,.28,h,20,NAVY,True);tx(s,x+.28,3.22,2.9,1.2,b,16,INK) box(s,.75,5.84,11.8,.55,RGBColor(230,244,243),True);tx(s,1,6.01,11.3,.21,'Capnography complements clinical examination; it should not be replaced by chest rise or auscultation alone.',15,NAVY,True,PP_ALIGN.CENTER) #17 s=slide('After the event: communicate, document, plan','AIDAA emphasizes patient safety beyond the immediate airway event.') for i,(h,b,c) in enumerate([('Debrief','Team review, support, and learning after a difficult-airway event.',TEAL),('Document','Record the difficulty, devices, attempts, successful approach, and complications.',BLUE),('Alert','Issue a difficult-airway alert card/document and communicate with patient and family as appropriate.',ORANGE),('Future plan','Plan extubation and subsequent anaesthesia with airway risk clearly flagged.',GREEN)]): x=.65+(i%2)*6.15;y=1.45+(i//2)*2.15;box(s,x,y,5.7,1.58,PALE,True);badge(s,x+.3,y+.45,str(i+1),c);tx(s,x+1.05,y+.27,4.1,.24,h,19,NAVY,True);tx(s,x+1.05,y+.72,4.1,.52,b,15,INK) #18 s=slide('Key points and India-focused references','Take-home messages and the principal sources used to update this deck.') bl(s,.78,1.4,6.05,3.95,['Prepare early: team roles, oxygen, suction, basic equipment, and backup.','Prioritize oxygenation and effective ventilation over repeated attempts at a single device.','For trained teams, use AIDAA 2025: Code D, optimize, switch promptly between devices, track SpO₂/time, and limit attempts.','Complete ventilation failure is the AIDAA trigger for emergency cricothyroidotomy.','Confirm tracheal placement with waveform capnography and document a difficult-airway event.'],16,9) box(s,7.2,1.42,5.37,4.72,PALE,True);tx(s,7.52,1.75,4.6,.27,'References',20,NAVY,True);tx(s,7.52,2.28,4.5,3.38,'1. Myatra SN et al. AIDAA 2025 adult unanticipated difficult-airway guidelines. Indian J Anaesth. 2025;69:1117-41.\n\n2. Garg R et al. AIDAA Difficult Airway Cart, Code D, and Airway Alert Card. Indian J Anaesth. 2025;69:1208-13.\n\n3. AIDAA 2025 guideline development methodology. Indian J Anaesth. 2025.\n\n4. Roberts and Hedges’ Clinical Procedures in Emergency Medicine, airway management chapters.',13,INK) tx(s,.75,6.5,11.8,.2,'Guideline details must be adapted to institutional resources, credentialing, and patient context.',11,MID,False,PP_ALIGN.CENTER) prs.save(OUT);print(OUT, len(prs.slides)) PY python "/tmp/workspace/airway-management-presentation/src/create_india_aidaa_2025_deck.py" python - <<'PY' from pptx import Presentation from pathlib import Path import zipfile p=Path('/tmp/workspace/airway-management-presentation/output/Airway_Management_India_AIDAA_2025.pptx') with zipfile.ZipFile(p) as z: print('zip',z.testzip() or 'OK') prs=Presentation(p); print('slides',len(prs.slides),'bytes',p.stat().st_size) for i,slide in enumerate(prs.slides,1): t=[x.text for x in slide.shapes if getattr(x,'has_text_frame',False) and x.text.strip()] assert t, i print(i,t[0].replace('\n',' / ')[:70]) PY

Updated and reorganized the deck into a logical 18-slide clinical sequence:
  1. Scope and learning outcomes
  2. Preparation and equipment
  3. Assessment and recognition
  4. Basic airway optimization
  5. Oxygenation, suction, adjuncts, and bag-mask ventilation
  6. Troubleshooting and foreign-body obstruction
  7. Advanced airway escalation
  8. AIDAA 2025 difficult-airway approach
  9. Confirmation, monitoring, documentation, and references
The revision incorporates current India-focused All India Difficult Airway Association (AIDAA) 2025 principles, including Code D activation, oxygenation-first rescue, prompt switching among face-mask ventilation, second-generation supraglottic airway, and tracheal intubation strategies, capped attempts while SpO₂ is at least 95%, waveform capnography confirmation, and complete ventilation failure as the trigger for emergency cricothyroidotomy by trained clinicians. These points are based on the AIDAA adult guideline and the AIDAA difficult-airway cart and Code D guidance.

Airway Management India AIDAA 2025

Presentation · PPTX

This is a shared conversation. Sign in to Orris to start your own chat.