Make ppt for radiology students osce exam of topic GIT system total 20 cases
bowel obstruction X-ray radiology
sigmoid volvulus coffee bean sign X-ray CT
pneumoperitoneum free air under diaphragm X-ray perforated viscus
achalasia bird beak esophagus barium swallow CT scan
appendicitis CT scan fecalith periappendiceal fat stranding
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty"
mkdir -p /home/daytona/workspace/git-radiology-osce && echo "created"
~/git-radiology-osce/create_ppt.js
const pptxgen = require('pptxgenjs');
const pptx = new pptxgen();
pptx.layout = 'LAYOUT_WIDE';
pptx.author = 'Orris';
pptx.title = 'GIT Radiology OSCE - 20 Cases';
pptx.subject = 'Radiology OSCE cases for students';
pptx.company = 'Academic Teaching';
pptx.lang = 'en-US';
pptx.theme = {
headFontFace: 'Calibri',
bodyFontFace: 'Calibri',
lang: 'en-US'
};
const colors = {
bg: '0F172A',
panel: '111827',
card: '1F2937',
text: 'E5E7EB',
muted: '94A3B8',
accent: '22D3EE',
warning: 'F59E0B'
};
function addHeader(slide, title, subtitle='') {
slide.background = { color: colors.bg };
slide.addShape(pptx.ShapeType.rect, { x: 0, y: 0, w: 13.33, h: 0.75, fill: { color: '020617' }, line: { color: '020617' } });
slide.addText(title, { x: 0.4, y: 0.16, w: 9.8, h: 0.36, color: 'FFFFFF', fontSize: 20, bold: true, margin: 0 });
if (subtitle) {
slide.addText(subtitle, { x: 0.4, y: 0.52, w: 10.5, h: 0.2, color: colors.muted, fontSize: 10, margin: 0 });
}
slide.addShape(pptx.ShapeType.roundRect, { x: 11.2, y: 0.18, w: 1.7, h: 0.34, fill: { color: '083344' }, line: { color: colors.accent, pt: 1 }, radius: 0.05 });
slide.addText('Radiology OSCE', { x: 11.35, y: 0.26, w: 1.4, h: 0.16, color: colors.accent, fontSize: 9, bold: true, align: 'center' });
}
function addCaseSlide(caseNum, title, modality, stem, findings, diagnosis, ddx, keyPoint, imageUrl='') {
const slide = pptx.addSlide();
addHeader(slide, `Case ${caseNum}: ${title}`, `${modality} | GIT System`);
slide.addShape(pptx.ShapeType.roundRect, { x: 0.45, y: 0.95, w: 7.35, h: 4.9, fill: { color: colors.card }, line: { color: '334155', pt: 1 }, radius: 0.06 });
slide.addText('Clinical Stem', { x: 0.7, y: 1.15, w: 2.2, h: 0.3, color: colors.accent, fontSize: 13, bold: true });
slide.addText(stem, { x: 0.7, y: 1.45, w: 6.9, h: 0.75, color: colors.text, fontSize: 12, valign: 'top' });
slide.addText('Radiology Findings', { x: 0.7, y: 2.25, w: 3.2, h: 0.3, color: colors.accent, fontSize: 13, bold: true });
slide.addText(findings.map((f, i) => ({ text: f, options: { bullet: true, breakLine: i < findings.length - 1 } })), { x: 0.85, y: 2.55, w: 6.7, h: 1.25, color: colors.text, fontSize: 11 });
slide.addText('Most Likely Diagnosis', { x: 0.7, y: 3.92, w: 2.8, h: 0.25, color: 'FCA5A5', fontSize: 12, bold: true });
slide.addText(diagnosis, { x: 0.7, y: 4.16, w: 6.8, h: 0.4, color: 'FFFFFF', fontSize: 13, bold: true });
slide.addText('Differentials', { x: 0.7, y: 4.63, w: 2.0, h: 0.22, color: colors.warning, fontSize: 11, bold: true });
slide.addText(ddx, { x: 2.0, y: 4.63, w: 5.75, h: 0.22, color: colors.text, fontSize: 10 });
slide.addShape(pptx.ShapeType.roundRect, { x: 0.65, y: 5.0, w: 6.95, h: 0.58, fill: { color: '0B3B4F' }, line: { color: colors.accent, pt: 0.8 }, radius: 0.05 });
slide.addText(`OSCE Key Point: ${keyPoint}`, { x: 0.82, y: 5.16, w: 6.55, h: 0.28, color: 'CFFAFE', fontSize: 10.5, bold: true, valign: 'mid' });
slide.addShape(pptx.ShapeType.roundRect, { x: 8.05, y: 0.95, w: 4.85, h: 4.1, fill: { color: '0B1220' }, line: { color: '334155', pt: 1 }, radius: 0.06 });
if (imageUrl) {
slide.addImage({ path: imageUrl, x: 8.2, y: 1.1, w: 4.55, h: 3.75, sizing: { type: 'contain', x: 8.2, y: 1.1, w: 4.55, h: 3.75 } });
} else {
slide.addText('Insert case image here\n(AXR/CT/US/MR)', { x: 8.35, y: 2.35, w: 4.2, h: 0.8, color: colors.muted, fontSize: 13, align: 'center', valign: 'mid' });
}
slide.addShape(pptx.ShapeType.roundRect, { x: 8.05, y: 5.12, w: 4.85, h: 0.72, fill: { color: '172554' }, line: { color: '1D4ED8', pt: 0.8 }, radius: 0.05 });
slide.addText('Examiner Prompt: Describe 3 imaging signs\nand immediate next management step.', { x: 8.28, y: 5.27, w: 4.35, h: 0.43, color: 'DBEAFE', fontSize: 10, align: 'center', bold: true });
}
const titleSlide = pptx.addSlide();
addHeader(titleSlide, 'GIT Radiology OSCE Cases', '20 High-yield cases for radiology students');
titleSlide.addText('Objective Structured Clinical Examination\nGastrointestinal Imaging Cases', {
x: 0.8, y: 1.2, w: 7.7, h: 1.4, color: 'FFFFFF', fontSize: 34, bold: true, valign: 'mid'
});
titleSlide.addText('Includes plain radiography, CT, ultrasound and contrast studies\nDesigned for rapid pattern recognition and viva discussion', {
x: 0.82, y: 2.75, w: 7.2, h: 0.9, color: colors.muted, fontSize: 14
});
titleSlide.addShape(pptx.ShapeType.roundRect, { x: 0.82, y: 4.0, w: 4.8, h: 1.1, fill: { color: '0B3B4F' }, line: { color: colors.accent, pt: 1 }, radius: 0.06 });
titleSlide.addText('Tip for Students:\nState modality → key signs → diagnosis → next step', { x: 1.05, y: 4.28, w: 4.3, h: 0.65, color: 'CFFAFE', fontSize: 14, bold: true });
titleSlide.addImage({ path: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_21a2310df1da0603e583a99ab35038f9befd3c6d3d6f944c45de170db83fb313.jpg', x: 8.15, y: 1.1, w: 4.6, h: 3.2, sizing: { type: 'contain', x: 8.15, y: 1.1, w: 4.6, h: 3.2 } });
titleSlide.addText('Prepared for OSCE practice', { x: 8.2, y: 4.55, w: 4.6, h: 0.4, color: colors.muted, fontSize: 11, align: 'center' });
const cases = [
{t:'Small Bowel Obstruction', m:'Abdominal X-ray', s:'48-year-old with colicky abdominal pain, vomiting, abdominal distension, no stool passage for 24 hours.', f:['Multiple central dilated small bowel loops >3 cm','Step-ladder air-fluid levels on erect film','Paucity of distal colonic/rectal gas'], d:'Mechanical small bowel obstruction', dd:'Ileus, pseudo-obstruction', k:'Look for transition point and signs of strangulation on CT.', img:'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_21a2310df1da0603e583a99ab35038f9befd3c6d3d6f944c45de170db83fb313.jpg'},
{t:'Large Bowel Obstruction', m:'Abdominal X-ray', s:'67-year-old with progressive distension, constipation, lower abdominal pain.', f:['Peripheral colonic dilatation with haustral markings','Relative absence of rectal gas','Transition pattern favoring distal obstruction'], d:'Large bowel obstruction', dd:'Toxic megacolon, chronic constipation', k:'Differentiate from SBO by haustra and colonic distribution.', img:'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_c4b62c9eb159a17c0700f8590b74b55db31fb3462ca2f20c0bd5604fbc84ff71.jpg'},
{t:'Sigmoid Volvulus', m:'Erect abdominal X-ray', s:'Elderly patient with sudden abdominal distension, pain, obstipation.', f:['Massively dilated ahaustral loop from pelvis','Classic coffee-bean configuration','Apex projects toward right upper abdomen'], d:'Sigmoid volvulus', dd:'Cecal volvulus, severe constipation', k:'Recognize coffee bean sign and advise urgent decompression.', img:'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_049ec7473c215d6d06e81b70fa175ea5a61fb0cd4682a48cdcdd6e5546a838a9.jpg'},
{t:'Pneumoperitoneum', m:'Erect chest X-ray', s:'Acute severe abdominal pain with guarding and board-like rigidity.', f:['Free crescentic gas under diaphragm','Sharp diaphragmatic outline bilaterally','No intrathoracic cause of lucency'], d:'Perforated hollow viscus with pneumoperitoneum', dd:'Postoperative free air, Chilaiditi syndrome', k:'Free subdiaphragmatic air is a surgical emergency.', img:'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_44c97f5a8412814aa8701a60e1965065bfe4e72fab8a565d631b6bbe849fa46a.jpg'},
{t:'Achalasia', m:'Barium swallow', s:'35-year-old with progressive dysphagia to solids and liquids, regurgitation.', f:['Dilated esophagus with retained contrast','Smooth distal tapering at GE junction','Bird-beak appearance with delayed emptying'], d:'Achalasia cardia', dd:'Pseudoachalasia from distal esophageal tumor', k:'Bird-beak tapering plus absent primary peristalsis supports achalasia.', img:'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_41b53057f051eaec5155ca47156fc6d478f35ab28a8ea969fc50a5f4cc7176ff.jpg'},
{t:'Acute Appendicitis', m:'Contrast-enhanced CT', s:'21-year-old with right lower quadrant pain, fever, leukocytosis.', f:['Dilated enhancing appendix >6 mm','Periappendiceal fat stranding','Appendicolith seen near appendiceal base'], d:'Acute appendicitis (obstructive)', dd:'Mesenteric adenitis, Crohn terminal ileitis', k:'Appendicolith with periappendiceal inflammation is highly specific.', img:'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_de1bc3d016d96fc955c3486232171d0f1a067412826522132a524b54186e3163.jpg'},
{t:'Acute Pancreatitis', m:'Contrast CT abdomen', s:'44-year-old with severe epigastric pain radiating to back, raised amylase/lipase.', f:['Enlarged edematous pancreas','Peripancreatic fat stranding/fluid','Possible non-enhancing necrotic areas in severe disease'], d:'Acute pancreatitis', dd:'Duodenitis, perforated ulcer', k:'Assess severity by necrosis and peripancreatic collections.'},
{t:'Acute Cholecystitis', m:'Ultrasound abdomen', s:'39-year-old with RUQ pain, fever, positive Murphy sign.', f:['Gallbladder wall thickening >3 mm','Pericholecystic fluid and distension','Echogenic shadowing calculus at neck/cystic duct'], d:'Acute calculous cholecystitis', dd:'Biliary colic, hepatitis', k:'US is first-line and dynamic Murphy sign is valuable.'},
{t:'Choledocholithiasis', m:'MRCP', s:'55-year-old with jaundice and cholestatic liver profile.', f:['Filling defect within distal CBD','Proximal biliary tree dilatation','Abrupt duct caliber change at obstruction'], d:'Common bile duct stone', dd:'Distal cholangiocarcinoma, ampullary lesion', k:'MRCP noninvasively maps level and cause of obstruction.'},
{t:'Acute Diverticulitis', m:'CT abdomen pelvis', s:'62-year-old with left lower quadrant pain and fever.', f:['Segmental sigmoid wall thickening','Pericolic fat stranding around diverticula','Possible microperforation/contained abscess'], d:'Acute sigmoid diverticulitis', dd:'Colon cancer, colitis', k:'Look for complications: abscess, fistula, perforation.'},
{t:'Ulcerative Colitis', m:'Barium enema / CT', s:'Young adult with chronic bloody diarrhea and urgency.', f:['Continuous colonic involvement from rectum','Loss of haustra (lead-pipe colon)','Mucosal granularity and superficial ulceration'], d:'Ulcerative colitis', dd:'Crohn colitis, infective colitis', k:'Continuous disease and lead-pipe appearance are classic.'},
{t:'Crohn Disease', m:'CT enterography', s:'28-year-old with abdominal pain, weight loss, chronic diarrhea.', f:['Segmental skip lesions in terminal ileum','Mural hyperenhancement and thickening','Comb sign from engorged vasa recta'], d:'Active Crohn ileocolitis', dd:'Intestinal TB, lymphoma', k:'Skip lesions and transmural features favor Crohn disease.'},
{t:'Intussusception', m:'Ultrasound / CT', s:'Child with intermittent colicky pain, vomiting, red currant jelly stool.', f:['Target/donut sign on transverse imaging','Pseudokidney sign longitudinally','Bowel-within-bowel configuration'], d:'Ileo-colic intussusception', dd:'Volvulus, appendicitis', k:'Prompt diagnosis enables non-operative reduction in stable child.'},
{t:'Hypertrophic Pyloric Stenosis', m:'Ultrasound', s:'6-week-old infant with projectile non-bilious vomiting.', f:['Pyloric muscle thickness >3 mm','Elongated pyloric canal >15-18 mm','Little gastric emptying through pylorus'], d:'Infantile hypertrophic pyloric stenosis', dd:'Gastroesophageal reflux, pylorospasm', k:'Ultrasound measurements are diagnostic and reproducible.'},
{t:'Mesenteric Ischemia', m:'CT angiography', s:'70-year-old with severe pain out of proportion to exam.', f:['Bowel wall hypoenhancement','Mesenteric arterial/venous occlusion','Pneumatosis intestinalis or portal venous gas in advanced stage'], d:'Acute mesenteric ischemia', dd:'Severe gastroenteritis, pancreatitis', k:'CTA early diagnosis is critical to bowel salvage.'},
{t:'Hepatocellular Carcinoma', m:'Triphasic CT/MRI liver', s:'Cirrhotic patient with weight loss and rising AFP.', f:['Arterial phase hyperenhancement of lesion','Washout on portal/delayed phase','Enhancing capsule appearance'], d:'Hepatocellular carcinoma', dd:'Hypervascular metastasis, hepatic adenoma', k:'Arterial enhancement with washout is hallmark pattern.'},
{t:'Cholangiocarcinoma', m:'MRCP + contrast CT', s:'Progressive painless jaundice, pruritus, weight loss.', f:['Irregular biliary stricture/mass','Upstream ductal dilatation','Delayed enhancement in fibrous tumor tissue'], d:'Cholangiocarcinoma', dd:'Benign stricture, pancreatic head carcinoma', k:'Define resectability by vascular and biliary extent.'},
{t:'Carcinoma Esophagus', m:'Barium swallow / CT', s:'60-year-old with progressive dysphagia and weight loss.', f:['Irregular shouldered distal esophageal narrowing','Mucosal destruction with rat-tail appearance','Proximal esophageal dilatation'], d:'Esophageal carcinoma', dd:'Peptic stricture, achalasia', k:'Shouldering and irregularity suggest malignant stricture.'},
{t:'Gastric Carcinoma', m:'CECT + endoscopic correlation', s:'58-year-old with early satiety, anemia, weight loss.', f:['Focal/asymmetric gastric wall thickening','Loss of normal mural stratification','Regional nodes or perigastric infiltration'], d:'Gastric adenocarcinoma', dd:'Lymphoma, hypertrophic gastritis', k:'Evaluate T-stage with perigastric fat and adjacent organ invasion.'},
{t:'Colorectal Carcinoma', m:'CT colonography / contrast CT', s:'65-year-old with altered bowel habits and occult blood positive stool.', f:['Annular constricting lesion (apple-core)','Shouldered margins with proximal dilatation','Possible locoregional nodal disease'], d:'Colorectal carcinoma', dd:'Benign stricture, diverticular stenosis', k:'Apple-core lesion is classic for constricting colon cancer.'}
];
cases.forEach((c, idx) => addCaseSlide(idx + 1, c.t, c.m, c.s, c.f, c.d, c.dd, c.k, c.img || ''));
const endSlide = pptx.addSlide();
addHeader(endSlide, 'Rapid Review Checklist', 'How to score in GIT radiology OSCE');
endSlide.addShape(pptx.ShapeType.roundRect, { x: 0.8, y: 1.15, w: 11.8, h: 4.4, fill: { color: colors.card }, line: { color: '334155', pt: 1 }, radius: 0.08 });
endSlide.addText('For each station, answer in this sequence:', { x: 1.1, y: 1.45, w: 6.2, h: 0.5, color: colors.accent, fontSize: 22, bold: true });
endSlide.addText([
{ text: '1) Modality and view\n', options: { bullet: true, breakLine: true } },
{ text: '2) Three key radiological signs\n', options: { bullet: true, breakLine: true } },
{ text: '3) Most likely diagnosis\n', options: { bullet: true, breakLine: true } },
{ text: '4) Two relevant differentials\n', options: { bullet: true, breakLine: true } },
{ text: '5) One immediate next management step', options: { bullet: true } }
], { x: 1.3, y: 2.05, w: 6.6, h: 2.5, color: 'FFFFFF', fontSize: 16 });
endSlide.addShape(pptx.ShapeType.roundRect, { x: 8.3, y: 1.7, w: 3.9, h: 2.8, fill: { color: '0B3B4F' }, line: { color: colors.accent, pt: 1 }, radius: 0.07 });
endSlide.addText('Practice target:\n< 90 seconds\nper case summary', { x: 8.55, y: 2.35, w: 3.4, h: 1.4, color: 'CFFAFE', fontSize: 22, align: 'center', bold: true });
pptx.writeFile({ fileName: '/home/daytona/workspace/git-radiology-osce/GIT_Radiology_OSCE_20_Cases.pptx' });node /home/daytona/workspace/git-radiology-osce/create_ppt.js
~/git-radiology-osce
GIT Radiology OSCE 20 Cases
Presentation · PPTX
Try again
1
ls -la /home/daytona/workspace/
mkdir -p /home/daytona/workspace/git-radiology-osce-v2
~/git-radiology-osce-v2/create_osce_qna_ppt.js
const pptxgen = require('pptxgenjs');
const pptx = new pptxgen();
pptx.layout = 'LAYOUT_WIDE';
pptx.author = 'Orris';
pptx.title = 'GIT Radiology OSCE - 20 Cases (Question + Answer Key)';
pptx.subject = 'OSCE question slides with separate answer key';
pptx.theme = { headFontFace: 'Calibri', bodyFontFace: 'Calibri', lang: 'en-US' };
const C = {
bg: '0B1020',
top: '111827',
card: '1F2937',
text: 'E5E7EB',
muted: '93A4B8',
accent: '22D3EE',
ans: '065F46'
};
function header(slide, t, s = '') {
slide.background = { color: C.bg };
slide.addShape(pptx.ShapeType.rect, { x: 0, y: 0, w: 13.33, h: 0.72, fill: { color: C.top }, line: { color: C.top } });
slide.addText(t, { x: 0.35, y: 0.16, w: 9.8, h: 0.3, color: 'FFFFFF', fontSize: 18, bold: true });
if (s) slide.addText(s, { x: 0.35, y: 0.48, w: 10.2, h: 0.2, color: C.muted, fontSize: 10 });
slide.addShape(pptx.ShapeType.roundRect, { x: 11.1, y: 0.16, w: 1.85, h: 0.34, fill: { color: '083344' }, line: { color: C.accent, pt: 1 }, radius: 0.04 });
slide.addText('OSCE GIT', { x: 11.32, y: 0.25, w: 1.4, h: 0.16, color: C.accent, fontSize: 9, bold: true, align: 'center' });
}
const cases = [
{ title: 'Small Bowel Obstruction', modality: 'AXR', stem: '48-year-old with colicky pain, vomiting, abdominal distension, and obstipation.', signs: ['Central dilated small bowel loops >3 cm', 'Multiple step-ladder air-fluid levels', 'Paucity of distal colonic gas'], dx: 'Mechanical small bowel obstruction', ddx: 'Adynamic ileus; pseudo-obstruction', next: 'CT abdomen to define cause/transition point and assess ischemia', img: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_21a2310df1da0603e583a99ab35038f9befd3c6d3d6f944c45de170db83fb313.jpg' },
{ title: 'Large Bowel Obstruction', modality: 'AXR', stem: '67-year-old with progressive distension and constipation.', signs: ['Peripheral colonic dilatation with haustra', 'Relative rectal gas absence', 'Pattern suggests distal mechanical obstruction'], dx: 'Large bowel obstruction', ddx: 'Pseudo-obstruction; severe constipation', next: 'CT with contrast to define level/cause and exclude perforation', img: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_c4b62c9eb159a17c0700f8590b74b55db31fb3462ca2f20c0bd5604fbc84ff71.jpg' },
{ title: 'Sigmoid Volvulus', modality: 'Erect AXR', stem: 'Elderly patient with acute distension, pain, and obstipation.', signs: ['Massively dilated ahaustral loop', 'Coffee-bean configuration', 'Apex directed to RUQ'], dx: 'Sigmoid volvulus', ddx: 'Cecal volvulus; LBO due to tumor', next: 'Urgent endoscopic decompression if no peritonitis', img: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_049ec7473c215d6d06e81b70fa175ea5a61fb0cd4682a48cdcdd6e5546a838a9.jpg' },
{ title: 'Pneumoperitoneum', modality: 'Erect CXR', stem: 'Sudden severe abdominal pain with guarding and rigidity.', signs: ['Free crescentic subdiaphragmatic air', 'Best seen under right hemidiaphragm', 'Suggests perforated viscus in context'], dx: 'Pneumoperitoneum from hollow viscus perforation', ddx: 'Postoperative free air; Chilaiditi sign', next: 'Immediate surgical referral and resuscitation', img: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_44c97f5a8412814aa8701a60e1965065bfe4e72fab8a565d631b6bbe849fa46a.jpg' },
{ title: 'Achalasia', modality: 'Barium swallow', stem: 'Progressive dysphagia to solids and liquids, regurgitation.', signs: ['Dilated esophagus with retained contrast', 'Smooth distal tapering at GEJ', 'Bird-beak appearance'], dx: 'Achalasia cardia', ddx: 'Pseudoachalasia due to distal malignancy', next: 'Endoscopy and manometry for confirmation', img: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_41b53057f051eaec5155ca47156fc6d478f35ab28a8ea969fc50a5f4cc7176ff.jpg' },
{ title: 'Acute Appendicitis', modality: 'CECT', stem: '21-year-old with RLQ pain, fever, leukocytosis.', signs: ['Dilated inflamed appendix >6 mm', 'Periappendiceal fat stranding', 'Appendicolith'], dx: 'Acute appendicitis', ddx: 'Mesenteric adenitis; Crohn ileitis', next: 'Surgical consultation; antibiotics and appendectomy planning', img: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_de1bc3d016d96fc955c3486232171d0f1a067412826522132a524b54186e3163.jpg' },
{ title: 'Acute Pancreatitis', modality: 'CECT', stem: 'Severe epigastric pain radiating to back; raised lipase.', signs: ['Bulky edematous pancreas', 'Peripancreatic fat stranding/fluid', 'Possible necrotic non-enhancing areas'], dx: 'Acute pancreatitis', ddx: 'Perforated duodenal ulcer; mesenteric ischemia', next: 'Severity scoring and supportive management in monitored setting' },
{ title: 'Acute Cholecystitis', modality: 'US abdomen', stem: 'RUQ pain, fever, and positive sonographic Murphy sign.', signs: ['Gallbladder wall thickening', 'Distended GB with pericholecystic fluid', 'Impacted neck/cystic duct calculus'], dx: 'Acute calculous cholecystitis', ddx: 'Biliary colic; hepatitis', next: 'Antibiotics and early cholecystectomy assessment' },
{ title: 'Choledocholithiasis', modality: 'MRCP', stem: 'Obstructive jaundice with cholestatic pattern LFTs.', signs: ['Distal CBD filling defect', 'Upstream biliary dilatation', 'Abrupt duct cut-off'], dx: 'Choledocholithiasis', ddx: 'Distal CBD stricture; ampullary tumor', next: 'ERCP for clearance when indicated' },
{ title: 'Acute Diverticulitis', modality: 'CT abdomen pelvis', stem: 'LLQ pain, fever, localized tenderness.', signs: ['Segmental sigmoid wall thickening', 'Pericolic fat stranding around diverticula', 'Possible small pericolic collection'], dx: 'Acute sigmoid diverticulitis', ddx: 'Colorectal carcinoma; colitis', next: 'Classify complicated vs uncomplicated disease' },
{ title: 'Ulcerative Colitis', modality: 'Barium/CT', stem: 'Chronic bloody diarrhea with urgency.', signs: ['Continuous colitis from rectum proximally', 'Loss of haustra (lead-pipe appearance)', 'Mucosal granularity'], dx: 'Ulcerative colitis', ddx: 'Crohn colitis; infective colitis', next: 'Correlate with colonoscopy and histology' },
{ title: 'Crohn Disease', modality: 'CT enterography', stem: 'Recurrent abdominal pain, weight loss, diarrhea.', signs: ['Skip lesions', 'Segmental mural thickening/hyperenhancement', 'Comb sign from engorged vasa recta'], dx: 'Crohn ileocolitis', ddx: 'Intestinal TB; lymphoma', next: 'Assess stricturing/fistulizing complications' },
{ title: 'Intussusception', modality: 'US/CT', stem: 'Child with episodic pain and vomiting; intermittent lethargy.', signs: ['Target/donut sign', 'Bowel-within-bowel pattern', 'Pseudokidney sign on longitudinal view'], dx: 'Ileo-colic intussusception', ddx: 'Volvulus; appendicitis', next: 'Urgent enema reduction if no peritonitis' },
{ title: 'Hypertrophic Pyloric Stenosis', modality: 'US', stem: '6-week infant with projectile non-bilious vomiting.', signs: ['Pyloric muscle thickness >3 mm', 'Elongated pyloric canal', 'Delayed gastric emptying'], dx: 'Infantile hypertrophic pyloric stenosis', ddx: 'GERD; pylorospasm', next: 'Correct dehydration/electrolytes then pyloromyotomy' },
{ title: 'Acute Mesenteric Ischemia', modality: 'CT angiography', stem: 'Severe pain out of proportion to abdominal signs.', signs: ['Bowel wall hypoenhancement', 'Mesenteric vessel occlusion', 'Pneumatosis/portal venous gas in advanced cases'], dx: 'Acute mesenteric ischemia', ddx: 'Severe enteritis; pancreatitis', next: 'Emergent vascular/surgical pathway activation' },
{ title: 'Hepatocellular Carcinoma', modality: 'Triphasic CT/MRI', stem: 'Cirrhotic patient with rising AFP and weight loss.', signs: ['Arterial phase hyperenhancement', 'Portal/delayed washout', 'Enhancing capsule'], dx: 'Hepatocellular carcinoma', ddx: 'Hypervascular metastasis; adenoma', next: 'Stage disease and determine resection/ablation/transplant options' },
{ title: 'Cholangiocarcinoma', modality: 'MRCP + CECT', stem: 'Painless progressive jaundice and pruritus.', signs: ['Irregular malignant biliary stricture', 'Marked upstream ductal dilatation', 'Delayed fibrous tumor enhancement'], dx: 'Cholangiocarcinoma', ddx: 'Benign stricture; pancreatic head malignancy', next: 'Define biliary extent and resectability' },
{ title: 'Esophageal Carcinoma', modality: 'Barium + CT', stem: 'Progressive dysphagia with significant weight loss.', signs: ['Irregular shouldered narrowing', 'Mucosal destruction', 'Proximal dilatation'], dx: 'Esophageal carcinoma', ddx: 'Peptic stricture; achalasia', next: 'TNM staging and multidisciplinary planning' },
{ title: 'Gastric Carcinoma', modality: 'CECT', stem: 'Early satiety, anemia, and constitutional symptoms.', signs: ['Focal/asymmetric gastric wall thickening', 'Loss of mural stratification', 'Regional nodal disease possible'], dx: 'Gastric adenocarcinoma', ddx: 'Gastric lymphoma; severe gastritis', next: 'Endoscopic biopsy and stage workup' },
{ title: 'Colorectal Carcinoma', modality: 'Contrast CT/CT colonography', stem: 'Change in bowel habit, occult GI blood loss.', signs: ['Annular apple-core lesion', 'Shouldered margins', 'Proximal bowel dilatation'], dx: 'Colorectal carcinoma', ddx: 'Benign stricture; diverticular stenosis', next: 'Colonoscopy biopsy and oncologic staging' }
];
const title = pptx.addSlide();
header(title, 'GIT Radiology OSCE', '20 case stations: question slides first, answer key at end');
title.addText('Student Version', { x: 0.9, y: 1.3, w: 5.5, h: 0.7, color: 'FFFFFF', fontSize: 40, bold: true });
title.addText('Case slides contain prompts only.\nDo not show answer key during first run.', { x: 0.92, y: 2.2, w: 6.6, h: 0.9, color: C.muted, fontSize: 16 });
title.addShape(pptx.ShapeType.roundRect, { x: 0.92, y: 3.4, w: 6.2, h: 1.35, fill: { color: '0B3B4F' }, line: { color: C.accent, pt: 1 }, radius: 0.06 });
title.addText('OSCE Response Format:\n1) Modality 2) 3 key signs 3) Diagnosis\n4) Two differentials 5) Next management step', { x: 1.2, y: 3.76, w: 5.75, h: 0.9, color: 'CFFAFE', fontSize: 14, bold: true });
title.addImage({ path: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_b5288dc251f68c86c75dfe9ad6498ac8176723d7499cc64e50bec337d75c8500.jpg', x: 8.0, y: 1.1, w: 4.9, h: 3.7, sizing: { type: 'contain', x: 8.0, y: 1.1, w: 4.9, h: 3.7 } });
cases.forEach((c, i) => {
const s = pptx.addSlide();
header(s, `Case ${i + 1}`, `${c.modality} | GIT Imaging`);
s.addShape(pptx.ShapeType.roundRect, { x: 0.5, y: 0.95, w: 7.25, h: 4.85, fill: { color: C.card }, line: { color: '374151', pt: 1 }, radius: 0.06 });
s.addText(c.title, { x: 0.8, y: 1.2, w: 6.6, h: 0.45, color: C.accent, fontSize: 24, bold: true });
s.addText('Clinical stem:', { x: 0.8, y: 1.8, w: 2.5, h: 0.25, color: 'FFFFFF', fontSize: 13, bold: true });
s.addText(c.stem, { x: 0.8, y: 2.05, w: 6.55, h: 0.75, color: C.text, fontSize: 13 });
s.addText('Your tasks:', { x: 0.8, y: 2.95, w: 2.0, h: 0.25, color: 'FBBF24', fontSize: 13, bold: true });
s.addText([
{ text: 'State modality and view.\n', options: { bullet: true, breakLine: true } },
{ text: 'Describe 3 key radiological signs.\n', options: { bullet: true, breakLine: true } },
{ text: 'Give most likely diagnosis.\n', options: { bullet: true, breakLine: true } },
{ text: 'Mention 2 differentials.\n', options: { bullet: true, breakLine: true } },
{ text: 'Suggest immediate next step.' , options: { bullet: true } }
], { x: 1.0, y: 3.25, w: 6.35, h: 1.7, color: C.text, fontSize: 12 });
s.addShape(pptx.ShapeType.roundRect, { x: 0.8, y: 5.02, w: 6.55, h: 0.58, fill: { color: '1E1B4B' }, line: { color: '6366F1', pt: 0.7 }, radius: 0.05 });
s.addText('Examiner cue: Ask candidate to prioritize one life-threatening differential.', { x: 1.0, y: 5.2, w: 6.2, h: 0.22, color: 'C7D2FE', fontSize: 10.5, bold: true });
s.addShape(pptx.ShapeType.roundRect, { x: 8.0, y: 0.95, w: 4.9, h: 4.85, fill: { color: '0B1220' }, line: { color: '374151', pt: 1 }, radius: 0.06 });
if (c.img) {
s.addImage({ path: c.img, x: 8.18, y: 1.13, w: 4.55, h: 4.45, sizing: { type: 'contain', x: 8.18, y: 1.13, w: 4.55, h: 4.45 } });
} else {
s.addText('Insert local image\nfor this case', { x: 8.55, y: 3.0, w: 3.9, h: 0.8, color: C.muted, fontSize: 16, align: 'center' });
}
});
const keyIntro = pptx.addSlide();
header(keyIntro, 'Answer Key Section', 'Use after completing all case stations');
keyIntro.addShape(pptx.ShapeType.roundRect, { x: 1.1, y: 1.4, w: 11.0, h: 3.2, fill: { color: C.ans }, line: { color: '10B981', pt: 1 }, radius: 0.08 });
keyIntro.addText('Answer Key Starts Now', { x: 1.4, y: 2.1, w: 10.4, h: 0.8, color: 'D1FAE5', fontSize: 44, bold: true, align: 'center' });
keyIntro.addText('Recommended use: hide these slides during first student attempt.', { x: 1.6, y: 3.2, w: 10.0, h: 0.4, color: 'A7F3D0', fontSize: 14, align: 'center' });
cases.forEach((c, i) => {
const s = pptx.addSlide();
header(s, `Answer Key: Case ${i + 1}`, `${c.title}`);
s.addShape(pptx.ShapeType.roundRect, { x: 0.55, y: 1.0, w: 12.25, h: 4.7, fill: { color: C.card }, line: { color: '374151', pt: 1 }, radius: 0.06 });
s.addText(`${c.title} (${c.modality})`, { x: 0.9, y: 1.28, w: 8.5, h: 0.4, color: C.accent, fontSize: 24, bold: true });
s.addText('Expected key signs:', { x: 0.9, y: 1.9, w: 3.0, h: 0.28, color: 'FBBF24', fontSize: 13, bold: true });
s.addText(c.signs.map((sg, idx) => ({ text: sg, options: { bullet: true, breakLine: idx < c.signs.length - 1 } })), { x: 1.1, y: 2.2, w: 6.6, h: 1.1, color: C.text, fontSize: 12 });
s.addText('Most likely diagnosis:', { x: 0.9, y: 3.5, w: 2.9, h: 0.25, color: 'FCA5A5', fontSize: 12, bold: true });
s.addText(c.dx, { x: 3.0, y: 3.5, w: 6.9, h: 0.25, color: 'FFFFFF', fontSize: 13, bold: true });
s.addText('Differentials:', { x: 0.9, y: 3.95, w: 2.0, h: 0.25, color: 'FBBF24', fontSize: 12, bold: true });
s.addText(c.ddx, { x: 2.3, y: 3.95, w: 8.8, h: 0.25, color: C.text, fontSize: 12 });
s.addShape(pptx.ShapeType.roundRect, { x: 0.9, y: 4.35, w: 10.6, h: 0.85, fill: { color: '0B3B4F' }, line: { color: C.accent, pt: 0.7 }, radius: 0.05 });
s.addText(`Immediate next step: ${c.next}`, { x: 1.15, y: 4.64, w: 10.2, h: 0.3, color: 'CFFAFE', fontSize: 12, bold: true });
if (c.img) {
s.addShape(pptx.ShapeType.roundRect, { x: 10.05, y: 1.2, w: 2.55, h: 2.7, fill: { color: '0B1220' }, line: { color: '374151', pt: 1 }, radius: 0.05 });
s.addImage({ path: c.img, x: 10.2, y: 1.35, w: 2.25, h: 2.4, sizing: { type: 'contain', x: 10.2, y: 1.35, w: 2.25, h: 2.4 } });
}
});
pptx.writeFile({ fileName: '/home/daytona/workspace/git-radiology-osce-v2/GIT_Radiology_OSCE_20_Cases_QA_Format.pptx' });node /home/daytona/workspace/git-radiology-osce-v2/create_osce_qna_ppt.js
~/git-radiology-osce-v2
GIT Radiology OSCE 20 Cases QA Format
Presentation · PPTX
But radiology images is not available add that
Yes for all 20
ls -la /home/daytona/workspace/
small bowel obstruction abdominal xray
large bowel obstruction xray
sigmoid volvulus coffee bean sign xray
pneumoperitoneum erect chest xray free air diaphragm
achalasia barium swallow bird beak
1
?
2
Yes
search_image budget (at least 20).Try again
Try again