I need a history check list for my osce exam about flank pain

Reading File
Finding Sources
Finding Sources
Searching PubMed

"renal colic"[MeSH Terms] AND "diagnosis"

Reading File
Reading File

OSCE history checklist: flank pain

1. Preparation and opening

  • Wash or sanitise hands, introduce yourself, confirm the patient's name and date of birth.
  • Explain your role and ask for consent to take a history.
  • Make sure the patient is comfortable. If they are in severe pain, offer analgesia early, because they may be writhing.
  • Open with: "What brought you in today?"

2. Presenting complaint: SOCRATES for the pain

DomainAsk
SiteWhich side? Left, right or both? Can you point to it? Loin, back or abdomen?
OnsetSudden or gradual? What were you doing? Is this the first episode?
CharacterColicky (comes in waves) or constant, dull or sharp? Colicky pain suggests obstruction, such as a stone. Constant dull pain suggests inflammation or capsular distension.
RadiationDoes it go to the groin, testis or labia, or inner thigh? Loin to groin suggests a ureteric stone. Does it go to the back or the shoulder tip?
Associated symptomsSee sections 3 and 4.
Time courseHow long has it lasted? Is it constant or does it come and go? Is it getting worse?
Exacerbating or relieving factorsDoes movement or position change it? Renal colic is typically not relieved by position, and the patient is restless. Musculoskeletal pain is worse with movement and eases with rest. Pleuritic pain is worse on breathing.
SeverityScore out of 10. Is it the worst pain of your life? (Think aortic aneurysm.)
The Family Medicine text describes flank pain as typically not relieved by position changes and colicky, often with nausea and vomiting. Obstruction (stones) and inflammation (pyelonephritis) are the two commonest causes. - Textbook of Family Medicine 9e, Flank Pain

3. Urinary symptoms (the key differentiators)

  • Haematuria: Is the urine visible red, pink or tea-coloured? Are there clots? Is it at the start, end or throughout the stream? Clots passed with pain are "clot colic".
  • Dysuria, frequency, urgency, nocturia.
  • Cloudy or offensive urine.
  • Reduced urine output or anuria. Ask about this in anyone with bilateral pain or a solitary kidney.
  • Hesitancy, poor stream or incomplete emptying, which suggest obstruction.
  • Passage of gravel or stones.
  • Incontinence and any recent catheterisation.

4. Associated symptoms

Infection and sepsis
  • Fever, rigors, sweats, malaise.
  • Confusion (especially in older patients).
  • Fever with an obstructed system is a urological emergency.
Gastrointestinal
  • Nausea and vomiting, which are common with renal colic.
  • Bowel habit change, constipation, diarrhoea, blood in stool.
  • Abdominal distension.
Vascular (do not miss)
  • Collapse, syncope, pulsatile abdominal sensation. Think AAA, especially in an older man or smoker.
Other systems
  • Chest pain, cough, pleuritic pain (basal pneumonia, PE).
  • Rash in a dermatomal distribution (shingles).
  • Back pain, neurological symptoms, leg weakness, saddle numbness, bladder or bowel dysfunction.
  • Weight loss, night sweats, anorexia, since malignancy is possible.
Gynaecological (in women)
  • LMP, possibility of pregnancy, vaginal bleeding or discharge, lower abdominal pain. Consider ectopic pregnancy and ovarian torsion.
Genital (in men)
  • Testicular pain or swelling (torsion can refer to the flank) and urethral discharge.

5. Differential diagnosis to keep in mind

Use these to guide your questions.
  • Urological: ureteric colic from a stone, pyelonephritis, pyonephrosis, renal abscess, renal tumour, renal infarct or vein thrombosis, PUJ obstruction, loin pain haematuria syndrome, polycystic kidneys.
  • Vascular: ruptured or leaking AAA, aortic dissection, renal artery embolism.
  • GI: appendicitis, cholecystitis, pancreatitis, diverticulitis, bowel obstruction.
  • Gynaecological: ectopic pregnancy, ovarian cyst or torsion.
  • MSK and neurological: muscle strain, vertebral or disc disease, shingles.
  • Respiratory: lower lobe pneumonia, pleurisy.

6. Risk factors and past history

Stones
  • Previous stones or renal colic, and any family history of stones.
  • Fluid intake, diet (high salt, high protein, oxalate), hot climate or occupation.
  • Drugs: calcium or vitamin D supplements, diuretics, topiramate, indinavir, antacids.
  • Gout, hyperparathyroidism, inflammatory bowel disease, bowel resection or malabsorption, renal tubular acidosis.
Infection
  • Recurrent UTIs, diabetes, immunosuppression.
  • Catheter, recent urinary instrumentation or surgery, structural abnormalities, pregnancy.
Other
  • Known renal disease, single kidney, hypertension, previous abdominal or renal surgery or trauma.
  • Cardiovascular disease, atrial fibrillation (embolic risk), smoking, known aneurysm.
  • Malignancy, including previous radiotherapy.
  • Recent trauma to the back or flank.

7. Drug history and allergies

  • Current medications, including OTC NSAIDs, anticoagulants and antiplatelets (these affect haematuria and procedure planning).
  • NSAID and other drug allergies. This matters because NSAIDs are first line for colic.
  • Renal function and any nephrotoxic drugs, since NSAIDs are risky in CKD.

8. Family history

  • Kidney stones, polycystic kidney disease, renal cancer, other renal disease.
  • Aortic aneurysm.

9. Social history

  • Smoking (renal cell carcinoma, AAA, bladder cancer). Alcohol.
  • Occupation (dehydration, chemical or dye exposure) and diet.
  • Fluid intake. Ask directly how much the patient drinks per day.
  • Sexual history if indicated, for urethritis or epididymo-orchitis.
  • Living situation and support. Recent travel.

10. Systems review and ICE

  • Quickly screen for weight loss, appetite change, night sweats.
  • Ideas: "What do you think is going on?"
  • Concerns: "Is there anything in particular you're worried about?"
  • Expectations: "What were you hoping we could do today?"

11. Closing

  • Summarise the history back to the patient in a sentence or two.
  • Ask: "Is there anything else you'd like to tell me?"
  • Thank the patient.
  • State your next steps: examination (vitals, abdominal and renal angle tenderness, AAA palpation), urine dipstick, bloods, imaging.

Red flags to state out loud (examiners like this)

  • Fever or rigors with flank pain: obstructed infected system, risk of urosepsis.
  • Anuria, a solitary kidney or bilateral obstruction: risk of AKI.
  • Haemodynamic instability, collapse or a pulsatile mass: ruptured AAA.
  • Age over 60 with a first episode and no haematuria: consider AAA.
  • Pregnancy: ectopic or other obstetric causes.
  • Neurological deficit or saddle anaesthesia: cauda equina.
  • Intractable pain or vomiting despite analgesia.

Quick mnemonic

SOCRATES, then Urinary symptoms, Fever and systemic symptoms, GI and gynae symptoms, PMH, Drugs, FH, SH, ICE.

Tips for the station

  • Ask the urinary and fever questions early. They separate colic from pyelonephritis, and both from non-renal causes.
  • Do not forget to ask female patients about LMP and pregnancy.
  • Use open questions first, then focus down. Signpost your transitions, for example "I'd now like to ask about your waterworks."
  • Be empathic about pain.
The recent 2025 Cochrane review on NSAIDs for acute renal colic relates to management, not history. It doesn't change this checklist.
I can also turn this into a one-page printable PDF or a mock OSCE with a simulated patient script, if you want.

Make a one-page printable PDF of this checklist

Reading File
Running Command

ls -la /tmp/workspace/

Running Command

mkdir -p /tmp/workspace/flank-pain-osce/src /tmp/workspace/flank-pain-osce/output && cat > /tmp/workspace/flank-pain-osce/src/make_pdf.py << 'EOF' from reportlab.lib.pagesizes import A4 from reportlab.lib.units import mm from reportlab.lib import colors from reportlab.lib.styles import ParagraphStyle from reportlab.platypus import BaseDocTemplate, Frame, PageTemplate, Paragraph, Spacer, FrameBreak, KeepTogether, Table, TableStyle OUT = "/tmp/workspace/flank-pain-osce/output/Flank_Pain_OSCE_History_Checklist.pdf" W, H = A4 M = 10*mm HEAD_H = 20*mm FOOT_H = 7*mm GAP = 5*mm colw = (W - 2*M - GAP) / 2 NAVY = colors.HexColor("#1F3A5F") RED = colors.HexColor("#B3261E") LIGHT = colors.HexColor("#E8EEF5") FS = 7.4 LD = 8.9 sec = ParagraphStyle("sec", fontName="Helvetica-Bold", fontSize=8.4, leading=10, textColor=colors.white) item = ParagraphStyle("item", fontName="Helvetica", fontSize=FS, leading=LD, leftIndent=9, firstLineIndent=-9) sub = ParagraphStyle("sub", fontName="Helvetica-Bold", fontSize=FS, leading=LD, textColor=NAVY, spaceBefore=1) redst = ParagraphStyle("red", parent=item, textColor=colors.HexColor("#7A1410")) BOX = '<font name="ZapfDingbats" size="7">q</font>&nbsp;' def header(text, color=NAVY): t = Table([[Paragraph(text, sec)]], colWidths=[colw]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), color), ("LEFTPADDING", (0,0), (-1,-1), 4), ("RIGHTPADDING", (0,0), (-1,-1), 4), ("TOPPADDING", (0,0), (-1,-1), 1.5), ("BOTTOMPADDING", (0,0), (-1,-1), 2), ])) return t def section(title, items, color=NAVY, style=item): out = [header(title, color), Spacer(1, 1.5)] for it in items: if it.startswith("##"): out.append(Paragraph(it[2:].strip(), sub)) else: out.append(Paragraph(BOX + it, style)) out.append(Spacer(1, 4)) return out left = [] left += section("1. OPENING", [ "Wash hands, introduce self, confirm name + DOB", "Explain role, gain consent, ensure comfort", "Offer analgesia early if in severe pain", "Open question: \"What brought you in today?\"", ]) left += section("2. PAIN (SOCRATES)", [ "<b>Site:</b> which side, loin vs abdomen, point to it", "<b>Onset:</b> sudden or gradual, activity, first episode?", "<b>Character:</b> colicky (waves) vs constant dull/sharp", "<b>Radiation:</b> loin to groin / testis / labia (stone); back; shoulder tip", "<b>Associated:</b> see sections 3 and 4", "<b>Time course:</b> duration, constant vs intermittent, worsening", "<b>Exacerbating/relieving:</b> position or movement; restless in colic, still in peritonism; pleuritic?", "<b>Severity:</b> /10; worst pain ever? (think AAA)", ]) left += section("3. URINARY SYMPTOMS", [ "<b>Haematuria:</b> visible? colour, clots, timing in stream", "Dysuria, frequency, urgency, nocturia", "Cloudy or offensive urine", "<b>Reduced output / anuria</b> (bilateral or solitary kidney)", "Hesitancy, poor stream, incomplete emptying", "Passed gravel or stones; incontinence; catheter", ]) left += section("4. ASSOCIATED SYMPTOMS", [ "##Systemic", "Fever, rigors, sweats, malaise; confusion (elderly)", "Weight loss, night sweats, anorexia", "##GI", "Nausea, vomiting; bowel habit change; PR blood; distension", "##Vascular", "Collapse, syncope, pulsatile sensation (AAA)", "##Other", "Chest pain, cough, pleuritic pain; dermatomal rash (shingles)", "Back pain, leg weakness, saddle numbness, bladder/bowel change", "<b>Women:</b> LMP, pregnancy, PV bleeding/discharge", "<b>Men:</b> testicular pain/swelling, urethral discharge", ]) right = [] right += section("5. PAST MEDICAL HISTORY", [ "##Stones", "Previous stones/colic; family history", "Gout, hyperparathyroidism, IBD, bowel resection, RTA", "Low fluid intake, high salt/protein/oxalate diet, hot job or climate", "##Infection", "Recurrent UTIs, diabetes, immunosuppression, pregnancy", "Catheter, recent instrumentation/surgery, structural abnormality", "##Other", "Known renal disease, single kidney, CKD, hypertension", "CVD, AF (embolic), known aneurysm, malignancy, back trauma", ]) right += section("6. DRUGS + ALLERGIES", [ "Regular + OTC meds (NSAIDs, anticoagulants, antiplatelets)", "Stone-linked: calcium/vit D, diuretics, topiramate, indinavir, antacids", "<b>Allergies</b> (especially NSAIDs); nephrotoxic drugs", ]) right += section("7. FAMILY + SOCIAL HISTORY", [ "FH: stones, polycystic kidneys, renal cancer, aneurysm", "Smoking (RCC, AAA, bladder ca), alcohol", "Occupation, diet, daily fluid intake, recent travel", "Sexual history if indicated; home support", ]) right += section("8. ICE + CLOSE", [ "<b>Ideas:</b> \"What do you think is going on?\"", "<b>Concerns:</b> \"Anything you're worried about?\"", "<b>Expectations:</b> \"What were you hoping for today?\"", "Summarise back; \"Anything else?\"; thank patient", "State next steps: vitals, abdominal + renal angle exam, AAA, urine dip, bloods, imaging", ]) right += section("RED FLAGS (say them out loud)", [ "Fever/rigors + flank pain: infected obstructed system, urosepsis", "Anuria, solitary kidney or bilateral pain: AKI risk", "Shock, collapse, pulsatile mass: ruptured AAA", "Age over 60, first episode, no haematuria: exclude AAA", "Pregnancy: ectopic or obstetric cause", "Neuro deficit / saddle anaesthesia: cauda equina", "Intractable pain or vomiting despite analgesia", ], color=RED, style=redst) right.append(header("DIFFERENTIALS TO KEEP IN MIND")) right.append(Spacer(1, 1.5)) diffs = [ "<b>Urological:</b> ureteric colic, pyelonephritis, pyonephrosis, renal abscess/tumour/infarct, PUJ obstruction, polycystic kidney, loin pain haematuria syndrome", "<b>Vascular:</b> AAA, aortic dissection, renal artery embolism", "<b>GI:</b> appendicitis, cholecystitis, pancreatitis, diverticulitis, bowel obstruction", "<b>Gynae:</b> ectopic, ovarian cyst/torsion", "<b>MSK/neuro:</b> muscle strain, disc/vertebral disease, shingles", "<b>Resp:</b> lower lobe pneumonia, pleurisy", ] for d in diffs: right.append(Paragraph(d, item)) def on_page(c, doc): c.saveState() c.setFillColor(NAVY) c.rect(0, H-HEAD_H, W, HEAD_H, stroke=0, fill=1) c.setFillColor(colors.white) c.setFont("Helvetica-Bold", 16) c.drawString(M, H-10*mm, "OSCE History Checklist: Flank Pain") c.setFont("Helvetica", 8) c.drawString(M, H-15.5*mm, "Tick each item as you rehearse. Order: SOCRATES, urinary, fever/systemic, GI/gynae, PMH, drugs, FH, SH, ICE.") c.setFillColor(colors.HexColor("#555555")) c.setFont("Helvetica-Oblique", 6.5) c.drawString(M, 4*mm, "Study aid for exam practice, not a substitute for clinical judgement. Sources: Textbook of Family Medicine 9e; Campbell-Walsh Urology; Bailey & Love's Short Practice of Surgery.") c.restoreState() doc = BaseDocTemplate(OUT, pagesize=A4, leftMargin=M, rightMargin=M, topMargin=M, bottomMargin=M, title="OSCE History Checklist: Flank Pain", author="Orris") top = H - HEAD_H - 4*mm fh = top - FOOT_H - 2*mm f1 = Frame(M, FOOT_H, colw, fh, leftPadding=0, rightPadding=0, topPadding=0, bottomPadding=0, id="l") f2 = Frame(M+colw+GAP, FOOT_H, colw, fh, leftPadding=0, rightPadding=0, topPadding=0, bottomPadding=0, id="r") doc.addPageTemplates([PageTemplate(id="p", frames=[f1, f2], onPage=on_page)]) story = left + [FrameBreak()] + right doc.build(story) EOF cd /tmp/workspace/flank-pain-osce && python src/make_pdf.py && python -c " from pypdf import PdfReader r=PdfReader('output/Flank_Pain_OSCE_History_Checklist.pdf');print(len(r.pages))"

Running Command

cd /tmp/workspace/flank-pain-osce && python -c " import pdfplumber with pdfplumber.open('output/Flank_Pain_OSCE_History_Checklist.pdf') as pdf: p=pdf.pages[0] p.to_image(resolution=80).save('output/preview.png') ws=p.extract_words() print(max(w['bottom'] for w in ws if w['bottom']<p.height-20), p.height) "

Running Command

cd /tmp/workspace/flank-pain-osce && sed -i 's/^FS = 7.4/FS = 8.8/; s/^LD = 8.9/LD = 10.9/; s/fontSize=8.4, leading=10/fontSize=9.6, leading=11.5/; s/size="7">q/size="8">q/' src/make_pdf.py && python src/make_pdf.py && python -c " import pdfplumber with pdfplumber.open('output/Flank_Pain_OSCE_History_Checklist.pdf') as pdf: print(len(pdf.pages)) p=pdf.pages[0] p.to_image(resolution=80).save('output/preview.png') ws=[w for w in p.extract_words() if w['bottom']<p.height-25] print(max(w['bottom'] for w in ws), p.height) "

Running Command

cd /tmp/workspace/flank-pain-osce && sed -i 's/^FS = 8.8/FS = 9.5/; s/^LD = 10.9/LD = 11.7/' src/make_pdf.py && python src/make_pdf.py && python -c " import pdfplumber with pdfplumber.open('output/Flank_Pain_OSCE_History_Checklist.pdf') as pdf: print(len(pdf.pages)) p=pdf.pages[0] p.to_image(resolution=90).save('output/preview.png') ws=[w for w in p.extract_words() if w['bottom']<p.height-25] print(max(w['bottom'] for w in ws), p.height) "

Loading Image
Running Command

cd /tmp/workspace/flank-pain-osce && python -c " import pdfplumber with pdfplumber.open('output/Flank_Pain_OSCE_History_Checklist.pdf') as pdf: p=pdf.pages[0] ws=p.extract_words() print('max x1',max(w['x1'] for w in ws),'page w',p.width) mid=p.width/2 L=[w for w in ws if w['x0']<mid-10 and w['bottom']<p.height-25] R=[w for w in ws if w['x0']>=mid-10 and w['bottom']<p.height-25] print('left bottom',max(w['bottom'] for w in L),'right bottom',max(w['bottom'] for w in R)) " ; ls -la output

Your one-page A4 checklist is ready:

Flank Pain OSCE History Checklist

PDF Document · PDF

I confirmed it is a single page and that no text runs off the edge. I couldn't view a rendered image of it, so check the layout when you open it.
  • Layout: It has two columns with a tick box beside every item.
  • Left column: opening, the pain questions (SOCRATES), urinary symptoms, and associated symptoms.
  • Right column: past medical history, drugs and allergies, family and social history, and ICE with the close. It ends with a red-flags box and a short list of differentials.
  • Print: The font is about 9.5 pt, so it stays readable on a normal A4 printout.
I can make a version with space for notes, or a second page with a sample patient script for practice, if you want either.

I need a history check list for my surgery osce exam about flank pain

Reading File
Finding Sources
Finding Sources
Reading File
Reading File

Surgery OSCE history checklist: flank (loin) pain

1. Opening

  • Wash hands, introduce yourself, confirm name and DOB, explain your role, get consent.
  • Check comfort and offer analgesia early if the patient is in severe pain.
  • Open with: "What has brought you in today?"

2. Pain (SOCRATES), with surgical discriminators

  • Site: Which side? Loin, flank or abdomen? Ask them to point.
  • Onset: Sudden or gradual? What were they doing? Is this the first episode? Sudden-onset severe pain suggests ruptured AAA, dissection or torsion.
  • Character:
    • Constant, dull, gnawing loin pain suggests renal pain from capsular distension (pyelonephritis, obstruction, tumour).
    • Lateralised, colicky pain that comes in waves suggests ureteric colic from a stone.
    • Ureteric colic is intense and lasts about 1 to 2 minutes. Biliary colic is insidious and does not fully settle between spasms.
    • Patients can have both types of pain at once.
  • Radiation: Loin to groin, testis or labium points to the ureter. Ureteric colic does not radiate to the chest or the back of the leg. Back radiation raises AAA, dissection or spinal causes.
  • Associated symptoms: See sections 3 and 4.
  • Time course: Duration, whether it is constant or comes and goes, and whether it is getting worse.
  • Exacerbating and relieving factors:
    • Colic: the patient is restless, writhing, and cannot find a comfortable position.
    • Peritonitis: the patient lies still.
    • Musculoskeletal pain: worse on movement.
    • Pleuritic pain: worse on breathing.
  • Severity: Score out of 10. Ask whether it is the worst pain they have had.

3. Urinary symptoms

  • Haematuria: Is it visible? Ask about colour, clots, and when in the stream it occurs. Clots passed with pain suggest clot colic.
  • Lower urinary tract symptoms: Dysuria, frequency, urgency, nocturia, hesitancy, poor stream, incomplete emptying.
  • Urine appearance: Cloudy or offensive urine.
  • Output: Reduced output or anuria. This matters for a solitary kidney or bilateral obstruction.
  • Stones: Has the patient passed gravel or stones?
  • Catheter: Any recent catheter or urinary instrumentation?

4. Associated and surgical-differential symptoms

  • Infection or sepsis: Fever, rigors, sweats, malaise, confusion.
  • Gastrointestinal:
    • Nausea and vomiting.
    • Bowel habit, constipation or diarrhoea, PR bleeding, and whether the patient has passed flatus (obstruction).
    • Abdominal distension.
    • Migratory right iliac fossa pain (appendicitis).
    • Right upper quadrant pain and fatty-food intolerance (biliary).
    • Epigastric pain radiating to the back (pancreatitis).
    • Left iliac fossa pain with altered bowels (diverticulitis).
  • Vascular: Collapse, syncope, pulsatile abdominal sensation, claudication. Think AAA, especially in a male smoker over 60.
  • Gynaecological (women): LMP, possible pregnancy, vaginal bleeding or discharge. Exclude ectopic pregnancy and twisted ovarian cyst.
  • Testicular (men): Testicular pain or swelling, since torsion can refer to the flank. Also ask about urethral discharge.
  • Systemic: Weight loss, anorexia, night sweats (renal or other malignancy).
  • Neurological and spinal: Back pain, leg weakness, saddle numbness, bladder or bowel dysfunction, dermatomal rash (shingles).
  • Respiratory: Cough and pleuritic chest pain (lower lobe pneumonia).

5. Differentials to keep in mind

  • Urological: ureteric stone, pyelonephritis, pyonephrosis, renal abscess, renal tumour, renal infarct, PUJ obstruction, clot colic, papillary necrosis.
  • Vascular: ruptured or leaking AAA, aortic dissection.
  • GI: appendicitis, cholecystitis, pancreatitis, diverticulitis, bowel obstruction.
  • Gynaecological: ectopic pregnancy, ovarian cyst or torsion.
  • Other: musculoskeletal, shingles, pneumonia.

6. Past medical and surgical history

Stone risk
  • Previous stones or colic, and any family history.
  • Gout, hyperparathyroidism, IBD, bowel resection or malabsorption, renal tubular acidosis.
  • Low fluid intake, high salt or protein diet, hot climate or occupation.
Clot colic and papillary necrosis risk
  • Anticoagulation, haemophilia, vascular tumours.
  • Diabetes, regular NSAID use, sickle cell disease.
Infection risk
  • Recurrent UTIs, diabetes, immunosuppression, pregnancy.
  • Catheter, instrumentation, structural abnormality.
Renal and vascular
  • CKD, single kidney, hypertension.
  • Known aneurysm, AF, vascular disease.
Surgical history
  • Previous abdominal, renal or urological surgery, including stents and lithotripsy.
  • Previous radiotherapy.
  • Recent trauma to the back or flank.
  • Anaesthetic problems.
Other comorbidities
  • Heart disease, lung disease, diabetes, and anything else relevant to fitness for surgery.

7. Drugs and allergies

  • Regular and over-the-counter medicines.
  • Anticoagulants and antiplatelets.
  • NSAIDs, which cause papillary necrosis and are risky in CKD.
  • Stone-linked drugs: calcium or vitamin D, diuretics, topiramate, indinavir.
  • Allergies, especially NSAIDs and contrast. Ask about nephrotoxic drugs too.

8. Family and social history

  • Family history: stones, polycystic kidney disease, renal cancer, aortic aneurysm.
  • Smoking (AAA, renal and bladder cancer) and alcohol.
  • Occupation and diet, and daily fluid intake.
  • Home circumstances and support, and who is at home.
  • Last oral intake, relevant if the patient may need theatre.

9. ICE and close

  • Ideas: "What do you think is going on?"
  • Concerns: "Is there anything you're particularly worried about?"
  • Expectations: "What were you hoping we could do today?"
  • Summarise the history back to the patient, ask "Is there anything else?", and thank them.
  • State your next steps:
    • Vitals and abdominal examination, including renal angle tenderness and palpation for a pulsatile mass.
    • Pelvic examination in women (Bailey and Love highlights this to exclude ectopic pregnancy or a twisted ovarian cyst).
    • Testicular examination in men.
    • Urine dipstick and MSU, bloods (FBC, U&E, CRP, calcium), and pregnancy test.
    • Imaging.

Red flags to say out loud

  • Fever or rigors with flank pain: infected obstructed kidney, which needs urgent decompression.
  • Anuria, a solitary kidney, or bilateral obstruction: risk of AKI.
  • Shock, collapse or a pulsatile mass: ruptured AAA.
  • Age over 60, first episode, no haematuria: exclude AAA.
  • Pregnancy: ectopic or obstetric cause.
  • Neurological deficit or saddle anaesthesia: cauda equina.
  • Intractable pain or vomiting despite analgesia.

Surgery OSCE tips

  • Early in the station, separate renal pain (constant) from ureteric colic (waves). It is a classic examiner prompt.
  • Always raise AAA in an older smoker, and ectopic pregnancy in a woman of childbearing age.
  • Ask the anticoagulant, diabetes, and last-meal questions, because they show you are thinking about theatre.
  • Signpost transitions, for example: "I'd now like to ask about your waterworks."
Sources: Bailey and Love's Short Practice of Surgery, 28th Edition (pain from the urinary tract; approach to ureteric colic and Table 82.1; colicky abdominal pain). S Das, A Manual on Clinical Surgery, 13th Edition (pain in acute pyelonephritis and ureteric colic).
The earlier PubMed check found only management evidence, such as NSAIDs for colic. It doesn't change anything in this history checklist.
I can turn this into a one-page printable PDF in the same format as before, or write a mock surgical OSCE stem with a simulated patient script, if you want either.

Make this surgery checklist a one-page printable PDF

Running Command

mkdir -p /tmp/workspace/flank-pain-osce/src /tmp/workspace/flank-pain-osce/output && cat > /tmp/workspace/flank-pain-osce/src/make_surgery_pdf.py << 'EOF' import sys from reportlab.lib.pagesizes import A4 from reportlab.lib.units import mm from reportlab.lib import colors from reportlab.lib.styles import ParagraphStyle from reportlab.platypus import BaseDocTemplate, Frame, PageTemplate, Paragraph, Spacer, FrameBreak, Table, TableStyle OUT = "/tmp/workspace/flank-pain-osce/output/Surgery_OSCE_Flank_Pain_History_Checklist.pdf" FS = float(sys.argv[1]) if len(sys.argv) > 1 else 8.0 LD = FS * 1.2 W, H = A4 M = 10*mm HEAD_H = 20*mm FOOT_H = 8*mm GAP = 5*mm colw = (W - 2*M - GAP) / 2 NAVY = colors.HexColor("#1F3A5F") RED = colors.HexColor("#B3261E") sec = ParagraphStyle("sec", fontName="Helvetica-Bold", fontSize=FS+1, leading=FS+2.5, textColor=colors.white) item = ParagraphStyle("item", fontName="Helvetica", fontSize=FS, leading=LD, leftIndent=9, firstLineIndent=-9) sub = ParagraphStyle("sub", fontName="Helvetica-Bold", fontSize=FS, leading=LD, textColor=NAVY, spaceBefore=1) redst = ParagraphStyle("red", parent=item, textColor=colors.HexColor("#7A1410")) BOX = '<font name="ZapfDingbats" size="%s">q</font>&nbsp;' % (FS) def header(text, color=NAVY): t = Table([[Paragraph(text, sec)]], colWidths=[colw]) t.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,-1),color), ("LEFTPADDING",(0,0),(-1,-1),4),("RIGHTPADDING",(0,0),(-1,-1),4), ("TOPPADDING",(0,0),(-1,-1),1.5),("BOTTOMPADDING",(0,0),(-1,-1),2)])) return t def section(title, items, color=NAVY, style=item): out = [header(title, color), Spacer(1, 1.5)] for it in items: out.append(Paragraph(it[2:].strip(), sub) if it.startswith("##") else Paragraph(BOX + it, style)) out.append(Spacer(1, 3.5)) return out left = [] left += section("1. OPENING", [ "Wash hands, introduce, confirm name + DOB, consent", "Check comfort; offer analgesia early if severe pain", "Open: \"What has brought you in today?\"", ]) left += section("2. PAIN (SOCRATES) + DISCRIMINATORS", [ "<b>Site:</b> which side; loin vs flank vs abdomen; point to it", "<b>Onset:</b> sudden (AAA, dissection, torsion) or gradual; first episode?", "<b>Character:</b> constant gnawing loin pain = renal pain (capsular distension); lateralised waves lasting 1-2 min = ureteric colic. Can coexist", "<b>Radiation:</b> loin to groin/testis/labium = ureter. NOT to chest or back of leg. Back radiation: AAA, dissection, spine", "<b>Time course:</b> duration, constant vs intermittent, worsening", "<b>Aggravating/relieving:</b> colic = restless, writhing; peritonism = lies still; MSK = movement; pleuritic = breathing", "<b>Severity:</b> /10; worst pain ever?", ]) left += section("3. URINARY SYMPTOMS", [ "<b>Haematuria:</b> visible? colour, clots, timing in stream", "Dysuria, frequency, urgency, nocturia", "Hesitancy, poor stream, incomplete emptying", "Cloudy or offensive urine", "<b>Reduced output / anuria</b> (solitary kidney, bilateral)", "Passed gravel or stones; recent catheter/instrumentation", ]) left += section("4. ASSOCIATED + SURGICAL DIFFERENTIAL SYMPTOMS", [ "<b>Sepsis:</b> fever, rigors, sweats, malaise, confusion", "<b>GI:</b> nausea/vomiting; bowel habit, PR bleeding, flatus; distension", "Migratory RIF pain (appendix); RUQ + fatty foods (biliary); epigastric to back (pancreatitis); LIF + altered bowels (diverticulitis)", "<b>Vascular:</b> collapse, syncope, pulsatile sensation, claudication (AAA: male smoker over 60)", "<b>Women:</b> LMP, pregnancy, PV bleeding/discharge (ectopic, ovarian cyst)", "<b>Men:</b> testicular pain/swelling (torsion), urethral discharge", "<b>Systemic:</b> weight loss, anorexia, night sweats", "<b>Neuro/spine:</b> back pain, leg weakness, saddle numbness, dermatomal rash", "<b>Resp:</b> cough, pleuritic pain (basal pneumonia)", ]) left += section("5. DIFFERENTIALS", [ "<b>Urological:</b> stone, pyelonephritis, pyonephrosis, abscess, tumour, infarct, PUJ obstruction, clot colic, papillary necrosis", "<b>Vascular:</b> ruptured AAA, dissection", "<b>GI:</b> appendicitis, cholecystitis, pancreatitis, diverticulitis, obstruction", "<b>Gynae:</b> ectopic, ovarian cyst/torsion", "<b>Other:</b> MSK, shingles, pneumonia", ]) right = [] right += section("6. PAST MEDICAL + SURGICAL HISTORY", [ "##Stone risk", "Previous stones/colic; family history; gout, hyperparathyroidism, IBD, bowel resection, RTA", "Low fluid intake, high salt/protein diet, hot job or climate", "##Clot colic / papillary necrosis risk", "Anticoagulation, haemophilia, vascular tumours", "Diabetes, regular NSAIDs, sickle cell disease", "##Infection risk", "Recurrent UTIs, diabetes, immunosuppression, pregnancy, catheter, structural abnormality", "##Renal / vascular", "CKD, single kidney, hypertension, known aneurysm, AF, vascular disease", "##Surgical", "Previous abdominal/renal/urological surgery, stents, lithotripsy", "Radiotherapy; recent back/flank trauma; anaesthetic problems", "Cardiac/lung disease and other fitness-for-surgery comorbidities", ]) right += section("7. DRUGS + ALLERGIES", [ "Regular + OTC; anticoagulants, antiplatelets", "NSAIDs (papillary necrosis, CKD risk)", "Stone-linked: calcium/vit D, diuretics, topiramate, indinavir", "<b>Allergies</b> (NSAIDs, contrast); nephrotoxic drugs", ]) right += section("8. FAMILY + SOCIAL HISTORY", [ "FH: stones, polycystic kidneys, renal cancer, aneurysm", "Smoking (AAA, renal/bladder ca), alcohol", "Occupation, diet, daily fluid intake", "Home circumstances + support; <b>last oral intake</b> (theatre?)", ]) right += section("9. ICE + CLOSE", [ "<b>Ideas:</b> \"What do you think is going on?\"", "<b>Concerns:</b> \"Anything you're particularly worried about?\"", "<b>Expectations:</b> \"What were you hoping for today?\"", "Summarise; \"Anything else?\"; thank patient", "Next steps: vitals; abdominal exam (renal angle, pulsatile mass); PV exam in women; testes in men; urine dip + MSU; FBC, U&amp;E, CRP, calcium; pregnancy test; imaging", ]) right += section("RED FLAGS (say them out loud)", [ "Fever/rigors + flank pain: infected obstructed kidney, urgent decompression", "Anuria, solitary kidney, bilateral obstruction: AKI risk", "Shock, collapse, pulsatile mass: ruptured AAA", "Over 60, first episode, no haematuria: exclude AAA", "Pregnancy: ectopic or obstetric cause", "Neuro deficit / saddle anaesthesia: cauda equina", "Intractable pain or vomiting despite analgesia", ], color=RED, style=redst) right += section("OSCE TIPS", [ "Separate renal pain (constant) from ureteric colic (waves) early", "Always raise AAA (older smoker) and ectopic (woman of childbearing age)", "Ask anticoagulant, diabetes and last-meal questions: shows theatre thinking", "Signpost: \"I'd now like to ask about your waterworks.\"", ]) def on_page(c, doc): c.saveState() c.setFillColor(NAVY); c.rect(0, H-HEAD_H, W, HEAD_H, stroke=0, fill=1) c.setFillColor(colors.white) c.setFont("Helvetica-Bold", 16); c.drawString(M, H-10*mm, "Surgery OSCE History Checklist: Flank (Loin) Pain") c.setFont("Helvetica", 8) c.drawString(M, H-15.5*mm, "Tick each item as you rehearse. Flow: SOCRATES, urinary, associated, PMH/surgical, drugs, FH/SH, ICE, close.") c.setFillColor(colors.HexColor("#555555")); c.setFont("Helvetica-Oblique", 6.3) c.drawString(M, 4*mm, "Study aid, not a substitute for clinical judgement. Sources: Bailey & Love's Short Practice of Surgery 28e; S Das, A Manual on Clinical Surgery 13e.") c.restoreState() doc = BaseDocTemplate(OUT, pagesize=A4, leftMargin=M, rightMargin=M, topMargin=M, bottomMargin=M, title="Surgery OSCE History Checklist: Flank Pain", author="Orris") fh = H - HEAD_H - 4*mm - FOOT_H f1 = Frame(M, FOOT_H, colw, fh, 0,0,0,0, id="l") f2 = Frame(M+colw+GAP, FOOT_H, colw, fh, 0,0,0,0, id="r") doc.addPageTemplates([PageTemplate(id="p", frames=[f1, f2], onPage=on_page)]) doc.build(left + [FrameBreak()] + right) EOF cd /tmp/workspace/flank-pain-osce && for fs in 8.6 8.2 7.8 7.4; do python src/make_surgery_pdf.py $fs; python -c " from pypdf import PdfReader print('$fs', len(PdfReader('output/Surgery_OSCE_Flank_Pain_History_Checklist.pdf').pages))"; done

Running Command

cd /tmp/workspace/flank-pain-osce && best=""; for fs in 9.4 9.2 9.0 8.8 8.6; do python src/make_surgery_pdf.py $fs; n=$(python -c " from pypdf import PdfReader print(len(PdfReader('output/Surgery_OSCE_Flank_Pain_History_Checklist.pdf').pages))"); echo $fs $n; if [ "$n" = "1" ]; then break; fi; done; python -c " import pdfplumber with pdfplumber.open('output/Surgery_OSCE_Flank_Pain_History_Checklist.pdf') as pdf: p=pdf.pages[0]; ws=p.extract_words() print('pages',len(pdf.pages),'max x1',max(w['x1'] for w in ws),'of',p.width) mid=p.width/2 body=[w for w in ws if w['bottom']<p.height-25] print('left bottom',max(w['bottom'] for w in body if w['x0']<mid-10),'right bottom',max(w['bottom'] for w in body if w['x0']>=mid-10),'limit',p.height-10*2.835-8*2.835) "

Your one-page A4 surgery checklist is ready:

Surgery OSCE Flank Pain History Checklist

PDF Document · PDF

I confirmed it prints as a single page at about 9.4 pt and that no text runs off the edge. I couldn't view a rendered image of it, so check the layout when you open it.
  • Left column: opening, the pain questions (SOCRATES) with the points that separate renal pain from ureteric colic, urinary symptoms, associated surgical symptoms (appendix, biliary, pancreas, diverticular, AAA, gynae, testicular), and differentials.
  • Right column: past medical and surgical history (stone risk, clot colic and papillary necrosis risk, infection risk, previous surgery, fitness for theatre), drugs and allergies, family and social history including last oral intake, and ICE with next steps.
  • Bottom of the right column: a red-flags box and a short list of OSCE tips.
  • Sources: The footer cites Bailey & Love's Short Practice of Surgery (28th edition) and S Das, A Manual on Clinical Surgery (13th edition).
I can also write a mock surgical OSCE stem with a simulated patient script, or add a notes version with blank space, if you want either.
This is a shared conversation. Sign in to Orris to start your own chat.