I'm 29 year female. I have epigastric, uh, tenderness and, uh, rigidity. What can be the diagnosis per se?

Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Here is a structured breakdown of the possible diagnoses for your presentation - epigastric tenderness + rigidity in a 29-year-old female:

Differential Diagnosis: Epigastric Tenderness + Rigidity

The key distinction here is the rigidity. Epigastric tenderness alone has a broad differential, but rigidity (involuntary muscle guarding) points toward peritoneal irritation, making some diagnoses more urgent than others.

1. Perforated Peptic Ulcer (High Priority - Surgical Emergency)

Rigidity that is board-like and sudden-onset epigastric pain strongly suggests peptic ulcer perforation. Per Tintinalli's Emergency Medicine:
"A rigid abdomen consistent with peritonitis in perforation" is a hallmark physical finding. Abrupt onset of severe or generalized pain may indicate perforation with peritoneal spillage of gastric or duodenal contents.
  • Pain is typically sudden, severe, and constant
  • Rigidity is the classic peritoneal sign
  • May have history of prior ulcer symptoms, NSAID use, or H. pylori infection
  • In young women, less common than in men, but still possible

2. Acute Pancreatitis (Very Likely)

Per Sabiston Textbook of Surgery:
"With mild pancreatitis...only mild epigastric tenderness. Significant abdominal distention associated with generalized rebound and abdominal rigidity is present in severe pancreatitis."
  • Cardinal symptom: epigastric/periumbilical pain radiating to the back
  • Nausea and vomiting in up to 90% of cases
  • In young women: consider gallstone pancreatitis (very common cause in this demographic) or hypertriglyceridemia
  • Diagnosis: serum lipase/amylase >3x upper limit of normal + imaging

3. Acute Gastritis / Peptic Ulcer Disease (Uncomplicated)

Per Tintinalli's:
"The only positive finding in patients with uncomplicated peptic ulcer disease may be epigastric tenderness."
  • If rigidity is minimal/voluntary guarding rather than true board-like rigidity, this is more likely
  • Burning epigastric pain, may be relieved by food or antacids
  • Can be caused by H. pylori, NSAIDs, or stress

4. Acute Cholecystitis / Biliary Colic

  • Pain classically right upper quadrant but can radiate to or present as epigastric pain
  • More common in young women (the "4 Fs": fat, female, forty, fertile - though you're 29)
  • Tenderness may be epigastric; Murphy's sign (RUQ) is classic
  • Ultrasound of the abdomen is the key diagnostic test

5. Acute Appendicitis (Early Presentation)

  • Early appendicitis begins with periumbilical/epigastric pain before migrating to the right lower quadrant (McBurney's point)
  • If still in epigastric phase, can mimic other diagnoses
  • Nausea, anorexia, low-grade fever are typical

6. Ectopic Pregnancy (Must Rule Out in Any Reproductive-Age Woman)

  • Always rule out ectopic pregnancy in a reproductive-age female with acute abdominal pain
  • Can present with epigastric or lower abdominal pain
  • A urine/serum beta-hCG is mandatory before any other workup

7. Other Causes

  • Mesenteric ischemia - less likely at 29 but possible
  • Myocardial infarction - atypical but should not be missed; may present as epigastric pain
  • GERD/Esophagitis - usually no rigidity; burning chest/epigastric discomfort
  • Functional dyspepsia - diagnosis of exclusion, no rigidity expected

What to Do Next (Immediate Workup)

TestReason
Urine/serum beta-hCGExclude ectopic pregnancy
Serum lipase & amylaseRule out pancreatitis
CBC, CRPInfection/inflammation
LFTs, bilirubinBiliary cause
Erect CXRFree air under diaphragm = perforation
Abdominal ultrasoundGallstones, biliary pathology, free fluid
CT abdomen (if needed)Pancreatitis severity, perforation, appendicitis

Bottom line: In a 29-year-old female with epigastric tenderness and rigidity, the most urgent diagnoses to exclude are perforated peptic ulcer (surgical emergency), acute pancreatitis, and ectopic pregnancy. This presentation warrants prompt evaluation in an emergency or urgent care setting.
Sources: Tintinalli's Emergency Medicine, Sabiston Textbook of Surgery, Rosen's Emergency Medicine
Disclaimer: This is educational information only and does not replace a clinical evaluation. Please seek immediate medical attention given the presence of abdominal rigidity.

Create a quick reference guide to abdominal pain differentials by location

Asking for Preferences
Reading File
Finding Sources
Reading File
Finding Sources
Reading File
Reading File
Loading Image
Loading Image
Running Command

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

Running Command

mkdir -p /home/daytona/workspace/abdominal-pain-guide && ls /home/daytona/worksp…

Writing File

~/abdominal-pain-guide/build.js

const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");

// Fetch images
const imgUrls = [
  "https://cdn.orris.care/cdss_images/fd750a7babe2137e9f05ac73ded16b78172d8b99f276e194f462d8335bf009c7.png",
  "https://cdn.orris.care/cdss_images/284112988191d7d30e4aab0ba4da27a72827fe8efd68904c0b428e3107a33794.png"
];

const images = JSON.parse(execSync(
  `node /home/daytona/skills/shared/scripts/fetch_images.js ${imgUrls.map(u => `"${u}"`).join(" ")}`
).toString());

const img1 = images[0].base64; // Tintinalli quadrant diagram
const img2 = images[1].base64; // Goldman-Cecil region diagram

// ── Color palette ──────────────────────────────────────────────────────────
const NAVY    = "0A2342";
const TEAL    = "1A7A8A";
const CREAM   = "F8F5F0";
const WHITE   = "FFFFFF";
const ORANGE  = "E85D2E";
const GOLD    = "F4A51A";
const LTGRAY  = "E8EDF2";
const DARKGRAY= "4A4A5A";

let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Abdominal Pain Differentials by Location";

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 1 — Title
// ══════════════════════════════════════════════════════════════════════════════
{
  let slide = pres.addSlide();
  // Full dark background
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: NAVY } });

  // Accent bar
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 3.85, w: 10, h: 0.08, fill: { color: ORANGE } });

  // Main title
  slide.addText("Abdominal Pain", {
    x: 0.6, y: 0.8, w: 8.8, h: 1.2,
    fontSize: 48, bold: true, color: WHITE, fontFace: "Calibri",
    align: "center"
  });
  slide.addText("DIFFERENTIALS BY LOCATION", {
    x: 0.6, y: 1.9, w: 8.8, h: 0.7,
    fontSize: 22, bold: false, color: GOLD, fontFace: "Calibri",
    align: "center", charSpacing: 4
  });

  // Subtitle / audience
  slide.addText("Quick Reference Guide for Nursing Staff", {
    x: 0.6, y: 3.0, w: 8.8, h: 0.55,
    fontSize: 16, color: "AABCCF", fontFace: "Calibri", align: "center", italic: true
  });

  // Bottom note
  slide.addText("Source: Tintinalli's Emergency Medicine | Goldman-Cecil Medicine", {
    x: 0.6, y: 4.9, w: 8.8, h: 0.4,
    fontSize: 10, color: "667788", fontFace: "Calibri", align: "center"
  });
}

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 2 — Overview Anatomy Diagram (Tintinalli)
// ══════════════════════════════════════════════════════════════════════════════
{
  let slide = pres.addSlide();
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CREAM } });

  // Header bar
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.7, fill: { color: NAVY } });
  slide.addText("OVERVIEW: ABDOMINAL PAIN BY REGION", {
    x: 0.3, y: 0, w: 9.4, h: 0.7,
    fontSize: 18, bold: true, color: WHITE, fontFace: "Calibri",
    align: "left", valign: "middle", charSpacing: 2
  });

  // Diagram image
  slide.addImage({ data: img1, x: 0.3, y: 0.8, w: 5.0, h: 4.5 });

  // Right side key callouts
  const callouts = [
    { label: "RUQ", color: "D4E6F1", desc: "Cholecystitis, Biliary colic, Hepatitis, Pneumonia (RLL)" },
    { label: "LUQ", color: "D5F5E3", desc: "Gastric ulcer, Pancreatitis, Splenic rupture, Pneumonia (LLL)" },
    { label: "RLQ", color: "FADBD8", desc: "Appendicitis, Ectopic pregnancy, Inguinal hernia, Ovarian torsion" },
    { label: "LLQ", color: "FCF3CF", desc: "Diverticulitis, Ectopic pregnancy, Inguinal hernia, Sigmoid volvulus" },
    { label: "DIFFUSE", color: "E8DAEF", desc: "Peritonitis, Pancreatitis, Bowel obstruction, Aortic rupture, Gastroenteritis" },
  ];

  callouts.forEach((c, i) => {
    const yPos = 0.85 + i * 0.88;
    slide.addShape(pres.ShapeType.rect, {
      x: 5.55, y: yPos, w: 4.1, h: 0.78,
      fill: { color: c.color }, line: { color: DARKGRAY, width: 0.5 }, rectRadius: 0.05
    });
    slide.addText([
      { text: c.label + "  ", options: { bold: true, fontSize: 11, color: NAVY } },
      { text: c.desc, options: { bold: false, fontSize: 9.5, color: DARKGRAY } }
    ], { x: 5.65, y: yPos + 0.05, w: 3.9, h: 0.68, valign: "middle", margin: 4 });
  });
}

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 3 — Goldman-Cecil Region Diagram
// ══════════════════════════════════════════════════════════════════════════════
{
  let slide = pres.addSlide();
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CREAM } });

  // Header bar
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.7, fill: { color: TEAL } });
  slide.addText("DETAILED DIFFERENTIALS BY ABDOMINAL REGION", {
    x: 0.3, y: 0, w: 9.4, h: 0.7,
    fontSize: 17, bold: true, color: WHITE, fontFace: "Calibri",
    align: "left", valign: "middle", charSpacing: 2
  });

  // Full-width diagram
  slide.addImage({ data: img2, x: 0.3, y: 0.8, w: 9.4, h: 4.6 });

  // Source caption
  slide.addText("Goldman-Cecil Medicine, 27th Ed.", {
    x: 0, y: 5.35, w: 10, h: 0.25,
    fontSize: 9, color: "999999", fontFace: "Calibri", align: "center", italic: true
  });
}

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 4 — RUQ & LUQ detail
// ══════════════════════════════════════════════════════════════════════════════
{
  let slide = pres.addSlide();
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: "F0F4F8" } });

  // Header
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: NAVY } });
  slide.addText("UPPER ABDOMINAL PAIN", {
    x: 0.3, y: 0, w: 9.4, h: 0.65,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", charSpacing: 2
  });

  // RUQ Box
  slide.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.8, w: 4.4, h: 4.5, fill: { color: "D6EAF8" }, line: { color: "2E86C1", width: 1.5 } });
  slide.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.8, w: 4.4, h: 0.5, fill: { color: "2E86C1" } });
  slide.addText("RIGHT UPPER QUADRANT (RUQ)", { x: 0.35, y: 0.8, w: 4.3, h: 0.5, fontSize: 12, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle" });

  const ruqItems = [
    ["Biliary", "Cholecystitis, Biliary colic, Choledocholithiasis, Cholangitis"],
    ["Liver", "Hepatitis, Hepatic abscess, Hepatic congestion, Neoplasia"],
    ["GI", "Perforated duodenal ulcer, Peptic ulcer disease"],
    ["Pulmonary", "Pneumonia (RLL), Pulmonary embolism, Pleural effusion"],
    ["Cardiac", "Myocardial ischemia / MI (referred pain)"],
    ["Vascular", "Aortic aneurysm (leaking)"],
  ];

  ruqItems.forEach((item, i) => {
    slide.addText([
      { text: item[0] + ": ", options: { bold: true, color: "1A5276", fontSize: 10 } },
      { text: item[1], options: { color: DARKGRAY, fontSize: 10 } }
    ], { x: 0.45, y: 1.42 + i * 0.53, w: 4.1, h: 0.48, valign: "top" });
  });

  // LUQ Box
  slide.addShape(pres.ShapeType.rect, { x: 5.3, y: 0.8, w: 4.4, h: 4.5, fill: { color: "D5F5E3" }, line: { color: "1E8449", width: 1.5 } });
  slide.addShape(pres.ShapeType.rect, { x: 5.3, y: 0.8, w: 4.4, h: 0.5, fill: { color: "1E8449" } });
  slide.addText("LEFT UPPER QUADRANT (LUQ)", { x: 5.35, y: 0.8, w: 4.3, h: 0.5, fontSize: 12, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle" });

  const luqItems = [
    ["Stomach", "Gastric ulcer, Gastritis, Perforated ulcer"],
    ["Pancreas", "Pancreatitis, Pseudocyst, Pancreatic cancer"],
    ["Spleen", "Splenic rupture, Splenic abscess, Splenomegaly"],
    ["Pulmonary", "Pneumonia (LLL), Pleural effusion, Empyema"],
    ["Cardiac", "Myocardial ischemia / MI (referred pain)"],
    ["Other", "Herpes zoster (shingles), Aortic aneurysm"],
  ];

  luqItems.forEach((item, i) => {
    slide.addText([
      { text: item[0] + ": ", options: { bold: true, color: "145A32", fontSize: 10 } },
      { text: item[1], options: { color: DARKGRAY, fontSize: 10 } }
    ], { x: 5.45, y: 1.42 + i * 0.53, w: 4.1, h: 0.48, valign: "top" });
  });
}

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 5 — RLQ & LLQ detail
// ══════════════════════════════════════════════════════════════════════════════
{
  let slide = pres.addSlide();
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: "F0F4F8" } });

  // Header
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: ORANGE } });
  slide.addText("LOWER ABDOMINAL PAIN", {
    x: 0.3, y: 0, w: 9.4, h: 0.65,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", charSpacing: 2
  });

  // RLQ Box
  slide.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.8, w: 4.4, h: 4.5, fill: { color: "FADBD8" }, line: { color: "C0392B", width: 1.5 } });
  slide.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.8, w: 4.4, h: 0.5, fill: { color: "C0392B" } });
  slide.addText("RIGHT LOWER QUADRANT (RLQ)", { x: 0.35, y: 0.8, w: 4.3, h: 0.5, fontSize: 12, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle" });

  const rlqItems = [
    ["GI", "Appendicitis, Crohn's disease (ileitis), Mesenteric adenitis"],
    ["Gynecologic", "Ectopic pregnancy ⚠, Ovarian torsion, Salpingitis, Endometriosis, TOA"],
    ["Urologic", "Ureteral stone / calculi, Pyelonephritis"],
    ["Vascular", "Aortic aneurysm (leaking), Ischemic colitis"],
    ["Hernia", "Inguinal hernia (incarcerated/strangulated)"],
    ["Other", "Psoas abscess, Herpes zoster, Meckel's diverticulum"],
  ];

  rlqItems.forEach((item, i) => {
    slide.addText([
      { text: item[0] + ": ", options: { bold: true, color: "922B21", fontSize: 10 } },
      { text: item[1], options: { color: DARKGRAY, fontSize: 10 } }
    ], { x: 0.45, y: 1.42 + i * 0.53, w: 4.1, h: 0.48, valign: "top" });
  });

  // LLQ Box
  slide.addShape(pres.ShapeType.rect, { x: 5.3, y: 0.8, w: 4.4, h: 4.5, fill: { color: "FEF9E7" }, line: { color: "D4AC0D", width: 1.5 } });
  slide.addShape(pres.ShapeType.rect, { x: 5.3, y: 0.8, w: 4.4, h: 0.5, fill: { color: "D4AC0D" } });
  slide.addText("LEFT LOWER QUADRANT (LLQ)", { x: 5.35, y: 0.8, w: 4.3, h: 0.5, fontSize: 12, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle" });

  const llqItems = [
    ["GI", "Diverticulitis, Sigmoid volvulus, IBD (Crohn's/UC), IBS"],
    ["Gynecologic", "Ectopic pregnancy ⚠, Ovarian torsion, Salpingitis, Endometriosis, TOA"],
    ["Urologic", "Ureteral stone / calculi, Pyelonephritis"],
    ["Vascular", "Aortic aneurysm, Ischemic colitis"],
    ["Hernia", "Inguinal hernia (incarcerated/strangulated)"],
    ["Other", "Psoas abscess, Herpes zoster, Mittelschmerz"],
  ];

  llqItems.forEach((item, i) => {
    slide.addText([
      { text: item[0] + ": ", options: { bold: true, color: "7D6608", fontSize: 10 } },
      { text: item[1], options: { color: DARKGRAY, fontSize: 10 } }
    ], { x: 5.45, y: 1.42 + i * 0.53, w: 4.1, h: 0.48, valign: "top" });
  });
}

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 6 — Epigastric / Periumbilical / Hypogastric / Flanks
// ══════════════════════════════════════════════════════════════════════════════
{
  let slide = pres.addSlide();
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: "F5F5F5" } });

  // Header
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: TEAL } });
  slide.addText("CENTRAL, FLANK & PELVIC PAIN", {
    x: 0.3, y: 0, w: 9.4, h: 0.65,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", charSpacing: 2
  });

  // 4 smaller boxes in 2x2 grid
  const zones = [
    {
      label: "EPIGASTRIC",
      color: "FDEDEC", lineColor: "E74C3C",
      x: 0.2, y: 0.75, w: 4.6, h: 2.3,
      items: ["Cardiac: MI, Ischemia, Pericarditis", "GI: Gastritis, PUD, Esophagitis, GERD", "Pancreas: Pancreatitis, Pseudocyst, Cancer", "Biliary: Cholecystitis, Choledocholithiasis", "Vascular: Aortic aneurysm"]
    },
    {
      label: "PERIUMBILICAL",
      color: "EBF5FB", lineColor: "2980B9",
      x: 5.2, y: 0.75, w: 4.6, h: 2.3,
      items: ["Early appendicitis (migrates to RLQ)", "Small bowel obstruction / ileus", "Infectious gastroenteritis", "Mesenteric ischemia / ischemia", "Aortic aneurysm (AAA)"]
    },
    {
      label: "HYPOGASTRIC (Suprapubic)",
      color: "EAFAF1", lineColor: "27AE60",
      x: 0.2, y: 3.15, w: 4.6, h: 2.2,
      items: ["Bladder: Cystitis, Acute urinary retention", "Gynecologic: Ectopic pregnancy ⚠, PID, Uterine pathology", "GI: Diverticulitis, IBD, Colitis, IBS"]
    },
    {
      label: "FLANKS (R or L)",
      color: "FEF9E7", lineColor: "F39C12",
      x: 5.2, y: 3.15, w: 4.6, h: 2.2,
      items: ["Renal: Pyelonephritis, Renal abscess, Renal infarct", "Ureter: Ureteral stone (renal colic) ⚠", "Spleen (left): Abscess, Rupture, Process"]
    }
  ];

  zones.forEach(z => {
    slide.addShape(pres.ShapeType.rect, { x: z.x, y: z.y, w: z.w, h: z.h, fill: { color: z.color }, line: { color: z.lineColor, width: 1.5 } });
    slide.addShape(pres.ShapeType.rect, { x: z.x, y: z.y, w: z.w, h: 0.42, fill: { color: z.lineColor } });
    slide.addText(z.label, { x: z.x + 0.08, y: z.y, w: z.w - 0.1, h: 0.42, fontSize: 11, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle" });
    const bulletTexts = z.items.map((t, i) => ({
      text: "• " + t,
      options: { fontSize: 9.5, color: DARKGRAY, breakLine: i < z.items.length - 1 }
    }));
    slide.addText(bulletTexts, { x: z.x + 0.1, y: z.y + 0.46, w: z.w - 0.2, h: z.h - 0.55, valign: "top" });
  });
}

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 7 — Diffuse Pain
// ══════════════════════════════════════════════════════════════════════════════
{
  let slide = pres.addSlide();
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: "F4F6F7" } });

  // Header
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: "7D3C98" } });
  slide.addText("DIFFUSE ABDOMINAL PAIN", {
    x: 0.3, y: 0, w: 9.4, h: 0.65,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", charSpacing: 2
  });

  // Intro note
  slide.addText("Pain that is non-localized or involves the entire abdomen — often indicates peritoneal involvement or systemic/metabolic cause.", {
    x: 0.4, y: 0.75, w: 9.2, h: 0.55,
    fontSize: 11, color: DARKGRAY, fontFace: "Calibri", italic: true
  });

  // Two column layout
  const left = [
    ["Surgical Emergencies", "Perforated viscus (ulcer, bowel), Ruptured aortic aneurysm, Bowel obstruction, Volvulus, Abdominal compartment syndrome"],
    ["Inflammation", "Peritonitis (any cause), Pancreatitis, Mesenteric ischemia, Gastroenteritis"],
    ["Infection", "Peritonitis, Sepsis, Typhoid fever, Malaria"],
  ];

  const right = [
    ["Metabolic/Systemic", "Diabetic ketoacidosis (DKA), Addisonian crisis, Porphyria, Uremia, Sickle cell crisis, Hypercalcemia"],
    ["Other Causes", "Narcotic/drug withdrawal, Heavy metal poisoning, Familial Mediterranean fever, Hereditary angioedema, Early appendicitis"],
  ];

  left.forEach((item, i) => {
    slide.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.4 + i * 1.3, w: 4.5, h: 1.2, fill: { color: "EBE0F5" }, line: { color: "7D3C98", width: 0.8 } });
    slide.addText([
      { text: item[0] + "\n", options: { bold: true, fontSize: 10.5, color: "6C3483", breakLine: true } },
      { text: item[1], options: { fontSize: 9.5, color: DARKGRAY } }
    ], { x: 0.45, y: 1.45 + i * 1.3, w: 4.2, h: 1.1, valign: "top" });
  });

  right.forEach((item, i) => {
    slide.addShape(pres.ShapeType.rect, { x: 5.2, y: 1.4 + i * 1.55, w: 4.5, h: 1.4, fill: { color: "EBE0F5" }, line: { color: "7D3C98", width: 0.8 } });
    slide.addText([
      { text: item[0] + "\n", options: { bold: true, fontSize: 10.5, color: "6C3483", breakLine: true } },
      { text: item[1], options: { fontSize: 9.5, color: DARKGRAY } }
    ], { x: 5.35, y: 1.45 + i * 1.55, w: 4.2, h: 1.3, valign: "top" });
  });
}

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 8 — Nursing Clinical Pearls & Red Flags
// ══════════════════════════════════════════════════════════════════════════════
{
  let slide = pres.addSlide();
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: WHITE } });

  // Header
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: ORANGE } });
  slide.addText("NURSING CLINICAL PEARLS & RED FLAGS", {
    x: 0.3, y: 0, w: 9.4, h: 0.65,
    fontSize: 18, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", charSpacing: 2
  });

  // Red flags box
  slide.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.75, w: 4.4, h: 4.6, fill: { color: "FFF0F0" }, line: { color: "E74C3C", width: 1.5 } });
  slide.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.75, w: 4.4, h: 0.48, fill: { color: "E74C3C" } });
  slide.addText("🚨  RED FLAGS — Report Immediately", { x: 0.35, y: 0.75, w: 4.3, h: 0.48, fontSize: 12, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle" });

  const redFlags = [
    "Rigid / board-like abdomen",
    "Absent bowel sounds",
    "Hemodynamic instability (hypotension, tachycardia)",
    "Sudden severe 'worst of life' pain",
    "Positive pregnancy test + abdominal pain",
    "High fever + jaundice + abdominal pain (Charcot's triad)",
    "Rebound tenderness / guarding",
    "Vomiting blood (hematemesis) or bloody stool",
    "Syncope or near-syncope with pain",
  ];

  redFlags.forEach((f, i) => {
    slide.addText("⚠  " + f, {
      x: 0.45, y: 1.28 + i * 0.38, w: 4.1, h: 0.35,
      fontSize: 10, color: "922B21", fontFace: "Calibri", bold: i < 4
    });
  });

  // Pearls box
  slide.addShape(pres.ShapeType.rect, { x: 5.3, y: 0.75, w: 4.4, h: 4.6, fill: { color: "F0FFF4" }, line: { color: "27AE60", width: 1.5 } });
  slide.addShape(pres.ShapeType.rect, { x: 5.3, y: 0.75, w: 4.4, h: 0.48, fill: { color: "27AE60" } });
  slide.addText("✅  Clinical Pearls for Nurses", { x: 5.35, y: 0.75, w: 4.3, h: 0.48, fontSize: 12, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle" });

  const pearls = [
    ["Always check beta-hCG", "in any reproductive-age female with abdominal pain"],
    ["Epigastric pain ≠ only GI", "can be MI, especially in women / diabetics"],
    ["Appendicitis migrates", "starts periumbilical → moves to RLQ over hours"],
    ["Do NOT delay analgesia", "opioids safe and do not mask exam findings"],
    ["Renal colic", "patient is restless / writhing; peritonitis patient lies still"],
    ["Charcot's triad", "RUQ pain + fever + jaundice = cholangitis (sepsis risk)"],
    ["Murphy's sign", "RUQ pain on deep inspiration = cholecystitis"],
    ["McBurney's point", "1/3 from ASIS to umbilicus — tender = appendicitis"],
  ];

  pearls.forEach((p, i) => {
    slide.addText([
      { text: p[0] + ": ", options: { bold: true, color: "1E8449", fontSize: 10 } },
      { text: p[1], options: { color: DARKGRAY, fontSize: 10 } }
    ], { x: 5.45, y: 1.28 + i * 0.42, w: 4.1, h: 0.38, valign: "middle" });
  });
}

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 9 — Quick Summary Table
// ══════════════════════════════════════════════════════════════════════════════
{
  let slide = pres.addSlide();
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CREAM } });

  // Header
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: NAVY } });
  slide.addText("AT-A-GLANCE SUMMARY TABLE", {
    x: 0.3, y: 0, w: 9.4, h: 0.65,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", charSpacing: 2
  });

  // Table headers
  const headers = ["Location", "Top Diagnoses", "Key Clue / Finding"];
  const hColors = [NAVY, NAVY, NAVY];

  const rows = [
    ["RUQ", "Cholecystitis, Biliary colic, Hepatitis, MI, Pneumonia", "Murphy's sign, RUQ tenderness, jaundice"],
    ["LUQ", "Gastric ulcer, Pancreatitis, Splenic rupture, MI", "Pain radiates to back, LUQ tenderness, Kehr's sign"],
    ["Epigastric", "PUD, Pancreatitis, GERD, Gastritis, MI", "Burning pain, worse lying, radiates to back"],
    ["Periumbilical", "Early appendicitis, Small bowel obstruction, Mesenteric ischemia", "Pain migrates, distension, absent bowel sounds"],
    ["RLQ", "Appendicitis, Ectopic pregnancy, Ovarian torsion, Crohn's", "McBurney's tenderness, + beta-hCG, fever"],
    ["LLQ", "Diverticulitis, Sigmoid volvulus, Ectopic, IBD", "Older age, constipation, fever, LLQ tenderness"],
    ["Hypogastric", "Cystitis, PID, Uterine, IBS", "Dysuria, vaginal discharge, + beta-hCG"],
    ["Flank", "Renal colic, Pyelonephritis, Renal infarct", "CVA tenderness, hematuria, writhing patient"],
    ["Diffuse", "Peritonitis, Ruptured AAA, Pancreatitis, DKA", "Board-like abdomen, hemodynamic instability"],
  ];

  const colW = [1.5, 4.5, 3.6];
  const colX = [0.2, 1.72, 6.24];
  const rowH = 0.48;

  // Header row
  headers.forEach((h, col) => {
    slide.addShape(pres.ShapeType.rect, { x: colX[col], y: 0.7, w: colW[col], h: 0.42, fill: { color: TEAL }, line: { color: WHITE, width: 0.5 } });
    slide.addText(h, { x: colX[col] + 0.05, y: 0.7, w: colW[col] - 0.1, h: 0.42, fontSize: 10, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle" });
  });

  // Data rows
  rows.forEach((row, r) => {
    const yPos = 1.12 + r * rowH;
    const bg = r % 2 === 0 ? WHITE : "EBF5FB";
    row.forEach((cell, col) => {
      slide.addShape(pres.ShapeType.rect, { x: colX[col], y: yPos, w: colW[col], h: rowH, fill: { color: bg }, line: { color: "CCCCCC", width: 0.3 } });
      slide.addText(cell, {
        x: colX[col] + 0.05, y: yPos + 0.02, w: colW[col] - 0.1, h: rowH - 0.04,
        fontSize: col === 0 ? 10 : 9, bold: col === 0, color: col === 0 ? NAVY : DARKGRAY,
        fontFace: "Calibri", valign: "middle"
      });
    });
  });
}

// ══════════════════════════════════════════════════════════════════════════════
// WRITE FILE
// ══════════════════════════════════════════════════════════════════════════════
const outPath = "/home/daytona/workspace/abdominal-pain-guide/Abdominal_Pain_Differentials_Guide.pptx";
pres.writeFile({ fileName: outPath }).then(() => {
  console.log("SUCCESS: " + outPath);
}).catch(err => {
  console.error("ERROR:", err);
  process.exit(1);
});
Running Command

cd /home/daytona/workspace/abdominal-pain-guide && node build.js 2>&1

Running Command

cd /home/daytona/workspace/abdominal-pain-guide && curl -s -o img1.png "https://…

Editing File

~/abdominal-pain-guide/build.js

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/abdominal-pain-guide/build.js'
Running Command

cd /home/daytona/workspace/abdominal-pain-guide && node build.js 2>&1

Editing File

~/abdominal-pain-guide/build.js

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/abdominal-pain-guide/build.js'
Running Command

cd /home/daytona/workspace/abdominal-pain-guide && node build.js 2>&1

Running Command

ls -lh /home/daytona/workspace/abdominal-pain-guide/Abdominal_Pain_Differentials…

Your quick reference guide is ready!

Abdominal Pain Differentials Guide

Presentation · PPTX

Here's what's inside across 9 slides:
SlideContent
1Title slide
2Overview anatomy diagram (Tintinalli's) with color-coded quadrant callouts
3Full Goldman-Cecil regional differentials diagram
4RUQ & LUQ detailed differentials
5RLQ & LLQ detailed differentials
6Epigastric, Periumbilical, Hypogastric & Flank pain
7Diffuse abdominal pain (surgical emergencies, metabolic, systemic)
8Nursing Red Flags (report immediately) + Clinical Pearls
9At-a-glance summary table (all 9 regions, top diagnoses, key clues)
The nursing-focused Slide 8 includes actionable red flags like board-like rigidity, absent bowel sounds, Charcot's triad, and positive beta-hCG with pain - plus quick pearls like "appendicitis migrates" and "do NOT delay analgesia." Sources are Tintinalli's Emergency Medicine and Goldman-Cecil Medicine.
This is a shared conversation. Sign in to Orris to start your own chat.