Can pneumothorax resolve on its own
pneumothorax spontaneous resolution conservative management 2024
pneumothorax conservative management spontaneous resolution
| Factor | Favors Observation | Favors Intervention |
|---|---|---|
| Type | Primary spontaneous | Secondary, traumatic |
| Size | Small (<2 cm BTS / <3 cm ACCP) | Large |
| Symptoms | Asymptomatic / minimal | Dyspnea, hemodynamic instability |
| Ventilation | Spontaneously breathing | On positive pressure ventilation |
| Recurrence | First episode | Recurrent |
What are the signs of a tension pneumothorax?
tension pneumothorax clinical signs diagnosis emergency 2024
| Sign | Detail |
|---|---|
| Absent/decreased breath sounds | On the affected side - often the earliest detectable sign |
| Hyperresonance to percussion | On the affected side (air-filled cavity) |
| Tachypnea / air hunger | Severe respiratory distress |
| Hypoxia | From atelectasis and V/Q mismatch |
| Increased peak inspiratory pressures | Key early sign in ventilated patients - rising airway resistance |
| Sign | Detail |
|---|---|
| Tachycardia | Early compensatory sign |
| Hypotension | From decreased venous return (obstructive shock) |
| Raised JVP / distended neck veins | From backed-up venous pressure - may be absent if hypovolaemic |
| Rising CVP | In monitored patients |
| Sign | Detail |
|---|---|
| Tracheal deviation | Away from the affected side - a late sign; may be subtle or absent in intubated patients |
| Mediastinal shift | On imaging, if obtained |
| Cardiovascular collapse / arrest | End-stage if untreated |
Absent breath sounds | Respiratory distress | Distended neck veins | Shock (hypotension) | Tachycardia | Hyperresonance | Tracheal deviation (away from lesion)
Non respiratory functions of lung
non-respiratory functions of the lung physiology overview
| Activated | Largely Removed / Inactivated | Unaffected (pass through) |
|---|---|---|
| Angiotensin I → Angiotensin II (via ACE) | Serotonin | Histamine |
| - | Bradykinin | Epinephrine |
| - | PGE₁, PGE₂, PGF₂α, leukotrienes | Dopamine |
| - | Norepinephrine | PGA₁, PGA₂, PGI₂ (prostacyclin) |
| - | - | Angiotensin II, vasopressin, gastrin, oxytocin |
Non respiratory functions of lungs ppt
ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"
mkdir -p /home/daytona/workspace/lung-nonrespiratory-ppt
~/lung-nonrespiratory-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Non-Respiratory Functions of the Lung";
pres.author = "Orris Medical";
// ── COLOUR PALETTE ──────────────────────────────────────────────────────────
const DARK_TEAL = "0D4F5C"; // dominant dark
const MID_TEAL = "1A7F8E"; // supporting
const ACCENT = "40C8B4"; // sharp accent / highlights
const LIGHT_BG = "EAF6F8"; // slide body background
const WHITE = "FFFFFF";
const DARK_TEXT = "0A2E35";
const SUBTEXT = "3A6470";
// ── HELPERS ─────────────────────────────────────────────────────────────────
function addBg(slide, color) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 5.625,
fill: { color: color },
line: { color: color }
});
}
function accentBar(slide, color, h) {
h = h || 0.07;
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 5.625 - h, w: 10, h: h,
fill: { color: color },
line: { color: color }
});
}
function sectionHeader(slide, emoji, title, subtitle) {
addBg(slide, DARK_TEAL);
// Left accent stripe
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 0.12, h: 5.625,
fill: { color: ACCENT },
line: { color: ACCENT }
});
// Emoji / icon circle
slide.addShape(pres.shapes.OVAL, {
x: 0.6, y: 1.7, w: 1.3, h: 1.3,
fill: { color: MID_TEAL },
line: { color: ACCENT, width: 3 }
});
slide.addText(emoji, {
x: 0.6, y: 1.72, w: 1.3, h: 1.3,
fontSize: 36, align: "center", valign: "middle"
});
slide.addText(title, {
x: 2.2, y: 1.55, w: 7.4, h: 1.1,
fontSize: 36, bold: true, color: WHITE,
fontFace: "Calibri", valign: "bottom"
});
if (subtitle) {
slide.addText(subtitle, {
x: 2.2, y: 2.75, w: 7.4, h: 0.75,
fontSize: 18, color: ACCENT,
fontFace: "Calibri", italic: true
});
}
accentBar(slide, ACCENT);
}
function contentSlide(slide, title, bullets, note) {
addBg(slide, LIGHT_BG);
// Top header band
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 0.85,
fill: { color: DARK_TEAL },
line: { color: DARK_TEAL }
});
slide.addText(title, {
x: 0.4, y: 0, w: 9.2, h: 0.85,
fontSize: 22, bold: true, color: WHITE,
fontFace: "Calibri", valign: "middle"
});
// Left accent stripe
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0.85, w: 0.07, h: 4.77,
fill: { color: ACCENT },
line: { color: ACCENT }
});
// Build bullet array
const items = bullets.map((b, i) => {
const isLast = i === bullets.length - 1;
if (typeof b === "string") {
return { text: b, options: { bullet: { type: "bullet" }, fontSize: 16.5, color: DARK_TEXT, fontFace: "Calibri", breakLine: !isLast, paraSpaceAfter: 6 } };
}
// sub-bullet: { sub: true, text: "..." }
return { text: b.text, options: { bullet: { type: "bullet", indent: 30 }, fontSize: 14.5, color: SUBTEXT, fontFace: "Calibri", italic: true, breakLine: !isLast, paraSpaceAfter: 4 } };
});
slide.addText(items, {
x: 0.35, y: 0.95, w: 9.3, h: 4.5,
valign: "top", margin: [10, 12, 6, 12]
});
if (note) {
slide.addNotes(note);
}
accentBar(slide, ACCENT);
}
function twoColSlide(slide, title, leftTitle, leftBullets, rightTitle, rightBullets) {
addBg(slide, LIGHT_BG);
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 0.85,
fill: { color: DARK_TEAL },
line: { color: DARK_TEAL }
});
slide.addText(title, {
x: 0.4, y: 0, w: 9.2, h: 0.85,
fontSize: 22, bold: true, color: WHITE,
fontFace: "Calibri", valign: "middle"
});
// Left card
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.25, y: 1.0, w: 4.55, h: 4.35,
fill: { color: WHITE },
line: { color: ACCENT, width: 2 },
shadow: { type: "outer", color: "000000", blur: 5, offset: 2, angle: 135, opacity: 0.1 }
});
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.25, y: 1.0, w: 4.55, h: 0.45,
fill: { color: MID_TEAL },
line: { color: MID_TEAL }
});
slide.addText(leftTitle, {
x: 0.25, y: 1.0, w: 4.55, h: 0.45,
fontSize: 14, bold: true, color: WHITE,
fontFace: "Calibri", align: "center", valign: "middle"
});
const leftItems = leftBullets.map((b, i) => ({
text: b,
options: { bullet: { type: "bullet" }, fontSize: 14, color: DARK_TEXT, fontFace: "Calibri", breakLine: i < leftBullets.length - 1, paraSpaceAfter: 5 }
}));
slide.addText(leftItems, {
x: 0.35, y: 1.5, w: 4.3, h: 3.75, valign: "top", margin: [6, 8, 6, 8]
});
// Right card
slide.addShape(pres.shapes.RECTANGLE, {
x: 5.2, y: 1.0, w: 4.55, h: 4.35,
fill: { color: WHITE },
line: { color: ACCENT, width: 2 },
shadow: { type: "outer", color: "000000", blur: 5, offset: 2, angle: 135, opacity: 0.1 }
});
slide.addShape(pres.shapes.RECTANGLE, {
x: 5.2, y: 1.0, w: 4.55, h: 0.45,
fill: { color: MID_TEAL },
line: { color: MID_TEAL }
});
slide.addText(rightTitle, {
x: 5.2, y: 1.0, w: 4.55, h: 0.45,
fontSize: 14, bold: true, color: WHITE,
fontFace: "Calibri", align: "center", valign: "middle"
});
const rightItems = rightBullets.map((b, i) => ({
text: b,
options: { bullet: { type: "bullet" }, fontSize: 14, color: DARK_TEXT, fontFace: "Calibri", breakLine: i < rightBullets.length - 1, paraSpaceAfter: 5 }
}));
slide.addText(rightItems, {
x: 5.3, y: 1.5, w: 4.3, h: 3.75, valign: "top", margin: [6, 8, 6, 8]
});
accentBar(slide, ACCENT);
}
function tableSlide(slide, title, headers, rows) {
addBg(slide, LIGHT_BG);
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 0.85,
fill: { color: DARK_TEAL },
line: { color: DARK_TEAL }
});
slide.addText(title, {
x: 0.4, y: 0, w: 9.2, h: 0.85,
fontSize: 22, bold: true, color: WHITE,
fontFace: "Calibri", valign: "middle"
});
const tableRows = [];
// Header row
tableRows.push(headers.map(h => ({
text: h,
options: { bold: true, color: WHITE, fontSize: 13, align: "center", fill: { color: MID_TEAL }, fontFace: "Calibri" }
})));
// Data rows
rows.forEach((r, ri) => {
tableRows.push(r.map(cell => ({
text: cell,
options: { fontSize: 12.5, color: DARK_TEXT, fontFace: "Calibri", fill: { color: ri % 2 === 0 ? WHITE : "D8F2F4" } }
})));
});
slide.addTable(tableRows, {
x: 0.3, y: 1.0, w: 9.4,
colW: headers.map(() => 9.4 / headers.length),
rowH: 0.5,
border: { type: "solid", color: ACCENT, pt: 1 }
});
accentBar(slide, ACCENT);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addBg(s, DARK_TEAL);
// Decorative circles (depth)
s.addShape(pres.shapes.OVAL, {
x: 7.5, y: -0.8, w: 3.5, h: 3.5,
fill: { color: MID_TEAL },
line: { color: MID_TEAL }
});
s.addShape(pres.shapes.OVAL, {
x: 8.2, y: 3.2, w: 2.2, h: 2.2,
fill: { color: "0B3D47" },
line: { color: "0B3D47" }
});
// Left accent stripe
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 0.18, h: 5.625,
fill: { color: ACCENT },
line: { color: ACCENT }
});
s.addText("NON-RESPIRATORY", {
x: 0.5, y: 0.9, w: 7.0, h: 0.7,
fontSize: 38, bold: true, color: ACCENT,
fontFace: "Calibri", charSpacing: 3
});
s.addText("FUNCTIONS OF THE LUNG", {
x: 0.5, y: 1.55, w: 7.4, h: 0.9,
fontSize: 32, bold: true, color: WHITE,
fontFace: "Calibri"
});
// Divider line
s.addShape(pres.shapes.RECTANGLE, {
x: 0.5, y: 2.55, w: 5.5, h: 0.04,
fill: { color: ACCENT },
line: { color: ACCENT }
});
s.addText("Beyond Gas Exchange — The Metabolic, Defensive\n& Haemodynamic Roles of the Pulmonary System", {
x: 0.5, y: 2.7, w: 7.4, h: 1.1,
fontSize: 16, color: "AADDE5",
fontFace: "Calibri", italic: true
});
s.addText("Sources: Boron & Boulpaep Medical Physiology • Morgan & Mikhail Clinical Anesthesiology\nFishman's Pulmonary Diseases • Murray & Nadel's Respiratory Medicine", {
x: 0.5, y: 4.9, w: 9.0, h: 0.55,
fontSize: 10, color: "7ABDC8",
fontFace: "Calibri", italic: true
});
accentBar(s, ACCENT);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 — OVERVIEW (all functions listed)
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addBg(s, LIGHT_BG);
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 0.85,
fill: { color: DARK_TEAL }, line: { color: DARK_TEAL }
});
s.addText("Overview — Non-Respiratory Functions", {
x: 0.4, y: 0, w: 9.2, h: 0.85,
fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
const funcs = [
["🔵", "Blood Filtration", "Traps emboli before they reach systemic circulation"],
["🫀", "Blood Reservoir", "~500 mL reservoir for left ventricular filling"],
["⚗️", "Metabolic / Biochemical", "Activates, inactivates & transforms circulating mediators"],
["🫧", "Surfactant Synthesis", "Type II pneumocytes produce surfactant — prevents collapse"],
["🛡️", "Immunological Defence", "Mucociliary clearance, alveolar macrophages, innate immunity"],
["🌡️", "Air Conditioning", "Humidifies, warms & filters inspired air"],
["🩸", "Haemostasis", "vWF, tPA, P-selectin via Weibel-Palade bodies"],
["🧬", "Neuroendocrine Signalling", "PNECs release serotonin, bombesin, calcitonin"],
["⚖️", "Acid-Base Balance", "Rapid CO₂ adjustment buffers metabolic pH disturbances"],
];
funcs.forEach((f, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const x = 0.2 + col * 3.27;
const y = 1.0 + row * 1.52;
s.addShape(pres.shapes.RECTANGLE, {
x, y, w: 3.1, h: 1.35,
fill: { color: WHITE },
line: { color: i % 2 === 0 ? ACCENT : MID_TEAL, width: 1.5 },
shadow: { type: "outer", color: "000000", blur: 4, offset: 2, angle: 135, opacity: 0.08 }
});
s.addText(f[0] + " " + f[1], {
x: x + 0.08, y: y + 0.05, w: 2.94, h: 0.4,
fontSize: 12.5, bold: true, color: DARK_TEAL, fontFace: "Calibri"
});
s.addText(f[2], {
x: x + 0.08, y: y + 0.45, w: 2.94, h: 0.82,
fontSize: 11, color: SUBTEXT, fontFace: "Calibri", italic: true
});
});
accentBar(s, ACCENT);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 — BLOOD FILTRATION
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "🔵", "1. Blood Filtration", "The lung as a vascular sieve");
}
{
const s = pres.addSlide();
contentSlide(s, "Blood Filtration — Mechanism & Significance", [
"Entire cardiac output (5 L/min) passes through pulmonary capillaries (~7 µm diameter)",
"Acts as an in-series sieve for circulating debris before it reaches the left heart",
"Traps: small thrombi, fat emboli, air bubbles, platelet aggregates, cellular debris",
"High endothelial content of heparin and plasminogen activator breaks down trapped fibrin",
"After small pulmonary emboli, alveolar cells can recover via anastomoses with the bronchial circulation",
{ sub: true, text: "Alveolar cells obtain O₂ from air directly — do not depend on the pulmonary capillaries" },
"⚠️ Liability: circulating cancer cells can find the capillary bed a fertile site for metastatic seeding",
"Note: larger fat macroglobules can still pass through to the systemic circulation"
], "Source: Boron & Boulpaep Medical Physiology; Morgan & Mikhail Clinical Anesthesiology 7e");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 — BLOOD RESERVOIR
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "🫀", "2. Blood Reservoir", "Pulmonary circulation as a dynamic buffer");
}
{
const s = pres.addSlide();
contentSlide(s, "Blood Reservoir for the Left Ventricle", [
"The highly compliant pulmonary circulation holds approximately 500 mL of blood at rest",
"This volume acts as a dynamic reservoir for left ventricular preload",
"Can be recruited rapidly during sudden haemodynamic demands or positional changes",
"Low vascular resistance of pulmonary bed (vs systemic) facilitates this buffering role",
"The pulmonary arterial wall is ~1/5 the thickness of equivalent systemic arteries",
{ sub: true, text: "Reduced wall thickness reflects the ~5× lower systolic pressure of the pulmonary circuit" },
"Gravity further influences blood distribution — base-to-apex gradient (West zones 1–3)",
"In pulmonary hypertension, the wall thickens — compromising this compliant reservoir role"
], "Source: Fishman's Pulmonary Diseases; Murray & Nadel's Respiratory Medicine");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 — METABOLIC / BIOCHEMICAL FUNCTIONS (header)
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "⚗️", "3. Metabolic & Biochemical Functions", "The pulmonary endothelium as a chemical processing plant");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 — TABLE of mediator handling
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
tableSlide(s, "Handling of Agents by the Pulmonary Circulation",
["Activated", "Largely Removed / Inactivated", "Unaffected (Pass Through)"],
[
["Angiotensin I → Angiotensin II\n(via ACE on endothelium)", "Serotonin", "Histamine"],
["-", "Bradykinin", "Epinephrine"],
["-", "Norepinephrine", "Dopamine"],
["-", "PGE₁, PGE₂, PGF₂α, Leukotrienes", "PGA₁, PGA₂, PGI₂ (Prostacyclin)"],
["-", "-", "Angiotensin II, Vasopressin, Gastrin, Oxytocin"],
]
);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 — ACE / Angiotensin detail
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
contentSlide(s, "Key Example: ACE & the Renin-Angiotensin System", [
"Angiotensin-converting enzyme (ACE) is expressed on the surface of pulmonary endothelial cells",
"ACE cleaves Angiotensin I (decapeptide) → Angiotensin II (octapeptide)",
"~40% of total body ACE activity resides in the pulmonary endothelium",
"Angiotensin II is a potent vasoconstrictor and stimulates aldosterone secretion",
"The remaining ~60% of ACE is in extrapulmonary vascular endothelium",
{ sub: true, text: "ACE inhibitors (e.g. enalapril) block this step — used in hypertension and heart failure" },
"ACE also degrades bradykinin → explains dry cough side-effect of ACE inhibitors (bradykinin accumulation)",
"Mixed-function oxidation: pneumocytes also account for major extrahepatic cytochrome P450 activity"
], "Source: Guyton & Hall Medical Physiology; Boron & Boulpaep Medical Physiology");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 — SURFACTANT SYNTHESIS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "🫧", "4. Surfactant Synthesis", "Type II pneumocytes — preventing alveolar collapse");
}
{
const s = pres.addSlide();
contentSlide(s, "Surfactant Synthesis & Functions", [
"Synthesised and secreted by Type II alveolar pneumocytes (Type II cells cover ~5% of alveolar surface)",
"Main lipid component: dipalmitoyl phosphatidylcholine (DPPC)",
"Reduces alveolar surface tension at end-expiration → prevents alveolar collapse",
"Without surfactant, alveoli would require far greater effort to re-open (as in neonatal RDS)",
"Surfactant Protein A (SP-A) and SP-D: act as opsonins, activate alveolar macrophages",
{ sub: true, text: "SP-A and SP-D contribute to innate host defence in the lung" },
"Surfactant Protein B (SP-B) and SP-C: regulate the surface-active properties of the lipid layer",
{ sub: true, text: "SP-B deficiency causes fatal neonatal respiratory distress" },
"Surfactant is continually secreted, recycled and metabolised — defects cause surfactant dysfunction disorders"
], "Source: Murray & Nadel's Respiratory Medicine; Fishman's Pulmonary Diseases");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 12 — IMMUNOLOGICAL DEFENCE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "🛡️", "5. Immunological Defence", "Mucociliary clearance, macrophages & innate immunity");
}
{
const s = pres.addSlide();
twoColSlide(s,
"Lung Defence Mechanisms",
"Mucociliary Clearance",
[
"Goblet cells & submucosal glands secrete a mucous layer over airways",
"Cilia beat in coordinated waves → propels mucus toward pharynx",
"Particles 2–10 µm settle on mucus-lined walls of trachea and bronchi",
"Very small particles (<2 µm) may reach alveoli",
"Efficiency enhanced by bronchoconstriction — reduces velocity, promotes settling",
"Impaired by: smoking, viral infection, anaesthesia, post-op state"
],
"Cellular Immune Defence",
[
"Alveolar macrophages: patrol alveolar surface, phagocytose particles and pathogens",
"Neutrophils & macrophages produce reactive O₂ species (ROS) against infection",
"Dendritic cells: sample antigens → present to adaptive immune system",
"Natural killer (NK) cells present in lung interstitium",
"SP-A, SP-D: opsonise pathogens, neutralise viruses",
"IgA secreted into airway lumen — first-line mucosal immunity"
]
);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 14 — AIR CONDITIONING
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "🌡️", "6. Air Conditioning of Inspired Air", "Humidification, warming & particle filtration");
}
{
const s = pres.addSlide();
contentSlide(s, "Air Conditioning — Nose, Pharynx & Upper Airways", [
"The nasal turbinate mucosa has a surface area of ~160 cm² — large surface for conditioning",
"Inspired air is humidified to near 100% relative humidity by the time it reaches the trachea",
"Air is warmed (or cooled) to near body temperature (37°C) before reaching the lower airways",
"Nasal turbinate contours force air into narrow streams → particles impinge on mucous walls",
"Particles >10 µm are filtered by nasal hairs (vibrissae) and impaction on turbinate walls",
{ sub: true, text: "Particles 2–10 µm: settle in trachea/bronchi — cleared by mucociliary escalator" },
{ sub: true, text: "Particles <2 µm: may reach alveoli — handled by alveolar macrophages" },
"Loss of nasal function (e.g. tracheostomy) requires artificial humidification to prevent mucosal damage"
], "Source: LSU Medical Physiology; Guyton & Hall Medical Physiology");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 16 — HAEMOSTASIS (Weibel-Palade)
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "🩸", "7. Haemostatic Functions", "Weibel-Palade bodies & endothelial mediators");
}
{
const s = pres.addSlide();
contentSlide(s, "Haemostasis — Weibel-Palade Bodies & Endothelium", [
"Weibel-Palade bodies are storage organelles in pulmonary endothelial cells",
"Contain von Willebrand factor (vWF) — packed in highly organised spirals for rapid secretion",
{ sub: true, text: "vWF is critical for platelet adhesion and primary haemostasis" },
"Also store: tissue-type plasminogen activator (tPA) — promotes fibrinolysis",
"P-selectin: leukocyte adhesion molecule — stored, rapidly expressed on endothelial surface",
"Endothelin-1: potent vasoconstrictor — released by pulmonary endothelium",
"Interleukin-8 (IL-8): chemokine for neutrophil recruitment",
"High heparin content in pulmonary endothelium facilitates breakdown of trapped thrombi",
"Overall: the lung contributes to both pro-coagulant (vWF) and fibrinolytic (tPA, heparin) balance"
], "Source: Fishman's Pulmonary Diseases and Disorders");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 18 — NEUROENDOCRINE SIGNALLING
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "🧬", "8. Neuroendocrine Signalling", "Pulmonary neuroendocrine cells (PNECs)");
}
{
const s = pres.addSlide();
contentSlide(s, "Pulmonary Neuroendocrine Cells (PNECs)", [
"PNECs are scattered throughout airway epithelium — form clusters called neuroepithelial bodies (NEBs)",
"Sense O₂ levels, mechanical stimuli, and chemical changes in the airway lumen",
"Release neuropeptides and amines in response to stimuli:",
{ sub: true, text: "Serotonin (5-HT): modulates airway and vascular tone" },
{ sub: true, text: "Bombesin / GRP (gastrin-releasing peptide): lung development and repair" },
{ sub: true, text: "Calcitonin: calcium homeostasis signalling" },
{ sub: true, text: "CGRP, substance P: neuropeptide signalling" },
"Play roles in fetal lung development, post-injury repair, and airway innervation",
"PNECs are the cell of origin for small cell lung cancer (SCLC) — a paraneoplastic-rich tumour type"
], "Source: Murray & Nadel's Respiratory Medicine; Fishman's Pulmonary Diseases");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 20 — ACID-BASE BALANCE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "⚖️", "9. Acid-Base Regulation", "The lung as a rapid pH buffer");
}
{
const s = pres.addSlide();
contentSlide(s, "Acid-Base Balance — Respiratory Compensation", [
"CO₂ elimination is technically a respiratory function — but the lung is the body's fastest acid-base buffer",
"CO₂ + H₂O ⇌ H₂CO₃ ⇌ H⁺ + HCO₃⁻ — ventilation controls the CO₂ side of this equation",
"Metabolic acidosis: hyperventilation increases CO₂ elimination → raises pH",
{ sub: true, text: "Kussmaul breathing in DKA is the classic clinical example" },
"Metabolic alkalosis: hypoventilation retains CO₂ → lowers pH",
"Respiratory compensation begins within minutes — far faster than renal compensation (hours–days)",
"Normal arterial pH: 7.35–7.45 | PaCO₂: 35–45 mmHg",
"Critically: this is an active non-gas-exchange physiological role — the lung adjusts rate and depth in response to chemoreceptor input to maintain systemic homeostasis"
], "Source: Guyton & Hall Medical Physiology");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 22 — CLINICAL SIGNIFICANCE SUMMARY
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addBg(s, LIGHT_BG);
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 0.85,
fill: { color: DARK_TEAL }, line: { color: DARK_TEAL }
});
s.addText("Clinical Relevance — Why This Matters", {
x: 0.4, y: 0, w: 9.2, h: 0.85,
fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
const points = [
["ACE & Drugs", "ACE inhibitors block Ang I → Ang II conversion in the lung → antihypertensive effect; bradykinin accumulation causes dry cough"],
["ARDS / ALI", "Loss of non-respiratory functions (surfactant, barrier, macrophages) drives acute respiratory distress syndrome pathophysiology"],
["Pulmonary Embolism", "Large thromboemboli overwhelm the filtration capacity → right heart strain, haemodynamic collapse"],
["Intubation / Tracheostomy", "Bypass of nasal air conditioning → must provide humidified, warmed gases to prevent mucosal drying"],
["SCLC", "PNECs (neuroendocrine origin) → paraneoplastic syndromes (SIADH, Cushing's, Eaton-Lambert)"],
["Metastatic Cancer", "Lung filtration of circulating tumour cells → lung a common metastatic site for many solid tumours"],
];
points.forEach((p, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = 0.25 + col * 4.9;
const y = 1.0 + row * 1.5;
s.addShape(pres.shapes.RECTANGLE, {
x, y, w: 4.6, h: 1.35,
fill: { color: WHITE },
line: { color: i % 2 === 0 ? DARK_TEAL : ACCENT, width: 2 },
});
s.addShape(pres.shapes.RECTANGLE, {
x, y, w: 1.5, h: 0.38,
fill: { color: i % 2 === 0 ? DARK_TEAL : MID_TEAL },
line: { color: i % 2 === 0 ? DARK_TEAL : MID_TEAL }
});
s.addText(p[0], {
x, y, w: 1.5, h: 0.38,
fontSize: 11, bold: true, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle"
});
s.addText(p[1], {
x: x + 0.1, y: y + 0.42, w: 4.4, h: 0.85,
fontSize: 11.5, color: DARK_TEXT, fontFace: "Calibri"
});
});
accentBar(s, ACCENT);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 23 — FINAL SUMMARY / THANK YOU
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addBg(s, DARK_TEAL);
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 0.18, h: 5.625,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addShape(pres.shapes.OVAL, {
x: 7.0, y: -0.5, w: 3.8, h: 3.8,
fill: { color: MID_TEAL }, line: { color: MID_TEAL }
});
s.addShape(pres.shapes.OVAL, {
x: 8.0, y: 3.5, w: 2.2, h: 2.2,
fill: { color: "0B3D47" }, line: { color: "0B3D47" }
});
s.addText("Summary", {
x: 0.5, y: 0.5, w: 6.0, h: 0.6,
fontSize: 30, bold: true, color: ACCENT, fontFace: "Calibri", charSpacing: 2
});
const summaryItems = [
{ text: "Blood Filtration — sieve for emboli before left heart", options: { bullet: true, fontSize: 15, color: WHITE, fontFace: "Calibri", breakLine: true, paraSpaceAfter: 5 } },
{ text: "Blood Reservoir — ~500 mL buffer for LV preload", options: { bullet: true, fontSize: 15, color: WHITE, fontFace: "Calibri", breakLine: true, paraSpaceAfter: 5 } },
{ text: "Metabolic — ACE activation, inactivation of serotonin, bradykinin, PGs", options: { bullet: true, fontSize: 15, color: WHITE, fontFace: "Calibri", breakLine: true, paraSpaceAfter: 5 } },
{ text: "Surfactant — Type II pneumocytes reduce alveolar surface tension", options: { bullet: true, fontSize: 15, color: WHITE, fontFace: "Calibri", breakLine: true, paraSpaceAfter: 5 } },
{ text: "Immune Defence — mucociliary clearance + alveolar macrophages", options: { bullet: true, fontSize: 15, color: WHITE, fontFace: "Calibri", breakLine: true, paraSpaceAfter: 5 } },
{ text: "Air Conditioning — humidification, warming, particle filtration", options: { bullet: true, fontSize: 15, color: WHITE, fontFace: "Calibri", breakLine: true, paraSpaceAfter: 5 } },
{ text: "Haemostasis — vWF, tPA, P-selectin (Weibel-Palade bodies)", options: { bullet: true, fontSize: 15, color: WHITE, fontFace: "Calibri", breakLine: true, paraSpaceAfter: 5 } },
{ text: "Neuroendocrine — PNECs secrete serotonin, bombesin, calcitonin", options: { bullet: true, fontSize: 15, color: WHITE, fontFace: "Calibri", breakLine: true, paraSpaceAfter: 5 } },
{ text: "Acid-Base — fastest buffer system via CO₂ ventilation control", options: { bullet: true, fontSize: 15, color: WHITE, fontFace: "Calibri", breakLine: false } },
];
s.addText(summaryItems, {
x: 0.5, y: 1.2, w: 6.5, h: 4.1, valign: "top", margin: [4, 8, 4, 8]
});
s.addText("The lung is not merely a bellows.\nIt is a metabolic, immune, and haemodynamic organ.", {
x: 0.5, y: 4.6, w: 9.0, h: 0.85,
fontSize: 13, color: ACCENT, fontFace: "Calibri", italic: true
});
accentBar(s, ACCENT);
}
// ── WRITE FILE ──────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/lung-nonrespiratory-ppt/Non_Respiratory_Functions_of_Lung.pptx" })
.then(() => console.log("✅ PPT saved successfully"))
.catch(err => { console.error("❌ Error:", err); process.exit(1); });
cd /home/daytona/workspace/lung-nonrespiratory-ppt && node build.js
ls -lh /home/daytona/workspace/lung-nonrespiratory-ppt/
Non Respiratory Functions of Lung
Presentation · PPTX
| # | Slide |
|---|---|
| 1 | Title slide |
| 2 | Overview — all 9 functions at a glance (card grid layout) |
| 3–4 | Blood Filtration |
| 5–6 | Blood Reservoir |
| 7–9 | Metabolic & Biochemical Functions (incl. mediator handling table + ACE detail) |
| 10–11 | Surfactant Synthesis |
| 12–13 | Immunological Defence (two-column: mucociliary vs. cellular) |
| 14–15 | Air Conditioning |
| 16–17 | Haemostatic Functions / Weibel-Palade bodies |
| 18–19 | Neuroendocrine Signalling (PNECs) |
| 20–21 | Acid-Base Regulation |
| 22 | Clinical Relevance (ACE inhibitors, ARDS, PE, SCLC, metastases) |
| 23 | Summary + closing quote |