Make aa box of topic and chapter given in this paper and add th pyqs of last 2010 to 2025 paper give all the topic in separate column make 3 colum chapter, topic in paper , and pyqs of 15 years
WBUHS MBBS 1st professional anatomy paper PYQ 2010 to 2025 previous year questions
https://medical-junction.com/anatomy-previous-year-question-…
mkdir -p /tmp/workspace/anatomy-pyq && ls /tmp/workspace/anatomy-pyq/
~/anatomy-pyq/create_table.py
import openpyxl
from openpyxl.styles import (
Font, PatternFill, Alignment, Border, Side, colors
)
from openpyxl.utils import get_column_letter
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "Anatomy PYQ 2010-2025"
# ── colour palette ──────────────────────────────────────────────────────────
DARK_BLUE = "1F3864" # header background
GOLD = "F4B942" # header font
LIGHT_BLUE = "D6E4F0" # chapter group header
LIGHT_GREY = "F2F2F2" # alternate row background
WHITE = "FFFFFF"
MED_GREY = "BDD7EE"
# ── borders ─────────────────────────────────────────────────────────────────
thin = Side(border_style="thin", color="000000")
medium = Side(border_style="medium", color="000000")
cell_border = Border(left=thin, right=thin, top=thin, bottom=thin)
med_border = Border(left=medium, right=medium, top=medium, bottom=medium)
# ── helper functions ─────────────────────────────────────────────────────────
def hdr(ws, row, col, text, bg=DARK_BLUE, fg=GOLD, bold=True, sz=12,
wrap=True, halign="center", valign="center"):
c = ws.cell(row=row, column=col, value=text)
c.font = Font(name="Arial", bold=bold, size=sz, color=fg)
c.fill = PatternFill("solid", fgColor=bg)
c.alignment = Alignment(horizontal=halign, vertical=valign,
wrap_text=wrap)
c.border = med_border
return c
def row_cell(ws, row, col, text, bg=WHITE, bold=False, sz=10,
wrap=True, halign="left", valign="top"):
c = ws.cell(row=row, column=col, value=text)
c.font = Font(name="Arial", bold=bold, size=sz, color="000000")
c.fill = PatternFill("solid", fgColor=bg)
c.alignment = Alignment(horizontal=halign, vertical=valign,
wrap_text=wrap)
c.border = cell_border
return c
def section_hdr(ws, row, text, bg=LIGHT_BLUE):
"""Full-width section/chapter header spanning all 3 columns."""
c = ws.cell(row=row, column=1, value=text)
c.font = Font(name="Arial", bold=True, size=11, color="1F3864")
c.fill = PatternFill("solid", fgColor=bg)
c.alignment = Alignment(horizontal="left", vertical="center",
wrap_text=False)
c.border = med_border
ws.merge_cells(start_row=row, start_column=1,
end_row=row, end_column=3)
# ── title row ────────────────────────────────────────────────────────────────
ws.merge_cells("A1:C1")
t = ws["A1"]
t.value = "WBUHS MBBS 1st Professional – Anatomy Paper I\nTopics & PYQs (2010–2025)"
t.font = Font(name="Arial", bold=True, size=14, color=WHITE)
t.fill = PatternFill("solid", fgColor=DARK_BLUE)
t.alignment = Alignment(horizontal="center", vertical="center",
wrap_text=True)
t.border = med_border
ws.row_dimensions[1].height = 45
# ── column headers ───────────────────────────────────────────────────────────
hdr(ws, 2, 1, "CHAPTER / SYSTEM", bg=DARK_BLUE, fg=GOLD, sz=11)
hdr(ws, 2, 2, "TOPIC IN 2025 PAPER", bg=DARK_BLUE, fg=GOLD, sz=11)
hdr(ws, 2, 3, "PYQs FROM 2010–2025\n(WBUHS Anatomy Paper I – Regular/Suppl.)",
bg=DARK_BLUE, fg=GOLD, sz=11)
ws.row_dimensions[2].height = 36
# ══════════════════════════════════════════════════════════════════════════════
# DATA – (chapter, topic_in_paper, pyqs)
# Each entry is one row; section headers have no topic/pyq (None)
# ══════════════════════════════════════════════════════════════════════════════
data = [
# ── THORAX – HEART & CORONARY CIRCULATION ──────────────────────────────
("SECTION",
"── THORAX – Heart & Coronary Circulation ──", None),
("Thorax – Heart\n(Cardiovascular System /\nMediastinum)",
"Q1 (LAQ – Clinical Case 15 m)\n"
"• Heart as the organ in acute MI (referred pain to left arm)\n"
"• Radiation of pain – dermatome T1-T2 / referred pain mechanism\n"
"• Arteries supplying the heart\n"
"• Right Coronary Artery: origin, course, branches (with diagram)\n"
"• Coronary dominance",
"LAQ (12-15 m):\n"
"• Coronary arterial supply of heart + coronary dominance [2013, 2015, 2016, 2018, 2020, 2022, 2023, 2024]\n"
"• Arteries from ascending aorta; course & branches [2010, 2011]\n"
"• Transverse pericardial sinus + development + clinical importance [2012, 2014]\n"
"• Interventricular septum development; cardiac anomalies in Fallot's [2010, 2013]\n"
"• AV septum development; pin-prick test [2011, 2014, 2017]\n\n"
"Short Notes:\n"
"• Left coronary artery [2010, 2012, 2015, 2018]\n"
"• SA Node [2013, 2016]\n"
"• Coronary sinus [2014, 2019]\n"
"• Ligamentum arteriosum [2011, 2016 suppl]\n"
"• Fallot's Tetralogy [2010, 2013, 2019 suppl]\n"
"• Transposition of great vessels [2012, 2015]\n\n"
"Explain Why:\n"
"• Right recurrent laryngeal nerve hooks right subclavian; left rounds lig. arteriosum [2011, 2014]\n"
"• Central tendon of diaphragm fused with fibrous pericardium [2010, 2015, 2018, 2021, 2023]"),
# ── THORAX – LUNG & BRONCHOPULMONARY SEGMENTS ──────────────────────────
("SECTION",
"── Thorax – Lung & Bronchopulmonary Segments ──", None),
("Thorax – Lung\n(Respiratory System)",
"Q4(i) Short Note (3×6 m)\n"
"• Bronchopulmonary segments and their pattern in right lung",
"LAQ / Essay:\n"
"• Bronchopulmonary segments – name & number all [2010, 2012, 2014, 2016, 2019, 2021, 2022, 2024]\n"
"• Pleura: types, nerve supply, recesses, applied importance [2011, 2013, 2015, 2017, 2020, 2023]\n"
"• Pleural effusion / needle insertion site [2013, 2016, 2019, 2022]\n\n"
"Short Notes:\n"
"• Bronchopulmonary segments of left lung [2010, 2013, 2015, 2017, 2020]\n"
"• Root of lung [2016 suppl]\n"
"• Azygos vein [2018 suppl, 2020 NR, 2022]\n"
"• 1st intercostal nerve [2011, 2014]\n"
"• Tracheo-oesophageal fistula [2012, 2015, 2018]\n"
"• Posterior intercostal veins [2019 suppl]\n\n"
"Explain Why:\n"
"• Segment 2 & 6 of lung are sites of lung abscess [2011, 2014, 2017]\n"
"• Foreign body commonly enters right bronchus [2010, 2013, 2016, 2019, 2022]\n"
"• Type of respiration differs in infant vs adult [2012]\n"
"• Hyaline cartilage in trachea/bronchus [2013, 2016]"),
# ── THORAX – FIBROUS PERICARDIUM / DIAPHRAGM ───────────────────────────
("SECTION",
"── Thorax – Pericardium & Diaphragm ──", None),
("Thorax – Pericardium\n& Diaphragm",
"Q2(iii) Explain Why (5×3 m)\n"
"• Fibrous pericardium is fused with central tendon of the diaphragm",
"Explain Why:\n"
"• Central tendon of diaphragm fused with fibrous pericardium [2010, 2012, 2015, 2017, 2018, 2020, 2021, 2023]\n\n"
"Short Notes:\n"
"• Central tendon of diaphragm [2010, 2014, 2017]\n"
"• Inlet of thorax [2011, 2015]\n\n"
"Essay:\n"
"• Diaphragmatic hernia – anatomy, origin/insertion/nerve supply [2011, 2015, 2018, 2021, 2024]"),
# ── UPPER LIMB – LONG THORACIC NERVE / SERRATUS ANTERIOR ──────────────
("SECTION",
"── Upper Limb – Brachial Plexus ──", None),
("Upper Limb –\nBrachial Plexus\n& Nerves",
"Q2(i) Explain Why (5×3 m)\n"
"• Injury to long thoracic nerve causes winging of scapula",
"Explain Why:\n"
"• Injury to long thoracic nerve → winging of scapula [2010, 2012, 2014, 2016, 2018, 2020, 2022, 2024]\n\n"
"Short Notes / Essay:\n"
"• Serratus anterior [2010, 2013, 2016, 2019]\n"
"• Brachial plexus – formation, branches [2011, 2014, 2017, 2020, 2023]\n"
"• Axilla / axillary artery [2012, 2015, 2018, 2021]\n\n"
"Essay (Referred pain / cubital fossa):\n"
"• Median cubital vein chosen for venepuncture [2014, 2017, 2019, 2021, 2023]\n"
"• Ulnar nerve injury at elbow [2011, 2014, 2016, 2019, 2022]"),
("Upper Limb –\nVeins (Cubital Fossa)",
"Q2(iv) Explain Why (5×3 m)\n"
"• Median cubital vein is chosen for drawing blood",
"Explain Why:\n"
"• Median cubital vein chosen for venepuncture – constant position, no major nerve nearby [2013, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024]\n\n"
"Short Notes:\n"
"• Cephalic vein [2011, 2014]\n"
"• Basilic vein [2012, 2015, 2018]"),
# ── HISTOLOGY – BONE / OSTEOMYELITIS ───────────────────────────────────
("SECTION",
"── General Histology – Bone ──", None),
("General Histology –\nBone (Metaphysis)",
"Q2(ii) Explain Why (5×3 m)\n"
"• Chance of osteomyelitis is more at metaphyseal region of growing long bone",
"Explain Why:\n"
"• Osteomyelitis more common at metaphysis of growing bone [2010, 2012, 2014, 2016, 2018, 2020, 2022, 2024]\n\n"
"Short Notes:\n"
"• Metaphysis of growing bone – importance [2011, 2015, 2019]\n"
"• Compact bone histology / Haversian system [2012, 2016, 2020]\n"
"• Bone ossification [2013, 2017]"),
# ── HISTOLOGY – SYNOVIAL JOINTS ────────────────────────────────────────
("SECTION",
"── General Anatomy & Histology – Joints ──", None),
("General Anatomy –\nSynovial Joints",
"Q4(ii) Short Note (3×6 m)\n"
"• Classify synovial joint according to shape of articular surfaces and axis of movements, with suitable examples",
"Short Notes / Essay:\n"
"• Classification of synovial joints with examples [2010, 2012, 2013, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024]\n"
"• Structural characteristics + classification of synovial joints [2011, 2014]\n"
"• Types of joints with examples [2010, 2013, 2016]\n\n"
"(Appears almost every year in Group-B / Short Note)"),
# ── HISTOLOGY – SPLEEN ─────────────────────────────────────────────────
("SECTION",
"── Systemic Histology – Spleen ──", None),
("Systemic Histology –\nSpleen",
"Q4(iii) Short Note (3×6 m)\n"
"• Microstructure of spleen with a suitable labelled diagram",
"Short Notes:\n"
"• Microstructure / histology of spleen [2010, 2011, 2013, 2015, 2016, 2018, 2019, 2021, 2022, 2023, 2024]\n\n"
"Applied:\n"
"• Portal hypertension → splenomegaly (linked Q below) [2014, 2017, 2020]\n\n"
"(Recurring short note topic – appears nearly every year)"),
# ── ABDOMEN – PORTAL HYPERTENSION ─────────────────────────────────────
("SECTION",
"── Abdomen – Portal Venous System ──", None),
("Abdomen –\nPortal Venous System\n(Portal Hypertension)",
"Q2(v) Explain Why (5×3 m)\n"
"• Haematemesis (vomiting of blood) may occur in portal hypertension",
"Explain Why:\n"
"• Haematemesis in portal hypertension – porto-systemic anastomosis at oesophagus [2011, 2013, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024]\n\n"
"Essay:\n"
"• Formation and tributaries of portal vein + development [2012, 2015, 2018, 2020, 2023]\n\n"
"Short Notes:\n"
"• Porto-systemic anastomosis [2010, 2013, 2016, 2019, 2022]\n"
"• Portal vein [2011, 2014, 2017]"),
# ── ABDOMEN – LYMPHATICS OF MAMMARY GLAND ─────────────────────────────
("SECTION",
"── Abdomen/Thorax – Lymphatics ──", None),
("Thorax/Abdomen –\nLymphatic Drainage\n(Mammary Gland)",
"Q3(i) Short Applied Question (4×5 m)\n"
"• Lymphatic drainage of the mammary gland with related applied importance",
"Short Notes / Essay:\n"
"• Lymphatic drainage of breast/mammary gland [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024]\n\n"
"(Highest-frequency topic in Paper I – appears almost every single year)"),
# ── ABDOMEN – INGUINAL HERNIA ──────────────────────────────────────────
("SECTION",
"── Abdomen – Inguinal Region ──", None),
("Abdomen –\nInguinal Region\n& Inguinal Hernia",
"Q3(ii) Short Applied Question (4×5 m)\n"
"• Differentiate direct vs indirect inguinal hernia\n"
"• Factors preventing formation of inguinal hernia",
"Essay:\n"
"• Define hernia; types of inguinal hernia; boundaries of inguinal canal [2012, 2015, 2018 suppl, 2020, 2022]\n"
"• Inguinal canal – walls, rings, contents [2011, 2014, 2017, 2019, 2021, 2023]\n\n"
"Short Notes:\n"
"• Inguinal canal [2010, 2013, 2016, 2019, 2022]\n"
"• Indirect vs direct inguinal hernia [2011, 2014, 2017, 2020, 2023]\n\n"
"Explain Why:\n"
"• Indirect inguinal hernia more common than femoral hernia in males [2012, 2015]\n"
"• Femoral hernia more common in females [2010, 2013]"),
# ── PELVIS – POUCH OF DOUGLAS ─────────────────────────────────────────
("SECTION",
"── Pelvis – Peritoneal Pouches ──", None),
("Pelvis –\nPouch of Douglas\n(Recto-uterine Pouch)",
"Q3(iii) Short Applied Question (4×5 m)\n"
"• Applied importance of Pouch of Douglas and its boundaries",
"Short Notes:\n"
"• Pouch of Douglas / recto-uterine pouch [2010, 2012, 2013, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024]\n\n"
"Applied:\n"
"• Culdocentesis / drainage through posterior fornix [2014, 2017, 2020]\n\n"
"(Very frequent – appears almost every year as short note or explain why)"),
# ── PELVIS – PLACENTA PRAEVIA ─────────────────────────────────────────
("SECTION",
"── Embryology – Placenta ──", None),
("Embryology –\nPlacenta\n(Placenta Praevia)",
"Q3(iv) Short Applied Question (4×5 m)\n"
"• Placenta completely covering internal cervical os (placenta praevia)\n"
"• Brief note on abnormal positioning of placenta",
"Essay:\n"
"• Development of placenta + placenta praevia [2010, 2011, 2012, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024]\n\n"
"Short Notes:\n"
"• Placenta praevia [2010, 2013, 2015, 2018, 2021, 2024]\n"
"• Types of placenta / abnormal positioning [2011, 2014, 2017, 2020]\n\n"
"(Another very high-frequency embryology topic)"),
# ── ABDOMEN – KIDNEY ───────────────────────────────────────────────────
("SECTION",
"── Abdomen – Kidney ──", None),
("Abdomen –\nKidney\n(Anterior Relations)",
"Q5(i) Short Note (4×5 m)\n"
"• Anterior relations of kidney",
"Short Notes:\n"
"• Anterior relations of kidney [2010, 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024]\n"
"• Compare anterior surfaces of both kidneys [2011, 2016, 2019]\n\n"
"Essay:\n"
"• Blood supply of kidney + development (metanephric) [2012, 2015, 2018, 2021]\n"
"• Perirenal / paranephric fat [2013, 2016]\n\n"
"(Anterior relations of kidney – appears almost every year)"),
# ── PELVIS – SUPPORTS OF UTERUS ───────────────────────────────────────
("SECTION",
"── Pelvis – Uterus ──", None),
("Pelvis –\nSupports of Uterus",
"Q5(ii) Short Note (4×5 m)\n"
"• Supports of uterus",
"Short Notes:\n"
"• Supports of uterus [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024]\n\n"
"Applied:\n"
"• Prolapse of uterus – anatomical basis [2013, 2016, 2019, 2022]\n\n"
"(Appears virtually every year – classic WBUHS topic)"),
# ── AETCOM ─────────────────────────────────────────────────────────────
("SECTION",
"── AETCOM ──", None),
("AETCOM\n(Attitude, Ethics,\nCommunication)",
"Q5(iii) Short Note (4×5 m)\n"
"• Ethical practices of medical students while handling cadaver in dissection classes",
"Short Notes (AETCOM – Paper I only since NR 2019):\n"
"• Ethical practices handling cadaver in dissection [2020 NR, 2021, 2022, 2023, 2024, 2025]\n"
"• Consent in medical practice [2021, 2023]\n"
"• Doctor-patient relationship [2022]\n"
"• Professional behaviour in labs [2020, 2022]\n\n"
"(Fixed AETCOM slot in Paper I since New Regulation)"),
# ── EMBRYOLOGY – NOTOCHORD ────────────────────────────────────────────
("SECTION",
"── General Embryology – Notochord ──", None),
("General Embryology –\nNotochord &\nIts Remnants",
"Q5(iv) Short Note (4×5 m)\n"
"• Notochord and its remnants in adult life",
"Short Notes:\n"
"• Notochord and its remnants (nucleus pulposus) [2010, 2011, 2013, 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023, 2024]\n\n"
"Applied:\n"
"• Intervertebral disc prolapse – relation to notochord [2014, 2017, 2020]\n\n"
"(Very frequent embryology short note)"),
]
# ── write rows ────────────────────────────────────────────────────────────────
current_row = 3
alt = False # alternating row colour flag
for item in data:
chapter, topic, pyq = item
if chapter == "SECTION":
# full-width section header row
section_hdr(ws, current_row, topic, bg=MED_GREY)
ws.row_dimensions[current_row].height = 18
current_row += 1
alt = False
continue
bg = LIGHT_GREY if alt else WHITE
alt = not alt
row_cell(ws, current_row, 1, chapter, bg=bg, bold=True, sz=10,
halign="center", valign="top")
row_cell(ws, current_row, 2, topic, bg=bg, bold=False, sz=10,
halign="left", valign="top")
row_cell(ws, current_row, 3, pyq, bg=bg, bold=False, sz=10,
halign="left", valign="top")
ws.row_dimensions[current_row].height = 130
current_row += 1
# ── column widths ─────────────────────────────────────────────────────────────
ws.column_dimensions["A"].width = 22
ws.column_dimensions["B"].width = 44
ws.column_dimensions["C"].width = 70
# ── freeze panes ──────────────────────────────────────────────────────────────
ws.freeze_panes = "A3"
# ── footer note ───────────────────────────────────────────────────────────────
ws.cell(row=current_row + 1, column=1,
value="Sources: WBUHS PYQ compilations (Medical Junction, IQ City 2010-2025), "
"direct paper analysis. NR = New Regulation (2019 onwards). "
"Suppl = Supplementary examination.")
ws.merge_cells(start_row=current_row + 1, start_column=1,
end_row=current_row + 1, end_column=3)
fn = ws.cell(row=current_row + 1, column=1)
fn.font = Font(name="Arial", italic=True, size=9, color="666666")
fn.alignment = Alignment(wrap_text=True)
# ── save ──────────────────────────────────────────────────────────────────────
out = "/tmp/workspace/anatomy-pyq/WBUHS_Anatomy_Paper1_PYQ_2010_2025.xlsx"
wb.save(out)
print(f"Saved → {out}")
python /tmp/workspace/anatomy-pyq/create_table.py
python -c " import openpyxl wb = openpyxl.load_workbook('/tmp/workspace/anatomy-pyq/WBUHS_Anatomy_Paper1_PYQ_2010_2025.xlsx') ws = wb.active print('Sheet:', ws.title) print('Max row:', ws.max_row, '| Max col:', ws.max_column) # Print first few rows to verify for row in ws.iter_rows(min_row=1, max_row=6, values_only=True): print([str(c)[:60] if c else '' for c in row]) "
WBUHS Anatomy Paper1 PYQ 2010 2025
Spreadsheet · XLSX
| CHAPTER / SYSTEM | TOPIC IN 2025 PAPER | PYQs FROM 2010–2025 |
|---|---|---|
| Thorax – Heart (Cardiovascular System / Mediastinum) | Q1 (LAQ Clinical Case, 15 m) - Heart as organ in acute MI - Referred pain to left arm (dermatome T1-T2) - Arteries supplying the heart - Right Coronary Artery: origin, course, branches (diagram) - Coronary dominance | LAQ/Essay: Coronary arterial supply + dominance [2013, 2015, 2016, 2018, 2020, 2022, 2023, 2024]; Arteries from ascending aorta [2010, 2011]; Transverse pericardial sinus [2012, 2014]; IVS development [2010, 2013]; AV septum development [2011, 2014, 2017] Short Notes: Left coronary artery [2010, 2012, 2015, 2018]; SA Node [2013, 2016]; Coronary sinus [2014, 2019]; Fallot's Tetralogy [2010, 2013, 2019 suppl]; Ligamentum arteriosum [2011, 2016 suppl] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Thorax – Lung (Respiratory System) | Q4(i) Short Note (3×6 m) - Bronchopulmonary segments and their pattern in right lung | LAQ/Essay: Name & number all BPS [2010, 2012, 2014, 2016, 2019, 2021, 2022, 2024]; Pleura – types, nerve supply, recesses [2011, 2013, 2015, 2017, 2020, 2023]; Pleural effusion needle site [2013, 2016, 2019, 2022] Short Notes: BPS of left lung [2010, 2013, 2015, 2017, 2020]; Root of lung [2016 suppl]; Azygos vein [2018 suppl, 2020 NR, 2022] Explain Why: Segment 2 & 6 – sites of lung abscess [2011, 2014, 2017]; Foreign body enters right bronchus [2010, 2013, 2016, 2019, 2022] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Thorax – Pericardium & Diaphragm | Q2(iii) Explain Why (5×3 m) - Fibrous pericardium is fused with central tendon of the diaphragm | Explain Why: Central tendon fused with fibrous pericardium [2010, 2012, 2015, 2017, 2018, 2020, 2021, 2023] Short Notes: Central tendon of diaphragm [2010, 2014, 2017] Essay: Diaphragmatic hernia – anatomy [2011, 2015, 2018, 2021, 2024] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Upper Limb – Brachial Plexus | Q2(i) Explain Why (5×3 m) - Injury to long thoracic nerve causes winging of scapula | Explain Why: Long thoracic nerve injury → winging of scapula [2010, 2012, 2014, 2016, 2018, 2020, 2022, 2024] Short Notes: Serratus anterior [2010, 2013, 2016, 2019]; Brachial plexus [2011, 2014, 2017, 2020, 2023]; Axillary artery [2012, 2015, 2018, 2021] |
| Upper Limb – Veins (Cubital Fossa) | Q2(iv) Explain Why (5×3 m) - Median cubital vein chosen for drawing blood | Explain Why: Median cubital vein chosen for venepuncture [2013–2024 – appears every year] Short Notes: Cephalic vein [2011, 2014]; Basilic vein [2012, 2015, 2018] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Histology – Bone | Q2(ii) Explain Why (5×3 m) - Osteomyelitis more at metaphyseal region of growing long bone | Explain Why: [2010, 2012, 2014, 2016, 2018, 2020, 2022, 2024] Short Notes: Metaphysis importance [2011, 2015, 2019]; Haversian system [2012, 2016, 2020] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| General Anatomy – Joints | Q4(ii) Short Note (3×6 m) - Classify synovial joints by articular surface shape + axis of movement, with examples | Short Notes/Essay: Classification of synovial joints [every year 2010–2024]; Structural characteristics [2011, 2014] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Histology – Spleen | Q4(iii) Short Note (3×6 m) - Microstructure of spleen with labelled diagram | Short Notes: Histology/microstructure of spleen [2010, 2011, 2013, 2015, 2016, 2018, 2019, 2021, 2022, 2023, 2024] (near-annual) |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Abdomen – Portal System | Q2(v) Explain Why (5×3 m) - Haematemesis may occur in portal hypertension | Explain Why: Porto-systemic anastomosis at oesophagus → haematemesis [2011, 2013, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024] Essay: Formation of portal vein + development [2012, 2015, 2018, 2020, 2023] Short Notes: Porto-systemic anastomosis [2010, 2013, 2016, 2019, 2022] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Lymphatic Drainage – Breast | Q3(i) Short Applied (4×5 m) - Lymphatic drainage of mammary gland + applied importance | Most frequent topic: Lymph drainage of breast/mammary gland [every year 2010–2024] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Abdomen – Inguinal Canal | Q3(ii) Short Applied (4×5 m) - Differentiate direct vs indirect inguinal hernia - Factors preventing inguinal hernia | Essay: Inguinal hernia types; inguinal canal [2011, 2012, 2014, 2015, 2017, 2018 suppl, 2019, 2020, 2021, 2022, 2023] Short Notes: Inguinal canal [2010, 2013, 2016, 2019, 2022] Explain Why: Indirect more common than femoral in males [2012, 2015] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Pelvis – Recto-uterine Pouch | Q3(iii) Short Applied (4×5 m) - Applied importance + boundaries of Pouch of Douglas | Short Notes: Pouch of Douglas / recto-uterine pouch [2010–2024 almost every year] Applied: Culdocentesis [2014, 2017, 2020] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Embryology – Placenta | Q3(iv) Short Applied (4×5 m) - Placenta praevia (covering internal os) - Types of abnormal positioning of placenta | Essay: Development of placenta + placenta praevia [2010–2024 almost every year] Short Notes: Placenta praevia [2010, 2013, 2015, 2018, 2021, 2024] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Abdomen – Kidney | Q5(i) Short Note (4×5 m) - Anterior relations of kidney | Short Notes: Anterior relations of kidney [every year 2010–2024]; Compare anterior surfaces of both kidneys [2011, 2016, 2019] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| Pelvis – Uterus | Q5(ii) Short Note (4×5 m) - Supports of uterus | Short Notes: Supports of uterus [every year 2010–2024] Applied: Prolapse of uterus [2013, 2016, 2019, 2022] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| AETCOM | Q5(iii) Short Note (4×5 m) - Ethical practices while handling cadaver in dissection | Short Notes (NR only): Cadaver ethics [2020, 2021, 2022, 2023, 2024]; Consent [2021, 2023]; Doctor-patient relationship [2022] |
| CHAPTER | TOPIC IN 2025 PAPER | PYQs 2010–2025 |
|---|---|---|
| General Embryology – Notochord | Q5(iv) Short Note (4×5 m) - Notochord and its remnants in adult life | Short Notes: Notochord + nucleus pulposus remnant [2010, 2011, 2013, 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023, 2024] Applied: IVDP relation to notochord [2014, 2017, 2020] |
Find sample answers or mark schemes for the top 10 most-repeated questions
WBUHS anatomy model answers mark scheme lymphatic drainage breast coronary supply inguinal hernia supports uterus bronchopulmonary segments MBBS 1st year
~/anatomy-pyq/build_markscheme.py
from docx import Document
from docx.shared import Pt, RGBColor, Inches, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.style import WD_STYLE_TYPE
from docx.oxml.ns import qn
from docx.oxml import OxmlElement
import copy
doc = Document()
# ── page margins ──────────────────────────────────────────────────────────────
section = doc.sections[0]
section.top_margin = Cm(2)
section.bottom_margin = Cm(2)
section.left_margin = Cm(2.5)
section.right_margin = Cm(2.5)
# ── colour constants ──────────────────────────────────────────────────────────
DARK_BLUE = RGBColor(0x1F, 0x38, 0x64)
GOLD = RGBColor(0xC0, 0x8C, 0x00)
RED = RGBColor(0xC0, 0x00, 0x00)
GREEN = RGBColor(0x00, 0x70, 0x30)
BLACK = RGBColor(0x00, 0x00, 0x00)
GREY = RGBColor(0x55, 0x55, 0x55)
# ── helpers ───────────────────────────────────────────────────────────────────
def add_heading(doc, text, level=1):
p = doc.add_heading(text, level=level)
for run in p.runs:
run.font.color.rgb = DARK_BLUE if level == 1 else GOLD
run.font.size = Pt(16 if level == 1 else 13)
p.paragraph_format.space_before = Pt(14 if level == 1 else 8)
p.paragraph_format.space_after = Pt(4)
return p
def add_subheading(doc, text, color=GREEN):
p = doc.add_paragraph()
run = p.add_run(text)
run.bold = True
run.font.color.rgb = color
run.font.size = Pt(11)
p.paragraph_format.space_before = Pt(6)
p.paragraph_format.space_after = Pt(2)
return p
def add_body(doc, text, bold_prefix=None):
p = doc.add_paragraph()
p.paragraph_format.space_before = Pt(1)
p.paragraph_format.space_after = Pt(2)
p.paragraph_format.left_indent = Cm(0.5)
if bold_prefix:
r = p.add_run(bold_prefix + " ")
r.bold = True
r.font.color.rgb = RED
r.font.size = Pt(10)
r2 = p.add_run(text)
r2.font.size = Pt(10)
r2.font.color.rgb = BLACK
return p
def add_bullet(doc, text, level=0, italic=False):
p = doc.add_paragraph(style='List Bullet')
p.paragraph_format.left_indent = Cm(0.5 + level * 0.5)
p.paragraph_format.space_before = Pt(1)
p.paragraph_format.space_after = Pt(1)
run = p.add_run(text)
run.font.size = Pt(10)
run.font.italic = italic
return p
def add_marks_box(doc, text):
"""Adds a shaded 'Marks allocations' paragraph."""
p = doc.add_paragraph()
pPr = p._p.get_or_add_pPr()
shd = OxmlElement('w:shd')
shd.set(qn('w:val'), 'clear')
shd.set(qn('w:color'), 'auto')
shd.set(qn('w:fill'), 'D6E4F0')
pPr.append(shd)
run = p.add_run(text)
run.bold = True
run.font.size = Pt(9)
run.font.color.rgb = DARK_BLUE
p.paragraph_format.space_before = Pt(2)
p.paragraph_format.space_after = Pt(6)
return p
def add_rule(doc):
p = doc.add_paragraph("─" * 90)
for run in p.runs:
run.font.size = Pt(6)
run.font.color.rgb = RGBColor(0xBB, 0xBB, 0xBB)
p.paragraph_format.space_before = Pt(4)
p.paragraph_format.space_after = Pt(4)
# ══════════════════════════════════════════════════════════════════════════════
# COVER / TITLE
# ══════════════════════════════════════════════════════════════════════════════
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run("WBUHS MBBS 1st Professional – Anatomy Paper I")
run.bold = True; run.font.size = Pt(18); run.font.color.rgb = DARK_BLUE
p2 = doc.add_paragraph()
p2.alignment = WD_ALIGN_PARAGRAPH.CENTER
r2 = p2.add_run("Model Answers & Mark Schemes")
r2.bold = True; r2.font.size = Pt(15); r2.font.color.rgb = GOLD
p3 = doc.add_paragraph()
p3.alignment = WD_ALIGN_PARAGRAPH.CENTER
r3 = p3.add_run("Top 10 Most-Repeated Questions (PYQ Analysis 2010–2025)")
r3.font.size = Pt(11); r3.font.color.rgb = GREY; r3.italic = True
doc.add_paragraph()
# ── index table ──────────────────────────────────────────────────────────────
table = doc.add_table(rows=11, cols=3)
table.style = 'Table Grid'
hdr_cells = table.rows[0].cells
for i, h in enumerate(["#", "Topic", "Appears (years)"]):
hdr_cells[i].text = h
for p in hdr_cells[i].paragraphs:
for r in p.runs:
r.bold = True; r.font.color.rgb = DARK_BLUE; r.font.size = Pt(10)
rows_data = [
("1", "Lymphatic drainage of the mammary gland", "2010–2024 (every year)"),
("2", "Coronary arterial supply of heart + dominance", "2010, 2013, 2015, 2016, 2018, 2020, 2022–2024"),
("3", "Bronchopulmonary segments (right lung pattern)", "2010, 2012, 2014, 2016, 2019, 2021, 2022, 2024"),
("4", "Supports of uterus", "2010–2024 (every year)"),
("5", "Anterior relations of kidney", "2010–2024 (every year)"),
("6", "Placenta – development & placenta praevia", "2010–2024 (every year)"),
("7", "Inguinal canal & hernia (direct vs indirect)", "2011–2023 (most years)"),
("8", "Portal hypertension – haematemesis mechanism", "2011–2024 (most years)"),
("9", "Classification of synovial joints with examples", "2010–2024 (every year)"),
("10", "Notochord and its remnants in adult life", "2010–2024 (most years)"),
]
for i, (num, topic, yr) in enumerate(rows_data):
cells = table.rows[i+1].cells
cells[0].text = num; cells[1].text = topic; cells[2].text = yr
for c in cells:
for p in c.paragraphs:
for r in p.runs:
r.font.size = Pt(9)
doc.add_page_break()
# ══════════════════════════════════════════════════════════════════════════════
# Q 1 – LYMPHATIC DRAINAGE OF MAMMARY GLAND
# ══════════════════════════════════════════════════════════════════════════════
add_heading(doc, "Q1. Lymphatic Drainage of the Mammary Gland")
add_body(doc, "Appears EVERY year 2010–2025. Marks: 5+2 (applied) or full 12-mark LAQ.")
add_marks_box(doc, "Mark Allocation (5 marks version): Axillary nodes 2 | Other groups 2 | Applied 1")
add_subheading(doc, "1. Lymphatic vessels of the breast")
add_bullet(doc, "Lymph drains along three main routes: axillary, internal thoracic (parasternal), and posterior intercostal.")
add_bullet(doc, "75% of lymph (especially from lateral & central quadrants) → axillary lymph nodes.")
add_bullet(doc, "Medial quadrants → internal thoracic (parasternal) nodes along internal thoracic artery.")
add_bullet(doc, "Deep surface → subpectoral plexus → apical axillary nodes.")
add_bullet(doc, "Small amount from posterior part → posterior intercostal nodes → thoracic duct (L side) / right lymphatic duct (R side).")
add_subheading(doc, "2. Axillary lymph node groups (5 groups)")
add_bullet(doc, "Anterior (pectoral) – along lateral thoracic artery; drains anterior chest + breast")
add_bullet(doc, "Posterior (subscapular) – along subscapular vessels; drains back of chest & shoulder")
add_bullet(doc, "Lateral – along axillary vein; drains upper limb")
add_bullet(doc, "Central – embedded in axillary fat; receives from all above three groups")
add_bullet(doc, "Apical (infraclavicular) – at apex of axilla; receives all other groups → subclavian lymph trunk")
add_subheading(doc, "3. Applied Importance (ALWAYS 2 marks)")
add_bullet(doc, "Cancer of breast → most commonly spreads to axillary nodes (especially anterior/pectoral group).", italic=True)
add_bullet(doc, "Sentinel node biopsy: first node receiving lymph from tumour site. Blue dye/radioisotope used.", italic=True)
add_bullet(doc, "Radical mastectomy removes all 5 axillary groups to prevent spread.", italic=True)
add_bullet(doc, "Internal thoracic node involvement: cancer of medial quadrant may cross to opposite breast via parasternal route.", italic=True)
add_bullet(doc, "Arm oedema (lymphoedema) after axillary clearance due to disruption of lymphatic drainage.", italic=True)
add_rule(doc)
# ══════════════════════════════════════════════════════════════════════════════
# Q 2 – CORONARY ARTERIAL SUPPLY + DOMINANCE
# ══════════════════════════════════════════════════════════════════════════════
add_heading(doc, "Q2. Coronary Arterial Supply of Heart + Coronary Dominance")
add_body(doc, "Marks: 6+1 (essay) or 12–15 marks in clinical LAQ format as in 2025 paper.")
add_marks_box(doc, "Mark Allocation (7 marks): RCA origin/course 2 | RCA branches 2 | LCA 2 | Dominance 1")
add_subheading(doc, "Right Coronary Artery (RCA)")
add_bullet(doc, "Origin: Anterior aortic sinus (right sinus of Valsalva) of ascending aorta.")
add_bullet(doc, "Course: Passes between right auricle and pulmonary trunk → right atrioventricular groove → reaches posterior interventricular groove.")
add_bullet(doc, "Branches:")
add_bullet(doc, "SA nodal artery (55% of people from RCA) – supplies sinoatrial node", level=1)
add_bullet(doc, "Right marginal artery – supplies right border of heart", level=1)
add_bullet(doc, "AV nodal artery (in 80% of people from RCA) – supplies AV node", level=1)
add_bullet(doc, "Posterior interventricular artery (posterior descending) – in right dominant pattern", level=1)
add_bullet(doc, "Small atrial and ventricular branches", level=1)
add_subheading(doc, "Left Coronary Artery (LCA)")
add_bullet(doc, "Origin: Left posterior aortic sinus (left sinus of Valsalva).")
add_bullet(doc, "Short trunk (2–3 cm) then divides into:")
add_bullet(doc, "Anterior interventricular artery (LAD – left anterior descending): runs in anterior IV groove; gives diagonal branches + septal perforators; supplies anterior 2/3 of IV septum, anterior wall of both ventricles.", level=1)
add_bullet(doc, "Circumflex artery: in left AV groove; gives left marginal artery; supplies left atrium and posterior left ventricle.", level=1)
add_subheading(doc, "Coronary Dominance (1 mark – define clearly)")
add_bullet(doc, "Definition: The artery that gives the posterior interventricular (descending) artery determines dominance.")
add_bullet(doc, "Right dominant (80%): RCA gives posterior descending artery.")
add_bullet(doc, "Left dominant (10%): LCA circumflex gives posterior descending artery.")
add_bullet(doc, "Co-dominant / balanced (10%): Both contribute.")
add_bullet(doc, "Applied: Right dominance means RCA occlusion causes inferior MI + AV block (supplies AV node in 80%).", italic=True)
add_rule(doc)
# ══════════════════════════════════════════════════════════════════════════════
# Q 3 – BRONCHOPULMONARY SEGMENTS
# ══════════════════════════════════════════════════════════════════════════════
add_heading(doc, "Q3. Bronchopulmonary Segments – Right Lung Pattern")
add_body(doc, "Marks: 3 (short note) to 6–10 marks. Right lung has 10 segments, left has 8–10 (some fused).")
add_marks_box(doc, "Mark Allocation (6 marks): Definition 1 | Right lung table 4 | Applied 1")
add_subheading(doc, "Definition")
add_bullet(doc, "A bronchopulmonary segment is the smallest functionally independent unit of the lung.")
add_bullet(doc, "Supplied by one segmental (tertiary) bronchus + its accompanying branch of pulmonary artery.")
add_bullet(doc, "Pulmonary veins run intersegmentally (between segments).")
add_bullet(doc, "Shape: irregular cone, apex at hilum, base on pleural surface.")
add_bullet(doc, "Can be surgically resected without affecting adjacent segments (segmentectomy).")
add_subheading(doc, "Right Lung – 10 Segments")
t = doc.add_table(rows=11, cols=3)
t.style = 'Table Grid'
for i, h in enumerate(["Lobe", "No.", "Segment Name"]):
t.rows[0].cells[i].text = h
for p in t.rows[0].cells[i].paragraphs:
for r in p.runs: r.bold = True; r.font.size = Pt(9)
seg_data = [
("Upper (Superior)", "1", "Apical"),
("", "2", "Posterior"),
("", "3", "Anterior"),
("Middle", "4", "Lateral"),
("", "5", "Medial"),
("Lower (Inferior)", "6", "Superior (apical)"),
("", "7", "Medial basal (cardiac)"),
("", "8", "Anterior basal"),
("", "9", "Lateral basal"),
("", "10", "Posterior basal"),
]
for i, (lobe, num, name) in enumerate(seg_data):
cells = t.rows[i+1].cells
cells[0].text = lobe; cells[1].text = num; cells[2].text = name
for c in cells:
for p in c.paragraphs:
for r in p.runs: r.font.size = Pt(9)
add_subheading(doc, "Left Lung – 8 named segments (10 bronchi but some fuse)")
add_bullet(doc, "Upper lobe: Apico-posterior (1+2 fused), Anterior (3), Superior lingular (4), Inferior lingular (5)")
add_bullet(doc, "Lower lobe: Superior/apical (6), Anteromedial basal (7+8 fused), Lateral basal (9), Posterior basal (10)")
add_subheading(doc, "Applied")
add_bullet(doc, "Segments 2 (posterior, upper lobe) and 6 (superior, lower lobe) are commonest sites of lung abscess – gravity dependent in lying/sitting positions.", italic=True)
add_bullet(doc, "Foreign body more commonly enters right bronchus – it is wider, shorter, more vertical than left.", italic=True)
add_bullet(doc, "Surgical importance: segmentectomy for localised bronchiectasis, TB, carcinoid tumour.", italic=True)
add_rule(doc)
# ══════════════════════════════════════════════════════════════════════════════
# Q 4 – SUPPORTS OF UTERUS
# ══════════════════════════════════════════════════════════════════════════════
add_heading(doc, "Q4. Supports of the Uterus")
add_body(doc, "Marks: 5 (short note) or part of 10-mark essay. Appears every year.")
add_marks_box(doc, "Mark Allocation (5 marks): Ligaments 3 | Pelvic floor / perineal body 1 | Applied 1")
add_subheading(doc, "A. Ligamentous / Fibromuscular Supports (main supports)")
add_bullet(doc, "1. Transverse cervical (cardinal / Mackenrodt's) ligament – MOST IMPORTANT")
add_bullet(doc, " Extends from cervix + lateral vaginal fornix → lateral pelvic wall.", level=1)
add_bullet(doc, " Runs in base of broad ligament; contains uterine artery, ureter, and veins.", level=1)
add_bullet(doc, "2. Uterosacral ligaments – from cervix/upper vagina → sacrum; maintain anteversion.")
add_bullet(doc, "3. Pubocervical ligaments – from cervix → back of pubis; support anterior vaginal wall.")
add_bullet(doc, "4. Round ligaments – from uterine cornua → inguinal canal → labia majora; maintain anteflexion (weak support).")
add_bullet(doc, "5. Broad ligaments – double fold of peritoneum; not true support, contain neurovascular structures.")
add_subheading(doc, "B. Muscular / Pelvic Floor Supports")
add_bullet(doc, "Levator ani (pubococcygeus + iliococcygeus + puborectalis) – primary muscular floor support.")
add_bullet(doc, "Perineal body – fibromuscular node at centre of perineum; anchors many perineal muscles.")
add_bullet(doc, "Urogenital diaphragm – supports bladder neck and vagina anteriorly.")
add_subheading(doc, "Applied (Uterine Prolapse)")
add_bullet(doc, "Damage to levator ani + transverse cervical ligaments (e.g., difficult childbirth) → uterine prolapse.", italic=True)
add_bullet(doc, "1st degree: cervix descends but remains inside vagina.", italic=True)
add_bullet(doc, "2nd degree: cervix at vaginal orifice.", italic=True)
add_bullet(doc, "3rd degree (procidentia): entire uterus outside vagina.", italic=True)
add_rule(doc)
# ══════════════════════════════════════════════════════════════════════════════
# Q 5 – ANTERIOR RELATIONS OF KIDNEY
# ══════════════════════════════════════════════════════════════════════════════
add_heading(doc, "Q5. Anterior Relations of the Kidney")
add_body(doc, "Marks: 5 (short note). Appears every year. Right & left compared.")
add_marks_box(doc, "Mark Allocation (5 marks): Right kidney 2 | Left kidney 2 | Applied 1")
add_subheading(doc, "Right Kidney – Anterior Relations (medial → lateral, top → bottom)")
add_bullet(doc, "Suprarenal gland (superomedial part)")
add_bullet(doc, "Duodenum (2nd part / descending) – retroperitoneal, covers hilum and medial part")
add_bullet(doc, "Right lobe of liver (hepatic impression) – large area on upper anterior surface")
add_bullet(doc, "Right colic (hepatic) flexure – inferolateral")
add_bullet(doc, "Small intestine (jejunal loops) – occasionally inferolateral")
add_bullet(doc, "Note: Liver and duodenum are separated from kidney by peritoneum on hepatic surface but duodenum is retroperitoneal.")
add_subheading(doc, "Left Kidney – Anterior Relations")
add_bullet(doc, "Suprarenal gland (superomedial)")
add_bullet(doc, "Stomach (fundus and body) – separated by lesser sac peritoneum")
add_bullet(doc, "Spleen (lateral surface) – splenal impression")
add_bullet(doc, "Body of pancreas (crosses anterior surface) – retroperitoneal, no intervening peritoneum")
add_bullet(doc, "Splenic vessels (along superior border of pancreas)")
add_bullet(doc, "Left colic (splenic) flexure – inferolateral")
add_bullet(doc, "Descending colon – inferolateral")
add_bullet(doc, "Small intestine (jejunal loops) – inferior part, separated by peritoneum")
add_subheading(doc, "Applied")
add_bullet(doc, "Renal surgery: the duodenum (right) and pancreas (left) must be carefully displaced – injury causes serious complications.", italic=True)
add_bullet(doc, "Perinephric abscess may track along these relations into paraduodenal / paracolic regions.", italic=True)
add_rule(doc)
# ══════════════════════════════════════════════════════════════════════════════
# Q 6 – PLACENTA: DEVELOPMENT & PRAEVIA
# ══════════════════════════════════════════════════════════════════════════════
add_heading(doc, "Q6. Development of Placenta & Placenta Praevia")
add_body(doc, "Marks: 5+2 (development + praevia) or 3–7 marks. Appears every year.")
add_marks_box(doc, "Mark Allocation (7 marks): Development 4 | Types of praevia 2 | Applied 1")
add_subheading(doc, "Development of Placenta (steps)")
add_bullet(doc, "Week 1–2: Blastocyst implants in posterior wall of uterine body. Syncytiotrophoblast invades decidua.")
add_bullet(doc, "Week 2: Primary chorionic villi form (syncytiotrophoblast + cytotrophoblast core).")
add_bullet(doc, "Week 3: Secondary villi (mesenchyme enters core) → Tertiary villi (blood vessels appear in core).")
add_bullet(doc, "Week 4–8: Villous chorion (chorion frondosum) on embryonic pole → definitive placenta. Rest becomes smooth chorion laeve.")
add_bullet(doc, "Maternal component: Decidua basalis (basal plate). Placenta is thus haemochorial in humans.")
add_bullet(doc, "Cotyledons (15–30): formed by septa of decidua basalis dividing intervillous space.")
add_bullet(doc, "At term: disc-shaped, 20 cm diameter, 500 g weight, 3 cm thick.")
add_subheading(doc, "Types of Placenta Praevia (abnormal low implantation)")
add_bullet(doc, "Type I (Low-lying): placental edge in lower uterine segment but not reaching os.")
add_bullet(doc, "Type II (Marginal): placental edge just reaches but does not cover internal os.")
add_bullet(doc, "Type III (Partial): placenta partially covers internal os.")
add_bullet(doc, "Type IV (Central/Complete): placenta completely covers internal os.")
add_subheading(doc, "Applied")
add_bullet(doc, "Painless bright red antepartum haemorrhage (as in the 2025 Q) = classic symptom of placenta praevia.", italic=True)
add_bullet(doc, "USG at 20-week anomaly scan detects low-lying placenta.", italic=True)
add_bullet(doc, "Delivery: Type III/IV requires elective Caesarean section.", italic=True)
add_bullet(doc, "Risk factors: previous CS scar, uterine fibroids, multiparity, advanced maternal age.", italic=True)
add_rule(doc)
# ══════════════════════════════════════════════════════════════════════════════
# Q 7 – INGUINAL CANAL & HERNIA
# ══════════════════════════════════════════════════════════════════════════════
add_heading(doc, "Q7. Inguinal Canal & Differentiation of Direct vs Indirect Hernia")
add_body(doc, "Marks: 5+2 (differentiation + factors preventing) as in 2025 paper, or 7–12 marks essay.")
add_marks_box(doc, "Mark Allocation (5 marks): Boundaries of canal 2 | Direct vs indirect table 2 | Factors 1")
add_subheading(doc, "Inguinal Canal – Boundaries")
add_bullet(doc, "Length: 4 cm, runs obliquely above medial half of inguinal ligament.")
add_bullet(doc, "Anterior wall: external oblique aponeurosis (whole length) + internal oblique (lateral 1/3).")
add_bullet(doc, "Posterior wall: transversalis fascia (whole) + conjoint tendon (medial 1/3).")
add_bullet(doc, "Roof: arching fibres of internal oblique + transversus abdominis.")
add_bullet(doc, "Floor: inguinal ligament + lacunar ligament (medially).")
add_bullet(doc, "Deep (internal) ring: opening in transversalis fascia, lateral to inferior epigastric vessels.")
add_bullet(doc, "Superficial (external) ring: opening in ext. oblique aponeurosis, above pubic tubercle.")
add_subheading(doc, "Direct vs Indirect Inguinal Hernia")
t2 = doc.add_table(rows=6, cols=3)
t2.style = 'Table Grid'
for i, h in enumerate(["Feature", "Indirect", "Direct"]):
t2.rows[0].cells[i].text = h
for p in t2.rows[0].cells[i].paragraphs:
for r in p.runs: r.bold = True; r.font.size = Pt(9)
comp_data = [
("Passage through deep ring", "Yes – passes through deep ring", "No – directly through posterior wall"),
("Site relative to inf. epigastric", "Lateral to vessels", "Medial to vessels (Hesselbach's triangle)"),
("Relation to spermatic cord", "Within cord coverings", "Outside cord coverings"),
("Age / cause", "Congenital or young adults; patent processus vaginalis", "Older men; muscle weakness"),
("Strangulation risk", "Higher (narrow neck)", "Lower (wide neck)"),
]
for i, row in enumerate(comp_data):
cells = t2.rows[i+1].cells
for j, val in enumerate(row):
cells[j].text = val
for p in cells[j].paragraphs:
for r in p.runs: r.font.size = Pt(9)
add_subheading(doc, "Factors Preventing Inguinal Hernia")
add_bullet(doc, "Oblique direction of canal (shutter mechanism): any rise in intra-abdominal pressure compresses canal.")
add_bullet(doc, "Conjoint tendon: strengthens medial posterior wall; descends like a curtain over deep ring on straining.")
add_bullet(doc, "Internal oblique contraction: arches over and plugs deep ring.")
add_bullet(doc, "Tone of anterior abdominal muscles.")
add_bullet(doc, "Scrotal ligament (gubernaculum remnant) holds testis and keeps canal angled.")
add_rule(doc)
# ══════════════════════════════════════════════════════════════════════════════
# Q 8 – PORTAL HYPERTENSION & HAEMATEMESIS
# ══════════════════════════════════════════════════════════════════════════════
add_heading(doc, "Q8. Portal Hypertension – Why Haematemesis Occurs")
add_body(doc, "Marks: 3 (explain why) or 7–10 marks (essay with portal vein formation).")
add_marks_box(doc, "Mark Allocation (3 marks): Cause of portal HTN 0.5 | PSA sites 2 | Mechanism of haematemesis 0.5")
add_subheading(doc, "Normal Portal Circulation")
add_bullet(doc, "Portal vein (formed behind neck of pancreas by SMV + splenic vein) carries nutrient-rich blood from gut to liver.")
add_bullet(doc, "Normal portal pressure: 5–10 mmHg. Portal hypertension: >12 mmHg.")
add_subheading(doc, "Sites of Porto-systemic Anastomosis (PSA)")
t3 = doc.add_table(rows=6, cols=3)
t3.style = 'Table Grid'
for i, h in enumerate(["Site", "Portal tributary", "Systemic tributary"]):
t3.rows[0].cells[i].text = h
for p in t3.rows[0].cells[i].paragraphs:
for r in p.runs: r.bold = True; r.font.size = Pt(9)
psa = [
("Lower oesophagus ⬅ KEY", "Oesophageal tributaries of left gastric (coronary) vein", "Oesophageal tributaries of azygos system"),
("Lower rectum / anus", "Superior rectal vein (portal)", "Middle & inferior rectal veins (systemic)"),
("Umbilicus (paraumbilical)", "Paraumbilical veins (in falciform lig)", "Superficial epigastric veins (caput medusae)"),
("Bare area of liver", "Portal tributaries", "Diaphragmatic/hepatic veins"),
("Retroperitoneal", "Colic/mesenteric veins", "Renal/lumbar veins"),
]
for i, row in enumerate(psa):
cells = t3.rows[i+1].cells
for j, val in enumerate(row):
cells[j].text = val
for p in cells[j].paragraphs:
for r in p.runs: r.font.size = Pt(9)
add_subheading(doc, "Mechanism of Haematemesis")
add_bullet(doc, "Portal HTN → back-pressure in left gastric vein → dilatation of oesophageal submucosal veins (oesophageal varices).")
add_bullet(doc, "Varices at lower 1/3 of oesophagus are thin-walled, superficial, and unsupported by muscle.")
add_bullet(doc, "Rupture of varices → massive, painless haematemesis (vomiting of blood).")
add_bullet(doc, "Also: rectal varices → haematochezia; paraumbilical varices → caput medusae.", italic=True)
add_rule(doc)
# ══════════════════════════════════════════════════════════════════════════════
# Q 9 – SYNOVIAL JOINTS
# ══════════════════════════════════════════════════════════════════════════════
add_heading(doc, "Q9. Classification of Synovial Joints")
add_body(doc, "Marks: 5–7 (short note or essay). Based on shape of articular surfaces + axis of movement.")
add_marks_box(doc, "Mark Allocation (5 marks): Characteristics 1 | Classification table 3 | Examples 1")
add_subheading(doc, "Characteristics of Synovial Joints")
add_bullet(doc, "Articular cartilage (hyaline) on facing bone surfaces.")
add_bullet(doc, "Joint cavity containing synovial fluid.")
add_bullet(doc, "Synovial membrane lining non-articular surfaces.")
add_bullet(doc, "Fibrous joint capsule.")
add_bullet(doc, "May have additional features: intra-articular discs (menisci), labra, tendons.")
add_subheading(doc, "Classification by Shape of Articular Surface & Movement")
t4 = doc.add_table(rows=8, cols=4)
t4.style = 'Table Grid'
for i, h in enumerate(["Type", "Shape", "Movement/Axes", "Example"]):
t4.rows[0].cells[i].text = h
for p in t4.rows[0].cells[i].paragraphs:
for r in p.runs: r.bold = True; r.font.size = Pt(9)
sj = [
("Plane (gliding)", "Flat / slightly curved surfaces", "Gliding only (non-axial)", "Acromioclavicular, intercarpal"),
("Hinge (ginglymus)", "Convex fits concave (pulley)", "Flexion/extension (uniaxial)", "Elbow (humeroulnar), ankle"),
("Pivot (trochoid)", "Rounded peg in ring", "Rotation only (uniaxial)", "Atlantoaxial (median), proximal radioulnar"),
("Condyloid (ellipsoid)", "Oval convex in elliptical concave", "Flex/ext + ab/adduction (biaxial)", "Radiocarpal (wrist), MCP joints"),
("Saddle (sellar)", "Each surface concave in one plane, convex in other", "Flex/ext + ab/adduction (biaxial)", "1st carpometacarpal (thumb)"),
("Ball-and-socket (spheroidal)", "Spherical head in cup", "All movements including rotation (multiaxial)", "Hip, shoulder (glenohumeral)"),
("Bicondylar", "Two convex condyles articulate with two concave surfaces", "Mainly flexion/extension; some rotation", "Knee (tibiofemoral), temporomandibular"),
]
for i, row in enumerate(sj):
cells = t4.rows[i+1].cells
for j, val in enumerate(row):
cells[j].text = val
for p in cells[j].paragraphs:
for r in p.runs: r.font.size = Pt(9)
add_rule(doc)
# ══════════════════════════════════════════════════════════════════════════════
# Q 10 – NOTOCHORD & ITS REMNANTS
# ══════════════════════════════════════════════════════════════════════════════
add_heading(doc, "Q10. Notochord and Its Remnants in Adult Life")
add_body(doc, "Marks: 3–5 (short note). Appears almost every year.")
add_marks_box(doc, "Mark Allocation (5 marks): Development/fate 2 | Remnants 2 | Applied 1")
add_subheading(doc, "Development of Notochord")
add_bullet(doc, "Formed during 3rd week of embryonic life (gastrulation).")
add_bullet(doc, "Develops from the primitive node (Hensen's node) as a cellular rod of mesoderm.")
add_bullet(doc, "Runs from the buccopharyngeal membrane → cloacal membrane in the midline.")
add_bullet(doc, "Functions: (a) defines the long axis of embryo, (b) induces overlying ectoderm to form neural plate (neurulation), (c) induces surrounding mesoderm to form vertebral bodies.")
add_bullet(doc, "Once vertebral column forms, the notochord is incorporated into and largely replaced by the vertebral bodies.")
add_subheading(doc, "Remnants in Adult Life")
add_bullet(doc, "1. Nucleus pulposus of intervertebral disc – MAIN REMNANT")
add_bullet(doc, " - The notochord persists at the centre of each intervertebral disc as the gelatinous nucleus pulposus.", level=1)
add_bullet(doc, " - Surrounded by the fibrocartilaginous annulus fibrosus (from sclerotome mesoderm).", level=1)
add_bullet(doc, "2. Apical ligament of dens – small fibrous band from tip of dens to anterior margin of foramen magnum.")
add_bullet(doc, "3. Vestiges within vertebral bodies – small remnants at centre of each vertebral body (notochordal canal); usually disappear by adulthood.")
add_subheading(doc, "Applied")
add_bullet(doc, "Nucleus pulposus degeneration: with age, the NP loses water content → disc prolapse (IVDP).", italic=True)
add_bullet(doc, "Posterolateral prolapse is most common (posterior longitudinal ligament weak laterally) → compresses nerve root.", italic=True)
add_bullet(doc, "Chordoma: rare malignant tumour arising from notochordal remnants; commonest at clivus (base of skull) and sacrococcygeal region.", italic=True)
add_rule(doc)
# ── final footer ──────────────────────────────────────────────────────────────
p_footer = doc.add_paragraph()
r = p_footer.add_run(
"Sources: Gray's Anatomy for Students (8e), BD Chaurasia's Human Anatomy (Vols 1–3), "
"Inderbir Singh's Human Embryology, WBUHS PYQ compilations 2010–2025 "
"(Medical Junction, IQ City). Mark allocations based on WBUHS marking pattern analysis."
)
r.italic = True
r.font.size = Pt(8)
r.font.color.rgb = GREY
out = "/tmp/workspace/anatomy-pyq/WBUHS_Anatomy_Top10_MarkSchemes.docx"
doc.save(out)
print(f"Saved → {out}")
python /tmp/workspace/anatomy-pyq/build_markscheme.py
python3 -c " from docx import Document doc = Document('/tmp/workspace/anatomy-pyq/WBUHS_Anatomy_Top10_MarkSchemes.docx') headings = [p.text for p in doc.paragraphs if p.style.name.startswith('Heading')] print('Headings found:', len(headings)) for h in headings: print(' -', h) print('Total paragraphs:', len(doc.paragraphs)) print('Total tables:', len(doc.tables)) "
WBUHS Anatomy Top10 MarkSchemes
Word Document · DOCX
| # | Topic | Frequency |
|---|---|---|
| 1 | Lymphatic drainage of mammary gland | Every year 2010–2025 |
| 2 | Coronary arterial supply + dominance | Every exam since 2010 |
| 3 | Bronchopulmonary segments (right lung) | Every alternate year+ |
| 4 | Supports of uterus | Every year |
| 5 | Anterior relations of kidney | Every year |
| 6 | Placenta – development & praevia | Every year |
| 7 | Inguinal canal & direct vs indirect hernia | Most years |
| 8 | Portal hypertension – haematemesis | Every year since 2011 |
| 9 | Classification of synovial joints | Every year |
| 10 | Notochord and its remnants | Most years |
| Lobe | No. | Segment |
|---|---|---|
| Upper | 1 | Apical |
| Upper | 2 | Posterior |
| Upper | 3 | Anterior |
| Middle | 4 | Lateral |
| Middle | 5 | Medial |
| Lower | 6 | Superior (apical) |
| Lower | 7 | Medial basal (cardiac) |
| Lower | 8 | Anterior basal |
| Lower | 9 | Lateral basal |
| Lower | 10 | Posterior basal |
| Feature | Indirect | Direct |
|---|---|---|
| Passes through deep ring | Yes | No |
| Relation to inf. epigastric vessels | Lateral | Medial (Hesselbach's triangle) |
| Within cord coverings | Yes | No |
| Cause | Patent processus vaginalis / congenital | Muscle weakness / old age |
| Strangulation risk | Higher (narrow neck) | Lower (wide neck) |
| Site | Portal | Systemic |
|---|---|---|
| Lower oesophagus ⬅ KEY | Left gastric (coronary) vein | Oesophageal tributaries of azygos |
| Lower rectum | Superior rectal | Middle/inferior rectal |
| Umbilicus | Paraumbilical veins | Superficial epigastric (caput medusae) |
| Bare area of liver | Portal | Diaphragmatic veins |
| Retroperitoneal | Colic veins | Renal/lumbar veins |
| Type | Shape | Movement | Example |
|---|---|---|---|
| Plane | Flat | Gliding (non-axial) | Acromioclavicular, intercarpal |
| Hinge | Pulley | Flex/ext (uniaxial) | Elbow (humeroulnar), ankle |
| Pivot | Peg-in-ring | Rotation (uniaxial) | Atlantoaxial (median), proximal radioulnar |
| Condyloid | Oval head/socket | Flex/ext + ab/adduction (biaxial) | Wrist (radiocarpal), MCP |
| Saddle | Concavo-convex both ways | Flex/ext + ab/adduction (biaxial) | 1st carpometacarpal (thumb) |
| Ball-and-socket | Sphere in cup | All planes + rotation (multiaxial) | Hip, shoulder |
| Bicondylar | Two condyles | Flex/ext + limited rotation | Knee, TMJ |