I am mbbs student and tomorrow is my 1st day of third year and tomorrow is my posting on dental ward and I don't know about dental history taking and all the other things so please guide me

Reading File
Finding Sources
Finding Sources
Searching the Web

dental history taking MBBS student oral medicine clinical examination guide

Reading Web Page

https://geekymedics.com/taking-a-dental-history-osce-guide

Finding Sources
Finding Sources
Reading File
Searching the Web

dental ward posting MBBS student what to expect extraoral intraoral examination teeth charting

I now have excellent material to write a thorough guide. Here's your complete guide for your first dental ward posting:

Complete Guide for Your Dental Ward Posting - MBBS 3rd Year

Welcome to your first clinical posting! Here's everything you need to walk in confidently tomorrow.

1. How to Introduce Yourself and Start

Always begin by introducing yourself:
"Good morning, I am [your name], a medical student. I would like to take your history if you don't mind."
This builds rapport and sets a professional tone right from the start.

2. The Dental History Format

Follow this structured scheme - it is essentially the same as a general medical history but with dental-specific additions:
#Section
1Chief Complaint (CC)
2History of Presenting Complaint (HPC)
3Past Dental History (PDH)
4Past Medical History (PMH)
5Drug History + Allergies
6Social History
7Family History

3. Chief Complaint

Record in the patient's own words, not in medical terms.
Example: "Pain in my lower right back tooth for 3 days"
The most common dental complaints you will encounter:
  • Toothache / dental pain
  • Swelling in the face or jaw
  • Bleeding gums
  • Loose tooth
  • Broken/cracked tooth
  • Mouth sore / ulcer
  • Difficulty chewing or opening mouth (trismus)
  • Sensitivity to hot/cold

4. History of Presenting Complaint - Use SOCRATES

For any pain or symptom, use the SOCRATES framework:
LetterStands ForQuestions to Ask
SSite"Where exactly is the pain? Can you point to it?"
OOnset"When did it start? Did it come on suddenly or gradually?"
CCharacter"How would you describe the pain? Throbbing, sharp, dull, constant?"
RRadiation"Does the pain spread anywhere - ear, jaw, neck?"
AAssociations"Any swelling, fever, bad taste, difficulty swallowing?"
TTime course"Is it getting better, worse, or staying the same?"
EExacerbating/Relieving"What makes it worse? (cold/hot drinks, biting?) What relieves it?"
SSeverity"On a scale of 0-10, how bad is the pain?"
Important dental pain patterns to know:
  • Pulpitis (early/reversible): Sharp pain triggered by hot/cold, goes away quickly when stimulus removed
  • Pulpitis (irreversible): Throbbing, spontaneous, keeps hurting after stimulus removed, worse at night
  • Periapical abscess: Constant severe throbbing, tender on biting, localized swelling
  • Periodontal pain: Dull ache, gum swelling, bleeding, bad breath

5. Past Dental History

Ask about:
  • When did they last visit a dentist?
  • Are they a regular or irregular attender?
  • Any previous extractions, fillings, root canals?
  • Any reactions to local anaesthesia?
  • Any post-extraction bleeding in the past?
  • Any previous orthodontic treatment (braces)?
  • Any dentures or crowns?

6. Past Medical History (Very Important in Dentistry!)

Systemic diseases significantly affect dental treatment. Always ask about:
ConditionWhy it Matters
DiabetesSlow healing, infection risk, periodontal disease
HypertensionDrug interactions (epinephrine in LA), bleeding risk
Heart disease (valvular, rheumatic)Antibiotic prophylaxis needed before procedures
Bleeding disorders / anticoagulantsRisk of post-extraction haemorrhage
EpilepsyDrug interactions, gingival hyperplasia (phenytoin)
HIV/immunosuppressionOral candidiasis, kaposi sarcoma
PregnancyTiming of treatment, drugs to avoid, gingival changes
Liver diseaseClotting factor deficiency, drug metabolism
Renal diseaseDrug dosing adjustments

7. Drug History and Allergies

Always ask about allergies first - especially:
  • Penicillin / antibiotics
  • NSAIDs (aspirin, ibuprofen)
  • Local anaesthetics (rare but important)
  • Latex (gloves)
Drugs that cause oral side effects:
  • Phenytoin - gingival hyperplasia
  • Amlodipine / nifedipine - gingival enlargement
  • Bisphosphonates - osteonecrosis of jaw (BRONJ)
  • Steroids - oral candidiasis, poor healing
  • Anticholinergics - dry mouth (xerostomia)
  • Methotrexate / chemotherapy - mucositis, ulcers

8. Social History

  • Smoking (cigarettes, bidi, hookah, tobacco pan/gutka) - ask how much and for how long
  • Alcohol use
  • Betel nut (supari) chewing - very important in Indian patients, associated with submucous fibrosis and oral cancer
  • Occupation (relevant to stress bruxism)

9. Clinical Examination

A. General Examination

Before even looking at the mouth, note:
  • Patient's general appearance, build, nutrition
  • Any facial asymmetry visible from the door
  • Gait, pallor, jaundice, cyanosis (routine vitals)

B. Extra-Oral Examination (Outside the Mouth)

Face:
  • Symmetry - compare left vs right
  • Any swelling, sinus, scar, or skin discoloration
  • Facial palsy?
Eyes:
  • Proptosis (suggests space-occupying lesion)
Lymph nodes (neck):
  • Palpate submental, submandibular, pre-auricular, posterior auricular, cervical chain, supraclavicular nodes
  • Note: size, consistency, tenderness, mobility, fixation
TMJ (Temporomandibular Joint):
  • Ask patient to open and close mouth
  • Note maximum mouth opening (normal ~40 mm or 3 finger breadths)
  • Any clicking, crepitus, deviation on opening?
  • Palpate the joint while patient opens/closes
Lips:
  • Color, symmetry, commissures, any ulcers or angular cheilitis

C. Intra-Oral Examination (Inside the Mouth)

Always use gloves, a mouth mirror, and a probe. Examine in a systematic order - don't miss any area.
Order of examination:
  1. Lips (inner surface) - mucosa, frenulum
  2. Buccal mucosa (cheeks) - both sides, look for white patches, ulcers, Stensen's duct (parotid opening opposite upper 2nd molar)
  3. Gingiva (gums) - color (normal: coral pink), contour, consistency, bleeding, swelling
  4. Teeth - count them, note caries, fillings, fractures, discoloration, mobility
  5. Hard palate - mucosal color, any swelling, torus palatinus (midline bony lump - normal variant)
  6. Soft palate + uvula - movement on saying "Aah"
  7. Tongue - dorsal surface (coating, papillae), lateral borders (most common site for oral cancer!), ventral surface, floor of mouth
  8. Floor of mouth - Wharton's duct (submandibular gland opening)
  9. Oropharynx - tonsils, posterior pharyngeal wall

10. Teeth Charting (Basic)

Teeth are identified by a numbering system. In India, the FDI (Federation Dentaire Internationale) Two-Digit System is most commonly used:
Upper Right | Upper Left
18 17 16 15 14 13 12 11 | 21 22 23 24 25 26 27 28
48 47 46 45 44 43 42 41 | 31 32 33 34 35 36 37 38
Lower Right | Lower Left
  • First digit = quadrant (1=upper right, 2=upper left, 3=lower left, 4=lower right)
  • Second digit = tooth number from midline (1=central incisor to 8=3rd molar)
Basic notations used:
  • C or shading = caries (cavity)
  • F = filled
  • X or / = extracted
  • RCT = root canal treatment done
  • M = missing

11. Common Conditions You Will See

ConditionKey Features
Dental cariesCavity/black discoloration in tooth
Acute pulpitisSevere spontaneous toothache
Periapical abscessSwelling, pus, tender tooth
GingivitisRed, swollen, bleeding gums - no bone loss
PeriodontitisGum disease with bone loss, pockets, loose teeth
Oral ulcersAphthous (painful, white center, red halo), traumatic, herpetic
Oral submucous fibrosisPale, stiff cheeks, restricted mouth opening - betel nut
LeukoplakiaWhite patch that can't be scraped off - pre-malignant
ErythroplakiaRed patch - higher malignant potential than leukoplakia
Oral candidiasisWhite curdy patches that CAN be scraped off
Ludwig's anginaBilateral submandibular/sublingual space infection - emergency!

12. Special Investigations to Know About

  • X-rays: Intraoral periapical (IOPA) - for individual teeth; Orthopantomogram (OPG) - full mouth panoramic
  • FNAC - for swellings/lymph nodes
  • Biopsy - for suspicious oral lesions
  • Blood tests - CBC, blood sugar, coagulation profile before extractions

13. Practical Tips for Tomorrow

  1. Carry your own gloves and a small torch. If you don't have a torch, your phone flashlight works.
  2. Ask open questions first, then move to specific closed questions.
  3. Don't diagnose prematurely - let the history guide you.
  4. Note all allergies before anything else.
  5. Look at the face before asking a single question - a lot of diagnosis is in the inspection.
  6. When in doubt, ask your senior/resident - they prefer you ask rather than miss something.
  7. Betel nut and tobacco history is mandatory in every Indian dental patient.
  8. Document everything - positive AND relevant negative findings.

14. Helpful Video Resource

This walkthrough covers extraoral examination, intraoral examination, charting, and special investigations in one go:

Good luck tomorrow! The key is to be systematic - follow the same order every time and you will never miss anything important. The dental ward residents are generally very supportive with medical students, so don't hesitate to ask questions.

Create a one-page quick reference cheat sheet (PDF) I can print and bring tomorrow

Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not found"

Running Command

mkdir -p /home/daytona/workspace/dental-guide && python3 -c "from reportlab.lib.…

Writing File

~/dental-guide/make_cheatsheet.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm
from reportlab.pdfgen import canvas
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import Table, TableStyle

OUTPUT = "/home/daytona/workspace/dental-guide/Dental_Ward_Cheatsheet.pdf"

W, H = A4  # 595 x 842 pt

# Colour palette
NAVY   = colors.HexColor("#1a3a5c")
TEAL   = colors.HexColor("#0d7377")
LTBLUE = colors.HexColor("#e8f4f8")
YELLOW = colors.HexColor("#fff9e6")
ORANGE = colors.HexColor("#f4a261")
RED    = colors.HexColor("#e63946")
WHITE  = colors.white
GRAY   = colors.HexColor("#f0f0f0")
DKGRAY = colors.HexColor("#444444")

def draw_box(c, x, y, w, h, fill=WHITE, stroke=NAVY, radius=4):
    c.setFillColor(fill)
    c.setStrokeColor(stroke)
    c.setLineWidth(0.8)
    c.roundRect(x, y, w, h, radius, fill=1, stroke=1)

def header_text(c, x, y, w, h, text, bg=NAVY, fg=WHITE, size=8):
    draw_box(c, x, y, w, h, fill=bg, stroke=bg, radius=3)
    c.setFillColor(fg)
    c.setFont("Helvetica-Bold", size)
    c.drawCentredString(x + w/2, y + h/2 - size/3, text)

def body_text(c, x, y, text, size=6.5, color=DKGRAY, bold=False):
    c.setFillColor(color)
    font = "Helvetica-Bold" if bold else "Helvetica"
    c.setFont(font, size)
    c.drawString(x, y, text)

def bullet(c, x, y, text, size=6.2, color=DKGRAY):
    c.setFillColor(TEAL)
    c.setFont("Helvetica", size)
    c.drawString(x, y, "•")
    c.setFillColor(color)
    c.drawString(x + 6, y, text)

def draw_divider(c, x, y, w, color=TEAL):
    c.setStrokeColor(color)
    c.setLineWidth(0.5)
    c.line(x, y, x+w, y)

def make_pdf():
    c = canvas.Canvas(OUTPUT, pagesize=A4)
    c.setTitle("Dental Ward Cheat Sheet - MBBS 3rd Year")

    # ── MAIN BACKGROUND ──────────────────────────────────────────────
    c.setFillColor(GRAY)
    c.rect(0, 0, W, H, fill=1, stroke=0)

    # ── TOP HEADER BAR ───────────────────────────────────────────────
    c.setFillColor(NAVY)
    c.rect(0, H-28, W, 28, fill=1, stroke=0)
    c.setFillColor(WHITE)
    c.setFont("Helvetica-Bold", 13)
    c.drawCentredString(W/2, H-20, "DENTAL WARD QUICK REFERENCE  |  MBBS 3rd Year Clinical Posting")
    c.setFont("Helvetica", 7)
    c.setFillColor(colors.HexColor("#aad4e8"))
    c.drawCentredString(W/2, H-26, "History Taking  •  Examination  •  Common Conditions  •  Investigations")

    MARGIN = 10*mm
    COL_GAP = 3*mm
    TOTAL_W = W - 2*MARGIN
    C1W = TOTAL_W * 0.33
    C2W = TOTAL_W * 0.33
    C3W = TOTAL_W * 0.34
    X1 = MARGIN
    X2 = X1 + C1W + COL_GAP
    X3 = X2 + C2W + COL_GAP

    TOP_Y = H - 35

    # ════════════════════════════════════════════════════════════════
    # COLUMN 1
    # ════════════════════════════════════════════════════════════════
    y = TOP_Y

    # --- History Format ---
    BOX_H = 8
    header_text(c, X1, y-BOX_H, C1W, BOX_H, "📋  HISTORY FORMAT", bg=NAVY)
    y -= BOX_H + 1
    draw_box(c, X1, y-72, C1W, 72, fill=LTBLUE)
    steps = [
        ("1", "Chief Complaint (CC)", "Patient's own words"),
        ("2", "HPC", "SOCRATES for pain"),
        ("3", "Past Dental Hx", "Attendance, extractions, LA"),
        ("4", "Past Medical Hx", "DM, HTN, heart, bleeding"),
        ("5", "Drug Hx + Allergies", "Penicillin, NSAIDs, latex"),
        ("6", "Social Hx", "Tobacco, betel nut, alcohol"),
        ("7", "Family Hx", "Oral cancer, bleeding d/o"),
    ]
    sy = y - 6
    for num, title, detail in steps:
        c.setFillColor(TEAL)
        c.setFont("Helvetica-Bold", 6.5)
        c.drawString(X1+3, sy, f"{num}.")
        c.setFillColor(NAVY)
        c.setFont("Helvetica-Bold", 6.2)
        c.drawString(X1+10, sy, title)
        c.setFillColor(DKGRAY)
        c.setFont("Helvetica", 6)
        c.drawString(X1+10, sy-7, detail)
        sy -= 17 if num != "7" else 0
    y -= 74

    # --- SOCRATES ---
    y -= 3
    header_text(c, X1, y-BOX_H, C1W, BOX_H, "🩺  SOCRATES (Pain History)", bg=TEAL)
    y -= BOX_H + 1
    soc = [
        ("S", "Site", "Where? Point to it"),
        ("O", "Onset", "Sudden/gradual? When?"),
        ("C", "Character", "Throbbing/sharp/dull?"),
        ("R", "Radiation", "Ear, jaw, neck?"),
        ("A", "Associations", "Swelling, fever, taste?"),
        ("T", "Time course", "Better / worse?"),
        ("E", "Exac/Relieving", "Hot/cold/biting? Drugs?"),
        ("S", "Severity", "0–10 scale"),
    ]
    bh = len(soc)*9 + 4
    draw_box(c, X1, y-bh, C1W, bh, fill=WHITE)
    sy = y - 8
    for letter, word, detail in soc:
        c.setFillColor(ORANGE)
        c.setFont("Helvetica-Bold", 7.5)
        c.drawString(X1+3, sy, letter)
        c.setFillColor(NAVY)
        c.setFont("Helvetica-Bold", 6.2)
        c.drawString(X1+11, sy, word)
        c.setFillColor(DKGRAY)
        c.setFont("Helvetica", 6)
        c.drawString(X1+42, sy, detail)
        sy -= 9
    y -= bh + 2

    # --- Key Drugs Causing Oral SE ---
    y -= 3
    header_text(c, X1, y-BOX_H, C1W, BOX_H, "💊  DRUGS → ORAL SIDE EFFECTS", bg=colors.HexColor("#6b4c9a"))
    y -= BOX_H + 1
    drugs = [
        ("Phenytoin", "Gingival hyperplasia"),
        ("Amlodipine/Nifedipine", "Gingival enlargement"),
        ("Bisphosphonates", "Jaw osteonecrosis (BRONJ)"),
        ("Steroids/Chemo", "Candidiasis, mucositis"),
        ("Anticholinergics", "Xerostomia (dry mouth)"),
        ("Methotrexate", "Oral ulcers"),
        ("Warfarin/Heparin", "Post-extraction bleeding"),
    ]
    dh = len(drugs)*9 + 4
    draw_box(c, X1, y-dh, C1W, dh, fill=YELLOW)
    sy = y - 8
    for drug, effect in drugs:
        c.setFillColor(colors.HexColor("#6b4c9a"))
        c.setFont("Helvetica-Bold", 6)
        c.drawString(X1+3, sy, drug)
        c.setFillColor(DKGRAY)
        c.setFont("Helvetica", 6)
        c.drawString(X1+3, sy-6, f"  → {effect}")
        sy -= 13
    y -= dh + 2

    # ════════════════════════════════════════════════════════════════
    # COLUMN 2
    # ════════════════════════════════════════════════════════════════
    y = TOP_Y

    # --- Extra-Oral Exam ---
    header_text(c, X2, y-BOX_H, C2W, BOX_H, "👁  EXTRA-ORAL EXAMINATION", bg=colors.HexColor("#2d6a4f"))
    y -= BOX_H + 1
    eo = [
        "Face: Symmetry, swelling, scar, sinus",
        "Eyes: Proptosis (space-occupying lesion?)",
        "Lips: Colour, commissures, ulcers",
        "Lymph nodes: Submental → Submandibular",
        "  → Preauricular → Cervical chain",
        "  Note: Size, consistency, tenderness",
        "TMJ: Opening (normal ≥40 mm / 3 fingers)",
        "  Click, crepitus, deviation on opening?",
    ]
    eh = len(eo)*9 + 4
    draw_box(c, X2, y-eh, C2W, eh, fill=colors.HexColor("#f0fff4"))
    sy = y - 8
    for line in eo:
        c.setFillColor(colors.HexColor("#2d6a4f") if not line.startswith(" ") else DKGRAY)
        c.setFont("Helvetica-Bold" if not line.startswith(" ") else "Helvetica", 6.2)
        if not line.startswith(" "):
            c.drawString(X2+3, sy, "▸ " + line)
        else:
            c.drawString(X2+6, sy, line.strip())
        sy -= 9
    y -= eh + 2

    # --- Intra-Oral Exam ---
    y -= 3
    header_text(c, X2, y-BOX_H, C2W, BOX_H, "🦷  INTRA-ORAL EXAMINATION", bg=TEAL)
    y -= BOX_H + 1
    io_items = [
        ("Lips", "Inner mucosa, frenulum"),
        ("Buccal mucosa", "Both sides, Stensen's duct"),
        ("Gingiva", "Colour, contour, BOP, pocket"),
        ("Teeth", "Caries, fracture, mobility, #"),
        ("Hard palate", "Swelling, torus palatinus"),
        ("Soft palate", "Movement on 'Aah'"),
        ("Tongue", "Dorsum, lateral borders ⚠, ventral"),
        ("Floor of mouth", "Wharton's duct, swelling"),
        ("Oropharynx", "Tonsils, posterior wall"),
    ]
    ih = len(io_items)*10 + 4
    draw_box(c, X2, y-ih, C2W, ih, fill=LTBLUE)
    sy = y - 8
    for area, detail in io_items:
        c.setFillColor(TEAL)
        c.setFont("Helvetica-Bold", 6.2)
        c.drawString(X2+3, sy, area + ":")
        c.setFillColor(DKGRAY)
        c.setFont("Helvetica", 6)
        c.drawString(X2+3, sy-6.5, "  " + detail)
        sy -= 12
    y -= ih + 2

    # --- FDI Tooth Chart ---
    y -= 3
    header_text(c, X2, y-BOX_H, C2W, BOX_H, "🔢  FDI TOOTH NUMBERING", bg=colors.HexColor("#c77dff"))
    y -= BOX_H + 1
    draw_box(c, X2, y-48, C2W, 48, fill=colors.HexColor("#fdf4ff"))
    c.setFillColor(DKGRAY)
    c.setFont("Helvetica-Bold", 6)
    c.drawCentredString(X2+C2W/2, y-9, "Upper Right (1)  |  Upper Left (2)")
    c.setFont("Courier-Bold", 5.8)
    c.setFillColor(NAVY)
    c.drawCentredString(X2+C2W/2, y-17, "18 17 16 15 14 13 12 11 | 21 22 23 24 25 26 27 28")
    draw_divider(c, X2+4, y-22, C2W-8, color=colors.HexColor("#c77dff"))
    c.drawCentredString(X2+C2W/2, y-28, "48 47 46 45 44 43 42 41 | 31 32 33 34 35 36 37 38")
    c.setFont("Helvetica-Bold", 6)
    c.setFillColor(DKGRAY)
    c.drawCentredString(X2+C2W/2, y-36, "Lower Right (4)  |  Lower Left (3)")
    c.setFont("Helvetica", 5.8)
    c.drawCentredString(X2+C2W/2, y-44, "C=Caries  F=Filled  X=Extracted  /=Missing  RCT=Root Canal")
    y -= 50

    # ════════════════════════════════════════════════════════════════
    # COLUMN 3
    # ════════════════════════════════════════════════════════════════
    y = TOP_Y

    # --- Common Conditions ---
    header_text(c, X3, y-BOX_H, C3W, BOX_H, "📌  COMMON CONDITIONS", bg=RED)
    y -= BOX_H + 1
    conds = [
        ("Dental Caries", "Cavity/black lesion on tooth"),
        ("Pulpitis (Rev.)", "Pain with hot/cold, resolves fast"),
        ("Pulpitis (Irrev.)", "Spontaneous throbbing, worse @ night"),
        ("Periapical Abscess", "Const. pain, tender to bite, swelling"),
        ("Gingivitis", "Red/swollen gums, bleeding, no bone loss"),
        ("Periodontitis", "Bone loss, pocketing, loose teeth"),
        ("Aphthous Ulcer", "Painful, white center + red halo"),
        ("Oral Candidiasis", "White curdy patches — scraped off"),
        ("Leukoplakia", "White patch — NOT scraped off ⚠"),
        ("Erythroplakia", "Red patch — HIGH malignant risk ⚠⚠"),
        ("Oral Sub. Fibrosis", "Pale stiff cheeks, limited opening"),
        ("Ludwig's Angina", "Bilateral submandibular — EMERGENCY!"),
    ]
    ch = len(conds)*10 + 4
    draw_box(c, X3, y-ch, C3W, ch, fill=WHITE)
    sy = y - 8
    for cond, desc in conds:
        flag = "⚠" in desc or "EMERGENCY" in desc
        c.setFillColor(RED if "EMERGENCY" in desc else (colors.HexColor("#c44b4b") if "⚠" in desc else NAVY))
        c.setFont("Helvetica-Bold", 6.2)
        c.drawString(X3+3, sy, cond)
        c.setFillColor(DKGRAY)
        c.setFont("Helvetica", 5.8)
        c.drawString(X3+3, sy-6.5, "  " + desc)
        sy -= 12
    y -= ch + 2

    # --- Medical Hx Red Flags ---
    y -= 3
    header_text(c, X3, y-BOX_H, C3W, BOX_H, "⚕  MEDICAL Hx RED FLAGS", bg=colors.HexColor("#d62828"))
    y -= BOX_H + 1
    flags = [
        ("Diabetes", "Poor healing, infxn risk, perio disease"),
        ("Hypertension", "Drug interactions (LA + epi)"),
        ("Cardiac / RHD", "Antibiotic prophylaxis before procedure"),
        ("Anticoagulants", "Post-extraction haemorrhage"),
        ("Epilepsy", "Phenytoin → gingival hyperplasia"),
        ("Pregnancy", "Avoid X-rays, certain drugs"),
        ("HIV / Immuno-supp", "Candida, Kaposi sarcoma"),
        ("Bisphosphonate use", "BRONJ risk — avoid extractions"),
    ]
    fh = len(flags)*10 + 4
    draw_box(c, X3, y-fh, C3W, fh, fill=colors.HexColor("#fff5f5"))
    sy = y - 8
    for cond, detail in flags:
        c.setFillColor(colors.HexColor("#d62828"))
        c.setFont("Helvetica-Bold", 6.2)
        c.drawString(X3+3, sy, cond + ":")
        c.setFillColor(DKGRAY)
        c.setFont("Helvetica", 5.8)
        c.drawString(X3+3, sy-6.5, "  " + detail)
        sy -= 12
    y -= fh + 2

    # --- Investigations ---
    y -= 3
    header_text(c, X3, y-BOX_H, C3W, BOX_H, "🔬  INVESTIGATIONS", bg=colors.HexColor("#457b9d"))
    y -= BOX_H + 1
    inv = [
        ("IOPA X-ray", "Individual tooth, periapical region"),
        ("OPG (Panoramic)", "Full mouth view — overview"),
        ("CBCT", "3D imaging for implants/surgery"),
        ("FNAC", "Swellings / lymph nodes"),
        ("Biopsy", "Suspicious lesions (leukoplakia etc)"),
        ("CBC + Blood sugar", "Before extraction"),
        ("PT/INR", "Anticoagulant patients"),
        ("Vitality test", "Electric pulp / cold test"),
    ]
    ivh = len(inv)*10 + 4
    draw_box(c, X3, y-ivh, C3W, ivh, fill=LTBLUE)
    sy = y - 8
    for test, use in inv:
        c.setFillColor(colors.HexColor("#457b9d"))
        c.setFont("Helvetica-Bold", 6.2)
        c.drawString(X3+3, sy, test + ":")
        c.setFillColor(DKGRAY)
        c.setFont("Helvetica", 5.8)
        c.drawString(X3+3, sy-6.5, "  " + use)
        sy -= 12
    y -= ivh + 2

    # ── BOTTOM FOOTER BAR ────────────────────────────────────────────
    c.setFillColor(NAVY)
    c.rect(0, 0, W, 14, fill=1, stroke=0)
    c.setFillColor(WHITE)
    c.setFont("Helvetica-Bold", 6)
    c.drawString(MARGIN, 5, "⚠  Lateral borders of tongue = most common site for oral cancer")
    c.setFont("Helvetica", 6)
    c.drawCentredString(W/2, 5, "BETEL NUT / TOBACCO Hx is MANDATORY in every Indian dental patient")
    c.setFont("Helvetica-Bold", 6)
    c.setFillColor(colors.HexColor("#aad4e8"))
    c.drawRightString(W - MARGIN, 5, "Good luck on your posting! 🦷")

    c.save()
    print(f"PDF saved: {OUTPUT}")

make_pdf()
Running Command

cd /home/daytona/workspace/dental-guide && python3 make_cheatsheet.py

Running Command

ls -lh /home/daytona/workspace/dental-guide/Dental_Ward_Cheatsheet.pdf

Your cheat sheet is ready! Download it here:

Dental Ward Cheatsheet

PDF Document · PDF


The single A4 page is designed to be printed and includes all 7 panels:
  • History Format - the 7-step structure with what to ask in each section
  • SOCRATES - letter-by-letter breakdown with exact questions for dental pain
  • Drugs → Oral Side Effects - phenytoin, bisphosphonates, amlodipine, steroids and more
  • Extra-Oral Examination - face, eyes, lips, lymph nodes, TMJ in order
  • Intra-Oral Examination - 9-area systematic sequence with what to look for
  • FDI Tooth Numbering Chart - all 4 quadrants with charting symbols
  • Common Conditions - 12 conditions with key features (red flags highlighted)
  • Medical Hx Red Flags - 8 systemic conditions that matter in dentistry
  • Investigations - IOPA, OPG, biopsy, blood tests
Print it on A4 paper (portrait, fit to page). Good luck tomorrow!
This is a shared conversation. Sign in to Orris to start your own chat.