Management, prevention and lifestyle modification of osteoarthritis and gout

Reading File
Now let me search the medical library and PubMed in parallel for both conditions.
Finding Sources
Finding Sources
Searching PubMed

"osteoarthritis"[MeSH Terms] AND "management"[MeSH Terms]

Searching PubMed

"gout"[MeSH Terms] AND "management"[MeSH Terms]

Finding Sources
Reading File
Reading File
Searching PubMed

"osteoarthritis" AND "exercise" OR "lifestyle"

Searching PubMed

"gout" AND "urate lowering" OR "lifestyle"

Reading File
Reading File
Reading File
Finding Sources
Reading File
Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Finding Sources
Reading File
Reading File
Reading File
Finding Sources
Reading File
I now have comprehensive information from multiple authoritative textbooks. Let me compile the full response.
Loading Image
Loading Image
Here is a detailed, evidence-based overview of the management, prevention, and lifestyle modification of both conditions.

Osteoarthritis (OA): Management, Prevention & Lifestyle Modification

Overview of the Management Framework

OA management is multimodal. All guidelines agree on a core framework that places education and exercise at the center, with pharmacologic and surgical options added as needed:
Overview of OA management - Firestein & Kelley's Textbook of Rheumatology
Core concepts of education, exercise, and weight management run throughout the course of OA. Pharmacologic interventions (topical, intra-articular, or oral) and surgery are added as the disease progresses. - Firestein & Kelley's Textbook of Rheumatology

1. Non-Pharmacologic Interventions (Core - Recommended for ALL Patients)

Patient Education & Self-Management

  • All clinical guidelines strongly recommend patient education as a core, non-negotiable intervention.
  • Patients should be counseled about the disease, self-management strategies, and directed to reliable sources (CDC, Arthritis Foundation, Osteoarthritis Action Alliance).
  • Language used matters: avoid fatalistic/biomedical language; use health-focused, de-stigmatizing communication to encourage active participation.
  • Self-management programs show moderate benefits for chronic musculoskeletal pain. - Firestein & Kelley's Textbook of Rheumatology

Weight Management

  • Obesity is both a risk factor and a consequence of lower-extremity OA - it increases mechanical loading and contributes via low-grade systemic inflammation from adipose tissue.
  • The 2019 ACR OA guidelines strongly recommend weight loss for overweight/obese patients.
  • Strategies combining both diet and exercise are more effective than diet alone (preserves lean mass, prevents sarcopenia).
  • Ideally delivered as a team approach: nutritional counseling + exercise program + behavioral strategies.
  • Significant dose-response relationship exists: weight loss of 20% or more provides the greatest benefit; even modest loss helps.
  • Bariatric surgery is an option for select patients. - Firestein & Kelley's Textbook of Rheumatology

Physical Activity & Exercise

The 2019 ACR OA guidelines strongly recommend exercise and physical activity. Key points:
  • No single exercise type is superior; tailor to patient preference, ability, and comorbidities.
  • Referral to physical therapy should be part of the core treatment plan.
  • Benefits are sustained only with long-term adherence - use goal-setting, self-monitoring (logs/apps), and social support.
Four main exercise categories:
TypeDetails
Strength trainingHigh-resistance, low-repetition with progressive increase; targets muscle groups around affected joint (e.g., knee extensors/flexors, hip abductors, calf muscles for knee OA)
Aerobic exerciseLow-impact, high-repetition (walking, cycling); can be land-based or aquatic (hydrotherapy)
Range-of-motion / FlexibilityMaintains joint mobility; should always be included but is insufficient alone
Neuromuscular trainingImproves movement control; especially useful as patients with OA show altered movement patterns
Strategies to promote adherence include: setting short- and long-term goals together, providing written materials and apps, supervised sessions, exercise buddies, and community programs. - Firestein & Kelley's Textbook of Rheumatology

AAOS Evidence-Based Recommendations for Knee OA (Non-Arthroplasty)

GradeInterventionRecommendation
Strong (4-star)Patient education, exercise (supervised/unsupervised/aquatic), self-management programsRecommended
Strong (4-star)Topical NSAIDs, oral NSAIDs, oral acetaminophenRecommended
Strong (4-star)Oral narcotics (including tramadol)Not recommended
Moderate (3-star)Canes, braces, neuromuscular training, sustained weight lossRecommended
Moderate (3-star)Intra-articular corticosteroids (short-term)Recommended
Moderate (3-star)Hyaluronic acid injections, arthroscopy with lavage/debridementNot recommended
Limited (2-star)Glucosamine, chondroitin, PRP, acupuncture, TENS, shockwave therapyMay be used selectively
- Miller's Review of Orthopaedics, 9th Edition

2. Pharmacologic Management

Topical Agents (preferred first - lowest systemic exposure)

  • Topical NSAIDs (e.g., diclofenac gel): Strongly recommended, especially for hand and knee OA; same efficacy as oral with fewer GI/CV side effects.
  • Capsaicin cream: Useful adjunct for hand/knee OA.

Oral Analgesics

  • Acetaminophen (paracetamol): First-line oral analgesic; modest benefit for pain.
  • NSAIDs (e.g., ibuprofen, naproxen, celecoxib): More effective than acetaminophen; use at lowest effective dose for shortest duration; consider GI protection (PPI) in high-risk patients.
  • Duloxetine: Useful for central sensitization and widespread pain component; particularly in knee OA.
  • Opioids (including tramadol): AAOS strongly recommends against use due to poor efficacy-to-risk ratio.

Intra-Articular Injections

  • Corticosteroids (e.g., triamcinolone): Moderate recommendation for short-term relief; effective for acute flares; repeated injections may cause cartilage damage.
  • Hyaluronic acid: No longer recommended by AAOS; some other guidelines allow selective use.
  • PRP (Platelet-Rich Plasma): Limited evidence; may improve pain/function selectively.

Surgical Interventions

  • High tibial osteotomy: For properly indicated unicompartmental knee OA.
  • Total joint arthroplasty: After adequate trials of other modalities; provides durable pain relief and functional restoration.
  • Arthroscopy with lavage/debridement: Not recommended for OA-related pathology.
- Miller's Review of Orthopaedics; Firestein & Kelley's Textbook of Rheumatology
A 2023 systematic review in Osteoarthritis & Cartilage of clinical practice guidelines confirms broad consensus on exercise, weight loss, and patient education as first-line recommendations. A 2024 systematic review in J Evid Based Med on knee OA management affirms multimodal approaches centered on these core elements.


Gout: Management, Prevention & Lifestyle Modification

Pathophysiology Summary (relevant to management)

  • Gout results from hyperuricemia - urate crystals (monosodium urate, MSU) deposit in joints, triggering NLRP3 inflammasome activation, IL-1β release, and neutrophil recruitment.
  • 90% of cases are due to impaired renal urate excretion; 10% from overproduction.
  • Risk factors: obesity, Western diet (high purines), alcohol, sedentary lifestyle, diuretics, hypertension, CKD. - Harrison's Principles of Internal Medicine, 22e

1. Acute Gout Flare Treatment

Prompt treatment can abort an attack within hours. First-line options (Table):
DrugDoseNotes/Contraindications
NSAIDs (indomethacin 50 mg TID; naproxen 500 mg BID; ibuprofen 800 mg TID; meloxicam 15 mg daily)Full anti-inflammatory dosesFirst-line; avoid in CKD, peptic ulcer disease, anticoagulation
Colchicine1.2 mg PO, then 0.6 mg 1 hour later (low-dose regimen; equally effective and better tolerated)Most effective within first 36 hours; avoid with carvedilol/grapefruit juice (raises levels); contraindicated in CKD
Intra-articular corticosteroids (triamcinolone/methylprednisolone)40 mg for large joints; 10-20 mg for small jointsMonoarticular attack; rule out septic arthritis first; effective in 90% within 24 hours
Oral corticosteroids (prednisone)40-60 mg daily, taper over 7-10 daysWhen NSAIDs and colchicine contraindicated; caution with uncontrolled diabetes
IL-1 inhibitor (anakinra)100 mg SC daily for 3 daysWhen standard therapy is contraindicated or ineffective; avoid in active infection
- Washington Manual of Medical Therapeutics; Rheumatology 2-Volume Set; Lippincott Illustrated Reviews Pharmacology

Colchicine - Mechanism & Toxicity

The diagram below shows how colchicine interrupts the inflammatory cycle in gout:
Uric acid pathway and mechanism of colchicine - Lippincott Illustrated Reviews Pharmacology
Colchicine blocks neutrophil-mediated release of leukotrienes and inflammatory mediators. Key adverse effects: GI toxicity (diarrhea, nausea) is most common; bone marrow depression, cardiac toxicity, myopathy, and alopecia occur with overdose. - Lippincott Illustrated Reviews Pharmacology

2. Urate-Lowering Therapy (ULT) - Chronic Gout

Indications

  • 2+ acute flares/year
  • Presence of tophi
  • Urate nephropathy or renal calculi
  • First flare with: uric acid >9 mg/dL, nephrolithiasis, or CKD stage ≥3

Serum Urate Targets

  • Without tophi: <6 mg/dL
  • With tophi: <5 mg/dL

Timing

  • Start ULT at least 2 weeks after the flare subsides, with at least 1 week of prophylactic therapy ongoing. Do not stop ULT during an active flare (fluctuations worsen attacks).

Flare Prophylaxis (when starting ULT)

  • Low-dose colchicine is first choice: start 1-2 weeks before ULT initiation; continue for at least 6 months after urate reaches target (longer if tophi present).
  • Alternatives: low-dose NSAIDs or low-dose corticosteroids.

ULT Drug Table

DrugClassDoseKey Points
AllopurinolXanthine oxidase inhibitorStart 100 mg/day (50 mg in CKD stage 4+); titrate by 100 mg every 2-5 weeks to target; max 800 mgFirst-line; screen African Americans and Southeast Asians for HLA-B*5801 before starting (risk of severe cutaneous reaction/allopurinol hypersensitivity syndrome - 25% mortality)
FebuxostatXanthine oxidase inhibitor40-80 mg/day (40 mg ≈ allopurinol 300 mg)Second-line; more expensive; associated with higher cardiovascular event rate; caution with azathioprine/6-MP (inhibits their metabolism - reduce dose 60-75%)
ProbenecidUricosuric500 mg/day, titrate to max 3000 mg/day in divided dosesFirst-choice uricosuric; ineffective in significant renal impairment; avoid if urinary uric acid >800 mg/24 hours (nephrolithiasis risk)
LesinuradUricosuric200 mg/dayUsed in combination with XOI
PegloticaseUricase8 mg IV every 2 weeksRefractory tophaceous gout; recombinant uricase converts urate to allantoin
- Washington Manual of Medical Therapeutics; Rheumatology 2-Volume Set; Lippincott Illustrated Reviews Pharmacology

3. Prevention & Lifestyle Modification in Gout

Lifestyle changes target the modifiable risk factors for hyperuricemia:

Dietary Modifications

Avoid / LimitEncourage
Red meat and organ meats (liver, kidney) - high purine loadLow-fat dairy products (mildly uricosuric effect)
Shellfish (shrimp, lobster, scallops)Vegetables (even high-purine vegetables like spinach do not significantly raise uric acid)
High-fructose corn syrup / sugar-sweetened beveragesAdequate hydration (2-3 L/day to promote urate excretion)
Alcohol (especially beer - highest risk; spirits moderate risk; wine less so)Coffee (associated with lower uric acid levels)
Excessive fructoseCherries / tart cherry juice (small evidence for lowering flare frequency)

Weight Management

  • Obesity is a key risk factor. Gradual, sustained weight loss reduces serum urate and flare frequency.
  • Avoid crash diets (rapid weight loss can precipitate acute flares via ketoacidosis competing with urate for renal excretion).

Medication Review

  • Diuretics (especially thiazides and loop diuretics) raise urate by increasing renal reabsorption - switch to alternatives (e.g., losartan for hypertension, which has mild uricosuric properties) when possible.
  • Low-dose aspirin mildly raises uric acid but should not be stopped if indicated (cardiovascular benefit outweighs gout risk).
  • Cyclosporine, pyrazinamide, and ethambutol also raise uric acid.

Other Lifestyle Factors

  • Increase physical activity (sedentary lifestyle raises risk).
  • Manage comorbidities - hypertension, CKD, metabolic syndrome, and heart failure all worsen urate handling and should be treated optimally.
- Harrison's Principles of Internal Medicine, 22e; Rheumatology 2-Volume Set

Quick Comparison: OA vs. Gout Management Priorities

FeatureOsteoarthritisGout
Primary lifestyle changeWeight loss + exerciseLow-purine diet + reduce alcohol
First-line drug (acute)Topical/oral NSAIDs, acetaminophenNSAIDs, colchicine, corticosteroids
Disease-modifying therapyNone approved (exercise/weight loss are closest)Urate-lowering therapy (allopurinol)
Long-term preventionExercise adherence, weight maintenanceMaintain serum urate <6 mg/dL with ULT
Key "don't"Avoid opioids/tramadolNever stop ULT during a flare
Surgical optionTotal joint arthroplastyRarely needed (tophus debridement)

Sources:
  • Firestein & Kelley's Textbook of Rheumatology (9780323935364)
  • Harrison's Principles of Internal Medicine, 22e (9781265977061)
  • Washington Manual of Medical Therapeutics (9781975190620)
  • Lippincott Illustrated Reviews: Pharmacology (9781975170561)
  • Miller's Review of Orthopaedics, 9th Edition (9780443112140)
  • Rheumatology, 2-Volume Set, 2022, Elsevier (9780702081330)

Make it short and comprehensive

Osteoarthritis & Gout: Management, Prevention & Lifestyle


OSTEOARTHRITIS

Core Principles

All guidelines agree: education + exercise + weight management form the non-negotiable foundation. Pharmacologic and surgical options are layered on top.

Lifestyle & Prevention

  • Weight loss - strongest modifiable factor; ≥20% loss gives greatest benefit; combine diet + exercise (not diet alone)
  • Exercise - no single type is superior; tailor to the patient:
    • Strength training (progressive resistance)
    • Aerobic/aquatic exercise (low-impact)
    • Range-of-motion + neuromuscular training
  • Patient education - ongoing, not a one-time event; use positive, non-fatalistic language

Pharmacologic Management

StepDrugNotes
1st lineTopical NSAIDs (diclofenac gel)Preferred - least systemic exposure
1st lineOral acetaminophenModest pain relief
2nd lineOral NSAIDs (naproxen, ibuprofen, celecoxib)More effective; use lowest dose/shortest duration; add PPI if high GI risk
AdjunctDuloxetineUseful for central sensitization
Intra-articularCorticosteroidsShort-term relief only
AvoidOpioids/tramadolAAOS strongly recommends against
Not recommendedHyaluronic acid, arthroscopic lavageNo proven benefit

Surgical Options

  • Total joint arthroplasty - after adequate trial of other modalities
  • High tibial osteotomy - selected unicompartmental knee OA

GOUT

Core Principles

Two distinct goals: (1) treat the acute flare and (2) lower urate long-term to prevent recurrence and tophi.

Acute Flare Treatment

DrugDoseNotes
NSAIDs (indomethacin, naproxen)Full anti-inflammatory dosesFirst-line; avoid in CKD, PUD, anticoagulation
Colchicine1.2 mg then 0.6 mg 1 hr laterMost effective within first 36 hours; avoid in CKD
Intra-articular steroids40 mg large / 10-20 mg small jointsMonoarticular attack; rule out septic arthritis
Oral prednisone40-60 mg/day, taper over 7-10 daysWhen NSAIDs and colchicine contraindicated
Anakinra (IL-1 inhibitor)100 mg SC daily × 3 daysRefractory cases; avoid if active infection

Urate-Lowering Therapy (ULT)

Indications: ≥2 flares/year, tophi, urate nephropathy, nephrolithiasis, CKD ≥ stage 3, or uric acid >9 mg/dL at first flare.
Targets: Uric acid <6 mg/dL (no tophi) or <5 mg/dL (with tophi)
Timing: Start ≥2 weeks after flare resolves. Never stop ULT during an active flare.
Prophylaxis when starting ULT: Low-dose colchicine for ≥6 months (begin 1-2 weeks before ULT).
DrugClassDoseKey Caution
AllopurinolXO inhibitorStart 100 mg, titrate slowlyScreen for HLA-B*5801 in African Americans & Southeast Asians (severe skin reaction risk)
FebuxostatXO inhibitor40-80 mg/dayHigher CV event rate; second-line
ProbenecidUricosuric500-3000 mg/dayIneffective in renal impairment; nephrolithiasis risk
PegloticaseUricase (IV)8 mg IV q2 weeksRefractory tophaceous gout only

Lifestyle & Prevention

AvoidFavour
Red meat, organ meats, shellfish (high purine)Low-fat dairy (mildly uricosuric)
Beer > spirits > wineAdequate hydration (2-3 L/day)
Sugar-sweetened drinks / fructoseCoffee, cherries/tart cherry juice
Thiazide/loop diuretics (if possible, switch)Losartan (antihypertensive with mild uricosuric effect)
Rapid weight loss (triggers flares)Gradual, sustained weight loss
Sedentary lifestyleRegular moderate exercise
  • Treat comorbidities aggressively: hypertension, CKD, metabolic syndrome, and heart failure all worsen urate handling.

Side-by-Side Summary

OsteoarthritisGout
Key lifestyle changeWeight loss + exerciseLow-purine diet + reduce alcohol
Acute treatmentTopical/oral NSAIDs, acetaminophenNSAIDs, colchicine, steroids
Long-term preventionExercise adherence, weight controlULT to keep urate <6 mg/dL
Critical "don't"Avoid opioidsNever stop ULT during a flare

Can u make link of this content

I need a bit more clarity before proceeding!
Asking for Preferences

What kind of link/file do you want?

Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace

Running Command

mkdir -p /home/daytona/workspace/oa-gout && python3 - << 'EOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable from reportlab.lib.enums import TA_CENTER, TA_LEFT doc = SimpleDocTemplate( "/home/daytona/workspace/oa-gout/OA_Gout_Management.pdf", pagesize=A4, rightMargin=2*cm, leftMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm ) styles = getSampleStyleSheet() W = A4[0] - 4*cm # Custom styles title_style = ParagraphStyle('Title', parent=styles['Title'], fontSize=18, textColor=colors.HexColor('#1a3a5c'), spaceAfter=6, alignment=TA_CENTER) h1_style = ParagraphStyle('H1', parent=styles['Heading1'], fontSize=14, textColor=colors.white, backColor=colors.HexColor('#1a3a5c'), spaceBefore=14, spaceAfter=4, leftIndent=-4, rightIndent=-4, borderPad=5) h2_style = ParagraphStyle('H2', parent=styles['Heading2'], fontSize=12, textColor=colors.HexColor('#1a3a5c'), spaceBefore=10, spaceAfter=4, borderPad=3) h3_style = ParagraphStyle('H3', parent=styles['Heading3'], fontSize=10, textColor=colors.HexColor('#2c5f8a'), spaceBefore=7, spaceAfter=2) body_style = ParagraphStyle('Body', parent=styles['Normal'], fontSize=9, leading=13, spaceAfter=3) bullet_style = ParagraphStyle('Bullet', parent=styles['Normal'], fontSize=9, leading=13, leftIndent=14, bulletIndent=4, spaceAfter=2) caption_style = ParagraphStyle('Caption', parent=styles['Normal'], fontSize=7.5, textColor=colors.grey, alignment=TA_CENTER, spaceAfter=4) footer_style = ParagraphStyle('Footer', parent=styles['Normal'], fontSize=7, textColor=colors.grey, alignment=TA_CENTER) def tbl_style(header_color='#1a3a5c'): return TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor(header_color)), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,0), 8), ('FONTNAME', (0,1), (-1,-1), 'Helvetica'), ('FONTSIZE', (0,1), (-1,-1), 8), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.white, colors.HexColor('#eef3f8')]), ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#b0c4de')), ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LEFTPADDING', (0,0), (-1,-1), 5), ('RIGHTPADDING', (0,0), (-1,-1), 5), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ]) def bullet(text): return Paragraph(f"• {text}", bullet_style) def body(text): return Paragraph(text, body_style) def h1(text): return Paragraph(f" {text}", h1_style) def h2(text): return Paragraph(text, h2_style) def h3(text): return Paragraph(text, h3_style) story = [] # Title story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Osteoarthritis & Gout", title_style)) story.append(Paragraph("Management, Prevention & Lifestyle Modification", ParagraphStyle('sub', parent=styles['Normal'], fontSize=11, textColor=colors.HexColor('#2c5f8a'), alignment=TA_CENTER, spaceAfter=2))) story.append(Paragraph("Based on ACR 2019 Guidelines | AAOS CPG | Harrison's | Firestein & Kelley's | Washington Manual", caption_style)) story.append(HRFlowable(width="100%", thickness=1.5, color=colors.HexColor('#1a3a5c'), spaceAfter=10)) # ────────────────────────────────── # SECTION 1: OSTEOARTHRITIS # ────────────────────────────────── story.append(h1("PART 1: OSTEOARTHRITIS (OA)")) story.append(Spacer(1, 0.3*cm)) story.append(h2("Core Principle")) story.append(body("All guidelines agree: <b>Education + Exercise + Weight Management</b> form the non-negotiable foundation. Pharmacologic and surgical options are layered on top based on disease stage and patient factors.")) story.append(h2("Lifestyle Modifications & Prevention")) for b in [ "<b>Weight loss</b> – Most impactful modifiable factor. ≥20% weight loss yields greatest pain and function benefit. Combine diet + exercise (diet alone risks sarcopenia).", "<b>Exercise</b> – No single type is superior; tailor to patient preference and comorbidities:", " ◦ Strength/resistance training (progressive loading; target muscles around affected joint)", " ◦ Aerobic exercise – walking, cycling, aquatic therapy (low-impact)", " ◦ Range-of-motion and flexibility exercises (always include; insufficient alone)", " ◦ Neuromuscular training (improves movement control)", "<b>Patient Education</b> – Ongoing process; use positive, non-fatalistic language; direct patients to CDC, Arthritis Foundation.", "<b>Assistive devices</b> – Canes, braces, shoe insoles (lateral wedge insoles not recommended).", "<b>Occupational therapy</b> – Especially for hand OA.", ]: story.append(bullet(b)) story.append(h2("Pharmacologic Management")) oa_pharm = [ ["Step", "Drug/Intervention", "Notes"], ["1st line", "Topical NSAIDs (diclofenac gel)", "Preferred – lowest systemic exposure; same efficacy as oral"], ["1st line", "Oral acetaminophen", "Modest pain relief; safe for most patients"], ["2nd line", "Oral NSAIDs (naproxen, ibuprofen, celecoxib)", "More effective; use lowest dose/shortest duration; add PPI if high GI risk"], ["Adjunct", "Duloxetine", "Useful for central sensitization / widespread pain"], ["Intra-articular", "Corticosteroids (triamcinolone)", "Short-term relief; repeated injections may cause cartilage damage"], ["Avoid", "Opioids / Tramadol", "AAOS strongly recommends AGAINST – poor benefit/risk ratio"], ["Not recommended", "Hyaluronic acid, Arthroscopic lavage/debridement", "No proven benefit in current guidelines"], ] t = Table(oa_pharm, colWidths=[2.5*cm, 6*cm, 8.5*cm]) t.setStyle(tbl_style()) story.append(t) story.append(Spacer(1, 0.3*cm)) story.append(h2("Surgical Options")) for b in [ "<b>Total joint arthroplasty</b> – After adequate trial of all other modalities; durable pain relief.", "<b>High tibial osteotomy</b> – Selected patients with unicompartmental knee OA.", "<b>NOT recommended:</b> Arthroscopic partial meniscectomy for OA-related pathology.", ]: story.append(bullet(b)) story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#b0c4de'), spaceBefore=10, spaceAfter=10)) # ────────────────────────────────── # SECTION 2: GOUT # ────────────────────────────────── story.append(h1("PART 2: GOUT")) story.append(Spacer(1, 0.3*cm)) story.append(h2("Core Principle")) story.append(body("Two distinct goals: <b>(1)</b> Treat the acute flare promptly; <b>(2)</b> Lower serum urate long-term to prevent recurrence and tophi formation. Risk factors: obesity, Western diet (high purines), alcohol, sedentary lifestyle, diuretics, hypertension, CKD.")) story.append(h2("Acute Flare Treatment")) acute_gout = [ ["Drug", "Dose", "Notes / Contraindications"], ["NSAIDs (indomethacin, naproxen, ibuprofen)", "Full anti-inflammatory doses", "FIRST-LINE. Avoid in CKD, peptic ulcer disease, anticoagulation"], ["Colchicine", "1.2 mg PO, then 0.6 mg 1 hr later", "Most effective within 36 hrs; avoid in CKD; caution with carvedilol/grapefruit juice"], ["Intra-articular corticosteroids", "40 mg large joints; 10–20 mg small joints", "Monoarticular attack; rule out septic arthritis first; 90% effective in 24 hrs"], ["Oral prednisone", "40–60 mg/day; taper over 7–10 days", "When NSAIDs & colchicine contraindicated; caution in poorly controlled diabetes"], ["Anakinra (IL-1 inhibitor)", "100 mg SC daily × 3 days", "Refractory cases; contraindicated in active infection"], ] t = Table(acute_gout, colWidths=[4.5*cm, 4.5*cm, 8*cm]) t.setStyle(tbl_style()) story.append(t) story.append(Spacer(1, 0.3*cm)) story.append(h2("Urate-Lowering Therapy (ULT) – Chronic Gout")) story.append(h3("Indications for ULT:")) for b in [ "≥2 acute flares/year", "Presence of tophi", "Urate nephropathy or nephrolithiasis", "CKD ≥ stage 3, or uric acid >9 mg/dL at first flare", ]: story.append(bullet(b)) story.append(h3("Serum Urate Targets:")) story.append(bullet("<b><6 mg/dL</b> – no tophi present")) story.append(bullet("<b><5 mg/dL</b> – tophi present")) story.append(h3("Timing & Prophylaxis:")) for b in [ "Start ULT ≥2 weeks AFTER flare resolves.", "<b>Never stop ULT during an active flare</b> – fluctuations worsen attacks.", "Start <b>flare prophylaxis</b> (low-dose colchicine) 1–2 weeks BEFORE ULT initiation; continue ≥6 months after urate reaches target.", ]: story.append(bullet(b)) story.append(h3("ULT Drug Options:")) ult_drugs = [ ["Drug", "Class", "Dose", "Key Caution"], ["Allopurinol", "XO Inhibitor (1st line)", "Start 100 mg; titrate slowly; max 800 mg", "Screen for HLA-B*5801 in African Americans & SE Asians (severe skin reaction risk)"], ["Febuxostat", "XO Inhibitor (2nd line)", "40–80 mg/day", "Higher cardiovascular event rate; blocks azathioprine/6-MP metabolism"], ["Probenecid", "Uricosuric", "500–3000 mg/day", "Ineffective in renal impairment; avoid if urinary uric acid >800 mg/24h"], ["Pegloticase", "Uricase (IV)", "8 mg IV every 2 weeks", "Refractory tophaceous gout only; expensive"], ] t = Table(ult_drugs, colWidths=[3*cm, 3.5*cm, 4.5*cm, 6*cm]) t.setStyle(tbl_style()) story.append(t) story.append(Spacer(1, 0.3*cm)) story.append(h2("Lifestyle Modifications & Prevention in Gout")) lifestyle_gout = [ ["AVOID / LIMIT", "ENCOURAGE"], ["Red meat, organ meats (liver, kidney)", "Low-fat dairy products (mildly uricosuric)"], ["Shellfish (shrimp, lobster, scallops)", "Adequate hydration: 2–3 L/day"], ["Beer > spirits (highest purine/alcohol risk)", "Coffee (associated with lower uric acid)"], ["Sugar-sweetened drinks / high fructose corn syrup", "Cherries / tart cherry juice (may reduce flare frequency)"], ["Rapid/crash weight loss (triggers flares via ketosis)", "Gradual, sustained weight loss"], ["Thiazide & loop diuretics (raise urate) – switch if possible", "Losartan for HTN (mild uricosuric effect)"], ["Sedentary lifestyle", "Regular moderate exercise"], ] t = Table(lifestyle_gout, colWidths=[8.5*cm, 8.5*cm]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#c0392b')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 8), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.white, colors.HexColor('#fdecea')]), ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#e0b0b0')), ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LEFTPADDING', (0,0), (-1,-1), 5), ('RIGHTPADDING', (0,0), (-1,-1), 5), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ])) story.append(t) story.append(Spacer(1, 0.3*cm)) story.append(h2("Treat Comorbidities Aggressively")) for b in [ "Hypertension, CKD, metabolic syndrome, and heart failure all worsen urate handling.", "Review all medications for urate-raising drugs (diuretics, cyclosporine, pyrazinamide, low-dose aspirin).", ]: story.append(bullet(b)) story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#b0c4de'), spaceBefore=10, spaceAfter=10)) # ────────────────────────────────── # COMPARISON TABLE # ────────────────────────────────── story.append(h1("SIDE-BY-SIDE COMPARISON")) story.append(Spacer(1, 0.3*cm)) comp = [ ["Feature", "Osteoarthritis", "Gout"], ["Key lifestyle change", "Weight loss + exercise", "Low-purine diet + reduce alcohol"], ["Acute treatment", "Topical/oral NSAIDs, acetaminophen", "NSAIDs, colchicine, corticosteroids"], ["Long-term prevention", "Exercise adherence, weight control", "ULT to keep uric acid <6 mg/dL"], ["Disease-modifying therapy", "None approved (exercise/weight closest)", "Urate-lowering therapy (allopurinol)"], ["Critical 'DON'T'", "Avoid opioids/tramadol", "Never stop ULT during a flare"], ["Surgical option", "Total joint arthroplasty", "Rarely needed (tophus debridement)"], ] t = Table(comp, colWidths=[4.5*cm, 7*cm, 5.5*cm]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3a5c')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 8), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.white, colors.HexColor('#eef3f8')]), ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#b0c4de')), ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LEFTPADDING', (0,0), (-1,-1), 5), ('RIGHTPADDING', (0,0), (-1,-1), 5), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3), ])) story.append(t) story.append(Spacer(1, 0.5*cm)) # Footer story.append(HRFlowable(width="100%", thickness=0.5, color=colors.grey, spaceAfter=4)) story.append(Paragraph("Sources: Firestein & Kelley's Textbook of Rheumatology | Harrison's Principles of Internal Medicine 22e | Washington Manual of Medical Therapeutics | Lippincott Illustrated Reviews: Pharmacology | Miller's Review of Orthopaedics 9e | ACR 2019 OA Guidelines | AAOS CPG", footer_style)) doc.build(story) print("PDF created successfully!") EOF

Your PDF is ready! Click the link below to download it:

OA Gout Management

PDF Document · PDF

The PDF includes:
  • Part 1 - Osteoarthritis: Lifestyle modifications, full pharmacologic table (stepped approach), and surgical options
  • Part 2 - Gout: Acute flare treatment table, ULT drug options with dosing and cautions, and a lifestyle do/don't table
  • Side-by-side comparison of both conditions
  • Source citations in the footer

Can u make ppt on it

Reading File
Reading File
Reading File
Now I have everything I need. Let me build the presentation.
Writing File

~/oa-gout/make_ppt.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Osteoarthritis & Gout – Management, Prevention & Lifestyle";
pres.author = "Orris Medical";

// ─── PALETTE ────────────────────────────────────────────────
const C = {
  navy:    "1A3A5C",
  teal:    "0E7C7B",
  amber:   "E8A838",
  red:     "C0392B",
  light:   "EEF3F8",
  white:   "FFFFFF",
  dark:    "0D1F2D",
  grey:    "6C757D",
  ltgrey:  "DEE5ED",
  green:   "2ECC71",
  oa_blue: "2C5F8A",
  gout_rd: "A93226",
};

const FONT = "Calibri";

// ─── HELPERS ────────────────────────────────────────────────
function darkSlide(slide) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{ color: C.dark }, line:{ color: C.dark } });
}
function lightSlide(slide, accent) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{ color: C.white }, line:{ color: C.white } });
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.08, fill:{ color: accent||C.navy }, line:{ color: accent||C.navy } });
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:5.545, w:10, h:0.08, fill:{ color: accent||C.navy }, line:{ color: accent||C.navy } });
}
function sectionHeader(slide, color) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{ color }, line:{ color } });
}
function slideTitle(slide, text, color, y) {
  slide.addText(text, {
    x:0.4, y: y||0.18, w:9.2, h:0.55,
    fontSize:22, bold:true, color: color||C.white, fontFace:FONT, valign:"middle"
  });
}
function hRule(slide, y, color) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0.4, y, w:9.2, h:0.02, fill:{ color: color||C.ltgrey }, line:{ color: color||C.ltgrey } });
}
function footerBar(slide, text) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:5.45, w:10, h:0.175, fill:{ color: C.navy }, line:{ color: C.navy } });
  slide.addText(text||"Firestein & Kelley's | Harrison's 22e | Washington Manual | Lippincott Pharmacology | AAOS CPG | ACR 2019", {
    x:0.2, y:5.455, w:9.6, h:0.16, fontSize:6, color:"AABBD0", fontFace:FONT, align:"center"
  });
}
function card(slide, x, y, w, h, fillColor, radius) {
  slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
    x, y, w, h,
    fill:{ color: fillColor||C.light },
    line:{ color: fillColor||C.light },
    rectRadius: radius||0.08,
    shadow:{ type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.1 }
  });
}
function pill(slide, x, y, w, label, fill, textColor) {
  slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w, h:0.28, fill:{ color: fill||C.navy }, line:{ color: fill||C.navy }, rectRadius:0.14 });
  slide.addText(label, { x, y, w, h:0.28, fontSize:7.5, bold:true, color: textColor||C.white, fontFace:FONT, align:"center", valign:"middle" });
}
function bullets(slide, items, x, y, w, h, opts) {
  const arr = items.map((t,i) => ({
    text: t,
    options: { bullet:{ code:"25CF", color: opts&&opts.dotColor||C.amber }, breakLine: i<items.length-1, fontSize: opts&&opts.fs||9.5, color: opts&&opts.color||"333333", fontFace:FONT }
  }));
  slide.addText(arr, { x, y, w, h, valign:"top", ...(opts||{}) });
}

// ════════════════════════════════════════════
// SLIDE 1 – TITLE
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkSlide(s);

  // Left accent strip
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.08, h:5.625, fill:{ color: C.amber }, line:{ color: C.amber } });

  // Title
  s.addText("Osteoarthritis & Gout", {
    x:0.3, y:1.1, w:9.4, h:1.0,
    fontSize:40, bold:true, color: C.white, fontFace:FONT, align:"center",
    charSpacing:1
  });
  s.addText("Management  •  Prevention  •  Lifestyle Modification", {
    x:0.3, y:2.15, w:9.4, h:0.5,
    fontSize:15, color: C.amber, fontFace:FONT, align:"center", italic:true
  });
  hRule(s, 2.75, C.teal);
  s.addText("Based on: ACR 2019 Guidelines  |  AAOS CPG  |  Harrison's 22e  |  Firestein & Kelley's", {
    x:0.3, y:2.88, w:9.4, h:0.35, fontSize:9, color:"8AAEC8", fontFace:FONT, align:"center"
  });

  // Two condition labels
  card(s, 1.0, 3.4, 3.6, 0.7, C.oa_blue, 0.12);
  s.addText("🦴  Osteoarthritis", { x:1.0, y:3.4, w:3.6, h:0.7, fontSize:13, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
  card(s, 5.4, 3.4, 3.6, 0.7, C.gout_rd, 0.12);
  s.addText("🔴  Gout", { x:5.4, y:3.4, w:3.6, h:0.7, fontSize:13, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
}

// ════════════════════════════════════════════
// SLIDE 2 – AGENDA / OUTLINE
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s, C.navy);
  slideTitle(s, "What We'll Cover", C.navy, 0.18);
  hRule(s, 0.82, C.navy);

  const items = [
    ["01", "OA – Lifestyle & Prevention", C.oa_blue],
    ["02", "OA – Pharmacologic Management", C.oa_blue],
    ["03", "OA – Surgical Options", C.oa_blue],
    ["04", "Gout – Acute Flare Treatment", C.gout_rd],
    ["05", "Gout – Urate-Lowering Therapy (ULT)", C.gout_rd],
    ["06", "Gout – Lifestyle & Prevention", C.gout_rd],
    ["07", "Side-by-Side Comparison", C.teal],
  ];

  const cols = [[0,1,2,3],[4,5,6]];
  const xLeft=0.4, xRight=5.2, w=4.4;
  items.forEach((item,i) => {
    const isRight = i>=4;
    const x = isRight ? xRight : xLeft;
    const row = isRight ? i-4 : i;
    const y = 1.0 + row*0.82;
    card(s, x, y, w, 0.65, C.light, 0.08);
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: x+0.05, y: y+0.1, w:0.45, h:0.45, fill:{ color: item[2] }, line:{ color: item[2] }, rectRadius:0.22 });
    s.addText(item[0], { x: x+0.05, y: y+0.1, w:0.45, h:0.45, fontSize:11, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
    s.addText(item[1], { x: x+0.6, y: y+0.12, w: w-0.7, h:0.42, fontSize:11, color:"222222", fontFace:FONT, valign:"middle" });
  });

  footerBar(s);
}

// ════════════════════════════════════════════
// SLIDE 3 – OA SECTION DIVIDER
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  sectionHeader(s, C.oa_blue);
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.1, h:5.625, fill:{ color: C.amber }, line:{ color: C.amber } });
  s.addText("PART 1", { x:0.3, y:1.5, w:9, h:0.5, fontSize:13, color: C.amber, fontFace:FONT, bold:true, charSpacing:6 });
  s.addText("Osteoarthritis", { x:0.3, y:2.05, w:9, h:1.0, fontSize:44, bold:true, color:C.white, fontFace:FONT });
  s.addText("Management  •  Prevention  •  Lifestyle", { x:0.3, y:3.1, w:9, h:0.45, fontSize:14, color:"AACCEE", fontFace:FONT, italic:true });
}

// ════════════════════════════════════════════
// SLIDE 4 – OA: CORE FRAMEWORK
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s, C.oa_blue);
  slideTitle(s, "OA – Core Management Framework", C.navy);
  hRule(s, 0.82, C.oa_blue);

  // Centre label
  card(s, 3.5, 1.6, 3.0, 0.9, C.oa_blue, 0.1);
  s.addText("Education +\nExercise +\nWeight Loss", { x:3.5, y:1.6, w:3.0, h:0.9, fontSize:10, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
  s.addText("CORE (ALL patients)", { x:3.2, y:2.52, w:3.6, h:0.3, fontSize:8, color: C.oa_blue, fontFace:FONT, align:"center", bold:true });

  // Four surrounding cards
  const corners = [
    { x:0.25, y:1.0, label:"Physical\nModalities", sub:"Exercise, PT, orthotics,\naquatic therapy", fill: "D6E8F5" },
    { x:6.75, y:1.0, label:"Pharmacologic", sub:"Topical → Oral NSAIDs\nIntra-articular", fill: "D6E8F5" },
    { x:0.25, y:3.5, label:"Psychological &\nMind-Body", sub:"CBT, pain education,\nsleep management", fill: "D6E8F5" },
    { x:6.75, y:3.5, label:"Surgery", sub:"Arthroplasty\n(after all else fails)", fill: "FFE8B2" },
  ];
  corners.forEach(c => {
    card(s, c.x, c.y, 2.8, 1.7, c.fill, 0.1);
    s.addText(c.label, { x: c.x+0.1, y: c.y+0.15, w:2.6, h:0.5, fontSize:11, bold:true, color: C.navy, fontFace:FONT, align:"center" });
    s.addText(c.sub, { x: c.x+0.1, y: c.y+0.65, w:2.6, h:0.9, fontSize:8.5, color:"444444", fontFace:FONT, align:"center", valign:"top" });
  });

  // Arrows (lines)
  [[3.05,1.4,3.5,2.0],[6.75,1.4,6.5,2.0],[3.05,3.9,3.5,2.5],[6.75,3.9,6.5,2.5]].forEach(([x1,y1,x2,y2]) => {
    s.addShape(pres.shapes.LINE, { x:x1, y:y1, w: x2-x1, h: y2-y1, line:{ color:C.oa_blue, width:1.2, dashType:"dash" } });
  });

  footerBar(s);
}

// ════════════════════════════════════════════
// SLIDE 5 – OA LIFESTYLE / PREVENTION
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s, C.oa_blue);
  slideTitle(s, "OA – Lifestyle Modifications & Prevention", C.navy);
  hRule(s, 0.82, C.oa_blue);

  const cats = [
    { icon:"⚖️", title:"Weight Loss", color:"1A6B9A", points:["Most impactful modifiable factor","≥20% loss = greatest benefit","Combine diet + exercise (diet alone risks sarcopenia)","Bariatric surgery if needed"] },
    { icon:"🏃", title:"Exercise", color:"0E7C7B", points:["Strength training – progressive resistance","Aerobic/aquatic – walking, cycling (low-impact)","Range-of-motion & flexibility (always include)","Neuromuscular training"] },
    { icon:"📚", title:"Education", color:"7B3FA0", points:["Ongoing, not one-time","Use positive, non-fatalistic language","Direct to CDC, Arthritis Foundation","Self-management mobile apps"] },
    { icon:"🦯", title:"Assistive Devices", color:"B5600A", points:["Canes & walking aids (recommended)","Braces for knee OA","Lateral wedge insoles: NOT recommended","Occupational therapy for hand OA"] },
  ];

  cats.forEach((c,i) => {
    const x = 0.2 + (i%2)*4.9;
    const y = 1.0 + Math.floor(i/2)*2.15;
    card(s, x, y, 4.7, 1.9, C.light, 0.1);
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: x+0.1, y: y+0.1, w:1.1, h:0.5, fill:{ color: c.color }, line:{ color: c.color }, rectRadius:0.08 });
    s.addText(c.icon+" "+c.title, { x: x+0.1, y: y+0.1, w:1.1, h:0.5, fontSize:8, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
    const arr = c.points.map((t,j) => ({ text:t, options:{ bullet:{ code:"25CF", color:c.color }, breakLine: j<c.points.length-1, fontSize:8.5, color:"333333", fontFace:FONT } }));
    s.addText(arr, { x: x+1.3, y: y+0.1, w:3.25, h:1.7, valign:"top" });
  });

  footerBar(s);
}

// ════════════════════════════════════════════
// SLIDE 6 – OA PHARMACOLOGIC MGMT
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s, C.oa_blue);
  slideTitle(s, "OA – Pharmacologic Management", C.navy);
  hRule(s, 0.82, C.oa_blue);

  // Step ladder approach
  const steps = [
    { step:"PREFER", label:"Topical Agents", detail:"Topical NSAIDs (diclofenac gel), capsaicin cream", why:"Lowest systemic exposure; same efficacy", fill:"1A6B9A" },
    { step:"1ST LINE", label:"Oral Acetaminophen", detail:"Standard analgesia, widely available", why:"Modest pain relief; safe for most", fill:"2E86AB" },
    { step:"2ND LINE", label:"Oral NSAIDs", detail:"Naproxen, ibuprofen, celecoxib", why:"More effective; lowest dose × shortest duration; add PPI if high GI risk", fill:"0E7C7B" },
    { step:"ADJUNCT", label:"Duloxetine", detail:"For central sensitization & widespread pain", why:"Useful when pain is out of proportion", fill:"5A7B3A" },
    { step:"LOCAL", label:"Intra-articular Corticosteroids", detail:"Triamcinolone – short-term relief only", why:"Repeated injections may damage cartilage", fill:"B5600A" },
    { step:"❌ AVOID", label:"Opioids / Tramadol", detail:"AAOS strongly recommends AGAINST", why:"Poor benefit-to-risk ratio", fill:"C0392B" },
  ];

  steps.forEach((st, i) => {
    const x = 0.25;
    const y = 0.92 + i*0.73;
    const w = 9.5;
    card(s, x, y, w, 0.65, i===5?"FEE8E6":C.light, 0.06);
    // Step badge
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: x+0.05, y: y+0.1, w:1.1, h:0.45, fill:{ color: st.fill }, line:{ color: st.fill }, rectRadius:0.06 });
    s.addText(st.step, { x: x+0.05, y: y+0.1, w:1.1, h:0.45, fontSize:7.5, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
    s.addText(st.label, { x: x+1.25, y: y+0.08, w:2.8, h:0.26, fontSize:9.5, bold:true, color: i===5?C.gout_rd:C.navy, fontFace:FONT });
    s.addText(st.detail, { x: x+1.25, y: y+0.34, w:2.8, h:0.26, fontSize:8, color:"555555", fontFace:FONT });
    s.addText("→ "+st.why, { x: x+4.2, y: y+0.16, w:5.1, h:0.35, fontSize:8.5, color:"444444", fontFace:FONT, italic:true });
  });

  footerBar(s);
}

// ════════════════════════════════════════════
// SLIDE 7 – OA SURGICAL OPTIONS + AAOS TABLE
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s, C.oa_blue);
  slideTitle(s, "OA – Surgical Options & AAOS Recommendations", C.navy);
  hRule(s, 0.82, C.oa_blue);

  // Surgery cards
  const surg = [
    { t:"Total Joint Arthroplasty", d:"After adequate trial of all modalities.\nDurable pain relief & functional restoration.", good:true },
    { t:"High Tibial Osteotomy", d:"Selected unicompartmental knee OA patients.\nModerate evidence.", good:true },
    { t:"Arthroscopic Lavage / Debridement", d:"NOT recommended for OA-related pathology.\nNo proven benefit.", good:false },
  ];
  surg.forEach((c,i) => {
    const x = 0.25 + i*3.2;
    card(s, x, 0.95, 3.0, 1.5, c.good?"EDF7ED":"FDECEA", 0.1);
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: x+0.1, y:1.0, w:0.5, h:0.5, fill:{ color: c.good?C.teal:C.red }, line:{ color: c.good?C.teal:C.red }, rectRadius:0.25 });
    s.addText(c.good?"✓":"✗", { x: x+0.1, y:1.0, w:0.5, h:0.5, fontSize:16, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
    s.addText(c.t, { x: x+0.7, y:1.0, w:2.4, h:0.5, fontSize:9, bold:true, color:"222222", fontFace:FONT, valign:"middle" });
    s.addText(c.d, { x: x+0.1, y:1.55, w:2.8, h:0.85, fontSize:8, color:"444444", fontFace:FONT });
  });

  // AAOS mini-table
  s.addText("AAOS Evidence-Based Recommendations (Knee OA)", { x:0.25, y:2.6, w:9.5, h:0.3, fontSize:10, bold:true, color:C.oa_blue, fontFace:FONT });
  const rows = [
    ["Grade","Intervention","Status"],
    ["★★★★ Strong","Patient education, Exercise (supervised/aquatic), Self-management","✓ Recommended"],
    ["★★★★ Strong","Topical NSAIDs, Oral NSAIDs, Acetaminophen","✓ Recommended"],
    ["★★★★ Strong","Opioids / Tramadol","✗ NOT Recommended"],
    ["★★★ Moderate","Canes, Braces, Weight loss, Neuromuscular training, IA Corticosteroids","✓ Recommended"],
    ["★★ Limited","Glucosamine, Chondroitin, PRP, Acupuncture, TENS","May use selectively"],
  ];
  const tbl = rows.map((r,i) => r.map(cell => ({
    text: cell,
    options: {
      bold: i===0,
      color: i===0 ? C.white : (cell.includes("NOT") ? C.red : (cell.includes("✓") ? C.teal : "333333")),
      fontSize: i===0 ? 8.5 : 8,
      fontFace: FONT,
      fill: i===0 ? C.navy : (i%2===0 ? C.light : C.white),
      align: i===0||[0,2].includes(rows[0].indexOf(cell)) ? "center" : "left",
      valign: "middle",
    }
  })));
  s.addTable(tbl, {
    x:0.25, y:2.95, w:9.5, colW:[2.0, 5.8, 1.7],
    border:{ color:"B0C4DE", pt:0.5 },
    rowH: 0.3,
  });

  footerBar(s);
}

// ════════════════════════════════════════════
// SLIDE 8 – GOUT SECTION DIVIDER
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  sectionHeader(s, C.gout_rd);
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.1, h:5.625, fill:{ color: C.amber }, line:{ color: C.amber } });
  s.addText("PART 2", { x:0.3, y:1.5, w:9, h:0.5, fontSize:13, color: C.amber, fontFace:FONT, bold:true, charSpacing:6 });
  s.addText("Gout", { x:0.3, y:2.05, w:9, h:1.0, fontSize:52, bold:true, color:C.white, fontFace:FONT });
  s.addText("Acute Treatment  •  Urate-Lowering Therapy  •  Prevention", { x:0.3, y:3.1, w:9, h:0.45, fontSize:14, color:"FFCACA", fontFace:FONT, italic:true });
}

// ════════════════════════════════════════════
// SLIDE 9 – GOUT PATHOPHYSIOLOGY & TRIGGERS
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s, C.gout_rd);
  slideTitle(s, "Gout – Pathophysiology & Risk Factors", C.navy);
  hRule(s, 0.82, C.gout_rd);

  // Pathway box
  card(s, 0.25, 0.95, 4.5, 4.3, "FFF5F5", 0.1);
  s.addText("Pathophysiology", { x:0.35, y:1.0, w:4.3, h:0.35, fontSize:10, bold:true, color:C.gout_rd, fontFace:FONT });

  const path = [
    "Hyperuricemia (impaired excretion 90%, overproduction 10%)",
    "↓",
    "Monosodium Urate (MSU) crystal deposition in joints",
    "↓",
    "NLRP3 inflammasome activation → IL-1β release",
    "↓",
    "Neutrophil recruitment → lysosomal rupture",
    "↓",
    "Acute intense inflammation (gout flare)",
    "↓",
    "Chronic: tophi, erosions, joint destruction",
  ];
  path.forEach((p,i) => {
    const isArrow = p==="↓";
    s.addText(p, { x:0.45, y:1.38+i*0.27, w:4.1, h:0.27, fontSize: isArrow?13:8, color: isArrow?C.gout_rd:"333333", fontFace:FONT, bold: isArrow, align: isArrow?"center":"left", valign:"middle" });
  });

  // Risk factors
  card(s, 5.0, 0.95, 4.75, 4.3, C.light, 0.1);
  s.addText("Risk Factors", { x:5.1, y:1.0, w:4.5, h:0.35, fontSize:10, bold:true, color:C.oa_blue, fontFace:FONT });
  const risks = [
    ["🍖","Purine-rich diet (red meat, shellfish, organ meats)"],
    ["🍺","Alcohol – beer > spirits > wine"],
    ["🧃","Fructose / sugar-sweetened beverages"],
    ["⚖️","Obesity / metabolic syndrome"],
    ["💊","Diuretics (thiazide, loop)"],
    ["🫀","Hypertension, CKD, heart failure"],
    ["🧬","Genetic: HPRT deficiency, PRPP synthetase overactivity"],
    ["🚶","Sedentary lifestyle"],
  ];
  risks.forEach((r,i) => {
    s.addText(r[0], { x:5.1, y:1.42+i*0.35, w:0.35, h:0.32, fontSize:10, fontFace:FONT, align:"center" });
    s.addText(r[1], { x:5.5, y:1.42+i*0.35, w:4.1, h:0.32, fontSize:8.5, color:"333333", fontFace:FONT, valign:"middle" });
  });

  footerBar(s);
}

// ════════════════════════════════════════════
// SLIDE 10 – GOUT ACUTE TREATMENT
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s, C.gout_rd);
  slideTitle(s, "Gout – Acute Flare Treatment", C.navy);
  hRule(s, 0.82, C.gout_rd);

  s.addText("Treat promptly – can abort attack within hours", { x:0.3, y:0.88, w:9.4, h:0.28, fontSize:9, color: C.gout_rd, fontFace:FONT, italic:true });

  const drugs = [
    { rank:"1ST", drug:"NSAIDs", dose:"Indomethacin 50mg TID / Naproxen 500mg BID\nIbuprofen 800mg TID / Meloxicam 15mg daily", note:"Contraindicated: CKD, PUD, anticoagulation", fill:"A93226" },
    { rank:"1ST", drug:"Colchicine", dose:"1.2 mg PO → then 0.6 mg 1 hr later\n(low-dose equally effective, better tolerated)", note:"Most effective within 36 hrs; avoid in CKD; caution: carvedilol/grapefruit juice", fill:"A93226" },
    { rank:"ALT", drug:"Intra-articular Corticosteroids", dose:"40 mg (large joints) / 10–20 mg (small joints)", note:"Rule out septic arthritis first; 90% effective within 24 hrs", fill:"C0702A" },
    { rank:"ALT", drug:"Oral Prednisone", dose:"40–60 mg/day; taper over 7–10 days", note:"When NSAIDs & colchicine contraindicated; caution with uncontrolled diabetes", fill:"C0702A" },
    { rank:"LAST", drug:"Anakinra (IL-1 inhibitor)", dose:"100 mg SC daily × 3 days", note:"Refractory cases only; contraindicated in active infection", fill:"8E44AD" },
  ];

  drugs.forEach((d,i) => {
    const y = 1.22 + i*0.82;
    card(s, 0.25, y, 9.5, 0.74, i<2?"FFF0F0":i<4?"FFF7EE":"F8F0FE", 0.07);
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.32, y:y+0.12, w:0.85, h:0.5, fill:{ color: d.fill }, line:{ color: d.fill }, rectRadius:0.06 });
    s.addText(d.rank, { x:0.32, y:y+0.12, w:0.85, h:0.5, fontSize:8, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
    s.addText(d.drug, { x:1.25, y:y+0.08, w:2.5, h:0.3, fontSize:10, bold:true, color:"222222", fontFace:FONT });
    s.addText(d.dose, { x:1.25, y:y+0.38, w:2.5, h:0.32, fontSize:7.5, color:"555555", fontFace:FONT });
    s.addText("⚠ "+d.note, { x:3.9, y:y+0.18, w:5.7, h:0.38, fontSize:8, color:"666666", fontFace:FONT, italic:true });
  });

  footerBar(s);
}

// ════════════════════════════════════════════
// SLIDE 11 – GOUT ULT
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s, C.gout_rd);
  slideTitle(s, "Gout – Urate-Lowering Therapy (ULT)", C.navy);
  hRule(s, 0.82, C.gout_rd);

  // Indications + Targets side by side
  card(s, 0.25, 0.92, 4.5, 1.85, "FFF5F5", 0.09);
  s.addText("Indications for ULT", { x:0.35, y:0.97, w:4.3, h:0.3, fontSize:9.5, bold:true, color:C.gout_rd, fontFace:FONT });
  const inds = ["≥2 flares/year","Presence of tophi","Urate nephropathy or nephrolithiasis","CKD ≥ stage 3","Uric acid >9 mg/dL at first flare"];
  const indArr = inds.map((t,i) => ({ text:t, options:{ bullet:{ code:"25CF", color:C.gout_rd }, breakLine: i<inds.length-1, fontSize:8.5, color:"333333", fontFace:FONT }}));
  s.addText(indArr, { x:0.35, y:1.3, w:4.2, h:1.35, valign:"top" });

  card(s, 4.9, 0.92, 4.85, 1.85, "FFF0E0", 0.09);
  s.addText("Serum Urate Targets", { x:5.0, y:0.97, w:4.6, h:0.3, fontSize:9.5, bold:true, color:"B5600A", fontFace:FONT });
  s.addText("No tophi:  < 6 mg/dL", { x:5.0, y:1.32, w:4.6, h:0.35, fontSize:11, bold:true, color:C.teal, fontFace:FONT });
  s.addText("With tophi:  < 5 mg/dL", { x:5.0, y:1.72, w:4.6, h:0.35, fontSize:11, bold:true, color:C.gout_rd, fontFace:FONT });
  s.addText("Start ULT ≥2 weeks AFTER flare resolves\n⚠ NEVER stop ULT during an active flare", { x:5.0, y:2.1, w:4.6, h:0.55, fontSize:8, color:"555555", fontFace:FONT, italic:true });

  // Drug table
  s.addText("ULT Drug Options", { x:0.25, y:2.88, w:9.5, h:0.28, fontSize:10, bold:true, color:C.navy, fontFace:FONT });
  const ult = [
    ["Drug","Class","Dose","Key Caution"],
    ["Allopurinol","XO Inhibitor\n(1st line)","Start 100 mg; titrate slowly;\nmax 800 mg","Screen HLA-B*5801 in African Americans\n& SE Asians – severe skin reaction risk"],
    ["Febuxostat","XO Inhibitor\n(2nd line)","40–80 mg/day","Higher CV event rate; blocks azathioprine/\n6-MP metabolism"],
    ["Probenecid","Uricosuric","500–3000 mg/day","Ineffective in renal impairment;\nCaution if urinary uric acid >800 mg/24h"],
    ["Pegloticase","Uricase (IV)","8 mg IV q2 weeks","Refractory tophaceous gout only"],
  ];
  const ultTbl = ult.map((r,i) => r.map(cell => ({
    text: cell,
    options: {
      bold: i===0, fontSize: i===0?8.5:8, fontFace:FONT,
      color: i===0 ? C.white : (cell.includes("HLA")||cell.includes("CV")||cell.includes("renal")?"A93226":"333333"),
      fill: i===0 ? C.gout_rd : (i%2===0 ? "FFF5F5" : C.white),
      valign:"middle", align:"left",
    }
  })));
  s.addTable(ultTbl, { x:0.25, y:3.18, w:9.5, colW:[1.8,1.8,2.5,3.4], border:{ color:"E0B0B0", pt:0.5 }, rowH:0.42 });

  footerBar(s);
}

// ════════════════════════════════════════════
// SLIDE 12 – GOUT LIFESTYLE
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s, C.gout_rd);
  slideTitle(s, "Gout – Lifestyle Modifications & Prevention", C.navy);
  hRule(s, 0.82, C.gout_rd);

  // AVOID column
  card(s, 0.25, 0.95, 4.6, 4.35, "FDECEA", 0.1);
  s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.35, y:1.0, w:1.8, h:0.38, fill:{ color:C.gout_rd }, line:{ color:C.gout_rd }, rectRadius:0.06 });
  s.addText("❌  AVOID / LIMIT", { x:0.35, y:1.0, w:1.8, h:0.38, fontSize:8.5, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
  const avoid = [
    "Red meat, organ meats (liver, kidney)",
    "Shellfish (shrimp, lobster, scallops)",
    "Beer (highest risk) > spirits > wine",
    "Sugar-sweetened drinks / fructose",
    "Rapid/crash weight loss (triggers flares)",
    "Thiazide & loop diuretics – switch if possible",
    "Sedentary lifestyle",
    "Cyclosporine, pyrazinamide, ethambutol",
  ];
  const avoidArr = avoid.map((t,i) => ({ text:t, options:{ bullet:{ code:"274C", color:C.gout_rd }, breakLine: i<avoid.length-1, fontSize:8.5, color:"333333", fontFace:FONT }}));
  s.addText(avoidArr, { x:0.4, y:1.45, w:4.3, h:3.7, valign:"top" });

  // ENCOURAGE column
  card(s, 5.15, 0.95, 4.6, 4.35, "EDF7ED", 0.1);
  s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:5.25, y:1.0, w:2.0, h:0.38, fill:{ color:C.teal }, line:{ color:C.teal }, rectRadius:0.06 });
  s.addText("✅  ENCOURAGE", { x:5.25, y:1.0, w:2.0, h:0.38, fontSize:8.5, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
  const enc = [
    "Low-fat dairy (mildly uricosuric effect)",
    "Adequate hydration: 2–3 L/day",
    "Coffee (associated with lower uric acid)",
    "Cherries / tart cherry juice",
    "Gradual, sustained weight loss",
    "Losartan for hypertension (mild uricosuric)",
    "Regular moderate exercise",
    "Treat comorbidities: HTN, CKD, metabolic syndrome",
  ];
  const encArr = enc.map((t,i) => ({ text:t, options:{ bullet:{ code:"2714", color:C.teal }, breakLine: i<enc.length-1, fontSize:8.5, color:"333333", fontFace:FONT }}));
  s.addText(encArr, { x:5.2, y:1.45, w:4.4, h:3.7, valign:"top" });

  // Prophylaxis note
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:5.3, w:10, h:0.14, fill:{ color:"FFF3CD" }, line:{ color:"FFF3CD" } });
  s.addText("⚠  Flare Prophylaxis when starting ULT: Low-dose colchicine, starting 1–2 weeks BEFORE ULT, continue ≥6 months after urate reaches target", {
    x:0.2, y:5.3, w:9.6, h:0.14, fontSize:7, color:"7B5800", fontFace:FONT, valign:"middle"
  });

  footerBar(s);
}

// ════════════════════════════════════════════
// SLIDE 13 – COMPARISON
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s, C.teal);
  slideTitle(s, "Side-by-Side Comparison: OA vs. Gout", C.navy);
  hRule(s, 0.82, C.teal);

  const rows = [
    ["Feature", "Osteoarthritis", "Gout"],
    ["Key lifestyle change", "Weight loss + exercise", "Low-purine diet + reduce alcohol"],
    ["Acute treatment", "Topical/oral NSAIDs, acetaminophen", "NSAIDs, colchicine, corticosteroids"],
    ["Long-term prevention", "Exercise adherence, weight control", "ULT to keep uric acid <6 mg/dL"],
    ["Disease-modifying Rx", "None approved\n(exercise/weight loss = closest)", "Urate-lowering therapy (allopurinol)"],
    ["Critical DON'T", "Avoid opioids / tramadol", "Never stop ULT during a flare"],
    ["Surgical option", "Total joint arthroplasty", "Rarely needed (tophus debridement)"],
  ];

  const tbl = rows.map((r,i) => [
    { text:r[0], options:{ bold:true, fontSize:i===0?9:8.5, fontFace:FONT, color: i===0?C.white:C.navy, fill: i===0?C.teal:(i%2===0?C.light:C.white), valign:"middle" }},
    { text:r[1], options:{ fontSize:i===0?9:8.5, fontFace:FONT, color: i===0?C.white:(i===5?"A93226":"333333"), fill: i===0?C.oa_blue:(i%2===0?"EBF5FF":"F5FAFF"), bold:i===0||i===5, valign:"middle" }},
    { text:r[2], options:{ fontSize:i===0?9:8.5, fontFace:FONT, color: i===0?C.white:(i===5?C.gout_rd:"333333"), fill: i===0?C.gout_rd:(i%2===0?"FFEEEE":"FFF5F5"), bold:i===0||i===5, valign:"middle" }},
  ]);

  s.addTable(tbl, {
    x:0.3, y:0.92, w:9.4,
    colW:[2.8, 3.3, 3.3],
    border:{ color:"C8D8E8", pt:0.5 },
    rowH:0.58,
  });

  footerBar(s);
}

// ════════════════════════════════════════════
// SLIDE 14 – KEY TAKEAWAYS
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkSlide(s);
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.08, h:5.625, fill:{ color: C.amber }, line:{ color: C.amber } });

  s.addText("Key Takeaways", {
    x:0.3, y:0.25, w:9.4, h:0.55, fontSize:24, bold:true, color:C.white, fontFace:FONT
  });
  hRule(s, 0.88, C.teal);

  const takes = [
    { icon:"🦴", color:C.oa_blue, title:"OA: Exercise Is Medicine", body:"Weight loss ≥20% + tailored exercise is the most evidence-based intervention. No drug replaces these." },
    { icon:"💊", color:"2E86AB", title:"OA Pharmacology: Stepwise", body:"Start topical → oral acetaminophen → oral NSAIDs. Avoid opioids. IA corticosteroids for short-term only." },
    { icon:"🔴", color:C.gout_rd, title:"Gout: Treat Fast, Prevent Long", body:"Abort acute flares quickly (NSAIDs/colchicine within 36 hrs). Start ULT when indicated; maintain urate <6 mg/dL for life." },
    { icon:"🥗", color:C.teal, title:"Gout Lifestyle: Diet + Hydration", body:"Avoid purines, beer, fructose. Low-fat dairy + adequate hydration + gradual weight loss reduce flares significantly." },
    { icon:"⚠️", color:C.amber, title:"Critical Rules", body:"OA: Never prescribe opioids.  •  Gout: Never stop ULT during a flare — it worsens the attack." },
  ];

  takes.forEach((t,i) => {
    const y = 1.02 + i*0.88;
    card(s, 0.3, y, 9.4, 0.78, "0A1E2E", 0.08);
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.4, y:y+0.14, w:0.5, h:0.5, fill:{ color:t.color }, line:{ color:t.color }, rectRadius:0.25 });
    s.addText(t.icon, { x:0.4, y:y+0.14, w:0.5, h:0.5, fontSize:14, fontFace:FONT, align:"center", valign:"middle" });
    s.addText(t.title, { x:1.0, y:y+0.1, w:3.5, h:0.3, fontSize:10, bold:true, color:C.amber, fontFace:FONT });
    s.addText(t.body, { x:1.0, y:y+0.42, w:8.5, h:0.3, fontSize:8.5, color:"CCDDEE", fontFace:FONT });
  });
}

pres.writeFile({ fileName: "/home/daytona/workspace/oa-gout/OA_Gout_Management.pptx" })
  .then(() => console.log("PPTX created successfully!"))
  .catch(e => { console.error(e); process.exit(1); });
!

Failed to create session: bad request: failed to resolve container IP after 3 attempts: no IP address found. Is the Sandbox started?

We encountered an error while processing your request. Please try again or reach out to us for help.

Try One more time

Writing File

~/oa-gout/make_ppt.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Osteoarthritis & Gout – Management, Prevention & Lifestyle";

// ─── PALETTE ────────────────────────────────────────────────
const C = {
  navy:   "1A3A5C",
  teal:   "0E7C7B",
  amber:  "E8A838",
  red:    "C0392B",
  light:  "EEF3F8",
  white:  "FFFFFF",
  dark:   "0D1F2D",
  grey:   "6C757D",
  ltgrey: "DEE5ED",
  oablue: "2C5F8A",
  goutrd: "A93226",
};
const FONT = "Calibri";

// ─── HELPERS ────────────────────────────────────────────────
function darkBg(s) {
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{ color:C.dark }, line:{ color:C.dark } });
}
function lightBg(s, accent) {
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{ color:C.white }, line:{ color:C.white } });
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.07, fill:{ color:accent||C.navy }, line:{ color:accent||C.navy } });
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:5.555, w:10, h:0.07, fill:{ color:accent||C.navy }, line:{ color:accent||C.navy } });
}
function sectionBg(s, color) {
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{ color }, line:{ color } });
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.1, h:5.625, fill:{ color:C.amber }, line:{ color:C.amber } });
}
function hLine(s, y, color) {
  s.addShape(pres.shapes.RECTANGLE, { x:0.35, y, w:9.3, h:0.02, fill:{ color:color||C.ltgrey }, line:{ color:color||C.ltgrey } });
}
function footer(s) {
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:5.44, w:10, h:0.185, fill:{ color:C.navy }, line:{ color:C.navy } });
  s.addText("Sources: Firestein & Kelley's | Harrison's 22e | Washington Manual | Lippincott Pharmacology | Miller's Orthopaedics 9e | ACR 2019 | AAOS CPG", {
    x:0.2, y:5.447, w:9.6, h:0.17, fontSize:6, color:"8AAEC8", fontFace:FONT, align:"center"
  });
}
function slideTitle(s, text, color) {
  s.addText(text, { x:0.35, y:0.15, w:9.3, h:0.55, fontSize:21, bold:true, color:color||C.navy, fontFace:FONT, valign:"middle" });
}
function card(s, x, y, w, h, fill, r) {
  s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
    x, y, w, h, fill:{ color:fill||C.light }, line:{ color:fill||C.light }, rectRadius:r||0.08,
    shadow:{ type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.1 }
  });
}
function badge(s, x, y, w, h, fill, text, fs) {
  s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w, h, fill:{ color:fill }, line:{ color:fill }, rectRadius:0.06 });
  s.addText(text, { x, y, w, h, fontSize:fs||8, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
}
function bulletList(s, items, x, y, w, h, dotColor, fs) {
  const arr = items.map((t,i) => ({
    text: t,
    options: { bullet:{ code:"25CF", color:dotColor||C.amber }, breakLine: i<items.length-1, fontSize:fs||9, color:"333333", fontFace:FONT }
  }));
  s.addText(arr, { x, y, w, h, valign:"top" });
}

// ════════════════════════════════════════════
// SLIDE 1 – TITLE
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkBg(s);
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.1, h:5.625, fill:{ color:C.amber }, line:{ color:C.amber } });

  s.addText("Osteoarthritis & Gout", {
    x:0.3, y:1.0, w:9.4, h:1.0, fontSize:40, bold:true, color:C.white, fontFace:FONT, align:"center", charSpacing:1
  });
  s.addText("Management  •  Prevention  •  Lifestyle Modification", {
    x:0.3, y:2.1, w:9.4, h:0.5, fontSize:15, color:C.amber, fontFace:FONT, align:"center", italic:true
  });
  hLine(s, 2.72, C.teal);
  s.addText("ACR 2019  |  AAOS CPG  |  Harrison's 22e  |  Firestein & Kelley's  |  Washington Manual", {
    x:0.3, y:2.84, w:9.4, h:0.3, fontSize:8.5, color:"7AAAC8", fontFace:FONT, align:"center"
  });

  card(s, 1.0, 3.35, 3.5, 0.72, C.oablue, 0.1);
  s.addText("🦴  Osteoarthritis", { x:1.0, y:3.35, w:3.5, h:0.72, fontSize:13, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
  card(s, 5.5, 3.35, 3.5, 0.72, C.goutrd, 0.1);
  s.addText("🔴  Gout", { x:5.5, y:3.35, w:3.5, h:0.72, fontSize:13, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
}

// ════════════════════════════════════════════
// SLIDE 2 – OA SECTION DIVIDER
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  sectionBg(s, C.oablue);
  s.addText("PART 1", { x:0.4, y:1.4, w:9, h:0.45, fontSize:13, color:C.amber, fontFace:FONT, bold:true, charSpacing:6 });
  s.addText("Osteoarthritis", { x:0.4, y:1.9, w:9, h:1.1, fontSize:46, bold:true, color:C.white, fontFace:FONT });
  s.addText("Management  •  Prevention  •  Lifestyle", { x:0.4, y:3.05, w:9, h:0.45, fontSize:14, color:"AACCEE", fontFace:FONT, italic:true });
}

// ════════════════════════════════════════════
// SLIDE 3 – OA LIFESTYLE & PREVENTION
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightBg(s, C.oablue);
  slideTitle(s, "OA – Lifestyle Modifications & Prevention");
  hLine(s, 0.78, C.oablue);

  const cats = [
    { icon:"⚖️", title:"Weight Loss", fill:"1A6B9A", pts:["Most impactful modifiable factor","≥20% weight loss = greatest benefit","Combine diet + exercise (not diet alone)","Bariatric surgery for select patients"] },
    { icon:"🏃", title:"Exercise", fill:C.teal, pts:["Strength training (progressive resistance)","Aerobic/aquatic – walking, cycling","Range-of-motion & flexibility","Neuromuscular training"] },
    { icon:"📚", title:"Patient Education", fill:"7B3FA0", pts:["Ongoing – not a one-time event","Positive, non-fatalistic language","Direct to CDC / Arthritis Foundation","Tailor self-management strategies"] },
    { icon:"🦯", title:"Assistive Devices", fill:"B5600A", pts:["Canes & walking aids (recommended)","Braces for knee OA (moderate evidence)","Lateral wedge insoles: NOT recommended","Occupational therapy for hand OA"] },
  ];

  cats.forEach((c, i) => {
    const x = 0.22 + (i % 2) * 4.9;
    const y = 0.95 + Math.floor(i / 2) * 2.2;
    card(s, x, y, 4.65, 1.98, C.light, 0.09);
    badge(s, x+0.1, y+0.12, 1.6, 0.42, c.fill, c.icon+" "+c.title, 8.5);
    bulletList(s, c.pts, x+1.82, y+0.12, 2.72, 1.75, c.fill, 8.5);
  });

  footer(s);
}

// ════════════════════════════════════════════
// SLIDE 4 – OA PHARMACOLOGIC MANAGEMENT
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightBg(s, C.oablue);
  slideTitle(s, "OA – Pharmacologic Management (Stepwise)");
  hLine(s, 0.78, C.oablue);

  const steps = [
    { rank:"PREFER", drug:"Topical Agents", detail:"Topical NSAIDs (diclofenac gel), capsaicin cream", why:"Lowest systemic exposure; equivalent efficacy to oral", fill:"1A6B9A", bg:"EBF5FF" },
    { rank:"1ST LINE", drug:"Oral Acetaminophen", detail:"Standard analgesia; widely available", why:"Modest pain relief; safe for most patients", fill:"2E86AB", bg:C.light },
    { rank:"2ND LINE", drug:"Oral NSAIDs", detail:"Naproxen, ibuprofen, celecoxib", why:"More effective; lowest dose × shortest duration; add PPI if high GI risk", fill:C.teal, bg:"EBF5FF" },
    { rank:"ADJUNCT", drug:"Duloxetine", detail:"For central sensitization & widespread pain", why:"Useful when pain is out of proportion to structural changes", fill:"5A7B3A", bg:C.light },
    { rank:"LOCAL", drug:"Intra-articular Corticosteroids", detail:"Triamcinolone – short-term relief only", why:"Repeated injections may damage cartilage long-term", fill:"B5600A", bg:"FFF7EE" },
    { rank:"❌ AVOID", drug:"Opioids / Tramadol", detail:"AAOS strongly recommends AGAINST use", why:"Poor benefit-to-risk ratio in OA", fill:C.red, bg:"FEE8E6" },
  ];

  steps.forEach((st, i) => {
    const y = 0.9 + i * 0.73;
    card(s, 0.22, y, 9.56, 0.66, st.bg, 0.06);
    badge(s, 0.3, y+0.1, 1.05, 0.46, st.fill, st.rank, 7.5);
    s.addText(st.drug, { x:1.45, y:y+0.08, w:2.85, h:0.27, fontSize:9.5, bold:true, color:i===5?C.red:C.navy, fontFace:FONT });
    s.addText(st.detail, { x:1.45, y:y+0.35, w:2.85, h:0.25, fontSize:7.5, color:"555555", fontFace:FONT });
    s.addText("→ "+st.why, { x:4.42, y:y+0.18, w:5.22, h:0.32, fontSize:8.5, color:"444444", fontFace:FONT, italic:true });
  });

  footer(s);
}

// ════════════════════════════════════════════
// SLIDE 5 – OA SURGICAL OPTIONS + AAOS TABLE
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightBg(s, C.oablue);
  slideTitle(s, "OA – Surgical Options & AAOS Guideline Summary");
  hLine(s, 0.78, C.oablue);

  const surg = [
    { t:"Total Joint Arthroplasty", d:"After adequate trial of all modalities.\nDurable pain relief & function restoration.", good:true },
    { t:"High Tibial Osteotomy", d:"Unicompartmental knee OA.\nModerate evidence.", good:true },
    { t:"Arthroscopic Lavage / Debridement", d:"NOT recommended for OA.\nNo proven benefit.", good:false },
  ];
  surg.forEach((c, i) => {
    const x = 0.22 + i * 3.26;
    card(s, x, 0.9, 3.1, 1.45, c.good?"EDF7ED":"FDECEA", 0.09);
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:x+0.12, y:0.98, w:0.5, h:0.5, fill:{ color:c.good?C.teal:C.red }, line:{ color:c.good?C.teal:C.red }, rectRadius:0.25 });
    s.addText(c.good?"✓":"✗", { x:x+0.12, y:0.98, w:0.5, h:0.5, fontSize:16, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
    s.addText(c.t, { x:x+0.72, y:0.98, w:2.28, h:0.5, fontSize:9, bold:true, color:"222222", fontFace:FONT, valign:"middle" });
    s.addText(c.d, { x:x+0.12, y:1.52, w:2.88, h:0.76, fontSize:8, color:"555555", fontFace:FONT });
  });

  s.addText("AAOS Evidence-Based Recommendations – Knee OA (Non-Arthroplasty)", {
    x:0.22, y:2.5, w:9.56, h:0.28, fontSize:9.5, bold:true, color:C.oablue, fontFace:FONT
  });

  const rows = [
    ["Grade","Intervention","Verdict"],
    ["★★★★ Strong","Patient education, Exercise (supervised/aquatic), Self-management","✓ Recommended"],
    ["★★★★ Strong","Topical NSAIDs, Oral NSAIDs, Acetaminophen","✓ Recommended"],
    ["★★★★ Strong","Opioids / Tramadol","✗ NOT Recommended"],
    ["★★★ Moderate","Canes, Braces, Weight loss, IA Corticosteroids","✓ Recommended"],
    ["★★ Limited","Glucosamine, PRP, Acupuncture, TENS, Shockwave","Use selectively"],
  ];

  const tbl = rows.map((r,i) => r.map((cell, ci) => ({
    text: cell,
    options: {
      bold: i===0,
      fontSize: i===0 ? 8.5 : 8,
      fontFace: FONT,
      color: i===0 ? C.white : (cell.includes("NOT") ? C.red : cell.includes("✓") ? C.teal : "333333"),
      fill: i===0 ? C.navy : (i%2===0 ? C.light : C.white),
      align: "left", valign: "middle",
    }
  })));

  s.addTable(tbl, {
    x:0.22, y:2.82, w:9.56, colW:[2.0, 5.76, 1.8],
    border:{ color:"B0C4DE", pt:0.5 }, rowH:0.3,
  });

  footer(s);
}

// ════════════════════════════════════════════
// SLIDE 6 – GOUT SECTION DIVIDER
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  sectionBg(s, C.goutrd);
  s.addText("PART 2", { x:0.4, y:1.4, w:9, h:0.45, fontSize:13, color:C.amber, fontFace:FONT, bold:true, charSpacing:6 });
  s.addText("Gout", { x:0.4, y:1.9, w:9, h:1.1, fontSize:52, bold:true, color:C.white, fontFace:FONT });
  s.addText("Acute Treatment  •  Urate-Lowering Therapy  •  Prevention", { x:0.4, y:3.05, w:9, h:0.45, fontSize:14, color:"FFCACA", fontFace:FONT, italic:true });
}

// ════════════════════════════════════════════
// SLIDE 7 – GOUT PATHOPHYSIOLOGY
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightBg(s, C.goutrd);
  slideTitle(s, "Gout – Pathophysiology & Risk Factors");
  hLine(s, 0.78, C.goutrd);

  // Left: pathway
  card(s, 0.22, 0.9, 4.55, 4.3, "FFF5F5", 0.09);
  s.addText("Pathophysiology", { x:0.32, y:0.95, w:4.35, h:0.32, fontSize:10, bold:true, color:C.goutrd, fontFace:FONT });
  const path = [
    { t:"Hyperuricemia", arrow:false, bold:true },
    { t:"↓  (impaired renal excretion 90%, overproduction 10%)", arrow:false },
    { t:"MSU crystal deposition in joints", arrow:false, bold:true },
    { t:"↓", arrow:true },
    { t:"NLRP3 inflammasome → IL-1β release", arrow:false },
    { t:"↓", arrow:true },
    { t:"Neutrophil recruitment → lysosomal rupture", arrow:false },
    { t:"↓", arrow:true },
    { t:"ACUTE FLARE  (pain, swelling, redness)", arrow:false, bold:true },
    { t:"↓  (if untreated)", arrow:true },
    { t:"Tophi, erosions, joint destruction", arrow:false, bold:true },
  ];
  path.forEach((p,i) => {
    s.addText(p.t, {
      x:0.32, y:1.32+i*0.27, w:4.3, h:0.26,
      fontSize: p.arrow ? 13 : 8.5,
      color: p.arrow ? C.goutrd : (p.bold ? C.goutrd : "333333"),
      fontFace:FONT, bold:p.bold||false,
      align: p.arrow ? "center" : "left", valign:"middle"
    });
  });

  // Right: risk factors
  card(s, 5.0, 0.9, 4.78, 4.3, C.light, 0.09);
  s.addText("Risk Factors", { x:5.1, y:0.95, w:4.58, h:0.32, fontSize:10, bold:true, color:C.oablue, fontFace:FONT });
  const risks = [
    "🍖  Purine-rich diet (red meat, shellfish, organ meats)",
    "🍺  Alcohol – beer > spirits > wine",
    "🧃  Fructose / sugar-sweetened beverages",
    "⚖️  Obesity / metabolic syndrome",
    "💊  Diuretics (thiazide, loop diuretics)",
    "🫀  Hypertension, CKD, heart failure",
    "🚶  Sedentary lifestyle",
    "🧬  Genetic (HPRT deficiency, PRPP synthetase overactivity)",
  ];
  risks.forEach((r,i) => {
    s.addText(r, { x:5.1, y:1.32+i*0.36, w:4.55, h:0.33, fontSize:8.5, color:"333333", fontFace:FONT, valign:"middle" });
  });

  footer(s);
}

// ════════════════════════════════════════════
// SLIDE 8 – GOUT ACUTE TREATMENT
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightBg(s, C.goutrd);
  slideTitle(s, "Gout – Acute Flare Treatment");
  hLine(s, 0.78, C.goutrd);
  s.addText("Treat promptly – can abort attack within hours | Most effective within first 36 hours", {
    x:0.35, y:0.83, w:9.3, h:0.22, fontSize:8.5, color:C.goutrd, fontFace:FONT, italic:true
  });

  const drugs = [
    { rank:"1ST LINE", drug:"NSAIDs", dose:"Indomethacin 50mg TID  |  Naproxen 500mg BID\nIbuprofen 800mg TID  |  Meloxicam 15mg daily", note:"Contraindicated in CKD, peptic ulcer disease, anticoagulation", fill:"A93226", bg:"FFF0F0" },
    { rank:"1ST LINE", drug:"Colchicine", dose:"1.2 mg PO then 0.6 mg 1 hour later\n(Low-dose = equally effective, better tolerated)", note:"Most effective within 36 hrs; avoid in CKD; caution with carvedilol / grapefruit juice", fill:"A93226", bg:"FFF0F0" },
    { rank:"ALTERNATE", drug:"Intra-articular Corticosteroids", dose:"40 mg (large joints) / 10–20 mg (small joints)\nTriamcinolone or methylprednisolone", note:"Monoarticular attack; rule out septic arthritis first; 90% effective within 24 hrs", fill:"C0702A", bg:"FFF7EE" },
    { rank:"ALTERNATE", drug:"Oral Prednisone", dose:"40–60 mg/day; taper over 7–10 days", note:"When NSAIDs & colchicine contraindicated; caution in poorly controlled diabetes", fill:"C0702A", bg:"FFF7EE" },
    { rank:"REFRACTORY", drug:"Anakinra (IL-1 inhibitor)", dose:"100 mg SC daily × 3 days\n(CKD <30 mL/min: every other day)", note:"When standard therapy is contraindicated or ineffective; avoid in active infection", fill:"8E44AD", bg:"F8F0FE" },
  ];

  drugs.forEach((d,i) => {
    const y = 1.1 + i * 0.83;
    card(s, 0.22, y, 9.56, 0.76, d.bg, 0.07);
    badge(s, 0.3, y+0.13, 1.0, 0.5, d.fill, d.rank, 7);
    s.addText(d.drug, { x:1.4, y:y+0.08, w:2.8, h:0.28, fontSize:9.5, bold:true, color:C.navy, fontFace:FONT });
    s.addText(d.dose, { x:1.4, y:y+0.36, w:2.8, h:0.34, fontSize:7.5, color:"555555", fontFace:FONT });
    s.addText("⚠  "+d.note, { x:4.35, y:y+0.2, w:5.3, h:0.37, fontSize:8, color:"666666", fontFace:FONT, italic:true });
  });

  footer(s);
}

// ════════════════════════════════════════════
// SLIDE 9 – GOUT ULT
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightBg(s, C.goutrd);
  slideTitle(s, "Gout – Urate-Lowering Therapy (ULT)");
  hLine(s, 0.78, C.goutrd);

  // Indications card
  card(s, 0.22, 0.88, 4.55, 1.95, "FFF5F5", 0.09);
  s.addText("Indications for ULT", { x:0.32, y:0.93, w:4.35, h:0.3, fontSize:9.5, bold:true, color:C.goutrd, fontFace:FONT });
  bulletList(s, ["≥2 flares/year","Tophi present","Urate nephropathy or nephrolithiasis","CKD ≥ stage 3","Uric acid >9 mg/dL at first flare"], 0.32, 1.26, 4.3, 1.5, C.goutrd, 8.5);

  // Targets card
  card(s, 4.95, 0.88, 4.83, 1.95, "FFF0E0", 0.09);
  s.addText("Urate Targets & Timing", { x:5.05, y:0.93, w:4.63, h:0.3, fontSize:9.5, bold:true, color:"B5600A", fontFace:FONT });
  s.addText("No tophi  →  < 6 mg/dL", { x:5.05, y:1.28, w:4.63, h:0.35, fontSize:11, bold:true, color:C.teal, fontFace:FONT });
  s.addText("With tophi  →  < 5 mg/dL", { x:5.05, y:1.67, w:4.63, h:0.35, fontSize:11, bold:true, color:C.goutrd, fontFace:FONT });
  s.addText("• Start ≥2 weeks AFTER flare resolves\n• NEVER stop ULT during an active flare\n• Prophylaxis: low-dose colchicine ≥6 months", { x:5.05, y:2.06, w:4.63, h:0.65, fontSize:8, color:"555555", fontFace:FONT });

  // ULT table
  s.addText("ULT Drug Options", { x:0.22, y:2.9, w:9.56, h:0.28, fontSize:10, bold:true, color:C.navy, fontFace:FONT });
  const ult = [
    ["Drug","Class","Dose","Key Caution"],
    ["Allopurinol","XO Inhibitor (1st line)","Start 100 mg; titrate slowly; max 800 mg","Screen HLA-B*5801 in African Americans & SE Asians\n→ risk of fatal severe cutaneous reaction"],
    ["Febuxostat","XO Inhibitor (2nd line)","40–80 mg/day","Higher cardiovascular event rate; blocks azathioprine/6-MP metabolism (reduce dose 60–75%)"],
    ["Probenecid","Uricosuric","500–3000 mg/day in divided doses","Ineffective in renal impairment; avoid if urinary UA >800 mg/24h"],
    ["Pegloticase","Uricase (IV)","8 mg IV every 2 weeks","Refractory tophaceous gout only; expensive"],
  ];
  const ultTbl = ult.map((r,i) => r.map(cell => ({
    text: cell,
    options: {
      bold:i===0, fontSize:i===0?8.5:8, fontFace:FONT,
      color: i===0?C.white:(cell.includes("HLA")||cell.includes("cardiovascular")||cell.includes("Ineffective")?"A93226":"333333"),
      fill: i===0?C.goutrd:(i%2===0?"FFF5F5":C.white),
      valign:"middle", align:"left",
    }
  })));
  s.addTable(ultTbl, { x:0.22, y:3.2, w:9.56, colW:[1.8,1.9,2.5,3.36], border:{ color:"E0B0B0", pt:0.5 }, rowH:0.43 });

  footer(s);
}

// ════════════════════════════════════════════
// SLIDE 10 – GOUT LIFESTYLE
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightBg(s, C.goutrd);
  slideTitle(s, "Gout – Lifestyle Modifications & Prevention");
  hLine(s, 0.78, C.goutrd);

  // AVOID column
  card(s, 0.22, 0.9, 4.65, 4.3, "FDECEA", 0.09);
  badge(s, 0.32, 0.96, 2.1, 0.38, C.goutrd, "❌  AVOID / LIMIT", 8.5);
  const avoid = [
    "Red meat & organ meats (liver, kidney)",
    "Shellfish (shrimp, lobster, scallops)",
    "Beer (highest risk) > spirits > wine",
    "Sugar-sweetened drinks & fructose",
    "Rapid/crash weight loss (triggers flares)",
    "Thiazide & loop diuretics – switch if possible",
    "Cyclosporine, pyrazinamide, ethambutol",
    "Sedentary lifestyle",
  ];
  const avoidArr = avoid.map((t,i) => ({
    text:t, options:{ bullet:{ code:"274C", color:C.goutrd }, breakLine:i<avoid.length-1, fontSize:8.5, color:"333333", fontFace:FONT }
  }));
  s.addText(avoidArr, { x:0.35, y:1.4, w:4.35, h:3.65, valign:"top" });

  // ENCOURAGE column
  card(s, 5.13, 0.9, 4.65, 4.3, "EDF7ED", 0.09);
  badge(s, 5.23, 0.96, 2.0, 0.38, C.teal, "✅  ENCOURAGE", 8.5);
  const enc = [
    "Low-fat dairy (mildly uricosuric effect)",
    "Adequate hydration: 2–3 L/day",
    "Coffee (linked to lower uric acid levels)",
    "Cherries / tart cherry juice",
    "Gradual, sustained weight loss",
    "Losartan for hypertension (mild uricosuric)",
    "Regular moderate exercise",
    "Treat comorbidities (HTN, CKD, metabolic syndrome)",
  ];
  const encArr = enc.map((t,i) => ({
    text:t, options:{ bullet:{ code:"2714", color:C.teal }, breakLine:i<enc.length-1, fontSize:8.5, color:"333333", fontFace:FONT }
  }));
  s.addText(encArr, { x:5.26, y:1.4, w:4.38, h:3.65, valign:"top" });

  // Warning strip above footer
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:5.3, w:10, h:0.14, fill:{ color:"FFF3CD" }, line:{ color:"FFF3CD" } });
  s.addText("⚠  Flare Prophylaxis when starting ULT: Low-dose colchicine starting 1–2 weeks BEFORE ULT; continue ≥6 months after urate reaches target (longer if tophi present)", {
    x:0.2, y:5.3, w:9.6, h:0.14, fontSize:7, color:"7B5800", fontFace:FONT, valign:"middle"
  });

  footer(s);
}

// ════════════════════════════════════════════
// SLIDE 11 – COMPARISON
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightBg(s, C.teal);
  slideTitle(s, "OA vs. Gout – Side-by-Side Comparison");
  hLine(s, 0.78, C.teal);

  const rows = [
    ["Feature","Osteoarthritis","Gout"],
    ["Key lifestyle change","Weight loss + exercise","Low-purine diet + reduce alcohol"],
    ["Acute treatment","Topical/oral NSAIDs, acetaminophen","NSAIDs, colchicine, corticosteroids"],
    ["Long-term prevention","Exercise adherence, weight control","ULT – keep uric acid <6 mg/dL"],
    ["Disease-modifying Rx","None approved\n(exercise/weight loss = closest)","Urate-lowering therapy (allopurinol)"],
    ["Critical DON'T","Avoid opioids / tramadol","Never stop ULT during a flare"],
    ["Surgical option","Total joint arthroplasty","Rarely needed (tophus debridement)"],
  ];

  const tbl = rows.map((r,i) => [
    { text:r[0], options:{ bold:true, fontSize:i===0?9:8.5, fontFace:FONT, color:i===0?C.white:C.navy, fill:i===0?C.teal:(i%2===0?C.light:C.white), valign:"middle" }},
    { text:r[1], options:{ fontSize:i===0?9:8.5, fontFace:FONT, color:i===0?C.white:(i===5?"A93226":"333333"), fill:i===0?C.oablue:(i%2===0?"EBF5FF":"F5FAFF"), bold:i===0||i===5, valign:"middle" }},
    { text:r[2], options:{ fontSize:i===0?9:8.5, fontFace:FONT, color:i===0?C.white:(i===5?C.goutrd:"333333"), fill:i===0?C.goutrd:(i%2===0?"FFEEEE":"FFF5F5"), bold:i===0||i===5, valign:"middle" }},
  ]);

  s.addTable(tbl, { x:0.22, y:0.9, w:9.56, colW:[2.8,3.38,3.38], border:{ color:"C8D8E8", pt:0.5 }, rowH:0.59 });

  footer(s);
}

// ════════════════════════════════════════════
// SLIDE 12 – KEY TAKEAWAYS
// ════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkBg(s);
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.1, h:5.625, fill:{ color:C.amber }, line:{ color:C.amber } });

  s.addText("Key Takeaways", { x:0.3, y:0.2, w:9.4, h:0.52, fontSize:24, bold:true, color:C.white, fontFace:FONT });
  hLine(s, 0.8, C.teal);

  const takes = [
    { icon:"⚖️", color:C.oablue, title:"OA: Lifestyle Is the Cornerstone", body:"Weight loss ≥20% + tailored exercise is the strongest evidence-based intervention. No approved disease-modifying drug exists." },
    { icon:"💊", color:"2E86AB", title:"OA Pharmacology: Stepwise & Topical-First", body:"Topical NSAIDs → oral acetaminophen → oral NSAIDs. Avoid opioids. IA corticosteroids for short-term only." },
    { icon:"🔴", color:C.goutrd, title:"Gout: Treat Fast, Prevent Long-Term", body:"Abort acute flares quickly (NSAIDs/colchicine within 36 hrs). Initiate ULT when indicated; maintain urate <6 mg/dL lifelong." },
    { icon:"🥗", color:C.teal, title:"Gout Lifestyle: Diet + Hydration + Comorbidities", body:"Avoid purines, beer, fructose. Low-fat dairy + 2–3 L fluids/day. Treat HTN, CKD, metabolic syndrome aggressively." },
    { icon:"⚠️", color:C.amber, title:"Two Rules to Never Forget", body:"OA → Never prescribe opioids/tramadol.     Gout → Never stop ULT during an active flare – it worsens the attack." },
  ];

  takes.forEach((t,i) => {
    const y = 0.95 + i * 0.9;
    card(s, 0.28, y, 9.44, 0.8, "0A1E2E", 0.08);
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.38, y:y+0.15, w:0.5, h:0.5, fill:{ color:t.color }, line:{ color:t.color }, rectRadius:0.25 });
    s.addText(t.icon, { x:0.38, y:y+0.15, w:0.5, h:0.5, fontSize:14, fontFace:FONT, align:"center", valign:"middle" });
    s.addText(t.title, { x:0.98, y:y+0.1, w:8.6, h:0.3, fontSize:9.5, bold:true, color:C.amber, fontFace:FONT });
    s.addText(t.body, { x:0.98, y:y+0.42, w:8.6, h:0.3, fontSize:8.5, color:"BBCCDD", fontFace:FONT });
  });
}

// ─── WRITE FILE ─────────────────────────────
pres.writeFile({ fileName:"/home/daytona/workspace/oa-gout/OA_Gout_Management.pptx" })
  .then(() => console.log("DONE"))
  .catch(e => { console.error(e); process.exit(1); });
Running Command

cd /home/daytona/workspace/oa-gout && node make_ppt.js

Running Command

ls -lh /home/daytona/workspace/oa-gout/OA_Gout_Management.pptx

Your PowerPoint is ready! Download it here:

OA Gout Management

Presentation · PPTX

The presentation has 12 slides with a clean, professional design:
SlideContent
1Title slide (dark theme)
2OA Section divider
3OA – Lifestyle & Prevention (4 cards: Weight loss, Exercise, Education, Assistive devices)
4OA – Pharmacologic Management (stepwise table with color-coded badges)
5OA – Surgical Options + AAOS evidence-grade table
6Gout Section divider
7Gout – Pathophysiology & Risk Factors (2-column layout)
8Gout – Acute Flare Treatment (5-drug table with 1st line / alternate / refractory tiers)
9Gout – Urate-Lowering Therapy (indications, targets, drug table)
10Gout – Lifestyle: Avoid vs. Encourage (red/green columns)
11OA vs. Gout Side-by-Side Comparison table
12Key Takeaways (dark theme, 5 summary cards)

Make presentation on it

You already have the PowerPoint presentation ready from the previous step! Download it here:

OA Gout Management

Presentation · PPTX

This is a fully designed 12-slide presentation covering:
  1. Title Slide - Osteoarthritis & Gout
  2. OA Section Divider
  3. OA Lifestyle & Prevention - Weight loss, exercise, education, assistive devices
  4. OA Pharmacology - Stepwise management from topical to oral
  5. OA Surgical Options - With AAOS evidence grades
  6. Gout Section Divider
  7. Gout Pathophysiology - Crystal formation, risk factors
  8. Gout Acute Treatment - NSAIDs, colchicine, steroids, anakinra
  9. Gout ULT - Allopurinol, febuxostat, probenecid, pegloticase
  10. Gout Lifestyle - Avoid vs. Encourage (two-column layout)
  11. OA vs. Gout Comparison - Side-by-side table
  12. Key Takeaways - 5 summary points
If you meant something different - like a different format, more slides, speaker notes, or a specific style - let me know and I'll rebuild it to your specs!

Can u give a thank u slide from above ppt

Running Command

ls /home/daytona/workspace/oa-gout/

The sandbox was reset since our last session, so the old file is gone. I'll recreate the full presentation with the Thank You slide added.
Running Command

mkdir -p /home/daytona/workspace/oa-gout

Running Command

mkdir -p /tmp/workspace/oa-gout && ls /tmp/workspace/

Writing File

~/oa-gout/make_ppt.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Osteoarthritis & Gout – Management, Prevention & Lifestyle";

const C = {
  navy:   "1A3A5C",
  teal:   "0E7C7B",
  amber:  "E8A838",
  red:    "C0392B",
  light:  "EEF3F8",
  white:  "FFFFFF",
  dark:   "0D1F2D",
  ltgrey: "DEE5ED",
  oablue: "2C5F8A",
  goutrd: "A93226",
};
const FONT = "Calibri";

function darkBg(s) {
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{ color:C.dark }, line:{ color:C.dark } });
}
function lightBg(s, accent) {
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{ color:C.white }, line:{ color:C.white } });
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.07, fill:{ color:accent||C.navy }, line:{ color:accent||C.navy } });
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:5.555, w:10, h:0.07, fill:{ color:accent||C.navy }, line:{ color:accent||C.navy } });
}
function sectionBg(s, color) {
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{ color }, line:{ color } });
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.1, h:5.625, fill:{ color:C.amber }, line:{ color:C.amber } });
}
function hLine(s, y, color) {
  s.addShape(pres.shapes.RECTANGLE, { x:0.35, y, w:9.3, h:0.02, fill:{ color:color||C.ltgrey }, line:{ color:color||C.ltgrey } });
}
function footer(s) {
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:5.44, w:10, h:0.185, fill:{ color:C.navy }, line:{ color:C.navy } });
  s.addText("Sources: Firestein & Kelley's | Harrison's 22e | Washington Manual | Lippincott Pharmacology | Miller's Orthopaedics 9e | ACR 2019 | AAOS CPG", {
    x:0.2, y:5.447, w:9.6, h:0.17, fontSize:6, color:"8AAEC8", fontFace:FONT, align:"center"
  });
}
function slideTitle(s, text) {
  s.addText(text, { x:0.35, y:0.15, w:9.3, h:0.55, fontSize:21, bold:true, color:C.navy, fontFace:FONT, valign:"middle" });
}
function card(s, x, y, w, h, fill, r) {
  s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
    x, y, w, h, fill:{ color:fill||C.light }, line:{ color:fill||C.light }, rectRadius:r||0.08,
    shadow:{ type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.1 }
  });
}
function badge(s, x, y, w, h, fill, text, fs) {
  s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w, h, fill:{ color:fill }, line:{ color:fill }, rectRadius:0.06 });
  s.addText(text, { x, y, w, h, fontSize:fs||8, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
}
function bulletList(s, items, x, y, w, h, dotColor, fs) {
  const arr = items.map((t,i) => ({
    text: t,
    options: { bullet:{ code:"25CF", color:dotColor||C.amber }, breakLine: i<items.length-1, fontSize:fs||9, color:"333333", fontFace:FONT }
  }));
  s.addText(arr, { x, y, w, h, valign:"top" });
}

// ── SLIDE 1: TITLE ──────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBg(s);
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.1, h:5.625, fill:{ color:C.amber }, line:{ color:C.amber } });
  s.addText("Osteoarthritis & Gout", { x:0.3, y:1.0, w:9.4, h:1.0, fontSize:40, bold:true, color:C.white, fontFace:FONT, align:"center", charSpacing:1 });
  s.addText("Management  •  Prevention  •  Lifestyle Modification", { x:0.3, y:2.1, w:9.4, h:0.5, fontSize:15, color:C.amber, fontFace:FONT, align:"center", italic:true });
  hLine(s, 2.72, C.teal);
  s.addText("ACR 2019  |  AAOS CPG  |  Harrison's 22e  |  Firestein & Kelley's  |  Washington Manual", { x:0.3, y:2.84, w:9.4, h:0.3, fontSize:8.5, color:"7AAAC8", fontFace:FONT, align:"center" });
  card(s, 1.0, 3.35, 3.5, 0.72, C.oablue, 0.1);
  s.addText("🦴  Osteoarthritis", { x:1.0, y:3.35, w:3.5, h:0.72, fontSize:13, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
  card(s, 5.5, 3.35, 3.5, 0.72, C.goutrd, 0.1);
  s.addText("🔴  Gout", { x:5.5, y:3.35, w:3.5, h:0.72, fontSize:13, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
}

// ── SLIDE 2: OA DIVIDER ──────────────────────────────────────
{
  const s = pres.addSlide();
  sectionBg(s, C.oablue);
  s.addText("PART 1", { x:0.4, y:1.4, w:9, h:0.45, fontSize:13, color:C.amber, fontFace:FONT, bold:true, charSpacing:6 });
  s.addText("Osteoarthritis", { x:0.4, y:1.9, w:9, h:1.1, fontSize:46, bold:true, color:C.white, fontFace:FONT });
  s.addText("Management  •  Prevention  •  Lifestyle", { x:0.4, y:3.05, w:9, h:0.45, fontSize:14, color:"AACCEE", fontFace:FONT, italic:true });
}

// ── SLIDE 3: OA LIFESTYLE ────────────────────────────────────
{
  const s = pres.addSlide();
  lightBg(s, C.oablue);
  slideTitle(s, "OA – Lifestyle Modifications & Prevention");
  hLine(s, 0.78, C.oablue);
  const cats = [
    { icon:"⚖️", title:"Weight Loss", fill:"1A6B9A", pts:["Most impactful modifiable factor","≥20% weight loss = greatest benefit","Combine diet + exercise (not diet alone)","Bariatric surgery for select patients"] },
    { icon:"🏃", title:"Exercise", fill:C.teal, pts:["Strength training (progressive resistance)","Aerobic/aquatic – walking, cycling","Range-of-motion & flexibility","Neuromuscular training"] },
    { icon:"📚", title:"Patient Education", fill:"7B3FA0", pts:["Ongoing – not a one-time event","Positive, non-fatalistic language","Direct to CDC / Arthritis Foundation","Tailor self-management strategies"] },
    { icon:"🦯", title:"Assistive Devices", fill:"B5600A", pts:["Canes & walking aids (recommended)","Braces for knee OA (moderate evidence)","Lateral wedge insoles: NOT recommended","Occupational therapy for hand OA"] },
  ];
  cats.forEach((c, i) => {
    const x = 0.22 + (i % 2) * 4.9;
    const y = 0.95 + Math.floor(i / 2) * 2.2;
    card(s, x, y, 4.65, 1.98, C.light, 0.09);
    badge(s, x+0.1, y+0.12, 1.6, 0.42, c.fill, c.icon+" "+c.title, 8.5);
    bulletList(s, c.pts, x+1.82, y+0.12, 2.72, 1.75, c.fill, 8.5);
  });
  footer(s);
}

// ── SLIDE 4: OA PHARMACOLOGY ─────────────────────────────────
{
  const s = pres.addSlide();
  lightBg(s, C.oablue);
  slideTitle(s, "OA – Pharmacologic Management (Stepwise)");
  hLine(s, 0.78, C.oablue);
  const steps = [
    { rank:"PREFER",   drug:"Topical Agents",              detail:"Topical NSAIDs (diclofenac gel), capsaicin cream",       why:"Lowest systemic exposure; equivalent efficacy to oral",               fill:"1A6B9A", bg:"EBF5FF" },
    { rank:"1ST LINE", drug:"Oral Acetaminophen",           detail:"Standard analgesia; widely available",                   why:"Modest pain relief; safe for most patients",                          fill:"2E86AB", bg:C.light  },
    { rank:"2ND LINE", drug:"Oral NSAIDs",                  detail:"Naproxen, ibuprofen, celecoxib",                         why:"More effective; lowest dose × shortest duration; add PPI if GI risk", fill:C.teal,   bg:"EBF5FF" },
    { rank:"ADJUNCT",  drug:"Duloxetine",                   detail:"For central sensitization & widespread pain",            why:"Useful when pain is out of proportion to structural changes",          fill:"5A7B3A", bg:C.light  },
    { rank:"LOCAL",    drug:"Intra-articular Corticosteroids", detail:"Triamcinolone – short-term relief only",              why:"Repeated injections may damage cartilage long-term",                  fill:"B5600A", bg:"FFF7EE" },
    { rank:"❌ AVOID", drug:"Opioids / Tramadol",           detail:"AAOS strongly recommends AGAINST use",                  why:"Poor benefit-to-risk ratio in OA",                                    fill:C.red,    bg:"FEE8E6" },
  ];
  steps.forEach((st, i) => {
    const y = 0.9 + i * 0.73;
    card(s, 0.22, y, 9.56, 0.66, st.bg, 0.06);
    badge(s, 0.3, y+0.1, 1.05, 0.46, st.fill, st.rank, 7.5);
    s.addText(st.drug,   { x:1.45, y:y+0.08, w:2.85, h:0.27, fontSize:9.5, bold:true, color:i===5?C.red:C.navy, fontFace:FONT });
    s.addText(st.detail, { x:1.45, y:y+0.35, w:2.85, h:0.25, fontSize:7.5, color:"555555", fontFace:FONT });
    s.addText("→ "+st.why, { x:4.42, y:y+0.18, w:5.22, h:0.32, fontSize:8.5, color:"444444", fontFace:FONT, italic:true });
  });
  footer(s);
}

// ── SLIDE 5: OA SURGICAL + AAOS ─────────────────────────────
{
  const s = pres.addSlide();
  lightBg(s, C.oablue);
  slideTitle(s, "OA – Surgical Options & AAOS Guideline Summary");
  hLine(s, 0.78, C.oablue);
  const surg = [
    { t:"Total Joint Arthroplasty",         d:"After adequate trial of all modalities.\nDurable pain relief & function restoration.", good:true },
    { t:"High Tibial Osteotomy",             d:"Unicompartmental knee OA.\nModerate evidence.",                                        good:true },
    { t:"Arthroscopic Lavage / Debridement", d:"NOT recommended for OA.\nNo proven benefit.",                                          good:false },
  ];
  surg.forEach((c, i) => {
    const x = 0.22 + i * 3.26;
    card(s, x, 0.9, 3.1, 1.45, c.good?"EDF7ED":"FDECEA", 0.09);
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:x+0.12, y:0.98, w:0.5, h:0.5, fill:{ color:c.good?C.teal:C.red }, line:{ color:c.good?C.teal:C.red }, rectRadius:0.25 });
    s.addText(c.good?"✓":"✗", { x:x+0.12, y:0.98, w:0.5, h:0.5, fontSize:16, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
    s.addText(c.t, { x:x+0.72, y:0.98, w:2.28, h:0.5,  fontSize:9, bold:true, color:"222222", fontFace:FONT, valign:"middle" });
    s.addText(c.d, { x:x+0.12, y:1.52, w:2.88, h:0.76, fontSize:8, color:"555555", fontFace:FONT });
  });
  s.addText("AAOS Evidence-Based Recommendations – Knee OA (Non-Arthroplasty)", { x:0.22, y:2.5, w:9.56, h:0.28, fontSize:9.5, bold:true, color:C.oablue, fontFace:FONT });
  const rows = [
    ["Grade","Intervention","Verdict"],
    ["★★★★ Strong","Patient education, Exercise (supervised/aquatic), Self-management","✓ Recommended"],
    ["★★★★ Strong","Topical NSAIDs, Oral NSAIDs, Acetaminophen","✓ Recommended"],
    ["★★★★ Strong","Opioids / Tramadol","✗ NOT Recommended"],
    ["★★★ Moderate","Canes, Braces, Weight loss, IA Corticosteroids","✓ Recommended"],
    ["★★ Limited","Glucosamine, PRP, Acupuncture, TENS, Shockwave","Use selectively"],
  ];
  const tbl = rows.map((r,i) => r.map(cell => ({
    text: cell,
    options: { bold:i===0, fontSize:i===0?8.5:8, fontFace:FONT,
      color: i===0?C.white:(cell.includes("NOT")?C.red:cell.includes("✓")?C.teal:"333333"),
      fill: i===0?C.navy:(i%2===0?C.light:C.white), align:"left", valign:"middle" }
  })));
  s.addTable(tbl, { x:0.22, y:2.82, w:9.56, colW:[2.0,5.76,1.8], border:{ color:"B0C4DE", pt:0.5 }, rowH:0.3 });
  footer(s);
}

// ── SLIDE 6: GOUT DIVIDER ────────────────────────────────────
{
  const s = pres.addSlide();
  sectionBg(s, C.goutrd);
  s.addText("PART 2", { x:0.4, y:1.4, w:9, h:0.45, fontSize:13, color:C.amber, fontFace:FONT, bold:true, charSpacing:6 });
  s.addText("Gout", { x:0.4, y:1.9, w:9, h:1.1, fontSize:52, bold:true, color:C.white, fontFace:FONT });
  s.addText("Acute Treatment  •  Urate-Lowering Therapy  •  Prevention", { x:0.4, y:3.05, w:9, h:0.45, fontSize:14, color:"FFCACA", fontFace:FONT, italic:true });
}

// ── SLIDE 7: GOUT PATHOPHYSIOLOGY ───────────────────────────
{
  const s = pres.addSlide();
  lightBg(s, C.goutrd);
  slideTitle(s, "Gout – Pathophysiology & Risk Factors");
  hLine(s, 0.78, C.goutrd);
  card(s, 0.22, 0.9, 4.55, 4.3, "FFF5F5", 0.09);
  s.addText("Pathophysiology", { x:0.32, y:0.95, w:4.35, h:0.32, fontSize:10, bold:true, color:C.goutrd, fontFace:FONT });
  const path = [
    { t:"Hyperuricemia", bold:true, arrow:false },
    { t:"↓  (impaired renal excretion 90%, overproduction 10%)", bold:false, arrow:false },
    { t:"MSU crystal deposition in joints", bold:true, arrow:false },
    { t:"↓", bold:false, arrow:true },
    { t:"NLRP3 inflammasome → IL-1β release", bold:false, arrow:false },
    { t:"↓", bold:false, arrow:true },
    { t:"Neutrophil recruitment → lysosomal rupture", bold:false, arrow:false },
    { t:"↓", bold:false, arrow:true },
    { t:"ACUTE FLARE  (pain, swelling, redness)", bold:true, arrow:false },
    { t:"↓  (if untreated)", bold:false, arrow:true },
    { t:"Tophi, erosions, joint destruction", bold:true, arrow:false },
  ];
  path.forEach((p,i) => {
    s.addText(p.t, { x:0.32, y:1.32+i*0.27, w:4.3, h:0.26, fontSize:p.arrow?13:8.5,
      color:p.arrow?C.goutrd:(p.bold?C.goutrd:"333333"), fontFace:FONT, bold:p.bold||false,
      align:p.arrow?"center":"left", valign:"middle" });
  });
  card(s, 5.0, 0.9, 4.78, 4.3, C.light, 0.09);
  s.addText("Risk Factors", { x:5.1, y:0.95, w:4.58, h:0.32, fontSize:10, bold:true, color:C.oablue, fontFace:FONT });
  ["🍖  Purine-rich diet (red meat, shellfish, organ meats)","🍺  Alcohol – beer > spirits > wine","🧃  Fructose / sugar-sweetened beverages","⚖️  Obesity / metabolic syndrome","💊  Diuretics (thiazide, loop diuretics)","🫀  Hypertension, CKD, heart failure","🚶  Sedentary lifestyle","🧬  Genetic (HPRT deficiency, PRPP synthetase overactivity)"]
    .forEach((r,i) => s.addText(r, { x:5.1, y:1.32+i*0.36, w:4.55, h:0.33, fontSize:8.5, color:"333333", fontFace:FONT, valign:"middle" }));
  footer(s);
}

// ── SLIDE 8: GOUT ACUTE TREATMENT ───────────────────────────
{
  const s = pres.addSlide();
  lightBg(s, C.goutrd);
  slideTitle(s, "Gout – Acute Flare Treatment");
  hLine(s, 0.78, C.goutrd);
  s.addText("Treat promptly – can abort attack within hours | Most effective within first 36 hours", { x:0.35, y:0.83, w:9.3, h:0.22, fontSize:8.5, color:C.goutrd, fontFace:FONT, italic:true });
  const drugs = [
    { rank:"1ST LINE",  drug:"NSAIDs",                          dose:"Indomethacin 50mg TID  |  Naproxen 500mg BID\nIbuprofen 800mg TID  |  Meloxicam 15mg daily",        note:"Contraindicated in CKD, peptic ulcer disease, anticoagulation",                          fill:"A93226", bg:"FFF0F0" },
    { rank:"1ST LINE",  drug:"Colchicine",                      dose:"1.2 mg PO then 0.6 mg 1 hour later\n(Low-dose = equally effective, better tolerated)",             note:"Most effective within 36 hrs; avoid in CKD; caution with carvedilol / grapefruit juice", fill:"A93226", bg:"FFF0F0" },
    { rank:"ALTERNATE", drug:"Intra-articular Corticosteroids", dose:"40 mg (large joints) / 10–20 mg (small joints)\nTriamcinolone or methylprednisolone",               note:"Monoarticular attack; rule out septic arthritis; 90% effective within 24 hrs",           fill:"C0702A", bg:"FFF7EE" },
    { rank:"ALTERNATE", drug:"Oral Prednisone",                 dose:"40–60 mg/day; taper over 7–10 days",                                                                 note:"When NSAIDs & colchicine contraindicated; caution in poorly controlled diabetes",        fill:"C0702A", bg:"FFF7EE" },
    { rank:"REFRACTORY",drug:"Anakinra (IL-1 inhibitor)",       dose:"100 mg SC daily × 3 days",                                                                           note:"When standard therapy is contraindicated or ineffective; avoid in active infection",      fill:"8E44AD", bg:"F8F0FE" },
  ];
  drugs.forEach((d,i) => {
    const y = 1.1 + i * 0.83;
    card(s, 0.22, y, 9.56, 0.76, d.bg, 0.07);
    badge(s, 0.3, y+0.13, 1.0, 0.5, d.fill, d.rank, 7);
    s.addText(d.drug, { x:1.4, y:y+0.08, w:2.8, h:0.28, fontSize:9.5, bold:true, color:C.navy, fontFace:FONT });
    s.addText(d.dose,  { x:1.4, y:y+0.36, w:2.8, h:0.34, fontSize:7.5, color:"555555", fontFace:FONT });
    s.addText("⚠  "+d.note, { x:4.35, y:y+0.2, w:5.3, h:0.37, fontSize:8, color:"666666", fontFace:FONT, italic:true });
  });
  footer(s);
}

// ── SLIDE 9: GOUT ULT ───────────────────────────────────────
{
  const s = pres.addSlide();
  lightBg(s, C.goutrd);
  slideTitle(s, "Gout – Urate-Lowering Therapy (ULT)");
  hLine(s, 0.78, C.goutrd);
  card(s, 0.22, 0.88, 4.55, 1.95, "FFF5F5", 0.09);
  s.addText("Indications for ULT", { x:0.32, y:0.93, w:4.35, h:0.3, fontSize:9.5, bold:true, color:C.goutrd, fontFace:FONT });
  bulletList(s, ["≥2 flares/year","Tophi present","Urate nephropathy or nephrolithiasis","CKD ≥ stage 3","Uric acid >9 mg/dL at first flare"], 0.32, 1.26, 4.3, 1.5, C.goutrd, 8.5);
  card(s, 4.95, 0.88, 4.83, 1.95, "FFF0E0", 0.09);
  s.addText("Urate Targets & Timing", { x:5.05, y:0.93, w:4.63, h:0.3, fontSize:9.5, bold:true, color:"B5600A", fontFace:FONT });
  s.addText("No tophi  →  < 6 mg/dL",  { x:5.05, y:1.28, w:4.63, h:0.35, fontSize:11, bold:true, color:C.teal,   fontFace:FONT });
  s.addText("With tophi  →  < 5 mg/dL", { x:5.05, y:1.67, w:4.63, h:0.35, fontSize:11, bold:true, color:C.goutrd, fontFace:FONT });
  s.addText("• Start ≥2 weeks AFTER flare resolves\n• NEVER stop ULT during an active flare\n• Prophylaxis: low-dose colchicine ≥6 months", { x:5.05, y:2.06, w:4.63, h:0.65, fontSize:8, color:"555555", fontFace:FONT });
  s.addText("ULT Drug Options", { x:0.22, y:2.9, w:9.56, h:0.28, fontSize:10, bold:true, color:C.navy, fontFace:FONT });
  const ult = [
    ["Drug","Class","Dose","Key Caution"],
    ["Allopurinol","XO Inhibitor (1st line)","Start 100 mg; titrate slowly; max 800 mg","Screen HLA-B*5801 in African Americans & SE Asians → risk of fatal severe cutaneous reaction"],
    ["Febuxostat","XO Inhibitor (2nd line)","40–80 mg/day","Higher cardiovascular event rate; blocks azathioprine/6-MP metabolism (reduce dose 60–75%)"],
    ["Probenecid","Uricosuric","500–3000 mg/day in divided doses","Ineffective in renal impairment; avoid if urinary UA >800 mg/24h"],
    ["Pegloticase","Uricase (IV)","8 mg IV every 2 weeks","Refractory tophaceous gout only; expensive"],
  ];
  const ultTbl = ult.map((r,i) => r.map(cell => ({
    text: cell,
    options: { bold:i===0, fontSize:i===0?8.5:8, fontFace:FONT,
      color: i===0?C.white:(cell.includes("HLA")||cell.includes("cardiovascular")||cell.includes("Ineffective")?"A93226":"333333"),
      fill: i===0?C.goutrd:(i%2===0?"FFF5F5":C.white), valign:"middle", align:"left" }
  })));
  s.addTable(ultTbl, { x:0.22, y:3.2, w:9.56, colW:[1.8,1.9,2.5,3.36], border:{ color:"E0B0B0", pt:0.5 }, rowH:0.43 });
  footer(s);
}

// ── SLIDE 10: GOUT LIFESTYLE ─────────────────────────────────
{
  const s = pres.addSlide();
  lightBg(s, C.goutrd);
  slideTitle(s, "Gout – Lifestyle Modifications & Prevention");
  hLine(s, 0.78, C.goutrd);
  card(s, 0.22, 0.9, 4.65, 4.3, "FDECEA", 0.09);
  badge(s, 0.32, 0.96, 2.1, 0.38, C.goutrd, "❌  AVOID / LIMIT", 8.5);
  const avoidArr = ["Red meat & organ meats (liver, kidney)","Shellfish (shrimp, lobster, scallops)","Beer (highest risk) > spirits > wine","Sugar-sweetened drinks & fructose","Rapid/crash weight loss (triggers flares)","Thiazide & loop diuretics – switch if possible","Cyclosporine, pyrazinamide, ethambutol","Sedentary lifestyle"]
    .map((t,i,a) => ({ text:t, options:{ bullet:{ code:"274C", color:C.goutrd }, breakLine:i<a.length-1, fontSize:8.5, color:"333333", fontFace:FONT } }));
  s.addText(avoidArr, { x:0.35, y:1.4, w:4.35, h:3.65, valign:"top" });
  card(s, 5.13, 0.9, 4.65, 4.3, "EDF7ED", 0.09);
  badge(s, 5.23, 0.96, 2.0, 0.38, C.teal, "✅  ENCOURAGE", 8.5);
  const encArr = ["Low-fat dairy (mildly uricosuric effect)","Adequate hydration: 2–3 L/day","Coffee (linked to lower uric acid levels)","Cherries / tart cherry juice","Gradual, sustained weight loss","Losartan for hypertension (mild uricosuric)","Regular moderate exercise","Treat comorbidities (HTN, CKD, metabolic syndrome)"]
    .map((t,i,a) => ({ text:t, options:{ bullet:{ code:"2714", color:C.teal }, breakLine:i<a.length-1, fontSize:8.5, color:"333333", fontFace:FONT } }));
  s.addText(encArr, { x:5.26, y:1.4, w:4.38, h:3.65, valign:"top" });
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:5.3, w:10, h:0.14, fill:{ color:"FFF3CD" }, line:{ color:"FFF3CD" } });
  s.addText("⚠  Flare Prophylaxis when starting ULT: Low-dose colchicine starting 1–2 weeks BEFORE ULT; continue ≥6 months after urate reaches target (longer if tophi present)", { x:0.2, y:5.3, w:9.6, h:0.14, fontSize:7, color:"7B5800", fontFace:FONT, valign:"middle" });
  footer(s);
}

// ── SLIDE 11: COMPARISON ─────────────────────────────────────
{
  const s = pres.addSlide();
  lightBg(s, C.teal);
  slideTitle(s, "OA vs. Gout – Side-by-Side Comparison");
  hLine(s, 0.78, C.teal);
  const rows = [
    ["Feature","Osteoarthritis","Gout"],
    ["Key lifestyle change","Weight loss + exercise","Low-purine diet + reduce alcohol"],
    ["Acute treatment","Topical/oral NSAIDs, acetaminophen","NSAIDs, colchicine, corticosteroids"],
    ["Long-term prevention","Exercise adherence, weight control","ULT – keep uric acid <6 mg/dL"],
    ["Disease-modifying Rx","None approved\n(exercise/weight loss = closest)","Urate-lowering therapy (allopurinol)"],
    ["Critical DON'T","Avoid opioids / tramadol","Never stop ULT during a flare"],
    ["Surgical option","Total joint arthroplasty","Rarely needed (tophus debridement)"],
  ];
  const tbl = rows.map((r,i) => [
    { text:r[0], options:{ bold:true,  fontSize:i===0?9:8.5, fontFace:FONT, color:i===0?C.white:C.navy,  fill:i===0?C.teal:(i%2===0?C.light:C.white),  valign:"middle" }},
    { text:r[1], options:{ bold:i===0||i===5, fontSize:i===0?9:8.5, fontFace:FONT, color:i===0?C.white:(i===5?"A93226":"333333"), fill:i===0?C.oablue:(i%2===0?"EBF5FF":"F5FAFF"), valign:"middle" }},
    { text:r[2], options:{ bold:i===0||i===5, fontSize:i===0?9:8.5, fontFace:FONT, color:i===0?C.white:(i===5?C.goutrd:"333333"), fill:i===0?C.goutrd:(i%2===0?"FFEEEE":"FFF5F5"), valign:"middle" }},
  ]);
  s.addTable(tbl, { x:0.22, y:0.9, w:9.56, colW:[2.8,3.38,3.38], border:{ color:"C8D8E8", pt:0.5 }, rowH:0.59 });
  footer(s);
}

// ── SLIDE 12: KEY TAKEAWAYS ──────────────────────────────────
{
  const s = pres.addSlide();
  darkBg(s);
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.1, h:5.625, fill:{ color:C.amber }, line:{ color:C.amber } });
  s.addText("Key Takeaways", { x:0.3, y:0.2, w:9.4, h:0.52, fontSize:24, bold:true, color:C.white, fontFace:FONT });
  hLine(s, 0.8, C.teal);
  const takes = [
    { icon:"⚖️", color:C.oablue,  title:"OA: Lifestyle Is the Cornerstone",            body:"Weight loss ≥20% + tailored exercise is the strongest evidence-based intervention. No approved disease-modifying drug exists." },
    { icon:"💊", color:"2E86AB",   title:"OA Pharmacology: Stepwise & Topical-First",   body:"Topical NSAIDs → oral acetaminophen → oral NSAIDs. Avoid opioids. IA corticosteroids for short-term only." },
    { icon:"🔴", color:C.goutrd,  title:"Gout: Treat Fast, Prevent Long-Term",         body:"Abort acute flares quickly (NSAIDs/colchicine within 36 hrs). Initiate ULT when indicated; maintain urate <6 mg/dL lifelong." },
    { icon:"🥗", color:C.teal,    title:"Gout Lifestyle: Diet + Hydration + Comorbidities", body:"Avoid purines, beer, fructose. Low-fat dairy + 2–3 L fluids/day. Treat HTN, CKD, metabolic syndrome aggressively." },
    { icon:"⚠️", color:C.amber,   title:"Two Rules to Never Forget",                   body:"OA → Never prescribe opioids/tramadol.     Gout → Never stop ULT during an active flare – it worsens the attack." },
  ];
  takes.forEach((t,i) => {
    const y = 0.95 + i * 0.9;
    card(s, 0.28, y, 9.44, 0.8, "0A1E2E", 0.08);
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.38, y:y+0.15, w:0.5, h:0.5, fill:{ color:t.color }, line:{ color:t.color }, rectRadius:0.25 });
    s.addText(t.icon,  { x:0.38, y:y+0.15, w:0.5, h:0.5, fontSize:14, fontFace:FONT, align:"center", valign:"middle" });
    s.addText(t.title, { x:0.98, y:y+0.1,  w:8.6, h:0.3,  fontSize:9.5, bold:true, color:C.amber, fontFace:FONT });
    s.addText(t.body,  { x:0.98, y:y+0.42, w:8.6, h:0.3,  fontSize:8.5, color:"BBCCDD", fontFace:FONT });
  });
}

// ── SLIDE 13: THANK YOU ──────────────────────────────────────
{
  const s = pres.addSlide();
  darkBg(s);

  // Decorative amber strip left
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.12, h:5.625, fill:{ color:C.amber }, line:{ color:C.amber } });

  // Teal bottom accent bar
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:4.9, w:10, h:0.725, fill:{ color:C.teal }, line:{ color:C.teal } });

  // Large "Thank You" text
  s.addText("Thank You", {
    x:0.3, y:0.7, w:9.4, h:1.4,
    fontSize:60, bold:true, color:C.white, fontFace:FONT, align:"center", charSpacing:2
  });

  // Amber underline accent
  s.addShape(pres.shapes.RECTANGLE, { x:3.2, y:2.15, w:3.6, h:0.06, fill:{ color:C.amber }, line:{ color:C.amber } });

  // Subtitle
  s.addText("Osteoarthritis & Gout – Management, Prevention & Lifestyle", {
    x:0.5, y:2.32, w:9.0, h:0.5,
    fontSize:13, italic:true, color:"AACCEE", fontFace:FONT, align:"center"
  });

  // 3 summary pills
  const pills = [
    { label:"Education + Exercise + Weight Loss", fill:C.oablue },
    { label:"ULT + Low-Purine Diet + Hydration",  fill:C.goutrd },
    { label:"Stepwise Pharmacology",              fill:C.teal   },
  ];
  pills.forEach((p, i) => {
    const x = 0.55 + i * 3.05;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y:2.98, w:2.85, h:0.52, fill:{ color:p.fill }, line:{ color:p.fill }, rectRadius:0.26 });
    s.addText(p.label, { x, y:2.98, w:2.85, h:0.52, fontSize:8, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle" });
  });

  // Divider line
  hLine(s, 3.7, "2A4A6A");

  // Reference line
  s.addText("Firestein & Kelley's Textbook of Rheumatology  |  Harrison's Principles of Internal Medicine 22e", {
    x:0.5, y:3.82, w:9.0, h:0.28, fontSize:8, color:"7AAAC8", fontFace:FONT, align:"center"
  });
  s.addText("Washington Manual of Medical Therapeutics  |  Lippincott Illustrated Reviews: Pharmacology  |  ACR 2019  |  AAOS CPG", {
    x:0.5, y:4.12, w:9.0, h:0.28, fontSize:8, color:"7AAAC8", fontFace:FONT, align:"center"
  });

  // Teal bar text
  s.addText("Questions & Discussion", {
    x:0.3, y:4.92, w:9.4, h:0.7, fontSize:16, bold:true, color:C.white, fontFace:FONT, align:"center", valign:"middle"
  });
}

// ── WRITE ────────────────────────────────────────────────────
pres.writeFile({ fileName:"/tmp/workspace/oa-gout/OA_Gout_Management.pptx" })
  .then(() => console.log("DONE"))
  .catch(e => { console.error(e); process.exit(1); });
Running Command

cd /tmp/workspace/oa-gout && node make_ppt.js && ls -lh OA_Gout_Management.pptx

Running Command

find / -name "pptxgenjs" -type d 2>/dev/null | head -5; ls /home/daytona/skills/pptx/ 2>/dev/null

Running Command

ls /skills/readonly/pptx/ 2>/dev/null; node -e "require('pptxgenjs')" 2>&1 | head -3; npm list -g pptxgenjs 2>/dev/null | head -3

Running Command

npm install --prefix /tmp/workspace/oa-gout pptxgenjs 2>&1 | tail -5

Running Command

cd /tmp/workspace/oa-gout && node make_ppt.js && ls -lh OA_Gout_Management.pptx

Your updated presentation is ready with the Thank You slide added as Slide 13!

OA Gout Management

Presentation · PPTX

The Thank You slide (dark theme, matching the rest of the deck) includes:
  • Large "Thank You" heading with amber underline accent
  • Subtitle: Osteoarthritis & Gout – Management, Prevention & Lifestyle
  • Three summary pill-badges: Education + Exercise + Weight Loss | ULT + Low-Purine Diet + Hydration | Stepwise Pharmacology
  • Full source/reference citations
  • A teal footer bar with "Questions & Discussion"
The full deck is now 13 slides total.
attachment
attachment
attachment
attachment
attachment
attachment
attachment
attachment

Make a ppt and make simple and according to this content

I can see the content clearly from your images. Let me build a clean, simple PPT on RAAS Inhibitors.
Running Command

mkdir -p /tmp/workspace/raas && npm install --prefix /tmp/workspace/raas pptxgenjs 2>&1 | tail -3

Writing File

~/raas/raas.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "RAAS Inhibitors";

// Palette
const NAVY  = "1B3A6B";
const BLUE  = "2E6DA4";
const LTBLUE= "D6E8F7";
const TEAL  = "0E7C7B";
const RED   = "C0392B";
const AMBER = "E67E22";
const GREEN = "1A7A4A";
const WHITE = "FFFFFF";
const DARK  = "1A1A2E";
const LGREY = "F2F6FA";
const MGREY = "BDC3C7";
const FONT  = "Calibri";

// ── helpers ──────────────────────────────────────
function bg(s, color){ s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:10,h:5.625,fill:{color},line:{color}}); }
function topBar(s,color){ s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:10,h:0.55,fill:{color:color||NAVY},line:{color:color||NAVY}}); }
function botBar(s,color){ s.addShape(pres.shapes.RECTANGLE,{x:0,y:5.3,w:10,h:0.325,fill:{color:color||NAVY},line:{color:color||NAVY}}); }
function hdr(s,text){
  s.addText(text,{x:0,y:0,w:10,h:0.55,fontSize:18,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
}
function subHdr(s,text,color){
  s.addShape(pres.shapes.RECTANGLE,{x:0.3,y:0.62,w:9.4,h:0.35,fill:{color:color||BLUE},line:{color:color||BLUE}});
  s.addText(text,{x:0.3,y:0.62,w:9.4,h:0.35,fontSize:13,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
}
function card(s,x,y,w,h,fill){
  s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w,h,fill:{color:fill||LGREY},line:{color:MGREY,width:0.5},rectRadius:0.07});
}
function label(s,x,y,w,text,color){
  s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w,h:0.32,fill:{color:color||NAVY},line:{color:color||NAVY},rectRadius:0.05});
  s.addText(text,{x,y,w,h:0.32,fontSize:8,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
}
function txt(s,x,y,w,h,text,opts){
  s.addText(text,{x,y,w,h,fontSize:opts&&opts.fs||9,color:opts&&opts.color||"222222",fontFace:FONT,bold:opts&&opts.bold||false,italic:opts&&opts.italic||false,valign:"top",...(opts||{})});
}
function bul(s, items, x, y, w, h, dotColor, fs){
  const arr = items.map((t,i)=>({
    text:t, options:{bullet:{code:"25CF",color:dotColor||NAVY}, breakLine:i<items.length-1, fontSize:fs||9, color:"222222", fontFace:FONT}
  }));
  s.addText(arr,{x,y,w,h,valign:"top"});
}
function pageNum(s,n){
  s.addText(""+n,{x:0,y:5.3,w:10,h:0.325,fontSize:8,color:"AABBCC",fontFace:FONT,align:"center",valign:"middle"});
}

// ══════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,DARK);
  // Decorative bars
  s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:0.12,h:5.625,fill:{color:AMBER},line:{color:AMBER}});
  s.addShape(pres.shapes.RECTANGLE,{x:0,y:4.8,w:10,h:0.825,fill:{color:NAVY},line:{color:NAVY}});

  s.addText("RAAS Inhibitors",{x:0.3,y:0.8,w:9.4,h:1.2,fontSize:48,bold:true,color:WHITE,fontFace:FONT,align:"center",charSpacing:1});
  s.addText("Renin-Angiotensin-Aldosterone System",{x:0.3,y:2.05,w:9.4,h:0.5,fontSize:16,color:AMBER,fontFace:FONT,align:"center",italic:true});

  // 3 pill badges
  [[1.0,"Direct Renin Inhibitor",BLUE],[3.8,"ACE Inhibitors (Pril)",TEAL],[6.6,"ARBs (Sartan)",RED]].forEach(([x,t,c])=>{
    s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y:2.85,w:2.6,h:0.48,fill:{color:c},line:{color:c},rectRadius:0.24});
    s.addText(t,{x,y:2.85,w:2.6,h:0.48,fontSize:9.5,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  });

  s.addText("Pharmacology – Antihypertensive Drugs",{x:0.3,y:4.85,w:9.4,h:0.3,fontSize:10,color:"8AAEC8",fontFace:FONT,align:"center"});
}

// ══════════════════════════════════════════════════
// SLIDE 2 – RAAS SYSTEM OVERVIEW
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,WHITE);
  topBar(s,NAVY); hdr(s,"RAAS – How It Works");
  botBar(s,NAVY); pageNum(s,"");

  // Flow boxes
  const flow = ["Angiotensinogen\n(Liver – inactive)","Angiotensin I\n(via Renin)","Angiotensin II\n(via ACE)","AT₁ Receptor\nActivation","↑ BP"];
  const fcols = [LGREY, LTBLUE, LTBLUE, "FFE8CC", "FDECEA"];
  const ftcols= [NAVY,  NAVY,   NAVY,   AMBER,    RED    ];
  flow.forEach((t,i)=>{
    const x = 0.3 + i*1.85;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y:0.72,w:1.65,h:0.75,fill:{color:fcols[i]},line:{color:MGREY,width:0.5},rectRadius:0.08});
    s.addText(t,{x,y:0.72,w:1.65,h:0.75,fontSize:8,bold:true,color:ftcols[i],fontFace:FONT,align:"center",valign:"middle"});
    if(i<4) s.addText("→",{x:x+1.65,y:0.88,w:0.2,h:0.4,fontSize:14,color:NAVY,fontFace:FONT,align:"center",valign:"middle"});
  });

  // Enzyme labels below arrows
  [["Renin\n(JG cells)", 0.98],["ACE\n(Lung endothelium)", 2.83]].forEach(([t,x])=>{
    s.addText(t,{x,y:1.52,w:1.2,h:0.4,fontSize:7.5,color:TEAL,fontFace:FONT,align:"center",italic:true});
  });

  // AT1 Receptor effects table
  s.addText("AT₁ Receptor – Organ Effects",{x:0.3,y:2.05,w:9.4,h:0.3,fontSize:11,bold:true,color:NAVY,fontFace:FONT});
  const rows=[
    ["Organ","Action on Stimulation"],
    ["Adrenal Glands","↑ Aldosterone → Na⁺ retention → ↑ BP; K⁺ loss in urine → Hypokalemia"],
    ["Arteries & Veins","Vasoconstriction → ↑ Diastolic BP"],
    ["Heart","Cardiac stimulation → ↑ CO → ↑ Systolic BP → Cardiac hypertrophy"],
  ];
  const tbl = rows.map((r,i)=> r.map((cell,ci)=>({
    text:cell,
    options:{bold:i===0||ci===0,fontSize:i===0?8.5:8.5,fontFace:FONT,
      color:i===0?WHITE:"333333",
      fill:i===0?NAVY:(i%2===0?LGREY:WHITE),valign:"middle",align:"left"}
  })));
  s.addTable(tbl,{x:0.3,y:2.38,w:9.4,colW:[2.0,7.4],border:{color:MGREY,pt:0.5},rowH:0.42});

  // Key note
  card(s,0.3,3.72,9.4,0.55,"FFF3CD");
  s.addText("💡  Renin released from JG cells of kidney in response to low BP / sympathetic activation of β₁ receptor  |  ACE located on endothelial cells of pulmonary vessels  |  Angiotensinogen produced by liver",
    {x:0.4,y:3.76,w:9.2,h:0.48,fontSize:8,color:"7B5800",fontFace:FONT,valign:"middle"});
}

// ══════════════════════════════════════════════════
// SLIDE 3 – RAAS INHIBITORS: DRUG CLASSES
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,WHITE);
  topBar(s,NAVY); hdr(s,"RAAS Inhibitors – Drug Classes");
  botBar(s,NAVY); pageNum(s,"");

  // 3 class cards
  const classes=[
    {title:"Direct Renin Inhibitor\n(-iren)",color:BLUE,drugs:["Aliskiren – Only approved","Remikiren – Under trial","Enalkiren – Under trial"],notes:["ROA: Oral","Use: 2nd line antihypertensive","MOA: Blocks Renin → prevents Angiotensin I formation"]},
    {title:"ACE Inhibitors\n(-pril)",color:TEAL,drugs:["Captopril","Lisinopril","Enalapril","Ramipril, Benzapril, Quinapril","Moexipril, Perindopril, Fosinopril, Trandolalapril"],notes:["All are prodrugs (except Captopril, Lisinopril)","ROA: Oral (except Enalaprilat – IV)"]},
    {title:"AT₁ Receptor Blockers\n(-sartan)",color:RED,drugs:["Losartan","Telmisartan","Candesartan","Valsartan, Irbesartan","Olmesartan, Eprosartan, Azilsartan"],notes:["Mnemonic: LOVE TIC","All oral; NOT given IV","Excreted in urine & bile\n(except Telmisartan – bile only)"]},
  ];

  classes.forEach((c,i)=>{
    const x = 0.22+i*3.25;
    card(s,x,0.7,3.1,4.45,LGREY);
    s.addShape(pres.shapes.RECTANGLE,{x,y:0.7,w:3.1,h:0.45,fill:{color:c.color},line:{color:c.color}});
    s.addText(c.title,{x,y:0.7,w:3.1,h:0.45,fontSize:9,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
    s.addText("Drugs:",{x:x+0.1,y:1.2,w:2.9,h:0.22,fontSize:8.5,bold:true,color:c.color,fontFace:FONT});
    const dArr=c.drugs.map((d,j)=>({text:d,options:{bullet:{code:"25CF",color:c.color},breakLine:j<c.drugs.length-1,fontSize:8,color:"222222",fontFace:FONT}}));
    s.addText(dArr,{x:x+0.1,y:1.42,w:2.9,h:1.6,valign:"top"});
    s.addShape(pres.shapes.RECTANGLE,{x:x+0.1,y:3.08,w:2.9,h:0.02,fill:{color:MGREY},line:{color:MGREY}});
    s.addText("Key Points:",{x:x+0.1,y:3.14,w:2.9,h:0.22,fontSize:8.5,bold:true,color:c.color,fontFace:FONT});
    const nArr=c.notes.map((n,j)=>({text:n,options:{bullet:{code:"2022",color:AMBER},breakLine:j<c.notes.length-1,fontSize:7.5,color:"444444",fontFace:FONT}}));
    s.addText(nArr,{x:x+0.1,y:3.36,w:2.9,h:1.5,valign:"top"});
  });
}

// ══════════════════════════════════════════════════
// SLIDE 4 – MOA: ANTIHYPERTENSIVE ACTION
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,WHITE);
  topBar(s,NAVY); hdr(s,"MOA – Antihypertensive Action of RAAS Inhibitors");
  botBar(s,NAVY); pageNum(s,"");

  const items=[
    {organ:"Aldosterone Secretion",color:BLUE,text:"↓ Aldosterone secretion from adrenal gland → Na⁺ loss in urine → Diuretic action\n↑ Blood K⁺ → Hyperkalemia (S/E) → Do NOT combine with K⁺-sparing diuretics\nK⁺-sparing diuretics (SEAT): Spironolactone, Eplerenone, Amiloride, Triamterene"},
    {organ:"Blood Vessels",color:TEAL,text:"Vasodilation of arteries + veins → ↓ peripheral resistance → ↓ BP"},
    {organ:"Heart",color:RED,text:"↓ Cardiac hypertrophy\nDrug of Choice in CHF: ACE Inhibitors"},
    {organ:"Other Drugs\nInhibiting RAAS",color:AMBER,text:"Central sympatholytics (Clonidine, α-methyldopa) → ↓ sympathetic discharge → ↓ Renin secretion\nβ-blockers (lol) → Acts on JG cells of kidney → ↓ Renin release"},
    {organ:"Drugs Causing\nHyperkalemia",color:"8E44AD",text:"ACE inhibitors/ARBs, Aspirin (NSAID), Beta blockers, Clonidine, Cyclosporine/Tacrolimus → ↓ renin release\nDiuretics → K⁺-sparing diuretics (SEAT)"},
  ];

  items.forEach((it,i)=>{
    const y = 0.72+i*0.88;
    card(s,0.22,y,9.56,0.8,LGREY);
    s.addShape(pres.shapes.RECTANGLE,{x:0.22,y,w:2.0,h:0.8,fill:{color:it.color},line:{color:it.color}});
    s.addText(it.organ,{x:0.22,y,w:2.0,h:0.8,fontSize:8.5,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
    s.addText(it.text,{x:2.3,y:y+0.06,w:7.38,h:0.7,fontSize:8,color:"222222",fontFace:FONT,valign:"top"});
  });
}

// ══════════════════════════════════════════════════
// SLIDE 5 – ACE INHIBITORS: PROPERTIES & ACTION
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,WHITE);
  topBar(s,TEAL); hdr(s,"ACE Inhibitors – Properties & Action");
  botBar(s,TEAL); pageNum(s,"");

  // Left: ACE enzyme
  card(s,0.22,0.72,4.6,2.4,LGREY);
  s.addShape(pres.shapes.RECTANGLE,{x:0.22,y:0.72,w:4.6,h:0.38,fill:{color:TEAL},line:{color:TEAL}});
  s.addText("Properties of ACE Enzyme",{x:0.22,y:0.72,w:4.6,h:0.38,fontSize:10,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  bul(s,["Converts Angiotensin I → Angiotensin II (↑ BP)","Location: Endothelial cells of pulmonary vessels","Non-specific Carboxypeptidase","Also degrades Bradykinin"],0.32,1.14,4.4,1.9,TEAL,8.5);

  // Right: Action
  card(s,5.1,0.72,4.68,2.4,LGREY);
  s.addShape(pres.shapes.RECTANGLE,{x:5.1,y:0.72,w:4.68,h:0.38,fill:{color:TEAL},line:{color:TEAL}});
  s.addText("Action of ACE Inhibitors",{x:5.1,y:0.72,w:4.68,h:0.38,fontSize:10,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  bul(s,["↓ Level of Angiotensin II → ↓ BP","↑ Level of Bradykinin (key for S/E)"],5.2,1.14,4.48,0.6,TEAL,8.5);
  s.addText("Bradykinin Effects:",{x:5.2,y:1.78,w:4.48,h:0.25,fontSize:8.5,bold:true,color:TEAL,fontFace:FONT});
  card(s,5.15,2.06,4.58,0.65,"E8F8F5");
  s.addText("✅ Advantages: Vasodilation → ↓ BP; Improve insulin sensitivity → Favourable for DM",{x:5.25,y:2.1,w:4.38,h:0.58,fontSize:8,color:GREEN,fontFace:FONT,valign:"top"});

  // Bradykinin disadvantages – DARU mnemonic
  card(s,0.22,3.22,9.56,1.88,"FFF5F5");
  s.addShape(pres.shapes.RECTANGLE,{x:0.22,y:3.22,w:9.56,h:0.35,fill:{color:RED},line:{color:RED}});
  s.addText("❌ Disadvantages of ↑ Bradykinin – Mnemonic: DARU",{x:0.22,y:3.22,w:9.56,h:0.35,fontSize:10,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  const daru=[
    ["D","Dry Cough (M/C)","Stop ACE inhibitor → Shift to Sartan/Aliskiren\nAspirin + Iron → Promotes degradation of bradykinin"],
    ["A","Angioedema","Swelling of face, lips & eyes\nT/t: Antihistamines + corticosteroids; Laryngeal spasm: S/C epinephrine"],
    ["R","Rhinitis","Nasal inflammation"],
    ["U","Urticaria","Skin allergic reaction"],
  ];
  daru.forEach((d,i)=>{
    const x = 0.3+i*2.38;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y:3.62,w:0.35,h:0.35,fill:{color:RED},line:{color:RED},rectRadius:0.17});
    s.addText(d[0],{x,y:3.62,w:0.35,h:0.35,fontSize:12,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
    s.addText(d[1],{x:x+0.4,y:3.62,w:1.85,h:0.28,fontSize:8.5,bold:true,color:RED,fontFace:FONT});
    s.addText(d[2],{x:x+0.4,y:3.9,w:1.85,h:0.55,fontSize:7.5,color:"555555",fontFace:FONT});
  });
}

// ══════════════════════════════════════════════════
// SLIDE 6 – ACE INHIBITORS: INDIVIDUAL DRUGS
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,WHITE);
  topBar(s,TEAL); hdr(s,"ACE Inhibitors – Individual Drug Properties");
  botBar(s,TEAL); pageNum(s,"");

  const drugs=[
    {name:"Captopril",color:RED,pts:["NOT a prodrug (active form)","Shortest acting: <12 hrs – given BD","Sulfa-containing drug → allergic reactions","Bone marrow suppression (Leukopenia)","Taste disturbance, Food ↓ absorption"]},
    {name:"Enalapril /\nEnalaprilat",color:BLUE,pts:["Enalapril = prodrug (oral)","Enalaprilat = IV form","Used in Hypertensive Emergency (IV)"]},
    {name:"Lisinopril",color:TEAL,pts:["NOT a prodrug (active)","Orally given","Long-acting"]},
    {name:"Fosinopril",color:GREEN,pts:["Safe in renal disease","Excreted in bile","Dual excretion: renal + biliary"]},
    {name:"Perindopril /\nTrandolalapril",color:AMBER,pts:["Longest acting drugs","Most potent among ACEIs"]},
    {name:"Ramipril /\nBenzapril",color:"8E44AD",pts:["Prodrugs","Commonly used in post-MI","Cardioprotective"]},
  ];

  drugs.forEach((d,i)=>{
    const x=0.22+(i%3)*3.25;
    const y=0.72+Math.floor(i/3)*2.38;
    card(s,x,y,3.1,2.22,LGREY);
    s.addShape(pres.shapes.RECTANGLE,{x,y,w:3.1,h:0.36,fill:{color:d.color},line:{color:d.color}});
    s.addText(d.name,{x,y,w:3.1,h:0.36,fontSize:9,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
    const arr=d.pts.map((p,j)=>({text:p,options:{bullet:{code:"25CF",color:d.color},breakLine:j<d.pts.length-1,fontSize:8,color:"222222",fontFace:FONT}}));
    s.addText(arr,{x:x+0.1,y:y+0.4,w:2.9,h:1.78,valign:"top"});
  });

  // Note bar
  card(s,0.22,5.15,9.56,0.3,"FFF3CD");
  s.addText("📌  All ACE inhibitors are PRODRUGS (pril → prilat) via Hepatic esterase  |  EXCEPT Captopril & Lisinopril (not prodrugs)",
    {x:0.32,y:5.17,w:9.36,h:0.28,fontSize:7.5,color:"7B5800",fontFace:FONT,valign:"middle"});
}

// ══════════════════════════════════════════════════
// SLIDE 7 – USES OF ACE INHIBITORS
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,WHITE);
  topBar(s,TEAL); hdr(s,"ACE Inhibitors – Uses");
  botBar(s,TEAL); pageNum(s,"");

  // DOC boxes
  const uses=[
    {title:"Essential HTN\n(No comorbidity)",color:TEAL,note:"DOC"},
    {title:"HTN + DM",color:BLUE,note:"Improves glycemic control / Anti-diabetic"},
    {title:"HTN + Nephropathy (CKD)",color:GREEN,note:"Nephroprotective effect"},
    {title:"HTN + Neuropathy / Stroke",color:AMBER,note:"Neuroprotective"},
    {title:"HTN + Retinopathy",color:"8E44AD",note:"Retinoprotective"},
    {title:"HTN + Scleroderma",color:"C0392B",note:"↓ Collagen deposition"},
    {title:"CHF & Post-MI",color:NAVY,note:"Cardioprotective – DOC"},
  ];
  uses.forEach((u,i)=>{
    const x=0.22+(i%4)*2.42;
    const y=0.72+Math.floor(i/4)*1.5;
    card(s,x,y,2.28,1.3,LGREY);
    s.addShape(pres.shapes.RECTANGLE,{x,y,w:2.28,h:0.35,fill:{color:u.color},line:{color:u.color}});
    s.addText(u.title,{x,y,w:2.28,h:0.35,fontSize:8,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
    s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:x+0.6,y:y+0.42,w:1.1,h:0.24,fill:{color:u.color},line:{color:u.color},rectRadius:0.05});
    s.addText("DOC",{x:x+0.6,y:y+0.42,w:1.1,h:0.24,fontSize:7.5,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
    s.addText(u.note,{x:x+0.08,y:y+0.7,w:2.12,h:0.56,fontSize:7.5,color:"333333",fontFace:FONT,align:"center",valign:"top"});
  });

  // Nephroprotective detail
  card(s,0.22,3.35,9.56,1.72,LGREY);
  s.addShape(pres.shapes.RECTANGLE,{x:0.22,y:3.35,w:9.56,h:0.32,fill:{color:TEAL},line:{color:TEAL}});
  s.addText("Nephroprotective Effects in Detail",{x:0.22,y:3.35,w:9.56,h:0.32,fontSize:10,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  bul(s,["In CKD: Hyperfiltration → Albuminuria (hallmark marker)","ACE inhibitors dilate efferent arteriole → ↓ GFR → ↓ Hyperfiltration injury → ↓ Risk of albuminuria (Nephroprotective)","In Bilateral afferent renal artery stenosis: ACE inhibitors C/I – drastically ↓ GFR → ARF / Oliguria"],0.32,3.72,9.26,1.28,TEAL,8.5);
}

// ══════════════════════════════════════════════════
// SLIDE 8 – ACE INHIBITORS: C/I & INTERACTIONS
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,WHITE);
  topBar(s,TEAL); hdr(s,"ACE Inhibitors – Contraindications & Drug Interactions");
  botBar(s,TEAL); pageNum(s,"");

  // C/I
  card(s,0.22,0.72,9.56,2.0,LGREY);
  s.addShape(pres.shapes.RECTANGLE,{x:0.22,y:0.72,w:9.56,h:0.35,fill:{color:RED},line:{color:RED}});
  s.addText("Contraindications of ACE Inhibitors",{x:0.22,y:0.72,w:9.56,h:0.35,fontSize:11,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  const ci=[
    "Bilateral afferent renal artery stenosis, Acute kidney disease",
    "Hyperkalemia (Serum K⁺ > 5.5 mEq/L) → Cardiac arrest",
    "Pregnancy (UPT): Category X – Renal agenesis (Maximum risk in 3rd trimester)",
    "Aliskiren/Sartans/Pril – Absolute C/I (Teratogenic)",
  ];
  const ciArr=ci.map((c,i)=>({text:c,options:{bullet:{code:"274C",color:RED},breakLine:i<ci.length-1,fontSize:9,color:"333333",fontFace:FONT}}));
  s.addText(ciArr,{x:0.32,y:1.12,w:9.26,h:1.55,valign:"top"});

  // Drug interactions
  card(s,0.22,2.82,9.56,1.65,LGREY);
  s.addShape(pres.shapes.RECTANGLE,{x:0.22,y:2.82,w:9.56,h:0.35,fill:{color:AMBER},line:{color:AMBER}});
  s.addText("Drug Interactions",{x:0.22,y:2.82,w:9.56,h:0.35,fontSize:11,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  bul(s,["Hyperkalemia: Avoid with Potassium-sparing diuretics","NSAIDs + ACEI: ↑ Risk of Acute Renal Failure / Oliguria","Lithium toxicity ↑","SULFA drugs + Allopurinol → ↑ Risk of sulfa allergy"],0.32,3.22,9.26,1.2,AMBER,9);

  // ACEI + Thiazide synergism
  card(s,0.22,4.57,9.56,0.9,"E8F8F5");
  s.addShape(pres.shapes.RECTANGLE,{x:0.22,y:4.57,w:2.2,h:0.9,fill:{color:TEAL},line:{color:TEAL}});
  s.addText("ACEI +\nThiazide\nDiuretics",{x:0.22,y:4.57,w:2.2,h:0.9,fontSize:8.5,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  s.addText("Synergism: Thiazides → Hypokalemia + ACEI → Hyperkalemia (balance)\nThiazides → ↑ RAAS activity → Thiazides effect loss; ACEI → Inhibit RAAS → Regaining thiazide effect",
    {x:2.5,y:4.62,w:7.18,h:0.8,fontSize:8,color:"222222",fontFace:FONT,valign:"top"});
}

// ══════════════════════════════════════════════════
// SLIDE 9 – ARBs (SARTANS)
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,WHITE);
  topBar(s,RED); hdr(s,"AT₁ Receptor Blockers (ARBs / Sartans)");
  botBar(s,RED); pageNum(s,"");

  // AT receptor types
  card(s,0.22,0.7,9.56,1.15,"FFF5F5");
  s.addText("Properties of Angiotensin Receptors",{x:0.22,y:0.7,w:9.56,h:0.32,fontSize:10,bold:true,color:RED,fontFace:FONT,align:"center"});
  const atypes=[["AT₁ (Predominant)","Gq type → ↑ BP",RED],["AT₂","Gi type → ↓ BP",TEAL],["AT₃, AT₄","Neurons (CNS) – Memory & Cognition",BLUE]];
  atypes.forEach(([t,sub,c],i)=>{
    const x=0.5+i*3.1;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y:1.05,w:2.8,h:0.7,fill:{color:c},line:{color:c},rectRadius:0.08});
    s.addText(t,{x,y:1.05,w:2.8,h:0.35,fontSize:9,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
    s.addText(sub,{x,y:1.4,w:2.8,h:0.35,fontSize:8,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  });

  // ARB class properties
  card(s,0.22,1.95,4.6,1.7,LGREY);
  s.addShape(pres.shapes.RECTANGLE,{x:0.22,y:1.95,w:4.6,h:0.32,fill:{color:RED},line:{color:RED}});
  s.addText("Class Properties – Mnemonic: LOVE TIC",{x:0.22,y:1.95,w:4.6,h:0.32,fontSize:9,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  bul(s,["All given ORALLY – NOT given IV/injection","NOT used in hypertensive emergency","All excreted in urine & bile (except Telmisartan → bile only)","Competitive blockers of AT₁ receptor"],0.32,2.3,4.4,1.3,RED,8.5);

  // Individual drug properties
  card(s,5.0,1.95,4.78,3.6,LGREY);
  s.addShape(pres.shapes.RECTANGLE,{x:5.0,y:1.95,w:4.78,h:0.32,fill:{color:RED},line:{color:RED}});
  s.addText("Individual Drug Properties",{x:5.0,y:1.95,w:4.78,h:0.32,fontSize:9,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  const sartan=[
    ["Losartan","Lowest affinity for AT₁ → Least potent; Shortest acting"],
    ["Olmesartan","2nd most potent & 2nd longest acting"],
    ["Telmisartan","Safest in renal disease (excreted in bile only)"],
    ["Candesartan","Most potent & Longest acting; Highest affinity for AT₁"],
    ["Valsartan","Commonly used"],
    ["Irbesartan","Block SA/AV node → T/t: Arrhythmia, AF, flutter"],
    ["Azilsartan","Newest drug"],
  ];
  sartan.forEach(([d,n],i)=>{
    s.addText(d,{x:5.1,y:2.32+i*0.44,w:1.6,h:0.38,fontSize:8,bold:true,color:RED,fontFace:FONT,valign:"middle"});
    s.addText(n, {x:6.75,y:2.32+i*0.44,w:2.9,h:0.38,fontSize:8,color:"333333",fontFace:FONT,valign:"middle"});
  });

  // ACEI vs ARB advantage
  card(s,0.22,3.72,4.6,1.3,"EDF7ED");
  s.addText("ARB Advantage over ACEI",{x:0.32,y:3.76,w:4.4,h:0.28,fontSize:9,bold:true,color:GREEN,fontFace:FONT});
  bul(s,["Does NOT ↑ Bradykinin","No dry cough","No angioedema","Same BP-lowering efficacy"],0.32,4.06,4.38,0.9,GREEN,8.5);
}

// ══════════════════════════════════════════════════
// SLIDE 10 – SPECIAL PROPERTIES OF ARBs
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,WHITE);
  topBar(s,RED); hdr(s,"ARBs – Special Properties & Side Effects");
  botBar(s,RED); pageNum(s,"");

  // 3 special ARBs
  const specials=[
    {drug:"Losartan",color:RED,pts:["↓ Uric acid (Uricosuric action) → Used in gout","↓ Platelet action: Block TXA₂","Protective against coronary & cerebral artery thrombosis"]},
    {drug:"Irbesartan",color:BLUE,pts:["Blocks SA/AV node","T/t: Arrhythmia, atrial flutter & fibrillation"]},
    {drug:"Telmisartan",color:TEAL,pts:["PPAR-γ agonist (like Pioglitazone)","Improves insulin sensitivity","Anti-diabetic effect"]},
  ];
  specials.forEach((sp,i)=>{
    card(s,0.22+i*3.25,0.72,3.1,2.2,LGREY);
    s.addShape(pres.shapes.RECTANGLE,{x:0.22+i*3.25,y:0.72,w:3.1,h:0.36,fill:{color:sp.color},line:{color:sp.color}});
    s.addText("★ "+sp.drug,{x:0.22+i*3.25,y:0.72,w:3.1,h:0.36,fontSize:10,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
    const arr=sp.pts.map((p,j)=>({text:p,options:{bullet:{code:"2714",color:sp.color},breakLine:j<sp.pts.length-1,fontSize:8.5,color:"222222",fontFace:FONT}}));
    s.addText(arr,{x:0.32+i*3.25,y:1.12,w:2.9,h:1.7,valign:"top"});
  });

  // S/E and C/I
  card(s,0.22,3.05,4.65,2.1,LGREY);
  s.addShape(pres.shapes.RECTANGLE,{x:0.22,y:3.05,w:4.65,h:0.35,fill:{color:AMBER},line:{color:AMBER}});
  s.addText("Side Effects of ARBs",{x:0.22,y:3.05,w:4.65,h:0.35,fontSize:10,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  bul(s,["Same as ACE inhibitors","EXCEPTION: Does NOT increase bradykinin levels → No dry cough / angioedema","Hyperkalemia (same as ACEI)"],0.32,3.44,4.45,1.65,AMBER,8.5);

  card(s,5.1,3.05,4.68,2.1,LGREY);
  s.addShape(pres.shapes.RECTANGLE,{x:5.1,y:3.05,w:4.68,h:0.35,fill:{color:RED},line:{color:RED}});
  s.addText("Contraindications of ARBs",{x:5.1,y:3.05,w:4.68,h:0.35,fontSize:10,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
  bul(s,["Same as ACE inhibitors","Pregnancy: Absolute C/I (Teratogenic)","Bilateral renal artery stenosis","Hyperkalemia"],5.2,3.44,4.48,1.65,RED,8.5);

  // Sprue note
  card(s,0.22,5.2,9.56,0.3,"FFF3CD");
  s.addText("⚠  Sprue with Sartans: Diarrhea due to AT₂ receptor activation in GI tract → ↓ absorption | Highest Risk: Olmesartan > Other ARBs",
    {x:0.32,y:5.22,w:9.36,h:0.28,fontSize:7.5,color:"7B5800",fontFace:FONT,valign:"middle"});
}

// ══════════════════════════════════════════════════
// SLIDE 11 – QUICK COMPARISON TABLE
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,WHITE);
  topBar(s,NAVY); hdr(s,"RAAS Inhibitors – Quick Comparison");
  botBar(s,NAVY); pageNum(s,"");

  const rows=[
    ["Feature","Direct Renin Inhibitor","ACE Inhibitors","ARBs (Sartans)"],
    ["Drug example","Aliskiren","Lisinopril, Ramipril","Losartan, Candesartan"],
    ["MOA","Blocks Renin → ↓ Ang I","Blocks ACE → ↓ Ang II","Blocks AT₁ receptor"],
    ["Bradykinin","Not affected","↑ Bradykinin (S/E)","Not affected (advantage)"],
    ["Dry Cough","No","Yes (M/C S/E)","No"],
    ["Angioedema","No","Yes","No"],
    ["Use in Pregnancy","C/I (Category C)","C/I (Category X)","Absolute C/I (Teratogenic)"],
    ["Hyperkalemia","Yes","Yes","Yes"],
    ["Route","Oral only","Oral (IV: Enalaprilat)","Oral only"],
    ["1st line HTN","2nd line","Yes (with comorbidity)","Yes (ACEI intolerant)"],
  ];
  const tbl=rows.map((r,i)=> r.map((cell,ci)=>({
    text:cell,
    options:{bold:i===0||ci===0,fontSize:i===0?8.5:8,fontFace:FONT,
      color:i===0?WHITE:(ci===0?NAVY:(cell==="Yes"?GREEN:(cell==="No"?RED:cell.includes("C/I")||cell.includes("Absolute")?RED:"333333"))),
      fill:i===0?NAVY:(ci===0?LTBLUE:(i%2===0?LGREY:WHITE)),valign:"middle",align:"left"}
  })));
  s.addTable(tbl,{x:0.22,y:0.72,w:9.56,colW:[2.1,2.4,2.62,2.44],border:{color:MGREY,pt:0.5},rowH:0.38});
}

// ══════════════════════════════════════════════════
// SLIDE 12 – THANK YOU
// ══════════════════════════════════════════════════
{
  const s = pres.addSlide();
  bg(s,DARK);
  s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:0.12,h:5.625,fill:{color:AMBER},line:{color:AMBER}});
  s.addShape(pres.shapes.RECTANGLE,{x:0,y:4.75,w:10,h:0.875,fill:{color:NAVY},line:{color:NAVY}});

  s.addText("Thank You",{x:0.3,y:0.8,w:9.4,h:1.3,fontSize:56,bold:true,color:WHITE,fontFace:FONT,align:"center",charSpacing:2});
  s.addShape(pres.shapes.RECTANGLE,{x:3.0,y:2.18,w:4.0,h:0.06,fill:{color:AMBER},line:{color:AMBER}});
  s.addText("RAAS Inhibitors – Pharmacology",{x:0.5,y:2.3,w:9.0,h:0.42,fontSize:13,italic:true,color:"AACCEE",fontFace:FONT,align:"center"});

  [[1.0,"DRI","Aliskiren",BLUE],[3.7,"ACEI","-pril drugs",TEAL],[6.4,"ARBs","-sartan drugs",RED]].forEach(([x,t,sub,c])=>{
    s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y:2.98,w:2.6,h:0.7,fill:{color:c},line:{color:c},rectRadius:0.1});
    s.addText(t,  {x,y:2.98,w:2.6,h:0.38,fontSize:12,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
    s.addText(sub,{x,y:3.36,w:2.6,h:0.32,fontSize:8.5,color:"DDEEFF",fontFace:FONT,align:"center",valign:"middle"});
  });

  s.addText("Questions & Discussion",{x:0.3,y:4.78,w:9.4,h:0.82,fontSize:16,bold:true,color:WHITE,fontFace:FONT,align:"center",valign:"middle"});
}

pres.writeFile({fileName:"/tmp/workspace/raas/RAAS_Inhibitors.pptx"})
  .then(()=>console.log("DONE"))
  .catch(e=>{console.error(e);process.exit(1);});
Your credits are exhausted. You can purchase a top-up or subscribe to a plan to continue using Orris. If you're already subscribed, your daily credits will reset tomorrow.

Try again

Your credits are exhausted. You can purchase a top-up or subscribe to a plan to continue using Orris. If you're already subscribed, your daily credits will reset tomorrow.

Create a PDF summary of RAAS inhibitors

Your credits are exhausted. You can purchase a top-up or subscribe to a plan to continue using Orris. If you're already subscribed, your daily credits will reset tomorrow.
This is a shared conversation. Sign in to Orris to start your own chat.