Grades of acne vulgaris with images and management

Reading File
Finding Sources
Searching Images

acne vulgaris grades classification comedones papules pustules nodules

Searching PubMed

acne vulgaris classification management

Reading File
Reading File
Reading File
Searching Images

acne vulgaris comedonal papular pustular nodular cystic skin

Reading File
Reading File
Reading File
Reading File
Loading Image
Finding Sources
Finding Sources
Loading Image
I now have rich textbook content. Let me compile the comprehensive response. I have all the key information needed from Andrews' Diseases of the Skin, Harrison's Principles, and Dermatology 2-Volume Set, plus 2024 AAD guidelines from PubMed. Let me now write the full answer.

Acne Vulgaris: Grades and Management

Acne vulgaris is a chronic inflammatory disorder of the pilosebaceous unit, affecting ~85% of adolescents and persisting into adulthood in a significant proportion. It is characterized by comedones, papules, pustules, nodules, and potential scarring. - Andrews' Diseases of the Skin, p. 280

Pathogenesis (Brief Overview)

Four key factors drive acne:
  1. Increased sebum production (androgen-driven)
  2. Follicular hyperkeratinization - abnormal desquamation blocks the follicular orifice
  3. Proliferation of Cutibacterium acnes (formerly Propionibacterium acnes)
  4. Inflammation - C. acnes releases free fatty acids from sebum, triggering follicular rupture and a foreign-body inflammatory reaction

Primary Lesions

LesionDescription
Closed comedo (whitehead)1-2 mm pebbly white papule; contents not easily expressed; precursor to inflammatory lesions
Open comedo (blackhead)Dilated follicular orifice filled with oxidized, darkened, oily debris; rarely causes inflammatory lesions
Papule1-5 mm erythematous, edematous elevation due to inflammation
PustulePapule with visible purulent content
Nodule>5 mm, deep, indurated inflammatory lesion
Cyst/Sinus tractFluctuant nodules that coalesce, form tracts, and discharge serosanguineous pus

Grading of Acne Vulgaris

Several grading systems exist; the most clinically used is a 3-tier system (Mild / Moderate / Severe) based on lesion type and count:

Grade 1 - Mild (Comedonal / Mild Inflammatory)

  • Predominantly open and closed comedones
  • Few inflammatory papules/pustules (up to ~20)
  • No nodules or cysts
  • Little to no scarring risk
  • Primarily affects the forehead/cheeks
Clinical example: Early adolescent acne, mostly non-inflammatory blackheads and whiteheads

Grade 2 - Moderate (Papulopustular)

  • Predominantly papules and pustules (20-100 lesions)
  • Some comedones
  • Limited to a few areas (face, upper chest, back)
  • Mild scarring possible
Clinical example: Teenage inflammatory acne spreading across cheeks, nose, chin
Acne vulgaris with inflammatory papules, pustules, and comedones
Acne vulgaris with prominent inflammatory papules, pustules, and comedones (Harrison's Principles of Internal Medicine 22E, Fig. 60-1)

Grade 3 - Severe (Nodular / Nodulocystic)

  • Numerous nodules and cysts (>5 nodules, or >100 total lesions)
  • Widespread distribution: face, neck, chest, back, upper arms
  • High risk of scarring (ice-pick scars, atrophic canyon scars, hypertrophic/keloidal scars)
  • May involve sinus tract formation and serosanguineous discharge
Clinical example: Widespread nodular acne with active scarring, significant psychological impact
Acne Fulminans (rare, severe variant): Abrupt onset of severe ulcerative nodular acne with systemic symptoms (fever, arthralgia, leukocytosis) - requires systemic corticosteroids + isotretinoin.

Management

Management follows a stepwise approach aligned to severity. The 2024 AAD Guidelines of Care for Acne Vulgaris (PMID: 38300170) provide the most current evidence-based framework.

General Principles (All Grades)

  • Treat the entire affected area, not individual lesions
  • Set realistic expectations: improvement takes 6-8 weeks; full response at 3-6 months
  • Avoid vigorous scrubbing (can rupture comedones and worsen inflammation)
  • High-glycemic diet may worsen acne; consider dietary counseling in obese/PCOS patients
  • Screen for aggravating medications: glucocorticoids, lithium, isoniazid, progestin-only OCP, EGFR inhibitors, anabolic steroids

Grade 1 - Mild Acne Treatment

First Line:
  • Topical retinoid (tretinoin 0.025-0.05%, adapalene 0.1-0.3%, tazarotene 0.1%) - normalizes follicular keratinization; cornerstone of comedonal acne
  • Benzoyl peroxide (BPO) 2.5-10% - antibacterial + mild comedolytic; prevents antibiotic resistance
  • Combination: Topical retinoid + BPO or topical antimicrobial
Second Line:
  • Azelaic acid 15-20% - anti-inflammatory + comedolytic; safe in pregnancy; reduces post-inflammatory hyperpigmentation
  • Sodium sulfacetamide-sulfur
Notes on retinoids:
  • Adapalene: Well-tolerated, light-stable, can apply morning or evening (pregnancy category C)
  • Tazarotene: Strongest, most irritating; apply at night; pregnancy category X - requires contraceptive counseling
  • Start every other night or with a moisturizer to reduce irritation

Grade 2 - Moderate Acne Treatment

In Men (First Line):
  • Oral antibiotic (doxycycline 100 mg BID or minocycline 100 mg BID) + topical retinoid + BPO
  • Antibiotics have anti-inflammatory effects beyond their antibacterial activity
  • Adequate response expected at 3 months
In Women (Preferred):
  • Spironolactone (50-200 mg/day) - antiandrogen; safe, effective, durable
  • Combined oral contraceptive (OCP) - FDA-approved formulations for acne
  • Both combined with topical retinoid ± BPO
Second Line / If Scarring:
  • Alternate antibiotic (e.g., azithromycin pulses) + alternate retinoid
  • Isotretinoin if: relapses quickly off antibiotics, fails to clear, or is scarring
Key rule: Never use topical antibiotics (clindamycin, erythromycin) alone - always combine with BPO to prevent C. acnes resistance development.

Grade 3 - Severe Nodular/Cystic Acne Treatment

Drug of choice: Isotretinoin (oral)
  • Synthetic retinoid; only agent that addresses all 4 pathogenic factors
  • Dosing is weight-based and cumulative (target cumulative dose ~120-150 mg/kg)
  • Side effects: dry skin, cheilitis; rare but serious - teratogenicity (iPLEDGE program mandatory in the US), mood changes, hepatotoxicity, hyperlipidemia
  • Requires: 2 negative pregnancy tests before initiation + negative test before each refill (for females)
Alternative (if isotretinoin refused/contraindicated):
  • Oral antibiotic + topical retinoid + BPO
  • In women: spironolactone + OCP + topical retinoid ± topical/oral antibiotics
Adjunct treatments for severe acne:
  • Intralesional triamcinolone acetonide (for individual large cysts)
  • Systemic corticosteroids (for acne fulminans or pre-isotretinoin flare prevention)

Topical Agent Summary Table

AgentMechanismGradeNotes
TretinoinNormalizes follicular keratinizationMild-ModStart low, night use
AdapaleneRetinoid receptor agonistMild-ModOTC 0.1%; light-stable
TazaroteneRetinoid receptor agonistMild-ModStrongest retinoid; Preg X
Benzoyl peroxideBactericidal; free radical releaseAllNo resistance; wash OK for trunk
Clindamycin/ErythromycinBacteriostatic topicalMild-ModAlways combine with BPO
Azelaic acidAnti-inflam; normalizes keratinizationMild-ModSafe in pregnancy; reduces PIH
Clascoterone creamTopical antiandrogen receptorModFDA-approved; male & female
DapsoneAnti-inflammatoryModGel formulation

Oral Agent Summary Table

AgentUseKey Notes
DoxycyclineModerate acne100 mg BID; photosensitivity
MinocyclineModerate acne100 mg BID; extended-release forms available
SpironolactoneWomen, moderate-severe50-200 mg/day; antiandrogen
OCPWomen, moderate-severeMultiple FDA-approved formulations
IsotretinoinSevere/nodulocysticCumulative dose-based; iPLEDGE program

Acne Scars (Post-treatment Consideration)

Scar TypeDescriptionLocation
Ice-pickDeep, narrowTemples, cheeks
Atrophic/canyonWide, shallow depressionFace
HypertrophicRaised, firmNeck, trunk
KeloidalElevated, proliferativeNeck, trunk
Post-inflammatory hyperpigmentationDark macules (especially in darker skin)Face
Management of scars includes chemical peels, laser resurfacing, microneedling, subcision, and filler injections - addressed after active acne is controlled.

Sources

  • Andrews' Diseases of the Skin: Clinical Dermatology, p. 280-283
  • Harrison's Principles of Internal Medicine 22E (2025), pp. 433-435
  • Dermatology 2-Volume Set 5e, Chapter 36
  • Reynolds RV et al. 2024 AAD Guidelines of Care for Acne Vulgaris. J Am Acad Dermatol. PMID: 38300170

Doxycycline oral management duration for acne vulgaris

Finding Sources
Searching PubMed

doxycycline acne vulgaris duration treatment

Reading File
Reading File
Reading File
I now have all the necessary detailed information. Here is the complete answer:

Doxycycline for Acne Vulgaris: Dosing, Duration & Key Principles


Indication

Doxycycline is indicated for moderate to severe inflammatory acne vulgaris, particularly when:
  • Topical combinations have failed or are not tolerated
  • Acne involves the chest, back, or shoulders (truncal acne)
  • Scarring occurs with each lesion
  • Rapid control is essential (e.g., to prevent post-inflammatory hyperpigmentation in darker skin)

Dosing

PopulationDoseFrequency
Adults (standard)50-100 mgOnce or twice daily, depending on severity
Adults (severe)100 mgTwice daily (BID)
Extended-release formulation100-200 mgOnce daily
Adolescents ≥8 yr50-100 mgBID PO, or 150 mg once daily PO
Children <8 yrAvoidRisk of tooth enamel hypoplasia and discoloration
Start at a higher dose to achieve control, then step down or discontinue once inflammatory lesions resolve. - Andrews' Diseases of the Skin, p. 281

Duration

The recommended duration is 3 to 6 months.
This is the key clinical guideline, directly stated in Fitzpatrick's Dermatology and the 2024 AAD Guidelines (PMID: 38300170):
"Recent guidelines recommend limiting the duration of oral antibiotic therapy in acne to 3 to 6 months to reduce risk of resistance." - Fitzpatrick's Dermatology, p. 1435
  • Expect visible response at 8-12 weeks (do not judge efficacy before this point)
  • Target: Achieve adequate control, then transition to topical maintenance therapy (topical retinoid ± benzoyl peroxide)
  • Do not use oral antibiotics indefinitely: A subset of patients who cannot use isotretinoin or hormonal agents may require longer use, but reevaluation at regular intervals is mandatory

Mandatory Combination Rules

Doxycycline must never be used as monotherapy:
Always Combine WithReason
Benzoyl peroxide (BPO)Prevents development of Cutibacterium acnes resistance; use even as short 2-7 day pulses
Topical retinoidHastens response; allows faster discontinuation of the antibiotic; addresses comedonal component
"Concomitant use with a topical retinoid will hasten the response and allow for more rapid discontinuance of the antibiotic." - Andrews' Diseases of the Skin, p. 281

Side Effects to Monitor

Side EffectNotes
PhotosensitivityCan be dramatic; advise sun protection and avoidance of prolonged sun exposure
GI symptoms (nausea, esophagitis)Take upright with water; do not take at bedtime; enteric-coated formulation available
Candidal vaginitis/perianal itchOccurs in ~5% of patients
Pseudotumor cerebriIncreased intracranial pressure - rare but serious; presents with headache/visual changes
Tooth discolorationAvoid in children <8 years and in pregnancy
TEN, DRESS, SJS, erythema multiformeRare but reported

Drug Interactions

  • Rifampin, barbiturates, phenytoin, carbamazepine: Increase doxycycline clearance - may reduce efficacy
  • Warfarin: Doxycycline enhances hypoprothrombinemic effect - monitor INR
  • Oral contraceptives: Theoretical interaction (unproven except with rifampin); discuss with patients and offer backup contraception

Resistance Concern

C. acnes resistance to tetracyclines and macrolides is rising globally. One UK study documented a prevalence of 65% resistance. Doxycycline and minocycline (lipophilic tetracyclines) show less resistance than erythromycin. To minimize resistance:
  • Avoid antibiotic monotherapy
  • Always combine with BPO
  • Limit duration to 3-6 months
  • Do not switch antibiotics frequently without clinical reason; if retreating, use the same antibiotic unless it has already failed

Transition After Doxycycline

Once acne is controlled on doxycycline, do not simply stop. Transition to long-term topical maintenance to prevent relapse:
  • Topical retinoid (adapalene, tretinoin) ± BPO
  • In women: consider spironolactone or OCP for hormonal maintenance
  • In severe/relapsing cases: consider isotretinoin course

Sources

  • Andrews' Diseases of the Skin: Clinical Dermatology, pp. 280-283
  • Fitzpatrick's Dermatology 9e, p. 1435
  • The Harriet Lane Handbook 23e, pp. 1117-1118
  • Harrison's Principles of Internal Medicine 22E (2025), p. 434
  • Reynolds RV et al. 2024 AAD Guidelines of Care for Acne Vulgaris. J Am Acad Dermatol. PMID: 38300170

Create a quick-reference protocol PDF for doxycycline + topical therapy

Reading File
Running Command

ls -la /tmp/workspace/ 2>/dev/null || echo "workspace empty or missing"

Running Command

mkdir -p /tmp/workspace/acne-protocol && python3 << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.units import mm, cm from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_RIGHT from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether) from reportlab.platypus import ListFlowable, ListItem from reportlab.graphics.shapes import Drawing, Rect, String from reportlab.graphics import renderPDF # ── colours ────────────────────────────────────────────────────────────────── NAVY = colors.HexColor("#1A3558") TEAL = colors.HexColor("#0D7A8C") AMBER = colors.HexColor("#D97706") RED = colors.HexColor("#B91C1C") GREEN = colors.HexColor("#15803D") LGREY = colors.HexColor("#F1F5F9") MGREY = colors.HexColor("#CBD5E1") WHITE = colors.white BLACK = colors.black W, H = A4 OUT = "/tmp/workspace/acne-protocol/Doxycycline_Acne_Protocol.pdf" doc = SimpleDocTemplate( OUT, pagesize=A4, leftMargin=18*mm, rightMargin=18*mm, topMargin=22*mm, bottomMargin=18*mm, title="Doxycycline + Topical Therapy – Acne Vulgaris Quick-Reference Protocol", author="Orris Clinical Reference" ) styles = getSampleStyleSheet() def S(name, **kw): return ParagraphStyle(name, parent=styles["Normal"], **kw) # ── custom paragraph styles ─────────────────────────────────────────────────── TITLE = S("Title2", fontSize=18, textColor=WHITE, leading=22, alignment=TA_CENTER, fontName="Helvetica-Bold") SUBHDR = S("SubHdr", fontSize=10, textColor=WHITE, leading=14, alignment=TA_CENTER, fontName="Helvetica-Bold") SECTION = S("Section", fontSize=9.5, textColor=NAVY, leading=13, fontName="Helvetica-Bold", spaceBefore=4) BODY = S("Body", fontSize=8.5, textColor=BLACK, leading=12, fontName="Helvetica", spaceBefore=2) SMALL = S("Small", fontSize=7.5, textColor=colors.HexColor("#475569"), leading=10, fontName="Helvetica-Oblique") WARN = S("Warn", fontSize=8, textColor=RED, leading=11, fontName="Helvetica-Bold") TH = S("TH", fontSize=8, textColor=WHITE, leading=11, fontName="Helvetica-Bold", alignment=TA_CENTER) TD = S("TD", fontSize=8, textColor=BLACK, leading=11, fontName="Helvetica", alignment=TA_CENTER) TDL = S("TDL", fontSize=8, textColor=BLACK, leading=11, fontName="Helvetica", alignment=TA_LEFT) BADGE = S("Badge", fontSize=8, textColor=WHITE, leading=11, fontName="Helvetica-Bold", alignment=TA_CENTER) FOOT = S("Foot", fontSize=7, textColor=colors.HexColor("#64748B"), leading=10, fontName="Helvetica-Oblique", alignment=TA_CENTER) STEPNO = S("StepNo", fontSize=20, textColor=TEAL, leading=24, fontName="Helvetica-Bold", alignment=TA_CENTER) STEPL = S("StepL", fontSize=8.5, textColor=BLACK, leading=12, fontName="Helvetica", spaceBefore=1) def cell(text, style=TD): return Paragraph(text, style) # ══════════════════════════════════════════════════════════════════════════════ story = [] # ── HEADER BANNER ───────────────────────────────────────────────────────────── header_data = [[ Paragraph("ACNE VULGARIS", TITLE), ]] header_tbl = Table(header_data, colWidths=[W - 36*mm]) header_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), NAVY), ("TOPPADDING", (0,0), (-1,-1), 10), ("BOTTOMPADDING",(0,0),(-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 8), ("RIGHTPADDING",(0,0), (-1,-1), 8), ("ROUNDEDCORNERS", [4]), ])) story.append(header_tbl) sub_data = [[ Paragraph("Doxycycline + Topical Therapy · Quick-Reference Protocol", SUBHDR) ]] sub_tbl = Table(sub_data, colWidths=[W - 36*mm]) sub_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), TEAL), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING",(0,0),(-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 8), ("RIGHTPADDING",(0,0), (-1,-1), 8), ])) story.append(sub_tbl) story.append(Spacer(1, 6)) meta_row = [[ Paragraph("Indication: Moderate–Severe Inflammatory Acne", S("m1", fontSize=7.5, textColor=NAVY, fontName="Helvetica-Bold")), Paragraph("Source: Andrews' · Harrison's · Fitzpatrick's · AAD 2024", S("m2", fontSize=7.5, textColor=colors.HexColor("#475569"), fontName="Helvetica-Oblique", alignment=TA_RIGHT)), ]] meta_tbl = Table(meta_row, colWidths=[(W-36*mm)*0.6, (W-36*mm)*0.4]) meta_tbl.setStyle(TableStyle([ ("VALIGN",(0,0),(-1,-1),"MIDDLE"), ("LEFTPADDING",(0,0),(-1,-1),0), ("RIGHTPADDING",(0,0),(-1,-1),0), ])) story.append(meta_tbl) story.append(Spacer(1, 8)) # ══════════════════════════════════════════════════════════════════════════════ # ROW 1: two columns ─ Dosing | Duration # ══════════════════════════════════════════════════════════════════════════════ COL2L = (W - 36*mm - 4*mm) * 0.5 # left column COL2R = (W - 36*mm - 4*mm) * 0.5 # right column GAP = 4*mm # ── DOSING BOX ──────────────────────────────────────────────────────────────── def section_box(title, content_rows, col_widths, title_bg=NAVY, alternate=True): """Build a titled box-table.""" hdr = [[Paragraph(title, TH)]] hdr_tbl = Table(hdr, colWidths=[sum(col_widths)]) hdr_tbl.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), title_bg), ("TOPPADDING",(0,0),(-1,-1),4), ("BOTTOMPADDING",(0,0),(-1,-1),4), ("LEFTPADDING",(0,0),(-1,-1),6), ])) body_tbl = Table(content_rows, colWidths=col_widths) ts = [ ("FONTSIZE",(0,0),(-1,-1),8), ("ROWBACKGROUNDS",(0,0),(-1,-1),[WHITE, LGREY] if alternate else [WHITE]), ("LINEBELOW",(0,0),(-1,-1),0.3, MGREY), ("TOPPADDING",(0,0),(-1,-1),3), ("BOTTOMPADDING",(0,0),(-1,-1),3), ("LEFTPADDING",(0,0),(-1,-1),5), ("RIGHTPADDING",(0,0),(-1,-1),5), ("VALIGN",(0,0),(-1,-1),"MIDDLE"), ("BOX",(0,0),(-1,-1),0.5, MGREY), ] body_tbl.setStyle(TableStyle(ts)) wrapper = Table([[hdr_tbl],[body_tbl]], colWidths=[sum(col_widths)]) wrapper.setStyle(TableStyle([ ("LEFTPADDING",(0,0),(-1,-1),0), ("RIGHTPADDING",(0,0),(-1,-1),0), ("TOPPADDING",(0,0),(-1,-1),0), ("BOTTOMPADDING",(0,0),(-1,-1),0), ("BOX",(0,0),(-1,-1),1, NAVY), ])) return wrapper # Dosing table dosing_rows = [ [cell("Population", TH), cell("Dose", TH), cell("Frequency", TH)], [cell("Adults (standard)", TDL), cell("50–100 mg", TD), cell("Once or twice daily", TD)], [cell("Adults (severe)", TDL), cell("100 mg", TD), cell("Twice daily (BID)", TD)], [cell("Extended-release", TDL), cell("100–200 mg", TD), cell("Once daily", TD)], [cell("Adolescents ≥8 yr", TDL), cell("50–100 mg", TD), cell("BID PO", TD)], [cell("Children <8 yr", TDL), cell("""<font color="#B91C1C"><b>AVOID</b></font>""", TD), cell("Tooth enamel risk", TD)], ] dw = [COL2L*0.38, COL2L*0.28, COL2L*0.34] dosing_box = section_box("💊 DOXYCYCLINE DOSING", dosing_rows, dw) # Duration box dur_inner = [ [cell("Recommended duration", TDL), cell("<b>3 – 6 months</b>", TD)], [cell("Expect visible response", TDL), cell("8 – 12 weeks", TD)], [cell("Assess efficacy at", TDL), cell("12 weeks (do not judge earlier)", TD)], [cell("Start strategy", TDL), cell("High dose → step down on control", TD)], [cell("Long-term use?", TDL), cell("Only if isotretinoin/hormonal Rx not suitable;\nreevaluate regularly", TD)], ] dw2 = [COL2R*0.44, COL2R*0.56] duration_box = section_box("⏱ TREATMENT DURATION", dur_inner, dw2, title_bg=TEAL) two_col = Table( [[dosing_box, Spacer(GAP,1), duration_box]], colWidths=[COL2L, GAP, COL2R] ) two_col.setStyle(TableStyle([ ("VALIGN",(0,0),(-1,-1),"TOP"), ("LEFTPADDING",(0,0),(-1,-1),0), ("RIGHTPADDING",(0,0),(-1,-1),0), ("TOPPADDING",(0,0),(-1,-1),0), ("BOTTOMPADDING",(0,0),(-1,-1),0), ])) story.append(two_col) story.append(Spacer(1, 7)) # ══════════════════════════════════════════════════════════════════════════════ # COMBINATION THERAPY (full width) # ══════════════════════════════════════════════════════════════════════════════ combo_rows = [ [cell("Agent", TH), cell("Mechanism", TH), cell("Why Mandatory", TH), cell("Dosing/Notes", TH)], [cell("Benzoyl Peroxide (BPO)\n2.5–10%", TDL), cell("Free-radical bactericidal", TD), cell("Prevents C. acnes resistance;\nno resistance develops to BPO", TD), cell("Once/twice daily; 2-min wash for trunk;\n2–7 day pulses also protective", TD)], [cell("Topical Retinoid\n(adapalene / tretinoin / tazarotene)", TDL), cell("Normalises follicular keratinisation", TD), cell("Hastens response; enables earlier\ndiscontinuation of antibiotic", TD), cell("Apply at night; start every other night\nif irritation occurs", TD)], ] cw = [(W-36*mm)*0.22, (W-36*mm)*0.20, (W-36*mm)*0.31, (W-36*mm)*0.27] combo_box = section_box("⚡ MANDATORY COMBINATION THERAPY — Never Use Doxycycline Alone", combo_rows, cw, title_bg=AMBER) story.append(combo_box) story.append(Spacer(1, 7)) # ══════════════════════════════════════════════════════════════════════════════ # ROW 3: three columns — Retinoid Choice | Step-Down Plan | Resistance Rules # ══════════════════════════════════════════════════════════════════════════════ COL3 = (W - 36*mm - 2*GAP) / 3 # Retinoid choice ret_rows = [ [cell("Retinoid", TH), cell("Strength", TH), cell("Key Note", TH)], [cell("Adapalene\n0.1–0.3%", TDL), cell("Mild–Mod", TD), cell("Light-stable; OTC 0.1%;\nPreg category C", TD)], [cell("Tretinoin\n0.025–0.05%", TDL), cell("Moderate", TD), cell("Apply at night;\nlight-sensitive", TD)], [cell("Tazarotene\n0.1%", TDL), cell("Strongest", TD), cell("""<font color="#B91C1C"><b>Preg X</b></font> — needs\ncontraceptive counselling""", TD)], ] rw = [COL3*0.33, COL3*0.26, COL3*0.41] ret_box = section_box("🔬 RETINOID CHOICE", ret_rows, rw) # Step-down / transition step_rows = [ [cell("Phase", TH), cell("Action", TH)], [cell("Weeks 1–12", TDL), cell("Doxycycline + retinoid + BPO\n(full dose)", TD)], [cell("Week 12 review", TDL), cell("Assess response; step\ndown dose if controlled", TD)], [cell("Months 3–6", TDL), cell("Taper antibiotic; maintain\ntopical retinoid + BPO", TD)], [cell("After antibiotic stop", TDL), cell("Topical retinoid + BPO\nas long-term maintenance", TD)], [cell("If relapse / scarring", TDL), cell("Consider isotretinoin\nor hormonal therapy (♀)", TD)], ] sw = [COL3*0.38, COL3*0.62] step_box = section_box("📅 STEP-DOWN PLAN", step_rows, sw, title_bg=GREEN) # Resistance rules res_rows = [ [cell("Rule", TDL)], [cell("✗ No antibiotic monotherapy — always add BPO", TDL)], [cell("✗ Limit oral antibiotics to ≤ 6 months", TDL)], [cell("✗ Do not switch antibiotics without clinical reason", TDL)], [cell("✓ If retreating, use the same antibiotic (unless failed)", TDL)], [cell("✓ Combine with BPO even for 2–7 day pulse courses", TDL)], [cell("✓ Resistance lowest with doxycycline/minocycline\n (vs. erythromycin — 65% resistance documented)", TDL)], ] resw = [COL3] res_box = section_box("🛡 RESISTANCE RULES", res_rows, resw, title_bg=RED) three_col = Table( [[ret_box, Spacer(GAP,1), step_box, Spacer(GAP,1), res_box]], colWidths=[COL3, GAP, COL3, GAP, COL3] ) three_col.setStyle(TableStyle([ ("VALIGN",(0,0),(-1,-1),"TOP"), ("LEFTPADDING",(0,0),(-1,-1),0), ("RIGHTPADDING",(0,0),(-1,-1),0), ("TOPPADDING",(0,0),(-1,-1),0), ("BOTTOMPADDING",(0,0),(-1,-1),0), ])) story.append(three_col) story.append(Spacer(1, 7)) # ══════════════════════════════════════════════════════════════════════════════ # SIDE EFFECTS (full width, 2 columns inside) # ══════════════════════════════════════════════════════════════════════════════ se_rows = [ [cell("Side Effect", TH), cell("Frequency / Notes", TH), cell("Side Effect", TH), cell("Frequency / Notes", TH)], [cell("Photosensitivity", TDL), cell("Common; can be dramatic — advise sun protection", TD), cell("Pseudotumor cerebri", TDL), cell("Rare; headache + visual changes → stop drug", TD)], [cell("GI symptoms (nausea)", TDL), cell("Common; take upright with water; enteric-coated form available", TD), cell("Tooth discoloration", TDL), cell("Avoid in <8 yr and pregnancy", TD)], [cell("Esophagitis", TDL), cell("Do not take at bedtime; take with full glass of water", TD), cell("Candidal vaginitis/perianal itch", TDL), cell("~5% of patients; treat with topical antifungal", TD)], [cell("Drug interactions", TDL), cell("Rifampin / barbiturates / phenytoin ↑ clearance;\nwarfarin ↑ INR — monitor", TD), cell("TEN / DRESS / SJS", TDL), cell("Rare but serious — discontinue immediately", TD)], ] sew = [(W-36*mm)*0.18, (W-36*mm)*0.32, (W-36*mm)*0.18, (W-36*mm)*0.32] se_box = section_box("⚠ SIDE EFFECTS & INTERACTIONS", se_rows, sew, title_bg=colors.HexColor("#7C3AED")) story.append(se_box) story.append(Spacer(1, 7)) # ══════════════════════════════════════════════════════════════════════════════ # SPECIAL POPULATIONS + OCP NOTE (2 columns) # ══════════════════════════════════════════════════════════════════════════════ COL2La = (W - 36*mm - GAP) * 0.52 COL2Ra = (W - 36*mm - GAP) * 0.48 pop_rows = [ [cell("Population", TH), cell("Preferred Regimen", TH), cell("Notes", TH)], [cell("Adult men (moderate)", TDL), cell("Doxycycline + retinoid + BPO", TD), cell("3–6 months; then topical maintenance", TD)], [cell("Adult women (moderate)", TDL), cell("Spironolactone 50–200 mg/day\n± OCP + retinoid ± BPO", TD), cell("Preferred over antibiotics;\ndurable antiandrogen effect", TD)], [cell("Women (alternative)", TDL), cell("Doxycycline + retinoid + BPO", TD), cell("Use if hormonal Rx contraindicated;\ndiscuss backup contraception", TD)], [cell("Severe / nodular (all)", TDL), cell("Isotretinoin (first choice)", TD), cell("Doxycycline + retinoid + BPO if\nisotretinoin refused/contraindicated", TD)], [cell("Pregnancy", TDL), cell("""<font color="#B91C1C"><b>Doxycycline CONTRAINDICATED</b></font>""", TD), cell("Use azelaic acid + BPO (Preg B/C)", TD)], ] pw = [COL2La*0.26, COL2La*0.42, COL2La*0.32] pop_box = section_box("👥 SPECIAL POPULATIONS", pop_rows, pw, title_bg=NAVY) ocp_rows = [ [cell("Agent", TH), cell("Formulation", TH)], [cell("Ortho Tri-Cyclen", TDL), cell("Norgestimate + ethinyl estradiol 35 µg", TD)], [cell("Estrostep", TDL), cell("Norethindrone acetate + ethinyl estradiol 20–35 µg", TD)], [cell("Yaz", TDL), cell("Drospirenone 3 mg + ethinyl estradiol 20 µg", TD)], [cell("Spironolactone", TDL), cell("50–200 mg/day (off-label but guideline-endorsed)", TD)], ] ow = [COL2Ra*0.32, COL2Ra*0.68] ocp_note = Table( [[Paragraph("FDA-Approved Hormonal Options for Women", TH)]], colWidths=[sum(ow)] ) ocp_note.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), TEAL), ("TOPPADDING",(0,0),(-1,-1),4), ("BOTTOMPADDING",(0,0),(-1,-1),4), ("LEFTPADDING",(0,0),(-1,-1),6), ])) ocp_body = Table(ocp_rows, colWidths=ow) ocp_body.setStyle(TableStyle([ ("FONTSIZE",(0,0),(-1,-1),8), ("ROWBACKGROUNDS",(0,0),(-1,-1),[WHITE, LGREY]), ("LINEBELOW",(0,0),(-1,-1),0.3, MGREY), ("TOPPADDING",(0,0),(-1,-1),3), ("BOTTOMPADDING",(0,0),(-1,-1),3), ("LEFTPADDING",(0,0),(-1,-1),5), ("RIGHTPADDING",(0,0),(-1,-1),5), ("VALIGN",(0,0),(-1,-1),"MIDDLE"), ("BOX",(0,0),(-1,-1),0.5, MGREY), ])) ocp_wrap = Table([[ocp_note],[ocp_body]], colWidths=[sum(ow)]) ocp_wrap.setStyle(TableStyle([ ("LEFTPADDING",(0,0),(-1,-1),0), ("RIGHTPADDING",(0,0),(-1,-1),0), ("TOPPADDING",(0,0),(-1,-1),0), ("BOTTOMPADDING",(0,0),(-1,-1),0), ("BOX",(0,0),(-1,-1),1, TEAL), ])) last_row = Table( [[pop_box, Spacer(GAP,1), ocp_wrap]], colWidths=[COL2La, GAP, COL2Ra] ) last_row.setStyle(TableStyle([ ("VALIGN",(0,0),(-1,-1),"TOP"), ("LEFTPADDING",(0,0),(-1,-1),0), ("RIGHTPADDING",(0,0),(-1,-1),0), ("TOPPADDING",(0,0),(-1,-1),0), ("BOTTOMPADDING",(0,0),(-1,-1),0), ])) story.append(last_row) story.append(Spacer(1, 8)) # ══════════════════════════════════════════════════════════════════════════════ # FOOTER # ══════════════════════════════════════════════════════════════════════════════ story.append(HRFlowable(width="100%", thickness=0.5, color=MGREY)) story.append(Spacer(1, 3)) story.append(Paragraph( "Sources: Andrews' Diseases of the Skin (p. 280–283) · Harrison's Principles of Internal Medicine 22E (2025, p. 434) · " "Fitzpatrick's Dermatology 9e (p. 1435) · The Harriet Lane Handbook 23e · " "Reynolds RV et al. AAD Guidelines of Care for Acne Vulgaris. J Am Acad Dermatol 2024. PMID 38300170 · " "Generated by Orris Clinical Reference — for educational use only. Not a substitute for clinical judgement.", FOOT )) doc.build(story) print("PDF created:", OUT) PYEOF

Your quick-reference protocol PDF is ready:

Doxycycline Acne Protocol

PDF Document · PDF


What's inside the single A4 page:
SectionContent
Doxycycline DosingDosing by population (adults, adolescents ≥8 yr, extended-release, pregnancy contraindication)
Treatment Duration3-6 month limit, 12-week assessment point, step-down strategy
Mandatory Combination TherapyBPO + topical retinoid - why each is non-negotiable
Retinoid ChoiceAdapalene vs. tretinoin vs. tazarotene (strength, pregnancy category, notes)
Step-Down PlanPhase-by-phase timeline from initiation to topical maintenance
Resistance Rules6 colour-coded rules to prevent C. acnes resistance
Side Effects & Interactions8 side effects in a 2-column layout with action notes
Special PopulationsMen, women, severe/nodular, pregnancy - regimen guidance
FDA Hormonal Options (Women)3 approved OCPs + spironolactone dosing
SourcesAndrews', Harrison's, Fitzpatrick's, Harriet Lane, AAD 2024 guidelines
This is a shared conversation. Sign in to Orris to start your own chat.