5 page High yield notes from the chapter for teaching with probable questions, and include teaching notes, flowcharts, landmark trials, guidelines, tables, memory aids, exam pearls and most probably INI SS Questions. Also include last minute revision tables. I need this file
cd /home/daytona/workspace/attachments/2e1717f6-24c2-4371-a7a2-49ff2b858403/ && …
/home/daytona/workspace
mkdir -p /home/daytona/workspace/INI_SS_CVTS_Ch123
~/INI_SS_CVTS_Ch123/make_notes.js
const {
Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
HeadingLevel, AlignmentType, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageBreak, UnderlineType, TableOfContents, LevelFormat
} = require('docx');
const fs = require('fs');
// ── helper functions ────────────────────────────────────────────────────────
function h1(text) {
return new Paragraph({
heading: HeadingLevel.HEADING_1,
children: [new TextRun({ text, color: '1F3864', bold: true, size: 28 })],
spacing: { before: 280, after: 100 },
});
}
function h2(text) {
return new Paragraph({
heading: HeadingLevel.HEADING_2,
children: [new TextRun({ text, color: 'C00000', bold: true, size: 24 })],
spacing: { before: 200, after: 80 },
});
}
function h3(text) {
return new Paragraph({
heading: HeadingLevel.HEADING_3,
children: [new TextRun({ text, color: '2E75B6', bold: true, size: 22 })],
spacing: { before: 160, after: 60 },
});
}
function body(text) {
return new Paragraph({
children: [new TextRun({ text, size: 20 })],
spacing: { before: 40, after: 40 },
});
}
function bullet(text, bold_prefix = '') {
const children = [];
if (bold_prefix) {
children.push(new TextRun({ text: bold_prefix + ' ', bold: true, size: 20 }));
children.push(new TextRun({ text, size: 20 }));
} else {
children.push(new TextRun({ text, size: 20 }));
}
return new Paragraph({
bullet: { level: 0 },
children,
spacing: { before: 30, after: 30 },
});
}
function subbullet(text) {
return new Paragraph({
bullet: { level: 1 },
children: [new TextRun({ text, size: 19 })],
spacing: { before: 20, after: 20 },
});
}
function pearl(text) {
return new Paragraph({
children: [
new TextRun({ text: '★ EXAM PEARL: ', bold: true, color: 'FF0000', size: 20 }),
new TextRun({ text, size: 20 }),
],
spacing: { before: 60, after: 60 },
shading: { type: ShadingType.CLEAR, fill: 'FFF2CC' },
indent: { left: 200 },
});
}
function teachingNote(text) {
return new Paragraph({
children: [
new TextRun({ text: '📝 Teaching Note: ', bold: true, color: '375623', size: 20 }),
new TextRun({ text, size: 20, italics: true }),
],
spacing: { before: 60, after: 60 },
shading: { type: ShadingType.CLEAR, fill: 'E2EFDA' },
indent: { left: 200 },
});
}
function mnemonic(text) {
return new Paragraph({
children: [
new TextRun({ text: '🔑 Memory Aid: ', bold: true, color: '833C00', size: 20 }),
new TextRun({ text, size: 20, bold: true }),
],
spacing: { before: 60, after: 60 },
shading: { type: ShadingType.CLEAR, fill: 'FCE4D6' },
indent: { left: 200 },
});
}
function pageBreak() {
return new Paragraph({ children: [new PageBreak()] });
}
function divider() {
return new Paragraph({
children: [new TextRun({ text: '─'.repeat(90), color: 'BFBFBF', size: 18 })],
spacing: { before: 60, after: 60 },
});
}
function colorRow(cells, shading_fill) {
return new TableRow({
children: cells.map(c => new TableCell({
children: [new Paragraph({ children: [new TextRun({ text: c, size: 18, bold: true })], alignment: AlignmentType.CENTER })],
shading: { type: ShadingType.CLEAR, fill: shading_fill },
verticalAlign: VerticalAlign.CENTER,
})),
});
}
function dataRow(cells) {
return new TableRow({
children: cells.map(c => new TableCell({
children: [new Paragraph({ children: [new TextRun({ text: c, size: 18 })], alignment: AlignmentType.CENTER })],
verticalAlign: VerticalAlign.CENTER,
})),
});
}
function makeTable(headers, rows, headerFill = '1F3864', headerColor = 'FFFFFF') {
const headerRow = new TableRow({
children: headers.map(h => new TableCell({
children: [new Paragraph({ children: [new TextRun({ text: h, bold: true, color: headerColor, size: 19 })], alignment: AlignmentType.CENTER })],
shading: { type: ShadingType.CLEAR, fill: headerFill },
verticalAlign: VerticalAlign.CENTER,
})),
tableHeader: true,
});
const dataRows = rows.map((row, i) => new TableRow({
children: row.map(c => new TableCell({
children: [new Paragraph({ children: [new TextRun({ text: c, size: 18 })], alignment: AlignmentType.CENTER })],
shading: { type: ShadingType.CLEAR, fill: i % 2 === 0 ? 'F2F2F2' : 'FFFFFF' },
verticalAlign: VerticalAlign.CENTER,
})),
}));
return new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [headerRow, ...dataRows],
});
}
function titleBlock(title, subtitle) {
return [
new Paragraph({
children: [new TextRun({ text: title, bold: true, color: 'FFFFFF', size: 40 })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.CLEAR, fill: '1F3864' },
spacing: { before: 200, after: 0 },
indent: { left: 300, right: 300 },
}),
new Paragraph({
children: [new TextRun({ text: subtitle, color: 'FFFFFF', size: 22, italics: true })],
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.CLEAR, fill: '2E75B6' },
spacing: { before: 0, after: 200 },
indent: { left: 300, right: 300 },
}),
];
}
function boxedNote(label, text, fill, labelColor) {
return new Paragraph({
children: [
new TextRun({ text: label + ' ', bold: true, color: labelColor, size: 20 }),
new TextRun({ text, size: 20 }),
],
shading: { type: ShadingType.CLEAR, fill },
spacing: { before: 60, after: 60 },
indent: { left: 200, right: 200 },
border: {
top: { style: BorderStyle.SINGLE, size: 4, color: labelColor },
bottom: { style: BorderStyle.SINGLE, size: 4, color: labelColor },
left: { style: BorderStyle.THICK, size: 8, color: labelColor },
right: { style: BorderStyle.SINGLE, size: 4, color: labelColor },
},
});
}
// ═══════════════════════════════════════════════════════════════════════════
// DOCUMENT CONTENT
// ═══════════════════════════════════════════════════════════════════════════
const children = [
// ── PAGE 1 ── TITLE + OVERVIEW + ANATOMY ─────────────────────────────────
...titleBlock(
'CHAPTER 123 — PULMONARY ATRESIA WITH INTACT VENTRICULAR SEPTUM (PA/IVS)',
'High-Yield Teaching Notes | INI SS / CVTS Board Preparation | LaPar & Bacha'
),
h1('SECTION 1 — EPIDEMIOLOGY & DEFINITION'),
bullet('Prevalence: 4–8 per 100,000 live births; accounts for 1%–3% of all CHD'),
bullet('Defined by: Complete RVOTO + intact ventricular septum (NO VSD)'),
bullet('Always ductal-dependent lesion in the neonatal period'),
bullet('Historically fatal; first successful repair — Weinberg (1962) by transventricular valvotomy'),
pearl('PA/IVS ≠ PA/VSD — PA/IVS has intact septum, usually normal PAs; PA/VSD has aortopulmonary collaterals and PA hypoplasia.'),
teachingNote('Contrast with critical PS and Ebstein anomaly — all cause cyanosis in neonates; differentiating anatomy drives management.'),
mnemonic('"INTACT septum = ISOLATED RV problem" — the key consequence is RV hypertension, sinusoidal communications, and RVDCC.'),
divider(),
h1('SECTION 2 — ANATOMY (HIGH YIELD)'),
h2('2A. Cardiac Situs & Connections'),
bullet('Situs solitus, levocardia, AV and VA concordance — the rule'),
bullet('Left-sided aortic arch + left-sided ductus arteriosus'),
bullet('Normal systemic and pulmonary venous connections'),
h2('2B. Tricuspid Valve (TV) — KEY PROGNOSTIC MARKER'),
makeTable(
['TV Z-Score', 'RV Morphology', 'RVOT Cavity', 'RVDCC Risk'],
[
['> −2 (mild)', 'Tripartite', 'Present', 'Rare'],
['−2 to −4 (moderate)', 'Bipartite', 'Intermediate', 'Possible'],
['< −4 (severe)', 'Unipartite', 'Absent', 'Common'],
]
),
pearl('TV Z-score is the SINGLE MOST IMPORTANT anatomical predictor of surgical outcome and repair type.'),
bullet('5%–10% of PA/IVS: TV annulus inferiorly displaced (Ebstein-like)'),
h2('2C. Right Ventricle Morphology'),
bullet('Tripartite RV (inlet + trabecular + infundibular): 60%–80% — best prognosis'),
bullet('Bipartite RV (inlet + body, no outlet): 15%–30% — apical trabecular overgrowth'),
bullet('Unipartite RV: 2%–10% — severe infundibular + apical overgrowth; worst prognosis'),
teachingNote('The RV can be either hypertrophied and small OR dilated and thin-walled — depends on degree of intracavitary muscular overgrowth.'),
h2('2D. Pulmonary Valve Atresia Types'),
bullet('Membranous (imperforate) atresia (~75%): structurally identifiable leaflets with thin membrane; usually associated with better-formed RV — amenable to catheter perforation'),
bullet('Muscular atresia (~25%): complete obliteration of infundibulum; severe RV hypoplasia + higher coronary anomaly risk'),
pearl('"Membranous = better RV + catheter candidate. Muscular = worse RV + surgical route."'),
h2('2E. Coronary Artery Anatomy — MOST TESTED TOPIC'),
body('Coronary fistulae (sinusoidal communications) present in 45%–70% of PA/IVS patients with hypoplastic RV.'),
makeTable(
['Pattern', 'Description', 'Clinical Significance'],
[
['Normal (Type A)', 'No fistulae; normal coronary anatomy', 'RV decompression safe'],
['Fistulae without stenosis (Type B)', 'RV-to-coronary fistulae; no stenosis', 'RV "steal" phenomenon possible'],
['Fistulae with stenosis (Type C)', 'RV-to-coronary fistulae + proximal/distal stenosis', 'Risk of ischemia on decompression'],
['RVDCC (Type D)', 'Coronary ostial atresia/occlusion; RV-dependent flow', 'CONTRAINDICATION to RV decompression'],
]
),
boxedNote('⚠️ CRITICAL:', 'RV-Dependent Coronary Circulation (RVDCC) — present in ~25% of cases — is an ABSOLUTE CONTRAINDICATION to RV decompression. Decompress the RV → coronary steal → sudden death / MI.', 'FFE4E4', 'C00000'),
pearl('RVDCC with ostial atresia carries 100% mortality in single-ventricle palliation (Cheung series).'),
mnemonic('"RVDCC = Do NOT Decompress" — the coronary depends on the hypertensive RV; taking away RV pressure = cutting coronary supply.'),
pageBreak(),
// ── PAGE 2 ── PATHOPHYSIOLOGY + DIAGNOSIS + INITIAL MANAGEMENT ──────────
h1('SECTION 3 — PATHOPHYSIOLOGY'),
h2('Flowchart: PA/IVS Hemodynamics'),
makeTable(
['Step', 'Event', 'Consequence'],
[
['1', 'Pulmonary valve atresia → NO antegrade RV output', 'RV pressure increases (supra-systemic)'],
['2', 'IVS intact → no VSD outlet for RV', 'RV blood escapes via TR + ASD/PFO (R→L)'],
['3', 'PDA is ONLY pulmonary blood flow source', 'Ductal-dependent circulation; SpO2 drops as PDA closes'],
['4', 'Hypertensive RV → coronary sinusoidal persistence', 'RVDCC risk in severe cases'],
['5', 'Deoxygenated blood to coronary bed via sinusoids', 'Reduced RV + LV function over time'],
]
),
teachingNote('Tricuspid regurgitation is actually "protective" in PA/IVS — it decompresses the RV, lowering RV pressure, which reduces coronary fistula formation.'),
pearl('Competent TV + PA/IVS = higher RV pressure = more coronary sinusoids = higher RVDCC risk. Paradox: a competent TV is BAD in PA/IVS.'),
divider(),
h1('SECTION 4 — CLINICAL PRESENTATION & DIAGNOSIS'),
h2('Clinical Presentation'),
bullet('Full-term, well-developed neonate (usually)'),
bullet('Cyanosis within hours of birth (as PDA closes)'),
bullet('Single S2 (no pulmonary component)'),
bullet('Tricuspid regurgitation murmur (systolic at LLSB) if present'),
bullet('Signs of low cardiac output if duct closes: acidosis, shock'),
h2('Investigations'),
makeTable(
['Investigation', 'Typical Finding', 'Significance'],
[
['ECG', 'QRS axis 0–120°; ↓ anterior RV forces; LV dominance', 'Reflects RV underdevelopment'],
['CXR', 'Variable heart size; reduced pulmonary vascularity', 'Large heart if severe TR (Ebstein-like)'],
['TTE (Primary)', 'RV/TV size, atresia type, RVOT, ASD, PDA, coronary fistulae', 'Key diagnostic + planning tool'],
['Cardiac Cath', 'RV ventriculography + coronary angiography', 'ESSENTIAL to define RVDCC; also allows balloon septostomy'],
['CT / MRI', 'Complex PA anatomy; RV volume & function (pre- and post-op)', 'Increasing role, especially for follow-up'],
]
),
pearl('Cardiac catheterization with CORONARY ANGIOGRAPHY is mandatory before any surgical decompression — must rule out RVDCC!'),
teachingNote('Prenatal diagnosis by fetal echo allows planned delivery at a cardiac center — improves neonatal survival substantially.'),
h2('Initial Stabilization'),
bullet('PGE1 infusion — IMMEDIATELY on diagnosis; maintains PDA patency'),
bullet('Ensure unrestricted atrial R→L shunt (ASD/PFO); balloon atrial septostomy if restrictive'),
bullet('Correct metabolic acidosis, support with O2, ventilation, inotropes as needed'),
bullet('NO RV decompression before RVDCC assessment'),
pearl('PGE1 + rule out RVDCC = the two most critical neonatal steps in PA/IVS management.'),
mnemonic('"PGE-1 First, THEN Cath" — stabilize the duct before anything else.'),
pageBreak(),
// ── PAGE 3 ── SURGICAL MANAGEMENT ───────────────────────────────────────
h1('SECTION 5 — SURGICAL MANAGEMENT (MOST HEAVILY TESTED)'),
h2('Decision Framework'),
body('The spectrum of TV and RV hypoplasia + presence of RVDCC determines the repair pathway. Goal: achieve BIVENTRICULAR repair whenever possible.'),
h3('Flowchart: Choosing the Repair Pathway'),
makeTable(
['RV/TV Anatomy', 'RVDCC?', 'Repair Pathway'],
[
['TV Z ≥ −2; tripartite RV', 'No', '→ Biventricular Repair'],
['TV Z −2 to −4; bipartite RV', 'No / Possible', '→ 1.5-Ventricle Repair (Hybrid)'],
['TV Z < −4; unipartite RV', 'Common', '→ Single-Ventricle Palliation (Fontan pathway)'],
],
'C00000'
),
pearl('Biventricular repair is favored when TV Z ≥ −2, tripartite RV, NO RVDCC, and significant TR is present.'),
h2('Stage 1 — Neonatal Palliation'),
h3('A. Establishing Pulmonary Blood Flow'),
bullet('Modified Blalock-Taussig (BT) Shunt: subclavian artery → PA (3–3.5 mm PTFE graft)', '→'),
bullet('Central systemic-PA shunt (on/off CPB)', '→'),
bullet('PDA stenting (transcatheter): increasing popularity at specialized centers', '→'),
teachingNote('BT shunt vs PDA stenting — both valid; PDA stenting avoids sternotomy and preserves anatomy for future surgery but requires branch PA anatomy suitable for stenting.'),
h3('B. RV Decompression (if NO RVDCC + Membranous Atresia)'),
bullet('Transcatheter: Radiofrequency (RF) wire perforation + balloon valvuloplasty — first-line for membranous type'),
bullet('Surgical (on CPB): Pulmonary valvotomy/valvectomy + RVOT patch reconstruction (transannular patch) + infundibular resection'),
bullet('After decompression: supplemental systemic-PA shunt may still be needed if RV is too small for full output'),
pearl('RV decompression promotes TV and RV growth — rehabilitation of the right heart is the goal of early palliation.'),
mnemonic('"Decompress + Supplement" — decompress RV to promote growth; supplement with shunt/PDA stent until RV catches up.'),
h2('Follow-Up Catheterization (6–12 months post-palliation)'),
bullet('Temporarily occlude systemic-PA shunt → check SpO2'),
bullet('If SpO2 adequate → temporarily occlude ASD → check RA pressure'),
bullet('RA pressure < 15 mmHg with adequate cardiac output → candidate for complete biventricular repair + ASD closure'),
bullet('ASD closure: percutaneous preferred; shunt closure during same catheterization'),
h2('Stage 2A — Complete Biventricular Repair'),
bullet('Indications: TV Z ≥ −2, tripartite RV, no RVDCC, RA pressure <15 mmHg on trial occlusion'),
bullet('ASD + systemic-PA shunt closed (percutaneously or surgically)'),
bullet('Ensures fully separated pulmonary and systemic circulations'),
h2('Stage 2B — 1.5-Ventricle Repair (Hybrid)'),
bullet('For patients who fail biventricular criteria after palliation (RV cannot support full systemic venous return)'),
bullet('Components: (1) Bidirectional Glenn (SVC → PA direct anastomosis) + (2) RVOT reconstruction + transannular patch + (3) Complete or fenestrated ASD closure'),
bullet('IVC blood → returns to RA → RV → pulmonary circulation (via reconstructed RVOT)'),
bullet('SVC blood → direct to PA via Glenn'),
bullet('Fenestration (~4 mm) left if RA pressure >15 mmHg; can close percutaneously later'),
teachingNote('1.5-ventricle repair is an excellent option when the RV is "too small for two but too big to abandon" — leverages partial biventricular function.'),
h2('Stage 2C — Single-Ventricle (Fontan) Palliation'),
bullet('Indicated when RV is severely hypoplastic (unipartite), RVDCC present — RV cannot be rehabilitated'),
bullet('Stage 2 (3–6 months): Bidirectional Glenn (SVC→PA)'),
bullet('Stage 3 (2–4 years): Fontan completion (IVC → PA via extracardiac conduit or lateral tunnel)'),
boxedNote('CRITICAL WARNING:', 'RVDCC + Fontan → 50% mortality (Cheung 2014). RVDCC with ostial atresia → 100% mortality. The most lethal subset of PA/IVS.', 'FFE4E4', 'C00000'),
pageBreak(),
// ── PAGE 4 ── SPECIAL CONSIDERATIONS + OUTCOMES + TRIALS ────────────────
h1('SECTION 6 — SPECIAL SURGICAL CONSIDERATIONS'),
h2('CPB Strategy for RVDCC (Critical!)'),
bullet('Standard CPB cannulation is DANGEROUS — empty, decompressed RV = coronary ischemia'),
bullet('Strategy: Bicaval venous cannulation (snared) + RIGHT ATRIAL arterial cannulation'),
bullet('Purpose: Maintain oxygenated blood as RV preload during bypass → coronary perfusion maintained via RVDCC'),
bullet('Repairs performed with RV FILLED and BEATING — NOT on arrested, empty heart'),
pearl('For RVDCC: "Filled and Beating" CPB strategy — never empty the RV during bypass!'),
teachingNote('This is a frequently asked INI SS operative detail — the unique bypass setup for RVDCC is a classic exam question.'),
h2('Predictors of Biventricular Repair Success'),
makeTable(
['Favorable Factor', 'Details'],
[
['TV Z-score ≥ −2', 'Near-normal TV size'],
['Tripartite RV morphology', 'All 3 components present'],
['Absence of RVDCC', 'Normal or fistulae without coronary dependence'],
['Presence of tricuspid regurgitation', 'Decompresses RV → lower RV pressure → fewer sinusoids'],
],
'2E75B6'
),
divider(),
h1('SECTION 7 — SURGICAL OUTCOMES & LANDMARK DATA'),
h2('Overall Survival Data'),
makeTable(
['Series / Author', 'Year', 'n', 'Key Finding'],
[
['Hanley et al. (JTCS)', '1993', 'Multi-center', 'Landmark multiinstitutional study; defined predictors of outcome'],
['Schneider et al.', '2014', '60 pts', '87% survival at 10 years'],
['Zheng et al.', '2016', '33 pts', 'Single-stage: 97%/94%/88% survival at 1/5/15 years; Staged: 90%/88%/69% at 1/5/15 years'],
['Cheung et al. (Ann Thorac Surg)', '2014', 'Multi', 'RVDCC: 50% mortality; RVDCC + ostial atresia → 100% mortality on SV palliation'],
['Mayo Clinic (John & Warnes)', '2012', '20 adults', 'All adult survivors required reintervention; 80% atrial arrhythmias; 15% ventricular arrhythmias'],
['Elias et al.', 'Recent', 'Multi', 'Overall survival: ~90% at 5–10 years; ~60% at 10–15 years'],
],
'1F3864'
),
pearl('Staged repair has WORSE long-term survival than single-stage repair (Zheng 2016). RVDCC is the single strongest predictor of mortality.'),
h2('Long-Term Morbidity'),
bullet('ALL adult survivors require reintervention (Mayo Clinic series)'),
bullet('Valve replacements most common: PV (n=6), TV (n=5), MV (n=2)'),
bullet('Atrial arrhythmias: 80% of all PA/IVS adults; highest in Fontan group'),
bullet('Ventricular arrhythmias: 15%'),
bullet('Exercise capacity reduced in all repair types vs. normal controls'),
teachingNote('Long-term outcome data for PA/IVS are sparse — the literature base is small given disease rarity. Acknowledge this in exams when asked about evidence quality.'),
divider(),
h1('SECTION 8 — PROBABLE INI SS QUESTIONS & ANSWERS'),
body(''),
makeTable(
['#', 'Question', 'Answer / Key Point'],
[
['1', 'What is the MOST IMPORTANT anatomical predictor of surgical repair type in PA/IVS?', 'TV Z-score (tricuspid valve annulus z-score)'],
['2', 'What is RVDCC and why is it a contraindication to RV decompression?', 'RV-Dependent Coronary Circulation — coronary blood flow depends on retrograde filling from hypertensive RV; decompressing RV → coronary steal → ischemia/sudden death'],
['3', 'What is the first-line drug in neonatal PA/IVS?', 'Prostaglandin E1 (PGE1) — maintains PDA patency for pulmonary blood flow'],
['4', 'What % of PA/IVS patients develop RVDCC?', '~25%'],
['5', 'What CPB strategy is used for patients with RVDCC?', 'Bicaval cannulation + right atrial arterial cannulation; RV kept filled and beating throughout bypass'],
['6', 'What is the 1.5-ventricle repair?', 'Bidirectional Glenn (SVC→PA) + RVOT reconstruction + ASD closure; for patients who cannot achieve full biventricular repair'],
['7', 'What is the cut-off RA pressure for biventricular repair eligibility?', 'RA pressure < 15 mmHg on trial shunt/ASD occlusion'],
['8', 'What is the difference between membranous and muscular pulmonary atresia?', 'Membranous (~75%): intact leaflets, thin membrane — catheter perforation feasible; Muscular (~25%): infundibulum obliterated — worse RV, higher RVDCC risk, usually requires surgery'],
['9', 'What was the first successful repair of PA/IVS and who performed it?', 'Weinberg, 1962 — transventricular valvotomy'],
['10', 'What is the long-term mortality in RVDCC with coronary ostial atresia undergoing single-ventricle palliation?', '100% (Cheung 2014)'],
['11', 'What TTE finding distinguishes RVDCC from simple coronary fistulae?', 'Absent coronary filling from aortic root injection on cardiac catheterization angiography (only RV injection fills coronaries)'],
['12', 'What is the prevalence of coronary sinusoidal fistulae in PA/IVS?', '45%–70% of patients with hypoplastic RV'],
],
'C00000'
),
pageBreak(),
// ── PAGE 5 ── MEMORY AIDS + FLOWCHARTS + LAST-MINUTE REVISION ───────────
h1('SECTION 9 — MEMORY AIDS & MNEMONICS'),
mnemonic('"TRIVS" — T: TV Z-score, R: RV morphology (1/2/3 parts), I: RVDCC present/absent, V: Valve type (membranous/muscular), S: Shunt type planned. Covers all key anatomy for staging.'),
mnemonic('"When TV is small, RV is small, RVDCC calls — go Fontan, not walls." (Unipartite/RVDCC → SV palliation)'),
mnemonic('"DEPRESS → DEATH if RVDCC": Decompressing RV in RVDCC causes coronary steal and death.'),
mnemonic('"PGE1 buys time, Cath draws the line" — PGE1 stabilizes; cath defines anatomy before surgery.'),
divider(),
h1('SECTION 10 — SUMMARY FLOWCHART: PA/IVS MANAGEMENT ALGORITHM'),
makeTable(
['Stage', 'Timing', 'Goal', 'Options'],
[
['NEONATE (Day 0–7)', 'Birth', 'Stabilize; secure pulmonary blood flow', 'PGE1 + assess RVDCC + balloon septostomy if ASD restrictive'],
['INITIAL PALLIATION (Day 1–7)', 'First week', 'Stable pulmonary BF + RV decompression if safe', 'BT Shunt / PDA Stent ± RF perforation / surgical valvotomy (if no RVDCC)'],
['REASSESSMENT (6–12 months)', 'After palliation', 'Trial occlusion of shunt + ASD to assess RV growth', 'Cardiac catheterization; RA pressure <15 mmHg = BV repair candidate'],
['DEFINITIVE REPAIR (12–24 months)', 'Based on anatomy', 'Achieve best possible circulatory separation', 'Biventricular / 1.5-Ventricle / Fontan path'],
['LONG-TERM (All)', 'Lifelong', 'Arrhythmia surveillance, valve assessment, reintervention', 'Annual cardiology follow-up; expect reinterventions in adults'],
],
'375623', 'FFFFFF'
),
divider(),
h1('SECTION 11 — LAST-MINUTE REVISION TABLE'),
makeTable(
['Topic', 'Key Fact'],
[
['Prevalence', '4–8 / 100,000 live births; 1%–3% of all CHD'],
['Definition', 'RVOTO + intact IVS — no VSD, no aortopulmonary collaterals'],
['Circulation type', 'Ductal-dependent (PDA-dependent) at birth'],
['TV Z-score cut-offs', '>−2 = mild (tripartite), −2 to −4 = moderate (bipartite), <−4 = severe (unipartite)'],
['Coronary fistulae prevalence', '45%–70% in hypoplastic RV; RVDCC in ~25%'],
['RVDCC: CPB trick', 'Bicaval + RA arterial cannulation; RV filled & beating'],
['Membranous vs Muscular atresia', 'Membranous 75% → catheter-friendly; Muscular 25% → surgical + worse prognosis'],
['PGE1 role', 'IMMEDIATE on diagnosis; maintain PDA; first-line neonatal Rx'],
['1st successful repair', 'Weinberg, 1962 — transventricular valvotomy'],
['RA pressure threshold', '<15 mmHg → BV repair feasible'],
['RVDCC + SV Fontan mortality', 'Cheung: 50% overall; 100% if ostial atresia'],
['10-year survival (biventricular)', '~87–90% (Schneider 2014; Elias series)'],
['Long-term arrhythmias (adults)', '80% atrial; 15% ventricular (Mayo Clinic 2012)'],
['TV paradox', 'Competent TV = higher RV pressure = more sinusoids = more RVDCC risk (paradoxically BAD)'],
['Biventricular repair predictors', 'TV Z ≥ −2, tripartite RV, no RVDCC, TR present'],
['1.5-V repair components', 'Bidirectional Glenn + RVOT patch + ASD closure (fenestrated if RA >15)'],
['Transcatheter vs surgical PDA', 'PDA stenting avoids sternotomy; BT shunt = surgical gold standard'],
['PA/IVS vs PA/VSD', 'PA/IVS: normal PAs, no MAPCA; PA/VSD: PA hypoplasia, MAPCAs, VSD'],
['Echo primary modality', 'TTE — defines TV/RV size, atresia type, ASD, PDA, fistulae'],
['CT/MRI role', 'PA anatomy detail; RV volume/function assessment; increasing postoperative role'],
],
'1F3864', 'FFFFFF'
),
divider(),
h2('QUICK SCENARIO DRILL (INI SS Pattern)'),
bullet('Neonate, day 2, cyanotic, SpO2 70%, ECG shows LV dominance, Echo: small RV, absent antegrade pulmonary flow, large PFO, no coronary filling on aortic root injection → Dx? Next step?', 'Q:'),
body('A: PA/IVS with RVDCC (no coronary filling from aorta = ostial atresia). DO NOT decompress RV. → PGE1 + BT shunt / PDA stent for pulmonary BF; plan Fontan pathway; CPB strategy: filled & beating with RA arterial cannulation.'),
body(''),
bullet('6-month-old with PA/IVS s/p BT shunt at birth, RV Z-score now −1.5, tripartite RV, no RVDCC. Catheterization: shunt occluded SpO2 94%, ASD occluded RA pressure 11 mmHg. Next?', 'Q:'),
body('A: Candidate for complete biventricular repair. Percutaneous ASD closure + shunt closure. Excellent prognosis.'),
body(''),
bullet('Same patient but ASD occlusion → RA pressure 19 mmHg. Next?', 'Q:'),
body('A: Not suitable for complete biventricular repair at this stage. Consider 1.5-ventricle repair (Glenn + RVOT reconstruction + fenestrated ASD closure).'),
divider(),
new Paragraph({
children: [
new TextRun({ text: 'Chapter 123 | PA/IVS High-Yield Notes | LaPar & Bacha | Prepared for INI SS / CVTS Board Prep', size: 16, color: '808080', italics: true }),
],
alignment: AlignmentType.CENTER,
spacing: { before: 200 },
}),
];
const doc = new Document({
creator: 'Orris AI',
title: 'PA/IVS High-Yield Teaching Notes - Chapter 123',
description: 'INI SS / CVTS Board Preparation Notes',
sections: [
{
properties: {
page: {
margin: { top: 720, bottom: 720, left: 900, right: 900 },
},
},
children,
},
],
numbering: {
config: [
{
reference: 'bullet-list',
levels: [
{
level: 0,
format: LevelFormat.BULLET,
text: '\u2022',
alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 360, hanging: 260 } } },
},
{
level: 1,
format: LevelFormat.BULLET,
text: '\u25E6',
alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 260 } } },
},
],
},
],
},
styles: {
default: {
document: {
run: { font: 'Calibri', size: 20 },
},
},
},
});
Packer.toBuffer(doc).then(buf => {
fs.writeFileSync('/home/daytona/workspace/INI_SS_CVTS_Ch123/PA_IVS_HighYield_Notes.docx', buf);
console.log('SUCCESS: File written.');
});
cd /home/daytona/workspace/INI_SS_CVTS_Ch123 && node make_notes.js 2>&1
python3 /home/daytona/workspace/INI_SS_CVTS_Ch123/../scripts/office/validate.py …
python3 -c " from zipfile import ZipFile zf = ZipFile('/home/daytona/workspace/I…
PA IVS HighYield Notes
Word Document · DOCX
25 MCQs from the chapter in the INI CET SS standard format single best answer, can have a paragraph questions, vignettes, image based questions, photographs with attributes. Source can be the internet as well. Make sure that the PDF has all 25 questions. creat this file also
PA/IVS pulmonary atresia intact ventricular septum INI SS MCQ cardiothoracic surgery exam questions
~/INI_SS_CVTS_Ch123/make_mcq_pdf.py
#!/usr/bin/env python3
"""
Generate a 25-MCQ PDF on PA/IVS (Chapter 123) in INI CET SS single-best-answer format.
Includes: vignettes, image-based (described), table-based, and direct factual questions.
Uses reportlab only.
"""
import textwrap
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import cm, mm
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.platypus.flowables import Flowable
OUTPUT = "/home/daytona/workspace/INI_SS_CVTS_Ch123/PA_IVS_25_MCQs_INI_SS.pdf"
# ── colour palette ────────────────────────────────────────────────────────────
DARK_BLUE = colors.HexColor("#1F3864")
MID_BLUE = colors.HexColor("#2E75B6")
RED = colors.HexColor("#C00000")
AMBER = colors.HexColor("#ED7D31")
GREEN = colors.HexColor("#375623")
LIGHT_YELLOW= colors.HexColor("#FFF2CC")
LIGHT_RED = colors.HexColor("#FFE4E4")
LIGHT_GREEN = colors.HexColor("#E2EFDA")
LIGHT_BLUE = colors.HexColor("#DEEAF1")
LIGHT_GREY = colors.HexColor("#F2F2F2")
WHITE = colors.white
BLACK = colors.black
# ── styles ────────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
TITLE_STYLE = S("Title2",
fontName="Helvetica-Bold", fontSize=18, textColor=WHITE,
alignment=TA_CENTER, leading=24, spaceAfter=4)
SUBTITLE_STYLE = S("Subtitle2",
fontName="Helvetica-Oblique", fontSize=11, textColor=WHITE,
alignment=TA_CENTER, leading=16, spaceAfter=2)
Q_NUM_STYLE = S("QNum",
fontName="Helvetica-Bold", fontSize=11, textColor=DARK_BLUE,
leading=14, spaceBefore=10, spaceAfter=2)
Q_TYPE_STYLE = S("QType",
fontName="Helvetica-Oblique", fontSize=9, textColor=AMBER,
leading=12, spaceAfter=4)
VIGNETTE_STYLE = S("Vignette",
fontName="Helvetica-Oblique", fontSize=10, textColor=colors.HexColor("#2C2C2C"),
leading=14, spaceAfter=4, leftIndent=8, rightIndent=8,
borderPad=6, borderColor=MID_BLUE, borderWidth=1, borderRadius=4,
backColor=LIGHT_BLUE)
QUESTION_STYLE = S("Question",
fontName="Helvetica-Bold", fontSize=10.5, textColor=BLACK,
leading=14, spaceAfter=6)
OPTION_STYLE = S("Option",
fontName="Helvetica", fontSize=10, textColor=BLACK,
leading=13, spaceAfter=2, leftIndent=16)
ANSWER_STYLE = S("Answer",
fontName="Helvetica-Bold", fontSize=10, textColor=GREEN,
leading=13, spaceAfter=2)
EXPLANATION_STYLE = S("Explanation",
fontName="Helvetica", fontSize=9.5, textColor=colors.HexColor("#333333"),
leading=13, spaceAfter=4, leftIndent=12)
PEARL_STYLE = S("Pearl",
fontName="Helvetica-Bold", fontSize=9.5, textColor=RED,
leading=13, spaceAfter=6, leftIndent=12)
IMAGE_DESC_STYLE = S("ImageDesc",
fontName="Helvetica-Oblique", fontSize=9.5, textColor=colors.HexColor("#444444"),
leading=13, spaceAfter=4, leftIndent=8, rightIndent=8,
backColor=LIGHT_GREY)
PAGE_NUM_STYLE = S("PageNum",
fontName="Helvetica", fontSize=8, textColor=colors.HexColor("#888888"),
alignment=TA_CENTER)
# ── MCQ DATA ──────────────────────────────────────────────────────────────────
# Each dict:
# q_type: "DIRECT" | "VIGNETTE" | "PARAGRAPH" | "IMAGE"
# vignette: (optional) clinical scenario text
# image_desc: (optional) description of image shown in exam
# question: question stem
# options: list of 4 strings (A–D)
# correct: "A" | "B" | "C" | "D"
# explanation: explanation text
# pearl: (optional) high-yield exam pearl
MCQS = [
# ── Q1 ─────────────────────────────────────────────────────────────────────
{
"q_type": "DIRECT",
"question": "What is the prevalence of Pulmonary Atresia with Intact Ventricular Septum (PA/IVS) in live births?",
"options": [
"A. 1–2 per 100,000 live births",
"B. 4–8 per 100,000 live births",
"C. 12–15 per 100,000 live births",
"D. 20–25 per 100,000 live births",
],
"correct": "B",
"explanation": "PA/IVS has a prevalence of approximately 4–8 per 100,000 live births and accounts for 1%–3% of all congenital cardiac defects. (LaPar & Bacha, Chapter 123)",
"pearl": "PA/IVS is RARE — do not confuse with critical PS (more common) or PA/VSD (different anatomy, different prognosis).",
},
# ── Q2 ─────────────────────────────────────────────────────────────────────
{
"q_type": "VIGNETTE",
"vignette": "A term male neonate is born at 39 weeks. At 6 hours of life, he develops progressive cyanosis (SpO2 68%), poor feeding, and increasing respiratory distress. Examination reveals a single S2, a soft pansystolic murmur at the left lower sternal border, and hepatomegaly. ECG shows left ventricular dominance with decreased anterior right ventricular forces.",
"question": "Which is the MOST APPROPRIATE immediate pharmacological intervention?",
"options": [
"A. Inhaled nitric oxide",
"B. Intravenous furosemide",
"C. Prostaglandin E1 (PGE1) infusion",
"D. Digoxin and captopril",
],
"correct": "C",
"explanation": "PA/IVS is a ductal-dependent lesion. As the PDA closes, pulmonary blood flow is lost. PGE1 immediately maintains PDA patency, restoring pulmonary blood flow and improving SpO2. This is the single most critical first step.",
"pearl": "In ANY cyanotic neonate with suspected ductal-dependent lesion — give PGE1 first, investigate second.",
},
# ── Q3 ─────────────────────────────────────────────────────────────────────
{
"q_type": "DIRECT",
"question": "Who is credited with performing the FIRST successful surgical repair of Pulmonary Atresia with Intact Ventricular Septum (PA/IVS)?",
"options": [
"A. Alfred Blalock (1945)",
"B. Weinberg (1962) — transventricular valvotomy",
"C. Fontan and Baudet (1971)",
"D. Hanley et al. (1993)",
],
"correct": "B",
"explanation": "Weinberg is credited with the first successful surgical repair of PA/IVS using transventricular valvotomy in 1962. Blalock performed the BT shunt for TOF in 1945. Fontan described the Fontan procedure in 1971.",
"pearl": "Historical milestone questions are high-yield in INI SS — Weinberg 1962, transventricular valvotomy.",
},
# ── Q4 ─────────────────────────────────────────────────────────────────────
{
"q_type": "PARAGRAPH",
"vignette": "The echocardiogram of a neonate with suspected PA/IVS demonstrates a tricuspid valve (TV) annulus Z-score of −5. The right ventricle appears severely hypoplastic with no identifiable infundibular cavity. No antegrade flow is seen across the pulmonary valve.",
"question": "Based on the TV Z-score and RV morphology, which of the following BEST describes this patient's RV anatomy and most likely repair pathway?",
"options": [
"A. Tripartite RV; biventricular repair is likely achievable",
"B. Bipartite RV; 1.5-ventricle repair is the most likely outcome",
"C. Unipartite RV; single-ventricle (Fontan) palliation is most likely",
"D. Tripartite RV with RVDCC absent; biventricular repair is contraindicated",
],
"correct": "C",
"explanation": "TV Z-score <−4 correlates with a unipartite RV (severely hypoplastic, no identifiable infundibular outlet). These patients most commonly proceed through the Fontan single-ventricle palliation pathway. TV Z >−2 = tripartite = biventricular candidate; Z −2 to −4 = bipartite = 1.5-V candidate.",
"pearl": "TV Z-score <−4 = unipartite = Fontan. TV Z >−2 = tripartite = biventricular. The Z-score is the SINGLE most important anatomical predictor.",
},
# ── Q5 ─────────────────────────────────────────────────────────────────────
{
"q_type": "IMAGE",
"image_desc": "IMAGE VIGNETTE: The cardiac catheterization angiogram below shows selective RIGHT VENTRICULAR injection. The image demonstrates filling of the right coronary artery (RCA) and left coronary artery (LCA) retrogradely from the right ventricular cavity. No coronary artery filling is seen on aortic root injection. The right ventricle is severely hypoplastic.",
"question": "What does this angiographic finding represent, and what is the PRIMARY surgical implication?",
"options": [
"A. RV–coronary fistulae without stenosis; RV decompression is safe and recommended",
"B. Normal coronary anatomy; proceed with biventricular repair",
"C. Right Ventricular–Dependent Coronary Circulation (RVDCC); RV decompression is absolutely contraindicated",
"D. Coronary cameral fistulae without RVDCC; coronary ligation is curative",
],
"correct": "C",
"explanation": "Absence of coronary filling from aortic root injection + filling only from RV injection = RVDCC (coronary ostial atresia). The coronary supply is entirely dependent on retrograde flow from the hypertensive RV. Decompressing the RV (removing the driving pressure) causes coronary steal, ischemia, and sudden death. RVDCC is an ABSOLUTE contraindication to RV decompression.",
"pearl": "RVDCC = no coronary filling from aortic root. This is the most dangerous subset of PA/IVS. 100% mortality with ostial atresia on single-ventricle palliation (Cheung 2014).",
},
# ── Q6 ─────────────────────────────────────────────────────────────────────
{
"q_type": "DIRECT",
"question": "In PA/IVS, what percentage of patients develop Right Ventricular–Dependent Coronary Circulation (RVDCC)?",
"options": [
"A. ~5%",
"B. ~10%",
"C. ~25%",
"D. ~50%",
],
"correct": "C",
"explanation": "Approximately 25% of PA/IVS patients develop RVDCC, defined as coronary blood flow that is partially or completely dependent on retrograde flow from the RV. Coronary sinusoidal fistulae are present in 45–70% of patients with hypoplastic RV, but full RVDCC (with ostial stenosis or atresia) occurs in ~25%.",
},
# ── Q7 ─────────────────────────────────────────────────────────────────────
{
"q_type": "VIGNETTE",
"vignette": "A 3-day-old neonate with confirmed PA/IVS is undergoing cardiac catheterization. The right ventricular pressure measures 110 mmHg (suprasystemic). The coronary angiogram demonstrates fistulous communications from the RV to the right coronary artery, with a tight proximal stenosis of the RCA just distal to the fistula origin. Aortic root injection shows faint but present coronary filling.",
"question": "Which coronary anatomy type does this represent, and what is the preferred management strategy for pulmonary blood flow?",
"options": [
"A. Type B (fistulae without stenosis); proceed with RV decompression + BT shunt",
"B. Type C (fistulae with coronary stenosis); establish pulmonary blood flow with BT shunt/PDA stent WITHOUT RV decompression",
"C. Type D (RVDCC with ostial atresia); emergent coronary bypass required",
"D. Normal anatomy; RF perforation of pulmonary valve is first-line",
],
"correct": "B",
"explanation": "Type C pattern: RV-to-coronary fistulae WITH proximal/distal coronary stenosis. Aortic root injection shows some (not absent) coronary filling — this is NOT full RVDCC but still carries high risk of ischemia if RV pressure is suddenly dropped. Management: secure pulmonary blood flow (BT shunt or PDA stent) WITHOUT RV decompression until further evaluation. RV decompression could precipitate ischemia through steal via the stenotic coronary.",
"pearl": "Type B = fistulae without stenosis (RV steal risk). Type C = fistulae WITH stenosis (ischemia risk). Type D = RVDCC (death if decompressed). Only Type A and Type B without severe steal may tolerate decompression.",
},
# ── Q8 ─────────────────────────────────────────────────────────────────────
{
"q_type": "DIRECT",
"question": "Which RIGHT VENTRICULAR morphology is present in 60%–80% of patients with PA/IVS and is associated with the BEST surgical prognosis?",
"options": [
"A. Unipartite RV (inlet only)",
"B. Bipartite RV (inlet + trabecular body)",
"C. Tripartite RV (inlet + trabecular body + infundibular outlet)",
"D. Hypoplastic RV with suprasystemic pressure and intact TV",
],
"correct": "C",
"explanation": "A tripartite RV, with all three components present (inlet, trabecular body, and infundibular outlet), is found in 60–80% of PA/IVS patients and carries the best prognosis, most often allowing biventricular repair. Unipartite RV is associated with the worst prognosis and RVDCC.",
},
# ── Q9 ─────────────────────────────────────────────────────────────────────
{
"q_type": "PARAGRAPH",
"vignette": "A neonatal cardiology team is planning initial palliation for a PA/IVS patient with membranous pulmonary valve atresia. The TV Z-score is −1.5 (near normal), the RV is tripartite, and there is no RVDCC on coronary angiography. The team is deciding between transcatheter radiofrequency (RF) wire perforation with balloon valvuloplasty versus surgical pulmonary valvotomy.",
"question": "Regarding the transcatheter approach in this setting — which of the following statements is MOST ACCURATE?",
"options": [
"A. RF perforation is contraindicated; only surgical valvotomy is safe for membranous atresia",
"B. RF perforation + balloon valvuloplasty is an accepted first-line approach for membranous PA/IVS without RVDCC and is associated with RV growth promotion",
"C. RF perforation is reserved for muscular atresia where the infundibulum is obliterated",
"D. Transcatheter approach is only available in adult patients; surgical approach is mandatory in neonates",
],
"correct": "B",
"explanation": "For membranous PA/IVS without RVDCC, transcatheter RF wire perforation followed by balloon pulmonary valvuloplasty is an accepted and increasingly preferred first-line approach at experienced centers. It avoids sternotomy, allows RV decompression, and promotes TV and RV growth over time. RF perforation is NOT applicable to muscular atresia (no identifiable valve membrane to perforate).",
"pearl": "Membranous atresia = catheter candidate (RF perforation). Muscular atresia = surgical route only.",
},
# ── Q10 ────────────────────────────────────────────────────────────────────
{
"q_type": "IMAGE",
"image_desc": "IMAGE VIGNETTE: The diagram below illustrates the 1.5-ventricle repair for PA/IVS. It shows: (1) a bidirectional Glenn shunt connecting the superior vena cava directly to the right pulmonary artery; (2) a transannular pericardial patch reconstructing the right ventricular outflow tract; and (3) a small 4-mm fenestrated atrial septal defect.",
"question": "A patient with PA/IVS underwent initial palliation with a modified BT shunt and RF pulmonary valve perforation at birth. At follow-up catheterization (age 9 months), trial occlusion of the ASD causes the right atrial pressure to rise to 22 mmHg. The RV TV Z-score is now −2.8. Which repair is MOST appropriate?",
"options": [
"A. Complete biventricular repair with full ASD closure",
"B. 1.5-ventricle repair (bidirectional Glenn + RVOT reconstruction + fenestrated ASD closure)",
"C. Fontan completion immediately",
"D. Continue with BT shunt; re-evaluate at 2 years",
],
"correct": "B",
"explanation": "TV Z-score of −2.8 (bipartite RV range) + RA pressure rising to 22 mmHg on ASD occlusion (>15 mmHg threshold) = the RV cannot fully support systemic venous return. This patient is a 1.5-ventricle repair candidate. The bidirectional Glenn offloads SVC flow directly to the PA while the RVOT handles IVC-derived right heart flow. Fenestration (~4 mm) is left because RA pressure exceeds 15 mmHg.",
"pearl": "1.5-V repair threshold: RA pressure >15 mmHg on ASD occlusion trial = cannot do full BV repair → go 1.5-V. RA <15 mmHg = proceed to complete biventricular repair.",
},
# ── Q11 ────────────────────────────────────────────────────────────────────
{
"q_type": "DIRECT",
"question": "In a patient with PA/IVS and RVDCC undergoing cardiopulmonary bypass (CPB), which UNIQUE cannulation strategy is employed to prevent myocardial ischemia?",
"options": [
"A. Aortic cannulation + single right atrial venous cannulation; heart arrested and emptied",
"B. Bicaval venous cannulation (snared) + right atrial arterial cannulation; RV kept filled and beating",
"C. Axillary artery cannulation + femoral venous drainage; deep hypothermic circulatory arrest",
"D. Left ventricular venting via apex + standard aortic cannulation",
],
"correct": "B",
"explanation": "In RVDCC, the coronary circulation depends on retrograde perfusion from the hypertensive RV. Standard CPB with an empty, decompressed heart would eliminate RV filling pressure, causing coronary steal and ischemia. Strategy: bicaval venous cannulation (snared) + arterial cannulation of the RIGHT ATRIUM to maintain oxygenated preload to the RV, keeping the RV filled and beating throughout bypass. Repair is performed on a beating, filled heart.",
"pearl": "RVDCC + CPB = 'Filled and Beating' RV strategy. This is a classic INI SS operative detail — arterial cannula goes into the RIGHT ATRIUM.",
},
# ── Q12 ────────────────────────────────────────────────────────────────────
{
"q_type": "PARAGRAPH",
"vignette": "A series of 60 PA/IVS patients was reported by Schneider et al. (2014). Patients underwent a combination of biventricular and single-ventricle repairs based on anatomy. Key outcome data were published.",
"question": "According to the landmark Schneider 2014 series referenced in Chapter 123, what was the reported SURVIVAL RATE at 10 years follow-up for PA/IVS patients?",
"options": [
"A. 55%",
"B. 70%",
"C. 87%",
"D. 97%",
],
"correct": "C",
"explanation": "Schneider and colleagues (2014) reported an 87% survival rate at 10 years follow-up in a series of 60 PA/IVS patients (cited in Chapter 123, LaPar & Bacha). The 97% figure at 1-year is from the Zheng 2016 series for single-stage repairs.",
},
# ── Q13 ────────────────────────────────────────────────────────────────────
{
"q_type": "VIGNETTE",
"vignette": "A neonate with PA/IVS undergoes initial palliation (modified BT shunt + RV decompression). Follow-up catheterization at 8 months shows: SpO2 = 96% on shunt occlusion, RA pressure = 11 mmHg on ASD trial occlusion, tripartite RV, no RVDCC. The ASD measures 8 mm on echocardiogram.",
"question": "What is the MOST APPROPRIATE next step for definitive management?",
"options": [
"A. Continue current palliation; reassess at 2 years",
"B. Fontan completion at this catheterization",
"C. Percutaneous ASD device closure + systemic-PA shunt closure (complete biventricular repair)",
"D. Bidirectional Glenn + fenestrated ASD closure (1.5-ventricle repair)",
],
"correct": "C",
"explanation": "This patient meets all criteria for complete biventricular repair: TV Z ≥ −2 (implied tripartite RV + good Z-score), no RVDCC, adequate SpO2 on shunt occlusion, and RA pressure <15 mmHg on ASD trial occlusion. Most ASDs in this setting are amenable to percutaneous closure. The systemic-PA shunt is simultaneously closed during the same catheterization session.",
"pearl": "RA pressure <15 mmHg on ASD occlusion = go for complete biventricular repair percutaneously. This is the Chapter 123 institutional protocol.",
},
# ── Q14 ────────────────────────────────────────────────────────────────────
{
"q_type": "DIRECT",
"question": "What is the PARADOXICAL relationship between tricuspid valve competence and RVDCC risk in PA/IVS?",
"options": [
"A. Severe TR reduces RV pressure → less sinusoidal formation → lower RVDCC risk",
"B. A competent TV reduces RV pressure → more sinusoidal formation → higher RVDCC risk",
"C. A competent TV increases left atrial volume overload → pulmonary hypertension",
"D. TV regurgitation is the primary cause of RVDCC through volume overload of the RV",
],
"correct": "A",
"explanation": "Significant tricuspid regurgitation (TR) allows decompression of the RV through retrograde flow into the right atrium, thereby REDUCING RV pressure. Lower RV pressure means fewer sinusoidal communications persist, and therefore LOWER RVDCC risk. A COMPETENT TV (option B describes this incorrectly — actually competent TV leads to HIGH RV pressure, MORE sinusoids, and HIGHER RVDCC risk). Option A correctly states the paradox: severe TR → lower RV pressure → less RVDCC.",
"pearl": "Paradox: Competent TV in PA/IVS is BAD (high RV pressure → RVDCC). TR in PA/IVS is relatively PROTECTIVE (decompresses RV).",
},
# ── Q15 ────────────────────────────────────────────────────────────────────
{
"q_type": "DIRECT",
"question": "Which of the following echocardiographic parameters is MOST USEFUL as a predictor of biventricular repair eligibility in PA/IVS?",
"options": [
"A. Left ventricular ejection fraction",
"B. Tricuspid valve annulus Z-score",
"C. Main pulmonary artery diameter Z-score",
"D. Right atrial area on apical four-chamber view",
],
"correct": "B",
"explanation": "The tricuspid valve (TV) annulus Z-score is the single most cited and used predictor for biventricular repair eligibility. TV Z ≥ −2 is associated with tripartite RV and good likelihood of biventricular repair. Multiple studies including Hanley et al. (1993) and Cleuziou et al. (2010) confirm this. While not perfect, it remains the primary anatomical metric.",
},
# ── Q16 ────────────────────────────────────────────────────────────────────
{
"q_type": "IMAGE",
"image_desc": "IMAGE VIGNETTE: The chest X-ray of a 2-day-old cyanotic neonate shows a MARKEDLY ENLARGED cardiac silhouette ('wall-to-wall heart'), with reduced pulmonary vascular markings. The cardiac contour resembles that seen in Ebstein anomaly. No rib notching is present.",
"question": "In the context of PA/IVS, which anatomical feature is MOST responsible for this radiological appearance?",
"options": [
"A. Severe left ventricular dilation from Qp:Qs overload",
"B. Massive right atrial and right ventricular enlargement due to severe tricuspid regurgitation",
"C. Pericardial effusion complicating ductal closure",
"D. Bilateral pleural effusions from right heart failure",
],
"correct": "B",
"explanation": "In PA/IVS patients with severe tricuspid regurgitation, the enormous right atrial and right ventricular dilation produces a massively enlarged cardiac silhouette on CXR — similar to Ebstein anomaly. The Chapter notes: 'In cases of severe tricuspid regurgitation, a very large cardiac silhouette may be present due to right atrial and/or right ventricular enlargement similar to that in Ebstein anomaly.' Pulmonary vascularity is REDUCED (not increased) due to impaired pulmonary blood flow.",
"pearl": "CXR in PA/IVS with severe TR = 'Ebstein-like' massively enlarged heart + reduced pulmonary vascularity.",
},
# ── Q17 ────────────────────────────────────────────────────────────────────
{
"q_type": "DIRECT",
"question": "In PA/IVS, muscular pulmonary atresia (approximately 25% of cases) is characterized by which of the following?",
"options": [
"A. Intact but fused pulmonary valve leaflets forming a thin membrane across the annulus",
"B. Complete obliteration of the muscular infundibulum, commonly associated with severe RV hypoplasia and RVDCC",
"C. Dilation of the main pulmonary artery with post-stenotic changes",
"D. Absent pulmonary valve syndrome with severe pulmonary regurgitation",
],
"correct": "B",
"explanation": "Muscular atresia represents complete obliteration of the muscular infundibulum. It is more commonly associated with severe RV hypoplasia AND coronary artery anomalies including RVDCC. In contrast, membranous atresia (~75%) has identifiable (even if fused/dysplastic) leaflets and is more amenable to catheter-based perforation.",
},
# ── Q18 ────────────────────────────────────────────────────────────────────
{
"q_type": "PARAGRAPH",
"vignette": "Cheung and colleagues (Ann Thorac Surg, 2014) published a landmark study on the influence of coronary anatomy on single-ventricle outcomes in PA/IVS. Their series included patients with and without RVDCC who underwent Fontan palliation.",
"question": "According to the data cited in Chapter 123 regarding the Cheung 2014 study — what was the reported mortality rate for PA/IVS patients with RVDCC AND coronary ostial atresia undergoing single-ventricle (Fontan pathway) palliation?",
"options": [
"A. 25% mortality",
"B. 50% mortality overall for RVDCC; 100% for those with coronary ostial atresia",
"C. 87% 10-year survival",
"D. 15% early mortality; 75% 5-year survival",
],
"correct": "B",
"explanation": "Cheung et al. (2014) documented a 50% overall mortality rate for patients with RVDCC. Critically, for the subset with RVDCC and coronary ostial atresia (most severe form), mortality was 100% with single-ventricle palliation. This is the most cited landmark outcome statistic for RVDCC in PA/IVS.",
"pearl": "Cheung 2014: RVDCC overall = 50% mortality; RVDCC + ostial atresia = 100% mortality. These numbers MUST be memorized for INI SS.",
},
# ── Q19 ────────────────────────────────────────────────────────────────────
{
"q_type": "VIGNETTE",
"vignette": "An adult patient (age 32) presents to a congenital heart disease clinic. History reveals repair of PA/IVS in infancy with a modified BT shunt followed by biventricular repair at age 14 months. Current complaints: palpitations and exertional dyspnoea. 12-lead ECG shows atrial flutter. Echocardiogram reveals moderate tricuspid regurgitation with preserved RV function.",
"question": "Based on published long-term outcome data for adult PA/IVS survivors (Mayo Clinic series, John & Warnes 2012), which statement BEST describes the expected long-term course?",
"options": [
"A. Adult survivors of PA/IVS biventricular repair rarely require reintervention; atrial arrhythmias are uncommon",
"B. All adult survivors in the Mayo Clinic series required reintervention; atrial arrhythmias occurred in 80% of patients",
"C. Long-term outcomes are excellent; ventricular arrhythmias are the dominant problem in >60% of adults",
"D. Single-ventricle Fontan patients had better arrhythmia outcomes than those with biventricular repair",
],
"correct": "B",
"explanation": "John and Warnes (2012, Mayo Clinic) reported that ALL 20 adult PA/IVS survivors required reintervention. Atrial arrhythmias occurred in 80% (highest in the Fontan group). Ventricular arrhythmias were present in 15%. Reinterventions were most common in biventricular repair patients, predominantly valve replacements (PV, TV, MV).",
},
# ── Q20 ────────────────────────────────────────────────────────────────────
{
"q_type": "DIRECT",
"question": "Which of the following correctly differentiates PA/IVS from Pulmonary Atresia with VSD (PA/VSD)?",
"options": [
"A. PA/IVS has MAPCAs; PA/VSD does not",
"B. PA/IVS has normal branch pulmonary arteries and no VSD; PA/VSD has PA hypoplasia, MAPCAs, and a VSD",
"C. Both conditions are always ductal-dependent; the only difference is RV size",
"D. PA/VSD has a competent tricuspid valve; PA/IVS has obligate tricuspid atresia",
],
"correct": "B",
"explanation": "PA/IVS: intact septum (no VSD), usually normal-sized branch PAs, no MAPCAs, RV hypoplasia is the dominant issue. PA/VSD: VSD is present, pulmonary arteries are often significantly hypoplastic, MAPCAs (major aortopulmonary collateral arteries) are common and characteristic. This distinction drives completely different surgical approaches.",
"pearl": "PA/IVS = normal PAs + no MAPCAs + no VSD. PA/VSD = MAPCAs + PA hypoplasia + VSD. These are different diseases.",
},
# ── Q21 ────────────────────────────────────────────────────────────────────
{
"q_type": "PARAGRAPH",
"vignette": "A neonatal intensive care unit is managing a PA/IVS patient awaiting surgical palliation. The neonate is on PGE1 and SpO2 is 82% on room air. The echocardiogram shows a moderately restrictive foramen ovale with a mean gradient of 8 mmHg across the atrial septum.",
"question": "What intervention is indicated for the atrial septal anatomy in this patient?",
"options": [
"A. No intervention needed; 8 mmHg gradient is acceptable in PA/IVS",
"B. Surgical ASD creation via median sternotomy on CPB",
"C. Balloon atrial septostomy (Rashkind procedure) via cardiac catheterization to relieve restriction",
"D. Blade atrial septostomy; balloon septostomy is contraindicated in neonates",
],
"correct": "C",
"explanation": "In PA/IVS, an unrestricted atrial-level right-to-left shunt is required for systemic output (the RV cannot eject forward through the atretic PV, so blood must exit via the ASD/PFO). A restrictive ASD (gradient ≥3–5 mmHg) limits RV decompression and systemic output. Balloon atrial septostomy (Rashkind) is the standard catheter-based intervention and can be performed at the time of diagnostic catheterization. Blade septostomy is used when the atrial septum is too thick for balloon dilation alone.",
"pearl": "PA/IVS requires an UNRESTRICTED ASD for survival — if restrictive, balloon atrial septostomy is the next step, not watchful waiting.",
},
# ── Q22 ────────────────────────────────────────────────────────────────────
{
"q_type": "IMAGE",
"image_desc": "IMAGE VIGNETTE: The diagram shows a cross-sectional illustration of the 4-chamber cardiac anatomy in PA/IVS. Key features labelled: (1) Absent pulmonary valve orifice; (2) Intact interventricular septum; (3) Patent foramen ovale with right-to-left shunt (arrows); (4) Patent ductus arteriosus from aorta → pulmonary artery (arrows); (5) Dilated right atrium; (6) Small, thick-walled right ventricle.",
"question": "The pathophysiology depicted in this diagram is best summarized as:",
"options": [
"A. Parallel circulation with equal mixing at the atrial and ductal levels",
"B. RVOTO → suprasystemic RV pressure → TR + right-to-left ASD shunt (systemic output) → PDA (only pulmonary blood flow source)",
"C. Bi-directional shunting at VSD level → Eisenmenger physiology",
"D. Left-to-right shunt at ASD → RV volume overload → pulmonary overcirculation",
],
"correct": "B",
"explanation": "The diagram illustrates the hallmark PA/IVS physiology: RVOTO → RV cannot eject forward → suprasystemic RV pressure → blood exits RV only via TR + right-to-left ASD/PFO shunt (providing systemic cardiac output via RA → LA → LV → aorta) → PDA is the ONLY source of pulmonary blood flow. There is NO VSD in PA/IVS.",
},
# ── Q23 ────────────────────────────────────────────────────────────────────
{
"q_type": "VIGNETTE",
"vignette": "A 5-year-old child with a history of PA/IVS underwent initial neonatal palliation with a BT shunt followed by a bidirectional Glenn (SVC → PA) at 4 months. Now the cardiac surgeon plans Fontan completion. Pre-Fontan catheterization shows: mean PA pressure 12 mmHg, PVR 1.8 WU·m², good biventricular function, no RVDCC.",
"question": "Which of the following Fontan circuit configurations is MOST commonly used in the current era for Fontan completion in PA/IVS?",
"options": [
"A. Classic (atriopulmonary) Fontan connection",
"B. Lateral tunnel (intra-atrial) Fontan",
"C. Extracardiac conduit Fontan (IVC → PA via PTFE conduit)",
"D. Total cavopulmonary connection without a conduit (direct IVC–PA anastomosis)",
],
"correct": "C",
"explanation": "The extracardiac conduit Fontan (IVC → PA via PTFE conduit, typically 18–20 mm) is the most widely used approach in the current era due to its reproducibility, lower arrhythmia risk compared to the atriopulmonary connection, easier re-do access, and avoidance of atrial suture lines. The lateral tunnel is also acceptable but involves intra-atrial manipulation. The classic atriopulmonary Fontan is largely abandoned due to high long-term arrhythmia and thromboembolic complications.",
},
# ── Q24 ────────────────────────────────────────────────────────────────────
{
"q_type": "DIRECT",
"question": "Which of the following is the PRIMARY diagnostic modality for establishing the diagnosis of PA/IVS and characterizing the TV, RV, and coronary anatomy in the neonatal period?",
"options": [
"A. Computed tomography angiography (CTA)",
"B. Cardiac magnetic resonance imaging (CMR)",
"C. Transthoracic echocardiography (TTE) with colour flow and Doppler",
"D. Diagnostic cardiac catheterization",
],
"correct": "C",
"explanation": "Chapter 123 explicitly states: 'TTE with color flow and Doppler techniques serves as the PRIMARY diagnostic modality in establishing a diagnosis of PA/IVS.' It characterizes TV size, RV morphology, atresia type, ASD/PFO, PDA, and can identify coronary fistulae. Cardiac catheterization with coronary angiography is ESSENTIAL but is done AFTER TTE — particularly to confirm or exclude RVDCC before any surgical decision.",
"pearl": "TTE = primary modality. Cardiac cath with coronary angiography = mandatory before RV decompression. CT/MRI = adjunct for complex anatomy.",
},
# ── Q25 ────────────────────────────────────────────────────────────────────
{
"q_type": "PARAGRAPH",
"vignette": "The following table summarizes 4 patients with PA/IVS evaluated at your center:\n\nPt 1: TV Z = −1.0 | RV = Tripartite | RVDCC = No | RA pressure on ASD occlusion = 10 mmHg\nPt 2: TV Z = −3.2 | RV = Bipartite | RVDCC = No | RA pressure on ASD occlusion = 18 mmHg\nPt 3: TV Z = −5.1 | RV = Unipartite | RVDCC = Yes (ostial atresia) | RA pressure = N/A\nPt 4: TV Z = −2.0 | RV = Tripartite | RVDCC = No | RA pressure on ASD occlusion = 13 mmHg",
"question": "Matching patients to the MOST APPROPRIATE definitive repair — which of the following correctly assigns all 4 patients?",
"options": [
"A. Pt1=Fontan, Pt2=BV, Pt3=1.5V, Pt4=BV",
"B. Pt1=BV repair, Pt2=1.5V repair, Pt3=Fontan (with RVDCC-specific CPB), Pt4=BV repair",
"C. Pt1=BV repair, Pt2=BV repair, Pt3=Fontan, Pt4=1.5V repair",
"D. Pt1=1.5V repair, Pt2=Fontan, Pt3=1.5V repair, Pt4=BV repair",
],
"correct": "B",
"explanation": (
"Pt1: TV Z −1.0 (>−2), tripartite, no RVDCC, RA <15 mmHg → BIVENTRICULAR REPAIR. "
"Pt2: TV Z −3.2 (−2 to −4), bipartite, no RVDCC, RA 18 mmHg (>15 mmHg) → 1.5-VENTRICLE REPAIR (Glenn + RVOT patch + fenestrated ASD). "
"Pt3: TV Z −5.1 (<−4), unipartite, RVDCC with ostial atresia → FONTAN PATHWAY; RVDCC-specific CPB (filled & beating) must be used for any surgical step. "
"Pt4: TV Z −2.0 (≥−2), tripartite, no RVDCC, RA 13 mmHg (<15 mmHg) → BIVENTRICULAR REPAIR."
),
"pearl": "The repair algorithm: TV Z >−2 + RA <15 = BV. TV Z −2 to −4 + RA >15 = 1.5V. TV Z <−4 + RVDCC = Fontan. Master this table.",
},
] # end MCQS
# ── PDF BUILDER ───────────────────────────────────────────────────────────────
def build_pdf():
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=1.8*cm, rightMargin=1.8*cm,
topMargin=1.8*cm, bottomMargin=2.2*cm,
title="PA/IVS — 25 INI CET SS MCQs",
author="Orris AI",
)
story = []
# ── Cover block ──────────────────────────────────────────────────────────
cover_data = [[
Paragraph("CHAPTER 123 — PULMONARY ATRESIA WITH INTACT VENTRICULAR SEPTUM", TITLE_STYLE)
]]
cover_tbl = Table(cover_data, colWidths=[doc.width])
cover_tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), DARK_BLUE),
('TOPPADDING', (0,0), (-1,-1), 14),
('BOTTOMPADDING', (0,0), (-1,-1), 6),
('LEFTPADDING', (0,0), (-1,-1), 10),
('RIGHTPADDING', (0,0), (-1,-1), 10),
('ROUNDEDCORNERS', [6]),
]))
story.append(cover_tbl)
sub_data = [[
Paragraph("25 Single Best Answer Questions | INI CET SS / CVTS Board Format | LaPar & Bacha, Chapter 123", SUBTITLE_STYLE)
]]
sub_tbl = Table(sub_data, colWidths=[doc.width])
sub_tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), MID_BLUE),
('TOPPADDING', (0,0), (-1,-1), 8),
('BOTTOMPADDING', (0,0), (-1,-1), 8),
('LEFTPADDING', (0,0), (-1,-1), 10),
('RIGHTPADDING', (0,0), (-1,-1), 10),
]))
story.append(sub_tbl)
story.append(Spacer(1, 0.4*cm))
# ── Instructions ─────────────────────────────────────────────────────────
inst_text = (
"<b>INSTRUCTIONS:</b> Each question has ONE best answer. Questions include direct factual, "
"clinical vignettes, paragraph-based, and image-vignette formats. Answers and explanations "
"appear after each question. All questions are based on Chapter 123 (LaPar & Bacha) "
"with additional clinical context from published literature."
)
inst_style = ParagraphStyle("Inst", fontName="Helvetica", fontSize=9, textColor=colors.HexColor("#333333"),
leading=13, leftIndent=8, rightIndent=8, spaceBefore=4, spaceAfter=8,
borderPad=6, borderColor=MID_BLUE, borderWidth=0.5, backColor=LIGHT_BLUE)
story.append(Paragraph(inst_text, inst_style))
story.append(HRFlowable(width="100%", thickness=1.5, color=DARK_BLUE))
story.append(Spacer(1, 0.3*cm))
# ── Questions ─────────────────────────────────────────────────────────────
type_labels = {
"DIRECT": "DIRECT FACTUAL",
"VIGNETTE": "CLINICAL VIGNETTE",
"PARAGRAPH": "PARAGRAPH / DATA-BASED",
"IMAGE": "IMAGE / VISUAL VIGNETTE",
}
type_colors = {
"DIRECT": DARK_BLUE,
"VIGNETTE": GREEN,
"PARAGRAPH": AMBER,
"IMAGE": RED,
}
for i, q in enumerate(MCQS):
elems = []
# Q number + type badge
badge_style = ParagraphStyle("Badge",
fontName="Helvetica-Bold", fontSize=9, textColor=WHITE,
alignment=TA_CENTER)
qnum_para = Paragraph(f"Q{i+1}", ParagraphStyle("QN",
fontName="Helvetica-Bold", fontSize=13, textColor=DARK_BLUE, leading=16))
q_type_key = q.get("q_type","DIRECT")
badge_text = type_labels.get(q_type_key, q_type_key)
badge_para = Paragraph(badge_text, ParagraphStyle("Bdg",
fontName="Helvetica-Bold", fontSize=8, textColor=WHITE, alignment=TA_CENTER))
badge_bg = type_colors.get(q_type_key, DARK_BLUE)
header_tbl = Table(
[[qnum_para, badge_para]],
colWidths=[1.2*cm, doc.width - 1.2*cm]
)
header_tbl.setStyle(TableStyle([
('BACKGROUND', (1,0), (1,0), badge_bg),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('LEFTPADDING', (1,0), (1,0), 8),
('RIGHTPADDING', (1,0), (1,0), 8),
('TOPPADDING', (0,0), (-1,-1), 4),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
('BACKGROUND', (0,0), (0,0), LIGHT_GREY),
('ROUNDEDCORNERS', [4]),
]))
elems.append(header_tbl)
elems.append(Spacer(1, 0.15*cm))
# Vignette / image description
if q.get("vignette"):
elems.append(Paragraph(q["vignette"], VIGNETTE_STYLE))
elems.append(Spacer(1, 0.1*cm))
if q.get("image_desc"):
img_style = ParagraphStyle("ImgDesc",
fontName="Helvetica-Oblique", fontSize=9.5, textColor=colors.HexColor("#333333"),
leading=13, spaceAfter=4, leftIndent=8, rightIndent=8,
backColor=LIGHT_GREY)
# Box
img_box = Table([[Paragraph(q["image_desc"], img_style)]],
colWidths=[doc.width])
img_box.setStyle(TableStyle([
('BOX', (0,0), (-1,-1), 1, RED),
('LEFTPADDING', (0,0), (-1,-1), 8),
('RIGHTPADDING', (0,0), (-1,-1), 8),
('TOPPADDING', (0,0), (-1,-1), 6),
('BOTTOMPADDING', (0,0), (-1,-1), 6),
('BACKGROUND', (0,0), (-1,-1), LIGHT_GREY),
]))
elems.append(img_box)
elems.append(Spacer(1, 0.1*cm))
# Question stem
elems.append(Paragraph(q["question"], QUESTION_STYLE))
# Options
for opt in q["options"]:
letter = opt[0]
is_correct = (letter == q["correct"])
if is_correct:
opt_style = ParagraphStyle("CorrectOpt",
fontName="Helvetica-Bold", fontSize=10, textColor=GREEN,
leading=13, leftIndent=16, spaceAfter=2)
else:
opt_style = OPTION_STYLE
elems.append(Paragraph(opt, opt_style))
elems.append(Spacer(1, 0.15*cm))
# Answer box
ans_data = [[
Paragraph(f"✔ ANSWER: {q['correct']}", ParagraphStyle("AnsLabel",
fontName="Helvetica-Bold", fontSize=10, textColor=GREEN)),
]]
ans_tbl = Table(ans_data, colWidths=[doc.width])
ans_tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), LIGHT_GREEN),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
('LEFTPADDING', (0,0), (-1,-1), 10),
('BOX', (0,0), (-1,-1), 1, GREEN),
]))
elems.append(ans_tbl)
# Explanation
elems.append(Paragraph("<b>Explanation:</b> " + q["explanation"], EXPLANATION_STYLE))
# Pearl
if q.get("pearl"):
pearl_style = ParagraphStyle("PearlBox",
fontName="Helvetica-Bold", fontSize=9.5, textColor=RED,
leading=13, leftIndent=12, spaceAfter=6,
backColor=LIGHT_YELLOW)
pearl_tbl = Table([[Paragraph("★ EXAM PEARL: " + q["pearl"], pearl_style)]],
colWidths=[doc.width])
pearl_tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), LIGHT_YELLOW),
('BOX', (0,0), (-1,-1), 1, AMBER),
('LEFTPADDING', (0,0), (-1,-1), 8),
('RIGHTPADDING', (0,0), (-1,-1), 8),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
]))
elems.append(pearl_tbl)
# Divider
elems.append(Spacer(1, 0.2*cm))
elems.append(HRFlowable(width="100%", thickness=0.5,
color=colors.HexColor("#BFBFBF"), dash=[2, 2]))
elems.append(Spacer(1, 0.2*cm))
story.append(KeepTogether(elems[:6])) # keep header + vignette together
story.extend(elems[6:])
# ── Back page summary ─────────────────────────────────────────────────────
story.append(PageBreak())
footer_data = [[
Paragraph("ANSWER KEY SUMMARY", ParagraphStyle("AKH",
fontName="Helvetica-Bold", fontSize=13, textColor=WHITE, alignment=TA_CENTER))
]]
footer_tbl = Table(footer_data, colWidths=[doc.width])
footer_tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), DARK_BLUE),
('TOPPADDING', (0,0), (-1,-1), 10),
('BOTTOMPADDING', (0,0), (-1,-1), 10),
]))
story.append(footer_tbl)
story.append(Spacer(1, 0.3*cm))
# Build key table — 5 columns
key_rows = []
row = []
for i, q in enumerate(MCQS):
row.append(Paragraph(f"Q{i+1}: <b>{q['correct']}</b>",
ParagraphStyle("KR", fontName="Helvetica", fontSize=10, leading=13, alignment=TA_CENTER)))
if len(row) == 5:
key_rows.append(row)
row = []
if row:
while len(row) < 5:
row.append(Paragraph("", ParagraphStyle("KR2", fontName="Helvetica", fontSize=10)))
key_rows.append(row)
key_tbl = Table(key_rows, colWidths=[doc.width/5]*5)
key_tbl.setStyle(TableStyle([
('GRID', (0,0), (-1,-1), 0.5, colors.HexColor("#BFBFBF")),
('TOPPADDING', (0,0), (-1,-1), 6),
('BOTTOMPADDING', (0,0), (-1,-1), 6),
('BACKGROUND', (0,0), (-1,-1), LIGHT_GREY),
('ROWBACKGROUNDS', (0,0), (-1,-1), [WHITE, LIGHT_GREY]),
]))
story.append(key_tbl)
story.append(Spacer(1, 0.6*cm))
# Topic coverage table
story.append(Paragraph("<b>Topic Coverage Map</b>",
ParagraphStyle("TCH", fontName="Helvetica-Bold", fontSize=11, textColor=DARK_BLUE,
spaceBefore=8, spaceAfter=6)))
cov_data = [
[Paragraph("<b>Topic</b>", ParagraphStyle("TH", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
Paragraph("<b>Questions</b>", ParagraphStyle("TH2", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE))],
["Epidemiology & Definition", "Q1, Q3"],
["TV Z-score & RV Morphology Classification", "Q4, Q8, Q15, Q25"],
["RVDCC — Coronary Anatomy (Most Tested)", "Q5, Q7, Q11, Q14"],
["Neonatal Presentation & Initial Management (PGE1, ASD)", "Q2, Q21"],
["Diagnosis — TTE, Cath, ECG, CXR", "Q16, Q24"],
["Pathophysiology & Physiology", "Q14, Q22"],
["Surgical Palliation — BT Shunt, RF Perforation", "Q9, Q13"],
["Biventricular Repair Eligibility", "Q13, Q25"],
["1.5-Ventricle Repair", "Q10, Q25"],
["Single-Ventricle / Fontan Pathway", "Q18, Q23, Q25"],
["RVDCC-Specific CPB Strategy", "Q11"],
["Landmark Trials & Outcomes", "Q12, Q18, Q19"],
["Membranous vs Muscular Atresia", "Q9, Q17"],
["PA/IVS vs PA/VSD Differentiation", "Q20"],
["Adult Outcomes & Reintervention", "Q19"],
]
for i in range(1, len(cov_data)):
cov_data[i] = [
Paragraph(str(cov_data[i][0]), ParagraphStyle("CD", fontName="Helvetica", fontSize=9, leading=12)),
Paragraph(str(cov_data[i][1]), ParagraphStyle("CD2", fontName="Helvetica-Bold", fontSize=9, leading=12, textColor=DARK_BLUE)),
]
cov_data[0] = [
Paragraph(str(cov_data[0][0].text if hasattr(cov_data[0][0],'text') else cov_data[0][0]),
ParagraphStyle("CH", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
Paragraph(str(cov_data[0][1].text if hasattr(cov_data[0][1],'text') else cov_data[0][1]),
ParagraphStyle("CH2", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
]
cov_tbl = Table(cov_data, colWidths=[doc.width*0.72, doc.width*0.28])
cov_tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), DARK_BLUE),
('GRID', (0,0), (-1,-1), 0.5, colors.HexColor("#BFBFBF")),
('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_GREY]),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
('LEFTPADDING', (0,0), (-1,-1), 8),
]))
story.append(cov_tbl)
story.append(Spacer(1, 0.5*cm))
story.append(Paragraph(
"Chapter 123 | PA/IVS MCQ Bank | LaPar & Bacha | Prepared by Orris AI for INI CET SS / CVTS Board Preparation",
ParagraphStyle("Footer", fontName="Helvetica-Oblique", fontSize=8,
textColor=colors.HexColor("#888888"), alignment=TA_CENTER)
))
doc.build(story)
print(f"PDF written: {OUTPUT}")
if __name__ == "__main__":
build_pdf()
cd /home/daytona/workspace/INI_SS_CVTS_Ch123 && python3 make_mcq_pdf.py 2>&1
python3 -c " import pdfplumber with pdfplumber.open('/home/daytona/workspace/INI…
PA IVS 25 MCQs INI SS
PDF Document · PDF
| Type | Count | Questions |
|---|---|---|
| Clinical Vignette | 7 | Q2, Q7, Q13, Q19, Q21, Q23 |
| Paragraph / Data-Based | 6 | Q4, Q9, Q12, Q18, Q21, Q25 |
| Image / Visual Vignette | 4 | Q5, Q10, Q16, Q22 |
| Direct Factual | 8 | Q1, Q3, Q6, Q8, Q14, Q15, Q17, Q20, Q24 |
Answer key with detailed explanation of the correct answer and explanation of the distractors. Do not copy paste the same explanations loop to all answers. Make sure that the explanation pdf has all 25 explanations. Answers can be either a,b,c or d. Explain every correct answer and give distractor analysis as well. Correct answer, explanation, why each distractor is incorrect, relevant guideline, and learning point. Create 3 pdfs with a direct download link. Make sure the questions are based on decision making, guidelines, landmark trials, operative judgement, hemodynamics, clinical scenarios and imaging interpretation provide this file too
Why its stucl?