What are chief complaints of varicose veins

Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Here is a detailed, textbook-based breakdown of the chief complaints in varicose veins:

Chief Complaints of Varicose Veins

1. Pain and Discomfort

  • Aching, heaviness, throbbing, burning, or "bursting" sensation over the affected areas and sometimes the whole limb
  • Symptoms typically worsen throughout the day and with prolonged standing or sitting
  • Relieved by leg elevation above the level of the heart or by compression hosiery

2. Cosmetic Concern

  • Visible, dilated, tortuous, bulging subcutaneous veins - the most obvious presenting complaint
  • Patients may also notice telangiectasias (spider veins) and fine reticular varicosities
  • Cosmetic concern is frequently what prompts the patient to seek care, even when physical symptoms are mild

3. Swelling (Edema)

  • Ankle and leg swelling - often mild in uncomplicated cases but can progress
  • Swelling worsens with prolonged standing and improves with limb elevation

4. Itching (Pruritus)

  • Itching over the varicose veins is common
  • More pronounced when complications such as stasis dermatitis (venous eczema) are present

5. Leg Fatigue

  • A sense of early fatigue and heaviness in the affected leg, especially after activity

6. Complications that Bring Patients to Attention

When the disease progresses, patients may present with:
  • Superficial thrombophlebitis - pain, redness, and tenderness along a thrombosed vein
  • Bleeding - from attenuated, thin-walled vein clusters (can be alarming, even though rarely life-threatening)
  • Skin changes:
    • Hyperpigmentation (hemosiderin staining)
    • Lipodermatosclerosis (hardening and fibrosis of the skin and subcutaneous fat)
    • Stasis/venous eczema
  • Venous ulceration - active ulcers near the medial malleolus in advanced disease

CEAP Clinical Classification (Severity Spectrum)

ClassFinding
C1Telangiectasias / reticular veins
C2Varicose veins
C3Edema
C4aPigmentation or eczema
C4bLipodermatosclerosis
C5Healed venous ulcer
C6Active venous ulcer

Key Features of Varicose Vein Symptoms

  • Symptoms can be severe enough to interfere with daily activities (work, recreation, child-care) and are associated with a measurable deficit in health-related quality of life
  • Importantly, symptom severity does not necessarily correlate with the degree of venous incompetence or the presence of skin changes
  • Telangiectasias and reticular veins alone usually cause no physical symptoms - only cosmetic concern

Sources:
  • Bailey and Love's Short Practice of Surgery, 28th Edition, pp. 1052-1053
  • Schwartz's Principles of Surgery, 11th Edition
  • Pfenninger and Fowler's Procedures for Primary Care, 3rd Edition

What risk factors increase the likelihood of developing varicose veins?

Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Here is a thorough, textbook-based breakdown of the risk factors for varicose veins:

Risk Factors for Varicose Veins

1. Age

Prevalence rises steeply with age. Data from the Edinburgh Vein Study shows this clearly:
Age GroupPrevalence of Trunk Varicosities
18-24 years11.5%
25-34 years14.6%
35-44 years28.8%
45-54 years41.9%
55-64 years55.7%
A large Italian study confirmed that saphenous vein incompetence was found in 53% of patients over 50 years old, and saphenous varicose veins were 5.9 times more likely in older versus younger subjects.

2. Female Sex

The majority of studies report a higher prevalence in women than men. Women are:
  • 4 times more likely than nulliparous men to develop telangiectasias
  • Significantly more likely to develop saphenous and non-saphenous varicosities
However, some community-based studies show less of a gender gap than clinic-based data, likely due to reporting bias (women seek care more often).

3. Pregnancy and Multiparity

Pregnancy is a well-established risk factor. The mechanism involves:
  • Elevated intra-abdominal pressure compressing pelvic veins
  • Hormonal changes causing venous wall relaxation and dilation
  • Increased blood volume
Multiparity compounds the risk:
  • Women with >3 children have significantly higher rates of telangiectasias (75.7% vs 63.4%), saphenous varicosities (35.5% vs 12.0%), and non-saphenous varicosities (50.5% vs 19.6%) compared to nulliparous women.

4. Family History / Genetics

Evidence strongly supports familial susceptibility. A positive family history is associated with a significantly higher prevalence of varicose veins and venous incompetence. The underlying mechanism appears to be an intrinsic weakness or structural abnormality of the vein wall itself, which predisposes to dilation and secondary valve incompetence.

5. Obesity (Elevated BMI)

Increasing body mass index is associated with higher prevalence of varicose veins. Obesity raises intra-abdominal pressure, impairs venous return, and increases mechanical stress on the venous valves. It is a risk factor for both varicose veins specifically and chronic venous insufficiency (CVI) more broadly.

6. Tall Stature / Height

Increasing height is also associated with a higher prevalence, likely because of the greater hydrostatic pressure column that the venous system must work against in taller individuals.

7. Prolonged Standing and Occupation

There is inconclusive but suggestive evidence that occupations involving prolonged standing increase the risk. Standing raises sustained venous pressure in the legs, which over time may lead to valve incompetence and wall dilation.

8. Prior Deep Vein Thrombosis (DVT) - Secondary Varicose Veins

DVT is a cause of secondary varicose veins. Post-thrombotic scarring and inflammation destroys venous valves and causes obstruction, leading to chronic venous hypertension and secondary development of varicose veins (post-thrombotic syndrome).

9. Venous Reflux Pattern

From a pathophysiological perspective, the presence of superficial venous reflux doubles the risk of clinical progression. Combined superficial and deep reflux increases progression by 2.6 times, and small saphenous vein (SSV) reflux by nearly 5 times.

10. Hormonal Factors (Debated)

  • Hormone replacement therapy (HRT): Associated with telangiectasias in some studies
  • Oral contraceptives: Evidence is mixed; at least one large study (Jukkola et al., n=3590) found no significant increase in varicose vein risk with OCP use
  • Progesterone's venodilatory effect is the proposed biological mechanism

11. Ethnicity

Ethnicity appears to influence prevalence, though the data is less well-defined compared to other risk factors.

12. Constipation and Lifestyle Factors

Evidence is inconclusive but some studies suggest that chronic straining (as in constipation) may increase intra-abdominal pressure and contribute to varicose vein development over time.

Summary Table

Risk FactorStrength of Evidence
AgeStrong
Female sexStrong
Pregnancy / MultiparityStrong
Family historyStrong
ObesityStrong
Tall statureModerate
Prolonged standingInconclusive
Prior DVT (secondary VV)Strong (for secondary type)
HRTModerate / Mixed
OCP useInconclusive
EthnicityModerate
ConstipationWeak / Inconclusive

Sources:
  • Bailey and Love's Short Practice of Surgery, 28th Edition - Edinburgh Vein Study data
  • Fitzpatrick's Dermatology, 5th Edition - Italian vein study, parity data
  • Schwartz's Principles of Surgery, 11th Edition
  • Mulholland and Greenfield's Surgery, 7th Edition

Prepare a notes on varicose veins including all the latest theory and practical rguhs questions In pdf format

Reading File
Finding Sources
Searching the Web

RGUHS surgery varicose veins past year questions theory practical

Reading File
Reading Web Page

https://www.scribd.com/document/272946304/MS-General-Surgery…

Finding Sources
Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
Reading File
Reading File
Running Command

mkdir -p /home/daytona/workspace/varicose-veins-notes && ls /home/daytona/workspace/varicose-veins-notes

Writing File

~/varicose-veins-notes/generate_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether, PageBreak
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import ListFlowable, ListItem

OUTPUT = "/home/daytona/workspace/varicose-veins-notes/Varicose_Veins_RGUHS_Notes.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=2*cm, leftMargin=2*cm,
    topMargin=2.2*cm, bottomMargin=2.2*cm
)

# ── Colour palette ──────────────────────────────────────────────
DARK_BLUE   = colors.HexColor("#1A3557")
MED_BLUE    = colors.HexColor("#2E6DA4")
LIGHT_BLUE  = colors.HexColor("#D6E8F7")
ACCENT      = colors.HexColor("#E84545")
GOLD        = colors.HexColor("#F0A500")
PALE_YELLOW = colors.HexColor("#FFFBEA")
PALE_GREEN  = colors.HexColor("#EAF7EA")
PALE_RED    = colors.HexColor("#FFF0F0")
WHITE       = colors.white
GREY_LINE   = colors.HexColor("#AAAAAA")
DARK_TEXT   = colors.HexColor("#1C1C1C")

styles = getSampleStyleSheet()

# ── Custom paragraph styles ──────────────────────────────────────
cover_title = ParagraphStyle(
    "cover_title", fontSize=28, leading=34,
    textColor=WHITE, alignment=TA_CENTER, fontName="Helvetica-Bold"
)
cover_sub = ParagraphStyle(
    "cover_sub", fontSize=14, leading=18,
    textColor=colors.HexColor("#D0E8FF"), alignment=TA_CENTER, fontName="Helvetica"
)
cover_tag = ParagraphStyle(
    "cover_tag", fontSize=11, leading=15,
    textColor=GOLD, alignment=TA_CENTER, fontName="Helvetica-Bold"
)

h1 = ParagraphStyle(
    "h1", fontSize=15, leading=20, spaceBefore=14, spaceAfter=4,
    textColor=WHITE, fontName="Helvetica-Bold", backColor=DARK_BLUE,
    leftIndent=-4, rightIndent=-4, borderPad=6
)
h2 = ParagraphStyle(
    "h2", fontSize=12, leading=16, spaceBefore=10, spaceAfter=3,
    textColor=DARK_BLUE, fontName="Helvetica-Bold",
    borderPad=2
)
h3 = ParagraphStyle(
    "h3", fontSize=10.5, leading=14, spaceBefore=7, spaceAfter=2,
    textColor=MED_BLUE, fontName="Helvetica-Bold"
)
body = ParagraphStyle(
    "body", fontSize=9.5, leading=14, spaceBefore=2, spaceAfter=2,
    textColor=DARK_TEXT, fontName="Helvetica", alignment=TA_JUSTIFY
)
bullet_style = ParagraphStyle(
    "bullet_style", fontSize=9.5, leading=13, spaceBefore=1, spaceAfter=1,
    textColor=DARK_TEXT, fontName="Helvetica",
    leftIndent=14, firstLineIndent=-10
)
important_box = ParagraphStyle(
    "important_box", fontSize=9.5, leading=13, spaceBefore=4, spaceAfter=4,
    textColor=colors.HexColor("#7B0000"), fontName="Helvetica-Bold",
    backColor=PALE_RED, borderPad=6, leftIndent=4, rightIndent=4
)
note_style = ParagraphStyle(
    "note_style", fontSize=9, leading=13, spaceBefore=2, spaceAfter=2,
    textColor=colors.HexColor("#005700"), fontName="Helvetica-Oblique",
    backColor=PALE_GREEN, borderPad=4, leftIndent=4
)
q_header = ParagraphStyle(
    "q_header", fontSize=11, leading=15, spaceBefore=6, spaceAfter=3,
    textColor=WHITE, fontName="Helvetica-Bold", backColor=ACCENT,
    leftIndent=-4, rightIndent=-4, borderPad=5
)
q_style = ParagraphStyle(
    "q_style", fontSize=9.5, leading=14, spaceBefore=3, spaceAfter=2,
    textColor=DARK_TEXT, fontName="Helvetica",
    leftIndent=14, firstLineIndent=-10
)
footer_note = ParagraphStyle(
    "footer_note", fontSize=8, leading=11,
    textColor=colors.grey, fontName="Helvetica-Oblique", alignment=TA_CENTER
)
tag_style = ParagraphStyle(
    "tag_style", fontSize=8, leading=11,
    textColor=WHITE, fontName="Helvetica-Bold",
    backColor=MED_BLUE, borderPad=3
)

def HR():
    return HRFlowable(width="100%", thickness=1, color=GREY_LINE, spaceAfter=4, spaceBefore=4)

def section(title):
    return [Spacer(1, 6), Paragraph(f"  {title}", h1), Spacer(1, 4)]

def subsection(title):
    return [Paragraph(title, h2)]

def subsubsection(title):
    return [Paragraph(title, h3)]

def p(text):
    return Paragraph(text, body)

def b(text):
    return Paragraph(f"• {text}", bullet_style)

def imp(text):
    return Paragraph(f"⚠  {text}", important_box)

def note(text):
    return Paragraph(f"✎  {text}", note_style)

def spacer(h=4):
    return Spacer(1, h)

story = []

# ═══════════════════════════════════════════════════════════════
#  COVER PAGE
# ═══════════════════════════════════════════════════════════════
cover_bg = Table(
    [[Paragraph("VARICOSE VEINS", cover_title)],
     [Spacer(1, 10)],
     [Paragraph("Comprehensive Study Notes", cover_sub)],
     [Spacer(1, 6)],
     [Paragraph("Theory + Clinical Examination + RGUHS Past Year Questions", cover_tag)],
     [Spacer(1, 30)],
     [Paragraph("General Surgery | MBBS / MS Examination Preparation", cover_sub)],
     [Spacer(1, 8)],
     [Paragraph("Based on: Bailey & Love (28th Ed) • Schwartz's Surgery (11th Ed)", cover_sub)],
     [Paragraph("Pfenninger & Fowler • Fitzpatrick's Dermatology • Gray's Anatomy", cover_sub)],
     [Spacer(1, 40)],
     [Paragraph("RGUHS — Rajiv Gandhi University of Health Sciences", cover_tag)],
     [Spacer(1, 6)],
     [Paragraph("July 2026", cover_sub)],
    ],
    colWidths=[17*cm]
)
cover_bg.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
    ("ALIGN", (0,0), (-1,-1), "CENTER"),
    ("TOPPADDING", (0,0), (-1,-1), 2),
    ("BOTTOMPADDING", (0,0), (-1,-1), 2),
    ("LEFTPADDING", (0,0), (-1,-1), 20),
    ("RIGHTPADDING", (0,0), (-1,-1), 20),
    ("ROUNDEDCORNERS", (0,0), (-1,-1), [12,12,12,12]),
]))

story.append(Spacer(1, 1.5*cm))
story.append(cover_bg)
story.append(PageBreak())

# ═══════════════════════════════════════════════════════════════
#  1. DEFINITION & INTRODUCTION
# ═══════════════════════════════════════════════════════════════
story += section("1. DEFINITION & INTRODUCTION")
story.append(p(
    "Varicose veins are abnormally dilated, tortuous, elongated superficial veins of the lower "
    "limb resulting from persistent venous hypertension and valvular incompetence. They represent "
    "one of the most common conditions causing physical impairment in quality of life, with an "
    "adult prevalence of 30–50%."
))
story.append(spacer())
story += subsection("Classification")
data = [
    [Paragraph("<b>Type</b>", body), Paragraph("<b>Description</b>", body)],
    [Paragraph("Primary (Idiopathic)", body), Paragraph("Intrinsic weakness of venous wall or valvular incompetence; no underlying deep vein disease", body)],
    [Paragraph("Secondary", body), Paragraph("Due to deep vein obstruction (post-DVT), pelvic tumours, AV fistula, or pregnancy", body)],
    [Paragraph("Congenital", body), Paragraph("Klippel-Trenaunay syndrome, absent/absent valves", body)],
]
t = Table(data, colWidths=[5*cm, 12*cm])
t.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
    ("TEXTCOLOR", (0,0), (-1,0), WHITE),
    ("BACKGROUND", (0,1), (-1,1), LIGHT_BLUE),
    ("BACKGROUND", (0,2), (-1,2), WHITE),
    ("BACKGROUND", (0,3), (-1,3), LIGHT_BLUE),
    ("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
    ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
    ("TOPPADDING", (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING", (0,0), (-1,-1), 6),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(t)

# ═══════════════════════════════════════════════════════════════
#  2. SURGICAL ANATOMY
# ═══════════════════════════════════════════════════════════════
story += section("2. SURGICAL ANATOMY")
story += subsection("Superficial Venous System of Lower Limb")
story.append(b("<b>Great Saphenous Vein (GSV):</b> Longest vein in the body. Originates at the dorsal venous arch of the foot, ascends medially, passes anterior to medial malleolus, and drains into the common femoral vein at the saphenofemoral junction (SFJ) in the femoral triangle, 3.5 cm below and lateral to the pubic tubercle."))
story.append(b("<b>Small Saphenous Vein (SSV):</b> Originates posterior to the lateral malleolus, ascends the posterior calf, and drains into the popliteal vein at the saphenopopliteal junction (SPJ) in the popliteal fossa."))
story.append(b("<b>Perforating (Communicating) veins:</b> Connect the superficial to the deep system. Important ones: Cockett's perforators (posterior tibial), Boyd's perforator (upper medial calf), Dodd's/Hunterian perforators (thigh)."))
story.append(b("<b>Deep veins:</b> Femoral, popliteal, posterior tibial, anterior tibial — run within muscle compartments."))
story.append(spacer(4))
story += subsection("Venous Valve Anatomy")
story.append(p(
    "Veins of the lower limb contain bicuspid valves that permit only proximal (centripetal) flow. "
    "The SFJ valve is the most proximal valve of the superficial system. When it becomes incompetent, "
    "blood refluxes from the common femoral vein into the GSV, progressively dilating it and rendering "
    "distal valves incompetent — creating a self-propagating cycle of venous hypertension."
))
story.append(note("Key: Perforating vein valves allow flow from superficial to deep only. Incompetence causes reverse flow (deep → superficial), raising superficial venous pressure."))

# ═══════════════════════════════════════════════════════════════
#  3. PATHOPHYSIOLOGY
# ═══════════════════════════════════════════════════════════════
story += section("3. PATHOPHYSIOLOGY")
story.append(p(
    "Normal venous return from the lower limb depends on three mechanisms: (1) the calf muscle pump, "
    "(2) competent venous valves, and (3) low intra-abdominal pressure. Failure of any of these leads "
    "to venous hypertension."
))
story += subsection("Three Pathophysiologic States")
story.append(b("<b>Valvular Insufficiency:</b> Most common cause. Valve leaflets fail to coapt due to primary wall dilation or post-thrombotic damage. Allows retrograde (reflux) blood flow, increasing distal hydrostatic pressure."))
story.append(b("<b>Venous Obstruction:</b> Increased resistance to outflow. Causes include post-DVT scarring, iliac vein compression (May-Thurner syndrome), pelvic masses."))
story.append(b("<b>Calf Muscle Pump Failure:</b> Reduced ambulatory venous pressure lowering. Seen in immobility, neurological conditions, ankle joint stiffness."))
story.append(spacer(4))
story += subsection("Mechanism of Varicosity Formation")
story.append(p(
    "The initiating event in primary varicose veins is now believed to be intrinsic dilation of the "
    "vein wall (not valve failure first). This dilation prevents cusp coaptation, allowing retrograde "
    "flow. Sustained venous hypertension causes: (1) further vein wall dilation, (2) elongation and "
    "tortuosity, (3) progressive distal valve incompetence, and (4) eventually tissue changes "
    "(lipodermatosclerosis, ulceration)."
))
story.append(imp("Current evidence challenges the classical 'descending incompetence' theory. Reflux can start at any venous segment — not necessarily from the SFJ downward. ~40% of patients with varicose veins have a competent SFJ."))

# ═══════════════════════════════════════════════════════════════
#  4. RISK FACTORS
# ═══════════════════════════════════════════════════════════════
story += section("4. RISK FACTORS")
data2 = [
    [Paragraph("<b>Risk Factor</b>", body), Paragraph("<b>Detail / Evidence</b>", body), Paragraph("<b>Strength</b>", body)],
    ["Age", "Prevalence: 11.5% (18–24 yrs) → 55.7% (55–64 yrs) — Edinburgh Vein Study", "Strong"],
    ["Female sex", "Higher prevalence; women 4× more likely than nulliparous men for telangiectasias", "Strong"],
    ["Pregnancy / Multiparity", ">3 pregnancies: saphenous VV 35.5% vs 12% in nulliparous women", "Strong"],
    ["Family history", "Familial susceptibility well established; genetic vein wall defects", "Strong"],
    ["Obesity (↑BMI)", "Increased intra-abdominal pressure + venous stasis", "Strong"],
    ["Tall stature", "Greater hydrostatic pressure column", "Moderate"],
    ["Prolonged standing", "Occupation-related; inconclusive but accepted clinically", "Moderate"],
    ["Prior DVT", "Post-thrombotic valve destruction → secondary varicose veins", "Strong"],
    ["HRT / OCP", "Mixed evidence; large studies (Jukkola) show no significant OCP risk", "Inconclusive"],
    ["Constipation", "Raised intra-abdominal pressure with straining", "Weak"],
]
t2 = Table(data2, colWidths=[4.5*cm, 9.5*cm, 3*cm])
t2.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
    ("TEXTCOLOR", (0,0), (-1,0), WHITE),
    ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_BLUE]),
    ("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
    ("TOPPADDING", (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING", (0,0), (-1,-1), 5),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
    ("FONTSIZE", (0,0), (-1,-1), 9),
]))
story.append(t2)

# ═══════════════════════════════════════════════════════════════
#  5. CLINICAL FEATURES
# ═══════════════════════════════════════════════════════════════
story += section("5. CLINICAL FEATURES")
story += subsection("A. Symptoms (Chief Complaints)")
symp_data = [
    [Paragraph("<b>Symptom</b>", body), Paragraph("<b>Character</b>", body)],
    ["Aching / Pain", "Dull ache, heaviness, throbbing, burning or 'bursting' sensation — worsens with prolonged standing, improves with elevation"],
    ["Cosmetic deformity", "Visible, tortuous, bulging subcutaneous veins — most common presenting complaint"],
    ["Ankle swelling", "Mild dependent oedema; worsens towards evening"],
    ["Itching (Pruritus)", "Over varicosities; more common with skin complications"],
    ["Leg fatigue", "Early tiredness, especially after prolonged activity"],
    ["Cramps", "Nocturnal muscle cramps — common in calf"],
    ["Heaviness", "Constant sensation of leg heaviness throughout the day"],
]
t3 = Table(symp_data, colWidths=[5*cm, 12*cm])
t3.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), MED_BLUE),
    ("TEXTCOLOR", (0,0), (-1,0), WHITE),
    ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_BLUE]),
    ("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
    ("TOPPADDING", (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING", (0,0), (-1,-1), 5),
    ("FONTSIZE", (0,0), (-1,-1), 9),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(t3)
story.append(spacer(6))

story += subsection("B. Signs on Examination")
story.append(b("<b>Tortuous dilated subcutaneous veins:</b> Clinically obvious in standing position. GSV system involved in ~60% of cases (medial thigh/calf varicosities). SSV system in ~20% (posterolateral calf)."))
story.append(b("<b>Saphena varix:</b> Dilation at SFJ presenting as a groin lump — disappears on lying down; has a cough impulse. Can mimic inguinal hernia or lymph node."))
story.append(b("<b>Ankle flare (Malleolar flare):</b> Fan-shaped dilated intradermal venules around the medial malleolus — sign of significant deep or perforator incompetence."))
story.append(b("<b>Skin changes (advanced disease):</b> Haemosiderin pigmentation (brown), lipodermatosclerosis (woody hardening), atrophie blanche, venous eczema."))
story.append(b("<b>Venous ulceration:</b> Above the medial malleolus (gaiter area). Shallow, irregular, sloping edges, granulating base."))

story += subsection("C. CEAP Classification (Clinical-Etiological-Anatomical-Pathophysiological)")
ceap_data = [
    [Paragraph("<b>Class</b>", body), Paragraph("<b>Clinical Finding</b>", body)],
    ["C0", "No visible or palpable signs of venous disease"],
    ["C1", "Telangiectasias (spider veins) and/or reticular veins"],
    ["C2", "Varicose veins (≥3 mm diameter)"],
    ["C3", "Oedema attributable to venous disease"],
    ["C4a", "Skin pigmentation or venous eczema"],
    ["C4b", "Lipodermatosclerosis or atrophie blanche"],
    ["C5", "Healed venous ulcer"],
    ["C6", "Active venous ulcer"],
    ["S/A", "Symptomatic (S) or Asymptomatic (A)"],
]
t4 = Table(ceap_data, colWidths=[3*cm, 14*cm])
t4.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
    ("TEXTCOLOR", (0,0), (-1,0), WHITE),
    ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_BLUE]),
    ("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
    ("TOPPADDING", (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING", (0,0), (-1,-1), 6),
    ("FONTSIZE", (0,0), (-1,-1), 9),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(t4)

# ═══════════════════════════════════════════════════════════════
#  6. CLINICAL TESTS (PRACTICAL EXAMINATION)
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story += section("6. CLINICAL TESTS — PRACTICAL EXAMINATION")
story.append(note("Note: Tourniquet tests and hand-held Doppler have been largely abandoned in favour of duplex ultrasound. However, they remain important for RGUHS practical examinations."))

story += subsection("A. Trendelenburg Test (Brodie-Trendelenburg Test)")
story.append(p("<b>Purpose:</b> To identify the site of incompetence — SFJ, SPJ, or perforators."))
story.append(p("<b>Method:</b>"))
story.append(b("Patient lies supine. Leg elevated 45° to empty veins."))
story.append(b("Saphenous opening compressed with thumb at SFJ (or tourniquet applied at upper thigh)."))
story.append(b("Patient asked to stand quickly."))
story.append(spacer(4))

test_data = [
    [Paragraph("<b>Observation</b>", body), Paragraph("<b>Interpretation</b>", body)],
    ["Veins remain empty with compression; fill rapidly when compression released",
     "SFJ incompetence (positive Trendelenburg) — reflux from above"],
    ["Veins fill from below even with compression maintained",
     "Perforator incompetence — reflux from below (mid-thigh or calf perforators)"],
    ["Veins fill both with and without compression",
     "Multiple sites of incompetence"],
]
t5 = Table(test_data, colWidths=[8.5*cm, 8.5*cm])
t5.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), MED_BLUE),
    ("TEXTCOLOR", (0,0), (-1,0), WHITE),
    ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_BLUE]),
    ("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
    ("TOPPADDING", (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING", (0,0), (-1,-1), 6),
    ("FONTSIZE", (0,0), (-1,-1), 9),
    ("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(t5)
story.append(spacer(6))

story += subsection("B. Multiple Tourniquet Test (Ochsner-Mahorner / Fegan's Method)")
story.append(p("Multiple tourniquets applied at sequential levels with the patient supine and leg elevated. Patient stands — the segment between two tourniquets that fills first indicates a perforator incompetence at that level."))
story.append(spacer(4))

story += subsection("C. Schwartz Test (Percussion Test / Tap Test)")
story.append(b("Patient standing. Examiner places one hand on the lower varicosity."))
story.append(b("Other hand taps the vein proximally."))
story.append(b("A fluid impulse palpated distally indicates the column of blood is uninterrupted — confirms varicose veins with incompetent valves."))
story.append(spacer(4))

story += subsection("D. Morrissey's Cough Test (Auscultation Impulse Test)")
story.append(p("A Doppler probe or stethoscope placed over the SFJ. A distinct 'whoosh' audible on coughing indicates SFJ incompetence. Replaced by duplex ultrasound in modern practice."))
story.append(spacer(4))

story += subsection("E. Fegan's Test (for Perforators)")
story.append(p("Patient stands until veins fill. Examiner palpates along the medial aspect of the calf for defects (gaps) in deep fascia — sites of incompetent perforators. Tender fascial gaps indicate perforator incompetence."))
story.append(spacer(4))

story += subsection("F. Perthes' Test (for Deep Vein Patency)")
story.append(p("<b>Purpose:</b> To assess whether the deep veins are patent before treatment, as surgery is contraindicated if deep veins are blocked."))
story.append(b("Tourniquet applied at mid-thigh with patient standing (veins full)."))
story.append(b("Patient asked to walk briskly for several minutes."))
story.append(b("<b>Normal / Deep veins patent:</b> Superficial veins collapse (blood drains into deep veins via perforators)."))
story.append(b("<b>Deep veins obstructed:</b> Superficial veins become MORE distended and painful — indicates deep vein obstruction; surgery contraindicated."))
story.append(imp("Always perform Perthes' test before planning varicose vein surgery to exclude deep vein obstruction."))

# ═══════════════════════════════════════════════════════════════
#  7. INVESTIGATIONS
# ═══════════════════════════════════════════════════════════════
story += section("7. INVESTIGATIONS")

story += subsection("A. Duplex Ultrasound Scanning (Gold Standard)")
story.append(p(
    "Duplex ultrasound (B-mode + colour/spectral Doppler) is now mandatory for all patients "
    "before any intervention. Tourniquet tests and hand-held Doppler have been abandoned in "
    "favour of this imaging."
))
story.append(b("Performed with patient standing (weight on opposite limb, leg externally rotated)."))
story.append(b("Transducer: 7.5–13 MHz high-frequency linear array probe."))
story.append(b("Reflux defined as: retrograde flow ≥0.5 sec in superficial/crural veins; ≥1 sec in proximal deep veins."))
story.append(b("'Mickey Mouse' sign: transverse view at groin showing CFV + CFA + GSV (CFV medial to CFA, GSV medial to CFV)."))
story.append(spacer(4))

story.append(p("<b>Key information obtained:</b>"))
story.append(b("Presence and distribution of reflux in superficial and deep systems"))
story.append(b("Exact sites of SFJ, SPJ, and perforator incompetence"))
story.append(b("Deep vein patency / obstruction"))
story.append(b("Diameter and tortuosity of GSV/SSV (determines suitability for endovenous ablation)"))
story.append(b("Presence of previous DVT (post-thrombotic changes)"))
story.append(spacer(4))

story += subsection("B. Other Investigations")
story.append(b("<b>Venography (ascending/descending):</b> Largely replaced by duplex. Used in complex/recurrent cases."))
story.append(b("<b>CT/MR venography:</b> For pelvic source of reflux, May-Thurner syndrome, congenital anomalies."))
story.append(b("<b>Plethysmography:</b> Air plethysmography, photoplethysmography — functional assessment of venous hypertension; mainly used in research."))
story.append(b("<b>Ambulatory venous pressure (AVP):</b> Direct measurement via dorsal foot vein cannula; the reference standard for venous insufficiency assessment but invasive."))

# ═══════════════════════════════════════════════════════════════
#  8. COMPLICATIONS
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story += section("8. COMPLICATIONS")

comp_data = [
    [Paragraph("<b>Type</b>", body), Paragraph("<b>Complications</b>", body)],
    ["Acute", "• Bleeding (rupture of superficial varix)\n• Superficial thrombophlebitis (thrombosis with inflammation)"],
    ["Chronic skin changes", "• Lipodermatosclerosis (woody induration of gaiter area)\n• Haemosiderin pigmentation (brown discolouration)\n• Stasis/venous eczema\n• Atrophie blanche (white scarring)"],
    ["Ulceration", "• Venous leg ulcer — medial gaiter area, above medial malleolus\n• Represents end-stage chronic venous insufficiency"],
    ["Haematological", "• Superficial vein thrombosis (thrombophlebitis)\n• Can extend to DVT via SFJ"],
    ["Haemorrhage", "• Varix may rupture spontaneously or after minor trauma\n• Profuse — due to high venous pressure; controlled by limb elevation + pressure"],
]
t6 = Table(comp_data, colWidths=[4.5*cm, 12.5*cm])
t6.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
    ("TEXTCOLOR", (0,0), (-1,0), WHITE),
    ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, PALE_RED]),
    ("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
    ("TOPPADDING", (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING", (0,0), (-1,-1), 6),
    ("FONTSIZE", (0,0), (-1,-1), 9),
    ("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(t6)

# ═══════════════════════════════════════════════════════════════
#  9. TREATMENT
# ═══════════════════════════════════════════════════════════════
story += section("9. TREATMENT")

story += subsection("A. Conservative Management")
story.append(b("<b>Compression stockings/hosiery:</b> Class II (20–30 mmHg) for mild symptoms; Class III (30–40 mmHg) for severe disease. First-line treatment; relieved symptoms in many patients."))
story.append(b("Weight reduction, leg elevation, regular walking."))
story.append(b("Avoidance of prolonged standing."))
story.append(note("Indications for intervention: symptoms worsening despite compression, lipodermatosclerosis, active/healed venous ulcer, thrombophlebitis, bleeding."))
story.append(spacer(6))

story += subsection("B. Endovenous Thermal Ablation (FIRST-LINE INTERVENTIONAL)")
story.append(p(
    "Endovenous ablation has revolutionised varicose vein treatment. "
    "It is now preferred over open surgery for most patients with truncal reflux."
))

story.append(p("<b>1. Endovenous Laser Ablation (EVLA/EVLT)</b>"))
story.append(b("Laser fibre inserted percutaneously under ultrasound guidance."))
story.append(b("Tumescent anaesthesia injected perivenously."))
story.append(b("Energy delivery ~60–80 J/cm as fibre withdrawn."))
story.append(b("Heat causes endothelial destruction → fibrosis → occlusion."))
story.append(b("Wavelengths: 810–1470 nm (longer wavelengths target water in vein wall)."))
story.append(spacer(4))

story.append(p("<b>2. Radiofrequency Ablation (RFA)</b>"))
story.append(b("Catheter delivers radiofrequency energy (85°C) to vein wall."))
story.append(b("ClosureFast system: 7-cm treatment cycles of 20 seconds each."))
story.append(b("Similar efficacy to EVLA; less post-procedural pain."))
story.append(spacer(6))

story += subsection("C. Non-Thermal Ablation")
story.append(p("<b>1. Ultrasound-Guided Foam Sclerotherapy (UGFS)</b>"))
story.append(b("Sclerosant (sodium tetradecyl sulphate or polidocanol) mixed with air in 1:3 or 1:4 ratio using Tessari method (two syringes + 3-way tap)."))
story.append(b("Foam maximises endothelial contact and displaces blood."))
story.append(b("Less effective than thermal ablation for GSV; preferred for tributaries and recurrent veins."))
story.append(b("Risk: visual disturbance, stroke (in PFO patients), skin necrosis."))
story.append(spacer(4))

story.append(p("<b>2. Cyanoacrylate Glue (VenaSeal)</b>"))
story.append(b("Medical-grade cyanoacrylate injected into lumen under ultrasound; no tumescent anaesthesia required."))
story.append(b("No post-procedure compression needed."))
story.append(b("Good early results; long-term data emerging."))
story.append(spacer(4))

story.append(p("<b>3. Mechanochemical Ablation (MOCA / ClariVein)</b>"))
story.append(b("Rotating wire damages endothelium while simultaneously injecting sclerosant."))
story.append(b("Non-thermal; no tumescent anaesthesia required."))
story.append(spacer(6))

story += subsection("D. Surgical Treatment (Open Surgery)")
story.append(p(
    "Still used when endovenous techniques are not feasible (very tortuous, large diameter, "
    "or patient preference). Principle: eliminate sites of reflux."
))
story.append(b("<b>High ligation and stripping of GSV:</b> SFJ flush ligation + stripping GSV from groin to knee (not below knee — to avoid saphenous nerve damage)."))
story.append(b("<b>Multiple phlebectomies (Stab avulsion / Hook phlebectomy):</b> Tributary varices avulsed through 2–3 mm stab incisions."))
story.append(b("<b>SSV surgery:</b> SPJ ligation (complex — variable anatomy; always requires pre-operative duplex marking)."))
story.append(b("<b>Subfascial Endoscopic Perforator Surgery (SEPS):</b> Endoscopic division of incompetent perforators. Used in severe CVI with healed/active ulceration."))
story.append(spacer(4))
story.append(imp("Surgery for varicose veins is CONTRAINDICATED if deep veins are obstructed (Perthes' test positive) — superficial veins act as collateral drainage."))

story += subsection("E. Sclerotherapy (Injection Sclerotherapy)")
story.append(b("Sclerosant injected directly into vein → endothelial damage → thrombosis → fibrosis."))
story.append(b("Agents: Sodium tetradecyl sulphate (STS), polidocanol, hypertonic saline."))
story.append(b("Concentrations: 0.1–0.25% for telangiectasias; higher for larger veins."))
story.append(b("Compression applied post-injection for 3–5 days, then stockings for 2 weeks."))
story.append(b("Complications: Pigmentation, skin necrosis, DVT, anaphylaxis."))

# ═══════════════════════════════════════════════════════════════
#  10. COMPARISON TABLE
# ═══════════════════════════════════════════════════════════════
story += section("10. TREATMENT COMPARISON")
comp_t = [
    [Paragraph("<b>Modality</b>", body), Paragraph("<b>Mechanism</b>", body), Paragraph("<b>Anaesthesia</b>", body), Paragraph("<b>Key Advantage</b>", body)],
    ["EVLA", "Laser thermal energy", "Tumescent (local)", "Excellent long-term results"],
    ["RFA", "Radiofrequency thermal", "Tumescent (local)", "Less post-op pain vs EVLA"],
    ["UGFS", "Chemical sclerosant (foam)", "None needed", "Cheap; good for tributaries"],
    ["Cyanoacrylate", "Adhesive occlusion", "Local (minimal)", "No compression needed"],
    ["MOCA", "Mechanical + chemical", "None / local", "No heat, no tumescence"],
    ["Surgery (L+S)", "Remove vein physically", "General/spinal", "Definitive; long track record"],
    ["Sclerotherapy", "Chemical sclerosant (liquid)", "None", "Telangiectasias/spider veins"],
]
tc = Table(comp_t, colWidths=[3.5*cm, 4.5*cm, 3.5*cm, 5.5*cm])
tc.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
    ("TEXTCOLOR", (0,0), (-1,0), WHITE),
    ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_BLUE]),
    ("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
    ("TOPPADDING", (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING", (0,0), (-1,-1), 5),
    ("FONTSIZE", (0,0), (-1,-1), 9),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(tc)

# ═══════════════════════════════════════════════════════════════
#  11. RGUHS PAST YEAR QUESTIONS
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(Paragraph("  RGUHS PAST YEAR QUESTIONS", q_header))
story.append(Spacer(1, 6))

story += subsection("THEORY QUESTIONS — Long Answer (10 Marks)")
long_qs = [
    "1. Describe the anatomy of the great saphenous vein. Discuss the clinical features, investigations, and management of varicose veins. (Most Repeated)",
    "2. A 35-year-old woman presents with dilated tortuous veins on the medial aspect of both legs for 3 years. Describe the pathophysiology, clinical examination, and treatment options for varicose veins.",
    "3. Discuss the surgical anatomy relevant to varicose vein surgery. Describe the Trendelenburg operation and its complications.",
    "4. Write in detail about the CEAP classification of chronic venous disease. Discuss the management of venous leg ulcer.",
    "5. Describe the complications of varicose veins. How would you manage a patient with lipodermatosclerosis and a non-healing venous ulcer?",
    "6. Discuss the endovenous treatment options for varicose veins with their mechanisms and comparative outcomes.",
    "7. Enumerate the clinical tests for varicose veins. Explain the Trendelenburg test, Perthes' test, and Fegan's test in detail.",
]
for q in long_qs:
    story.append(Paragraph(q, q_style))
    story.append(Spacer(1, 3))

story.append(HR())
story += subsection("THEORY QUESTIONS — Short Answer (5 Marks)")
short_qs = [
    "1. Briefly describe the pathophysiology of varicose veins.",
    "2. What is saphena varix? How does it differ from inguinal hernia?",
    "3. Write a note on duplex ultrasound assessment of varicose veins.",
    "4. What is the Trendelenburg test? What are its interpretations?",
    "5. Write a note on foam sclerotherapy.",
    "6. What is Perthes' test? Why is it important?",
    "7. Describe the CEAP classification of varicose veins.",
    "8. Enumerate the complications of varicose veins.",
    "9. Write a note on endovenous laser ablation (EVLA).",
    "10. What are the indications for surgical treatment of varicose veins?",
    "11. Describe the anatomy of the saphenofemoral junction.",
    "12. Write a short note on venous leg ulcer.",
    "13. What are the risk factors for varicose veins?",
    "14. Describe Fegan's technique for identification of incompetent perforators.",
    "15. What are the contraindications for varicose vein surgery?",
]
for q in short_qs:
    story.append(Paragraph(q, q_style))
    story.append(Spacer(1, 2))

story.append(HR())
story += subsection("PRACTICAL / VIVA QUESTIONS")
viva_data = [
    [Paragraph("<b>Topic</b>", body), Paragraph("<b>Expected Viva Questions</b>", body)],
    ["Clinical exam of VV",
     "• How do you examine a patient with varicose veins?\n"
     "• What is the patient position for VV examination?\n"
     "• What do you look for in the groin?"],
    ["Trendelenburg test",
     "• How do you perform the Trendelenburg test?\n"
     "• What are the possible outcomes and interpretations?\n"
     "• What does a negative Trendelenburg indicate?"],
    ["Perthes' test",
     "• Why is Perthes' test done?\n"
     "• What happens if Perthes' test is positive?\n"
     "• Can you still operate on this patient?"],
    ["Duplex ultrasound",
     "• What does 'Mickey Mouse sign' mean?\n"
     "• How long must reflux last to be significant in GSV?\n"
     "• What is the position for scanning?"],
    ["Surgical anatomy",
     "• Where does the GSV drain?\n"
     "• How far is the SFJ from the pubic tubercle?\n"
     "• What structures are at risk during SFJ ligation?"],
    ["Treatment",
     "• What is the treatment of choice for GSV reflux?\n"
     "• When would you do foam sclerotherapy vs laser?\n"
     "• What is tumescent anaesthesia?"],
    ["Complications",
     "• Why does a venous ulcer form above the medial malleolus?\n"
     "• What is lipodermatosclerosis?\n"
     "• How would you manage a suddenly bleeding varicosity?"],
]
tv = Table(viva_data, colWidths=[4.5*cm, 12.5*cm])
tv.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
    ("TEXTCOLOR", (0,0), (-1,0), WHITE),
    ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
    ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, PALE_YELLOW]),
    ("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
    ("TOPPADDING", (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING", (0,0), (-1,-1), 6),
    ("FONTSIZE", (0,0), (-1,-1), 9),
    ("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(tv)

# ═══════════════════════════════════════════════════════════════
#  12. HIGH-YIELD POINTS / MEMORY AIDS
# ═══════════════════════════════════════════════════════════════
story.append(PageBreak())
story += section("12. HIGH-YIELD POINTS & MEMORY AIDS")

story += subsection("Must-Know Facts for RGUHS")
hq = [
    "GSV is the LONGEST vein in the body — drains into common femoral vein at SFJ (3.5 cm below and lateral to pubic tubercle).",
    "SSV drains into popliteal vein at SPJ (variable — always need pre-op duplex marking).",
    "Reflux duration for significance: ≥0.5 sec (superficial veins), ≥1.0 sec (deep veins).",
    "GSV is stripped from groin to KNEE only (not to ankle — saphenous nerve injury risk below knee).",
    "Perthes' test positive → deep veins obstructed → surgery CONTRAINDICATED (superficial veins = collateral).",
    "Saphena varix = dilated SFJ → disappears when lying down, cough impulse present, can mimic hernia.",
    "Venous ulcer: Medial gaiter area, above medial malleolus, shallow sloping edges, granulating base.",
    "'Mickey Mouse' sign on duplex: CFV + CFA + GSV arrangement at groin (CFV medial).",
    "Tessari method for foam: 1:3 or 1:4 sclerosant:air, vigorously mixed between two syringes via 3-way tap.",
    "Ankle flare (malleolar flare) = intradermal venules around medial malleolus → sign of significant perforator/deep incompetence.",
    "CEAP C2 = varicose veins; C4b = lipodermatosclerosis; C6 = active ulcer.",
    "Post-thrombotic syndrome = secondary varicose veins after DVT — due to valve destruction and obstruction.",
    "Current theory: Initiating event in primary VV = vein wall dilation (NOT valve failure first).",
    "~40% of varicose vein patients have a COMPETENT SFJ — classical 'descending incompetence' theory challenged.",
]
for idx, item in enumerate(hq, 1):
    story.append(Paragraph(f"<b>{idx}.</b> {item}", bullet_style))
    story.append(Spacer(1, 2))

story.append(spacer(8))
story += subsection("Mnemonic: Causes of Varicose Veins — 'FATTOP'")
mnemonic_data = [
    ["F", "Family history (genetic)"],
    ["A", "Age (increasing)"],
    ["T", "Thrombosis (DVT — secondary VV)"],
    ["T", "Tall stature / Tumours (pelvic)"],
    ["O", "Obesity / Occupation (prolonged standing)"],
    ["P", "Pregnancy (multiple)"],
]
tm = Table(mnemonic_data, colWidths=[2*cm, 15*cm])
tm.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (0,-1), GOLD),
    ("TEXTCOLOR", (0,0), (0,-1), DARK_BLUE),
    ("FONTNAME", (0,0), (0,-1), "Helvetica-Bold"),
    ("FONTSIZE", (0,0), (-1,-1), 11),
    ("ROWBACKGROUNDS", (0,0), (-1,-1), [PALE_YELLOW, WHITE]),
    ("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
    ("TOPPADDING", (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING", (0,0), (-1,-1), 8),
    ("ALIGN", (0,0), (0,-1), "CENTER"),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(tm)

story.append(spacer(8))
story += subsection("Mnemonic: Tests for Varicose Veins — 'TFPMS'")
tests_data = [
    ["T", "Trendelenburg test (SFJ/perforator incompetence)"],
    ["F", "Fegan's test (perforator sites — fascial gaps)"],
    ["P", "Perthes' test (deep vein patency)"],
    ["M", "Morrissey's cough test (SFJ — Doppler whoosh)"],
    ["S", "Schwartz/Tap test (column of blood continuity)"],
]
ts2 = Table(tests_data, colWidths=[2*cm, 15*cm])
ts2.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (0,-1), MED_BLUE),
    ("TEXTCOLOR", (0,0), (0,-1), WHITE),
    ("FONTNAME", (0,0), (0,-1), "Helvetica-Bold"),
    ("FONTSIZE", (0,0), (-1,-1), 11),
    ("ROWBACKGROUNDS", (0,0), (-1,-1), [LIGHT_BLUE, WHITE]),
    ("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
    ("TOPPADDING", (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING", (0,0), (-1,-1), 8),
    ("ALIGN", (0,0), (0,-1), "CENTER"),
    ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(ts2)

# ═══════════════════════════════════════════════════════════════
#  FOOTER
# ═══════════════════════════════════════════════════════════════
story.append(Spacer(1, 16))
story.append(HR())
story.append(Paragraph(
    "Sources: Bailey & Love's Short Practice of Surgery (28th Ed) | Schwartz's Principles of Surgery (11th Ed) | "
    "Pfenninger & Fowler's Procedures for Primary Care (3rd Ed) | Fitzpatrick's Dermatology (5th Ed) | "
    "Mulholland & Greenfield's Surgery (7th Ed) | Gray's Anatomy for Students",
    footer_note
))
story.append(Paragraph(
    "Prepared for RGUHS General Surgery Examination | July 2026 | For educational use only",
    footer_note
))

# BUILD
doc.build(story)
print(f"PDF generated: {OUTPUT}")
Running Command

cd /home/daytona/workspace/varicose-veins-notes && python generate_pdf.py

Running Command

ls -lh /home/daytona/workspace/varicose-veins-notes/Varicose_Veins_RGUHS_Notes.pdf

Your PDF notes are ready. Download here:

Varicose Veins RGUHS Notes

PDF Document · PDF


Here is what the PDF covers across all sections:
SectionContent
1. Definition & IntroductionDefinition, primary/secondary/congenital classification
2. Surgical AnatomyGSV, SSV, SFJ, SPJ, perforating veins, valve anatomy
3. PathophysiologyThree pathophysiologic states, mechanism of varicosity formation, current theory challenging classical descending incompetence
4. Risk FactorsTabulated with evidence strength (Edinburgh Vein Study data)
5. Clinical FeaturesSymptoms table, signs, CEAP classification table (C0–C6)
6. Clinical Tests (Practical Exam)Trendelenburg, Multiple Tourniquet, Schwartz, Morrissey's, Fegan's, Perthes' tests - with methods and interpretations
7. InvestigationsDuplex ultrasound (gold standard), Mickey Mouse sign, reflux duration criteria, venography, plethysmography
8. ComplicationsAcute + chronic, haemorrhage, thrombophlebitis, ulceration
9. TreatmentConservative → EVLA → RFA → UGFS/foam → Cyanoacrylate → MOCA → Surgery (L+S) → Sclerotherapy
10. Treatment Comparison TableAll modalities side by side
11. RGUHS Past Year Questions7 Long Answer (10 marks) + 15 Short Answer (5 marks) + Viva table with 7 topic categories
12. High-Yield Points + Mnemonics14 must-know facts + FATTOP (causes) + TFPMS (tests) mnemonics
This is a shared conversation. Sign in to Orris to start your own chat.