Mechanical Ventilation: Beyond Basics

Reading File
Asking for Preferences
Asking for Preferences
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null && ls /home/daytona/skills/docx/scripts/ 2>/dev/null || echo "checking paths"

Running Command

mkdir -p /home/daytona/workspace/mech-vent-docx && ls /home/daytona/workspace/mech-vent-docx

Writing File

~/mech-vent-docx/build.js

const {
  Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
  HeadingLevel, AlignmentType, BorderStyle, WidthType, ShadingType,
  VerticalAlign, PageNumber, Header, Footer, PageBreak, TabStopType,
  TabStopPosition
} = require('docx');
const fs = require('fs');

// ── Color palette ──────────────────────────────────────────────────
const BLUE      = "1F4E79";   // dark navy
const LTBLUE    = "2E75B6";   // heading blue
const TEAL      = "00B0A0";   // accent
const LIGHTGRAY = "F2F2F2";   // table zebra
const DARKGRAY  = "D9D9D9";   // table header bg
const WHITE     = "FFFFFF";
const YELLOW    = "FFF2CC";   // callout bg
const RED_WARN  = "C00000";   // danger/warning
const GREEN     = "375623";   // tip green

// ── Helpers ────────────────────────────────────────────────────────
function h1(text) {
  return new Paragraph({
    heading: HeadingLevel.HEADING_1,
    spacing: { before: 400, after: 120 },
    border: { bottom: { style: BorderStyle.SINGLE, size: 8, color: LTBLUE, space: 4 } },
    children: [new TextRun({ text, color: BLUE, bold: true, size: 32 })]
  });
}
function h2(text) {
  return new Paragraph({
    heading: HeadingLevel.HEADING_2,
    spacing: { before: 300, after: 80 },
    children: [new TextRun({ text, color: LTBLUE, bold: true, size: 26 })]
  });
}
function h3(text) {
  return new Paragraph({
    heading: HeadingLevel.HEADING_3,
    spacing: { before: 200, after: 60 },
    children: [new TextRun({ text, color: TEAL, bold: true, size: 22 })]
  });
}
function body(text, opts = {}) {
  return new Paragraph({
    spacing: { before: 60, after: 60, line: 280 },
    children: [new TextRun({ text, size: 20, ...opts })]
  });
}
function bullet(text, level = 0, bold = false) {
  return new Paragraph({
    bullet: { level },
    spacing: { before: 40, after: 40, line: 260 },
    children: [new TextRun({ text, size: 20, bold })]
  });
}
function callout(text, bgColor = YELLOW, labelText = "KEY POINT", labelColor = "7F6000") {
  return new Paragraph({
    spacing: { before: 120, after: 120 },
    shading: { type: ShadingType.SOLID, color: bgColor },
    indent: { left: 200, right: 200 },
    children: [
      new TextRun({ text: `${labelText}: `, bold: true, color: labelColor, size: 20 }),
      new TextRun({ text, size: 20 })
    ]
  });
}
function warningBox(text) {
  return callout(text, "FFE7E7", "WARNING", RED_WARN);
}
function tipBox(text) {
  return callout(text, "E7F3E7", "CLINICAL PEARL", GREEN);
}
function space(n = 1) {
  return Array.from({ length: n }, () => new Paragraph({ spacing: { before: 0, after: 0 }, children: [new TextRun("")] }));
}
function pageBreak() {
  return new Paragraph({ children: [new PageBreak()] });
}

// ── Table helpers ──────────────────────────────────────────────────
function cell(text, header = false, bgColor = null, colSpan = 1) {
  return new TableCell({
    columnSpan: colSpan,
    shading: bgColor ? { type: ShadingType.SOLID, color: bgColor } : undefined,
    verticalAlign: VerticalAlign.CENTER,
    margins: { top: 60, bottom: 60, left: 100, right: 100 },
    children: [new Paragraph({
      children: [new TextRun({ text, bold: header, color: header ? WHITE : "222222", size: 18 })]
    })]
  });
}
function tableRow(cells, isHeader = false) {
  return new TableRow({
    tableHeader: isHeader,
    children: cells
  });
}

// ═══════════════════════════════════════════════════════════════════
// DOCUMENT CONTENT
// ═══════════════════════════════════════════════════════════════════

const sections = [];

// ── Cover ──────────────────────────────────────────────────────────
sections.push(
  new Paragraph({
    alignment: AlignmentType.CENTER,
    spacing: { before: 800, after: 200 },
    children: [new TextRun({ text: "Mechanical Ventilation:", bold: true, color: BLUE, size: 56 })]
  }),
  new Paragraph({
    alignment: AlignmentType.CENTER,
    spacing: { before: 0, after: 200 },
    children: [new TextRun({ text: "Beyond Basics", bold: true, color: LTBLUE, size: 48 })]
  }),
  new Paragraph({
    alignment: AlignmentType.CENTER,
    spacing: { before: 0, after: 100 },
    children: [new TextRun({ text: "A Comprehensive Study Guide for Residents & Trainees", color: "555555", size: 24, italics: true })]
  }),
  new Paragraph({
    alignment: AlignmentType.CENTER,
    spacing: { before: 0, after: 100 },
    children: [new TextRun({ text: "Based on Harrison's Principles of Internal Medicine 22E, Sabiston Textbook of Surgery 21E, Fishman's Pulmonary Diseases", color: "888888", size: 18, italics: true })]
  }),
  new Paragraph({
    alignment: AlignmentType.CENTER,
    spacing: { before: 0, after: 800 },
    children: [new TextRun({ text: "Updated: May 2026", color: "888888", size: 18 })]
  }),
  pageBreak()
);

// ═══════════════════════════════════════════════════════════════════
// SECTION 1: FUNDAMENTALS REVIEW
// ═══════════════════════════════════════════════════════════════════
sections.push(
  h1("Section 1: Fundamentals Review — The Basics You Must Know"),
  h2("1.1 Indications for Mechanical Ventilation"),
  body("The three core indications for intubation and mechanical ventilation are:"),
  bullet("Airway protection — depressed mental status, impending airway obstruction (angioedema, burns, trauma)", 0, true),
  bullet("Hypoxemia — pneumonia, pulmonary contusion, severe pulmonary edema, ARDS", 0, true),
  bullet("Hypercarbia / hypoventilation — opioid-induced respiratory depression, respiratory muscle fatigue, high spinal cord injury (above C5)", 0, true),
  ...space(),
  warningBox("Intubation in hemodynamically unstable patients carries risk of cardiovascular collapse. Resuscitate before intubating; have vasopressors ready. The causes are multifactorial: hemodynamic shifts from induction agents, transient hypoxia, and reduced venous return from positive-pressure ventilation."),
  ...space(),

  h2("1.2 Core Ventilator Parameters"),
  body("Every ventilator mode operates around four fundamental parameters:"),
  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("Parameter", true, BLUE), cell("Volume-Control", true, BLUE), cell("Pressure-Control", true, BLUE)], true),
      tableRow([cell("Breath size"), cell("Tidal volume (VT) — typically 6–8 mL/kg IBW"), cell("Inspiratory driving pressure (set above PEEP)")]),
      tableRow([cell("Breath rate"), cell("Set respiratory rate (RR)"), cell("Set RR; patient may trigger")], false),
      tableRow([cell("PEEP"), cell("Set by clinician"), cell("Set by clinician")]),
      tableRow([cell("FiO2"), cell("Set by clinician (0.21–1.0)"), cell("Set by clinician (0.21–1.0)")]),
      tableRow([cell("Free variable (MONITOR)"), cell("Peak & plateau pressure"), cell("Tidal volume & minute ventilation")]),
    ]
  }),
  ...space(),
  tipBox("In Volume Control, pressure is the dependent variable — always check plateau pressure. In Pressure Control, volume is dependent — always monitor tidal volume and minute ventilation."),
  ...space(),

  h2("1.3 Key Pressure Concepts"),
  bullet("Peak Inspiratory Pressure (PIP) = dynamic airway pressure (flow × resistance) + alveolar pressure", 0),
  bullet("Plateau Pressure (Pplat) = true alveolar pressure at end-inhalation (measured with inspiratory hold). Target ≤30 cmH2O to minimize barotrauma.", 0),
  bullet("Driving Pressure (ΔP) = Pplat − PEEP. Strong independent predictor of mortality in ARDS. Target <15 cmH2O.", 0),
  bullet("PEEP = Positive End-Expiratory Pressure — prevents alveolar collapse at end-expiration, improves oxygenation and reduces atelectrauma.", 0),
  bullet("Auto-PEEP (intrinsic PEEP) — occurs when exhalation time is insufficient; air trapping raises baseline alveolar pressure unexpectedly.", 0),
  ...space()
);

// ═══════════════════════════════════════════════════════════════════
// SECTION 2: VENTILATOR MODES
// ═══════════════════════════════════════════════════════════════════
sections.push(
  pageBreak(),
  h1("Section 2: Ventilator Modes — Deep Dive"),
  h2("2.1 Assist Control (AC)"),
  body("Assist Control is the most widely used mode in the ICU for critically ill patients who cannot safely participate in their own ventilatory efforts (deeply sedated, acute respiratory failure)."),
  h3("AC — Volume Control (AC-VC)"),
  bullet("Clinician sets: VT, RR, PEEP, FiO2, inspiratory flow rate", 0),
  bullet("Patient can trigger additional fully-assisted breaths above the set rate", 0),
  bullet("Each patient-triggered breath receives the full set VT — there is no partial support", 0),
  bullet("Advantage: guaranteed minimum minute ventilation", 0),
  bullet("Disadvantage: fixed inspiratory flow → dyspneic patients may feel flow starvation, increasing work of breathing and distress; risk of elevated plateau pressures in non-compliant lungs", 0),
  ...space(),
  h3("AC — Pressure Control (AC-PC / PCV)"),
  bullet("Clinician sets: inspiratory driving pressure, RR, PEEP, FiO2", 0),
  bullet("VT varies with lung compliance — must be monitored closely", 0),
  bullet("Flow is a dependent variable; spontaneously breathing patients can generate high VT if efforts are large (P-SILI risk)", 0),
  bullet("Advantages: limits peak/plateau pressures; improved patient-ventilator synchrony (variable flow matches patient demand)", 0),
  bullet("Use: ARDS with concern for barotrauma; post-thoracic surgery", 0),
  ...space(),
  h3("Pressure-Regulated Volume Control (PRVC)"),
  bullet("Hybrid mode: clinician sets target VT; ventilator automatically adjusts inspiratory pressure breath-to-breath to achieve that VT", 0),
  bullet("Combines volume guarantee of VC with flow variability of PC", 0),
  bullet("Caution: if patient effort increases, the ventilator may reduce its pressure support, but patient effort + ventilator effort can still deliver a dangerously large VT (volume overshoot)", 0),
  ...space(),

  h2("2.2 Pressure Support Ventilation (PSV)"),
  bullet("Patient-triggered, patient-cycled mode — patient controls RR, VT, and inspiratory flow", 0),
  bullet("Clinician sets: inspiratory pressure level (PS), PEEP, FiO2", 0),
  bullet("Each inspiration: ventilator augments patient's effort by boosting pressure to the set PS level, cycling off when inspiratory flow decreases below a threshold (~25% of peak flow)", 0),
  bullet("Used for: weaning, spontaneous breathing trials (SBTs), awake cooperative patients", 0),
  bullet("Risks: apnea, hypoventilation if patient effort declines; must monitor RR, VT, and VE continuously", 0),
  ...space(),
  callout("A PS of 5–8 cmH2O above PEEP is often used as a readiness-to-wean test, approximating the effort of breathing through an endotracheal tube."),
  ...space(),

  h2("2.3 Synchronized Intermittent Mandatory Ventilation (SIMV)"),
  bullet("Delivers a set number of mandatory breaths (VC or PC) synchronized to patient's inspiratory effort", 0),
  bullet("Between mandatory breaths: patient breathes spontaneously, often augmented with PS", 0),
  bullet("Historical use: weaning — reduce set rate while increasing spontaneous efforts", 0),
  bullet("Now largely fallen out of favor: evidence shows prolonged weaning time vs. PS or T-piece trials; may increase respiratory muscle fatigue during transitions between fully supported and unsupported breaths", 0),
  ...space(),

  h2("2.4 Airway Pressure Release Ventilation (APRV)"),
  body("APRV (\"bilevel\" ventilation) is an advanced mode for severe ARDS and refractory hypoxemia."),
  bullet("Patient breathes spontaneously at a high continuous airway pressure (P-High, held for T-High — e.g., 4.5–5 seconds)", 0),
  bullet("Periodically, pressure is briefly released to a low level (P-Low, near zero, for T-Low — e.g., 0.4–0.8 seconds) to allow CO2 washout", 0),
  bullet("The brief release creates the majority of the tidal volume (passive exhalation)", 0),
  bullet("Advantages: high mean airway pressure improves oxygenation; spontaneous breathing recruits dependent lung zones; lower peak pressures", 0),
  bullet("Caution: complex to manage; T-Low must be carefully set to prevent complete lung derecruitment; not universally adopted", 0),
  ...space(),

  h2("2.5 High-Frequency Oscillatory Ventilation (HFOV)"),
  bullet("Delivers very small tidal volumes (1–3 mL/kg) at very high frequencies (3–15 Hz)", 0),
  bullet("Gas transport by oscillatory flow, asymmetric velocity profiles, and molecular diffusion — NOT bulk flow", 0),
  bullet("Historically used for refractory ARDS; evidence from OSCILLATE and OSCAR trials showed no benefit (and possible harm in OSCILLATE) vs. conventional lung-protective ventilation in adults", 0),
  bullet("Still used in neonatal/pediatric ARDS", 0),
  ...space(),

  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("Mode", true, BLUE), cell("Controls", true, BLUE), cell("Monitors", true, BLUE), cell("Best Use", true, BLUE), cell("Pitfalls", true, BLUE)], true),
      tableRow([cell("AC-VC"), cell("VT, RR, PEEP, FiO2, Flow"), cell("Pplat, PIP"), cell("Initial management; sedated/unstable"), cell("Flow hunger, high Pplat in poor compliance")]),
      tableRow([cell("AC-PC"), cell("Driving P, RR, PEEP, FiO2"), cell("VT, VE"), cell("ARDS, post-thoracic surgery"), cell("Variable VT; P-SILI if strong effort")]),
      tableRow([cell("PRVC"), cell("VT, RR, PEEP, FiO2"), cell("Inspiratory P, Pplat"), cell("Hybrid approach, synchrony + volume"), cell("Volume overshoot with strong effort")]),
      tableRow([cell("PSV"), cell("PS level, PEEP, FiO2"), cell("VT, RR, VE"), cell("Weaning, cooperative patients"), cell("Apnea risk, no backup rate guarantee")]),
      tableRow([cell("APRV"), cell("P-High, P-Low, T-High, T-Low"), cell("VT, CO2"), cell("Refractory ARDS"), cell("Complex; T-Low critical to set correctly")]),
    ]
  }),
  ...space()
);

// ═══════════════════════════════════════════════════════════════════
// SECTION 3: LUNG-PROTECTIVE VENTILATION & ARDS
// ═══════════════════════════════════════════════════════════════════
sections.push(
  pageBreak(),
  h1("Section 3: Lung-Protective Ventilation & ARDS"),
  h2("3.1 The Pressure-Volume (P-V) Curve"),
  body("Understanding the P-V curve is central to lung-protective ventilation in ARDS:"),
  bullet("Lower Inflection Point (LIP): below this pressure, alveoli collapse en masse → atelectrauma", 0),
  bullet("Upper Inflection Point (UIP): above this pressure, alveoli overdistend → barotrauma and volutrauma", 0),
  bullet("Optimal ventilation targets the compliant middle portion of the curve — above LIP and below UIP", 0),
  bullet("In ARDS, the curve shifts rightward and downward: a 500 mL breath that requires ~8 cmH2O in healthy lungs may require ~28 cmH2O in ARDS (Harrison's)", 0),
  ...space(),
  callout("PEEP should be set above the LIP to prevent cyclical collapse-reopening (atelectrauma). Tidal volume should be small enough to keep end-inhalation pressure below UIP (Pplat ≤30 cmH2O)."),
  ...space(),

  h2("3.2 Berlin Definition of ARDS"),
  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("Criterion", true, BLUE), cell("Definition", true, BLUE)], true),
      tableRow([cell("Timing"), cell("Within 1 week of a known clinical insult or new/worsening respiratory symptoms")]),
      tableRow([cell("Chest imaging"), cell("Bilateral opacities not fully explained by effusions, collapse, or nodules")]),
      tableRow([cell("Origin of edema"), cell("Not fully explained by cardiac failure or fluid overload")]),
      tableRow([cell("Severity (PaO2/FiO2)"), cell("Mild: 200–300 mmHg (on PEEP ≥5) | Moderate: 100–200 mmHg | Severe: <100 mmHg")]),
    ]
  }),
  ...space(),

  h2("3.3 ARDSNet Lung-Protective Strategy (ARMA Trial)"),
  body("The landmark ARMA trial demonstrated a 22% relative risk reduction in mortality with low-VT ventilation:"),
  bullet("VT: 6 mL/kg predicted body weight (PBW) — can reduce to 4 mL/kg if plateau pressure remains high", 0),
  bullet("Plateau Pressure: target ≤30 cmH2O; hold inspiratory breath for 0.5 sec to measure", 0),
  bullet("Driving Pressure (ΔP = Pplat − PEEP): target <15 cmH2O; strongest independent predictor of ARDS mortality in large meta-analysis", 0),
  bullet("PEEP: titrated to FiO2 using ARDSNet PEEP-FiO2 tables (lower or higher PEEP strategy)", 0),
  bullet("RR: may increase to 35/min to maintain adequate minute ventilation while using low VT", 0),
  bullet("FiO2: wean to maintain SpO2 88–95% / PaO2 55–80 mmHg", 0),
  ...space(),

  h3("PBW Calculation"),
  bullet("Male: PBW (kg) = 50 + 2.3 × [height (inches) − 60]", 0),
  bullet("Female: PBW (kg) = 45.5 + 2.3 × [height (inches) − 60]", 0),
  ...space(),
  warningBox("VT must be based on PBW (height), NOT actual body weight. Using actual weight in obese patients delivers dangerous overdistension."),
  ...space(),

  h2("3.4 PEEP Strategies"),
  h3("ARDSNet PEEP-FiO2 Tables"),
  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("Strategy", true, BLUE), cell("FiO2", true, BLUE), cell("PEEP", true, BLUE)], true),
      tableRow([cell("Lower PEEP"), cell("0.3 | 0.4 | 0.4 | 0.5 | 0.5 | 0.6 | 0.7 | 0.7 | 0.7 | 0.8 | 0.9 | 0.9 | 0.9 | 1.0"), cell("5 | 5 | 8 | 8 | 10 | 10 | 10 | 12 | 14 | 14 | 14 | 16 | 18 | 18–24")]),
      tableRow([cell("Higher PEEP"), cell("0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.4 | 0.4 | 0.5 | 0.5 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9–1.0"), cell("5 | 8 | 10 | 12 | 14 | 14 | 16 | 16 | 18 | 20 | 20 | 20 | 22 | 22–24")]),
    ]
  }),
  ...space(),
  h3("PEEP Titration Methods"),
  bullet("PEEP-FiO2 tables (ARDSNet): pragmatic, widely used", 0),
  bullet("Esophageal pressure monitoring: measures pleural pressure; transpulmonary pressure = Pplat − Pes; targets positive transpulmonary pressure at end-expiration", 0),
  bullet("Decremental PEEP trial: after recruitment maneuver, reduce PEEP stepwise; set PEEP at 2 cmH2O above the level where compliance peaks", 0),
  bullet("Electrical impedance tomography (EIT): real-time visualization of ventilation distribution — experimental but growing", 0),
  ...space(),

  h2("3.5 Rescue Therapies for Refractory Hypoxemia in ARDS"),
  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("Intervention", true, BLUE), cell("Mechanism", true, BLUE), cell("Evidence", true, BLUE)], true),
      tableRow([cell("Prone Positioning"), cell("Redistributes perfusion to better-ventilated dorsal lung; improves V/Q matching; reduces driving pressure"), cell("PROSEVA trial: 28-day mortality 16% vs 32.8% (HR 0.39) in severe ARDS (P/F <150). Prone ≥16 hrs/day.")]),
      tableRow([cell("Neuromuscular Blockade (NMBA)"), cell("Eliminates P-SILI; improves synchrony; reduces oxygen consumption"), cell("ACURASYS trial showed benefit; ROSE trial showed no benefit when light sedation used. Controversial — consider in severe dyssynchrony.")]),
      tableRow([cell("Inhaled Nitric Oxide (iNO)"), cell("Selective pulmonary vasodilator; reduces intrapulmonary shunt in ventilated alveoli"), cell("Improves oxygenation but no mortality benefit. Use as bridge.")]),
      tableRow([cell("Recruitment Maneuvers"), cell("Sustained high pressure (e.g., CPAP 40 cmH2O × 40 sec) to open collapsed alveoli"), cell("ART trial showed harm with aggressive stepwise RMs. Use cautiously.")]),
      tableRow([cell("ECMO (VV-ECMO)"), cell("Extracorporeal gas exchange; allows ultra-protective ventilation"), cell("CESAR trial + EOLIA trial: benefit in severe ARDS at ECMO centers. Refer early.")]),
    ]
  }),
  ...space()
);

// ═══════════════════════════════════════════════════════════════════
// SECTION 4: SPECIAL VENTILATION SCENARIOS
// ═══════════════════════════════════════════════════════════════════
sections.push(
  pageBreak(),
  h1("Section 4: Special Ventilation Scenarios"),
  h2("4.1 Obstructive Disease (COPD / Asthma)"),
  body("Obstructive physiology creates unique ventilation challenges: air trapping, auto-PEEP, and dynamic hyperinflation."),
  bullet("Strategy: permissive hypercapnia — allow PaCO2 to rise; avoid chasing normal CO2 at the expense of high pressures", 0),
  bullet("Low RR (8–12/min) and long expiratory time (I:E ratio 1:3 to 1:4 or longer) to allow full exhalation", 0),
  bullet("Low-to-moderate PEEP (typically 0–5 cmH2O initially) to avoid worsening air trapping; external PEEP can be set to ~80% of measured auto-PEEP to unload trigger work", 0),
  bullet("Low-moderate VT (6–8 mL/kg PBW)", 0),
  bullet("High inspiratory flow rate → shortens inspiratory time → lengthens expiratory time", 0),
  bullet("Measure auto-PEEP: expiratory hold maneuver at end-expiration", 0),
  ...space(),
  warningBox("Status asthmaticus: If Pplat >30 or auto-PEEP >15, consider reducing RR, VT, or even brief disconnection of circuit. Severe dynamic hyperinflation can cause obstructive shock (↓ venous return → hypotension)."),
  ...space(),

  h2("4.2 Cardiogenic Pulmonary Edema"),
  bullet("Positive pressure ventilation is beneficial: reduces preload and afterload; improves oxygenation", 0),
  bullet("CPAP or BiPAP often sufficient (non-invasive ventilation) — 3CPAP trial supports CPAP in acute cardiogenic pulmonary edema", 0),
  bullet("If intubated: moderate PEEP (8–12 cmH2O) to recruit edematous alveoli; lower FiO2 as tolerated", 0),
  ...space(),

  h2("4.3 Traumatic Brain Injury (TBI)"),
  bullet("Target PaCO2 35–40 mmHg (normocarbia) — avoid hyperventilation (causes cerebral vasoconstriction, reduces CBF)", 0),
  bullet("Hyperventilation (PaCO2 <35) reserved for acute herniation as a bridge to definitive treatment", 0),
  bullet("SpO2 ≥95%, PaO2 >80 mmHg — avoid hypoxemia", 0),
  bullet("HOB 30°; avoid large PEEP increases that raise intracranial pressure", 0),
  ...space(),

  h2("4.4 Post-Operative Ventilation"),
  bullet("Most post-op patients: rapid wean and extubation as soon as emergence from anesthesia complete", 0),
  bullet("Cardiac surgery: gradual wean; may need hours of ventilation for rewarming and hemodynamic stabilization", 0),
  bullet("Lung resection (pneumonectomy/lobectomy): use PCV to protect fresh suture lines; avoid high airway pressures; single-lung ventilation considerations", 0),
  ...space()
);

// ═══════════════════════════════════════════════════════════════════
// SECTION 5: PATIENT-VENTILATOR DYSSYNCHRONY
// ═══════════════════════════════════════════════════════════════════
sections.push(
  pageBreak(),
  h1("Section 5: Patient-Ventilator Dyssynchrony"),
  body("Dyssynchrony occurs when the ventilator's delivered breath is mistimed, oversized, or otherwise mismatched with the patient's own breathing effort. It is associated with increased ICU mortality, longer MV duration, and diaphragm injury."),
  ...space(),
  h2("5.1 Types of Dyssynchrony"),
  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("Type", true, BLUE), cell("Mechanism", true, BLUE), cell("Waveform Clue", true, BLUE), cell("Fix", true, BLUE)], true),
      tableRow([cell("Trigger delay/failure"), cell("Weak patient effort not sensed by ventilator"), cell("Prolonged time from effort to breath delivery; flat P-time curve"), cell("Reduce trigger sensitivity; check for auto-PEEP")]),
      tableRow([cell("Flow starvation (AC-VC)"), cell("Patient demand > set flow"), cell("Concave/scooped flow waveform; scalloped pressure waveform"), cell("Increase flow rate; switch to PC mode")]),
      tableRow([cell("Double triggering"), cell("Neural inspiratory time > ventilator inspiratory time; patient makes effort during expiration, triggers a second breath"), cell("Two consecutive breaths in rapid succession with very short expiratory time"), cell("Increase VT or Ti; deepen sedation")]),
      tableRow([cell("Auto-PEEP triggering failure"), cell("Auto-PEEP must be overcome before trigger threshold is met"), cell("Visible effort on waveform but no breath delivered"), cell("Apply external PEEP to offset; reduce RR; increase expiratory time")]),
      tableRow([cell("Premature cycling (PSV)"), cell("Ventilator cycles off before patient's effort ends"), cell("Flow waveform shows abrupt end before natural cessation"), cell("Increase cycling threshold in ventilator settings")]),
      tableRow([cell("Delayed cycling (PSV)"), cell("Ventilator continues past patient's neural Ti"), cell("Active exhalation visible; double triggering may follow"), cell("Decrease cycling threshold or inspiratory time")]),
    ]
  }),
  ...space(),
  tipBox("Waveform monitoring is essential for detecting dyssynchrony. Learn to read pressure-time, flow-time, and volume-time loops — they are the 'ECG' of the ventilator."),
  ...space(),

  h2("5.2 P-SILI: Patient Self-Inflicted Lung Injury"),
  body("P-SILI occurs when a patient's own vigorous inspiratory effort generates large tidal volumes, high transpulmonary pressures, and pendelluft — internal redistribution of air from less-compliant to more-compliant lung regions."),
  bullet("Risk factors: high respiratory drive (fever, acidosis, pain, anxiety), moderate-severe ARDS, inadequate sedation on pressure-assisted modes", 0),
  bullet("Counterintuitively, deep spontaneous breathing on PC or PRVC can deliver VT >10 mL/kg PBW even when the set parameters appear lung-protective", 0),
  bullet("Management: ensure adequate sedation; consider brief NMBA; monitor VT closely on all assisted modes", 0),
  ...space()
);

// ═══════════════════════════════════════════════════════════════════
// SECTION 6: WEANING & LIBERATION
// ═══════════════════════════════════════════════════════════════════
sections.push(
  pageBreak(),
  h1("Section 6: Weaning and Liberation from Mechanical Ventilation"),
  h2("6.1 When to Assess Readiness"),
  body("Daily assessment for readiness to wean should be performed on ALL ventilated patients. Liberation should be considered when:"),
  bullet("Underlying reason for intubation is improving or resolved", 0),
  bullet("Patient is hemodynamically stable (minimal or weaned vasopressors)", 0),
  bullet("Adequate oxygenation: PaO2/FiO2 >150–200 on FiO2 ≤0.4–0.5 and PEEP ≤5–8 cmH2O", 0),
  bullet("Adequate ventilatory drive: patient is making respiratory effort", 0),
  bullet("Correctable causes addressed: infection, bronchospasm, electrolyte deficiencies, metabolic derangements", 0),
  ...space(),

  h2("6.2 Rapid Shallow Breathing Index (RSBI)"),
  bullet("RSBI = RR / VT (in liters)", 0),
  bullet("RSBI <105 breaths/min/L: predicts successful extubation with ~80% positive predictive value", 0),
  bullet("RSBI ≥105: predicts weaning failure; do NOT extubate", 0),
  bullet("Limitation: lower sensitivity and specificity in ICU patients with prolonged MV; use as one tool among many", 0),
  ...space(),

  h2("6.3 Spontaneous Breathing Trial (SBT)"),
  body("The SBT is the cornerstone of weaning assessment. Two approaches with equivalent outcomes:"),
  bullet("T-piece: patient disconnected from ventilator, breathes through T-tube without support", 0),
  bullet("Low-level PSV: PS 5–8 cmH2O + PEEP 5 cmH2O — slightly less demanding than T-piece", 0),
  ...space(),
  h3("SBT Duration & Success Criteria"),
  bullet("Duration: 30–120 minutes (shorter SBTs — 30 min — have equivalent outcomes to 2-hour SBTs in most patients)", 0),
  bullet("Pass: RR <35, SpO2 >90%, HR <140, BP stable, no signs of distress, no significant dysrhythmia, no diaphoresis", 0),
  bullet("Fail: tachypnea, labored breathing, desaturation, hemodynamic deterioration, agitation — return to full support, address cause, retry in 24h", 0),
  ...space(),
  callout("If patient passes SBT → assess extubation readiness. Passing SBT does NOT guarantee successful extubation — upper airway protection and secretion clearance must also be adequate."),
  ...space(),

  h2("6.4 Extubation Readiness Assessment"),
  bullet("Level of consciousness: patient can follow simple commands", 0),
  bullet("Cough: adequate cough strength to clear secretions", 0),
  bullet("Cuff leak test: deflate cuff, occlude tube — patient should be able to breathe around the tube (predicts absence of post-extubation stridor/edema)", 0),
  bullet("Secretions: manageable volume and frequency of suctioning", 0),
  bullet("Swallowing: assess for dysphagia before extubation in high-risk patients", 0),
  ...space(),

  h2("6.5 Post-Extubation Care"),
  bullet("High-flow nasal cannula (HFNC): strong evidence (Hernandez 2016 RCT) for preventing re-intubation in high-risk extubations — use for COPD, elderly, hypercapnic, weak cough, cardiac disease", 0),
  bullet("NIV: consider for post-extubation respiratory failure (especially COPD) or pre-emptively in high-risk patients", 0),
  bullet("Dexmedetomidine for delirium; early mobility; swallowing therapy", 0),
  ...space(),

  h2("6.6 Difficult and Prolonged Weaning"),
  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("Category", true, BLUE), cell("Definition", true, BLUE), cell("Approach", true, BLUE)], true),
      tableRow([cell("Simple weaning"), cell("Extubated on first SBT"), cell("Standard daily SBT")]),
      tableRow([cell("Difficult weaning"), cell("Fails 1st SBT; extubated by 3rd SBT or within 7 days"), cell("Identify and treat cause; progressive SBTs; consider tracheostomy if >14 days")]),
      tableRow([cell("Prolonged weaning"), cell(">3 failed SBTs or >7 days after first SBT"), cell("Tracheostomy; specialized weaning unit; diaphragm ultrasound assessment; respiratory muscle training")]),
    ]
  }),
  ...space(),
  h3("Common Causes of Weaning Failure"),
  bullet("Respiratory: residual pneumonia/ARDS, bronchospasm, pleural effusion, phrenic nerve injury, diaphragm dysfunction", 0),
  bullet("Cardiac: heart failure decompensated by weaning (increased LV afterload) — wean-induced pulmonary edema", 0),
  bullet("Neurological: ICU-acquired weakness (ICUAW), critical illness polyneuropathy/myopathy, inadequate reversal of NMBA", 0),
  bullet("Metabolic: malnutrition, hypo-phosphatemia, hypomagnesemia, hypothyroidism", 0),
  bullet("Psychological: anxiety, delirium, inadequate analgosedation management", 0),
  ...space()
);

// ═══════════════════════════════════════════════════════════════════
// SECTION 7: COMPLICATIONS & TROUBLESHOOTING
// ═══════════════════════════════════════════════════════════════════
sections.push(
  pageBreak(),
  h1("Section 7: Complications & Troubleshooting"),
  h2("7.1 Ventilator-Induced Lung Injury (VILI)"),
  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("VILI Type", true, BLUE), cell("Mechanism", true, BLUE), cell("Prevention", true, BLUE)], true),
      tableRow([cell("Barotrauma"), cell("Elevated alveolar pressure → alveolar rupture → pneumothorax, pneumomediastinum, subcutaneous emphysema, tension pneumothorax"), cell("Pplat ≤30 cmH2O; ΔP <15 cmH2O")]),
      tableRow([cell("Volutrauma"), cell("Overdistension from high VT even at normal pressures → inflammatory injury"), cell("VT 6 mL/kg PBW")]),
      tableRow([cell("Atelectrauma"), cell("Cyclical collapse-reopening of alveoli → shear stress injury"), cell("Adequate PEEP to prevent end-expiratory collapse")]),
      tableRow([cell("Biotrauma"), cell("Mechanical stretch triggers local cytokine release → systemic inflammation, MODS"), cell("All lung-protective strategies reduce biotrauma")]),
      tableRow([cell("Oxygen toxicity"), cell("High FiO2 (>0.6 sustained) → reactive oxygen species → diffuse alveolar damage"), cell("Titrate FiO2 to minimum required; accept SpO2 88–92% in ARDS")]),
    ]
  }),
  ...space(),

  h2("7.2 Ventilator-Associated Pneumonia (VAP)"),
  bullet("Most common ICU infection; ~2–16 episodes per 1000 ventilator days; increases ICU LOS and cost", 0),
  bullet("Definition: pneumonia occurring >48–72 hours after intubation", 0),
  h3("VAP Prevention Bundle (IHI)"),
  bullet("HOB elevation 30–45°", 0),
  bullet("Daily sedation interruption + SBT (spontaneous awakening trials)", 0),
  bullet("Oral decontamination with chlorhexidine", 0),
  bullet("Stress ulcer prophylaxis (controversial — PPI vs. H2 blocker)", 0),
  bullet("DVT prophylaxis", 0),
  bullet("Subglottic secretion drainage ETT (continuous aspiration of subglottic secretions — CASS)", 0),
  bullet("Early enteral nutrition via NGT (avoid prolonged NPO)", 0),
  ...space(),
  tipBox("The VAP bundle has dramatically reduced VAP rates in ICUs that implement it consistently. Adherence to all elements is critical — partial bundle compliance provides less benefit."),
  ...space(),

  h2("7.3 Tension Pneumothorax"),
  body("Tension pneumothorax is a life-threatening complication of mechanical ventilation. Recognize and treat immediately."),
  bullet("Signs: acute deterioration, high PIP/Pplat, ↓ SpO2, hypotension, absent breath sounds, tracheal deviation, distended neck veins", 0),
  bullet("On ventilator: sudden spike in peak pressure; decreased VT on PC mode; hemodynamic collapse", 0),
  bullet("Treatment: immediate needle decompression (2nd ICS, MCL) → chest tube. Do NOT wait for CXR in cardiac arrest.", 0),
  ...space(),
  warningBox("In an acute vent emergency with acute desaturation and hemodynamic collapse: Disconnect — Manual bagging — Call for help — Assess for pneumothorax, mucus plug, tube displacement, equipment failure (DOPE mnemonic: Displacement, Obstruction, Pneumothorax, Equipment failure)."),
  ...space(),

  h2("7.4 The DOPE Mnemonic — Acute Ventilator Deterioration"),
  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("Letter", true, BLUE), cell("Problem", true, BLUE), cell("Assessment", true, BLUE), cell("Action", true, BLUE)], true),
      tableRow([cell("D"), cell("Displacement of ETT"), cell("CXR, direct laryngoscopy, capnography"), cell("Reposition or re-intubate")]),
      tableRow([cell("O"), cell("Obstruction (mucus plug, kinking, biting)"), cell("Pass suction catheter; inspect circuit"), cell("Suction; reposition; sedate")]),
      tableRow([cell("P"), cell("Pneumothorax"), cell("Auscultation; bedside ultrasound (sliding sign absent); CXR"), cell("Needle decompression → chest tube")]),
      tableRow([cell("E"), cell("Equipment failure (circuit disconnect, ventilator malfunction)"), cell("Inspect circuit; alarm check"), cell("Replace circuit; manual bagging while fixing")]),
    ]
  }),
  ...space(),

  h2("7.5 Auto-PEEP / Dynamic Hyperinflation"),
  bullet("Occurs when expiratory time is insufficient for complete exhalation → air trapping → elevated alveolar pressure above set PEEP", 0),
  bullet("Detection: expiratory hold maneuver (displays total PEEP = set PEEP + auto-PEEP)", 0),
  bullet("Consequences: increased work of breathing (patient must generate effort >auto-PEEP before triggering), hemodynamic compromise (↓ venous return), barotrauma", 0),
  bullet("Management: decrease RR; decrease VT; increase inspiratory flow; increase expiratory time (I:E ratio); treat bronchospasm (bronchodilators); consider brief circuit disconnection for acute decompression in extremis", 0),
  ...space(),

  h2("7.6 Right Heart Failure & Cor Pulmonale on Mechanical Ventilation"),
  bullet("High PEEP, high Pplat, and hypoxia all increase pulmonary vascular resistance (PVR) → RV afterload → acute cor pulmonale", 0),
  bullet("Acute cor pulmonale (ACP) seen in ~20–25% of moderate-severe ARDS patients (ECHO-confirmed)", 0),
  bullet("Signs: RV dilation on ECHO, new tricuspid regurgitation, paradoxical septal motion, ↑ CVP", 0),
  bullet("Management: optimize PEEP (excessive PEEP worsens RV afterload), iNO, prone positioning (reduces PVR), norepinephrine ± dobutamine", 0),
  ...space()
);

// ═══════════════════════════════════════════════════════════════════
// SECTION 8: BLOOD GAS INTERPRETATION ON THE VENTILATOR
// ═══════════════════════════════════════════════════════════════════
sections.push(
  pageBreak(),
  h1("Section 8: ABG Interpretation & Ventilator Adjustments"),
  h2("8.1 Quick Reference: Adjusting the Ventilator"),
  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("Problem", true, BLUE), cell("Adjust", true, BLUE), cell("Caution", true, BLUE)], true),
      tableRow([cell("↑ PaCO2 (hypercapnia)"), cell("↑ RR or ↑ VT → ↑ minute ventilation"), cell("In ARDS: accept permissive hypercapnia rather than unsafe ↑ pressure")]),
      tableRow([cell("↓ PaCO2 (hypocapnia)"), cell("↓ RR or ↓ VT"), cell("Avoid in TBI (cerebral vasoconstriction)")]),
      tableRow([cell("↓ PaO2 / SpO2 (hypoxemia)"), cell("↑ FiO2 or ↑ PEEP"), cell("Avoid FiO2 >0.60 sustained; high PEEP may ↑ PVR and RV afterload")]),
      tableRow([cell("↑ PaO2 / SpO2 (hyperoxemia)"), cell("↓ FiO2 to maintain SpO2 92–96% (88–92% in ARDS/COPD)"), cell("Avoid liberal O2 in COPD (↑ V/Q mismatch, Haldane effect)")]),
      tableRow([cell("↑ Peak pressure (no ↑ Pplat)"), cell("Airway resistance ↑ — suction, bronchodilate, check circuit"), cell("Rule out tube kinking, secretions, bronchospasm")]),
      tableRow([cell("↑ Peak pressure AND ↑ Pplat"), cell("Lung/chest wall compliance ↓ — assess for PTX, atelectasis, effusion, abdominal compartment syndrome"), cell("Check for DOPE causes")]),
    ]
  }),
  ...space(),

  h2("8.2 Permissive Hypercapnia"),
  bullet("Deliberate acceptance of elevated PaCO2 (up to 60–80 mmHg) and low pH (down to 7.20–7.25) to allow lung-protective low VT", 0),
  bullet("Contraindications: TBI (ICP concerns), acute pulmonary hypertension, metabolic acidosis already present, severe right heart failure", 0),
  bullet("pH correction: sodium bicarbonate infusion if pH <7.15 to buffer acidosis and protect myocardial function", 0),
  ...space()
);

// ═══════════════════════════════════════════════════════════════════
// SECTION 9: KEY CLINICAL TRIALS
// ═══════════════════════════════════════════════════════════════════
sections.push(
  pageBreak(),
  h1("Section 9: Landmark Trials in Mechanical Ventilation"),
  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("Trial", true, BLUE), cell("Year", true, BLUE), cell("Question", true, BLUE), cell("Key Finding", true, BLUE)], true),
      tableRow([cell("ARMA (ARDSNet)"), cell("2000"), cell("Low VT (6 mL/kg) vs. 12 mL/kg in ARDS"), cell("28-day mortality 31% vs 39.8% — 22% relative reduction. Established 6 mL/kg PBW as standard of care.")]),
      tableRow([cell("PROSEVA"), cell("2013"), cell("Prone positioning vs. supine in severe ARDS"), cell("28-day mortality 16% vs 32.8% in P/F <150. NNT ~6. Prone ≥16 h/day recommended.")]),
      tableRow([cell("ACURASYS"), cell("2010"), cell("Cisatracurium NMBA × 48h vs. placebo in ARDS"), cell("Mortality benefit at 90 days; improved P/F ratio. Supported early NMBA in severe ARDS.")]),
      tableRow([cell("ROSE"), cell("2019"), cell("NMBA vs. light sedation in ARDS"), cell("No mortality benefit when modern light sedation protocols used. Challenged ACURASYS findings.")]),
      tableRow([cell("CESAR"), cell("2009"), cell("ECMO referral vs. conventional ventilation in severe ARDS"), cell("Survival without disability 63% vs 47% in ECMO group.")]),
      tableRow([cell("EOLIA"), cell("2018"), cell("Early VV-ECMO vs. conventional in severe ARDS"), cell("No statistically significant mortality benefit (p=0.09), but 28% RRR; high crossover rate complicates interpretation.")]),
      tableRow([cell("ART Trial"), cell("2017"), cell("Lung recruitment strategy + PEEP titration vs. ARDSNet in moderate-severe ARDS"), cell("Increased 28-day mortality with aggressive recruitment maneuvers. Routine aggressive RMs not recommended.")]),
      tableRow([cell("OSCILLATE / OSCAR"), cell("2013"), cell("HFOV vs. conventional ventilation in ARDS"), cell("OSCILLATE: increased mortality with HFOV. OSCAR: no difference. HFOV abandoned in adult ARDS.")]),
    ]
  }),
  ...space()
);

// ═══════════════════════════════════════════════════════════════════
// SECTION 10: HIGH-YIELD SUMMARY
// ═══════════════════════════════════════════════════════════════════
sections.push(
  pageBreak(),
  h1("Section 10: High-Yield Summary for Exams & Rounds"),

  h2("Top 10 Pearls"),
  bullet("1.  Always base VT on PREDICTED BODY WEIGHT (height), not actual body weight.", 0),
  bullet("2.  In Volume Control: monitor Pplat (goal ≤30). In Pressure Control: monitor VT and VE.", 0),
  bullet("3.  Driving Pressure (ΔP = Pplat − PEEP) <15 cmH2O is the strongest independent predictor of survival in ARDS.", 0),
  bullet("4.  PEEP prevents atelectrauma; set above the lower inflection point of the P-V curve.", 0),
  bullet("5.  Auto-PEEP = air trapping. Measure with expiratory hold. Treat by increasing expiratory time.", 0),
  bullet("6.  Prone positioning for ≥16h/day in P/F <150 reduces 28-day mortality by ~50% (PROSEVA).", 0),
  bullet("7.  The DOPE mnemonic guides acute ventilator deterioration: Displacement, Obstruction, Pneumothorax, Equipment.", 0),
  bullet("8.  RSBI <105 supports SBT. Passing SBT does not guarantee extubation success — assess airway protection.", 0),
  bullet("9.  Weaning failure is commonly cardiac (wean-induced pulmonary edema), neuromuscular (ICUAW), or metabolic.", 0),
  bullet("10. Post-extubation HFNC reduces re-intubation in high-risk patients.", 0),
  ...space(),

  h2("Common Formulas"),
  new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      tableRow([cell("Formula", true, BLUE), cell("Calculation", true, BLUE)], true),
      tableRow([cell("PBW (Male)"), cell("50 + 2.3 × [height in inches − 60]")]),
      tableRow([cell("PBW (Female)"), cell("45.5 + 2.3 × [height in inches − 60]")]),
      tableRow([cell("Minute Ventilation (VE)"), cell("VT × RR")]),
      tableRow([cell("Driving Pressure (ΔP)"), cell("Pplat − PEEP; goal <15 cmH2O in ARDS")]),
      tableRow([cell("RSBI"), cell("RR (breaths/min) ÷ VT (liters); goal <105 to pass SBT")]),
      tableRow([cell("Static Compliance"), cell("VT ÷ (Pplat − PEEP); normal ~60–100 mL/cmH2O; ARDS often <30")]),
      tableRow([cell("P/F Ratio"), cell("PaO2 ÷ FiO2; normal ≥400; ARDS <300; severe ARDS <100")]),
    ]
  }),
  ...space(),
  new Paragraph({
    alignment: AlignmentType.CENTER,
    spacing: { before: 400, after: 200 },
    children: [new TextRun({ text: "— End of Study Guide —", italics: true, color: "888888", size: 18 })]
  }),
  new Paragraph({
    alignment: AlignmentType.CENTER,
    spacing: { before: 0, after: 200 },
    children: [new TextRun({ text: "Sources: Harrison's Principles of Internal Medicine 22E (2025) · Sabiston Textbook of Surgery 21E · Fishman's Pulmonary Diseases and Disorders", italics: true, color: "888888", size: 16 })]
  })
);

// ── Document assembly ──────────────────────────────────────────────
const doc = new Document({
  creator: "Orris AI",
  title: "Mechanical Ventilation Beyond Basics",
  description: "Comprehensive resident study guide for advanced mechanical ventilation",
  styles: {
    default: {
      document: {
        run: { font: "Calibri", size: 20, color: "222222" }
      }
    }
  },
  sections: [{
    properties: {
      page: {
        margin: { top: 1000, bottom: 1000, left: 1200, right: 1200 }
      }
    },
    headers: {
      default: new Header({
        children: [new Paragraph({
          border: { bottom: { style: BorderStyle.SINGLE, size: 4, color: LTBLUE, space: 4 } },
          spacing: { after: 80 },
          children: [
            new TextRun({ text: "Mechanical Ventilation: Beyond Basics  ", bold: true, color: LTBLUE, size: 18 }),
            new TextRun({ text: "Resident Study Guide", color: "888888", size: 18 })
          ]
        })]
      })
    },
    footers: {
      default: new Footer({
        children: [new Paragraph({
          border: { top: { style: BorderStyle.SINGLE, size: 4, color: LTBLUE, space: 4 } },
          alignment: AlignmentType.CENTER,
          children: [
            new TextRun({ text: "Page ", size: 16, color: "888888" }),
            new PageNumber(),
            new TextRun({ text: "  |  Orris AI · May 2026", size: 16, color: "888888" })
          ]
        })]
      })
    },
    children: sections
  }]
});

Packer.toBuffer(doc).then(buf => {
  fs.writeFileSync("/home/daytona/workspace/mech-vent-docx/Mechanical_Ventilation_Beyond_Basics.docx", buf);
  console.log("SUCCESS");
}).catch(err => { console.error(err); process.exit(1); });
Running Command

cd /home/daytona/workspace/mech-vent-docx && node build.js 2>&1

Your credits are exhausted. Your daily credits reset tomorrow, or you can purchase a top-up for more.
This is a shared conversation. Sign in to Orris to start your own chat.