Create a presentation on Guillain–Barré Syndrome related with rehabilitation just 5 slides

Reading File
Reading File
Reading File
Finding Sources
Searching Images

Guillain-Barré syndrome rehabilitation physical therapy

Reading File
Finding Sources
Reading File
Reading File
I have enough clinical content. Now let me read the GBS treatment/rehab section and then build the presentation.
Reading File
I have rich clinical content. Now I'll build the presentation with the pptxgenjs script.
Running Command

ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not found"

Running Command

mkdir -p /home/daytona/workspace/gbs-rehab-pptx && node /home/daytona/skills/shared/scripts/fetch_images.js \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_3fc0b5f32487a3ddb44fdfcd0ab805e4dda970c46b4410fc976276f4e2166f98.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_dd524c501db31e1fb1646f3dfc56be3328bce5179ef6a686f74588d8de88a195.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_60a6ca2d41197bf5ee33d1c54758ad76ae6b406b84a8448272d18254b28958c5.jpg" 2>/dev/null | python3 -c "import sys,json; data=json.load(sys.stdin); [print(i, d['error'] or 'OK', len(d.get('base64','')) ) for i,d in enumerate(data)]"

Writing File

~/gbs-rehab-pptx/gbs_rehab.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Guillain-Barré Syndrome & Rehabilitation";
pres.author = "Medical Education";

// ── COLOR PALETTE ──────────────────────────────────────────────────────────
const C = {
  navy:    "0D2B55",   // dominant dark bg
  teal:    "1A7F8E",   // accent
  sky:     "4DB8C8",   // light accent
  white:   "FFFFFF",
  offwhite:"EEF4F7",
  orange:  "E8773C",   // highlight/warning
  ltgray:  "CFE0E8",
};

// ─── HELPER: rounded rect background ──────────────────────────────────────
function addCard(slide, x, y, w, h, fill, radius = 0.12) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w, h,
    fill: { color: fill },
    line: { color: fill },
    rectRadius: radius,
  });
}

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

  // Full dark bg
  s.addShape(pres.ShapeType.rect, { x:0, y:0, w:10, h:5.625,
    fill:{ color: C.navy }, line:{ color: C.navy } });

  // Teal accent bar left
  s.addShape(pres.ShapeType.rect, { x:0, y:0, w:0.18, h:5.625,
    fill:{ color: C.teal }, line:{ color: C.teal } });

  // Teal horizontal stripe
  s.addShape(pres.ShapeType.rect, { x:0, y:2.55, w:10, h:0.06,
    fill:{ color: C.teal }, line:{ color: C.teal } });

  // Title
  s.addText("Guillain–Barré Syndrome", {
    x:0.5, y:0.7, w:9, h:1.1,
    fontSize:42, bold:true, color:C.white,
    fontFace:"Calibri", align:"center", margin:0,
  });

  // Subtitle
  s.addText("Rehabilitation: Assessment, Goals & Evidence-Based Interventions", {
    x:0.5, y:1.9, w:9, h:0.55,
    fontSize:17, color:C.sky, fontFace:"Calibri",
    align:"center", italic:true, margin:0,
  });

  // Three stat boxes
  const stats = [
    { icon:"1.8", lbl:"per 100,000 incidence / yr" },
    { icon:"9–30%", lbl:"require mechanical ventilation" },
    { icon:"~80%", lbl:"walk independently at 6 months" },
  ];
  stats.forEach((st, i) => {
    const bx = 0.9 + i * 3.1;
    addCard(s, bx, 2.85, 2.6, 1.65, "1A2E47");
    s.addShape(pres.ShapeType.rect, { x:bx, y:2.85, w:2.6, h:0.06,
      fill:{ color: C.teal }, line:{ color: C.teal } });
    s.addText(st.icon, { x:bx, y:2.92, w:2.6, h:0.72,
      fontSize:26, bold:true, color:C.sky, align:"center", fontFace:"Calibri", margin:0 });
    s.addText(st.lbl, { x:bx+0.08, y:3.64, w:2.44, h:0.72,
      fontSize:10.5, color:C.offwhite, align:"center", fontFace:"Calibri", margin:0 });
  });

  // Footer
  s.addText("Bradley & Daroff's Neurology in Clinical Practice  |  Medical Education", {
    x:0, y:5.28, w:10, h:0.3,
    fontSize:8, color:"4A6B82", align:"center", fontFace:"Calibri", margin:0,
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – OVERVIEW: PATHOPHYSIOLOGY & CLINICAL FEATURES
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();

  // Header bar
  s.addShape(pres.ShapeType.rect, { x:0, y:0, w:10, h:0.72,
    fill:{ color: C.navy }, line:{ color: C.navy } });
  s.addShape(pres.ShapeType.rect, { x:0, y:0.72, w:10, h:0.06,
    fill:{ color: C.teal }, line:{ color: C.teal } });
  s.addText("Overview: Pathophysiology & Clinical Features", {
    x:0.3, y:0.08, w:9.4, h:0.56,
    fontSize:22, bold:true, color:C.white, fontFace:"Calibri", valign:"middle", margin:0,
  });

  // LEFT column – pathophysiology
  addCard(s, 0.25, 0.9, 4.4, 4.1, "EEF4F7");
  s.addShape(pres.ShapeType.rect, { x:0.25, y:0.9, w:4.4, h:0.44,
    fill:{ color: C.teal }, line:{ color: C.teal } });
  s.addText("PATHOPHYSIOLOGY", { x:0.25, y:0.9, w:4.4, h:0.44,
    fontSize:12, bold:true, color:C.white, align:"center", fontFace:"Calibri", valign:"middle", margin:0 });

  const pathoBullets = [
    "Post-infectious immune attack on myelin & Schwann cells",
    "Multifocal inflammatory demyelination of spinal roots & peripheral nerves",
    "Macrophages strip myelin lamellae → conduction block & slowing",
    "Axonal subtypes (AMAN, AMSAN): direct axonal damage → poorer prognosis",
    "Molecular mimicry: anti-ganglioside antibodies (anti-GQ1b in Miller-Fisher)",
    "Triggers: C. jejuni (most common), CMV, EBV, COVID-19",
  ];
  s.addText(pathoBullets.map((t,i) => ({
    text: t,
    options: { bullet:{code:"2022"}, fontSize:10.5, color:"0D2B55",
               fontFace:"Calibri", breakLine: i < pathoBullets.length-1 }
  })), { x:0.4, y:1.4, w:4.1, h:3.5, valign:"top", margin:4 });

  // RIGHT column – clinical features
  addCard(s, 5.05, 0.9, 4.7, 4.1, "EEF4F7");
  s.addShape(pres.ShapeType.rect, { x:5.05, y:0.9, w:4.7, h:0.44,
    fill:{ color: C.orange }, line:{ color: C.orange } });
  s.addText("CLINICAL FEATURES", { x:5.05, y:0.9, w:4.7, h:0.44,
    fontSize:12, bold:true, color:C.white, align:"center", fontFace:"Calibri", valign:"middle", margin:0 });

  const clinBullets = [
    "Ascending flaccid paralysis, areflexia (hallmark)",
    "Symmetric weakness legs → arms → face/bulbar muscles",
    "Cranial nerve involvement: 45–75% (facial paresis most common)",
    "Autonomic dysfunction: 65% (arrhythmia, BP lability, urinary retention)",
    "Pain: 70% in acute phase (back, limb, dysesthesia)",
    "Respiratory failure requiring ventilation: 9–30%",
    "Peak disability at 2–4 weeks; recovery begins 2–4 wks after plateau",
  ];
  s.addText(clinBullets.map((t,i) => ({
    text: t,
    options: { bullet:{code:"2022"}, fontSize:10.5, color:"0D2B55",
               fontFace:"Calibri", breakLine: i < clinBullets.length-1 }
  })), { x:5.2, y:1.4, w:4.4, h:3.5, valign:"top", margin:4 });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – REHABILITATION PHASES
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();

  s.addShape(pres.ShapeType.rect, { x:0, y:0, w:10, h:0.72,
    fill:{ color: C.navy }, line:{ color: C.navy } });
  s.addShape(pres.ShapeType.rect, { x:0, y:0.72, w:10, h:0.06,
    fill:{ color: C.teal }, line:{ color: C.teal } });
  s.addText("Rehabilitation Across Disease Phases", {
    x:0.3, y:0.08, w:9.4, h:0.56,
    fontSize:22, bold:true, color:C.white, fontFace:"Calibri", valign:"middle", margin:0,
  });

  const phases = [
    {
      label:"ACUTE / ICU PHASE",
      color: C.orange,
      items: [
        "Positioning: prevent pressure injuries & contractures",
        "Passive ROM all joints BID",
        "Chest physiotherapy: secretion clearance, ventilator weaning support",
        "DVT prophylaxis: compression stockings + early mobilization",
        "Splinting to maintain wrist & ankle neutral",
        "Swallowing screen → modified diet / NGT if dysphagia present",
      ],
    },
    {
      label:"SUBACUTE / INPATIENT REHAB",
      color: C.teal,
      items: [
        "Progressive resistance: elastic bands, gravity-resisted movements",
        "Active-assisted → active ROM as strength returns",
        "Gait training: parallel bars → walker → independent ambulation",
        "Balance & proprioception retraining (sensory deficits persist)",
        "ADL retraining: occupational therapy for fine-motor tasks",
        "Orthoses: AFOs for foot drop; wrist splints if needed",
      ],
    },
    {
      label:"OUTPATIENT / COMMUNITY PHASE",
      color: "2E7D6F",
      items: [
        "Aerobic conditioning: swimming, cycling (low-impact preferred)",
        "Fatigue management strategies — energy conservation",
        "Neuropsychological support for depression & anxiety (~67%)",
        "Pain management: gabapentin / TENS for neuropathic pain",
        "Return-to-work / school vocational rehabilitation",
        "Long-term follow-up: up to 3 yrs for residual weakness / fatigue",
      ],
    },
  ];

  phases.forEach((ph, col) => {
    const bx = 0.18 + col * 3.3;
    addCard(s, bx, 0.88, 3.1, 4.62, "EEF4F7");
    s.addShape(pres.ShapeType.rect, { x:bx, y:0.88, w:3.1, h:0.5,
      fill:{ color: ph.color }, line:{ color: ph.color } });
    s.addText(`PHASE ${col+1}`, { x:bx, y:0.88, w:3.1, h:0.24,
      fontSize:8, bold:true, color:C.white, align:"center", fontFace:"Calibri", valign:"middle", margin:0 });
    s.addText(ph.label, { x:bx, y:1.11, w:3.1, h:0.27,
      fontSize:9.5, bold:true, color:C.white, align:"center", fontFace:"Calibri", valign:"middle", margin:0 });
    s.addText(ph.items.map((t,i) => ({
      text: t,
      options: { bullet:{code:"2022"}, fontSize:9.8, color:"0D2B55",
                 fontFace:"Calibri", breakLine: i < ph.items.length-1 }
    })), { x:bx+0.1, y:1.44, w:2.9, h:4.0, valign:"top", margin:3 });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – KEY INTERVENTIONS & OUTCOME MEASURES
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();

  s.addShape(pres.ShapeType.rect, { x:0, y:0, w:10, h:0.72,
    fill:{ color: C.navy }, line:{ color: C.navy } });
  s.addShape(pres.ShapeType.rect, { x:0, y:0.72, w:10, h:0.06,
    fill:{ color: C.teal }, line:{ color: C.teal } });
  s.addText("Key Interventions & Outcome Measures", {
    x:0.3, y:0.08, w:9.4, h:0.56,
    fontSize:22, bold:true, color:C.white, fontFace:"Calibri", valign:"middle", margin:0,
  });

  // LEFT – interventions table
  const interventions = [
    ["Intervention", "Rationale / Evidence"],
    ["IVIg or Plasma Exchange", "First-line immunotherapy; shorten ventilator time & time to walk"],
    ["Progressive Resistance Training", "Restores MRC grade; start when medically stable"],
    ["Treadmill / Body-Weight Support", "Promotes central pattern generator reactivation"],
    ["Hydrotherapy / Aquatic PT", "Buoyancy reduces load; early active exercise possible"],
    ["Neuromuscular Electrical Stim (NMES)", "Delays atrophy; improves muscle recruitment in flaccid limbs"],
    ["Respiratory Muscle Training", "Improves FVC; supports ventilator weaning"],
    ["Splinting & Orthotics (AFO)", "Prevents contracture; enables safe ambulation with foot drop"],
    ["Cognitive-Behavioral Therapy", "Addresses depression, anxiety, fatigue — common sequelae"],
  ];

  // Draw table manually
  const tx = 0.25, ty = 0.88, tw = 5.7, rowH = 0.44;
  interventions.forEach((row, ri) => {
    const rowY = ty + ri * rowH;
    const bg = ri === 0 ? C.navy : ri % 2 === 0 ? "EEF4F7" : C.white;
    const fg = ri === 0 ? C.white : C.navy;
    const fs = ri === 0 ? 10 : 9.5;

    [row[0], row[1]].forEach((cell, ci) => {
      const colW = ci === 0 ? 1.9 : 3.8;
      const colX = tx + (ci === 0 ? 0 : 1.9);
      s.addShape(pres.ShapeType.rect, { x:colX, y:rowY, w:colW, h:rowH,
        fill:{ color: bg }, line:{ color: "C8D9E4" } });
      s.addText(cell, { x:colX+0.06, y:rowY+0.02, w:colW-0.1, h:rowH-0.04,
        fontSize:fs, color:fg, fontFace:"Calibri", bold: ri===0,
        valign:"middle", margin:2, wrap:true });
    });
  });

  // RIGHT – outcome measures
  addCard(s, 6.15, 0.88, 3.6, 4.62, "EEF4F7");
  s.addShape(pres.ShapeType.rect, { x:6.15, y:0.88, w:3.6, h:0.44,
    fill:{ color: C.teal }, line:{ color: C.teal } });
  s.addText("OUTCOME MEASURES", { x:6.15, y:0.88, w:3.6, h:0.44,
    fontSize:12, bold:true, color:C.white, align:"center", fontFace:"Calibri", valign:"middle", margin:0 });

  const outcomes = [
    { m:"GBS Disability Scale", d:"0–6; primary functional staging tool" },
    { m:"MRC Sum Score", d:"60-point motor strength scale (6 muscle groups × 2 sides)" },
    { m:"Erasmus GBS Outcome Score (EGOS)", d:"Predicts walking ability at 6 months" },
    { m:"Fatigue Severity Scale (FSS)", d:"Critical — fatigue persists in 60–80%" },
    { m:"Berg Balance Scale", d:"Balance & fall risk during gait retraining" },
    { m:"10-Meter Walk Test / TUG", d:"Ambulation speed & functional mobility" },
    { m:"SF-36 / RAND-36", d:"HRQoL — physical & mental component scores" },
    { m:"VAS / NRS Pain", d:"Neuropathic pain monitoring throughout rehab" },
  ];
  outcomes.forEach((o, i) => {
    const ry = 1.38 + i * 0.51;
    s.addText(o.m, { x:6.25, y:ry, w:3.4, h:0.23,
      fontSize:9.8, bold:true, color:C.teal, fontFace:"Calibri", margin:0 });
    s.addText(o.d, { x:6.25, y:ry+0.22, w:3.4, h:0.24,
      fontSize:8.8, color:"333333", fontFace:"Calibri", margin:0 });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – PROGNOSIS & MULTIDISCIPLINARY TEAM
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();

  // Dark bg
  s.addShape(pres.ShapeType.rect, { x:0, y:0, w:10, h:5.625,
    fill:{ color: C.navy }, line:{ color: C.navy } });

  // Header
  s.addShape(pres.ShapeType.rect, { x:0, y:0, w:10, h:0.78,
    fill:{ color: "0A2240" }, line:{ color: "0A2240" } });
  s.addShape(pres.ShapeType.rect, { x:0, y:0.78, w:10, h:0.06,
    fill:{ color: C.orange }, line:{ color: C.orange } });
  s.addText("Prognosis & Multidisciplinary Team", {
    x:0.3, y:0.1, w:9.4, h:0.62,
    fontSize:22, bold:true, color:C.white, fontFace:"Calibri", valign:"middle", margin:0,
  });

  // Prognosis boxes
  const progData = [
    { pct:"~80%", label:"Walk independently by 6 months", col: C.teal },
    { pct:"5–10%", label:"Non-ambulatory at 1 year", col: C.orange },
    { pct:"1–5%", label:"Mortality (modern ICU era)", col: "C0392B" },
    { pct:"67%", label:"Psychiatric sequelae (depression/anxiety)", col: "7D5BA6" },
  ];
  progData.forEach((pd, i) => {
    const bx = 0.3 + i * 2.4;
    addCard(s, bx, 0.96, 2.1, 1.45, "112D4A");
    s.addShape(pres.ShapeType.rect, { x:bx, y:0.96, w:2.1, h:0.07,
      fill:{ color: pd.col }, line:{ color: pd.col } });
    s.addText(pd.pct, { x:bx, y:1.05, w:2.1, h:0.72,
      fontSize:28, bold:true, color:pd.col, align:"center", fontFace:"Calibri", margin:0 });
    s.addText(pd.label, { x:bx+0.06, y:1.74, w:1.98, h:0.6,
      fontSize:9, color:C.offwhite, align:"center", fontFace:"Calibri", margin:0 });
  });

  // MDT wheel layout – text boxes
  s.addText("MULTIDISCIPLINARY REHABILITATION TEAM", {
    x:0.3, y:2.55, w:9.4, h:0.35,
    fontSize:12, bold:true, color:C.sky, align:"center", fontFace:"Calibri",
    charSpacing:2, margin:0,
  });

  const roles = [
    { role:"Neurologist", tasks:"Disease monitoring, IVIg/PE decisions, relapse detection" },
    { role:"Physiatrist (PM&R)", tasks:"Rehabilitation plan, disability assessment, functional goals" },
    { role:"Physiotherapist", tasks:"Strength, gait, balance, respiratory, exercise prescription" },
    { role:"Occupational Therapist", tasks:"ADL training, orthotics, home adaptations, return-to-work" },
    { role:"Speech-Language Pathologist", tasks:"Dysphagia, communication, AAC devices if needed" },
    { role:"Respiratory Therapist / ICU Nurse", tasks:"Ventilator weaning, secretion clearance, monitoring" },
    { role:"Psychologist / Psychiatrist", tasks:"Depression, anxiety, PTSD — CBT, mindfulness, medication" },
    { role:"Social Worker", tasks:"Discharge planning, caregiver training, community resources" },
  ];

  const cols = [[0,1,2,3], [4,5,6,7]];
  cols.forEach((idxs, ci) => {
    idxs.forEach((idx, ri) => {
      const rx = 0.25 + ci * 5.0;
      const ry = 2.98 + ri * 0.62;
      // teal dot
      s.addShape(pres.ShapeType.ellipse, { x:rx, y:ry+0.14, w:0.16, h:0.16,
        fill:{ color: C.teal }, line:{ color: C.teal } });
      s.addText(roles[idx].role, { x:rx+0.24, y:ry, w:4.55, h:0.28,
        fontSize:10.5, bold:true, color:C.sky, fontFace:"Calibri", margin:0 });
      s.addText(roles[idx].tasks, { x:rx+0.24, y:ry+0.27, w:4.55, h:0.28,
        fontSize:9, color:C.offwhite, fontFace:"Calibri", margin:0 });
    });
  });

  // Footer source
  s.addText("Sources: Bradley & Daroff's Neurology in Clinical Practice | Miller's Anesthesia | Robbins Pathology", {
    x:0, y:5.32, w:10, h:0.26,
    fontSize:7.5, color:"3A6080", align:"center", fontFace:"Calibri", margin:0,
  });
}

// ── WRITE ─────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/gbs-rehab-pptx/GBS_Rehabilitation.pptx" })
  .then(() => console.log("DONE"))
  .catch(e => console.error(e));
Running Command

cd /home/daytona/workspace/gbs-rehab-pptx && node gbs_rehab.js

Running Command

ls -lh /home/daytona/workspace/gbs-rehab-pptx/GBS_Rehabilitation.pptx

Your presentation is ready — 173 KB, 5 slides:

GBS Rehabilitation

Presentation · PPTX


Slide-by-slide summary

#SlideContent
1TitleNavy/teal design with 3 key stats: incidence (1.8/100k), ventilation rate (9–30%), recovery rate (~80%)
2Overview: Pathophysiology & Clinical FeaturesTwo-column layout — demyelination mechanism, macrophage role, ganglioside antibodies (left); ascending paralysis, autonomic dysfunction, cranial nerve involvement, pain (right)
3Rehabilitation Across Disease PhasesThree-phase column layout: Acute/ICU (positioning, passive ROM, chest PT), Subacute/Inpatient (progressive resistance, gait training, AFOs), Outpatient/Community (aerobic conditioning, fatigue management, psychosocial support)
4Key Interventions & Outcome MeasuresTable of 8 evidence-based interventions (IVIg/PE, NMES, aquatic PT, CBT…) + outcome tool panel (GBS Disability Scale, MRC Sum Score, EGOS, FSS, Berg Balance)
5Prognosis & MDT4 prognosis stat boxes + full multidisciplinary team roles (Neurologist, PM&R, PT, OT, SLP, RT, Psychologist, Social Worker)
All content is sourced from Bradley & Daroff's Neurology in Clinical Practice, Miller's Anesthesia, and Robbins Pathology.

According to the patient

It looks like your message got cut off. Could you complete your question?
For example, are you asking about:
Asking for Preferences

What would you like to know or create based on the patient?

Your message appears to be incomplete — it ended with "According to the patient" without finishing the thought.
Could you share the rest? For example:
  • "According to the patient's clinical profile…" — and then describe the patient (age, symptoms, phase of illness, current function)
  • "According to the patient's presentation, what rehab interventions apply?"
  • Or paste the patient case/clinical data you'd like me to work with

Create 5 slides of presentation related with rehabilitation topic is Guillain–Barré Syndrome and present it with a clinical case

Reading File
Finding Sources
Searching Images

Guillain-Barré syndrome clinical rehabilitation physiotherapy patient

I have the images and clinical content. Now I'll fetch the images as base64 and build the presentation.
Running Command

node /home/daytona/skills/shared/scripts/fetch_images.js \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_dd524c501db31e1fb1646f3dfc56be3328bce5179ef6a686f74588d8de88a195.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_60a6ca2d41197bf5ee33d1c54758ad76ae6b406b84a8448274d18254b28978c5.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_e0cbef3a92e6bef044f9b3f34e1e76753b14297a486ac7ee2ba5696a3dc8e0d9.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_fed01b7248df88c50d7fecaf27ad96f78df357e3e84df0241d8e6b4c457f77c6.jpg" \ > /home/daytona/workspace/gbs-rehab-pptx/images.json 2>&1 echo "exit:$?" python3 -c "import json; d=json.load(open('/home/daytona/workspace/gbs-rehab-pptx/images.json')); [print(i, d[i]['error'] or 'OK', len(d[i].get('base64','')[:20])) for i in range(len(d))]"

All 4 images loaded. Now building the full presentation:
Writing File

~/gbs-rehab-pptx/gbs_case.js

const pptxgen = require("pptxgenjs");
const images = require("./images.json");

// images[0] = pelvic bridge PT session (rehab)
// images[1] = wheelchair → full recovery comparison (COVID GBS)
// images[2] = Achilles stretch / ROM
// images[3] = diaphragmatic breathing / chest PT

const pres = new pptxgen();
pres.layout  = "LAYOUT_16x9";
pres.title   = "GBS & Rehabilitation – Clinical Case";
pres.author  = "Medical Education";

// ── PALETTE ────────────────────────────────────────────────────────────────
const C = {
  navy:    "0B2545",
  teal:    "13808E",
  sky:     "56C6D4",
  orange:  "E87040",
  amber:   "F5A623",
  white:   "FFFFFF",
  offwhite:"EDF4F7",
  card:    "142E4A",
  mid:     "1B4060",
  gray:    "334E68",
};

function rect(s, x,y,w,h, fill, line) {
  s.addShape(pres.ShapeType.rect, { x,y,w,h,
    fill:{color: fill||"FFFFFF"}, line:{color: line||fill||"FFFFFF"} });
}
function rRect(s, x,y,w,h, fill, r=0.1) {
  s.addShape(pres.ShapeType.roundRect, { x,y,w,h,
    fill:{color:fill}, line:{color:fill}, rectRadius:r });
}
function hdr(s, title) {
  rect(s, 0,0,10,0.72, C.navy);
  rect(s, 0,0.72,10,0.055, C.teal);
  s.addText(title, { x:0.3,y:0.05,w:9.4,h:0.62,
    fontSize:21, bold:true, color:C.white, fontFace:"Calibri", valign:"middle", margin:0 });
}
function footer(s, txt) {
  s.addText(txt, { x:0,y:5.35,w:10,h:0.26,
    fontSize:7.5, color:"3A6080", align:"center", fontFace:"Calibri", margin:0 });
}
function bullets(s, items, x,y,w,h, fs=10, color="0B2545") {
  s.addText(items.map((t,i)=>({
    text:t,
    options:{ bullet:{code:"2022"}, fontSize:fs, color:color,
              fontFace:"Calibri", breakLine: i<items.length-1 }
  })), { x,y,w,h, valign:"top", margin:3 });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE + CLINICAL CASE VIGNETTE
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();

  // Full dark background
  rect(s, 0,0,10,5.625, C.navy);
  // Left accent bar
  rect(s, 0,0,0.2,5.625, C.teal);
  // Divider stripe
  rect(s, 0.2,2.58,9.8,0.055, C.teal);

  // Title block
  s.addText("Guillain–Barré Syndrome", {
    x:0.45,y:0.55,w:9.1,h:1.0,
    fontSize:40, bold:true, color:C.white,
    fontFace:"Calibri", align:"center", margin:0,
  });
  s.addText("Rehabilitation & Clinical Case Presentation", {
    x:0.45,y:1.6,w:9.1,h:0.5,
    fontSize:18, italic:true, color:C.sky,
    fontFace:"Calibri", align:"center", margin:0,
  });

  // ── CLINICAL CASE VIGNETTE BOX ─────────────────────────────────────
  rRect(s, 0.35,2.75,9.3,2.58, C.card, 0.14);
  rect(s, 0.35,2.75,9.3,0.055, C.orange);

  s.addText("CLINICAL CASE VIGNETTE", {
    x:0.45,y:2.79,w:9.1,h:0.38,
    fontSize:11, bold:true, color:C.orange,
    fontFace:"Calibri", charSpacing:2, margin:0,
  });

  // Case text – rich formatting
  s.addText([
    { text:"Patient: ", options:{ bold:true, color:C.amber } },
    { text:"Carlos M., 34-year-old male, previously healthy.\n", options:{ color:C.offwhite } },
    { text:"History: ", options:{ bold:true, color:C.amber } },
    { text:"10 days after an episode of gastroenteritis (", options:{ color:C.offwhite } },
    { text:"C. jejuni", options:{ color:C.offwhite, italic:true } },
    { text:"), he developed bilateral lower extremity weakness, gait instability, and tingling in his feet and hands.\n", options:{ color:C.offwhite } },
    { text:"Progression: ", options:{ bold:true, color:C.amber } },
    { text:"Over 5 days, weakness ascended to the upper limbs and trunk; facial weakness developed. Referred to ICU on day 3 due to respiratory compromise (FVC < 20 mL/kg).\n", options:{ color:C.offwhite } },
    { text:"Exam: ", options:{ bold:true, color:C.amber } },
    { text:"MRC sum score 28/60 | Areflexia | Dysautonomia (HR fluctuations, BP lability) | Pain VAS 7/10\n", options:{ color:C.offwhite } },
    { text:"Workup: ", options:{ bold:true, color:C.amber } },
    { text:"CSF albuminocytological dissociation · NCS: diffuse demyelinating pattern · Anti-ganglioside: GQ1b negative → AIDP subtype", options:{ color:C.offwhite } },
  ], { x:0.5,y:3.18,w:9.0,h:2.1, fontSize:10.2, fontFace:"Calibri", valign:"top", margin:3 });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – ACUTE PHASE: ICU REHABILITATION
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  hdr(s, "Phase 1 – Acute ICU Management & Early Rehabilitation");

  // Left content column
  rRect(s, 0.2,0.88,5.3,4.5, C.offwhite);
  rect(s, 0.2,0.88,5.3,0.44, C.orange);
  s.addText("CARLOS IN THE ICU  •  Days 1–14", {
    x:0.2,y:0.88,w:5.3,h:0.44,
    fontSize:11, bold:true, color:C.white, align:"center",
    fontFace:"Calibri", valign:"middle", margin:0,
  });

  const icuItems = [
    "Intubated Day 3 (FVC < 20 mL/kg) → mechanical ventilation",
    "IVIg initiated: 0.4 g/kg/day × 5 days (first-line immunotherapy)",
    "Cardiac monitoring: continuous ECG (vagal spells risk → asystole)",
    "DVT prophylaxis: LMWH + pneumatic compression stockings",
    "NGT feeding: dysphagia + absent gag reflex",
    "Pain management: pregabalin 75 mg BID for neuropathic pain",
    "Urinary catheter: autonomic retention",
    "Nursing repositioning every 2 h: pressure injury prevention",
  ];
  bullets(s, icuItems, 0.35,1.38,5.0,2.2, 10, C.navy);

  // Rehab sub-box
  rRect(s, 0.25,3.62,5.2,1.65, "D6E8EE", 0.08);
  rect(s, 0.25,3.62,5.2,0.35, C.teal);
  s.addText("EARLY REHAB (bedside)", {
    x:0.25,y:3.62,w:5.2,h:0.35,
    fontSize:10, bold:true, color:C.white, align:"center",
    fontFace:"Calibri", valign:"middle", margin:0,
  });
  const earlyRehab = [
    "Passive ROM all joints BID (prevent contracture)",
    "Chest PT: manual vibration, positioning for secretion clearance",
    "Splinting: wrist neutral + AFO to prevent foot drop",
    "Verbal / sensory stimulation; family education",
  ];
  bullets(s, earlyRehab, 0.38,4.0,5.0,1.2, 9.8, C.navy);

  // Right image column
  s.addImage({ data: images[3].base64, x:5.7,y:0.9,w:4.05,h:2.7,
    sizing:{type:"contain",w:4.05,h:2.7} });

  // Caption
  rRect(s, 5.7,3.65,4.05,0.7, C.card, 0.08);
  s.addText("Respiratory physiotherapy & diaphragmatic breathing exercises in the acute/ICU phase of GBS — critical for ventilator weaning.", {
    x:5.78,y:3.68,w:3.9,h:0.64,
    fontSize:8.5, color:C.sky, fontFace:"Calibri",
    italic:true, valign:"middle", margin:2,
  });

  // GBS Disability scale box
  rRect(s, 5.7,4.42,4.05,0.9, C.mid, 0.08);
  s.addText("GBS Disability Scale – Carlos at admission", {
    x:5.78,y:4.44,w:3.88,h:0.3,
    fontSize:9.5, bold:true, color:C.amber, fontFace:"Calibri", margin:0,
  });
  s.addText("Score: 4 / 6  →  Bedridden, requires assisted ventilation", {
    x:5.78,y:4.74,w:3.88,h:0.52,
    fontSize:9.5, color:C.offwhite, fontFace:"Calibri", valign:"middle", margin:0,
  });

  footer(s, "Bradley & Daroff's Neurology in Clinical Practice | Medical Microbiology 9e");
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – SUBACUTE PHASE: INPATIENT REHABILITATION
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  hdr(s, "Phase 2 – Subacute: Inpatient Rehabilitation  (Weeks 3–8)");

  // Image – pelvic bridge PT session
  s.addImage({ data: images[0].base64, x:0.2,y:0.9,w:3.4,h:2.5,
    sizing:{type:"contain",w:3.4,h:2.5} });
  rRect(s, 0.2,3.42,3.4,0.72, C.card, 0.08);
  s.addText("Supervised pelvic bridging exercise — core & lower limb strengthening during inpatient GBS rehabilitation.", {
    x:0.3,y:3.44,w:3.2,h:0.68,
    fontSize:8.5, color:C.sky, italic:true, fontFace:"Calibri", valign:"middle", margin:2,
  });

  // Image – Achilles stretch
  s.addImage({ data: images[2].base64, x:0.2,y:4.18,w:3.4,h:1.3,
    sizing:{type:"contain",w:3.4,h:1.3} });

  // Right content
  rRect(s, 3.82,0.88,5.95,4.62, C.offwhite);
  rect(s, 3.82,0.88,5.95,0.44, C.teal);
  s.addText("CARLOS: Transferred to Neurorehabilitation Ward  (Day 18)", {
    x:3.82,y:0.88,w:5.95,h:0.44,
    fontSize:10.5, bold:true, color:C.white, align:"center",
    fontFace:"Calibri", valign:"middle", margin:0,
  });
  s.addText("Status: Extubated Day 15 | MRC 36/60 | Pain VAS 5/10", {
    x:3.92,y:1.36,w:5.75,h:0.3,
    fontSize:10, color:C.teal, bold:true, fontFace:"Calibri", margin:0,
  });

  const rehab2 = [
    ["Physiotherapy", [
      "Active-assisted ROM → progressive resistance (elastic bands)",
      "Pelvic bridging, supine leg lifts, seated balance training",
      "Parallel bars ambulation → walking frame → forearm crutches",
      "Achilles / wrist stretching BID; proprioception retraining",
    ]],
    ["Occupational Therapy", [
      "Fine motor retraining: grip, pinch, writing, fastening",
      "ADL retraining: dressing, grooming, meal preparation",
      "Wrist splints for residual weakness; adaptive devices",
    ]],
    ["Speech-Language Pathology", [
      "Swallowing reassessment → upgrade to soft diet",
      "Vocal exercises for residual facial/bulbar weakness",
    ]],
    ["Psychology", [
      "CBT sessions: anxiety, helplessness, fear of relapse",
      "Sleep hygiene; fatigue education",
    ]],
  ];

  let cy = 1.72;
  rehab2.forEach(([sect, items]) => {
    s.addText(sect, { x:3.95,y:cy,w:5.7,h:0.26,
      fontSize:10, bold:true, color:C.orange, fontFace:"Calibri", margin:0 });
    cy += 0.27;
    items.forEach(item => {
      s.addText([{ text:"• ", options:{bold:true, color:C.teal}},{text:item, options:{color:C.navy}}],
        { x:4.1,y:cy,w:5.55,h:0.28, fontSize:9.5, fontFace:"Calibri", valign:"middle", margin:0 });
      cy += 0.28;
    });
    cy += 0.04;
  });

  footer(s, "Bradley & Daroff's Neurology in Clinical Practice");
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – OUTPATIENT PHASE + OUTCOME MEASURES
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  hdr(s, "Phase 3 – Outpatient Rehabilitation & Outcome Measures  (Month 2–6+)");

  // Left column – outpatient program
  rRect(s, 0.2,0.9,4.55,4.48, C.offwhite);
  rect(s, 0.2,0.9,4.55,0.44, "2E7D6F");
  s.addText("OUTPATIENT PROGRAM  –  Carlos at Week 10", {
    x:0.2,y:0.9,w:4.55,h:0.44,
    fontSize:10.5, bold:true, color:C.white, align:"center",
    fontFace:"Calibri", valign:"middle", margin:0,
  });
  s.addText("Ambulating with lAFO (right foot drop) | MRC 48/60 | VAS 3/10", {
    x:0.32,y:1.38,w:4.3,h:0.28,
    fontSize:9.5, color:"2E7D6F", bold:true, fontFace:"Calibri", margin:0,
  });

  const outpt = [
    "3× weekly physiotherapy: treadmill, cycling, balance board",
    "Aquatic physiotherapy 2× weekly (buoyancy reduces load)",
    "Progressive resistance training: MRC-guided grading",
    "Fatigue management: energy conservation, pacing strategies",
    "TENS for residual neuropathic burning in feet",
    "Occupational therapy: return-to-work simulation, driving eval",
    "Neuropsychology: adjustment disorder counseling; group support",
    "Orthotics review at 3 months: AFO weaning if dorsiflexion MRC ≥ 3",
    "Nutritional support: protein for muscle re-synthesis",
    "Follow-up at 6 months, 1 year, 2 years: residual fatigue in ~60%",
  ];
  bullets(s, outpt, 0.32,1.72,4.28,3.55, 9.8, C.navy);

  // Right column – outcome measures table
  rRect(s, 4.95,0.9,4.85,4.48, C.offwhite);
  rect(s, 4.95,0.9,4.85,0.44, C.navy);
  s.addText("OUTCOME MEASURES – Carlos's Progress", {
    x:4.95,y:0.9,w:4.85,h:0.44,
    fontSize:10.5, bold:true, color:C.white, align:"center",
    fontFace:"Calibri", valign:"middle", margin:0,
  });

  const measures = [
    { tool:"GBS Disability Scale", admission:"4 / 6", wk4:"3 / 6", wk10:"1 / 6", goal:"0" },
    { tool:"MRC Sum Score /60", admission:"28", wk4:"36", wk10:"48", goal:"55+" },
    { tool:"Berg Balance Scale /56", admission:"0", wk4:"18", wk10:"38", goal:"50+" },
    { tool:"10m Walk Test (s)", admission:"—", wk4:"—", wk10:"14.2s", goal:"< 10s" },
    { tool:"Fatigue Severity Scale /7", admission:"6.8", wk4:"6.2", wk10:"5.1", goal:"< 4" },
    { tool:"VAS Pain /10", admission:"7", wk4:"5", wk10:"3", goal:"< 2" },
    { tool:"SF-36 Physical /100", admission:"12", wk4:"28", wk10:"54", goal:"70+" },
  ];

  // Header row
  const cols = ["Tool", "Admission", "Wk 4", "Wk 10", "Goal"];
  const colW = [2.05, 0.68, 0.55, 0.68, 0.62];
  const colX = [4.97, 7.03, 7.72, 8.27, 8.95];

  colX.forEach((cx,ci) => {
    rect(s, cx, 1.38, colW[ci], 0.36, C.navy);
    s.addText(cols[ci], { x:cx+0.03,y:1.38,w:colW[ci]-0.06,h:0.36,
      fontSize:8.5, bold:true, color:C.white, fontFace:"Calibri",
      align:"center", valign:"middle", margin:0 });
  });

  measures.forEach((row, ri) => {
    const ry = 1.74 + ri * 0.46;
    const bg = ri%2===0 ? "EDF4F7" : C.white;
    const vals = [row.tool, row.admission, row.wk4, row.wk10, row.goal];
    colX.forEach((cx,ci) => {
      rect(s, cx, ry, colW[ci], 0.46, bg, "C8D9E4");
      const isGoal = ci===4;
      s.addText(vals[ci], { x:cx+0.03,y:ry+0.02,w:colW[ci]-0.06,h:0.42,
        fontSize:ci===0?9:9, color: isGoal?"2E7D6F":C.navy,
        bold: isGoal||false, fontFace:"Calibri",
        align: ci===0?"left":"center", valign:"middle", margin:1, wrap:true });
    });
  });

  footer(s, "Outcome tools: GBS Disability Scale · MRC Sum Score · Berg Balance · FSS · SF-36");
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – PROGNOSIS, MDT & CARLOS'S 3-MONTH RECOVERY
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  rect(s, 0,0,10,5.625, C.navy);
  rect(s, 0,0,10,0.78, "08192E");
  rect(s, 0,0.78,10,0.055, C.orange);
  s.addText("Prognosis, Multidisciplinary Team & Carlos's Recovery", {
    x:0.3,y:0.08,w:9.4,h:0.65,
    fontSize:20, bold:true, color:C.white, fontFace:"Calibri", valign:"middle", margin:0,
  });

  // Recovery comparison image
  s.addImage({ data: images[1].base64, x:0.2,y:0.95,w:3.9,h:2.85,
    sizing:{type:"contain",w:3.9,h:2.85} });
  rRect(s, 0.2,3.82,3.9,0.7, C.card, 0.08);
  s.addText("Carlos: wheelchair at discharge (GBS score 3) → full independent ambulation at 3 months (MRC 55/60).", {
    x:0.3,y:3.84,w:3.7,h:0.65,
    fontSize:8.8, color:C.sky, italic:true, fontFace:"Calibri", valign:"middle", margin:2,
  });

  // Prognosis stats row
  const stats = [
    { v:"~80%",  l:"walk independently by 6 months", col:C.teal },
    { v:"1–5%",  l:"mortality in modern ICU era",     col:"C0392B" },
    { v:"60%",   l:"report fatigue at 1 year",        col:C.amber },
    { v:"67%",   l:"psychiatric sequelae (anxiety/depression)", col:"7D5BA6" },
  ];
  stats.forEach((st,i) => {
    const bx = 4.3 + i*1.42;
    rRect(s, bx, 0.95, 1.3, 1.4, C.card, 0.1);
    rect(s, bx, 0.95, 1.3, 0.06, st.col);
    s.addText(st.v, { x:bx,y:1.01,w:1.3,h:0.68,
      fontSize:24, bold:true, color:st.col, align:"center", fontFace:"Calibri", margin:0 });
    s.addText(st.l, { x:bx+0.06,y:1.68,w:1.18,h:0.62,
      fontSize:8, color:C.offwhite, align:"center", fontFace:"Calibri", margin:0 });
  });

  // MDT section
  s.addText("MULTIDISCIPLINARY TEAM", {
    x:4.3,y:2.46,w:5.5,h:0.3,
    fontSize:11, bold:true, color:C.sky, fontFace:"Calibri",
    charSpacing:2, margin:0,
  });

  const mdtRoles = [
    { r:"Neurologist",          d:"Immunotherapy, relapse monitoring" },
    { r:"Physiatrist (PM&R)",   d:"Rehab plan, disability staging" },
    { r:"Physiotherapist",      d:"Strength, gait, balance, respiratory" },
    { r:"Occupational Therapist",d:"ADLs, orthotics, return-to-work" },
    { r:"Speech-Language Path.",d:"Dysphagia, communication" },
    { r:"Psychologist",         d:"Depression, anxiety, PTSD, CBT" },
    { r:"Social Worker",        d:"Discharge, caregiver training" },
    { r:"Respiratory Therapist",d:"Ventilator weaning, chest PT" },
  ];
  mdtRoles.forEach((m,i) => {
    const col = i < 4 ? 0 : 1;
    const row = i < 4 ? i : i-4;
    const bx  = 4.3  + col * 2.78;
    const by  = 2.82 + row * 0.66;
    s.addShape(pres.ShapeType.ellipse, { x:bx, y:by+0.17, w:0.14, h:0.14,
      fill:{color:C.teal}, line:{color:C.teal} });
    s.addText(m.r, { x:bx+0.22,y:by, w:2.5,h:0.28,
      fontSize:10, bold:true, color:C.sky, fontFace:"Calibri", margin:0 });
    s.addText(m.d, { x:bx+0.22,y:by+0.29, w:2.5,h:0.28,
      fontSize:8.8, color:C.offwhite, fontFace:"Calibri", margin:0 });
  });

  // Key message banner
  rRect(s, 0.2,4.57,9.6,0.78, "0E2D4A", 0.1);
  rect(s, 0.2,4.57,9.6,0.06, C.orange);
  s.addText([
    { text:"Key Message: ", options:{bold:true, color:C.orange} },
    { text:"Early, structured multidisciplinary rehabilitation — from ICU to community — is the cornerstone of recovery in GBS. Carlos achieved full ambulation at 3 months with intensive inpatient + outpatient rehab.", options:{color:C.offwhite} },
  ], { x:0.35,y:4.64,w:9.3,h:0.7, fontSize:10, fontFace:"Calibri", valign:"middle", margin:4 });
}

// ── WRITE ──────────────────────────────────────────────────────────────────
pres.writeFile({ fileName:"/home/daytona/workspace/gbs-rehab-pptx/GBS_ClinicalCase_Rehabilitation.pptx" })
  .then(()=>console.log("DONE"))
  .catch(e=>{ console.error(e); process.exit(1); });
Your credits are exhausted. Your daily credits reset tomorrow, or you can purchase a top-up for more.

Create presentation

Your credits are exhausted. Your daily credits reset tomorrow, or you can purchase a top-up for more.
This is a shared conversation. Sign in to Orris to start your own chat.