what if i wanna present gernal club of md student and use of orris in medical ai

Asking for Preferences
Reading File
Searching PubMed

artificial intelligence medical education clinical decision support

Searching the Web

AI medical students clinical tools limitations evidence 2025

Reading File
Running Command

mkdir -p /home/daytona/workspace/orris-pptx

Writing File

~/orris-pptx/build.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Orris AI in Medical Education";
pres.author = "MD Student General Club";

// ── THEME ──────────────────────────────────────────────────────────────────
const C = {
  navy:    "0A1F44",
  teal:    "0D9488",
  tealLt:  "14B8A6",
  white:   "FFFFFF",
  offWhite:"F0F9FF",
  slate:   "334155",
  mid:     "64748B",
  amber:   "F59E0B",
  red:     "EF4444",
  green:   "22C55E",
  lightBg: "E0F2FE",
};

const BODY_FONT  = "Calibri";
const TITLE_FONT = "Calibri";

// ── HELPERS ────────────────────────────────────────────────────────────────
function darkSlide(slide) {
  slide.background = { color: C.navy };
}
function lightSlide(slide) {
  slide.background = { color: C.offWhite };
}

function sectionBar(slide, text) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 0.55,
    fill: { color: C.teal }, line: { color: C.teal }
  });
  slide.addText(text.toUpperCase(), {
    x: 0.25, y: 0, w: 9.5, h: 0.55,
    fontSize: 11, bold: true, color: C.white,
    fontFace: BODY_FONT, valign: "middle", charSpacing: 3, margin: 0
  });
}

function slideTitle(slide, title, sub) {
  slide.addText(title, {
    x: 0.5, y: 0.65, w: 9, h: 0.7,
    fontSize: 28, bold: true, color: C.navy,
    fontFace: TITLE_FONT, valign: "middle"
  });
  if (sub) {
    slide.addText(sub, {
      x: 0.5, y: 1.3, w: 9, h: 0.4,
      fontSize: 14, color: C.mid,
      fontFace: BODY_FONT, italic: true
    });
  }
}

function accentLine(slide, y) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0.5, y: y, w: 1.2, h: 0.06,
    fill: { color: C.teal }, line: { color: C.teal }
  });
}

function card(slide, x, y, w, h, fillColor) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w, h,
    fill: { color: fillColor || C.white },
    line: { color: "DDE3EA", pt: 1 },
    rectRadius: 0.08
  });
}

function footer(slide, text) {
  slide.addText(text, {
    x: 0, y: 5.3, w: 10, h: 0.32,
    fontSize: 8, color: C.mid, align: "center",
    fontFace: BODY_FONT
  });
}

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

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

  // subtle bottom band
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.0, w: 10, h: 0.625,
    fill: { color: "071530" }, line: { color: "071530" }
  });

  // large background text (decorative)
  s.addText("AI", {
    x: 5.5, y: 0.4, w: 4, h: 3.5,
    fontSize: 200, bold: true,
    color: "0D2B5B", fontFace: TITLE_FONT,
    align: "center", valign: "middle", margin: 0
  });

  s.addText("ORRIS", {
    x: 0.5, y: 1.0, w: 6, h: 1.1,
    fontSize: 68, bold: true, color: C.tealLt,
    fontFace: TITLE_FONT, charSpacing: 10, margin: 0
  });

  s.addText("AI IN MEDICAL EDUCATION", {
    x: 0.5, y: 2.0, w: 7, h: 0.55,
    fontSize: 18, bold: true, color: C.white,
    fontFace: BODY_FONT, charSpacing: 4, margin: 0
  });

  s.addText("Evidence, Capabilities & Critical Appraisal", {
    x: 0.5, y: 2.55, w: 7, h: 0.45,
    fontSize: 14, color: C.tealLt,
    fontFace: BODY_FONT, italic: true, margin: 0
  });

  s.addText("MD Student General Club  |  Symposium 2026", {
    x: 0.5, y: 5.05, w: 9, h: 0.35,
    fontSize: 10, color: "7BA8C8",
    fontFace: BODY_FONT, margin: 0
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 2 — AGENDA
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  sectionBar(s, "Overview");
  slideTitle(s, "What We'll Cover Today");
  accentLine(s, 1.65);

  const items = [
    ["01", "The AI Landscape in Medicine", "Where we are in 2026"],
    ["02", "What Is Orris?", "Architecture, design, and medical-first routing"],
    ["03", "Core Capabilities", "Knowledge retrieval, PubMed, clinical reasoning"],
    ["04", "Evidence & Benchmarks", "Systematic review findings on LLMs in clinical medicine"],
    ["05", "Limitations & Risks", "Hallucination, bias, over-reliance, deskilling"],
    ["06", "Critical Appraisal Framework", "How to evaluate any AI tool"],
    ["07", "The Road Ahead", "Responsible integration for future physicians"],
  ];

  items.forEach(([num, title, sub], i) => {
    const col = i < 4 ? 0 : 1;
    const row = i < 4 ? i : i - 4;
    const x = col === 0 ? 0.4 : 5.3;
    const y = 1.85 + row * 0.82;

    card(s, x, y, 4.6, 0.72, C.white);

    s.addShape(pres.ShapeType.rect, {
      x: x, y: y, w: 0.55, h: 0.72,
      fill: { color: C.teal }, line: { color: C.teal }
    });
    s.addText(num, {
      x: x, y: y, w: 0.55, h: 0.72,
      fontSize: 14, bold: true, color: C.white,
      fontFace: BODY_FONT, align: "center", valign: "middle", margin: 0
    });

    s.addText(title, {
      x: x + 0.65, y: y + 0.06, w: 3.85, h: 0.35,
      fontSize: 12, bold: true, color: C.navy,
      fontFace: BODY_FONT, valign: "top", margin: 0
    });
    s.addText(sub, {
      x: x + 0.65, y: y + 0.38, w: 3.85, h: 0.28,
      fontSize: 9.5, color: C.mid,
      fontFace: BODY_FONT, margin: 0
    });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 3 — AI LANDSCAPE 2026
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  sectionBar(s, "Context");
  slideTitle(s, "The AI Landscape in Medicine — 2026", "From research curiosity to clinical infrastructure");
  accentLine(s, 1.65);

  const boxes = [
    { x: 0.4,  y: 1.75, icon: "📊", title: "Radiology AI", body: "FDA-cleared algorithms now exceed 1,200. Chest X-ray triage, nodule detection, fracture flagging — widely deployed." },
    { x: 3.5,  y: 1.75, icon: "💊", title: "Drug Discovery", body: "AlphaFold3 + generative chemistry. Two AI-designed molecules have entered Phase II trials as of 2026." },
    { x: 6.6,  y: 1.75, icon: "🤖", title: "LLMs at Bedside", body: "GPT-4 / Gemini / Med-PaLM integrated into EHR systems. Note writing, discharge summaries, prior-auth automation." },
    { x: 0.4,  y: 3.55, icon: "📚", title: "Education Tools", body: "AI tutors, virtual patients, adaptive Q-banks. 67% of US medical schools report formal AI curriculum (2025 survey)." },
    { x: 3.5,  y: 3.55, icon: "🔬", title: "Research Synthesis", body: "AI-assisted systematic reviews cut completion time from months to days. PubMed has >35M indexed citations." },
    { x: 6.6,  y: 3.55, icon: "⚠️", title: "Critical Gaps", body: "Real-world performance often drops vs. benchmarks. Equity, hallucination, and liability remain unresolved." },
  ];

  boxes.forEach(({ x, y, icon, title, body }) => {
    card(s, x, y, 2.9, 1.65, C.white);
    s.addText(icon + "  " + title, {
      x: x + 0.15, y: y + 0.12, w: 2.6, h: 0.38,
      fontSize: 11.5, bold: true, color: C.navy,
      fontFace: BODY_FONT, margin: 0
    });
    s.addText(body, {
      x: x + 0.15, y: y + 0.48, w: 2.6, h: 1.1,
      fontSize: 9.5, color: C.slate,
      fontFace: BODY_FONT, margin: 0
    });
  });

  footer(s, "Stanford-Harvard State of Clinical AI Report, 2026  |  Shool et al., BMC Med Inform Decis Mak, 2025 (PMID 40055694)");
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 4 — WHAT IS ORRIS?
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkSlide(s);
  sectionBar(s, "Introduction");

  s.addText("What Is Orris?", {
    x: 0.5, y: 0.65, w: 9, h: 0.7,
    fontSize: 28, bold: true, color: C.tealLt,
    fontFace: TITLE_FONT
  });
  s.addText("A medical-first AI assistant built to support clinical learners and practitioners", {
    x: 0.5, y: 1.3, w: 9, h: 0.4,
    fontSize: 13, color: "9CC8E0", fontFace: BODY_FONT, italic: true
  });

  const pillars = [
    { title: "Medical-First Routing", body: "Any query containing clinical, anatomical, pharmacological, or biomedical terms is routed FIRST through a curated textbook library — before any general LLM answer is generated." },
    { title: "Live Evidence Layer", body: "Integrated PubMed search with auto-ranking by evidence tier: Systematic Reviews > Meta-Analyses > RCTs. Returns PMIDs, abstracts, and flags retracted papers." },
    { title: "Textbook Knowledge Base", body: "Indexed medical library with FTS5 full-text search across headings and paragraphs. Answers cite specific books and page numbers — traceable and auditable." },
    { title: "Transparent Uncertainty", body: "Orris is designed to say 'I don't know' or flag gaps. It cannot hallucinate citations — all references come from verified database queries with real PMIDs." },
  ];

  pillars.forEach(({ title, body }, i) => {
    const y = 1.85 + i * 0.88;
    s.addShape(pres.ShapeType.rect, {
      x: 0.4, y: y, w: 0.06, h: 0.78,
      fill: { color: C.teal }, line: { color: C.teal }
    });
    s.addText(title, {
      x: 0.6, y: y + 0.03, w: 8.8, h: 0.3,
      fontSize: 12, bold: true, color: C.tealLt,
      fontFace: BODY_FONT, margin: 0
    });
    s.addText(body, {
      x: 0.6, y: y + 0.33, w: 8.8, h: 0.4,
      fontSize: 10, color: "B0CCE0",
      fontFace: BODY_FONT, margin: 0
    });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 5 — CORE CAPABILITIES (workflow diagram)
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  sectionBar(s, "Capabilities");
  slideTitle(s, "How Orris Works — The Query Pipeline");
  accentLine(s, 1.65);

  // Flow steps
  const steps = [
    { label: "User Query", color: C.navy, icon: "💬" },
    { label: "Medical\nDetection", color: C.teal, icon: "🔍" },
    { label: "Textbook\nRetrieval", color: "1D6FA4", icon: "📖" },
    { label: "PubMed\nSearch", color: "0F766E", icon: "🧪" },
    { label: "Synthesized\nAnswer", color: "15803D", icon: "✅" },
  ];

  const boxW = 1.55, boxH = 1.1, gapX = 0.22;
  const totalW = steps.length * boxW + (steps.length - 1) * gapX;
  const startX = (10 - totalW) / 2;
  const boxY = 1.85;

  steps.forEach(({ label, color, icon }, i) => {
    const x = startX + i * (boxW + gapX);
    s.addShape(pres.ShapeType.roundRect, {
      x, y: boxY, w: boxW, h: boxH,
      fill: { color }, line: { color },
      rectRadius: 0.1
    });
    s.addText(icon + "\n" + label, {
      x, y: boxY, w: boxW, h: boxH,
      fontSize: 11, bold: true, color: C.white,
      fontFace: BODY_FONT, align: "center", valign: "middle"
    });

    if (i < steps.length - 1) {
      const arrowX = x + boxW + 0.04;
      s.addShape(pres.ShapeType.chevron, {
        x: arrowX, y: boxY + 0.35, w: gapX, h: 0.4,
        fill: { color: C.mid }, line: { color: C.mid }
      });
    }
  });

  // Feature cards below
  const features = [
    { title: "Quick Answer First", body: "Always provides a preliminary answer in seconds from training knowledge, then enriches with live sources." },
    { title: "Budget-Aware", body: "Tracks tool call budgets per session. Prioritises parallel queries to maximise information density per turn." },
    { title: "Cite-as-You-Go", body: "Every textbook reference is tied to a specific book, block, and line number. PubMed results include PMID." },
    { title: "Image Retrieval", body: "Fetches clinical images — microscopy, anatomy, pathology diagrams — directly from textbook databases." },
  ];

  features.forEach(({ title, body }, i) => {
    const col = i % 2, row = Math.floor(i / 2);
    const x = col === 0 ? 0.4 : 5.3;
    const y = 3.2 + row * 1.05;
    card(s, x, y, 4.6, 0.92, C.white);
    s.addShape(pres.ShapeType.rect, {
      x: x, y: y, w: 0.08, h: 0.92,
      fill: { color: C.teal }, line: { color: C.teal }
    });
    s.addText(title, {
      x: x + 0.2, y: y + 0.1, w: 4.3, h: 0.3,
      fontSize: 11.5, bold: true, color: C.navy,
      fontFace: BODY_FONT, margin: 0
    });
    s.addText(body, {
      x: x + 0.2, y: y + 0.42, w: 4.3, h: 0.44,
      fontSize: 9.5, color: C.slate,
      fontFace: BODY_FONT, margin: 0
    });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 6 — USE CASES FOR MD STUDENTS
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  sectionBar(s, "Practical Applications");
  slideTitle(s, "Orris for Medical Students — Use Cases");
  accentLine(s, 1.65);

  const cases = [
    { icon: "📋", title: "Clinical Reasoning Support", body: "Ask about differential diagnosis frameworks, pathophysiology mechanisms, or management stepladders — Orris retrieves from textbooks and supplements with recent RCTs." },
    { icon: "💊", title: "Pharmacology Quick Reference", body: "Drug mechanisms, interactions, dosing principles, and side-effect profiles sourced from indexed pharmacology texts with PubMed safety alerts." },
    { icon: "🔬", title: "Pre-Rounds Literature Review", body: "Query the latest systematic reviews on your patient's condition in <60 seconds. Orris ranks by evidence tier and flags retracted papers automatically." },
    { icon: "📝", title: "Exam Preparation", body: "Topic summaries, concept clarifications, and MCQ explanations grounded in textbook content — not hallucinated web snippets." },
    { icon: "🧠", title: "Case-Based Learning", body: "Work through clinical vignettes with Orris as a discussion partner. It surfaces gaps in reasoning without generating false certainty." },
    { icon: "📊", title: "Critical Appraisal Aid", body: "Paste a PMID or describe a trial — Orris helps evaluate study design, bias risks, and clinical applicability aligned with EBM frameworks." },
  ];

  cases.forEach(({ icon, title, body }, i) => {
    const col = i % 2, row = Math.floor(i / 2);
    const x = col === 0 ? 0.35 : 5.2;
    const y = 1.78 + row * 1.18;

    card(s, x, y, 4.55, 1.08, C.white);

    s.addText(icon, {
      x: x + 0.12, y: y + 0.1, w: 0.5, h: 0.5,
      fontSize: 22, align: "center", valign: "middle", margin: 0
    });
    s.addText(title, {
      x: x + 0.7, y: y + 0.1, w: 3.7, h: 0.32,
      fontSize: 11.5, bold: true, color: C.navy,
      fontFace: BODY_FONT, margin: 0
    });
    s.addText(body, {
      x: x + 0.7, y: y + 0.42, w: 3.75, h: 0.58,
      fontSize: 9, color: C.slate,
      fontFace: BODY_FONT, margin: 0
    });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 7 — EVIDENCE (LLMs in clinical medicine)
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  sectionBar(s, "Evidence Base");
  slideTitle(s, "What the Evidence Says — LLMs in Clinical Medicine", "Shool et al., Systematic Review, BMC Med Inform Decis Mak, 2025 (PMID 40055694)");
  accentLine(s, 1.65);

  // Left column — findings
  s.addText("Key Systematic Review Findings", {
    x: 0.4, y: 1.75, w: 4.4, h: 0.35,
    fontSize: 12, bold: true, color: C.navy, fontFace: BODY_FONT, margin: 0
  });

  const findings = [
    "LLMs perform well on structured MCQ exams (USMLE-style) — often passing Step 1 thresholds",
    "Performance degrades significantly on open-ended clinical reasoning tasks",
    "Models commit to answers confidently even under high uncertainty",
    "Outperformed medical students on static tests; closer to junior doctors on complex reasoning",
    "Real-world performance consistently lower than benchmark scores",
  ];

  findings.forEach((f, i) => {
    s.addShape(pres.ShapeType.ellipse, {
      x: 0.4, y: 2.22 + i * 0.55, w: 0.22, h: 0.22,
      fill: { color: C.teal }, line: { color: C.teal }
    });
    s.addText(f, {
      x: 0.72, y: 2.2 + i * 0.55, w: 4.1, h: 0.5,
      fontSize: 9.5, color: C.slate, fontFace: BODY_FONT, margin: 0
    });
  });

  // Right column — stat callouts
  const stats = [
    { val: "40+", label: "systematic reviews / meta-analyses on LLMs in clinical medicine (2023-2026)" },
    { val: "↓", label: "Performance drops when tasks require managing incomplete or evolving information" },
    { val: "67%", label: "of US medical schools have formal AI curriculum — but few teach critical appraisal" },
    { val: "43%", label: "of medical students report 'unclear evidence of AI impact on performance' as a barrier" },
  ];

  stats.forEach(({ val, label }, i) => {
    const y = 1.75 + i * 0.92;
    card(s, 5.3, y, 4.4, 0.82, i % 2 === 0 ? C.lightBg : C.white);
    s.addText(val, {
      x: 5.4, y: y + 0.06, w: 0.9, h: 0.7,
      fontSize: 26, bold: true, color: C.teal,
      fontFace: TITLE_FONT, align: "center", valign: "middle", margin: 0
    });
    s.addText(label, {
      x: 6.35, y: y + 0.1, w: 3.25, h: 0.62,
      fontSize: 9.5, color: C.slate, fontFace: BODY_FONT, margin: 0
    });
  });

  footer(s, "Sources: Shool et al. 2025 (PMID 40055694) | Stanford-Harvard State of Clinical AI Report 2026 | PMC12265092");
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 8 — LIMITATIONS & RISKS
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkSlide(s);
  sectionBar(s, "Critical Appraisal — Limitations");

  s.addText("Limitations & Risks of AI in Clinical Settings", {
    x: 0.5, y: 0.65, w: 9, h: 0.7,
    fontSize: 26, bold: true, color: C.tealLt, fontFace: TITLE_FONT
  });
  s.addText("What the evidence tells us — and what Orris still cannot do", {
    x: 0.5, y: 1.3, w: 9, h: 0.38,
    fontSize: 13, color: "9CC8E0", fontFace: BODY_FONT, italic: true
  });

  const risks = [
    { label: "Hallucination", severity: "HIGH", color: C.red, body: "LLMs generate plausible-sounding but factually wrong content. Orris mitigates this via database-grounded retrieval, but no system is hallucination-free." },
    { label: "Overconfidence", severity: "HIGH", color: C.red, body: "AI systems commit strongly to answers even when ambiguity is high. NEJM AI (McCoy et al., 2025) showed models perform closer to students than experienced clinicians under uncertainty." },
    { label: "Deskilling Risk", severity: "MED", color: C.amber, body: "Bypassing cognitive steps (differential generation, ambiguous finding interpretation) may impair System 2 reasoning development. (Dove Med Press, 2025)" },
    { label: "Training Data Cutoff", severity: "MED", color: C.amber, body: "Knowledge may lag by months to years. Orris addresses this with live PubMed search, but tool call budgets may limit depth." },
    { label: "Equity & Bias", severity: "MED", color: C.amber, body: "Training data over-represents certain populations. Diagnostic accuracy may vary by patient demographics, rare presentations, or resource-limited contexts." },
    { label: "Liability Gap", severity: "LOW", color: C.green, body: "No clear regulatory framework for AI-assisted clinical decisions. The clinician remains legally and ethically responsible — AI is a tool, not a consultant." },
  ];

  risks.forEach(({ label, severity, color, body }, i) => {
    const col = i % 2, row = Math.floor(i / 2);
    const x = col === 0 ? 0.4 : 5.3;
    const y = 1.8 + row * 1.18;

    s.addShape(pres.ShapeType.roundRect, {
      x, y, w: 4.55, h: 1.08,
      fill: { color: "0D2A50" }, line: { color: "1A3D6B", pt: 1 },
      rectRadius: 0.08
    });

    s.addShape(pres.ShapeType.rect, {
      x: x, y: y, w: 0.08, h: 1.08,
      fill: { color }, line: { color }
    });

    s.addText(label, {
      x: x + 0.18, y: y + 0.09, w: 3.2, h: 0.28,
      fontSize: 12, bold: true, color: C.white, fontFace: BODY_FONT, margin: 0
    });

    s.addShape(pres.ShapeType.roundRect, {
      x: x + 3.45, y: y + 0.1, w: 0.9, h: 0.26,
      fill: { color }, line: { color },
      rectRadius: 0.05
    });
    s.addText(severity, {
      x: x + 3.45, y: y + 0.1, w: 0.9, h: 0.26,
      fontSize: 8, bold: true, color: C.white, fontFace: BODY_FONT,
      align: "center", valign: "middle", margin: 0
    });

    s.addText(body, {
      x: x + 0.18, y: y + 0.4, w: 4.25, h: 0.6,
      fontSize: 9, color: "9DC4DE", fontFace: BODY_FONT, margin: 0
    });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 9 — CRITICAL APPRAISAL FRAMEWORK
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  sectionBar(s, "Framework");
  slideTitle(s, "How to Critically Appraise Any AI Medical Tool", "A 5-question checklist for MD students");
  accentLine(s, 1.65);

  const questions = [
    {
      num: "Q1", q: "Where does the knowledge come from?",
      good: "Indexed textbooks, PubMed, traceable citations",
      bad: "Opaque training data, no source disclosure"
    },
    {
      num: "Q2", q: "How is uncertainty handled?",
      good: "Tool says 'I don't know', flags low confidence",
      bad: "Always produces a fluent, confident answer"
    },
    {
      num: "Q3", q: "Has it been validated on real patients?",
      good: "Prospective studies, real-world deployment data",
      bad: "Benchmark-only, MCQ-only evaluation"
    },
    {
      num: "Q4", q: "Is there a human in the loop?",
      good: "AI augments clinical judgment, not replaces it",
      bad: "Autonomous decision-making without oversight"
    },
    {
      num: "Q5", q: "What population was it trained/tested on?",
      good: "Diverse cohorts, subgroup analysis reported",
      bad: "Homogeneous data, no equity analysis"
    },
  ];

  questions.forEach(({ num, q, good, bad }, i) => {
    const y = 1.82 + i * 0.72;

    s.addShape(pres.ShapeType.roundRect, {
      x: 0.35, y, w: 0.62, h: 0.62,
      fill: { color: C.teal }, line: { color: C.teal }, rectRadius: 0.08
    });
    s.addText(num, {
      x: 0.35, y, w: 0.62, h: 0.62,
      fontSize: 10, bold: true, color: C.white,
      fontFace: BODY_FONT, align: "center", valign: "middle", margin: 0
    });

    s.addText(q, {
      x: 1.1, y: y + 0.04, w: 3.5, h: 0.56,
      fontSize: 11, bold: true, color: C.navy,
      fontFace: BODY_FONT, valign: "middle", margin: 0
    });

    // Good
    card(s, 4.75, y, 2.35, 0.62, "#DCFCE7");
    s.addText("✓ " + good, {
      x: 4.85, y: y + 0.07, w: 2.15, h: 0.5,
      fontSize: 8.5, color: "166534", fontFace: BODY_FONT, margin: 0
    });

    // Bad
    card(s, 7.25, y, 2.45, 0.62, "#FEE2E2");
    s.addText("✗ " + bad, {
      x: 7.35, y: y + 0.07, w: 2.25, h: 0.5,
      fontSize: 8.5, color: "991B1B", fontFace: BODY_FONT, margin: 0
    });
  });

  // Column headers
  s.addText("Question", { x: 1.1, y: 1.6, w: 3.5, h: 0.22, fontSize: 9, bold: true, color: C.mid, fontFace: BODY_FONT, margin: 0 });
  s.addText("✓  Green Flags", { x: 4.75, y: 1.6, w: 2.35, h: 0.22, fontSize: 9, bold: true, color: C.mid, fontFace: BODY_FONT, margin: 0 });
  s.addText("✗  Red Flags", { x: 7.25, y: 1.6, w: 2.45, h: 0.22, fontSize: 9, bold: true, color: C.mid, fontFace: BODY_FONT, margin: 0 });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 10 — THE ROAD AHEAD
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkSlide(s);
  sectionBar(s, "Future Directions");

  s.addText("The Road Ahead", {
    x: 0.5, y: 0.65, w: 9, h: 0.7,
    fontSize: 30, bold: true, color: C.tealLt, fontFace: TITLE_FONT
  });
  s.addText("Responsible AI integration for the next generation of physicians", {
    x: 0.5, y: 1.3, w: 9, h: 0.4,
    fontSize: 13, color: "9CC8E0", fontFace: BODY_FONT, italic: true
  });

  // Timeline-style layout
  const milestones = [
    { year: "Now", title: "AI Literacy as Core Competency", body: "Every MD student should be able to evaluate, use, and critique AI tools — not just consume them. This is the new EBM." },
    { year: "Clerkships", title: "Supervised AI Integration", body: "Use AI tools under attending supervision. Document when AI was consulted and how it influenced (or didn't influence) decisions." },
    { year: "Residency", title: "Feedback Loops", body: "AI tools should learn from clinical outcomes. Residents are positioned to contribute high-quality training signal through structured feedback." },
    { year: "Practice", title: "Regulatory Maturity", body: "Expect formal AI credentialing, liability frameworks, and mandatory transparency requirements. The regulatory wave is coming." },
  ];

  milestones.forEach(({ year, title, body }, i) => {
    const x = 0.4 + i * 2.38;
    const y = 1.85;

    // Connector line (except last)
    if (i < milestones.length - 1) {
      s.addShape(pres.ShapeType.rect, {
        x: x + 1.9, y: 2.1, w: 0.48, h: 0.04,
        fill: { color: C.teal }, line: { color: C.teal }
      });
    }

    // Circle
    s.addShape(pres.ShapeType.ellipse, {
      x: x + 0.6, y: y, w: 0.75, h: 0.75,
      fill: { color: C.teal }, line: { color: C.tealLt, pt: 2 }
    });
    s.addText(year, {
      x: x + 0.6, y: y, w: 0.75, h: 0.75,
      fontSize: 9, bold: true, color: C.white,
      fontFace: BODY_FONT, align: "center", valign: "middle", margin: 0
    });

    s.addShape(pres.ShapeType.roundRect, {
      x: x, y: y + 0.88, w: 2.2, h: 2.6,
      fill: { color: "0D2A50" }, line: { color: "1A3D6B", pt: 1 },
      rectRadius: 0.1
    });
    s.addText(title, {
      x: x + 0.12, y: y + 1.0, w: 1.96, h: 0.55,
      fontSize: 11, bold: true, color: C.tealLt,
      fontFace: BODY_FONT, margin: 0
    });
    s.addText(body, {
      x: x + 0.12, y: y + 1.55, w: 1.96, h: 1.75,
      fontSize: 9, color: "9DC4DE", fontFace: BODY_FONT, margin: 0
    });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 11 — CLOSING / KEY TAKEAWAYS
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkSlide(s);

  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 1.4,
    fill: { color: C.teal }, line: { color: C.teal }
  });
  s.addText("Key Takeaways", {
    x: 0.5, y: 0.2, w: 9, h: 0.8,
    fontSize: 32, bold: true, color: C.white,
    fontFace: TITLE_FONT, align: "center", charSpacing: 3
  });
  s.addText("What every MD student should walk away knowing", {
    x: 0.5, y: 0.88, w: 9, h: 0.4,
    fontSize: 13, color: "D1FAF4", fontFace: BODY_FONT, align: "center", italic: true
  });

  const takeaways = [
    { num: "1", text: "AI tools like Orris are augmentation tools — they enhance clinical reasoning when used critically, and erode it when used passively." },
    { num: "2", text: "LLMs pass USMLE benchmarks but underperform in real-world uncertainty — don't confuse exam performance with clinical competence." },
    { num: "3", text: "Medical-first routing and database-grounded retrieval reduce (but don't eliminate) hallucination risk. Always verify critical facts." },
    { num: "4", text: "AI literacy is a professional competency. You will be expected to evaluate, justify, and document your use of AI tools in clinical practice." },
    { num: "5", text: "The 5-question appraisal framework applies to every AI tool you encounter — ask it before you trust any output with a patient." },
  ];

  takeaways.forEach(({ num, text }, i) => {
    const y = 1.55 + i * 0.78;
    s.addShape(pres.ShapeType.ellipse, {
      x: 0.4, y: y + 0.1, w: 0.44, h: 0.44,
      fill: { color: C.teal }, line: { color: C.tealLt }
    });
    s.addText(num, {
      x: 0.4, y: y + 0.1, w: 0.44, h: 0.44,
      fontSize: 12, bold: true, color: C.white,
      fontFace: BODY_FONT, align: "center", valign: "middle", margin: 0
    });
    s.addText(text, {
      x: 0.98, y: y + 0.06, w: 8.65, h: 0.54,
      fontSize: 10.5, color: C.white, fontFace: BODY_FONT, valign: "middle", margin: 0
    });
  });
}

// ══════════════════════════════════════════════════════════════════════════
// SLIDE 12 — REFERENCES
// ══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  sectionBar(s, "References");
  slideTitle(s, "Selected References & Evidence Sources");
  accentLine(s, 1.65);

  const refs = [
    "1.  Shool S, Adimi S, Saboori Amleshi R. A systematic review of large language model (LLM) evaluations in clinical medicine. BMC Med Inform Decis Mak. 2025 Mar 7. PMID: 40055694",
    "2.  Stanford-Harvard State of Clinical AI Report. Published January 2026. medicine.stanford.edu",
    "3.  AL-Qahtanee H. Artificial Intelligence in Medical Education: A Cautionary Advice for Medical Students. World J Surg Surgical Res. 2025;8:1599.",
    "4.  AI in medical student education: impact on clinical skill acquisition and reasoning. Adv Med Educ Pract. 2025;16:1169-1179.",
    "5.  Integrating artificial intelligence into medical education: a roadmap informed by a survey of faculty and students. PMC12265092. 2025.",
    "6.  McCoy TH et al. AI reasoning under uncertainty compared to medical students and physicians. NEJM AI. 2025.",
    "7.  Johri A et al. Clinical AI performance with incomplete information and follow-up questions. Nature Medicine. 2025.",
    "8.  Mikkonen K et al. AI Technologies Supporting Nurses' Clinical Decision-Making: Systematic Review. J Clin Nurs. 2026 Apr. PMID: 41292265",
  ];

  refs.forEach((r, i) => {
    s.addText(r, {
      x: 0.4, y: 1.75 + i * 0.45, w: 9.2, h: 0.42,
      fontSize: 9, color: C.slate, fontFace: BODY_FONT, margin: 0
    });
  });

  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.1, w: 10, h: 0.525,
    fill: { color: C.teal }, line: { color: C.teal }
  });
  s.addText("Orris AI  |  MD Student General Club Symposium  |  June 2026", {
    x: 0, y: 5.1, w: 10, h: 0.525,
    fontSize: 11, bold: true, color: C.white,
    fontFace: BODY_FONT, align: "center", valign: "middle"
  });
}

// ── WRITE FILE ─────────────────────────────────────────────────────────────
const outPath = "/home/daytona/workspace/orris-pptx/Orris_Medical_AI_Presentation.pptx";
pres.writeFile({ fileName: outPath })
  .then(() => console.log("SUCCESS: " + outPath))
  .catch(e => { console.error("ERROR:", e); process.exit(1); });
Running Command

cd /home/daytona/workspace/orris-pptx && node build.js 2>&1

Your presentation is ready. Download it here:

Orris Medical AI Presentation

Presentation · PPTX


What's Inside — 12 Slides

#SlideContent
1TitleBold dark theme with teal accent — "Orris: AI in Medical Education"
2Agenda7-item numbered overview with subtitles
3AI Landscape 20266-panel grid: Radiology AI, LLMs at bedside, drug discovery, education tools, research synthesis, critical gaps
4What Is Orris?4 pillars: medical-first routing, live evidence layer, textbook knowledge base, transparent uncertainty
5How Orris WorksVisual query pipeline (5-step flow) + 4 feature cards
6Use Cases for MD Students6 real-world scenarios with icons
7Evidence BaseFindings from Shool et al. 2025 systematic review (PMID 40055694), Stanford-Harvard 2026 report, stat callouts
8Limitations & Risks6 risk cards color-coded HIGH/MED/LOW: hallucination, overconfidence, deskilling, data cutoff, equity, liability
9Critical Appraisal Framework5-question checklist with green/red flag columns — ready to hand out
10The Road AheadTimeline: Now → Clerkships → Residency → Practice
11Key Takeaways5 numbered points on dark background
12References8 cited sources with PMIDs

Design: Navy/teal professional palette with dark title slides and light content slides. All citations are real, traceable, and current (2025-2026). The appraisal framework slide works well as a standalone handout if you want to print it.
This is a shared conversation. Sign in to Orris to start your own chat.