HISTORY
Majority of women who come to the surgical outpatient department complain of either pain or lump in the breast or discharge from the nipple. History is taken in the usual manner as mentioned in the Chapter 1. Here only specific points are discussed. any ge
1. Age: Fibroadenoma usually occurs in females below 35 years of age. Fibroadenosis may occur at any age, though more common in the middle age. Intramammary breast abscess is most commonly seen in young lactating women and is often referred to as mastitis of lactation: Carcinoma of the breast occurs usually in women above 40 years of age, though rarely it may occur earlier, so age should not be the criterion to exclude the diagnosis of breast carcinoma.
2. Residence: Carcinoma of breast and fibroadenosis (mammary dysplasia) are more common in the western world with high incidence in England and Wales. Breast carcinoma is rare in Japan.
3. Social status: Carcinoma of breast and fibroadenosis are more seen in the developed world There may be a link between diets rich in saturated fatty acids and breast carcinoma fin fact majority of breast diseases). Both these diseases are common in nulliparous wormen and who have refused the intended purpose of the breasts, ie.. breastfeeding. These diseases are less common in 'underdeveloped' world where women give birth to multiple children.
4. Lump: The most common mode of presentation of diseases of the breast is 'lump: Enquiry must be made about its mode of onset, duration and rate of growth. A lump may develop in the breast following trauma which is either a hematoma or fat necrosis. Trauma may simply attract attention of the patient towards a pre-existing lump. A lump with a long history and slow-growth is a benign condition-either fibroadenosis (mammary dysplasia) or fibroadenoma. A lump with a short history and fast growth is probably a carcinoma, though atrophic scirrhous carcinoma is a slow growing tumor. The average duration between the patient finding the lump and reporting it to a surgeon is about 6 weeks in case of carcinoma of the breast.
5. Pain: The student must remember that carcinoma of the breast is a painless condition. A lump which is painless and accidentally felt during washing may be a breast carcinoma and the clinician must be more particular in examining this case rather than ignoring it. Pain is the main complaint of acute mastitis. The pain is of throbbing nature when pus has formed. Pain is also a common complaint in case of fibroadenosis (mammary dysplasia) which becomes aggravated during menstruation. This type of cyclical breast pain is more common in young women with fibroadenosis. In case of fibroadenosis affecting women after menopause there is also localized breast pain which may be due to periductal mastitis or there may be referred pain from musculoskeletal disorders. The students must remember that all neoplasms of the breast-either benign or malignant including carcinoma are painless to start with.
In case of relatively long-standing carcinoma of the breast enquiry must be made regarding pain at the back, hip or shoulder. Patients may ignore their presence considering them to be due to theumatism and not having any relation with the lump of the breast Such pain may be due to bony metastasis of the carcinoma of the breast.
6 Discharge from nipple: This may be the only complaint which has brought the patient to a sungeon. Fresh blood or altered blood may be discharged in case of duct papilloma or carcinoma. Pus may be discharged in case of mammary abscess, Milk may be discharged during lactation or galactocele or from mammary fistula due to chronic subareolar abscess. Serous or greenish discharge is seen in case of fibroadenosis (mammary dysplasia) and mammary duct ectasia
1. Retraction of nipple may be rarely a complaint which may bring the patient to a surgeon. Retraction for quite a long time or since puberty may be developmental. Recent retraction is of importance and is usually due to underlying carcinoma of the breast.
Loss of weight is often complained of in case of carcinoma of breast or tuberculosis of breast or chest wall tuberculosis leading to retromammary abscess.
9 Past history: Recurrence of abscess is sometimes seen in congenital retraction of nipple. Tuberculosis of breast may recur. Fibroadenosis (mammary dysplasia) may give rise to symptoms after a good gap. So that if asked carefully the patient may confess that similar problems she had a few years back which disappeared with some sort of treatment. Above all it must be remembered that carcinoma may recur in the opposite breast.
10. Personal history: Marital status of the patient must be enquired into. Fibroadenosis and carcinoma of breast are more common in unmarried or nulliparous women. Menstrual history must be taken so that relation of pain with menstruation may be assessed. Lactational history should also be taken. Suppurative mastitis particularly occurs in women during first lactational period.
11. Family history: Majority of the breast diseases including carcinoma often recur in a family. If especially asked for it may be revealed that the patient's mother or grandmother or sister also suffered from the similar disease.
Simplified
Here is the breast history content simplified and reorganized for easy understanding:
History Taking in Breast Diseases - Simplified
Why Patients Come
Women visit the surgical OPD mainly for:
Pain in the breast
A lump in the breast
Nipple discharge
Key Points in History
1. Age
Disease
Typical Age
Fibroadenoma
Below 35 years
Fibroadenosis (mammary dysplasia)
Any age, more common in middle age
Breast abscess (mastitis of lactation)
Young lactating women
Breast carcinoma
Usually above 40 years
Important: Age alone should NEVER be used to rule out breast carcinoma.
2. Residence
Breast carcinoma and fibroadenosis are more common in western countries (England, Wales).
Breast carcinoma is rare in Japan.
3. Social Status / Risk Factors
Both carcinoma and fibroadenosis are more common in:
Developed/western world
Nulliparous women (women who have never given birth)
Women who did not breastfeed
Diet rich in saturated fatty acids may be linked to breast carcinoma.
These diseases are less common in women who have had multiple children.
4. Lump
Most common presenting complaint in breast disease.
Ask about: onset, duration, and rate of growth.
Feature
Likely Diagnosis
Long history + slow growth
Benign (fibroadenosis or fibroadenoma)
Short history + fast growth
Likely carcinoma
Lump after trauma
Hematoma or fat necrosis
Note: Trauma may simply draw the patient's attention to a pre-existing lump. Average time between finding the lump and seeing a surgeon is ~6 weeks in breast carcinoma.
5. Pain
Key Rule: Carcinoma of the breast is PAINLESS (especially early on). All breast neoplasms - benign or malignant - are painless to begin with.
Type of Pain
Likely Cause
Throbbing pain
Acute mastitis (pus has formed)
Cyclical pain (worse with menstruation)
Fibroadenosis - common in young women
Localized pain after menopause
Periductal mastitis or musculoskeletal referral
Pain in back, hip, or shoulder
Possible bony metastasis from breast carcinoma
Patients may dismiss back/hip/shoulder pain as "rheumatism" - always ask specifically.
6. Nipple Discharge
Type of Discharge
Likely Cause
Fresh or altered blood
Duct papilloma or carcinoma
Pus
Mammary abscess
Milk (outside normal lactation)
Galactocele or mammary fistula (chronic subareolar abscess)
Serous or greenish discharge
Fibroadenosis or mammary duct ectasia
7. Nipple Retraction
Long-standing / since puberty - likely developmental (normal variant)
Recent retraction - important sign, usually due to underlying carcinoma
8. Loss of Weight
Seen in: Carcinoma of breast, tuberculosis of breast, or chest wall TB causing retromammary abscess.
9. Past History
Condition
Recurrence Pattern
Breast abscess
Recurs in congenital nipple retraction
Tuberculosis of breast
Can recur
Fibroadenosis
Symptoms may return after years
Breast carcinoma
May recur in the opposite breast
10. Personal History
Marital status: Fibroadenosis and carcinoma are more common in unmarried/nulliparous women.
Menstrual history: To assess relationship of pain with menstruation.
Lactational history: Suppurative mastitis occurs most often during the first lactational period.
11. Family History
Most breast diseases, including carcinoma, show a familial tendency.
Always ask if mother, grandmother, or sister had similar disease.
Quick Memory Summary
Complaint
Think of
Painless lump, found accidentally
Breast carcinoma (must examine carefully)
Painful lump + throbbing
Mastitis / breast abscess
Cyclical breast pain in young woman
Fibroadenosis
Blood from nipple
Duct papilloma or carcinoma
Recent nipple retraction
Carcinoma
Back/hip pain + breast lump
Bony metastasis
Generate a quick reference PDF for breast history taking
Reading File
Running Command
mkdir -p /tmp/workspace/breast-history-pdf && python3 << 'EOF'
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.platypus import BaseDocTemplate, Frame, PageTemplate
W, H = A4
# ── colour palette ──────────────────────────────────────────────
DARK_BLUE = colors.HexColor("#1A3A5C")
MED_BLUE = colors.HexColor("#2E6DA4")
LIGHT_BLUE = colors.HexColor("#D6E8F7")
ACCENT = colors.HexColor("#E8453C") # red for warnings
AMBER = colors.HexColor("#F5A623")
GREEN_BG = colors.HexColor("#E8F5E9")
AMBER_BG = colors.HexColor("#FFF8E1")
RED_BG = colors.HexColor("#FFEBEE")
WHITE = colors.white
GREY_LINE = colors.HexColor("#CCCCCC")
LIGHT_GREY = colors.HexColor("#F5F5F5")
# ── document ─────────────────────────────────────────────────────
doc = SimpleDocTemplate(
"/tmp/workspace/breast-history-pdf/Breast_History_Quick_Reference.pdf",
pagesize=A4,
leftMargin=15*mm, rightMargin=15*mm,
topMargin=18*mm, bottomMargin=18*mm,
)
# ── styles ────────────────────────────────────────────────────────
base = getSampleStyleSheet()
def S(name, parent="Normal", **kw):
return ParagraphStyle(name, parent=base[parent], **kw)
title_s = S("TitleS", fontSize=20, textColor=WHITE, alignment=TA_CENTER, leading=26, fontName="Helvetica-Bold")
sub_s = S("SubS", fontSize=10, textColor=LIGHT_BLUE, alignment=TA_CENTER, leading=14, fontName="Helvetica")
h1_s = S("H1S", fontSize=11, textColor=WHITE, leading=16, fontName="Helvetica-Bold", leftIndent=4)
body_s = S("BodyS", fontSize=8.5, textColor=colors.black, leading=12, fontName="Helvetica")
bold_s = S("BoldS", fontSize=8.5, textColor=colors.black, leading=12, fontName="Helvetica-Bold")
warn_s = S("WarnS", fontSize=8.5, textColor=ACCENT, leading=12, fontName="Helvetica-Bold")
small_s = S("SmallS", fontSize=7.5, textColor=colors.HexColor("#555555"), leading=10, fontName="Helvetica")
footer_s = S("FooterS", fontSize=7, textColor=colors.grey, alignment=TA_CENTER, leading=10)
cell_s = S("CellS", fontSize=8, textColor=colors.black, leading=11, fontName="Helvetica")
cell_b = S("CellB", fontSize=8, textColor=DARK_BLUE, leading=11, fontName="Helvetica-Bold")
# ── helpers ───────────────────────────────────────────────────────
def section_header(text, color=MED_BLUE):
tbl = Table([[Paragraph(text, h1_s)]], colWidths=[180*mm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("ROWBACKGROUNDS", (0,0), (-1,-1), [color]),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
("ROUNDEDCORNERS", [4,4,4,4]),
]))
return tbl
def two_col_table(rows, col1=70*mm, col2=110*mm, header=None, hdr_col=LIGHT_BLUE):
data = []
if header:
data.append([Paragraph(header[0], cell_b), Paragraph(header[1], cell_b)])
for r in rows:
data.append([Paragraph(r[0], cell_s), Paragraph(r[1], cell_s)])
tbl = Table(data, colWidths=[col1, col2])
style = [
("GRID", (0,0), (-1,-1), 0.4, GREY_LINE),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0),(-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
]
if header:
style += [
("BACKGROUND", (0,0), (1,0), hdr_col),
("FONTNAME", (0,0), (1,0), "Helvetica-Bold"),
]
# zebra
for i in range(1 if header else 0, len(data)):
if i % 2 == 0:
style.append(("BACKGROUND", (0,i), (-1,i), LIGHT_GREY))
tbl.setStyle(TableStyle(style))
return tbl
def alert_box(text, bg=RED_BG, border=ACCENT):
tbl = Table([[Paragraph(text, warn_s)]], colWidths=[180*mm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 10),
("LINEAFTER", (0,0), (0,0), 3, border), # left border trick
("BOX", (0,0), (-1,-1), 0.5, border),
]))
return tbl
# ── page decorations ──────────────────────────────────────────────
def on_page(canvas, doc):
canvas.saveState()
# header band
canvas.setFillColor(DARK_BLUE)
canvas.rect(0, H - 28*mm, W, 28*mm, fill=1, stroke=0)
# footer line
canvas.setStrokeColor(MED_BLUE)
canvas.setLineWidth(0.8)
canvas.line(15*mm, 14*mm, W - 15*mm, 14*mm)
canvas.setFont("Helvetica", 7)
canvas.setFillColor(colors.grey)
canvas.drawCentredString(W/2, 10*mm, "Breast History Quick Reference | Surgical OPD | For Educational Use Only")
canvas.restoreState()
# ── build content ─────────────────────────────────────────────────
story = []
# Title block (sits inside the header band via top margin)
story.append(Spacer(1, 2*mm))
story.append(Paragraph("BREAST HISTORY TAKING", title_s))
story.append(Paragraph("Quick Reference Card · Surgical Outpatient Department", sub_s))
story.append(Spacer(1, 6*mm))
# ── COMMON PRESENTATIONS ─────────────────────────────────────────
story.append(KeepTogether([
section_header("▸ COMMON PRESENTING COMPLAINTS"),
Spacer(1, 2*mm),
two_col_table([
("Pain in the breast", "Assess: site, onset, relation to menstruation"),
("Lump in the breast", "Assess: onset, duration, rate of growth"),
("Nipple discharge", "Assess: colour, consistency, unilateral/bilateral"),
("Nipple retraction", "Assess: duration — recent vs longstanding"),
("Loss of weight", "Suggests carcinoma or tuberculosis"),
], header=("Complaint", "Key Enquiry")),
Spacer(1, 4*mm),
]))
# ── AGE vs DISEASE ────────────────────────────────────────────────
story.append(KeepTogether([
section_header("▸ AGE & DISEASE CORRELATION"),
Spacer(1, 2*mm),
two_col_table([
("< 35 years", "Fibroadenoma"),
("Any age (mid > common)", "Fibroadenosis / Mammary dysplasia"),
("Young lactating women", "Intramammary abscess (Mastitis of lactation)"),
("> 40 years", "Breast carcinoma (can occur earlier — never exclude by age alone)"),
], header=("Age Group", "Likely Condition")),
Spacer(1, 2*mm),
alert_box("⚠ Age should NEVER be the sole criterion to exclude breast carcinoma.", RED_BG, ACCENT),
Spacer(1, 4*mm),
]))
# ── LUMP CHARACTERISTICS ──────────────────────────────────────────
story.append(KeepTogether([
section_header("▸ LUMP CHARACTERISTICS"),
Spacer(1, 2*mm),
two_col_table([
("Long history + slow growth", "Benign — fibroadenosis or fibroadenoma"),
("Short history + fast growth", "Likely carcinoma"),
("Lump after trauma", "Haematoma or fat necrosis (trauma may reveal a pre-existing lump)"),
("Avg. delay to surgeon", "~6 weeks in breast carcinoma"),
], header=("Feature", "Significance")),
Spacer(1, 4*mm),
]))
# ── PAIN ──────────────────────────────────────────────────────────
story.append(KeepTogether([
section_header("▸ PAIN"),
Spacer(1, 2*mm),
two_col_table([
("Throbbing pain", "Acute mastitis — pus has formed"),
("Cyclical pain worse at menstruation","Fibroadenosis — common in young women"),
("Localised pain post-menopause", "Periductal mastitis or musculoskeletal referral"),
("Back / hip / shoulder pain", "Bony metastasis from breast carcinoma — always ask!"),
], header=("Type", "Likely Cause")),
Spacer(1, 2*mm),
alert_box("⚠ Carcinoma of the breast is PAINLESS — especially early. All breast neoplasms (benign or malignant) are painless to begin with.", RED_BG, ACCENT),
Spacer(1, 4*mm),
]))
# ── NIPPLE DISCHARGE ──────────────────────────────────────────────
story.append(KeepTogether([
section_header("▸ NIPPLE DISCHARGE"),
Spacer(1, 2*mm),
two_col_table([
("Fresh / altered blood", "Duct papilloma or Carcinoma"),
("Pus", "Mammary abscess"),
("Milk (outside lactation)", "Galactocele or Mammary fistula (chronic subareolar abscess)"),
("Serous / greenish", "Fibroadenosis or Mammary duct ectasia"),
], header=("Discharge Type", "Likely Cause")),
Spacer(1, 4*mm),
]))
# ── NIPPLE RETRACTION ─────────────────────────────────────────────
story.append(KeepTogether([
section_header("▸ NIPPLE RETRACTION"),
Spacer(1, 2*mm),
two_col_table([
("Long-standing / since puberty", "Developmental — likely normal variant"),
("Recent onset", "Significant — usually underlying carcinoma"),
], header=("Duration", "Interpretation")),
Spacer(1, 4*mm),
]))
# ── RISK FACTORS ─────────────────────────────────────────────────
story.append(KeepTogether([
section_header("▸ RISK FACTORS (Carcinoma & Fibroadenosis)", color=colors.HexColor("#5C6BC0")),
Spacer(1, 2*mm),
two_col_table([
("Nulliparity / Unmarried", "Higher risk for carcinoma & fibroadenosis"),
("No breastfeeding history", "Higher risk"),
("Diet rich in saturated fatty acids","Associated with breast carcinoma"),
("Western / developed world", "Higher incidence (England, Wales)"),
("Japan", "Breast carcinoma relatively rare"),
], header=("Factor", "Relevance"), hdr_col=colors.HexColor("#E8EAF6")),
Spacer(1, 4*mm),
]))
# ── PERSONAL & SOCIAL HISTORY ─────────────────────────────────────
story.append(KeepTogether([
section_header("▸ PERSONAL / MENSTRUAL / LACTATIONAL HISTORY", color=colors.HexColor("#00838F")),
Spacer(1, 2*mm),
two_col_table([
("Marital status", "Fibroadenosis & carcinoma more common in unmarried / nulliparous"),
("Menstrual history", "Assess relation of pain to menstrual cycle"),
("Lactational history","Suppurative mastitis most common in first lactational period"),
], header=("History Item", "Why It Matters"), hdr_col=colors.HexColor("#E0F7FA")),
Spacer(1, 4*mm),
]))
# ── PAST HISTORY ──────────────────────────────────────────────────
story.append(KeepTogether([
section_header("▸ PAST HISTORY", color=colors.HexColor("#558B2F")),
Spacer(1, 2*mm),
two_col_table([
("Recurrent abscess", "Suspect congenital nipple retraction"),
("TB of breast", "Can recur"),
("Fibroadenosis symptoms", "May return after years — patient may not volunteer this"),
("Breast carcinoma", "May recur in the OPPOSITE breast"),
], header=("Condition", "Pattern / Note"), hdr_col=GREEN_BG),
Spacer(1, 4*mm),
]))
# ── FAMILY HISTORY ────────────────────────────────────────────────
story.append(KeepTogether([
section_header("▸ FAMILY HISTORY", color=colors.HexColor("#6D4C41")),
Spacer(1, 2*mm),
alert_box("Most breast diseases, including carcinoma, show a familial tendency.\nAsk specifically about mother, grandmother, or sisters with similar disease.", AMBER_BG, AMBER),
Spacer(1, 4*mm),
]))
# ── QUICK MEMORY SUMMARY ──────────────────────────────────────────
story.append(KeepTogether([
section_header("▸ QUICK MEMORY SUMMARY", color=DARK_BLUE),
Spacer(1, 2*mm),
two_col_table([
("Painless lump found accidentally", "Must rule out carcinoma — examine carefully"),
("Painful lump + throbbing", "Mastitis / breast abscess"),
("Cyclical breast pain, young woman", "Fibroadenosis"),
("Blood from nipple", "Duct papilloma or carcinoma"),
("Recent nipple retraction", "Carcinoma until proven otherwise"),
("Back / hip pain + breast lump", "Suspect bony metastasis"),
("Lump + weight loss", "Carcinoma or tuberculosis"),
], header=("Clinical Clue", "Think Of"), col1=85*mm, col2=95*mm),
Spacer(1, 3*mm),
]))
# ── build ─────────────────────────────────────────────────────────
doc.build(story, onFirstPage=on_page, onLaterPages=on_page)
print("PDF created successfully.")
EOF
Your PDF is ready:
Breast History Quick Reference
PDF Document · PDF
What's included in the PDF:
Color-coded section headers for easy scanning
9 structured tables covering all key history points:
Common presenting complaints
Age vs. disease correlation
Lump characteristics
Pain types and their causes
Nipple discharge types
Nipple retraction interpretation
Risk factors
Personal/menstrual/lactational history
Past history patterns
Red alert boxes for the two most important exam points (carcinoma is painless; never exclude by age)
Amber alert for family history
A Quick Memory Summary table at the end for last-minute revision
Clean header and footer on every page with a professional A4 layout
This is a shared conversation. Sign in to Orris to start your own chat.