Make a presentation on inflammation management in attractive form
inflammation management general clinical guidance NSAIDs corticosteroids infection source control NICE
inflammation treatment
acute inflammation diagram vascular cellular phases neutrophils macrophages
~/
mkdir -p "/tmp/workspace/inflammation-management-presentation/src" "/tmp/workspace/inflammation-management-presentation/output" && python - <<'PY' from PIL import Image, ImageDraw, ImageFilter from pathlib import Path import math, random out=Path('/tmp/workspace/inflammation-management-presentation/assets') out.mkdir(exist_ok=True) # Create an abstract biologic background visual W,H=1600,900 im=Image.new('RGBA',(W,H),(8,23,40,255)) d=ImageDraw.Draw(im,'RGBA') # soft glows for cx,cy,r,col in [(310,330,290,(14,165,178,80)),(1200,260,350,(71,114,250,70)),(1120,720,240,(251,146,60,62)),(450,730,220,(16,185,129,55))]: layer=Image.new('RGBA',(W,H),(0,0,0,0)); ld=ImageDraw.Draw(layer,'RGBA') for rad in range(r,0,-10): a=int(col[3]*(1-rad/r)**2*0.08) ld.ellipse((cx-rad,cy-rad,cx+rad,cy+rad),fill=(col[0],col[1],col[2],a)) im=Image.alpha_composite(im,layer) d=ImageDraw.Draw(im,'RGBA') random.seed(3) for _ in range(55): x=random.randint(0,W);y=random.randint(0,H);r=random.randint(5,22) c=random.choice([(20,184,166,55),(99,102,241,45),(251,146,60,40),(255,255,255,28)]) d.ellipse((x-r,y-r,x+r,y+r),outline=c,width=2) for _ in range(28): x=random.randint(0,W);y=random.randint(0,H);x2=x+random.randint(-100,100);y2=y+random.randint(-100,100) d.line((x,y,x2,y2),fill=(120,210,230,35),width=2) im.save(out/'abstract_inflammation.png') PY
.../src/create_presentation.py
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.dml.color import RGBColor
from pptx.enum.dml import MSO_THEME_COLOR
from pathlib import Path
OUT = Path('/tmp/workspace/inflammation-management-presentation/output/Inflammation_Management_Clinical_Overview.pptx')
ASSET = '/tmp/workspace/inflammation-management-presentation/assets/abstract_inflammation.png'
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]
# Palette
NAVY = '081A2D'; INK = '14283B'; MUTED = '557186'; TEAL = '0EA5A4'; MINT = 'DDF7F1'; BLUE = '4169E1'; SKY = 'E6F0FF'; ORANGE = 'F59E0B'; PEACH = 'FFF1D9'; RED = 'E45B5B'; ROSE = 'FFE7E7'; WHITE='FFFFFF'; PALE='F6F9FC'; LINE='D9E5EE'; GREEN='1B9C68'; LIGHTGREEN='E5F6EE'
def rgb(h):
h=h.lstrip('#'); return RGBColor(int(h[:2],16),int(h[2:4],16),int(h[4:],16))
def fill(shape, c):
shape.fill.solid(); shape.fill.fore_color.rgb=rgb(c); shape.line.fill.background()
def text(slide, x,y,w,h,s,size=18,color=INK,bold=False,font='Aptos',align=PP_ALIGN.LEFT, valign=MSO_ANCHOR.TOP):
tb=slide.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;tf.vertical_anchor=valign
p=tf.paragraphs[0];p.alignment=align;p.space_after=Pt(0)
r=p.add_run();r.text=s;r.font.name=font;r.font.size=Pt(size);r.font.bold=bold;r.font.color.rgb=rgb(color)
return tb
def rect(slide,x,y,w,h,c,rad=True):
s=slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if rad else MSO_SHAPE.RECTANGLE, Inches(x),Inches(y),Inches(w),Inches(h));fill(s,c);return s
def line(slide,x1,y1,x2,y2,c=LINE,width=1.2):
l=slide.shapes.add_connector(MSO_CONNECTOR.STRAIGHT, Inches(x1),Inches(y1),Inches(x2),Inches(y2));l.line.color.rgb=rgb(c);l.line.width=Pt(width);return l
def title(slide,kicker,heading,sub=None):
text(slide,.65,.38,12,.28,kicker.upper(),10,TEAL,True)
text(slide,.65,.74,12,0.57,heading,29,INK,True)
if sub: text(slide,.65,1.37,12,.37,sub,12,MUTED)
line(slide,.65,1.83,12.68,1.83,LINE,1)
def pill(slide,x,y,w,label,c=SKY,tc=BLUE):
r=rect(slide,x,y,w,.34,c);text(slide,x+.13,y+.07,w-.26,.17,label,9,tc,True,align=PP_ALIGN.CENTER)
def card(slide,x,y,w,h,accent,head,body,icon=None):
rect(slide,x,y,w,h,WHITE); rect(slide,x,y,.10,h,accent,False)
if icon: text(slide,x+.28,y+.26,.4,.35,icon,18,accent,True)
text(slide,x+.30+(0.42 if icon else 0),y+.25,w-.55-(0.42 if icon else 0),.3,head,15,INK,True)
text(slide,x+.30,y+.75,w-.55,h-.92,body,11.5,MUTED)
def footer(slide,n):
text(slide,.65,7.12,8,.16,'INFLAMMATION MANAGEMENT | CLINICAL OVERVIEW',7,MUTED,True)
text(slide,12.2,7.10,.45,.18,f'{n:02}',8,TEAL,True,align=PP_ALIGN.RIGHT)
# 1 cover
s=prs.slides.add_slide(blank); rect(s,0,0,13.333,7.5,NAVY,False);s.shapes.add_picture(ASSET,0,0,width=Inches(13.333),height=Inches(7.5))
rect(s,.68,.72,1.56,.35,TEAL);text(s,.82,.80,1.27,.14,'CLINICAL OVERVIEW',8,WHITE,True,align=PP_ALIGN.CENTER)
text(s,.75,1.55,7.8,1.2,'Inflammation\nManagement',38,WHITE,True)
text(s,.78,3.35,6.2,.65,'A cause-first framework for assessment, safe symptom control, monitoring, and escalation.',17,'D5E9F0')
line(s,.78,4.35,6.6,4.35,'72B8C2',1.2)
text(s,.78,4.62,5.7,.3,'For clinicians and health-professions learners',11,'9CCBD2')
# side graphic
for x,y,r,c in [(9.3,1.2,1.25,TEAL),(10.75,2.2,.72,ORANGE),(9.95,3.5,.92,BLUE),(11.3,4.35,.48,'6EE7B7')]:
shp=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x),Inches(y),Inches(r),Inches(r));fill(shp,c)
text(s,8.82,5.35,3.85,.45,'ASSESS • TARGET • MONITOR',12,WHITE,True,align=PP_ALIGN.CENTER)
# 2 principles
s=prs.slides.add_slide(blank); title(s,'01 | Foundational principle','Treat the cause, not only the inflammation','Inflammation is a protective response. Management depends on whether it is driven by infection, injury, crystals, immune disease, ischemia, or another process.')
steps=[('1','Recognize','Confirm that the presentation is inflammatory and assess severity.'),('2','Classify','Separate infectious, traumatic, crystal, immune-mediated, and other causes.'),('3','Target','Use cause-directed therapy plus proportional symptom control.'),('4','Reassess','Check response, toxicity, complications, and the need to escalate.')]
for i,(num,h,b) in enumerate(steps):
x=.75+i*3.12
rect(s,x,2.45,2.65,2.72,WHITE); circ=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x+.25),Inches(2.7),Inches(.47),Inches(.47));fill(circ,[TEAL,BLUE,ORANGE,GREEN][i]);text(s,x+.25,2.82,.47,.15,num,10,WHITE,True,align=PP_ALIGN.CENTER)
text(s,x+.25,3.4,2.1,.28,h,17,INK,True);text(s,x+.25,3.93,2.12,.77,b,11.5,MUTED)
if i<3: line(s,x+2.7,3.76,x+3.02,3.76,TEAL,2)
rect(s,.75,5.65,11.85,.63,MINT);text(s,1.0,5.84,11.35,.2,'Practical rule: do not use anti-inflammatory therapy as a substitute for evaluating a possible infection or other time-sensitive diagnosis.',12,INK,True)
footer(s,2)
# 3 triage
s=prs.slides.add_slide(blank);title(s,'02 | First decision','Triage before treatment','Severity, physiology, and site determine how quickly management must move.')
card(s,.75,2.2,3.75,2.5,RED,'Red flags','Toxic appearance; hypotension or altered mental state; rapidly progressive pain/swelling; threatened limb or organ; immunocompromise; concern for sepsis, septic arthritis, meningitis, or deep-space infection.','!')
card(s,4.78,2.2,3.75,2.5,ORANGE,'Focused assessment','Onset and trigger, fever or systemic symptoms, drug history, comorbidities, examination of the affected system, and targeted laboratory or imaging tests.','?')
card(s,8.81,2.2,3.75,2.5,TEAL,'Immediate actions','Stabilize when needed. Obtain appropriate cultures or samples before antimicrobials only when doing so does not delay urgent treatment. Seek early specialty input for high-risk syndromes.','→')
rect(s,.75,5.25,11.8,.9,NAVY);text(s,1.05,5.47,11.2,.25,'Escalate urgently when inflammation may represent infection, ischemia, compartment syndrome, airway compromise, or organ-threatening immune disease.',14,WHITE,True,align=PP_ALIGN.CENTER)
footer(s,3)
# 4 etiology
s=prs.slides.add_slide(blank);title(s,'03 | Diagnostic framing','Match therapy to the driver','The same outward signs can arise from very different mechanisms.')
items=[('Infection','Examples: cellulitis, pneumonia, septic arthritis','Identify focus, sample appropriately, give guideline-directed antimicrobial therapy and source control when indicated.',RED),('Mechanical / injury','Examples: sprain, overuse, post-procedure swelling','Protection, relative rest, rehabilitation, ice where appropriate, and assessment for structural injury.',BLUE),('Crystal / metabolic','Examples: gout, CPPD','Confirm diagnosis where possible. Use appropriate anti-inflammatory management and address recurrence risks.',ORANGE),('Immune-mediated','Examples: inflammatory arthritis, vasculitis, IBD','Measure disease activity, exclude mimics including infection, and use condition-specific specialist-directed therapy.',TEAL)]
for i,(h,e,b,c) in enumerate(items):
y=2.18+i*1.06;rect(s,.78,y,11.78,.84,WHITE);rect(s,.78,y,.14,.84,c,False);text(s,1.12,y+.16,2.15,.22,h,14,INK,True);text(s,3.18,y+.13,2.65,.25,e,10.5,MUTED);text(s,6.25,y+.13,5.85,.42,b,10.5,INK)
footer(s,4)
# 5 nonpharm
s=prs.slides.add_slide(blank);title(s,'04 | Supportive care','Relieve symptoms without losing the diagnosis','Supportive measures often reduce pain and functional limitation while cause-directed treatment takes effect.')
for i,(h,b,c,ic) in enumerate([('Protect & pace','Relative rest during severe symptoms, then restore movement and loading as tolerated.',TEAL,'↔'),('Cold / elevation','May help acute localized pain and swelling when appropriate for the clinical setting.',BLUE,'❄'),('Rehabilitate','Use graded mobility, physiotherapy, and function-focused goals after the acute phase.',ORANGE,'↑'),('Communicate','Explain expected course, safety-net symptoms, medicine risks, and follow-up plan.',GREEN,'✓')]):
x=.78+(i%2)*6.03;y=2.2+(i//2)*1.85
rect(s,x,y,5.68,1.48,WHITE);sh=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x+.32),Inches(y+.34),Inches(.56),Inches(.56));fill(sh,c);text(s,x+.32,y+.47,.56,.14,ic,12,WHITE,True,align=PP_ALIGN.CENTER);text(s,x+1.12,y+.31,3.9,.26,h,15,INK,True);text(s,x+1.12,y+.78,4.1,.42,b,11,MUTED)
rect(s,.78,6.12,11.68,.45,PALE);text(s,1.0,6.25,11.2,.16,'Avoid prolonged immobilization unless it is required for protection or stabilization.',10.5,MUTED,True)
footer(s,5)
# 6 medicines
s=prs.slides.add_slide(blank);title(s,'05 | Pharmacologic options','Use the lowest-risk effective strategy','Choice is condition-specific and must account for comorbidity, interactions, organ function, pregnancy status, and diagnostic uncertainty.')
cols=[('NSAIDs','Can provide analgesic and anti-inflammatory effects in suitable patients.','Screen for gastrointestinal, renal, cardiovascular, bleeding, and interaction risks.',BLUE),('Corticosteroids','Useful for selected inflammatory conditions, often when rapid suppression is needed.','Exclude or manage infection appropriately. Consider glucose, mood, bone, blood pressure, and infection risks.',ORANGE),('Targeted therapies','Colchicine, DMARDs, biologics, and other agents are used in defined diagnoses.','Require condition-specific indications, monitoring, and often specialist oversight.',TEAL)]
for i,(h,b,c,c2) in enumerate(cols):
x=.78+i*4.0;rect(s,x,2.25,3.63,3.08,WHITE);rect(s,x,2.25,3.63,.12,c2,False);text(s,x+.3,2.65,2.9,.29,h,17,INK,True);text(s,x+.3,3.25,2.98,.7,b,11.25,MUTED);rect(s,x+.3,4.34,2.98,.57,{'BLUE':SKY,'ORANGE':PEACH,'TEAL':MINT}[c2]);text(s,x+.45,4.48,2.7,.18,'SAFETY: '+c,9.2,c2,True,align=PP_ALIGN.CENTER)
rect(s,.78,5.84,11.62,.58,ROSE);text(s,1.0,6.03,11.15,.18,'Do not provide a generic drug dose for “inflammation.” Dosing and route must follow the confirmed diagnosis, local protocols, and individual patient factors.',10.8,RED,True,align=PP_ALIGN.CENTER)
footer(s,6)
# 7 monitoring
s=prs.slides.add_slide(blank);title(s,'06 | Monitoring loop','Measure response and detect harm early','A treatment plan is incomplete without explicit reassessment criteria.')
for i,(h,b,c) in enumerate([('Clinical response','Pain, swelling, temperature, function, vital signs, and overall trajectory.',TEAL),('Objective markers','Targeted labs, cultures, imaging, or disease-activity measures when they change decisions.',BLUE),('Adverse effects','Drug-specific toxicity, interactions, renal/hepatic function, glucose, blood pressure, and infection signs.',ORANGE),('Plan revision','De-escalate, stop, switch, investigate further, or refer when the response is inadequate.',GREEN)]):
x=.85+i*3.02;sh=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x+.78),Inches(2.25),Inches(1.1),Inches(1.1));fill(sh,c);text(s,x+.78,2.64,1.1,.22,str(i+1),18,WHITE,True,align=PP_ALIGN.CENTER);text(s,x,3.68,2.67,.27,h,14,INK,True,align=PP_ALIGN.CENTER);text(s,x,4.15,2.67,.68,b,10.5,MUTED,align=PP_ALIGN.CENTER)
if i<3: line(s,x+1.91,2.8,x+3.0,2.8,LINE,2)
rect(s,.85,5.62,11.55,.64,NAVY);text(s,1.05,5.85,11.1,.2,'A worsening trajectory or failure to improve as expected should trigger diagnostic reconsideration, not automatic treatment intensification.',12,WHITE,True,align=PP_ALIGN.CENTER)
footer(s,7)
# 8 algorithm
s=prs.slides.add_slide(blank);title(s,'07 | At-a-glance workflow','A practical management algorithm','Use local pathways and condition-specific guidelines alongside this general approach.')
steps=[('Presentation','Inflammatory symptoms or signs'),('Screen','Red flags / unstable physiology?'),('Define driver','Infection, injury, crystal, immune, other'),('Treat','Cause-directed + supportive care'),('Review','Response, toxicity, complications')]
for i,(h,b) in enumerate(steps):
x=.72+i*2.5;rect(s,x,2.55,2.1,1.42,WHITE);text(s,x+.18,2.8,1.74,.24,h,13,INK,True,align=PP_ALIGN.CENTER);text(s,x+.18,3.2,1.74,.38,b,10.2,MUTED,align=PP_ALIGN.CENTER)
if i<4: line(s,x+2.1,3.26,x+2.48,3.26,TEAL,2.5)
text(s,.72,4.65,2.1,.25,'If unstable / red flags',11,RED,True,align=PP_ALIGN.CENTER);line(s,1.77,4.3,1.77,5.05,RED,2);rect(s,.72,5.1,2.1,.58,ROSE);text(s,.86,5.29,1.82,.15,'Urgent escalation',10.5,RED,True,align=PP_ALIGN.CENTER)
text(s,3.2,4.65,8.9,.25,'If infection remains plausible: prioritize timely diagnostic sampling, guideline-directed treatment, and source control when indicated.',12,INK,True)
footer(s,8)
# 9 takeaways and references
s=prs.slides.add_slide(blank);title(s,'08 | Key takeaways','Four messages to carry into practice')
for i,t in enumerate(['Inflammation is a sign, not a diagnosis.','Triage and exclude time-sensitive causes first.','Select therapy based on the driver and the patient’s risk profile.','Reassess the trajectory and revise the plan when response is not as expected.']):
y=2.15+i*.68;sh=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(.85),Inches(y),Inches(.34),Inches(.34));fill(sh,TEAL);text(s,.85,y+.1,.34,.12,str(i+1),8,WHITE,True,align=PP_ALIGN.CENTER);text(s,1.38,y+.02,9.6,.27,t,15,INK,True)
rect(s,.78,5.35,11.7,1.1,PALE);text(s,1.02,5.57,2.0,.16,'Selected sources',9,TEAL,True)
text(s,1.02,5.82,11.1,.5,"Rheumatology, 2-Volume Set (2022), pp. 195.7-195.8: acute gout treatment objectives and anti-inflammatory options.\nHarrison’s Principles of Internal Medicine, 22e (2025): corticosteroids can increase infection risk and reduce visible signs of infection.\nNICE CKS: oral corticosteroid management. Local antimicrobial, sepsis, and specialty protocols should guide acute care.",8.3,MUTED)
text(s,.8,6.78,11.7,.2,'Educational presentation only. It does not replace patient-specific assessment, local protocols, or specialist advice.',9.2,RED,True,align=PP_ALIGN.CENTER)
footer(s,9)
# slide backgrounds
for sl in prs.slides[1:]:
bg=sl.background.fill;bg.solid();bg.fore_color.rgb=rgb(PALE)
prs.save(OUT)
print(OUT)
python "/tmp/workspace/inflammation-management-presentation/src/create_presentation.py" && python - <<'PY' from pptx import Presentation p='/tmp/workspace/inflammation-management-presentation/output/Inflammation_Management_Clinical_Overview.pptx' prs=Presentation(p) print('slides:',len(prs.slides)) for i,s in enumerate(prs.slides,1): texts=[] for sh in s.shapes: if getattr(sh,'has_text_frame',False) and sh.text.strip(): texts.append(sh.text.replace('\n',' / ')[:110]) print(i, len(s.shapes), ' | '.join(texts[:3])) PY
.../src/create_presentation.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/inflammation-management-presentation/src/create_presentation.py'
python "/tmp/workspace/inflammation-management-presentation/src/create_presentation.py" && python - <<'PY' from pptx import Presentation p='/tmp/workspace/inflammation-management-presentation/output/Inflammation_Management_Clinical_Overview.pptx' prs=Presentation(p) print('slides:',len(prs.slides)) for i,s in enumerate(prs.slides,1): texts=[] for sh in s.shapes: if getattr(sh,'has_text_frame',False) and sh.text.strip(): texts.append(sh.text.replace('\n',' / ')[:90]) print(i, len(s.shapes), ' | '.join(texts[:2])) PY
.../src/create_presentation.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/inflammation-management-presentation/src/create_presentation.py'
python "/tmp/workspace/inflammation-management-presentation/src/create_presentation.py" && python - <<'PY' from pptx import Presentation from pathlib import Path p=Path('/tmp/workspace/inflammation-management-presentation/output/Inflammation_Management_Clinical_Overview.pptx') prs=Presentation(str(p)) assert len(prs.slides)==9 print(f'file={p.name}, bytes={p.stat().st_size}, slides={len(prs.slides)}') for i,s in enumerate(prs.slides,1): texts=[sh.text.replace('\n',' / ') for sh in s.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()] print(f'{i}: {texts[0] if texts else "<no text>"}') PY
Inflammation Management Clinical Overview
Presentation · PPTX
Add recent clinical guidelines and references
2024 2025 clinical practice guideline anti-inflammatory management NSAID corticosteroid infection sepsis guideline
anti-inflammatory treatment guideline
sepsis guideline
~/
site:nice.org.uk guidance NSAID 2024 2025 gout inflammatory arthritis corticosteroids guideline
2024 EULAR clinical practice guideline inflammatory arthritis glucocorticoids NSAIDs recommendations
https://gut.bmj.com/content/74/Suppl_2/s1
PMID: 40824313
PMID: 42476581
PMID: 40025935
~/inflammation-management-presentation/
https://www.nice.org.uk/guidance/ng100/chapter/recommendatio…
.../src/create_presentation.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/inflammation-management-presentation/src/create_presentation.py'
python "/tmp/workspace/inflammation-management-presentation/src/create_presentation.py" && python - <<'PY' from pptx import Presentation from pathlib import Path p=Path('/tmp/workspace/inflammation-management-presentation/output/Inflammation_Management_Clinical_Overview.pptx') prs=Presentation(str(p)) assert len(prs.slides)==11, len(prs.slides) for i,s in enumerate(prs.slides,1): texts=[sh.text.replace('\n',' / ') for sh in s.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()] print(f'{i:02d}: {texts[0] if texts else "<no text>"}') print(f'OK: {p} ({p.stat().st_size} bytes)') PY
Make this ppt more attractive and give some more information about the post operative care and edit the ppt which I uploaded