Why the atherosclerosis occur only in heart

Reading File
Finding Sources
Searching the Web

why does atherosclerosis affect all arteries not just heart

Reading File
Reading File
Reading File
Reading File
Loading Image

Atherosclerosis Does NOT Occur Only in the Heart

This is a very important misconception to correct. Atherosclerosis is a systemic arterial disease - it can affect virtually any artery in the body, not just the coronary arteries.

What Is Atherosclerosis?

Atherosclerosis is best understood as the vascular response to endothelial injury. It is characterized by intimal lesions called atheromas (atherosclerotic plaques) - raised lesions composed of:
  • A soft, lipid-rich core (cholesterol, cholesterol esters, necrotic debris)
  • Covered by a fibrous cap (smooth muscle cells, macrophages, foam cells, collagen, elastin)
Atherosclerotic plaque structure - Robbins & Kumar Basic Pathology
Diagram showing (A) vascular response to endothelial injury and (B) a mature atheromatous plaque with fibrous cap and necrotic center.

Arteries Affected by Atherosclerosis

Atherosclerosis underlies the pathogenesis of coronary, cerebral, AND peripheral vascular disease (Robbins & Kumar Basic Pathology). It preferentially affects large and medium-sized elastic and muscular arteries:
ArteryDisease Caused
Coronary arteriesIschemic heart disease, myocardial infarction
Cerebral / carotid arteriesStroke, TIA
AortaAortic aneurysm
Renal arteriesRenovascular hypertension, renal failure
Mesenteric arteriesIntestinal ischemia (mesenteric ischemia)
Peripheral (femoral, popliteal, iliac) arteriesPeripheral artery disease (PAD), gangrene
The heart's coronary arteries get the most attention because myocardial infarction is responsible for roughly one-quarter of all deaths in Western countries - but this is because the consequences of coronary blockage are immediately life-threatening, not because the disease is exclusive to that location.

Why Does Atherosclerosis Occur? (The Mechanism)

The same mechanism drives plaque formation in any artery:

1. Endothelial Injury

Any of these injures the arterial endothelium:
  • Hypertension (mechanical stress)
  • Hyperlipidemia / oxidized LDL (toxic)
  • Cigarette smoking (toxic chemicals)
  • Diabetes (glycation and oxidative stress)
  • Infections, inflammation

2. Lipid Accumulation

With chronic hyperlipidemia, LDL accumulates in the intima and is oxidized. Macrophages engulf oxidized LDL via scavenger receptors, becoming foam cells. Foam cells release growth factors, cytokines, and chemokines that perpetuate the inflammatory cycle.

3. Inflammation

Cholesterol crystals and free fatty acids activate the inflammasome in macrophages, releasing IL-1 and other proinflammatory cytokines. T lymphocytes are recruited, secreting IFN-γ, which activates more macrophages and endothelial cells.

4. Smooth Muscle Cell Proliferation

Smooth muscle cells migrate from the media into the intima, proliferate, and synthesize extracellular matrix. This converts early fatty streaks into mature, fibrotic atheromas that progressively narrow the lumen.

Why Does It Seem Like "Only the Heart"?

People associate atherosclerosis with the heart for two reasons:
  1. Coronary artery disease is the most common cause of death from atherosclerosis, making it the most-discussed manifestation.
  2. Symptoms are silent in other locations (e.g., limbs, kidneys) for much longer before becoming clinically apparent.

Risk Factors (Same for All Arteries)

Because atherosclerosis is a systemic disease, the same risk factors drive plaque in every location:
Non-modifiableModifiable
Age, male sexHyperlipidemia
Family history / geneticsHypertension
Cigarette smoking
Diabetes
Chronic inflammation
These risk factors are multiplicative: having three major ones (hyperlipidemia + hypertension + smoking) increases cardiovascular risk by a factor of 7 (Robbins & Kumar Basic Pathology, p. 314).

Bottom line: Atherosclerosis is a whole-body arterial disease. The heart's coronary arteries are simply the most clinically dangerous site. Treating atherosclerosis (with statins, blood pressure control, lifestyle changes) protects all arteries simultaneously - not just the heart.

Management and treatment for cystic fibrosis

Reading File
Finding Sources
Searching PubMed

"cystic fibrosis"[MeSH Terms] AND "therapeutics"[MeSH Terms]

Searching the Web

cystic fibrosis management treatment guidelines 2024 2025 CFTR modulators

Finding Sources
Reading Web Page

https://www.uspharmacist.com/article/pharmacologic-managemen…

Reading File
Reading File
Reading File
Finding Sources
Reading File
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
I now have comprehensive information from multiple authoritative sources. Let me compile the full answer.

Management and Treatment of Cystic Fibrosis

Cystic fibrosis (CF) is caused by mutations in the CFTR gene, leading to defective chloride ion transport, abnormally thick mucus secretions, and multi-organ disease. Treatment is multidisciplinary and spans pulmonary, gastrointestinal, nutritional, and endocrine domains. Care at a CF Foundation-accredited center improves outcomes compared to general practice - Goldman-Cecil Medicine (2-Volume Set).

1. CFTR Modulator Therapy (Disease-Modifying)

This is the most significant advance in CF treatment - these drugs target the underlying CFTR protein defect rather than symptoms.
DrugClassMechanismMutation Targeted
Ivacaftor (Kalydeco)PotentiatorAugments CFTR channel gatingGating mutations (G551D, 38+ others) ~4% of patients
Lumacaftor + Ivacaftor (Orkambi)Corrector + PotentiatorCorrects protein folding + augments gatingF508del homozygous
Tezacaftor + Ivacaftor (Symdeko)Corrector + PotentiatorBetter side effect profile than lumacaftorF508del homozygous / heterozygous
Elexacaftor + Tezacaftor + Ivacaftor (Trikafta/ETI)Triple therapyMost potent; improves FEV1 by 10-14%F508del (homo or hetero) - covers ~90% of patients
Vanzacaftor + Tezacaftor + Deutivacaftor (Alyftrek)Triple therapyOnce-daily; non-inferior to ETIF508del or other responsive mutations; FDA approved 2024
Key points:
  • ETI (Trikafta) is now the standard of care for eligible patients (age ≥2, with at least one F508del allele)
  • CFTR modulators can improve lung function, reduce hospitalizations, improve weight gain, and lower sweat chloride
  • Dose reduction required with hepatic failure or concurrent CYP3A inhibitors (e.g., itraconazole, clarithromycin)
  • Gene therapy (CRISPR, antisense oligonucleotides) remains investigational as of current evidence - Goldman-Cecil Medicine

2. Airway Clearance

Clearing viscid mucus is a cornerstone of daily CF management, performed 2-3 times daily:
  • Chest physiotherapy - postural drainage, percussion
  • High-frequency chest wall oscillation - external vibration vests
  • Positive expiratory pressure (PEP) mask
  • Autogenic drainage / forced expiratory technique
  • Exercise - augments mucus clearance

Mucolytics (used before airway clearance):

AgentDoseMechanism
Dornase alfa (Pulmozyme)2.5 mg once daily inhaledCleaves extracellular DNA polymers in mucus
Hypertonic saline 7%4 mL nebulized twice dailyOsmotic rehydration of airway surface
N-acetylcysteine10% solution, 10-30 mL q6hBreaks disulfide bonds in mucus
MannitolInhaledOsmotic expectorant
Note: The SIMPLIFY trial found that in patients on ETI with mild/no lung disease, discontinuing hypertonic saline or dornase alfa did not significantly worsen lung function at 6 weeks - suggesting mucolytic burden may be reducible in stable ETI-treated patients - US Pharmacist 2024.

3. Treatment of Pulmonary Infections

Antibiotic therapy is guided by sputum/throat swab cultures. Key pathogens: S. aureus, Pseudomonas aeruginosa, Burkholderia species, atypical mycobacteria.

Chronic Pseudomonas aeruginosa suppression (outpatient):

  • Inhaled tobramycin 300 mg twice daily - 28 days on / 28 days off cycles
  • Inhaled tobramycin powder 112 mg twice daily - same cycle
  • Inhaled aztreonam 75 mg q8h for 28 days
  • Aerosolized colistin 1-2 million units twice daily

Pulmonary exacerbations (oral, 2-3 weeks):

  • Ciprofloxacin 500-750 mg twice daily
  • Trimethoprim/sulfamethoxazole
  • Amoxicillin 1g three times daily
  • Linezolid, clarithromycin, doxycycline (depending on sensitivity)

Severe exacerbations (IV):

  • Combinations of penicillins, cephalosporins, aminoglycosides, vancomycin, carbapenems, aztreonam, colistin

Anti-inflammatory antibiotics:

  • Azithromycin 250-500 mg three times weekly - has both antimicrobial and immunomodulatory effects; improves lung function and weight gain regardless of Pseudomonas status. Screen for NTM before starting and at 6-12 month intervals - Goldman-Cecil Medicine.

4. Anti-Inflammatory Therapy

  • High-dose ibuprofen - titrated to serum levels 50-100 μg/mL - slows FEV1 decline; recommended in patients <18 years with FEV1 <60% predicted. Narrow therapeutic window limits use.
  • Inhaled corticosteroids (beclomethasone, fluticasone, budesonide) - for CF with concurrent asthma or allergic bronchopulmonary aspergillosis (ABPA)
  • Oral prednisone - for ABPA: 0.5-2.0 mg/kg/day for 1-2 weeks, then taper
  • Itraconazole - added for ABPA refractory to steroids (5 mg/kg/day, max 400 mg/day for 3-6 months)

5. Bronchodilators

Almost all CF patients have airway hyperresponsiveness from chronic inflammation:
  • Short-acting β2-agonists: Albuterol (salbutamol) 90-180 μg inhaled q4-6h or nebulized 2.5 mg q6h
  • Long-acting β2-agonists: Salmeterol 50 μg twice daily
  • Anticholinergics: Ipratropium bromide 17 μg or tiotropium 1.25 μg inhaled daily
  • Combination inhalers (e.g., ipratropium + albuterol) are easier to use

6. Nutritional Management

Malnutrition is common due to malabsorption, elevated energy expenditure, and chronic infection.

Pancreatic Enzyme Replacement Therapy (PERT):

  • Pancrelipase (enteric-coated capsules/microspheres) - essential for the ~85-90% of patients with pancreatic insufficiency
  • Dosing titrated to near-elimination of steatorrhea
  • Preferred over acid suppression (PPIs) - PPIs may increase pneumonia risk
  • Monitor fat-soluble vitamin levels (A, D, E, K) and supplement as needed

Additional nutritional support:

  • High-calorie, high-protein diet
  • Salt supplementation ~6000 mg/day (excessive sweat losses)
  • Fat-soluble vitamin supplementation (AquADEKs or individual vitamins)
  • Enteral nutrition via NG/gastrostomy tube for patients unable to maintain weight

CF-Related Diabetes (CFRD):

  • Annual oral glucose tolerance testing from age 10 for all CF patients
  • Treatment similar to type 1 diabetes; insulin therapy is the mainstay
  • Diet and exercise may delay insulin need

7. Gastrointestinal Management

  • Bowel regimen (routine for all CF patients): mineral oil 15-45 mL/day, senna, polyethylene glycol (0.5-1 g/kg/day)
  • Distal intestinal obstruction syndrome (DIOS): oral/nasogastric polyethylene glycol-electrolyte solution (Golytely) or Gastrografin; surgical consultation if persistent

8. Sinus Disease

  • Nasal saline irrigation (with or without xylitol)
  • Topical corticosteroids (e.g., betamethasone 100 μg twice daily for 6 weeks)
  • Surgical treatment for nasal polyposis or sinus ostia blockage

9. Lung Transplantation

Reserved for end-stage CF lung disease:
  • Bilateral lung transplantation is the definitive surgical intervention
  • Survival: ~75% at 5 years, ~50% at 10 years
  • Long-term survival limited by chronic lung allograft dysfunction (bronchiolitis obliterans, restrictive allograft syndrome) and opportunistic reinfection
  • Poor outcomes in patients with Burkholderia cepacia complex infection or those undergoing retransplantation - Goldman-Cecil Medicine.

10. Reproductive and Mental Health

  • Women: May require intrauterine insemination if cervical mucus is viscid
  • Men: Virtually all have congenital bilateral absence of the vas deferens - epididymal sperm aspiration needed for fertility
  • Screening for depression and anxiety is routine; referral to mental health professionals as appropriate
  • Genetic counseling for at-risk couples; preimplantation genetic testing available with IVF

11. Prevention

  • Newborn screening (immunoreactive trypsinogen + CFTR genotyping) enables early diagnosis and treatment
  • Genetic counseling before pregnancy for carriers
  • Prenatal diagnosis available (amniocentesis / CVS)
  • Preimplantation genetic testing with IVF for CF families

Summary Table: CF Treatment Pillars

DomainKey Interventions
CFTR modulationElexacaftor/tezacaftor/ivacaftor (Trikafta), ivacaftor, vanzacaftor (Alyftrek - 2024)
Airway clearanceChest PT, oscillating vests, dornase alfa, hypertonic saline
Infection controlInhaled tobramycin/aztreonam, IV antibiotics for exacerbations, azithromycin
Anti-inflammationAzithromycin, high-dose ibuprofen (children), steroids for ABPA
NutritionPERT, fat-soluble vitamins, high-calorie diet, salt supplements
GI managementBowel regimen, DIOS treatment
EndocrineAnnual glucose testing, insulin for CFRD
Lung transplantEnd-stage disease
2024 update: Vanzacaftor-tezacaftor-deutivacaftor (Alyftrek) received FDA approval in 2024 as a once-daily triple CFTR modulator, showing non-inferiority to Trikafta in a phase 3 trial of >1000 patients. The 2024 CF Year in Review also highlights new guidelines on CFTR modulator use in pregnancy and treatment burden simplification in the ETI era.

Create a CF management checklist or quick reference PDF for patients

Reading File
Reading File
Running Command

ls -la /tmp/workspace/ 2>/dev/null || echo "workspace does not exist yet"

Running Command

mkdir -p /tmp/workspace/cf-checklist

Writing File

~/cf-checklist/build_cf_pdf.py

"""
Cystic Fibrosis Management Checklist - Patient Quick Reference PDF
Built with ReportLab
"""

from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib import colors
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import mm, cm
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_RIGHT
from reportlab.platypus import Flowable

# ── Colour palette ────────────────────────────────────────────────────────────
CF_BLUE       = colors.HexColor("#1A5F9E")   # deep blue header
CF_LIGHT_BLUE = colors.HexColor("#D6E8F8")   # row / section bg
CF_TEAL       = colors.HexColor("#0B8A8F")   # sub-heading accent
CF_GREEN      = colors.HexColor("#2E7D32")   # checkmark / positive
CF_ORANGE     = colors.HexColor("#E65100")   # warning
CF_GREY       = colors.HexColor("#F5F5F5")   # alternating row
CF_DARK       = colors.HexColor("#212121")   # body text
WHITE         = colors.white

OUTPUT = "/tmp/workspace/cf-checklist/CF_Management_Checklist.pdf"

# ── Document setup ─────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=18*mm, rightMargin=18*mm,
    topMargin=16*mm,  bottomMargin=16*mm,
    title="Cystic Fibrosis Management Checklist",
    author="Orris Medical Reference",
    subject="Patient Quick Reference – CF Management",
)

W = A4[0] - 36*mm   # usable width

# ── Styles ─────────────────────────────────────────────────────────────────────
base = getSampleStyleSheet()

def S(name, parent="Normal", **kw):
    return ParagraphStyle(name, parent=base[parent], **kw)

styles = {
    "title": S("title", "Title",
               fontSize=22, textColor=WHITE, leading=28,
               fontName="Helvetica-Bold", alignment=TA_CENTER),
    "subtitle": S("subtitle",
               fontSize=11, textColor=CF_LIGHT_BLUE, leading=15,
               fontName="Helvetica", alignment=TA_CENTER),
    "disclaimer": S("disclaimer",
               fontSize=7.5, textColor=colors.HexColor("#FFFFFF"),
               leading=10, fontName="Helvetica-Oblique", alignment=TA_CENTER),
    "section": S("section",
               fontSize=12, textColor=WHITE, leading=16,
               fontName="Helvetica-Bold", alignment=TA_LEFT,
               leftPadding=6, spaceAfter=1),
    "body": S("body", fontSize=9, textColor=CF_DARK, leading=13,
              fontName="Helvetica", spaceAfter=2),
    "body_bold": S("body_bold", fontSize=9, textColor=CF_DARK, leading=13,
                   fontName="Helvetica-Bold", spaceAfter=2),
    "small": S("small", fontSize=8, textColor=colors.HexColor("#555555"),
               leading=11, fontName="Helvetica"),
    "warn": S("warn", fontSize=8.5, textColor=CF_ORANGE, leading=12,
              fontName="Helvetica-Bold"),
    "note": S("note", fontSize=8, textColor=CF_TEAL, leading=11,
              fontName="Helvetica-Oblique"),
    "check_label": S("check_label", fontSize=9, textColor=CF_DARK, leading=13,
                     fontName="Helvetica", leftIndent=4),
}

# ── Helpers ────────────────────────────────────────────────────────────────────

class SectionHeader(Flowable):
    """Full-width coloured banner for a section heading."""
    def __init__(self, text, width, bg=CF_BLUE, fg=WHITE, height=18*mm/2):
        super().__init__()
        self.text  = text
        self._w    = width
        self.bg    = bg
        self.fg    = fg
        self._h    = height

    def wrap(self, *_):
        return self._w, self._h

    def draw(self):
        c = self.canv
        # banner
        c.setFillColor(self.bg)
        c.roundRect(0, 0, self._w, self._h, 3, fill=1, stroke=0)
        # text
        c.setFillColor(self.fg)
        c.setFont("Helvetica-Bold", 10.5)
        c.drawString(8, self._h/2 - 4, self.text)


def check_row(label, detail=""):
    """Return a one-row table that looks like a checklist item."""
    box = Paragraph("☐", styles["body_bold"])
    lbl = Paragraph(f"<b>{label}</b>  <font color='#555555'>{detail}</font>",
                    styles["body"])
    t = Table([[box, lbl]], colWidths=[10*mm, W - 10*mm])
    t.setStyle(TableStyle([
        ("VALIGN",      (0,0), (-1,-1), "TOP"),
        ("LEFTPADDING",  (0,0), (-1,-1), 2),
        ("RIGHTPADDING", (0,0), (-1,-1), 2),
        ("TOPPADDING",   (0,0), (-1,-1), 2),
        ("BOTTOMPADDING",(0,0), (-1,-1), 2),
    ]))
    return t


def two_col_table(rows, col_ratios=(0.42, 0.58), header=None, header_bg=CF_BLUE):
    """Generic two-column table."""
    col_w = [W * r for r in col_ratios]
    data  = []
    if header:
        data.append([
            Paragraph(header[0], styles["section"]),
            Paragraph(header[1], styles["section"]),
        ])
    for i, (a, b) in enumerate(rows):
        pa = Paragraph(a, styles["body"])
        pb = Paragraph(b, styles["body"])
        data.append([pa, pb])

    style = [
        ("VALIGN",  (0,0), (-1,-1), "TOP"),
        ("FONTNAME",(0,0), (-1,-1), "Helvetica"),
        ("FONTSIZE",(0,0), (-1,-1), 8.5),
        ("GRID",    (0,0), (-1,-1), 0.3, colors.HexColor("#CCCCCC")),
        ("LEFTPADDING",  (0,0), (-1,-1), 5),
        ("RIGHTPADDING", (0,0), (-1,-1), 5),
        ("TOPPADDING",   (0,0), (-1,-1), 3),
        ("BOTTOMPADDING",(0,0), (-1,-1), 3),
    ]
    if header:
        style += [
            ("BACKGROUND", (0,0), (-1,0), header_bg),
            ("TEXTCOLOR",  (0,0), (-1,0), WHITE),
            ("FONTNAME",   (0,0), (-1,0), "Helvetica-Bold"),
        ]
        # alternate data rows
        for i in range(1, len(data)):
            bg = CF_LIGHT_BLUE if i % 2 == 0 else CF_GREY
            style.append(("BACKGROUND", (0,i), (-1,i), bg))
    else:
        for i in range(len(data)):
            bg = CF_LIGHT_BLUE if i % 2 == 0 else CF_GREY
            style.append(("BACKGROUND", (0,i), (-1,i), bg))

    t = Table(data, colWidths=col_w)
    t.setStyle(TableStyle(style))
    return t


def warning_box(text):
    data = [[Paragraph("⚠  " + text, styles["warn"])]]
    t = Table(data, colWidths=[W])
    t.setStyle(TableStyle([
        ("BACKGROUND",   (0,0), (-1,-1), colors.HexColor("#FFF3E0")),
        ("LINEABOVE",    (0,0), (-1,0),  1.5, CF_ORANGE),
        ("LINEBELOW",    (0,0), (-1,-1), 1.5, CF_ORANGE),
        ("LEFTPADDING",  (0,0), (-1,-1), 8),
        ("RIGHTPADDING", (0,0), (-1,-1), 8),
        ("TOPPADDING",   (0,0), (-1,-1), 5),
        ("BOTTOMPADDING",(0,0), (-1,-1), 5),
    ]))
    return t


def note_box(text):
    data = [[Paragraph("ℹ  " + text, styles["note"])]]
    t = Table(data, colWidths=[W])
    t.setStyle(TableStyle([
        ("BACKGROUND",   (0,0), (-1,-1), colors.HexColor("#E0F7FA")),
        ("LINEABOVE",    (0,0), (-1,0),  1, CF_TEAL),
        ("LINEBELOW",    (0,0), (-1,-1), 1, CF_TEAL),
        ("LEFTPADDING",  (0,0), (-1,-1), 8),
        ("RIGHTPADDING", (0,0), (-1,-1), 8),
        ("TOPPADDING",   (0,0), (-1,-1), 4),
        ("BOTTOMPADDING",(0,0), (-1,-1), 4),
    ]))
    return t

sp = lambda h=4: Spacer(1, h*mm)

# ══════════════════════════════════════════════════════════════════════════════
# BUILD CONTENT
# ══════════════════════════════════════════════════════════════════════════════
story = []

# ── TITLE BANNER ──────────────────────────────────────────────────────────────
title_data = [[
    Paragraph("Cystic Fibrosis", styles["title"]),
]]
title_sub = [[
    Paragraph("Patient Management Checklist &amp; Quick Reference Guide", styles["subtitle"]),
]]
disc = [[
    Paragraph(
        "For use alongside your CF care team. This checklist does not replace individualised medical advice. "
        "Always consult your CF specialist before changing your treatment.",
        styles["disclaimer"]
    )
]]

title_table = Table(title_data, colWidths=[W])
title_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,-1), CF_BLUE),
    ("TOPPADDING",   (0,0), (-1,-1), 10),
    ("BOTTOMPADDING",(0,0), (-1,-1), 2),
    ("ROUNDEDCORNERS", [5]),
]))

sub_table = Table(title_sub, colWidths=[W])
sub_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,-1), CF_TEAL),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 4),
]))

disc_table = Table(disc, colWidths=[W])
disc_table.setStyle(TableStyle([
    ("BACKGROUND",   (0,0), (-1,-1), colors.HexColor("#37474F")),
    ("TOPPADDING",   (0,0), (-1,-1), 4),
    ("BOTTOMPADDING",(0,0), (-1,-1), 6),
    ("ROUNDEDCORNERS", [5]),
]))

story += [title_table, sub_table, disc_table, sp(5)]

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 1 — DAILY ROUTINE CHECKLIST
# ══════════════════════════════════════════════════════════════════════════════
story.append(SectionHeader("☑  SECTION 1 — DAILY ROUTINE CHECKLIST", W))
story.append(sp(2))

story.append(Paragraph("<b>Morning</b>", styles["body_bold"]))
for label, detail in [
    ("Airway Clearance (1st session)", "Chest PT / oscillating vest · 20–30 min"),
    ("Mucolytic before clearance", "Dornase alfa (Pulmozyme) 2.5 mg inhaled OR hypertonic saline 7% 4 mL"),
    ("Bronchodilator", "Albuterol/salbutamol inhaler before mucolytic if prescribed"),
    ("CFTR Modulator – morning dose", "e.g. Elexacaftor/Tezacaftor/Ivacaftor (Trikafta) — with fat-containing food"),
    ("Pancreatic Enzymes (PERT)", "Take with ALL meals and snacks — dose per dietitian instructions"),
    ("Breakfast — high calorie/protein", "Target ~120–150% of normal caloric intake"),
    ("Fat-soluble vitamins", "Vitamins A, D, E, K (AquADEKs or equivalent)"),
    ("Salt supplement", "~6000 mg/day total — especially in hot weather or exercise"),
]:
    story.append(check_row(label, detail))

story.append(sp(3))
story.append(Paragraph("<b>Afternoon / Evening</b>", styles["body_bold"]))
for label, detail in [
    ("PERT with every meal & snack", "Do NOT eat without enzymes if pancreatic insufficient"),
    ("Airway Clearance (2nd session)", "Repeat chest PT / vest · 20–30 min"),
    ("Evening CFTR Modulator dose", "Trikafta: take evening ivacaftor dose 12 h after morning dose"),
    ("Nasal saline irrigation", "Especially for sinus symptoms / nasal polyps"),
    ("Exercise", "Any physical activity counts — helps mucus clearance"),
    ("Bowel check", "Bowel movement daily; use prescribed softener/laxative if constipated"),
]:
    story.append(check_row(label, detail))

story.append(sp(3))
story.append(Paragraph("<b>Before Bed</b>", styles["body_bold"]))
for label, detail in [
    ("3rd airway clearance session (if prescribed)", "Some patients do 2–3 sessions/day"),
    ("Record symptoms", "Cough change, sputum colour/volume, breathlessness, weight"),
    ("Nebuliser cleaning", "Clean all nebuliser parts after every use — prevents contamination"),
]:
    story.append(check_row(label, detail))

story.append(sp(4))
story.append(warning_box(
    "SEEK URGENT CARE if: increased breathlessness · coughing up blood · "
    "fever >38.5°C (101.3°F) · significant drop in exercise tolerance · "
    "weight loss >1 kg in 1 week"
))
story.append(sp(5))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 2 — CFTR MODULATOR QUICK REFERENCE
# ══════════════════════════════════════════════════════════════════════════════
story.append(SectionHeader("💊  SECTION 2 — CFTR MODULATOR QUICK REFERENCE", W))
story.append(sp(2))
story.append(note_box(
    "CFTR modulators treat the underlying protein defect — not just symptoms. "
    "Always take with FAT-containing food (improves absorption ~3-fold)."
))
story.append(sp(3))

modulator_rows = [
    ("<b>Elexacaftor / Tezacaftor / Ivacaftor</b><br/>(Trikafta — triple therapy)", 
     "≥2 yrs with ≥1 F508del allele (~90% of CF patients)<br/>Morning: 2 tablets (ELX+TEZ+IVA) · Evening: 1 tablet (IVA)<br/>Most effective modulator available"),
    ("<b>Vanzacaftor / Tezacaftor / Deutivacaftor</b><br/>(Alyftrek — FDA approved 2024)", 
     "≥6 yrs with F508del or responsive mutation<br/>Once daily (non-inferior to Trikafta)<br/>Simpler dosing schedule"),
    ("<b>Tezacaftor / Ivacaftor</b><br/>(Symdeko / Symkevi)", 
     "≥6 yrs; F508del homozygous or heterozygous<br/>TEZ 100 mg + IVA 150 mg morning · IVA 150 mg evening"),
    ("<b>Ivacaftor</b><br/>(Kalydeco — potentiator only)", 
     "Gating mutations (G551D &amp; 37 others) ≥4 months<br/>150 mg twice daily with fat<br/>Not effective for F508del alone"),
]
story.append(two_col_table(
    modulator_rows,
    col_ratios=(0.40, 0.60),
    header=["Drug (Brand Name)", "Who / How to Take"],
))
story.append(sp(3))
story.append(warning_box(
    "CFTR modulators interact with CYP3A inhibitors (itraconazole, clarithromycin, grapefruit). "
    "DOSE REDUCTION required. Tell your pharmacist about ALL medications."
))
story.append(sp(5))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 3 — AIRWAY CLEARANCE & MUCOLYTICS
# ══════════════════════════════════════════════════════════════════════════════
story.append(SectionHeader("🫁  SECTION 3 — AIRWAY CLEARANCE & MUCOLYTICS", W))
story.append(sp(2))

ac_rows = [
    ("<b>Dornase alfa</b> (Pulmozyme)", "2.5 mg once daily inhaled · Cleaves DNA in mucus · Do 30 min before airway clearance"),
    ("<b>Hypertonic Saline 7%</b>", "4 mL nebulised twice daily · Rehydrates airway surface · Use bronchodilator first"),
    ("<b>N-Acetylcysteine</b>", "10% solution 10–30 mL q6h · Breaks mucus disulfide bonds"),
    ("<b>Mannitol</b> (Bronchitol)", "Inhaled · Osmotic expectorant · Some countries only"),
    ("<b>Chest Physiotherapy</b>", "Postural drainage + percussion · 2–3 × daily · 20–30 min per session"),
    ("<b>Oscillating Vest (HFCWO)</b>", "High-frequency chest wall oscillation · Alternative to manual CPT"),
    ("<b>PEP Mask / Flutter device</b>", "Positive expiratory pressure · Loosens mucus · Portable option"),
    ("<b>Exercise</b>", "Any aerobic activity · Augments mucus clearance · Aim ≥30 min most days"),
]
story.append(two_col_table(
    ac_rows,
    col_ratios=(0.32, 0.68),
    header=["Treatment", "Details"],
    header_bg=CF_TEAL,
))
story.append(sp(5))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 4 — INFECTION & ANTIBIOTIC GUIDE
# ══════════════════════════════════════════════════════════════════════════════
story.append(SectionHeader("🦠  SECTION 4 — INFECTION MANAGEMENT", W))
story.append(sp(2))

story.append(Paragraph("<b>Know your organisms</b> — sputum culture drives antibiotic choice:", styles["body"]))
story.append(sp(2))

inf_rows = [
    ("<b>Pseudomonas aeruginosa</b><br/>(chronic suppression)", 
     "Inhaled tobramycin 300 mg BD (28 days on/off)<br/>OR inhaled aztreonam 75 mg q8h (28 days on/off)<br/>OR aerosolised colistin 1–2 million units BD"),
    ("<b>Staphylococcus aureus</b><br/>(MSSA / MRSA)", 
     "No evidence for routine chronic therapy<br/>MRSA: vancomycin IV or linezolid 600 mg BD (per sensitivity)"),
    ("<b>Burkholderia cepacia</b><br/>(complex)", 
     "High morbidity/mortality · Specialist management<br/>Multidrug resistance common · Isolate from other CF patients"),
    ("<b>Non-tuberculous Mycobacteria</b><br/>(NTM)", 
     "Rule out before starting azithromycin<br/>Screen every 6–12 months on chronic azithromycin"),
    ("<b>Mild Exacerbation</b><br/>(oral, 2–3 weeks)", 
     "Ciprofloxacin 500–750 mg BD<br/>OR co-trimoxazole (TMP/SMX) · amoxicillin 1g TDS<br/>Choice based on sputum sensitivities"),
    ("<b>Severe Exacerbation</b><br/>(IV, 2 weeks)", 
     "Two anti-Pseudomonal agents IV (e.g. pip-tazo + tobramycin)<br/>Aminoglycosides: monitor levels/renal function<br/>Consider hospital admission"),
    ("<b>Azithromycin</b><br/>(long-term anti-inflammatory)", 
     "250–500 mg 3 × per week · Improves FEV1 &amp; weight<br/>Screen for NTM before starting · Monitor for macrolide resistance"),
]
story.append(two_col_table(
    inf_rows,
    col_ratios=(0.33, 0.67),
    header=["Organism / Situation", "Treatment"],
))
story.append(sp(5))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 5 — NUTRITION CHECKLIST
# ══════════════════════════════════════════════════════════════════════════════
story.append(SectionHeader("🥗  SECTION 5 — NUTRITION & GI MANAGEMENT", W))
story.append(sp(2))

nutr_rows = [
    ("<b>Pancreatic Enzyme Replacement (PERT)</b>",
     "Take with ALL meals and snacks (not just main meals)<br/>Enteric-coated capsules — do not crush<br/>Target: no steatorrhoea, normal stools"),
    ("<b>Caloric Goals</b>",
     "120–150% of normal daily requirements<br/>High-calorie, high-fat, high-protein diet<br/>Do NOT restrict fat — fat absorption requires PERT"),
    ("<b>Fat-Soluble Vitamins</b>",
     "A, D, E, K — monitor blood levels annually<br/>AquADEKs supplement or individual preparations<br/>Vitamin D: aim 25-OH-D >30 ng/mL"),
    ("<b>Salt / Sodium</b>",
     "~6000 mg sodium/day<br/>Increase during hot weather, fever, heavy exercise<br/>Salt-containing snacks encouraged"),
    ("<b>CF-Related Diabetes (CFRD)</b>",
     "Annual OGTT from age 10 (all CF patients)<br/>Treatment: insulin (similar to T1DM)<br/>Do NOT restrict carbohydrates — calories are priority"),
    ("<b>Bowel Regularity</b>",
     "Daily laxative regimen (polyethylene glycol or senna)<br/>DIOS: PEG-electrolyte solution ± Gastrografin enema<br/>Seek surgical review if obstruction persists"),
    ("<b>Liver Disease</b>",
     "Annual liver function tests and ultrasound<br/>Ursodeoxycholic acid if biliary involvement<br/>Refer to hepatologist for portal hypertension"),
    ("<b>GERD</b>",
     "Very common in CF (~80% of adults)<br/>Lifestyle measures + PPI cautiously (↑ pneumonia risk)<br/>Consider H2 blocker instead of PPI"),
]
story.append(two_col_table(
    nutr_rows,
    col_ratios=(0.35, 0.65),
    header=["Area", "Guidance"],
    header_bg=CF_GREEN,
))
story.append(sp(5))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 6 — MONITORING SCHEDULE
# ══════════════════════════════════════════════════════════════════════════════
story.append(SectionHeader("📅  SECTION 6 — MONITORING & FOLLOW-UP SCHEDULE", W))
story.append(sp(2))

mon_rows = [
    ("<b>Every clinic visit</b><br/>(every 3 months minimum)",
     "Weight, height, BMI · Spirometry (FEV1, FVC) · Sputum culture<br/>O2 saturation · Review medications &amp; adherence · Physiotherapy review"),
    ("<b>Annually</b>",
     "Oral glucose tolerance test (from age 10)<br/>DEXA bone density scan · Chest X-ray<br/>Liver function tests + ultrasound · Fat-soluble vitamin levels<br/>HbA1c if CFRD diagnosed · Renal function · Audiology (if on aminoglycosides)"),
    ("<b>When starting azithromycin</b>",
     "Sputum for NTM culture before starting<br/>Repeat NTM screen every 6–12 months"),
    ("<b>If on aminoglycosides (IV)</b>",
     "Therapeutic drug monitoring (trough &amp; peak)<br/>Renal function (serum creatinine) every 2–3 days<br/>Audiology if prolonged or repeated courses"),
    ("<b>Mental health</b>",
     "Screen for depression &amp; anxiety at every visit<br/>Refer to psychologist/psychiatrist as needed"),
    ("<b>Reproductive health</b>",
     "Men: referral to urologist / fertility specialist<br/>Women: CF-specialist input before/during pregnancy<br/>Preimplantation genetic testing available with IVF"),
]
story.append(two_col_table(
    mon_rows,
    col_ratios=(0.30, 0.70),
    header=["Frequency", "What to Check"],
    header_bg=colors.HexColor("#6A1B9A"),
))
story.append(sp(5))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 7 — WHEN TO SEEK URGENT HELP
# ══════════════════════════════════════════════════════════════════════════════
story.append(SectionHeader("🚨  SECTION 7 — WHEN TO SEEK URGENT HELP", W))
story.append(sp(2))

urgent_items = [
    ("Haemoptysis", "Any blood in coughed sputum — especially >1 teaspoon"),
    ("Severe breathlessness", "Can't complete sentences · Resting breathlessness · Blue lips/fingers"),
    ("Fever >38.5°C (101.3°F)", "With increased cough, coloured sputum, or decline in function"),
    ("Chest pain", "Especially sharp, sudden, pleuritic — rule out pneumothorax"),
    ("Rapid weight loss", ">1 kg in a week or sustained decline"),
    ("Abdominal distension/pain", "No bowel movement >2 days + pain — may be DIOS"),
    ("Fainting / collapse", "Possible severe hypoxia or arrhythmia"),
    ("Significant FEV1 drop", "Home spirometry drop >10% from personal best"),
]
for label, detail in urgent_items:
    story.append(check_row(f"🔴 {label}", detail))

story.append(sp(3))
story.append(note_box(
    "Keep your CF Centre phone number saved in your phone. "
    "For life-threatening emergencies, call 999 (UK) / 911 (US) / 000 (Australia) / 112 (EU)."
))
story.append(sp(5))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 8 — MY PERSONAL CF PLAN (fillable-style)
# ══════════════════════════════════════════════════════════════════════════════
story.append(SectionHeader("📋  SECTION 8 — MY PERSONAL CF PLAN", W))
story.append(sp(2))
story.append(Paragraph(
    "Fill in with your CF care team at your next clinic appointment.",
    styles["small"]
))
story.append(sp(2))

plan_data = [
    ["My CF Centre:", "_" * 40, "Team Phone:", "_" * 20],
    ["My CFTR Mutation:", "_" * 40, "My Modulator:", "_" * 20],
    ["Dornase alfa dose:", "_" * 40, "Hypertonic saline:", "_" * 20],
    ["PERT dose (meals):", "_" * 40, "PERT dose (snacks):", "_" * 20],
    ["My target weight:", "_" * 40, "Last FEV1 (%):", "_" * 20],
    ["My inhaled antibiotic:", "_" * 40, "Azithromycin dose:", "_" * 20],
    ["Next clinic date:", "_" * 40, "Next OGTT:", "_" * 20],
    ["Notes / Other meds:", "_" * 40, "", ""],
]

plan_style = [
    ("FONTSIZE", (0,0), (-1,-1), 8.5),
    ("FONTNAME", (0,0), (0,-1), "Helvetica-Bold"),
    ("FONTNAME", (2,0), (2,-1), "Helvetica-Bold"),
    ("GRID",     (0,0), (-1,-1), 0.3, colors.HexColor("#CCCCCC")),
    ("BACKGROUND", (0,0), (-1,-1), CF_GREY),
    ("TOPPADDING",   (0,0), (-1,-1), 5),
    ("BOTTOMPADDING",(0,0), (-1,-1), 5),
    ("LEFTPADDING",  (0,0), (-1,-1), 5),
    ("RIGHTPADDING", (0,0), (-1,-1), 5),
]
for i in range(0, len(plan_data), 2):
    plan_style.append(("BACKGROUND", (0,i), (-1,i), CF_LIGHT_BLUE))

plan_t = Table(plan_data, colWidths=[W*0.22, W*0.28, W*0.22, W*0.28])
plan_t.setStyle(TableStyle(plan_style))
story.append(plan_t)
story.append(sp(5))

# ══════════════════════════════════════════════════════════════════════════════
# FOOTER NOTE
# ══════════════════════════════════════════════════════════════════════════════
story.append(HRFlowable(width=W, thickness=1, color=CF_BLUE))
story.append(sp(2))
story.append(Paragraph(
    "References: Goldman-Cecil Medicine 26e · Murray &amp; Nadel's Respiratory Medicine · "
    "Sleisenger &amp; Fordtran's GI and Liver Disease · US Pharmacist 2024 · "
    "Medscape CF Treatment Guidelines 2024. "
    "Produced by Orris Medical Reference — July 2026.",
    styles["small"]
))
story.append(sp(1))
story.append(Paragraph(
    "This document is for educational purposes only and does not constitute medical advice. "
    "Always follow the guidance of your CF multidisciplinary team.",
    styles["small"]
))

# ── BUILD ─────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
Running Command

cd /tmp/workspace/cf-checklist && python build_cf_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/cf-checklist/CF_Management_Checklist.pdf

Your CF Management Checklist PDF is ready:

CF Management Checklist

PDF Document · PDF


Here's what's included across 8 sections:
SectionContents
1. Daily Routine ChecklistMorning / afternoon / evening / bedtime checklists with checkbox-style items
2. CFTR Modulator Quick ReferenceTrikafta, Alyftrek (2024), Symdeko, Kalydeco - who takes what and how
3. Airway Clearance & MucolyticsDornase alfa, hypertonic saline, PEP mask, vest therapy, exercise
4. Infection ManagementPseudomonas suppression, exacerbation antibiotics, azithromycin guidance
5. Nutrition & GI ManagementPERT dosing rules, caloric goals, vitamins, CFRD, DIOS, liver disease
6. Monitoring ScheduleEvery-visit vs. annual tests - spirometry, OGTT, DEXA, cultures
7. Urgent Warning Signs8 red-flag situations to seek emergency care immediately
8. My Personal CF PlanFillable table to complete with your CF team at clinic
The document is colour-coded (blue for headers, teal for airway, green for nutrition, purple for monitoring), includes warning boxes and info boxes, and closes with a reference footer citing Goldman-Cecil Medicine, Murray & Nadel, and 2024 guidelines.

How the thiazide diuretics used in the DI

Finding Sources
Finding Sources
Searching the Web

thiazide diuretics mechanism action diabetes insipidus paradoxical effect nephrogenic

Reading File
Reading File
Reading File
Reading File
Reading File
Excellent - I now have comprehensive data from multiple authoritative sources. Here is the full answer:

Thiazide Diuretics in Diabetes Insipidus (DI)

The Paradox - A Diuretic That Reduces Urine Output

It seems counterintuitive: you give a diuretic to treat a condition that already causes massive urine output. Yet thiazides reduce urine volume by up to 50% in Diabetes Insipidus. This is called the paradoxical antidiuretic effect of thiazides.
As Goodman & Gilman's Pharmacology states:
"Although it may seem counterintuitive to treat a disorder of increased urine volume with a diuretic, thiazides reduce the kidney's ability to excrete free water: they increase proximal tubular water reabsorption (secondary to volume contraction) and block the ability of the DCT to form dilute urine."

Step-by-Step Mechanism

Normal Role of Thiazides (Refresher)

Thiazides normally inhibit the Na⁺-Cl⁻ cotransporter (NCC) in the distal convoluted tubule (DCT), preventing sodium and chloride reabsorption there, leading to natriuresis and increased urine output.

In DI - The Paradoxical Mechanism (4 Steps):

Step 1: Thiazide blocks NCC in DCT
           ↓
Step 2: Sodium and chloride lost in urine → Net Na⁺ loss
           ↓
Step 3: Mild volume depletion (ECF contraction)
           ↓
Step 4: Compensatory ↑ proximal tubular Na⁺ and water reabsorption
           ↓
  LESS fluid reaches the distal nephron & collecting duct
           ↓
  Overall urine volume FALLS by up to 50%
The key is Step 4: volume contraction activates the renin-angiotensin-aldosterone system (RAAS) and sympathetic nervous system, both of which drive enhanced proximal tubular reabsorption of sodium AND water. Because the bulk of glomerular filtrate is now reabsorbed upstream (in the proximal tubule), far less fluid reaches the ADH-sensitive collecting duct - so even though the kidney can't respond to ADH (in nephrogenic DI), there is simply less urine to produce.

Additional Mechanisms:

  • DCT blockade prevents free water formation - thiazides block the DCT's ability to dilute urine, raising urine osmolality
  • ↓ GFR - volume depletion also reduces glomerular filtration rate; macula densa cells detect increased distal NaCl delivery → adenosine release → afferent arteriole vasoconstriction → ↓ GFR → less filtrate to begin with
  • AQP2 upregulation - experimental evidence (Kim et al.) shows hydrochlorothiazide reverses lithium-induced downregulation of aquaporin-2 (AQP2) water channels and increases ENaC subunit abundance in the collecting duct, further enhancing water reabsorption - Renal Fellow Network

Which Type of DI? Where Do Thiazides Fit?

Type of DIFirst-LineRole of Thiazides
Central DI (ADH deficiency)Desmopressin (DDAVP) intranasal or oralSecondary / adjunct; rarely needed
Nephrogenic DI (ADH resistance)Thiazide + low-Na dietPrimary treatment - desmopressin largely ineffective
Gestational DIDesmopressinNot first-line
Primary PolydipsiaTreat underlying psychiatryNot used
Thiazides are the mainstay of treatment for nephrogenic DI because desmopressin is ineffective when the collecting duct cannot respond to ADH - Goodman & Gilman's Pharmacology.

Drug, Dose, and Combination

Thiazide:

  • Hydrochlorothiazide (HCTZ): 12.5–25 mg once daily (Goldman-Cecil Medicine)
  • Can reduce urine output by 30–50%

Combined with Amiloride (Preferred):

Amiloride (5–10 mg/day) is added for two reasons:
  1. Additive antidiuretic effect - synergistic further reduction in urine output
  2. Corrects thiazide-induced hypokalemia (potassium-sparing)
  3. Special benefit in lithium-induced nephrogenic DI: amiloride blocks lithium entry into tubular cells via ENaC, directly reducing lithium nephrotoxicity

Combined with Indomethacin (NSAIDs):

  • Some patients also benefit from indomethacin (an NSAID/prostaglandin synthetase inhibitor)
  • Mechanism: Prostaglandin E2 (PGE2) normally increases GFR and opposes ADH; NSAIDs block PGE2 → ↓ GFR + ↑ ADH sensitivity → ↓ urine output by up to 50% when used alone
  • Combined thiazide + low-solute diet + indomethacin can provide additive antidiuresis - Brenner & Rector's The Kidney

Essential Companion: Low-Sodium, Low-Protein Diet

Thiazides work best when combined with dietary measures:
  • Low-sodium diet (<100 mmol/day): reduces osmotic load to the kidney, meaning less free water must be excreted to clear solute
  • Low-protein diet: reduces urea generation, further decreasing the obligatory solute load
  • Combined with thiazide, urine output may fall by up to 50% - Guyton & Hall Medical Physiology

Special Case: Lithium-Induced Nephrogenic DI

Lithium (used for bipolar disorder) is the most common drug cause of nephrogenic DI. Management:
  1. Stop lithium if clinically possible
  2. If lithium must continue: amiloride is preferred (blocks Li⁺ entry via ENaC in collecting duct)
  3. HCTZ + amiloride if further antidiuresis needed
  4. Thiazide + amiloride can reverse lithium-induced AQP2 downregulation - Katzung's Basic and Clinical Pharmacology

Important Adverse Effects to Monitor

Since thiazides cause volume depletion to achieve their effect in DI, watch for:
Adverse EffectComment
HypokalemiaCountered by amiloride co-prescription
Volume depletion / hypotensionThe desired mechanism - must not over-deplete
HyponatremiaParadoxically possible with aggressive thiazide use
HyperuricemiaGout precipitation
↑ Drug concentrationsVolume depletion can raise plasma levels of other drugs (e.g., lithium toxicity) - Goldman-Cecil Medicine
Glucose intoleranceUnmasks latent diabetes mellitus

Summary Diagram

NEPHROGENIC DI
     │
     ▼
Kidney cannot respond to ADH
→ Dilute polyuria (urine osm <200 mOsm/kg)
     │
     ▼
THIAZIDE (HCTZ 12.5–25 mg/day)
+ LOW-Na DIET
+ AMILORIDE (5–10 mg/day)
     │
     ▼
↓ NCC in DCT → Na⁺ loss → Volume contraction
     │
     ▼
↑ Proximal tubule Na⁺ + H₂O reabsorption (RAAS/SNS activation)
↓ GFR (less filtrate produced)
DCT cannot form dilute urine
     │
     ▼
Less fluid reaches collecting duct
→ Urine volume ↓ 30–50%
→ Urine osmolality ↑
→ Hypernatremia improved
The paradox resolves once you understand the mechanism: thiazides don't work by mimicking ADH; they work by reducing the amount of filtrate the ADH-sensitive nephron ever has to handle.
This is a shared conversation. Sign in to Orris to start your own chat.