Make osce based ppt on 10-20 cases on hepatobilliary radiology for exam going pg Students from textbook of radiology
hepatobiliary radiology liver lesion CT MRI ultrasound OSCE
liver abscess amoebic pyogenic CT scan OSCE radiology
gallstones ultrasound cholecystitis acute chronic radiology
hepatocellular carcinoma HCC CT arterial washout LI-RADS
cholangiocarcinoma bile duct stricture MRCP biliary obstruction radiology
hepatic hemangioma liver cyst simple complex MRI CT radiology
liver metastases CT portal venous phase colorectal cancer
fatty liver hepatic steatosis cirrhosis portal hypertension ultrasound CT
mkdir -p /home/daytona/workspace/hepatobiliary-osce-ppt && ls /home/daytona/workspace/hepatobiliary-osce-ppt/
~/hepatobiliary-osce-ppt/create_hepatobiliary_osce_ppt.js
const pptxgen = require('pptxgenjs');
const pptx = new pptxgen();
pptx.layout = 'LAYOUT_WIDE';
pptx.author = 'Orris';
pptx.company = 'Radiology Exam Prep';
pptx.subject = 'Hepatobiliary Radiology OSCE Cases';
pptx.title = 'Hepatobiliary Radiology OSCE Cases for PG Students';
pptx.lang = 'en-US';
pptx.theme = {
headFontFace: 'Calibri',
bodyFontFace: 'Calibri',
lang: 'en-US'
};
const colors = {
bg: '0B1D2A',
title: 'FFFFFF',
accent: '00A8E8',
text: '1F2937',
muted: '6B7280',
white: 'FFFFFF',
lightBg: 'F8FAFC'
};
function addHeader(slide, title, subtitle = '') {
slide.background = { color: colors.lightBg };
slide.addShape(pptx.ShapeType.rect, {
x: 0,
y: 0,
w: 13.33,
h: 0.9,
fill: { color: colors.bg },
line: { color: colors.bg }
});
slide.addText(title, {
x: 0.5,
y: 0.2,
w: 9.5,
h: 0.4,
color: colors.title,
bold: true,
fontSize: 20
});
if (subtitle) {
slide.addText(subtitle, {
x: 0.5,
y: 0.95,
w: 12.2,
h: 0.3,
color: colors.muted,
fontSize: 12,
italic: true
});
}
}
function addCaseSlide(caseNum, diagnosis, scenario, findings, question, answer, imageUrl) {
const slide = pptx.addSlide();
addHeader(slide, `Case ${caseNum}: ${diagnosis}`, 'OSCE Spot Diagnosis and Structured Reporting');
slide.addText('Clinical Scenario', {
x: 0.5,
y: 1.35,
w: 3.9,
h: 0.3,
fontSize: 13,
bold: true,
color: '0F172A'
});
slide.addShape(pptx.ShapeType.roundRect, {
x: 0.5,
y: 1.7,
w: 3.9,
h: 1.1,
fill: { color: 'E2E8F0' },
line: { color: 'CBD5E1', pt: 1 },
rectRadius: 0.08
});
slide.addText(scenario, {
x: 0.65,
y: 1.83,
w: 3.6,
h: 0.9,
fontSize: 12,
color: colors.text,
valign: 'top'
});
slide.addText('Key Imaging Findings', {
x: 0.5,
y: 2.95,
w: 3.9,
h: 0.3,
fontSize: 13,
bold: true,
color: '0F172A'
});
const findingRuns = findings.map((f, i) => ({
text: `• ${f}`,
options: { breakLine: i < findings.length - 1 }
}));
slide.addShape(pptx.ShapeType.roundRect, {
x: 0.5,
y: 3.3,
w: 3.9,
h: 1.8,
fill: { color: 'FFFFFF' },
line: { color: 'CBD5E1', pt: 1 },
rectRadius: 0.08
});
slide.addText(findingRuns, {
x: 0.65,
y: 3.45,
w: 3.6,
h: 1.5,
fontSize: 11,
color: colors.text,
valign: 'top'
});
slide.addShape(pptx.ShapeType.roundRect, {
x: 4.7,
y: 1.35,
w: 8.1,
h: 3.45,
fill: { color: 'FFFFFF' },
line: { color: '94A3B8', pt: 1 },
rectRadius: 0.04
});
slide.addText('Representative Image', {
x: 4.9,
y: 1.5,
w: 4,
h: 0.3,
fontSize: 12,
bold: true,
color: '334155'
});
slide.addImage({
path: imageUrl,
x: 5.0,
y: 1.85,
w: 7.6,
h: 2.8
});
slide.addShape(pptx.ShapeType.roundRect, {
x: 4.7,
y: 4.95,
w: 8.1,
h: 0.95,
fill: { color: 'DBEAFE' },
line: { color: '60A5FA', pt: 1 },
rectRadius: 0.06
});
slide.addText(`OSCE Question: ${question}`, {
x: 4.9,
y: 5.1,
w: 7.7,
h: 0.25,
fontSize: 11,
bold: true,
color: '1E3A8A'
});
slide.addText(`Expected Answer: ${answer}`, {
x: 4.9,
y: 5.35,
w: 7.7,
h: 0.35,
fontSize: 10.5,
color: '1E40AF'
});
}
// Title Slide
let slide = pptx.addSlide();
slide.background = { color: colors.bg };
slide.addText('Hepatobiliary Radiology', {
x: 0.8,
y: 1.4,
w: 11.8,
h: 0.8,
fontSize: 44,
bold: true,
color: 'FFFFFF',
align: 'center'
});
slide.addText('OSCE-Based Cases for PG Examination', {
x: 0.8,
y: 2.3,
w: 11.8,
h: 0.5,
fontSize: 24,
color: 'BAE6FD',
align: 'center'
});
slide.addText('15 High-Yield Cases from Grainger & Allison\'s Diagnostic Radiology', {
x: 0.8,
y: 3.0,
w: 11.8,
h: 0.4,
fontSize: 16,
color: 'E2E8F0',
align: 'center'
});
slide.addShape(pptx.ShapeType.line, {
x: 3.8,
y: 3.6,
w: 5.7,
h: 0,
line: { color: '00A8E8', pt: 2 }
});
slide.addText('Prepared for: MD/DNB Radiology PG Students', {
x: 0.8,
y: 4.0,
w: 11.8,
h: 0.35,
fontSize: 14,
color: 'CBD5E1',
align: 'center'
});
// Case index slide
slide = pptx.addSlide();
addHeader(slide, 'Case Index', 'Covering common and exam-favorite hepatobiliary diagnoses');
const caseList = [
'1. Cholelithiasis',
'2. Acute Calculous Cholecystitis',
'3. Emphysematous Cholecystitis',
'4. Gallbladder Carcinoma',
'5. Choledocholithiasis',
'6. Benign Biliary Stricture',
'7. Cholangiocarcinoma',
'8. Hepatic Steatosis',
'9. Liver Abscess',
'10. Hemangioma',
'11. Focal Nodular Hyperplasia',
'12. Hepatic Adenoma',
'13. Hepatocellular Carcinoma',
'14. Liver Metastases',
'15. Cirrhosis with Portal Hypertension'
];
slide.addShape(pptx.ShapeType.roundRect, {
x: 0.7,
y: 1.5,
w: 12,
h: 3.8,
fill: { color: 'FFFFFF' },
line: { color: 'CBD5E1', pt: 1 },
rectRadius: 0.07
});
const leftItems = caseList.slice(0, 8).join('\n');
const rightItems = caseList.slice(8).join('\n');
slide.addText(leftItems, {
x: 1.1,
y: 1.8,
w: 5.4,
h: 3.2,
fontSize: 16,
color: '0F172A',
breakLine: true
});
slide.addText(rightItems, {
x: 6.8,
y: 1.8,
w: 5.4,
h: 3.2,
fontSize: 16,
color: '0F172A',
breakLine: true
});
const cases = [
{
diagnosis: 'Cholelithiasis',
scenario: '38F with recurrent post-prandial RUQ pain. US performed.',
findings: ['Echogenic intraluminal foci', 'Posterior acoustic shadowing', 'Stone mobility on position change', 'No wall edema'],
question: 'Most likely diagnosis and first-line modality?',
answer: 'Cholelithiasis; ultrasound is first-line and highly sensitive.',
image: 'https://cdn.orris.care/cdss_images/dec6d850667461502f41c6c1b73675bd117ed2d577a4e1593dff35cf536ec66f.png'
},
{
diagnosis: 'Acute Calculous Cholecystitis',
scenario: '52F with fever, RUQ tenderness, positive Murphy sign.',
findings: ['Distended gallbladder', 'Wall thickening >3 mm', 'Pericholecystic fluid', 'Impacted stone at neck/cystic duct'],
question: 'List 3 key US criteria for diagnosis.',
answer: 'Gallstones + wall edema/thickening + pericholecystic fluid or sonographic Murphy sign.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_c1d618976ceba627b5f732eadb1de16a1779bba484d9d1865b4333710672b3f8.jpg'
},
{
diagnosis: 'Emphysematous Cholecystitis',
scenario: 'Diabetic male with sepsis and severe RUQ pain.',
findings: ['Gas in gallbladder wall/lumen', 'Dirty shadowing on US', 'Air-fluid level possible', 'CT best demonstrates gas extent'],
question: 'Name this emergency and preferred confirmation test.',
answer: 'Emphysematous cholecystitis; confirm and stage with contrast CT.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_b944eec97e06b2a102ed36e6f39461f64b72fc4e6ae663fc90e59e01e6dc5307.jpg'
},
{
diagnosis: 'Gallbladder Carcinoma',
scenario: '65F with weight loss and painless jaundice.',
findings: ['Polypoidal mass replacing GB', 'Focal/irregular wall thickening', 'Direct liver invasion', 'Regional nodal disease may coexist'],
question: 'Most suspicious imaging pattern for malignancy?',
answer: 'Mass replacing gallbladder or irregular focal wall thickening with invasion.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_e02ba46bd4a6d3650dcc3ab47809c647558d550d70a4cdac0b21523b458be2bc.jpg'
},
{
diagnosis: 'Choledocholithiasis',
scenario: '45M with jaundice and cholestatic LFT pattern.',
findings: ['Dilated common bile duct', 'Intraductal filling defect', 'Intrahepatic biliary dilatation', 'MRCP superior non-invasive mapping'],
question: 'Best non-invasive test to map ductal stones?',
answer: 'MRCP for ductal anatomy and level/cause of obstruction.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_dad97650671e5088667beec1c177f3313234fd8adbe9ec35118fc750d5e9a3d2.jpg'
},
{
diagnosis: 'Benign Biliary Stricture',
scenario: 'Post-cholecystectomy patient with progressive jaundice.',
findings: ['Smooth tapered narrowing', 'Upstream ductal dilatation', 'No overt mass lesion', 'May follow surgery/inflammation'],
question: 'One imaging clue favoring benign over malignant stricture?',
answer: 'Short smooth tapered stricture without irregular shouldering or mass.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_3f87f6f96bbe4f377ec85478b3e4a42cd4366ab31d9a60d359ff34c8b6895b9e.jpg'
},
{
diagnosis: 'Cholangiocarcinoma (Hilar/Distal)',
scenario: '60M with painless progressive obstructive jaundice.',
findings: ['Irregular abrupt ductal cutoff', 'Asymmetric wall thickening', 'Periductal enhancement', 'Lobar atrophy may coexist'],
question: 'What diagnosis in a hilar stricture with proximal ductal dilatation?',
answer: 'Perihilar cholangiocarcinoma (Klatskin tumor).',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_9c33c2400acb3e026df56dabeb49883d1792d2083b44bae7573c5860117480c0.jpg'
},
{
diagnosis: 'Hepatic Steatosis',
scenario: 'Obese patient with elevated transaminases.',
findings: ['Diffuse low attenuation on CT', 'Bright liver on US', 'Vessel blurring in severe fat', 'Focal fat sparing near GB fossa possible'],
question: 'Classic CT sign of fatty liver?',
answer: 'Liver attenuation lower than spleen on non-contrast CT.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_ff41ab1ce12d4e0d01f0d8b3905c2a407da21021fae48a8bf97aaf51fa05460f.jpg'
},
{
diagnosis: 'Pyogenic Liver Abscess',
scenario: '40M with fever, chills, RUQ pain, high TLC.',
findings: ['Hypodense lesion with peripheral rim', 'Internal septations/debris', 'Perilesional edema', 'Gas may indicate aggressive infection'],
question: 'Most likely diagnosis for rim-enhancing lesion with sepsis?',
answer: 'Liver abscess; correlate clinically and consider image-guided drainage.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_da65eddf67f5b93777c3c93466b22a3c1c4d2540301b362051c38f9ca8ac7260.jpg'
},
{
diagnosis: 'Hepatic Hemangioma',
scenario: 'Incidental liver lesion in asymptomatic woman.',
findings: ['Well-defined hyperechoic lesion on US', 'Peripheral nodular discontinuous enhancement', 'Progressive centripetal fill-in', 'Markedly T2 bright on MRI'],
question: 'Typical dynamic enhancement pattern?',
answer: 'Peripheral nodular enhancement with progressive centripetal fill-in.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_e4fc85edad7bc1b9f9c974d4ebdb4828e84fd61a0b8c8bec905fb5a128f0c556.jpg'
},
{
diagnosis: 'Focal Nodular Hyperplasia',
scenario: 'Young female with incidentally found hypervascular lesion.',
findings: ['Arterial hyperenhancement', 'Central scar in larger lesions', 'Iso/hyperintense hepatobiliary phase (EOB MRI)', 'No capsule'],
question: 'Feature that helps distinguish FNH from adenoma?',
answer: 'Retention on hepatobiliary phase and central scar favor FNH.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_e5d329b70ffeb7ab3c0e4e16aad7cff072eb481453edb1be5ee7c01f84fea109.jpg'
},
{
diagnosis: 'Hepatic Adenoma',
scenario: 'Woman on OCP with painful liver lesion.',
findings: ['Hypervascular lesion', 'Possible intralesional hemorrhage', 'Hepatobiliary phase hypointensity', 'Risk of rupture when large'],
question: 'Important complication to mention in report?',
answer: 'Hemorrhage/rupture risk, especially in larger adenomas.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_9983ea8a1f4e420eb936f9518ce4162d50c6525529584f8abac2492541d355c6.jpg'
},
{
diagnosis: 'Hepatocellular Carcinoma',
scenario: 'Cirrhotic patient under surveillance with new nodule.',
findings: ['Arterial phase hyperenhancement', 'Portal/delayed washout', 'Enhancing capsule', 'Possible venous invasion'],
question: 'Which hallmark combination permits non-invasive HCC diagnosis?',
answer: 'Arterial hyperenhancement plus washout, with/without capsule in at-risk liver.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_06e0127cce099cb7f1dcef168b830f72ebdee7279803ecb7e9df7d6980a9615e.jpg'
},
{
diagnosis: 'Liver Metastases',
scenario: 'Known colorectal primary with elevated CEA.',
findings: ['Multiple hypovascular lesions', 'Peripheral rim enhancement', 'Best detection in portal venous phase', 'Diffusion restriction on MRI'],
question: 'Most common malignant liver lesions in adults?',
answer: 'Metastases are more common than primary malignant liver tumors.',
image: 'https://cdn.orris.care/cdss_images/pmc_clinical_VQA_6e5f4fe90b48c12aaa7856b4a039317fa1e9db442a69cf2de27a14b4730dd796.jpg'
},
{
diagnosis: 'Cirrhosis with Portal Hypertension',
scenario: 'Chronic liver disease patient with splenomegaly and ascites.',
findings: ['Nodular liver contour', 'Caudate lobe hypertrophy', 'Splenomegaly', 'Collateral varices and ascites'],
question: 'Name 3 CT signs of portal hypertension.',
answer: 'Splenomegaly, portosystemic collaterals/varices, and ascites.',
image: 'https://cdn.orris.care/cdss_images/medpix_vqa_1cc74d5c-3d13-4a63-b5f7-9aadaaa9869b_1766170052856.png'
}
];
cases.forEach((c, i) => {
addCaseSlide(i + 1, c.diagnosis, c.scenario, c.findings, c.question, c.answer, c.image);
});
// Final slide
slide = pptx.addSlide();
addHeader(slide, 'Rapid Revision Summary', 'Exam day checklist for hepatobiliary spotters');
slide.addShape(pptx.ShapeType.roundRect, {
x: 0.7,
y: 1.4,
w: 12,
h: 3.9,
fill: { color: 'FFFFFF' },
line: { color: 'CBD5E1', pt: 1.2 },
rectRadius: 0.08
});
slide.addText([
{ text: '1) Start with modality-specific pattern recognition (US shadowing, CT enhancement, MR signal).', options: { breakLine: true } },
{ text: '2) Localize lesion: gallbladder vs ductal vs parenchymal.', options: { breakLine: true } },
{ text: '3) For focal liver lesions: classify benign vs malignant by dynamic enhancement.', options: { breakLine: true } },
{ text: '4) In obstruction: identify level, cause, and complications.', options: { breakLine: true } },
{ text: '5) In every OSCE answer: diagnosis + key signs + one differential + next best test.' }
], {
x: 1.0,
y: 1.8,
w: 11.4,
h: 2.3,
fontSize: 17,
color: '111827',
valign: 'top'
});
slide.addText('Primary reference: Grainger & Allison\'s Diagnostic Radiology, hepatobiliary chapter (textbook-derived core concepts).', {
x: 1.0,
y: 4.5,
w: 11.3,
h: 0.45,
fontSize: 11,
color: '475569',
italic: true
});
pptx.writeFile({ fileName: '/home/daytona/workspace/hepatobiliary-osce-ppt/Hepatobiliary_OSCE_15_Cases_PG_Radiology.pptx' });