Observe and describe the principles and the steps/techniques involved in anaesthesia outside the operating room. kindly make a ppt for final mbbs students under NMC
"non-operating room anesthesia"
NMC MBBS Competency Based Undergraduate Curriculum anaesthesia outside operating room competencies PDF
https://www.nmc.org.in/information-desk/for-colleges/ug-curr…
~/
anaesthesia machine monitoring non operating room anesthesia remote location endoscopy suite
ASA Statement Nonoperating Room Anesthetizing Locations requirements monitoring oxygen suction equipment 2023
mkdir -p "/tmp/workspace/nora_mbbs_ppt/src" "/tmp/workspace/nora_mbbs_ppt/output" "/tmp/workspace/nora_mbbs_ppt/assets" && python - <<'PY' import os print('prepared') PY
~/nora_mbbs_ppt/
python - <<'PY' from pathlib import Path p=Path('/tmp/workspace/nora_mbbs_ppt/src/create_nora_ppt.py') p.write_text(r'''from pptx import Presentation from pptx.util import Inches, Pt from pptx.dml.color import RGBColor from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR from pptx.enum.dml import MSO_THEME_COLOR from pptx.enum.text import MSO_AUTO_SIZE OUT='/tmp/workspace/nora_mbbs_ppt/output/NORA_Anaesthesia_Outside_OR_Final_MBBS_NMC.pptx' prs=Presentation(); prs.slide_width=Inches(13.333); prs.slide_height=Inches(7.5) blank=prs.slide_layouts[6] # palette NAVY=RGBColor(12,38,64); TEAL=RGBColor(0,130,140); CYAN=RGBColor(73,196,205); GOLD=RGBColor(244,178,54) RED=RGBColor(202,67,58); PALE=RGBColor(239,247,248); INK=RGBColor(30,45,58); MUTED=RGBColor(93,113,125); WHITE=RGBColor(255,255,255); GREY=RGBColor(222,232,235) def rect(s,x,y,w,h,fill,line=None,r=False): sh=s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if r 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 or fill; return sh def txt(s,text,x,y,w,h,size=18,color=INK,bold=False,align=PP_ALIGN.LEFT, font='Aptos', valign=MSO_ANCHOR.TOP): t=s.shapes.add_textbox(Inches(x),Inches(y),Inches(w),Inches(h)); tf=t.text_frame; tf.clear(); tf.word_wrap=True; tf.margin_left=Inches(.03); tf.margin_right=Inches(.03); tf.margin_top=Inches(.02); tf.margin_bottom=Inches(.02); tf.vertical_anchor=valign for i,line in enumerate(text.split('\n')): p=tf.paragraphs[0] if i==0 else tf.add_paragraph(); p.text=line; p.alignment=align; p.space_after=Pt(2) for run in p.runs: run.font.name=font; run.font.size=Pt(size); run.font.bold=bold; run.font.color.rgb=color return t def bullet(s,items,x,y,w,h,size=18,color=INK): t=s.shapes.add_textbox(Inches(x),Inches(y),Inches(w),Inches(h)); tf=t.text_frame; tf.clear(); tf.word_wrap=True; tf.margin_left=Inches(.08); 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.size=Pt(size); p.font.name='Aptos'; p.font.color.rgb=color; p.space_after=Pt(7); p.bullet=True return t def title(s,n,heading,sub=''): rect(s,0,0,13.333,.22,TEAL); txt(s,f'{n:02d}',.45,.42,.55,.35,12,TEAL,True); txt(s,heading,1.05,.34,11.7,.55,27,NAVY,True) if sub: txt(s,sub,1.06,.93,11.6,.32,12,MUTED) rect(s,.45,7.12,12.45,.02,GREY); txt(s,'Final MBBS | Anaesthesiology | NORA',.45,7.2,5,.18,9,MUTED); txt(s,str(n),12.25,7.18,.5,.18,9,MUTED,True,PP_ALIGN.RIGHT) def card(s,x,y,w,h,head,body,accent=TEAL,fs=16): rect(s,x,y,w,h,WHITE,GREY,True); rect(s,x,y,.08,h,accent); txt(s,head,x+.22,y+.18,w-.35,.35,16,accent,True); bullet(s,body,x+.22,y+.64,w-.38,h-.72,fs) def note(s,text): ns=s.notes_slide.notes_text_frame; ns.text=text # 1 s=prs.slides.add_slide(blank); rect(s,0,0,13.333,7.5,NAVY); rect(s,0,0,13.333,.16,TEAL); rect(s,.68,1.15,.1,4.7,TEAL); txt(s,'ANAESTHESIA\nOUTSIDE THE\nOPERATING ROOM',1.05,1.1,7.6,2.8,33,WHITE,True); txt(s,'Non-operating room anaesthesia (NORA)',1.08,4.15,7.4,.45,20,CYAN,False); txt(s,'Principles, preparation and essential techniques',1.08,4.72,7.4,.38,17,WHITE); rect(s,9.2,1.22,2.95,4.65,TEAL,None,True); txt(s,'PATIENT\nPROCEDURE\nENVIRONMENT',9.48,1.8,2.4,1.9,23,WHITE,True,PP_ALIGN.CENTER); txt(s,'Same standard\nof care as the OR',9.48,4.3,2.4,.7,16,WHITE,False,PP_ALIGN.CENTER); txt(s,'For Final MBBS students | CBME/NMC-aligned teaching session',1.08,6.7,8.2,.28,13,RGBColor(200,220,225)); note(s,'Teaching deck for undergraduate orientation. Emphasise that NORA requires supervised practice and local institutional protocols.') #2 s=prs.slides.add_slide(blank); title(s,2,'Learning objectives','At the end, the learner should be able to:'); for i,(h,b,c) in enumerate([('DEFINE','Describe NORA and identify common sites.',TEAL),('ASSESS','Apply a structured Patient-Procedure-Environment assessment.',GOLD),('PREPARE','Use a pre-anaesthesia and remote-site readiness checklist.',CYAN),('RESPOND','Recognise respiratory compromise and activate rescue/escalation.',RED)]): x=.7+(i%2)*6.1;y=1.55+(i//2)*2.25; rect(s,x,y,5.55,1.65,WHITE,GREY,True); rect(s,x,y,1.35,1.65,c); txt(s,str(i+1),x+.38,y+.45,.55,.45,25,WHITE,True,PP_ALIGN.CENTER); txt(s,h,x+1.65,y+.3,3.5,.35,17,c,True); txt(s,b,x+1.65,y+.75,3.55,.6,15,INK) #3 s=prs.slides.add_slide(blank); title(s,3,'What is NORA?','Non-operating room anaesthesia is anaesthesia or anaesthesiology-led sedation delivered away from the traditional operating room.'); card(s,.7,1.55,4,4.65,'COMMON LOCATIONS',['Endoscopy and bronchoscopy','CT, MRI and interventional radiology','Cardiac catheterisation and electrophysiology','ECT, radiotherapy, dental and procedure rooms'],TEAL,16) card(s,4.7,1.55,4,4.65,'WHY IT IS DIFFERENT',['Restricted access to the patient','Unfamiliar rooms, staff and equipment','Distance from help, drugs and PACU','Procedure-related hazards and distractions'],GOLD,16) card(s,8.7,1.55,4,4.65,'CORE RULE',['NORA is not “lighter” anaesthesia.','Standards of assessment, monitoring, vigilance, rescue and recovery must match the OR.'],RED,17) note(s,'Source: Morgan and Mikhail, Clinical Anesthesiology, 7e, pp. 1754-1773; Barash Clinical Anesthesia, 9e, pp. 2652-2653.') #4 s=prs.slides.add_slide(blank); title(s,4,'The governing principle: same standard, different setting','The location changes the hazards, not the duty of care.'); for i,(h,body,c) in enumerate([('BEFORE','Assess patient\nConfirm suitability\nPlan technique',TEAL),('DURING','Monitor continuously\nMaintain access\nAnticipate rescue',GOLD),('AFTER','Safe handover\nMonitored transport\nAppropriate recovery',CYAN)]): x=.8+i*4.18; rect(s,x,1.6,3.55,3.5,WHITE,GREY,True); rect(s,x,1.6,3.55,.67,c); txt(s,h,x+.2,1.76,3.15,.3,18,WHITE,True,PP_ALIGN.CENTER); txt(s,body,x+.35,2.55,2.85,1.35,20,NAVY,True,PP_ALIGN.CENTER, valign=MSO_ANCHOR.MIDDLE) if i<2: txt(s,'→',x+3.66,2.93,.35,.4,28,TEAL,True) rect(s,.8,5.55,11.9,.65,PALE,None,True); txt(s,'“Remote” must never mean “unprepared”. Establish help, equipment and transfer plans before sedation begins.',1.05,5.73,11.3,.28,16,NAVY,True,PP_ALIGN.CENTER) note(s,'Source: Barash, Cullen and Stoelting, Clinical Anesthesia, 9e, pp. 2652-2653. ASA Statement on Nonoperating Room Anesthesia Services, amended 18 Oct 2023.') #5 s=prs.slides.add_slide(blank); title(s,5,'A practical framework: P - P - E','Use this three-step check for every remote-site case.'); for i,(big,h,items,c) in enumerate([('P','PATIENT',['Comorbidity and ASA status','Airway, OSA, obesity','Fasting, aspiration risk','Consent, escort, baseline observations'],TEAL),('P','PROCEDURE',['Purpose, duration, painful stimulus','Position and patient access','Shared airway or immobility','Contrast, bleeding or procedural risk'],GOLD),('E','ENVIRONMENT',['Oxygen, suction, monitors','Drugs, airway and rescue equipment','Staff, communication, emergency route','MRI / radiation / electrical hazards'],RED)]): x=.6+i*4.25; rect(s,x,1.55,3.92,4.75,WHITE,GREY,True); rect(s,x+.15,1.77,.75,.75,c,None,True); txt(s,big,x+.15,1.9,.75,.35,27,WHITE,True,PP_ALIGN.CENTER); txt(s,h,x+1.05,1.93,2.4,.35,18,c,True); bullet(s,items,x+.38,2.85,3.08,2.65,16) note(s,'Source: Barash, Cullen and Stoelting, Clinical Anesthesia, 9e, section “Three-Step Approach to Nonoperating Room Anesthesia”.') #6 s=prs.slides.add_slide(blank); title(s,6,'Step 1: pre-anaesthesia assessment and planning','The technique is selected after risk assessment, not before.'); card(s,.7,1.45,5.85,4.85,'PATIENT CHECK',['Identity, procedure, indication and consent','Focused history: cardiorespiratory disease, OSA, reflux, prior anaesthesia','Airway assessment and aspiration risk','Examination, investigations and optimisation as indicated','Fasting status and medication plan','Discuss risks, post-procedure care and escort'],TEAL,16) card(s,6.8,1.45,5.85,4.85,'MAKE A PLAN',['Define intended depth: local / minimal / moderate / deep sedation / GA','Plan oxygenation, ventilation and airway rescue','Choose drugs appropriate to age, physiology and procedure','Confirm IV access, blood availability if relevant','State a contingency: “If X happens, we will do Y.”'],GOLD,16) note(s,'Sources: Morgan and Mikhail, Clinical Anesthesiology, 7e, pp. 1754-1773; Barash Clinical Anesthesia, 9e, pp. 2652-2653. Follow local fasting and assessment policies.') #7 s=prs.slides.add_slide(blank); title(s,7,'Step 2: remote-site readiness checklist','Perform before the patient enters or before sedative administration.'); checks=[('O₂','Reliable primary source + backup cylinder'),('SUCTION','Working and immediately accessible'),('MONITORS','Pulse oximetry, NIBP, ECG when indicated, capnography for moderate/deep sedation'),('AIRWAY','Bag-mask, oral/nasal airways, supraglottic device, intubation equipment'),('DRUGS','Anaesthetic, emergency and reversal drugs labelled and available'),('RESCUE','Defibrillator/crash cart, alarm/help call, emergency transfer route'),('SPACE','Access to head and patient, lines secured, clear exit'),('RECOVERY','Monitored transport and an appropriate recovery/PACU destination')] for i,(h,b) in enumerate(checks): x=.7+(i%2)*6.15;y=1.35+(i//2)*1.35; rect(s,x,y,5.6,1.05,WHITE,GREY,True); rect(s,x,y,1.18,1.05,TEAL if i<4 else GOLD); txt(s,h,x+.1,y+.33,.98,.22,11,WHITE,True,PP_ALIGN.CENTER); txt(s,b,x+1.4,y+.25,3.95,.5,14,INK,False) note(s,'Source: ASA Statement on Nonoperating Room Anesthesia Services, amended 18 Oct 2023; Morgan and Mikhail, Clinical Anesthesiology, 7e, Table 44-9, p. 1773.') #8 s=prs.slides.add_slide(blank); title(s,8,'Step 3: choose the technique and depth','Give the least depth that safely achieves procedural conditions.'); levels=[('Local / topical','Patient awake, protective reflexes intact',TEAL),('Minimal sedation','Responds normally to verbal commands',CYAN),('Moderate sedation','Purposeful response to voice or light touch',GOLD),('Deep sedation','Purposeful response only after repeated/painful stimulus',RED),('General anaesthesia','Unarousable, airway/ventilation support may be required',NAVY)] for i,(h,b,c) in enumerate(levels): y=1.38+i*1.02; rect(s,.8,y,11.8,.78,WHITE,GREY,True); rect(s,.8,y,3.1,.78,c); txt(s,h,1.03,y+.23,2.65,.25,15,WHITE,True); txt(s,b,4.15,y+.22,7.8,.3,15,INK) rect(s,.8,6.55,11.8,.38,PALE,None,True); txt(s,'Sedation is a continuum: be able to rescue a patient who becomes more deeply sedated than intended.',1.05,6.63,11.25,.18,13,NAVY,True,PP_ALIGN.CENTER) note(s,'Teaching simplification based on ASA sedation continuum. Drug doses are deliberately omitted: use local policy and trained supervision.') #9 s=prs.slides.add_slide(blank); title(s,9,'Monitoring and vigilance','Monitoring is the early-warning system. Do not substitute it for observation.'); for i,(h,b,c) in enumerate([('OXYGENATION','Pulse oximetry; inspired O₂ as appropriate',TEAL),('VENTILATION','Observe chest movement; capnography for moderate/deep sedation or GA',GOLD),('CIRCULATION','NIBP at appropriate intervals; ECG when indicated',CYAN),('TEMPERATURE','When clinically significant change is anticipated',RED)]): x=.75+(i%2)*6.15;y=1.45+(i//2)*2.1; rect(s,x,y,5.65,1.65,WHITE,GREY,True); rect(s,x,y,.1,1.65,c); txt(s,h,x+.28,y+.3,4.95,.3,17,c,True); txt(s,b,x+.28,y+.82,4.95,.42,15,INK) rect(s,.75,5.9,11.8,.54,NAVY,None,True); txt(s,'Continuous presence, visible monitors, audible alarms and immediate ability to intervene are non-negotiable.',1.05,6.05,11.2,.2,14,WHITE,True,PP_ALIGN.CENTER) note(s,'Source: ASA Standards for Basic Anesthetic Monitoring and ASA Statement on Nonoperating Room Anesthesia Services, accessed 2026. Local standards govern exact application.') #10 s=prs.slides.add_slide(blank); title(s,10,'Managing the shared airway: prevent, detect, rescue','The most common critical NORA problem is inadequate oxygenation or ventilation.'); steps=[('1. PREVENT','Position, preoxygenate when needed, titrate slowly, avoid unnecessary drug stacking',TEAL),('2. DETECT','Observe patient and capnogram; respond early to obstruction, apnoea or desaturation',GOLD),('3. RESCUE','Stop sedative, call for help, open airway, jaw thrust, suction, oxygen, bag-mask ventilation',RED),('4. ESCALATE','Use airway adjuncts / supraglottic airway / tracheal intubation as trained; move to higher-capability setting if required',NAVY)] for i,(h,b,c) in enumerate(steps): y=1.36+i*1.23; rect(s,.85,y,11.65,.93,WHITE,GREY,True); rect(s,.85,y,2.18,.93,c); txt(s,h,1.02,y+.29,1.8,.25,14,WHITE,True); txt(s,b,3.3,y+.24,8.75,.43,15,INK) rect(s,.85,6.45,11.65,.38,RGBColor(253,238,237),None,True); txt(s,'A falling SpO₂ is late. Escalate on loss of airway patency, absent/abnormal ventilation or deteriorating capnography.',1.05,6.53,11.2,.18,13,RED,True,PP_ALIGN.CENTER) note(s,'Source: Morgan and Mikhail, Clinical Anesthesiology, 7e, pp. 1772-1773, noting NORA closed claims commonly involved oxygenation/ventilation injuries during endoscopy. Rescue requires trained personnel and local emergency protocols.') #11 s=prs.slides.add_slide(blank); title(s,11,'Site-specific hazards: anticipate before you start','Each location adds a hazard profile.'); for i,(h,bs,c) in enumerate([('MRI',['Ferromagnetic projectile risk','Only MRI-compatible equipment','Limited physical access, noise, claustrophobia'],TEAL),('ENDOSCOPY / BRONCHOSCOPY',['Shared airway; aspiration risk','Insufflation, prone/lateral positions','Airway access may be restricted'],GOLD),('IR / CATH LAB',['Radiation: lead protection, distance, shielding','Long lines; patient separated by equipment','Contrast reaction / bleeding / haemodynamic change'],RED),('CT / RADIOTHERAPY',['Remote visual access','Long breathing circuits / infusion lines','Need for immobility and communication'],CYAN)]): x=.65+(i%2)*6.15;y=1.35+(i//2)*2.55; card(s,x,y,5.75,2.05,h,bs,c,15) note(s,'Sources: Barash Clinical Anesthesia, 9e, pp. 2652-2653; Morgan and Mikhail, Clinical Anesthesiology, 7e, p. 1773. MRI policies are institution-specific.') #12 s=prs.slides.add_slide(blank); title(s,12,'Team communication and human factors','A safe plan is shared, explicit and rehearsed.'); for i,(h,b,c) in enumerate([('BRIEF','Procedure, expected duration, position, airway access and intended anaesthetic depth',TEAL),('NAME ROLES','Who monitors? Who gives drugs? Who calls for help? Who stops the procedure?',GOLD),('CLOSED LOOP','Repeat-back critical instructions. State concerns and escalating triggers aloud.',CYAN),('DEBRIEF','Handover: drugs, events, airway, fluids, complications and recovery plan',RED)]): x=.85+(i%2)*6.1;y=1.43+(i//2)*2.18; rect(s,x,y,5.65,1.65,WHITE,GREY,True); rect(s,x,y,.12,1.65,c); txt(s,h,x+.32,y+.26,4.8,.3,17,c,True); txt(s,b,x+.32,y+.72,4.85,.55,15,INK) note(s,'NMC/CBME-aligned themes: communication, teamwork, patient safety and professional responsibility. Use local checklists and escalation pathways.') #13 s=prs.slides.add_slide(blank); title(s,13,'Recovery, transport and discharge','Anaesthesia care ends only when the patient is safely handed over and monitored.'); for i,(h,b,c) in enumerate([('TRANSFER',['Oxygen and monitors as indicated','Accompanied by trained personnel','Secure airway, IV lines and documentation'],TEAL),('RECOVERY',['Observe airway, ventilation, circulation, pain, nausea and consciousness','Use PACU or an equivalently equipped recovery area'],GOLD),('DISCHARGE',['Meet institutional criteria','Responsible adult/escort when ambulatory','Written advice, danger signs and contact pathway'],CYAN)]): x=.75+i*4.18; card(s,x,1.55,3.75,3.95,h,b,c,16) rect(s,.75,5.9,11.95,.5,PALE,None,True); txt(s,'Never leave an unstable, deeply sedated or inadequately monitored patient in a remote location.',1.0,6.05,11.45,.2,14,NAVY,True,PP_ALIGN.CENTER) note(s,'Source: Barash, Cullen and Stoelting, Clinical Anesthesia, 9e, p. 2652: appropriate PACU transfer, accompanied and monitored by anaesthesia-trained personnel.') #14 s=prs.slides.add_slide(blank); title(s,14,'Case-based application','MRI in a 7-year-old with severe claustrophobia'); rect(s,.75,1.3,3.4,4.9,PALE,None,True); txt(s,'SCENARIO',1.05,1.62,2.8,.3,17,TEAL,True); txt(s,'Needs immobility\nfor 40 minutes.\nFasted. Mild asthma.\nParent asks for “just a little sleep”.',1.05,2.18,2.75,1.85,19,NAVY,True) for i,(h,b,c) in enumerate([('P','Airway/respiratory review, consent, fasting, IV plan and suitable recovery.',TEAL),('P','Duration, need for complete immobility, no access during scan.',GOLD),('E','MRI-compatible machine/monitoring, screened equipment, emergency plan outside magnet room.',RED)]): y=1.38+i*1.43; rect(s,4.55,y,7.8,1.13,WHITE,GREY,True); rect(s,4.55,y,1.05,1.13,c); txt(s,h,4.84,y+.35,.45,.25,20,WHITE,True,PP_ALIGN.CENTER); txt(s,b,5.85,y+.22,6.1,.56,16,INK) rect(s,4.55,5.85,7.8,.42,NAVY,None,True); txt(s,'Decision: choose an anaesthetic plan that maintains safety even when access is limited.',4.78,5.97,7.3,.18,13,WHITE,True,PP_ALIGN.CENTER) note(s,'Facilitator question: What must be checked before entering the MRI controlled area? Expected: MRI-compatible equipment, oxygen, suction, monitoring, emergency evacuation plan and trained team.') #15 s=prs.slides.add_slide(blank); title(s,15,'Take-home checklist','Think P-P-E. Prepare for deterioration before sedating.'); items=['Same assessment, monitoring and rescue standards as in the operating room.','Use Patient - Procedure - Environment to identify risk.','Check oxygen, suction, monitors, airway equipment, drugs, help and recovery route.','Sedation is a continuum: never administer what you cannot rescue.','Recognise early respiratory compromise and act promptly.','Plan safe transport, recovery and handover.'] for i,it in enumerate(items): y=1.25+i*.78; rect(s,.82,y,11.75,.55,WHITE,GREY,True); rect(s,.82,y,.55,.55,TEAL); txt(s,'✓',.95,y+.11,.28,.22,16,WHITE,True,PP_ALIGN.CENTER); txt(s,it,1.62,y+.14,10.4,.24,15,INK, i in [0,3]) rect(s,.82,6.22,11.75,.55,NAVY,None,True); txt(s,'Final MBBS scope: observe, assist, assess risk, communicate and escalate under supervision.',1.1,6.39,11.15,.2,15,WHITE,True,PP_ALIGN.CENTER) #16 s=prs.slides.add_slide(blank); title(s,16,'References and teaching resources','Use local hospital protocols for drug selection, fasting, staffing and emergency response.'); refs=['Morgan and Mikhail’s Clinical Anesthesiology, 7e. “Special Considerations in & Out of Operating Room Locations”, pp. 1754-1773.','Barash, Cullen and Stoelting’s Clinical Anesthesia, 9e. “Nonoperating Room Anesthesia”, pp. 2652-2653.','American Society of Anesthesiologists. Statement on Nonoperating Room Anesthesia Services. Last amended 18 October 2023.','National Medical Commission. UG Curriculum / Competency Based Medical Education framework, accessed September 2026.'] bullet(s,refs,.85,1.42,11.65,3.55,16) rect(s,.85,5.45,11.65,.75,PALE,None,True); txt(s,'This presentation is for undergraduate teaching. It does not replace supervised clinical training, ASA/NMC guidance, or institutional SOPs.',1.1,5.66,11.15,.28,14,NAVY,True,PP_ALIGN.CENTER) txt(s,'End',.85,6.6,11.65,.35,22,TEAL,True,PP_ALIGN.CENTER) # Core props prs.core_properties.title='Anaesthesia Outside the Operating Room (NORA)' prs.core_properties.subject='Final MBBS teaching presentation' prs.core_properties.author='Orris' prs.core_properties.keywords='NORA, anaesthesia, final MBBS, NMC' prs.save(OUT) print(OUT) ''') PY python "/tmp/workspace/nora_mbbs_ppt/src/create_nora_ppt.py"
python - <<'PY' from pptx import Presentation from pathlib import Path p=Path('/tmp/workspace/nora_mbbs_ppt/output/NORA_Anaesthesia_Outside_OR_Final_MBBS_NMC.pptx') assert p.exists() and p.stat().st_size > 10000 prs=Presentation(str(p)) print('slides',len(prs.slides),'size',p.stat().st_size) for i,s in enumerate(prs.slides,1): texts=[sh.text.strip().replace('\n',' | ')[:55] for sh in s.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()] print(i, len(s.shapes), texts[:3]) PY
NORA Anaesthesia Outside OR Final MBBS NMC
Presentation · PPTX