PDE4 inhibitors used in COPD and there dosages plans
PDE4 inhibitor COPD roflumilast ensifentrine
roflumilast COPD exacerbations
PMID: 38476122
ensifentrine COPD dosage FDA approved 2024 nebulization
| Regimen | Dose |
|---|---|
| Standard dose | 500 mcg (0.5 mg) orally once daily |
| Strategy | Typical Approach | Discontinuation Rate |
|---|---|---|
| Dose-escalation | Start at 250 mcg/day for 4 weeks, then increase to 500 mcg/day | ~27.9% |
| Low-dose | Continue at 250 mcg/day (sub-standard) | ~11.7% |
| Standard dose | 500 mcg/day from the start | Higher (reference) |
The low-dose group showed significantly less diarrhea (RR 0.58) with no statistically significant difference in acute exacerbation rates (22.9% vs. 20.1%), suggesting a lower dose may be a reasonable compromise in poorly-tolerant patients.
| Regimen | Dose |
|---|---|
| FDA-approved dose | 3 mg inhaled via standard jet nebulizer twice daily |
| Feature | Roflumilast | Ensifentrine |
|---|---|---|
| Class | PDE4 inhibitor (oral) | Dual PDE3/4 inhibitor (inhaled) |
| Route | Oral | Nebulizer (inhaled) |
| Dose | 500 mcg once daily | 3 mg twice daily |
| Key indication | Severe COPD + chronic bronchitis + exacerbations despite triple therapy | Maintenance COPD (broad) |
| Main benefit | Reduces exacerbations ~20% | Bronchodilation + anti-inflammation |
| Main side effects | Diarrhea, nausea, weight loss | Minimal (inhaled) |
| Contraindication | Severe liver impairment | None established yet |
| FDA approval | 2011 | June 2024 |
Antibiotic therapy for VOPd. Keep it short... Just the dosage regimens ond treatment plan
| Drug | Dose | Duration |
|---|---|---|
| Azithromycin | 500 mg PO once daily | 5 days |
| Amoxicillin-clavulanate | 875/125 mg PO twice daily | 5-7 days |
| Doxycycline / Tetracycline | Standard dose PO | 7 days |
| Drug | Dose | Duration |
|---|---|---|
| Levofloxacin | 750 mg PO/IV once daily | 7-10 days |
| (or other anti-pseudomonal agent based on local resistance) |
| Drug | Dose | Duration |
|---|---|---|
| Azithromycin (prophylactic) | 250 mg every 2 days | 3 months after infection |
Exacerbation management according to Gold and dosages plan for drugs used write by step by step as I'm taking notes
GOLD 2025 COPD exacerbation management guidelines drug dosages
https://goldcopd.org/wp-content/uploads/2024/11/GOLD-2025-Re…
Goal: SpO₂ 88-92% (avoid hyperoxia - risk of hypercapnia)
| Drug | Dose | Route |
|---|---|---|
| Salbutamol (Albuterol) | 2.5 mg nebulized q 20 min x 3, then q 1-4h PRN | Nebulizer |
| OR Salbutamol MDI | 4-8 puffs (100 mcg/puff) q 1-4h | Spacer + MDI |
| Drug | Dose | Route |
|---|---|---|
| Ipratropium | 0.5 mg (500 mcg) nebulized q 4-6h | Nebulizer |
| OR Ipratropium MDI | 4-8 puffs (18-20 mcg/puff) q 4-6h | Spacer + MDI |
- Salbutamol + Ipratropium can be combined in the same nebulizer
- Continue existing long-acting bronchodilators (LABA/LAMA) - do NOT stop them
- IV methylxanthines (theophylline/aminophylline) are NOT recommended - significant side effects, no proven benefit
Shorten recovery time, improve FEV1 and oxygenation. Duration should NOT exceed 5 days.
| Drug | Dose | Route | Duration |
|---|---|---|---|
| Prednisolone | 30-40 mg once daily | PO | 5 days |
| OR Methylprednisolone | 40 mg IV once daily | IV | 5 days (if cannot take oral) |
- Oral is as effective as IV
- No benefit beyond 5 days
- Do NOT taper for a 5-day course
| Drug | Dose | Duration |
|---|---|---|
| Azithromycin | 500 mg PO once daily | 5 days |
| Amoxicillin-clavulanate | 875/125 mg PO twice daily | 5-7 days |
| Doxycycline | 100 mg PO twice daily | 5-7 days |
| Drug | Dose | Duration |
|---|---|---|
| Levofloxacin | 750 mg PO/IV once daily | 7-10 days |
| Or Ciprofloxacin | 400 mg IV / 750 mg PO twice daily | 7-10 days |
Duration of antibiotic therapy: 5 days (per GOLD 2025 - evidence shows no benefit beyond 5 days for most)
First-line ventilation in COPD. Do NOT go straight to intubation.
| Action | Detail |
|---|---|
| Monitor fluid balance | Avoid overhydration |
| DVT prophylaxis | Heparin or LMWH in hospitalized patients |
| Nutrition | Maintain caloric intake |
| Chest physio | Assist mucus clearance |
| Treat precipitant | Pneumonia, PE, pneumothorax, heart failure |
| Vaccination | Influenza + pneumococcal if not up to date |
Sources: GOLD 2025 Report & Pocket Guide | Goldman-Cecil Medicine, p. 3160 | Rosen's Emergency Medicine, p. 2584
Create a one-page quick reference PDF for COPD exacerbation dosages
ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"
mkdir -p /home/daytona/workspace/copd-ref && python3 -c "from reportlab.lib impo…
~/copd-ref/make_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm
from reportlab.platypus import (
SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, HRFlowable
)
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.platypus import KeepTogether
OUTPUT = "/home/daytona/workspace/copd-ref/COPD_Exacerbation_Quick_Reference.pdf"
# ── Colours ──────────────────────────────────────────────────────────────────
DARK_BLUE = colors.HexColor("#1A3A5C")
MED_BLUE = colors.HexColor("#2E6DA4")
LIGHT_BLUE = colors.HexColor("#D6E8F7")
ACCENT_RED = colors.HexColor("#C0392B")
ACCENT_GRN = colors.HexColor("#1E7E34")
PALE_GREY = colors.HexColor("#F5F5F5")
WHITE = colors.white
GOLD_AMBER = colors.HexColor("#F0A500")
# ── Styles ────────────────────────────────────────────────────────────────────
title_style = ParagraphStyle("title",
fontName="Helvetica-Bold", fontSize=15, textColor=WHITE,
alignment=TA_CENTER, spaceAfter=2)
subtitle_style = ParagraphStyle("subtitle",
fontName="Helvetica", fontSize=8, textColor=LIGHT_BLUE,
alignment=TA_CENTER, spaceAfter=0)
section_style = ParagraphStyle("section",
fontName="Helvetica-Bold", fontSize=8, textColor=WHITE,
alignment=TA_CENTER)
body = ParagraphStyle("body", fontName="Helvetica", fontSize=7.5, textColor=colors.black, leading=10)
body_bold = ParagraphStyle("body_bold", fontName="Helvetica-Bold", fontSize=7.5, textColor=DARK_BLUE, leading=10)
small = ParagraphStyle("small", fontName="Helvetica", fontSize=6.5, textColor=colors.grey, leading=9)
red_bold = ParagraphStyle("red_bold", fontName="Helvetica-Bold", fontSize=7.5, textColor=ACCENT_RED)
grn_bold = ParagraphStyle("grn_bold", fontName="Helvetica-Bold", fontSize=7.5, textColor=ACCENT_GRN)
cell_hdr = ParagraphStyle("cell_hdr", fontName="Helvetica-Bold", fontSize=7.5, textColor=WHITE, alignment=TA_CENTER)
cell_body = ParagraphStyle("cell_body", fontName="Helvetica", fontSize=7, textColor=colors.black, leading=9)
cell_bold = ParagraphStyle("cell_bold", fontName="Helvetica-Bold", fontSize=7, textColor=DARK_BLUE, leading=9)
def section_header(text, bg=MED_BLUE):
t = Table([[Paragraph(text, section_style)]], colWidths=[175*mm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
]))
return t
def drug_table(headers, rows, col_widths):
data = [[Paragraph(h, cell_hdr) for h in headers]]
for row in rows:
data.append([Paragraph(str(c), cell_body) for c in row])
t = Table(data, colWidths=col_widths)
style = [
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, PALE_GREY]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#AAAAAA")),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
("LEFTPADDING", (0,0), (-1,-1), 4),
("RIGHTPADDING", (0,0), (-1,-1), 4),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]
t.setStyle(TableStyle(style))
return t
# ── Document ──────────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT, pagesize=A4,
leftMargin=10*mm, rightMargin=10*mm,
topMargin=8*mm, bottomMargin=8*mm
)
story = []
# ── HEADER BANNER ─────────────────────────────────────────────────────────────
header_data = [[
Paragraph("COPD EXACERBATION", title_style),
Paragraph("QUICK REFERENCE CARD", title_style),
]]
header_table = Table(header_data, colWidths=[90*mm, 85*mm])
header_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 2),
]))
story.append(header_table)
sub_data = [[Paragraph("Based on GOLD 2025 Guidelines | For reference only — always apply clinical judgement", subtitle_style)]]
sub_t = Table(sub_data, colWidths=[175*mm])
sub_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 0),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
]))
story.append(sub_t)
story.append(Spacer(1, 2*mm))
# ────────────────────────────────────────────────────────────────────────────
# TWO-COLUMN LAYOUT via a wide Table
# ────────────────────────────────────────────────────────────────────────────
col_W = 86*mm # each column
gap = 3*mm
# ── LEFT COLUMN ───────────────────────────────────────────────────────────────
left = []
# 1. OXYGEN
left.append(section_header("① OXYGEN THERAPY", ACCENT_RED))
left.append(Spacer(1,1.5*mm))
left.append(Paragraph("<b>Target SpO₂: 88–92%</b> (avoid hyperoxia → hypercapnia)", body_bold))
left.append(Spacer(1,1*mm))
oxy_rows = [
["Nasal cannula", "1–4 L/min", "Titrate to SpO₂ 88-92%"],
["Venturi mask", "24–28%", "More precise FiO₂ control"],
["Use <b>air-driven</b> nebulizers", "—", "Avoid O₂-driven (↑PaCO₂)"],
]
left.append(drug_table(["Device","Flow/FiO₂","Note"], oxy_rows, [32*mm, 24*mm, 30*mm]))
left.append(Paragraph("→ Check ABG at 30–60 min. Monitor for rising PaCO₂.", small))
left.append(Spacer(1,2*mm))
# 2. BRONCHODILATORS
left.append(section_header("② BRONCHODILATORS (Start Immediately)", MED_BLUE))
left.append(Spacer(1,1.5*mm))
left.append(Paragraph("<b>SABA — First Line</b>", body_bold))
bd_rows = [
["Salbutamol (nebulized)", "2.5 mg q20 min × 3\nthen q1–4h PRN"],
["Salbutamol MDI + spacer", "4–8 puffs q1–4h PRN"],
]
left.append(drug_table(["Drug","Dose"], bd_rows, [46*mm, 40*mm]))
left.append(Spacer(1,1*mm))
left.append(Paragraph("<b>SAMA — Add if inadequate response</b>", body_bold))
sa_rows = [
["Ipratropium (nebulized)", "0.5 mg (500 mcg) q4–6h"],
["Ipratropium MDI + spacer", "4–8 puffs q4–6h"],
]
left.append(drug_table(["Drug","Dose"], sa_rows, [46*mm, 40*mm]))
left.append(Spacer(1,1*mm))
left.append(Paragraph(
"✔ Can combine Salbutamol + Ipratropium in same nebulizer\n"
"✔ Continue existing LABA/LAMA — do NOT stop\n"
"✘ IV Methylxanthines (theophylline) — NOT recommended", small))
left.append(Spacer(1,2*mm))
# 3. CORTICOSTEROIDS
left.append(section_header("③ SYSTEMIC CORTICOSTEROIDS", colors.HexColor("#7B3F00")))
left.append(Spacer(1,1.5*mm))
cs_rows = [
["Prednisolone", "30–40 mg PO once daily", "5 days (preferred)"],
["Methylprednisolone", "40 mg IV once daily", "5 days if cannot take PO"],
]
left.append(drug_table(["Drug","Dose","Duration"], cs_rows, [30*mm, 33*mm, 23*mm]))
left.append(Paragraph(
"• Oral = IV in efficacy • No benefit > 5 days • No taper needed for 5-day course", small))
left.append(Spacer(1,2*mm))
# INDICATORS FOR HOSPITALIZATION
left.append(section_header("⚠ ADMIT TO HOSPITAL IF", colors.HexColor("#7D3C98")))
left.append(Spacer(1,1.5*mm))
admit_items = [
"Marked dyspnea at rest / cyanosis",
"SpO₂ < 90% despite O₂",
"Confusion / altered consciousness",
"Respiratory acidosis: pH ≤ 7.35",
"Failure to respond to initial treatment",
"Significant comorbidities (cardiac, etc.)",
]
for item in admit_items:
left.append(Paragraph(f"▸ {item}", body))
left.append(Spacer(1,1*mm))
left.append(Paragraph(
"<b>ICU if:</b> pH < 7.25, persistent hypoxia, resp. arrest, hemodynamic instability",
red_bold))
# ── RIGHT COLUMN ──────────────────────────────────────────────────────────────
right = []
# 4. ANTIBIOTICS
right.append(section_header("④ ANTIBIOTICS", ACCENT_GRN))
right.append(Spacer(1,1.5*mm))
right.append(Paragraph("<b>Indications (GOLD — any ONE below):</b>", body_bold))
right.append(Paragraph("1. Increased dyspnea + sputum volume + purulence (all 3)", body))
right.append(Paragraph("2. Increased purulence + either dyspnea OR volume", body))
right.append(Paragraph("3. Requires assisted ventilation (NIV or intubation)", body))
right.append(Spacer(1,1.5*mm))
right.append(Paragraph("<b>Standard risk (no Pseudomonas):</b>", body_bold))
ab_rows = [
["Azithromycin", "500 mg PO OD", "5 days"],
["Amoxicillin-clavulanate", "875/125 mg PO BD", "5–7 days"],
["Doxycycline", "100 mg PO BD", "5–7 days"],
]
right.append(drug_table(["Drug","Dose","Duration"], ab_rows, [35*mm, 28*mm, 18*mm]))
right.append(Spacer(1,1.5*mm))
right.append(Paragraph(
"<b>High risk — Pseudomonas coverage</b>\n"
"(severe COPD, bronchiectasis, recent hospitalization, prior Pseudomonas):", body_bold))
ab_rows2 = [
["Levofloxacin", "750 mg PO/IV OD", "7–10 days"],
["Ciprofloxacin", "400 mg IV / 750 mg PO BD", "7–10 days"],
]
right.append(drug_table(["Drug","Dose","Duration"], ab_rows2, [28*mm, 37*mm, 16*mm]))
right.append(Paragraph(
"Post-exacerbation prophylaxis: Azithromycin 250 mg every 2 days × 3 months", small))
right.append(Spacer(1,2*mm))
# 5. NIV
right.append(section_header("⑤ NON-INVASIVE VENTILATION (BiPAP)", colors.HexColor("#1A6352")))
right.append(Spacer(1,1.5*mm))
right.append(Paragraph("<b>Indications:</b>", body_bold))
right.append(Paragraph("• pH ≤ 7.35 with PaCO₂ > 45 mmHg (respiratory acidosis)", body))
right.append(Paragraph("• Severe dyspnea + accessory muscle use / paradoxical breathing", body))
right.append(Paragraph("• Persistent hypoxia despite controlled O₂ therapy", body))
right.append(Spacer(1,1.5*mm))
niv_rows = [
["IPAP (inspiratory)", "10–15 cmH₂O", "Titrate up for relief"],
["EPAP (expiratory)", "4–5 cmH₂O", "Start low"],
["FiO₂", "Titrate", "SpO₂ target 88–92%"],
]
right.append(drug_table(["Parameter","Start","Goal"], niv_rows, [33*mm, 27*mm, 21*mm]))
right.append(Paragraph(
"• NIV reduces mortality, intubation rate, ICU stay\n"
"• Reassess in 1h — if pH worsening, escalate to intubation", small))
right.append(Spacer(1,2*mm))
# 6. SUPPORTIVE
right.append(section_header("⑥ SUPPORTIVE CARE", DARK_BLUE))
right.append(Spacer(1,1.5*mm))
sup_rows = [
["DVT prophylaxis", "LMWH SC (e.g. enoxaparin 40 mg OD)"],
["Fluid balance", "Monitor — avoid overhydration"],
["Nutrition", "Maintain caloric intake"],
["Smoking cessation", "Counsel at every admission"],
["Vaccinations", "Influenza + pneumococcal if due"],
]
right.append(drug_table(["Measure","Detail"], sup_rows, [32*mm, 54*mm]))
right.append(Spacer(1,2*mm))
# 7. DISCHARGE
right.append(section_header("⑦ DISCHARGE & FOLLOW-UP", GOLD_AMBER))
right.append(Spacer(1,1.5*mm))
right.append(Paragraph("<b>Safe to discharge when:</b>", body_bold))
right.append(Paragraph("• SABA needed ≤ q4h • Patient mobile across room", body))
right.append(Paragraph("• Eating/sleeping without major dyspnea • ABG stable", body))
right.append(Spacer(1,1*mm))
right.append(Paragraph("<b>Follow-up:</b> Within 4–6 weeks", body_bold))
right.append(Paragraph("Review: inhaler technique • maintenance therapy • exacerbation triggers", body))
# ── ASSEMBLE TWO-COLUMN TABLE ─────────────────────────────────────────────────
two_col = Table([[left, right]], colWidths=[col_W, col_W])
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),
("LINEAFTER", (0,0), (0,-1), 0.5, colors.HexColor("#CCCCCC")),
("RIGHTPADDING", (0,0), (0,-1), 3),
("LEFTPADDING", (1,0), (1,-1), 3),
]))
story.append(two_col)
# ── FOOTER ────────────────────────────────────────────────────────────────────
story.append(Spacer(1, 2*mm))
story.append(HRFlowable(width="100%", thickness=0.5, color=DARK_BLUE))
story.append(Spacer(1,1*mm))
footer_data = [[
Paragraph("Sources: GOLD 2025 Report & Pocket Guide | Goldman-Cecil Medicine | Rosen's Emergency Medicine | Goodman & Gilman's Pharmacology", small),
Paragraph("July 2026 | For educational use only", small),
]]
ft = Table(footer_data, colWidths=[135*mm, 40*mm])
ft.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),
("ALIGN", (1,0), (1,0), "RIGHT"),
]))
story.append(ft)
doc.build(story)
print("PDF created:", OUTPUT)
cd /home/daytona/workspace/copd-ref && python3 make_pdf.py 2>&1
COPD Exacerbation Quick Reference
PDF Document · PDF