Create a ppt on headache?

Reading File
What audience should the presentation target?
Asking for Preferences

Choose the intended audience and depth. · Choose a deck length.

What audience should the presentation target?
Reading File
Finding Sources
Finding Sources
Searching PubMed

headache AND management

Searching the Web

International Headache Society headache classification red flags migraine treatment guideline 2024

Reading File
Reading File
Reading File
Searching Images

clinical diagram migraine headache phases aura trigeminovascular system

Searching Images

headache SNOOP red flag clinical evaluation diagram

Searching Images

tension type headache cluster headache clinical diagram

Browsing Directory

~/

Reading File
Reading File
Loading Image
Running Command

mkdir -p "/tmp/workspace/headache-presentation/src" "/tmp/workspace/headache-presentation/output" "/tmp/workspace/headache-presentation/assets" && python /tmp/skills/shared/scripts/fetch_images.py "https://cdn.orris.care/cdss_images/d79ad64919bbe2ea795ad5ac016dd5773e6dfee05124af733fdb3c1c617c6b44.png" > "/tmp/workspace/headache-presentation/assets/fetched.json" && python -c "import json,base64; x=json.load(open('/tmp/workspace/headache-presentation/assets/fetched.json'))[0]; open('/tmp/workspace/headache-presentation/assets/migraine_pathway.png','wb').write(base64.b64decode(x['base64'].split(',',1)[1])) if x.get('base64') else print(x)" && ls -l "/tmp/workspace/headache-presentation/assets"

Running Command

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

Running Command

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 from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.enum.dml import MSO_THEME_COLOR from pptx.enum.shapes import MSO_CONNECTOR from pptx.enum.text import MSO_AUTO_SIZE from pathlib import Path OUT=Path('/tmp/workspace/headache-presentation/output/Headache_Evaluation_and_Management.pptx') IMG='/tmp/workspace/headache-presentation/assets/migraine_pathway.png' prs=Presentation(); prs.slide_width=Inches(13.333); prs.slide_height=Inches(7.5) blank=prs.slide_layouts[6] # colors NAVY=RGBColor(13,34,63); TEAL=RGBColor(0,132,143); AQUA=RGBColor(213,242,241); INK=RGBColor(29,42,57); MUTED=RGBColor(94,108,124); CORAL=RGBColor(219,84,76); GOLD=RGBColor(239,183,62); WHITE=RGBColor(255,255,255); PALE=RGBColor(246,249,251); LBLUE=RGBColor(232,242,250) def rect(sl,x,y,w,h,fill,rad=False,line=None): s=sl.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if rad else MSO_SHAPE.RECTANGLE, Inches(x), Inches(y), Inches(w), Inches(h)); s.fill.solid();s.fill.fore_color.rgb=fill;s.line.color.rgb=line or fill return s def text(sl,x,y,w,h,txt,size=18,color=INK,bold=False,align=PP_ALIGN.LEFT,font='Aptos',val=None): tb=sl.shapes.add_textbox(Inches(x),Inches(y),Inches(w),Inches(h)); tf=tb.text_frame;tf.clear();tf.word_wrap=True;tf.margin_left=0;tf.margin_right=0;tf.margin_top=0;tf.margin_bottom=0 p=tf.paragraphs[0];p.alignment=align;p.text=txt for r in p.runs:r.font.name=font;r.font.size=Pt(size);r.font.bold=bold;r.font.color.rgb=color if val: tf.vertical_anchor=val return tb def title(sl,num,ttl,sub=''): rect(sl,0,0,13.333,.20,TEAL);text(sl,.65,.45,11.8,.5,ttl,29,NAVY,True); text(sl,.67,1.03,11.5,.3,sub,11,MUTED) text(sl,12.0,.48,.65,.3,f'{num:02d}',13,TEAL,True,PP_ALIGN.RIGHT) rect(sl,.65,7.10,12.03,.02,RGBColor(210,220,228)); text(sl,.65,7.18,8,.18,'HEADACHE | CLINICAL OVERVIEW',8,MUTED,True);text(sl,11.5,7.18,1.18,.18,'EDUCATIONAL DECK',8,MUTED,True,PP_ALIGN.RIGHT) def bullet(sl,x,y,w,items,size=17,color=INK,lead=0.48): for i,it in enumerate(items): text(sl,x,y+i*lead,w,.39,'• '+it,size,color) def notes(sl,content): try: sl.notes_slide.notes_text_frame.text=content except: pass # 1 s=prs.slides.add_slide(blank); rect(s,0,0,13.333,7.5,NAVY); rect(s,.70,.85,.12,4.8,TEAL);text(s,1.15,1.0,8.8,.75,'HEADACHE',44,WHITE,True);text(s,1.18,1.83,8.3,.58,'A structured approach to recognition, triage, and first-line care',22,RGBColor(207,229,239)); for i,(a,b) in enumerate([('PRIMARY','migraine, tension-type, cluster'),('SECONDARY','vascular, infectious, pressure-related')]): x=1.18+i*4.6;rect(s,x,3.05,4.1,1.22,RGBColor(25,59,91),True);text(s,x+.25,3.32,3.5,.24,a,12,RGBColor(105,219,214),True);text(s,x+.25,3.66,3.55,.35,b,15,WHITE) text(s,1.18,5.45,8.5,.32,'Teaching deck | General clinical education, not a substitute for urgent assessment',12,RGBColor(189,212,225));text(s,11.62,6.8,1.0,.25,'01',14,RGBColor(105,219,214),True,PP_ALIGN.RIGHT) notes(s,'Introduce the distinction between primary and secondary headache. Emphasize that the presentation focuses on safe initial clinical reasoning.') # 2 s=prs.slides.add_slide(blank);title(s,2,'Why headache matters','Common symptom. Sometimes a time-critical emergency.') text(s,.72,1.55,5.3,.44,'Start with one question',18,TEAL,True);text(s,.72,2.05,5.2,1.15,'Is this a familiar primary headache pattern, or could it be secondary?',31,NAVY,True) for y,head,body,col in [(3.65,'PRIMARY','A recognized syndrome with a stable pattern and normal examination between attacks.',TEAL),(5.25,'SECONDARY','Headache caused by another disorder. Look for red flags and investigate when indicated.',CORAL)]: rect(s,.72,y,5.4,1.18,PALE,True); rect(s,.72,y,.12,1.18,col);text(s,1.05,y+.22,1.6,.25,head,13,col,True);text(s,1.05,y+.55,4.65,.42,body,14,INK) rect(s,7.0,1.45,5.35,4.95,AQUA,True);text(s,7.5,1.88,4.4,.35,'THE ASSESSMENT SEQUENCE',14,TEAL,True,PP_ALIGN.CENTER) for i,(n,a) in enumerate([('1','History'),('2','Examination'),('3','Red flags'),('4','Targeted tests')]): y=2.55+i*.82;rect(s,7.55,y,.48,.48,TEAL,True);text(s,7.55,y+.1,.48,.20,n,12,WHITE,True,PP_ALIGN.CENTER);text(s,8.28,y+.08,2.6,.25,a,17,NAVY,True) notes(s,'A careful history and examination are sufficient in many long-standing primary headaches. The goal is to decide whether secondary causes require urgent evaluation.') #3 s=prs.slides.add_slide(blank);title(s,3,'The big three primary headache syndromes','Pattern recognition guides management.') cols=[('MIGRAINE','Pulsating, often unilateral\n4 to 72 h\nNausea and/or light-sound sensitivity',TEAL),('TENSION-TYPE','Pressing or tightening\nUsually bilateral\nMild to moderate, feature-poor',GOLD),('CLUSTER','Severe unilateral orbital pain\n15 to 180 min\nAutonomic signs, restless behavior',CORAL)] for i,(h,b,c) in enumerate(cols): x=.72+i*4.18;rect(s,x,1.65,3.75,4.65,PALE,True);rect(s,x,1.65,3.75,.17,c);text(s,x+.28,2.1,3.16,.35,h,17,c,True);text(s,x+.28,2.82,3.15,1.5,b,19,NAVY,True);rect(s,x+.28,5.42,3.12,.04,c);text(s,x+.28,5.65,3.1,.35,'Ask about attack duration, associated features, and pattern over time.',11,MUTED) notes(s,'Use these as high-yield pattern anchors. Cluster headache is a trigeminal autonomic cephalalgia and often has tearing, conjunctival injection, rhinorrhea, or ptosis on the painful side.') #4 s=prs.slides.add_slide(blank);title(s,4,'Migraine: a sensory neurologic disorder','A headache diagnosis that is more than pain.') text(s,.75,1.48,5.25,.58,'Typical attack features',20,TEAL,True);bullet(s,.78,2.12,5.2,['Attacks lasting 4 to 72 hours','Unilateral or bilateral, often throbbing','Worse with routine activity','Nausea, vomiting, photophobia, phonophobia'],18,INK,.57) rect(s,.72,4.75,5.6,1.16,AQUA,True);text(s,1.0,5.0,5.05,.55,'Aura can precede pain, but many people have migraine without aura.',16,NAVY,True) rect(s,6.75,1.42,5.8,4.85,RGBColor(239,245,248),True);s.shapes.add_picture(IMG,Inches(7.12),Inches(1.75),width=Inches(5.1),height=Inches(4.23));text(s,7.1,6.2,5.2,.25,'Trigeminovascular pathways contribute to migraine pain.',10,MUTED,False,PP_ALIGN.CENTER) notes(s,'Migraine involves trigeminovascular pain signaling and brainstem modulation. The graphic is from Harrison’s Principles of Internal Medicine, 22e, Figure 441-1, p. 3508.') #5 s=prs.slides.add_slide(blank);title(s,5,'Red flags: when to think secondary','SNOOP-style warning signs should change the urgency of evaluation.') flags=[('S','SYSTEMIC','Fever, weight loss, cancer, immunosuppression'),('N','NEUROLOGIC','New deficit, confusion, seizure, papilledema'),('O','ONSET','Thunderclap or abrupt “worst-ever” headache'),('O','OLDER / NEW','New onset after age 50 or new pattern'),('P','PATTERN','Progressive, positional, exertional, pregnancy-related')] for i,(l,h,b) in enumerate(flags): y=1.48+i*.96;rect(s,.75,y,.62,.62,CORAL,True);text(s,.75,y+.14,.62,.22,l,17,WHITE,True,PP_ALIGN.CENTER);text(s,1.65,y+.02,2.1,.22,h,14,NAVY,True);text(s,3.95,y+.02,7.7,.34,b,15,INK) rect(s,.75,6.42,11.45,.4,RGBColor(255,235,232),True);text(s,1.0,6.51,11,.17,'Emergency assessment is needed for sudden severe headache, neurologic deficits, impaired consciousness, meningism, or concerning systemic illness.',10,CORAL,True,PP_ALIGN.CENTER) notes(s,'Warning flags from Bradley and Daroff include abrupt onset, new or worsening pattern, exertional or Valsalva trigger, pregnancy/puerperium, age over 50, neurologic signs, papilledema, and systemic or immunocompromising conditions. Bradley and Daroff’s Neurology in Clinical Practice, Box 20.3, p. 343.') #6 s=prs.slides.add_slide(blank);title(s,6,'Focused clinical assessment','A purposeful history and examination are high value.') left=[('HISTORY','Onset and time to peak; duration; location and quality; associated symptoms; triggers; prior episodes; medication use.'),('EXAMINATION','Vital signs, mental status, full neurologic examination, neck stiffness, fundoscopy when possible, and temporal artery or cervical findings.')] for i,(h,b) in enumerate(left): y=1.55+i*2.15;rect(s,.75,y,5.55,1.65,PALE,True);text(s,1.05,y+.3,1.75,.25,h,14,TEAL,True);text(s,1.05,y+.73,4.85,.55,b,15,INK) rect(s,7.0,1.55,5.35,4.75,NAVY,True);text(s,7.5,1.98,4.4,.32,'MEDICATION HISTORY',17,RGBColor(105,219,214),True);text(s,7.5,2.58,4.28,.9,'Ask specifically about acute medicines, frequency of use, caffeine-containing products, and response to prior therapy.',20,WHITE,True) rect(s,7.5,4.1,4.25,1.34,RGBColor(24,63,91),True);text(s,7.8,4.43,3.65,.55,'Frequent use of acute treatments can perpetuate medication-overuse headache.',15,RGBColor(218,235,244),True,PP_ALIGN.CENTER) notes(s,'The diagnostic work-up begins with history and examination. Record all medicines and supplements. Caffeine-containing substances may aggravate headache through rebound withdrawal. Bradley and Daroff’s Neurology in Clinical Practice, p. 342.') #7 s=prs.slides.add_slide(blank);title(s,7,'Investigations: targeted, not routine','Testing follows risk, examination, and the suspected secondary cause.') steps=[('1','No red flags + typical recurrent syndrome','Usually clinical diagnosis and management.'),( '2','Red flag or atypical examination','Urgent neuroimaging and/or other targeted testing may be appropriate.'),('3','Suspected infection, hemorrhage, pressure disorder, or vascular cause','Match tests to the differential and local emergency pathway.')] for i,(n,h,b) in enumerate(steps): y=1.55+i*1.55;rect(s,.85,y,.65,.65,TEAL,True);text(s,.85,y+.14,.65,.22,n,16,WHITE,True,PP_ALIGN.CENTER);text(s,1.78,y+.02,8.8,.28,h,17,NAVY,True);text(s,1.78,y+.43,9.25,.34,b,14,MUTED) rect(s,10.5,1.55,1.65,4.85,AQUA,True);text(s,10.74,1.94,1.18,.35,'REMEMBER',13,TEAL,True,PP_ALIGN.CENTER);text(s,10.75,2.58,1.16,2.55,'A normal scan does not replace clinical judgment.',18,NAVY,True,PP_ALIGN.CENTER) notes(s,'Most primary headaches can be diagnosed with high certainty from history and examination. Red flags prompt consideration of CT, MRI, lumbar puncture, laboratory testing, or vascular studies according to the scenario. Bradley and Daroff’s Neurology in Clinical Practice, p. 343.') #8 s=prs.slides.add_slide(blank);title(s,8,'Management principles','Treat the attack, reduce disability, and prevent recurrence.') items=[('ACUTE ATTACK','Early treatment with appropriate analgesic or migraine-specific therapy when indicated; add antiemetic treatment when needed.'),( 'PREVENTION','Consider when attacks are frequent, disabling, prolonged, or acute therapy is ineffective or overused.'),( 'SELF-MANAGEMENT','Regular sleep, meals, hydration, exercise, trigger awareness, and a headache diary can improve control.'),( 'SAFETY','Avoid repeated self-treatment without review. Reassess diagnosis when the pattern changes.')] for i,(h,b) in enumerate(items): x=.73+(i%2)*6.0;y=1.52+(i//2)*2.35;rect(s,x,y,5.55,1.8,PALE,True);rect(s,x,y,5.55,.12,TEAL if i<2 else GOLD);text(s,x+.3,y+.34,4.75,.25,h,14,NAVY,True);text(s,x+.3,y+.77,4.85,.64,b,14,INK) notes(s,'Management should be individualized by syndrome, attack frequency, comorbidities, pregnancy status, contraindications, and medication overuse risk. For migraine, lifestyle adjustments and medication can modify and control disease, although it may not be eradicated. Harrison’s Principles of Internal Medicine, 22e, p. 3508.') #9 s=prs.slides.add_slide(blank);title(s,9,'Practical take-home algorithm','Safety first. Pattern second. Plan third.') blocks=[('1. TRIAGE','Look for sudden onset, neurologic change, systemic illness, pregnancy-related or other red flags.',CORAL),('2. CLASSIFY','Use duration, quality, associated features, and recurrence pattern to identify a primary syndrome.',TEAL),('3. ACT','Treat appropriately, give return precautions, and plan prevention or follow-up when disability is significant.',GOLD)] for i,(h,b,c) in enumerate(blocks): x=.78+i*4.16;rect(s,x,1.85,3.55,3.55,PALE,True);rect(s,x,1.85,3.55,.16,c);text(s,x+.28,2.28,2.9,.45,h,20,c,True);text(s,x+.28,3.15,2.95,1.26,b,17,NAVY,True) if i<2:text(s,x+3.55,3.25,.55,.5,'→',28,TEAL,True,PP_ALIGN.CENTER) rect(s,.78,6.05,11.85,.56,NAVY,True);text(s,1.0,6.21,11.4,.2,'A new or changing headache deserves a fresh assessment, even in someone with established migraine.',13,WHITE,True,PP_ALIGN.CENTER) notes(s,'Close with the simple workflow. Stress that a diagnosis of migraine does not protect a patient from a separate secondary headache condition later.') #10 s=prs.slides.add_slide(blank);title(s,10,'Key references and learning points','Use local clinical pathways for real-world decisions.') text(s,.76,1.48,4.8,.3,'KEY LEARNING POINTS',15,TEAL,True);bullet(s,.78,1.98,5.35,['Most recurrent headaches are primary syndromes.','Red flags require a secondary-cause mindset.','History and examination guide targeted testing.','Management includes acute care, prevention, and medication-overuse awareness.'],16,INK,.55) rect(s,6.55,1.42,5.82,4.92,PALE,True);text(s,6.9,1.78,5.0,.26,'SOURCES',15,TEAL,True) refs=['Bradley and Daroff’s Neurology in Clinical Practice. Headache evaluation and warning flags, Box 20.3, p. 343.','Harrison’s Principles of Internal Medicine, 22e (2025). Migraine Headache, pp. 3508-3509.','International Classification of Headache Disorders, 3rd edition (ICHD-3).','International Headache Society global practice recommendations for acute pharmacological treatment of migraine (2024), PMID 39133176.'] for i,r in enumerate(refs):text(s,6.92,2.3+i*.78,4.85,.58,'• '+r,12,INK) text(s,.78,6.45,11.5,.22,'For educational use only. Escalate acute or unusual headache presentations through appropriate local emergency and specialty pathways.',10,MUTED,False,PP_ALIGN.CENTER) notes(s,'References are provided for further learning. Include a final reminder that this deck does not replace local care pathways or individual clinical assessment.') # standard notes baseline and save for sl in prs.slides: try: # keep pre-entered notes pass except: pass prs.save(OUT) print(OUT) PY python - <<'PY' from pptx import Presentation p='/tmp/workspace/headache-presentation/output/Headache_Evaluation_and_Management.pptx' prs=Presentation(p) print('slides:',len(prs.slides),'size:',prs.slide_width,prs.slide_height) for i,s in enumerate(prs.slides,1): t=' | '.join(sh.text.replace('\n',' / ')[:80] for sh in s.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()) print(i,t[:150]) PY

Running Command

python - <<'PY' from pptx import Presentation from pathlib import Path p=Path('/tmp/workspace/headache-presentation/output/Headache_Evaluation_and_Management.pptx') prs=Presentation(p) assert p.exists() and p.stat().st_size > 100000 assert len(prs.slides)==10 for i,slide in enumerate(prs.slides,1): text=' '.join(shape.text for shape in slide.shapes if getattr(shape,'has_text_frame',False)) assert text.strip(), f'empty slide {i}' for shape in slide.shapes: if hasattr(shape,'left'): assert shape.left >= 0 and shape.top >= 0, f'negative geometry s{i}' assert shape.left+shape.width <= prs.slide_width+1, f'overflow x s{i}' assert shape.top+shape.height <= prs.slide_height+1, f'overflow y s{i}' print('Verified:', p.name, 'slides=',len(prs.slides),'bytes=',p.stat().st_size) PY unzip -t "/tmp/workspace/headache-presentation/output/Headache_Evaluation_and_Management.pptx" | tail -1

Created a 10-slide educational PowerPoint on headache covering:
  • Primary versus secondary headache
  • Migraine, tension-type, and cluster headache patterns
  • Red flags and urgent assessment
  • Focused clinical evaluation
  • Targeted investigations
  • Management principles and references
This is a shared conversation. Sign in to Orris to start your own chat.