Make radiology exam question paper 1 for DNB exam cover basic questions send pdf paper format should be 3 long questions 20 marks each and 4 10 marks question each Zydus medical college and hospital dahod
DNB Radiodiagnosis examination question paper format long answer 20 marks short answer 10 marks India
radiology education AND assessment
~/
mkdir -p "/tmp/workspace/radiology-dnb-paper-1/src" "/tmp/workspace/radiology-dnb-paper-1/output" && python -c "import reportlab; print('reportlab ready')"
~/radiology-dnb-paper-1/src/create_paper.py
from reportlab.lib import colors
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.pdfbase.pdfmetrics import stringWidth
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, KeepTogether
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib.colors import HexColor
from pypdf import PdfReader
OUT = '/tmp/workspace/radiology-dnb-paper-1/output/DNB_Radiology_Question_Paper_1_Zydus_Dahod.pdf'
# Palette
NAVY = HexColor('#123B5D')
TEAL = HexColor('#1B6F7A')
LIGHT = HexColor('#EAF2F6')
GREY = HexColor('#4D5964')
styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name='Institution', parent=styles['Normal'], fontName='Helvetica-Bold', fontSize=14, leading=17, alignment=TA_CENTER, textColor=NAVY, spaceAfter=2))
styles.add(ParagraphStyle(name='College', parent=styles['Normal'], fontName='Helvetica', fontSize=10.5, leading=13, alignment=TA_CENTER, textColor=GREY, spaceAfter=10))
styles.add(ParagraphStyle(name='Exam', parent=styles['Normal'], fontName='Helvetica-Bold', fontSize=12.5, leading=15, alignment=TA_CENTER, textColor=NAVY, spaceBefore=3, spaceAfter=8))
styles.add(ParagraphStyle(name='Instruction', parent=styles['Normal'], fontName='Helvetica', fontSize=9.3, leading=12.2, alignment=TA_LEFT, textColor=colors.black, leftIndent=6, firstLineIndent=-6, spaceAfter=3))
styles.add(ParagraphStyle(name='Section', parent=styles['Normal'], fontName='Helvetica-Bold', fontSize=11, leading=14, textColor=colors.white, spaceBefore=12, spaceAfter=6, alignment=TA_LEFT))
styles.add(ParagraphStyle(name='Question', parent=styles['Normal'], fontName='Helvetica', fontSize=10.2, leading=14.2, spaceAfter=10, alignment=TA_LEFT))
styles.add(ParagraphStyle(name='Footer', parent=styles['Normal'], fontName='Helvetica-Oblique', fontSize=8, leading=10, textColor=GREY, alignment=TA_CENTER))
def header_footer(canvas, doc):
canvas.saveState()
width, height = A4
canvas.setStrokeColor(TEAL)
canvas.setLineWidth(0.8)
canvas.line(doc.leftMargin, height - 1.35*cm, width - doc.rightMargin, height - 1.35*cm)
canvas.setFont('Helvetica', 8)
canvas.setFillColor(GREY)
canvas.drawString(doc.leftMargin, 1.15*cm, 'DNB Radiodiagnosis - Question Paper 1')
page = f'Page {doc.page}'
canvas.drawRightString(width - doc.rightMargin, 1.15*cm, page)
canvas.restoreState()
def section_title(text):
t = Table([[Paragraph(text, styles['Section'])]], colWidths=[17.4*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), NAVY),
('LEFTPADDING', (0,0), (-1,-1), 9),
('RIGHTPADDING', (0,0), (-1,-1), 9),
('TOPPADDING', (0,0), (-1,-1), 1),
('BOTTOMPADDING', (0,0), (-1,-1), 1),
]))
return t
def q(num, text, marks):
prefix = f'<b>Q{num}.</b> '
mark = f'<b>({marks} Marks)</b>'
# Table puts a fixed aligned mark field to reduce wrapping ambiguity.
question = Paragraph(prefix + text, styles['Question'])
markcell = Paragraph(mark, ParagraphStyle('marks', parent=styles['Question'], alignment=2, fontSize=9.5))
table = Table([[question, markcell]], colWidths=[14.75*cm, 2.65*cm], hAlign='LEFT')
table.setStyle(TableStyle([
('VALIGN', (0,0), (-1,-1), 'TOP'),
('LEFTPADDING', (0,0), (-1,-1), 0),
('RIGHTPADDING', (0,0), (-1,-1), 0),
('TOPPADDING', (0,0), (-1,-1), 0),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
('LINEBELOW', (0,0), (-1,-1), 0.25, HexColor('#D7E2E8')),
]))
return table
story = []
story += [Spacer(1, 0.15*cm)]
story += [Paragraph('ZYDUS MEDICAL COLLEGE AND HOSPITAL, DAHOD', styles['Institution'])]
story += [Paragraph('Department of Radiodiagnosis', styles['College'])]
story += [Paragraph('DNB RADIODIAGNOSIS - THEORY EXAMINATION', styles['Exam'])]
story += [Paragraph('<b>QUESTION PAPER 1: BASIC RADIOLOGY</b>', ParagraphStyle('paper', parent=styles['Exam'], fontSize=13.5, textColor=TEAL, spaceAfter=10))]
info = Table([
['Time: 3 Hours', 'Maximum Marks: 100'],
['Date: ____________________', 'Roll No.: ____________________'],
], colWidths=[8.7*cm, 8.7*cm])
info.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), LIGHT),
('GRID', (0,0), (-1,-1), 0.45, HexColor('#B6C8D2')),
('FONTNAME', (0,0), (-1,-1), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,-1), 9.8),
('TEXTCOLOR', (0,0), (-1,-1), NAVY),
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('TOPPADDING', (0,0), (-1,-1), 6),
('BOTTOMPADDING', (0,0), (-1,-1), 6),
]))
story += [info, Spacer(1, 0.35*cm)]
story += [Paragraph('<b>Instructions to Candidates</b>', ParagraphStyle('ititle', parent=styles['Normal'], fontName='Helvetica-Bold', fontSize=10.2, textColor=NAVY, spaceAfter=5))]
instructions = [
'1. Answer all questions.',
'2. Draw neat, labelled diagrams wherever applicable.',
'3. The figures in parentheses indicate maximum marks.',
'4. Use standard radiological terminology and appropriate imaging protocols in your answers.',
'5. This paper contains 3 long-answer questions and 4 short-answer questions.',
]
story += [Paragraph(x, styles['Instruction']) for x in instructions]
story += [Spacer(1, 0.12*cm)]
story += [section_title('SECTION A - LONG-ANSWER QUESTIONS')]
story += [Paragraph('<i>Answer all questions. Each question carries 20 marks.</i>', ParagraphStyle('sub', parent=styles['Normal'], fontSize=9.2, leading=12, textColor=GREY, spaceAfter=8))]
long_qs = [
('Describe the physical principles of ultrasound imaging. Discuss the factors affecting image quality, common artefacts, their causes and methods of minimising them.', 20),
('Discuss radiation protection in diagnostic radiology. Include the principles of justification, optimisation and dose limitation; radiation protection measures for patients and staff; and management of pregnancy in a radiation-exposure setting.', 20),
('Describe the imaging approach to an adult patient presenting with acute non-traumatic headache. Discuss the choice of modality, key CT and MRI protocols, and major imaging findings in common emergency diagnoses.', 20),
]
for i, (text, marks) in enumerate(long_qs, 1):
story.append(q(i, text, marks))
story += [section_title('SECTION B - SHORT-ANSWER QUESTIONS')]
story += [Paragraph('<i>Answer all questions. Each question carries 10 marks.</i>', ParagraphStyle('sub2', parent=styles['Normal'], fontSize=9.2, leading=12, textColor=GREY, spaceAfter=8))]
short_qs = [
('Enumerate the indications, contraindications and adverse reactions of iodinated contrast media. Outline the immediate management of a severe contrast reaction.', 10),
('Write a short note on systematic interpretation of a chest radiograph. Include assessment of image adequacy and a standard review checklist.', 10),
('Describe MRI safety screening and the classification of implants/devices in the MRI environment. Mention the management of a suspected metallic intra-orbital foreign body.', 10),
('Write a short note on the ALARA principle and practical methods of dose reduction in computed tomography.', 10),
]
for i, (text, marks) in enumerate(short_qs, 4):
story.append(q(i, text, marks))
story += [Spacer(1, 0.25*cm), Paragraph('<b>End of Question Paper</b>', styles['Footer'])]
doc = SimpleDocTemplate(OUT, pagesize=A4, leftMargin=1.55*cm, rightMargin=1.55*cm, topMargin=1.65*cm, bottomMargin=1.65*cm, title='DNB Radiodiagnosis Question Paper 1', author='Zydus Medical College and Hospital, Dahod')
doc.build(story, onFirstPage=header_footer, onLaterPages=header_footer)
# Basic verification that it has been created and has extractable content.
reader = PdfReader(OUT)
text = '\n'.join(page.extract_text() or '' for page in reader.pages)
assert len(reader.pages) >= 1
assert 'QUESTION PAPER 1: BASIC RADIOLOGY' in text
assert 'Maximum Marks: 100' in text
assert 'Q7.' in text
print(f'Created: {OUT}')
print(f'Pages: {len(reader.pages)}')
print(f'Extracted characters: {len(text)}')
python "/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py" && ls -lh "/tmp/workspace/radiology-dnb-paper-1/output/DNB_Radiology_Question_Paper_1_Zydus_Dahod.pdf"
DNB Radiology Question Paper 1 Zydus Dahod
PDF Document · PDF
Internal examination also include Radiology anatomy one long question and short question should be in 4-5 words
DNB Radiodiagnosis curriculum anatomy imaging examination India
~/
radiology anatomy education
~/radiology-dnb-paper-1/
~/radiology-dnb-paper-1/src/create_paper.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py'
~/radiology-dnb-paper-1/src/create_paper.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py'
~/radiology-dnb-paper-1/src/create_paper.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py'
~/radiology-dnb-paper-1/src/create_paper.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py'
python "/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py" && ls -lh "/tmp/workspace/radiology-dnb-paper-1/output/DNB_Radiology_Internal_Question_Paper_1_Zydus_Dahod.pdf"
DNB Radiology Internal Question Paper 1 Zydus Dahod
PDF Document · PDF
Heading - Basic Radiology Physics and Anatomy Replace DNB to MD Radiodiagnosis
MD Radiodiagnosis curriculum basic radiology physics anatomy India
~/
~/radiology-dnb-paper-1/
~/radiology-dnb-paper-1/src/create_paper.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py'
~/radiology-dnb-paper-1/output
~/radiology-dnb-paper-1/src/create_paper.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py'
~/radiology-dnb-paper-1/src/create_paper.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py'
~/radiology-dnb-paper-1/src/create_paper.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py'
~/radiology-dnb-paper-1/src/create_paper.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py'
python "/tmp/workspace/radiology-dnb-paper-1/src/create_paper.py" && ls -lh "/tmp/workspace/radiology-dnb-paper-1/output/MD_Radiodiagnosis_Internal_Question_Paper_1_Zydus_Dahod.pdf"
MD Radiodiagnosis Internal Question Paper 1 Zydus Dahod
PDF Document · PDF