kindly make a ppt of preanaesthetic check up

Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Running Command

ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"

Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Reading File
Reading File
Reading File
Running Command

mkdir -p /home/daytona/workspace/preanaesthetic-ppt

Writing File

~/preanaesthetic-ppt/build.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Pre-Anaesthetic Check Up";
pres.author = "Orris Medical";

// ─── COLOUR PALETTE ───
const C = {
  navy:      "0B1F4B",  // dominant dark
  teal:      "0E7C7B",  // accent
  tealLight: "16A59B",
  sky:       "E8F6F5",  // light background
  white:     "FFFFFF",
  amber:     "F4A235",  // highlight accent
  amber2:    "FDE9C6",
  text:      "1A1A2E",
  grey:      "6B7280",
  greyLight: "F3F4F6",
  red:       "C0392B",
};

// ─── HELPERS ───
function addTitleBar(slide, title, subtitle) {
  // Dark navy header band
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.1, fill: { color: C.navy }, line: { color: C.navy } });
  slide.addText(title, { x: 0.35, y: 0.1, w: 9.3, h: 0.75, fontSize: 24, bold: true, color: C.white, fontFace: "Calibri", valign: "middle" });
  if (subtitle) {
    slide.addText(subtitle, { x: 0.35, y: 0.78, w: 9.3, h: 0.32, fontSize: 11, color: C.tealLight, fontFace: "Calibri", italic: true });
  }
}

function addFooter(slide, src) {
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 5.35, w: 10, h: 0.27, fill: { color: C.navy }, line: { color: C.navy } });
  slide.addText(src || "Source: Miller's Anesthesia 10e | Morgan & Mikhail's Clinical Anesthesiology 7e", {
    x: 0.2, y: 5.36, w: 9.6, h: 0.22, fontSize: 7.5, color: C.sky, fontFace: "Calibri", italic: true, align: "left",
  });
}

function bullet(text, sub) {
  const items = [{ text, options: { bullet: { code: "25CF", color: C.teal }, bold: false, breakLine: !sub } }];
  if (sub) items.push({ text: "", options: { breakLine: true } });
  return items;
}

function sectionDivider(slide, num, label) {
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.navy }, line: { color: C.navy } });
  slide.addShape(pres.ShapeType.rect, { x: 0.5, y: 2.0, w: 9, h: 0.08, fill: { color: C.teal }, line: { color: C.teal } });
  slide.addText(`Section ${num}`, { x: 0.5, y: 0.9, w: 9, h: 0.6, fontSize: 18, color: C.tealLight, fontFace: "Calibri", bold: false, align: "center" });
  slide.addText(label, { x: 0.5, y: 2.25, w: 9, h: 1.1, fontSize: 38, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
}

function card(slide, x, y, w, h, headerTxt, bullets, headerColor) {
  headerColor = headerColor || C.teal;
  slide.addShape(pres.ShapeType.roundRect, { x, y, w, h, fill: { color: C.greyLight }, line: { color: headerColor, pt: 1.5 }, rectRadius: 0.06 });
  slide.addShape(pres.ShapeType.rect, { x, y, w, h: 0.38, fill: { color: headerColor }, line: { color: headerColor } });
  slide.addText(headerTxt, { x: x + 0.08, y: y + 0.02, w: w - 0.16, h: 0.34, fontSize: 11, bold: true, color: C.white, fontFace: "Calibri", valign: "middle" });
  const items = bullets.map((b, i) => ({
    text: b,
    options: { bullet: { code: "25B8", color: headerColor }, fontSize: 9.5, color: C.text, fontFace: "Calibri", breakLine: i < bullets.length - 1 },
  }));
  slide.addText(items, { x: x + 0.1, y: y + 0.42, w: w - 0.2, h: h - 0.48, valign: "top", shrinkText: true });
}

// ─────────────────────────────────────────
// SLIDE 1 – TITLE
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.navy }, line: { color: C.navy } });
  // Decorative teal accent strip
  s.addShape(pres.ShapeType.rect, { x: 0, y: 4.6, w: 10, h: 1.025, fill: { color: C.teal }, line: { color: C.teal } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 4.55, w: 10, h: 0.1, fill: { color: C.amber }, line: { color: C.amber } });

  s.addText("Pre-Anaesthetic", { x: 0.6, y: 1.0, w: 8.8, h: 0.85, fontSize: 48, bold: true, color: C.white, fontFace: "Calibri", align: "center" });
  s.addText("Check Up", { x: 0.6, y: 1.8, w: 8.8, h: 0.85, fontSize: 48, bold: true, color: C.amber, fontFace: "Calibri", align: "center" });
  s.addText("A Complete Clinical Approach for Safe Anaesthesia", {
    x: 0.6, y: 2.75, w: 8.8, h: 0.5, fontSize: 16, color: C.sky, fontFace: "Calibri", align: "center", italic: true,
  });
  s.addText("Based on Miller's Anesthesia 10e | Morgan & Mikhail 7e | Schwartz's Surgery 11e", {
    x: 0.6, y: 4.65, w: 8.8, h: 0.38, fontSize: 10, color: C.white, fontFace: "Calibri", align: "center",
  });
}

// ─────────────────────────────────────────
// SLIDE 2 – OVERVIEW / OBJECTIVES
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "Overview & Objectives", "What is a Pre-Anaesthetic Check Up?");

  s.addText(
    "A pre-anaesthetic check up (PAC) is a systematic evaluation of a patient before surgery/procedure to assess fitness for anaesthesia, optimise medical conditions, formulate the anaesthetic plan, and reduce perioperative risk.",
    { x: 0.35, y: 1.18, w: 9.3, h: 0.7, fontSize: 12, color: C.text, fontFace: "Calibri", italic: false }
  );

  const goals = [
    ["Identify Risk Factors", "Uncover comorbidities that alter anaesthetic management"],
    ["Optimise Patient", "Treat reversible conditions before surgery"],
    ["Formulate Anaesthetic Plan", "Choose GA / regional / MAC; airway strategy"],
    ["Obtain Informed Consent", "Explain anaesthetic risks and options"],
    ["Reduce Cancellations", "Fewer day-of-surgery postponements and avoidable complications"],
    ["Establish Baseline", "Reference values for intraoperative monitoring"],
  ];

  const cols = [0, 1, 2, 3, 4, 5];
  const xs = [0.35, 3.47, 6.6, 0.35, 3.47, 6.6];
  const ys = [1.98, 1.98, 1.98, 3.42, 3.42, 3.42];
  const W = 2.9; const H = 1.25;

  goals.forEach(([title, desc], i) => {
    const x = xs[i]; const y = ys[i];
    s.addShape(pres.ShapeType.roundRect, { x, y, w: W, h: H, fill: { color: C.white }, line: { color: C.teal, pt: 1.2 }, rectRadius: 0.07 });
    s.addShape(pres.ShapeType.rect, { x, y, w: W, h: 0.35, fill: { color: C.teal }, line: { color: C.teal } });
    s.addText(title, { x: x + 0.08, y: y + 0.02, w: W - 0.16, h: 0.31, fontSize: 10, bold: true, color: C.white, fontFace: "Calibri", valign: "middle" });
    s.addText(desc, { x: x + 0.08, y: y + 0.38, w: W - 0.16, h: H - 0.48, fontSize: 9.5, color: C.text, fontFace: "Calibri", valign: "top" });
  });

  addFooter(s);
}

// ─────────────────────────────────────────
// SLIDE 3 – SECTION DIVIDER: HISTORY
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  sectionDivider(s, "01", "Medical History");
}

// ─────────────────────────────────────────
// SLIDE 4 – COMPONENTS OF MEDICAL HISTORY
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "Medical History", "Cornerstone of Pre-Anaesthetic Evaluation");

  const cards = [
    { x: 0.3, y: 1.18, w: 3.0, h: 2.0, hdr: "Chief Complaint & Surgical Indication", items: ["Nature of planned surgery", "Urgency: elective vs emergency", "Related prior therapies / treatments"] },
    { x: 3.5, y: 1.18, w: 3.0, h: 2.0, hdr: "Past Medical History", items: ["Hypertension, diabetes, IHD", "COPD, asthma, OSA", "Renal, hepatic, neurologic disease", "Severity, stability, recent exacerbations"] },
    { x: 6.7, y: 1.18, w: 3.0, h: 2.0, hdr: "Past Surgical & Anaesthetic Hx", items: ["Previous surgeries & dates", "Type of anaesthesia used", "Complications: difficult airway, MH", "Excessive sore throat / dental injury"] },
    { x: 0.3, y: 3.3, w: 3.0, h: 2.0, hdr: "Drug & Allergy History", items: ["All prescription & OTC medications", "Herbal supplements, aspirin", "Drug allergies + type of reaction", "Recent steroids (last 1 year)"] },
    { x: 3.5, y: 3.3, w: 3.0, h: 2.0, hdr: "Social History", items: ["Smoking: pack-years", "Alcohol: units/week", "Illicit drug use", "Functional capacity (METs)"] },
    { x: 6.7, y: 3.3, w: 3.0, h: 2.0, hdr: "Family History", items: ["Malignant hyperthermia", "Pseudocholinesterase deficiency", "Bleeding disorders", "Adverse anaesthetic reactions"] },
  ];

  cards.forEach(c => card(s, c.x, c.y, c.w, c.h, c.hdr, c.items));
  addFooter(s);
}

// ─────────────────────────────────────────
// SLIDE 5 – SECTION DIVIDER: PHYSICAL EXAM
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  sectionDivider(s, "02", "Physical Examination");
}

// ─────────────────────────────────────────
// SLIDE 6 – PHYSICAL EXAMINATION
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "Physical Examination", "Systematic Head-to-Toe Assessment");

  const left = [
    ["General", "Vitals: BP, HR, RR, SpO₂, Temp, weight/height, BMI"],
    ["Airway (PARAMOUNT)", "Mouth opening, thyromental distance, Mallampati grade, neck mobility, dentition, jaw protrusion"],
    ["Cardiovascular", "Heart sounds, murmurs, JVP, peripheral pulses, oedema"],
    ["Respiratory", "Air entry, wheeze, crackles, chest deformity"],
  ];
  const right = [
    ["Neurological", "Level of consciousness, deficits, autonomic neuropathy"],
    ["Abdomen", "Organomegaly, ascites, surgical site assessment"],
    ["Spine / Regional", "Scoliosis, previous spinal surgery, skin infection at injection site"],
    ["Limbs & Access", "Venous access sites, arteriovenous fistulae"],
  ];

  function sysRow(s, items, x, yStart) {
    items.forEach(([sys, detail], i) => {
      const y = yStart + i * 0.88;
      s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.55, h: 0.8, fill: { color: C.white }, line: { color: C.teal, pt: 1 }, rectRadius: 0.05 });
      s.addText([
        { text: sys + " - ", options: { bold: true, color: C.teal, fontSize: 10, fontFace: "Calibri" } },
        { text: detail, options: { bold: false, color: C.text, fontSize: 9.5, fontFace: "Calibri" } },
      ], { x: x + 0.1, y: y + 0.08, w: 4.35, h: 0.64, valign: "top", shrinkText: true });
    });
  }

  sysRow(s, left, 0.25, 1.22);
  sysRow(s, right, 5.2, 1.22);
  addFooter(s);
}

// ─────────────────────────────────────────
// SLIDE 7 – AIRWAY ASSESSMENT (dedicated)
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "Airway Assessment", "The Most Critical Component of Pre-Anaesthetic Evaluation");

  // Mallampati
  s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.18, w: 4.5, h: 3.85, fill: { color: C.white }, line: { color: C.teal, pt: 1.5 }, rectRadius: 0.07 });
  s.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.18, w: 4.5, h: 0.38, fill: { color: C.teal }, line: { color: C.teal } });
  s.addText("Mallampati Classification", { x: 0.38, y: 1.2, w: 4.3, h: 0.34, fontSize: 11, bold: true, color: C.white, fontFace: "Calibri" });
  const mp = [
    ["Class I", "Soft palate, uvula, fauces, tonsillar pillars visible"],
    ["Class II", "Soft palate, uvula, fauces visible"],
    ["Class III", "Soft palate and base of uvula visible"],
    ["Class IV", "Only hard palate visible – highest risk"],
  ];
  const mpColors = [C.teal, C.tealLight, C.amber, C.red];
  mp.forEach(([cls, desc], i) => {
    const y = 1.68 + i * 0.82;
    s.addShape(pres.ShapeType.roundRect, { x: 0.45, y, w: 4.2, h: 0.72, fill: { color: i === 3 ? "#FDECEA" : C.greyLight }, line: { color: mpColors[i], pt: 1.2 }, rectRadius: 0.04 });
    s.addText([
      { text: cls + "  ", options: { bold: true, color: mpColors[i], fontSize: 10.5, fontFace: "Calibri" } },
      { text: desc, options: { bold: false, color: C.text, fontSize: 9.5, fontFace: "Calibri" } },
    ], { x: 0.55, y: y + 0.1, w: 4.0, h: 0.52, valign: "middle", shrinkText: true });
  });

  // Right panel – predictors of difficult airway
  s.addShape(pres.ShapeType.roundRect, { x: 5.2, y: 1.18, w: 4.5, h: 3.85, fill: { color: C.white }, line: { color: C.amber, pt: 1.5 }, rectRadius: 0.07 });
  s.addShape(pres.ShapeType.rect, { x: 5.2, y: 1.18, w: 4.5, h: 0.38, fill: { color: C.amber }, line: { color: C.amber } });
  s.addText("Predictors of Difficult Airway", { x: 5.28, y: 1.2, w: 4.3, h: 0.34, fontSize: 11, bold: true, color: C.white, fontFace: "Calibri" });
  const predictors = [
    "Thyromental distance < 6 cm (3 finger breadths)",
    "Mouth opening < 3 cm (inter-incisor gap)",
    "Neck: limited extension / short / thick neck",
    "Buck teeth / prominent upper incisors",
    "Mallampati Class III or IV",
    "Retrognathia / micrognathia",
    "Previous neck surgery / radiotherapy",
    "Obesity (BMI > 35) or pregnancy",
    "Acromegaly / ankylosing spondylitis / RA",
    "LEMON rule: Look, Evaluate, Mallampati, Obstruction, Neck mobility",
  ];
  const pItems = predictors.map((p, i) => ({
    text: p,
    options: { bullet: { code: "25B8", color: C.amber }, fontSize: 9.5, color: C.text, fontFace: "Calibri", breakLine: i < predictors.length - 1 },
  }));
  s.addText(pItems, { x: 5.3, y: 1.62, w: 4.3, h: 3.35, valign: "top", shrinkText: true });

  addFooter(s);
}

// ─────────────────────────────────────────
// SLIDE 8 – SECTION DIVIDER: INVESTIGATIONS
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  sectionDivider(s, "03", "Investigations");
}

// ─────────────────────────────────────────
// SLIDE 9 – ROUTINE INVESTIGATIONS
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "Pre-Operative Investigations", "Ordered Based on Clinical Indication – Not Routine Blanket Testing");

  const investigations = [
    { hdr: "Haematological", color: C.teal, items: ["CBC / Full blood count", "Blood group & cross-match", "Coagulation profile (PT, aPTT, INR)", "Peripheral blood smear if anaemia"] },
    { hdr: "Biochemistry", color: C.tealLight, items: ["Serum electrolytes (Na⁺, K⁺, Cl⁻)", "Blood glucose / HbA1c", "Renal function (urea, creatinine)", "Liver function tests", "Serum albumin"] },
    { hdr: "Cardiovascular", color: C.amber, items: ["12-lead ECG (age > 40, cardiac Hx)", "Chest X-ray (cardiac/pulmonary disease)", "Echocardiography if valvular disease / CCF", "Stress testing if poor functional capacity"] },
    { hdr: "Respiratory", color: C.navy, items: ["CXR (if respiratory disease)", "Pulmonary function tests (COPD / asthma)", "ABG (severe respiratory compromise)", "SpO₂ baseline"] },
    { hdr: "Special Tests", color: "#8B5CF6", items: ["Thyroid function (thyroid disease)", "Urine routine & microscopy", "Pregnancy test (females of childbearing age)", "Sickle cell screening if indicated"] },
    { hdr: "Imaging / Specialist", color: C.grey, items: ["MRI spine / brain if neurological", "Carotid Doppler if carotid Hx", "Cardiology / respiratory consult", "Haematology consult if coagulopathy"] },
  ];

  const xs2 = [0.3, 3.5, 6.7, 0.3, 3.5, 6.7];
  const ys2 = [1.18, 1.18, 1.18, 3.3, 3.3, 3.3];

  investigations.forEach((inv, i) => {
    card(s, xs2[i], ys2[i], 3.0, 2.0, inv.hdr, inv.items, inv.color);
  });

  addFooter(s);
}

// ─────────────────────────────────────────
// SLIDE 10 – SECTION DIVIDER: ASA CLASSIFICATION
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  sectionDivider(s, "04", "ASA Classification");
}

// ─────────────────────────────────────────
// SLIDE 11 – ASA PHYSICAL STATUS
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "ASA Physical Status Classification", "American Society of Anesthesiologists – Perioperative Risk Stratification");

  const asaData = [
    { cls: "ASA I",   color: "#16A34A", bg: "#F0FDF4", def: "Normal, healthy patient",                       ex: "No organic, physiological, biochemical or psychiatric disturbance" },
    { cls: "ASA II",  color: C.teal,   bg: "#E8F6F5", def: "Mild systemic disease",                         ex: "Mild DM or HTN, BMI 30–40, current smoker, social alcohol use, pregnancy" },
    { cls: "ASA III", color: C.amber,  bg: "#FEF9EF", def: "Severe systemic disease",                       ex: "Poorly controlled DM/HTN, morbid obesity (BMI ≥ 40), ESRD on dialysis, COPD, CABG > 3 months" },
    { cls: "ASA IV",  color: "#DC2626", bg: "#FEF2F2", def: "Severe disease – constant threat to life",     ex: "MI/CVA < 3 months, ongoing cardiac ischaemia, severe valve dysfunction, sepsis, ARDS" },
    { cls: "ASA V",   color: C.navy,   bg: "#EEF2FF", def: "Moribund – not expected to survive without surgery", ex: "Ruptured AAA, massive trauma, intracranial bleed with raised ICP, ischaemic bowel" },
    { cls: "ASA VI",  color: C.grey,   bg: C.greyLight, def: "Brain-dead – organ donation",                ex: "Organs being removed for donor purposes" },
  ];

  asaData.forEach((a, i) => {
    const col = i < 3 ? 0 : 1;
    const row = i % 3;
    const x = col === 0 ? 0.3 : 5.2;
    const y = 1.22 + row * 1.33;
    const w = 4.55; const h = 1.2;

    s.addShape(pres.ShapeType.roundRect, { x, y, w, h, fill: { color: a.bg }, line: { color: a.color, pt: 1.8 }, rectRadius: 0.06 });
    s.addShape(pres.ShapeType.roundRect, { x: x + 0.06, y: y + 0.08, w: 0.82, h: 0.38, fill: { color: a.color }, line: { color: a.color }, rectRadius: 0.04 });
    s.addText(a.cls, { x: x + 0.06, y: y + 0.08, w: 0.82, h: 0.38, fontSize: 9.5, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
    s.addText(a.def, { x: x + 0.96, y: y + 0.08, w: w - 1.05, h: 0.38, fontSize: 10, bold: true, color: a.color, fontFace: "Calibri", valign: "middle" });
    s.addText(a.ex, { x: x + 0.1, y: y + 0.52, w: w - 0.2, h: 0.6, fontSize: 8.8, color: C.text, fontFace: "Calibri", valign: "top", shrinkText: true });
  });

  s.addText("Add 'E' suffix for emergency surgery (e.g., ASA III-E)", {
    x: 0.3, y: 5.22, w: 9.4, h: 0.2, fontSize: 9, italic: true, color: C.grey, fontFace: "Calibri", align: "center",
  });
  addFooter(s, "Source: Miller's Anesthesia 10e, Table 28.17 | Schwartz's Surgery 11e");
}

// ─────────────────────────────────────────
// SLIDE 12 – SECTION DIVIDER: SPECIFIC SYSTEMS
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  sectionDivider(s, "05", "System-Based Risk Assessment");
}

// ─────────────────────────────────────────
// SLIDE 13 – CARDIOVASCULAR ASSESSMENT
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "Cardiovascular Risk Assessment", "ACC/AHA Stepwise Approach to Perioperative Cardiac Evaluation");

  const leftItems = [
    "Determine urgency of surgery – if emergency, proceed",
    "Check for active cardiac conditions: unstable coronary syndrome, decompensated HF, significant arrhythmia, severe valvular disease",
    "If active condition present → evaluate and treat before elective surgery",
    "Assess surgical risk: low (<1%), intermediate (1–5%), high (>5%)",
    "Estimate Functional Capacity in METs:",
    "  ≥ 4 METs (climb stairs, brisk walk) → proceed without testing",
    "  < 4 METs or unknown → consider further evaluation",
    "Consider stress testing only if results change management",
  ];

  const lItems = leftItems.map((t, i) => ({
    text: t,
    options: { bullet: t.startsWith(" ") ? { indent: 540000 } : { code: "25CF", color: C.teal }, fontSize: 10, color: C.text, fontFace: "Calibri", breakLine: i < leftItems.length - 1 },
  }));
  s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.18, w: 5.3, h: 4.1, fill: { color: C.white }, line: { color: C.teal, pt: 1.2 }, rectRadius: 0.06 });
  s.addText(lItems, { x: 0.42, y: 1.28, w: 5.1, h: 3.95, valign: "top", shrinkText: true });

  const rightCards = [
    { hdr: "RCRI – Lee Index", items: ["High-risk surgery", "IHD (history of MI or Q waves)", "CCF history", "Cerebrovascular disease", "Insulin-dependent diabetes", "Creatinine > 2 mg/dL", "Score ≥ 3 → high cardiac risk"], c: C.amber },
    { hdr: "Active Cardiac Conditions", items: ["Unstable angina", "Recent MI (< 30 days)", "Decompensated heart failure", "Significant arrhythmias (3° AVB, SVT)", "Severe valvular disease (AS, MS)"], c: C.red },
  ];
  rightCards.forEach((rc, i) => {
    card(s, 5.85, 1.18 + i * 2.1, 3.85, 1.95, rc.hdr, rc.items, rc.c);
  });

  addFooter(s, "Source: ACC/AHA Guidelines | Morgan & Mikhail 7e | Miller's Anesthesia 10e");
}

// ─────────────────────────────────────────
// SLIDE 14 – RESPIRATORY & OTHER SYSTEMS
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "Respiratory, Renal, Hepatic & Endocrine Assessment");

  const blocks = [
    { hdr: "Respiratory", x: 0.3, y: 1.18, w: 4.55, h: 2.05, c: C.teal, items: [
      "Identify COPD, asthma, OSA, restrictive disease",
      "Spirometry if severe: FEV₁, FVC, FEV₁/FVC ratio",
      "Optimise bronchodilators pre-op; continue inhalers",
      "OSA: STOP-BANG score; plan post-op monitoring",
      "Smoking cessation ≥ 8 weeks before surgery",
      "CXR if cardiopulmonary disease suspected",
    ]},
    { hdr: "Renal", x: 5.15, y: 1.18, w: 4.55, h: 2.05, c: C.tealLight, items: [
      "Baseline creatinine, eGFR, electrolytes",
      "CKD: plan nephroprotective strategy",
      "Avoid NSAIDs & nephrotoxic drugs peri-op",
      "ESRD on haemodialysis: schedule day before surgery",
      "Risk of AKI: contrast, hypotension, aminoglycosides",
    ]},
    { hdr: "Hepatic", x: 0.3, y: 3.35, w: 4.55, h: 2.05, c: C.amber, items: [
      "LFTs, PT/INR, albumin, bilirubin",
      "Child-Pugh or MELD score for cirrhosis",
      "Coagulopathy: consider FFP / vitamin K",
      "Avoid enflurane; use isoflurane/sevoflurane",
      "Altered drug metabolism and protein binding",
    ]},
    { hdr: "Endocrine & Metabolic", x: 5.15, y: 3.35, w: 4.55, h: 2.05, c: "#8B5CF6", items: [
      "Diabetes: blood glucose, HbA1c; hold metformin",
      "Target glucose 140–180 mg/dL peri-operatively",
      "Thyroid: ensure euthyroid state before elective surgery",
      "Adrenal insufficiency: steroid cover protocol",
      "Phaeochromocytoma: alpha-block before surgery",
    ]},
  ];

  blocks.forEach(b => card(s, b.x, b.y, b.w, b.h, b.hdr, b.items, b.c));
  addFooter(s);
}

// ─────────────────────────────────────────
// SLIDE 15 – SECTION DIVIDER: DRUG MANAGEMENT
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  sectionDivider(s, "06", "Drug Management");
}

// ─────────────────────────────────────────
// SLIDE 16 – PERIOPERATIVE DRUG MANAGEMENT
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "Perioperative Drug Management", "Continue, Withhold, or Modify?");

  const drugData = [
    { drug: "Antihypertensives (BB, CCB)", action: "CONTINUE", color: "#16A34A", note: "Abrupt withdrawal → rebound hypertension / tachycardia" },
    { drug: "ACE Inhibitors / ARBs", action: "OMIT on day of surgery", color: C.amber, note: "Associated with intraoperative hypotension" },
    { drug: "Metformin", action: "WITHHOLD 24–48 h pre-op", color: C.amber, note: "Risk of lactic acidosis with contrast / haemodynamic instability" },
    { drug: "Insulin", action: "ADJUST", color: C.teal, note: "Half or two-thirds of long-acting dose on day of surgery; monitor glucose" },
    { drug: "Anticoagulants (warfarin)", action: "WITHHOLD / BRIDGE", color: "#DC2626", note: "Stop 5 days pre-op; bridge with LMWH if high thromboembolic risk" },
    { drug: "Antiplatelet (aspirin)", action: "CASE-SPECIFIC", color: C.amber, note: "Continue for high CV risk; stop 7 days before high-bleed surgery" },
    { drug: "Statins", action: "CONTINUE", color: "#16A34A", note: "Cardioprotective; abrupt discontinuation increases cardiac risk" },
    { drug: "Steroids (chronic)", action: "STRESS DOSE", color: "#8B5CF6", note: "Adrenal suppression: hydrocortisone 25–100 mg IV peri-op" },
    { drug: "SSRIs / SNRIs", action: "CONTINUE", color: "#16A34A", note: "Abrupt withdrawal → serotonin discontinuation syndrome" },
    { drug: "Herbal supplements", action: "WITHHOLD ≥ 2 weeks", color: C.amber, note: "Ginkgo, garlic, ginseng, St John's Wort: antiplatelet, drug interactions" },
  ];

  const ROW_H = 0.4;
  const HDR_Y = 1.18;
  // Header row
  s.addShape(pres.ShapeType.rect, { x: 0.3, y: HDR_Y, w: 9.4, h: 0.38, fill: { color: C.navy }, line: { color: C.navy } });
  [["Drug / Class", 2.5], ["Action", 1.8], ["Rationale", 4.8]].forEach(([txt, w], ci) => {
    const x = ci === 0 ? 0.38 : ci === 1 ? 2.98 : 4.88;
    s.addText(txt, { x, y: HDR_Y + 0.04, w, h: 0.3, fontSize: 9.5, bold: true, color: C.white, fontFace: "Calibri" });
  });

  drugData.forEach((d, i) => {
    const y = HDR_Y + 0.38 + i * ROW_H;
    const bg = i % 2 === 0 ? C.white : C.greyLight;
    s.addShape(pres.ShapeType.rect, { x: 0.3, y, w: 9.4, h: ROW_H, fill: { color: bg }, line: { color: "#D1D5DB", pt: 0.5 } });
    s.addText(d.drug, { x: 0.38, y: y + 0.04, w: 2.5, h: ROW_H - 0.08, fontSize: 8.8, color: C.text, fontFace: "Calibri", valign: "middle" });
    s.addShape(pres.ShapeType.roundRect, { x: 3.0, y: y + 0.06, w: 1.75, h: 0.28, fill: { color: d.color }, line: { color: d.color }, rectRadius: 0.04 });
    s.addText(d.action, { x: 3.0, y: y + 0.06, w: 1.75, h: 0.28, fontSize: 7.5, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
    s.addText(d.note, { x: 4.88, y: y + 0.04, w: 4.74, h: ROW_H - 0.08, fontSize: 8.5, color: C.text, fontFace: "Calibri", valign: "middle", shrinkText: true });
  });

  addFooter(s);
}

// ─────────────────────────────────────────
// SLIDE 17 – NPO GUIDELINES & CONSENT
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "NPO Guidelines & Informed Consent", "Fasting Rules and Consent Components");

  // NPO Panel
  s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.18, w: 4.55, h: 4.1, fill: { color: C.white }, line: { color: C.teal, pt: 1.5 }, rectRadius: 0.07 });
  s.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.18, w: 4.55, h: 0.4, fill: { color: C.teal }, line: { color: C.teal } });
  s.addText("NPO (Nil Per Os) Fasting Guidelines", { x: 0.38, y: 1.2, w: 4.35, h: 0.36, fontSize: 11, bold: true, color: C.white, fontFace: "Calibri" });

  const npoData = [
    ["Clear fluids (water, clear juice)", "2 hours"],
    ["Breast milk", "4 hours"],
    ["Formula / non-human milk", "6 hours"],
    ["Light meal (toast, clear fluid)", "6 hours"],
    ["Heavy/fatty meal", "8 hours"],
    ["Chewing gum / candy", "2 hours – treat as clear fluid"],
    ["Oral medications", "Take with sips of water"],
    ["Gastric acid prophylaxis", "Consider ranitidine / PPI for high-risk patients"],
  ];
  npoData.forEach(([item, rule], i) => {
    const y = 1.68 + i * 0.45;
    s.addShape(pres.ShapeType.rect, { x: 0.35, y, w: 4.45, h: 0.4, fill: { color: i % 2 === 0 ? C.greyLight : C.white }, line: { color: "#D1D5DB", pt: 0.3 } });
    s.addText(item, { x: 0.42, y: y + 0.06, w: 2.8, h: 0.28, fontSize: 9, color: C.text, fontFace: "Calibri", valign: "middle" });
    s.addShape(pres.ShapeType.roundRect, { x: 3.3, y: y + 0.06, w: 1.4, h: 0.28, fill: { color: C.teal }, line: { color: C.teal }, rectRadius: 0.04 });
    s.addText(rule, { x: 3.3, y: y + 0.06, w: 1.4, h: 0.28, fontSize: 8, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
  });
  s.addText("ASA 2023 NPO Guidelines", { x: 0.35, y: 5.05, w: 4.45, h: 0.2, fontSize: 7.5, color: C.grey, fontFace: "Calibri", italic: true });

  // Consent Panel
  s.addShape(pres.ShapeType.roundRect, { x: 5.15, y: 1.18, w: 4.55, h: 4.1, fill: { color: C.white }, line: { color: C.amber, pt: 1.5 }, rectRadius: 0.07 });
  s.addShape(pres.ShapeType.rect, { x: 5.15, y: 1.18, w: 4.55, h: 0.4, fill: { color: C.amber }, line: { color: C.amber } });
  s.addText("Informed Consent – Key Elements", { x: 5.23, y: 1.2, w: 4.35, h: 0.36, fontSize: 11, bold: true, color: C.white, fontFace: "Calibri" });

  const consentItems = [
    "Type of anaesthesia proposed (GA, regional, MAC)",
    "Benefits of the planned anaesthetic approach",
    "Material risks: awareness, allergy, anaphylaxis, cardiovascular events",
    "Airway management: intubation, LMA, tracheostomy",
    "Regional risks: nerve injury, haematoma, failure",
    "Alternative anaesthetic techniques",
    "Post-op analgesia options (PCA, nerve block, epidural)",
    "PONV risk and preventive strategies",
    "ICU admission if indicated",
    "Patient must be competent and consent given freely",
  ];
  const cItems = consentItems.map((c, i) => ({
    text: c,
    options: { bullet: { code: "25B8", color: C.amber }, fontSize: 9.5, color: C.text, fontFace: "Calibri", breakLine: i < consentItems.length - 1 },
  }));
  s.addText(cItems, { x: 5.23, y: 1.65, w: 4.35, h: 3.55, valign: "top", shrinkText: true });

  addFooter(s, "Source: ASA NPO Guidelines 2023 | Morgan & Mikhail 7e");
}

// ─────────────────────────────────────────
// SLIDE 18 – SECTION DIVIDER: ANAESTHETIC PLAN
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  sectionDivider(s, "07", "Anaesthetic Plan");
}

// ─────────────────────────────────────────
// SLIDE 19 – ANAESTHETIC PLAN
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "Formulating the Anaesthetic Plan", "Key Decisions Based on Pre-Anaesthetic Findings");

  const planCards = [
    { hdr: "Choice of Anaesthesia", items: ["General anaesthesia (GA)", "Neuraxial: spinal / epidural", "Regional: peripheral nerve block", "Monitored anaesthesia care (MAC)", "Combined techniques"], c: C.teal },
    { hdr: "Airway Management Plan", items: ["Routine oral intubation (RSI if risk of aspiration)", "Video laryngoscopy if difficult airway predicted", "Awake fibreoptic intubation", "Supraglottic airway (LMA)", "Surgical airway plan (failed airway)"], c: C.amber },
    { hdr: "Induction & Maintenance", items: ["Induction: propofol, thiopentone, ketamine", "Maintenance: inhalational (sevo, iso) or TIVA", "Neuromuscular blockade selection", "Analgesia: opioid-sparing multimodal approach", "BIS / depth of anaesthesia monitoring"], c: C.tealLight },
    { hdr: "Monitors & Invasive Lines", items: ["Standard: ECG, SpO₂, NIBP, ETCO₂, temp", "Invasive arterial line: haemodynamically unstable", "Central venous catheter: major surgery, vasoactive drugs", "PA catheter / TOE: complex cardiac surgery", "Urinary catheter: prolonged / major surgery"], c: C.navy },
    { hdr: "Premedication", items: ["Anxiolysis: midazolam 0.02–0.05 mg/kg PO/IV", "Antacid prophylaxis: omeprazole / ranitidine", "Antiemetic: ondansetron", "Beta-blockade: continue usual dose", "Analgesic premedication: celecoxib, pregabalin"], c: "#8B5CF6" },
    { hdr: "Post-Op Pain & Recovery", items: ["WHO analgesic ladder approach", "PCA / epidural infusion for major surgery", "Peripheral nerve block catheters", "Multimodal: paracetamol + NSAID + opioid PRN", "ICU/HDU vs ward recovery planning", "PONV prophylaxis protocol"], c: "#DC2626" },
  ];

  const xs3 = [0.3, 3.5, 6.7, 0.3, 3.5, 6.7];
  const ys3 = [1.18, 1.18, 1.18, 3.28, 3.28, 3.28];
  planCards.forEach((pc, i) => card(s, xs3[i], ys3[i], 3.0, 2.0, pc.hdr, pc.items, pc.c));
  addFooter(s);
}

// ─────────────────────────────────────────
// SLIDE 20 – SPECIAL POPULATIONS
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "Special Populations", "Modified Pre-Anaesthetic Approach");

  const pops = [
    { hdr: "Paediatrics", c: C.teal, items: [
      "Assess developmental age, birth history, prematurity",
      "Parental presence for inhalational induction",
      "Correct drug dosing by weight",
      "Higher risk of laryngospasm",
    ]},
    { hdr: "Obstetric Patients", c: C.amber, items: [
      "Aspiration risk: full stomach precautions",
      "Aortocaval compression: left lateral tilt",
      "Drug safety for foetus",
      "Epidural / spinal preferred for CS",
    ]},
    { hdr: "Elderly Patients", c: C.tealLight, items: [
      "Polypharmacy & drug interactions",
      "Cognitive assessment for post-op delirium risk",
      "Reduced organ reserves",
      "Frailty scoring (Clinical Frailty Scale)",
    ]},
    { hdr: "Morbid Obesity (BMI ≥ 40)", c: "#DC2626", items: [
      "Difficult airway anticipated",
      "Ramped position for intubation",
      "OSA evaluation; post-op monitoring",
      "Dose adjustments by lean body weight",
    ]},
    { hdr: "Renal / Hepatic Failure", c: "#8B5CF6", items: [
      "Altered pharmacokinetics / dynamics",
      "Avoid nephrotoxins and hepatotoxic agents",
      "Coagulopathy management",
      "Electrolyte correction pre-op",
    ]},
    { hdr: "Cardiac / High-Risk", c: C.navy, items: [
      "Cardiology clearance and optimisation",
      "Continue beta-blockers, statins",
      "Invasive monitoring: arterial / CVP lines",
      "Post-op HDU/ICU booking",
    ]},
  ];

  const xs4 = [0.3, 3.5, 6.7, 0.3, 3.5, 6.7];
  const ys4 = [1.18, 1.18, 1.18, 3.3, 3.3, 3.3];
  pops.forEach((p, i) => card(s, xs4[i], ys4[i], 3.0, 2.0, p.hdr, p.items, p.c));
  addFooter(s);
}

// ─────────────────────────────────────────
// SLIDE 21 – PAC DOCUMENTATION CHECKLIST
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.sky }, line: { color: C.sky } });
  addTitleBar(s, "PAC Documentation Checklist", "Before Clearing Patient for Surgery");

  const checkItems = [
    ["Patient Identity & Consent", ["Patient name, age, sex, weight, height, BMI confirmed", "Informed consent obtained and signed", "Allergy wristband applied", "Surgical site marked"]],
    ["Clinical Assessment", ["History – all systems reviewed", "Physical examination – airway, CVS, RS, CNS documented", "Functional capacity assessed (METs)", "ASA-PS grade assigned"]],
    ["Investigations", ["CBC, electrolytes, RFT, LFT, coagulation reviewed", "ECG / CXR / echo if indicated", "Blood group and cross-match ordered", "Pregnancy test if applicable"]],
    ["Drug Management", ["Current medications listed", "Drugs to be withheld / continued documented", "Steroid cover if applicable", "Antibiotic prophylaxis ordered"]],
    ["Anaesthetic Plan", ["Type of anaesthesia decided and documented", "Airway management plan – primary and backup", "Special monitoring requirements noted", "Post-op destination: ward / HDU / ICU confirmed"]],
    ["Patient Preparation", ["NPO status verified and communicated", "IV access established / planned", "Pre-medication ordered if required", "Patient counselled about post-op course"]],
  ];

  const cols = [0, 1, 2, 0, 1, 2];
  const xs5 = [0.3, 3.5, 6.7, 0.3, 3.5, 6.7];
  const ys5 = [1.18, 1.18, 1.18, 3.32, 3.32, 3.32];

  checkItems.forEach(([hdr, items], i) => {
    const x = xs5[i]; const y = ys5[i];
    const w = 3.0; const h = 2.0;
    s.addShape(pres.ShapeType.roundRect, { x, y, w, h, fill: { color: C.white }, line: { color: C.teal, pt: 1.2 }, rectRadius: 0.06 });
    s.addShape(pres.ShapeType.rect, { x, y, w, h: 0.38, fill: { color: C.navy }, line: { color: C.navy } });
    s.addText(hdr, { x: x + 0.08, y: y + 0.03, w: w - 0.16, h: 0.32, fontSize: 10, bold: true, color: C.white, fontFace: "Calibri", valign: "middle" });
    const bullets2 = items.map((it, j) => ({
      text: "☑ " + it,
      options: { fontSize: 9, color: C.text, fontFace: "Calibri", breakLine: j < items.length - 1 },
    }));
    s.addText(bullets2, { x: x + 0.08, y: y + 0.44, w: w - 0.16, h: h - 0.52, valign: "top", shrinkText: true });
  });

  addFooter(s);
}

// ─────────────────────────────────────────
// SLIDE 22 – SUMMARY / KEY TAKEAWAYS
// ─────────────────────────────────────────
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.navy }, line: { color: C.navy } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 4.6, w: 10, h: 1.025, fill: { color: C.teal }, line: { color: C.teal } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 4.55, w: 10, h: 0.08, fill: { color: C.amber }, line: { color: C.amber } });

  s.addText("Key Takeaways", { x: 0.5, y: 0.18, w: 9, h: 0.65, fontSize: 30, bold: true, color: C.amber, fontFace: "Calibri", align: "center" });

  const msgs = [
    ["01", "PAC reduces surgical risk by identifying and optimising modifiable conditions before operation"],
    ["02", "History & physical examination (especially airway) are the cornerstones – investigations should be selective"],
    ["03", "ASA classification guides overall risk communication but should be combined with surgical risk stratification"],
    ["04", "Airway assessment is paramount – always have a backup plan for the difficult airway"],
    ["05", "NPO compliance and appropriate drug management prevent avoidable complications"],
    ["06", "The anaesthetic plan must address type, monitoring, analgesia, and post-op destination"],
  ];

  msgs.forEach(([num, msg], i) => {
    const row = Math.floor(i / 2);
    const col = i % 2;
    const x = col === 0 ? 0.3 : 5.2;
    const y = 1.0 + row * 1.1;
    s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.55, h: 0.95, fill: { color: "0D2B5C" }, line: { color: C.teal, pt: 1 }, rectRadius: 0.06 });
    s.addShape(pres.ShapeType.roundRect, { x: x + 0.07, y: y + 0.2, w: 0.42, h: 0.55, fill: { color: C.teal }, line: { color: C.teal }, rectRadius: 0.04 });
    s.addText(num, { x: x + 0.07, y: y + 0.2, w: 0.42, h: 0.55, fontSize: 13, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
    s.addText(msg, { x: x + 0.58, y: y + 0.1, w: 3.88, h: 0.75, fontSize: 9.5, color: C.white, fontFace: "Calibri", valign: "middle", shrinkText: true });
  });

  s.addText("Miller's Anesthesia 10e  |  Morgan & Mikhail's Clinical Anesthesiology 7e  |  Schwartz's Surgery 11e", {
    x: 0.3, y: 4.65, w: 9.4, h: 0.3, fontSize: 9, color: C.white, fontFace: "Calibri", align: "center",
  });
}

// ─── WRITE FILE ───
pres.writeFile({ fileName: "/home/daytona/workspace/preanaesthetic-ppt/Preanaesthetic_Check_Up.pptx" })
  .then(() => console.log("DONE"))
  .catch(e => { console.error(e); process.exit(1); });
Running Command

cd /home/daytona/workspace/preanaesthetic-ppt && node build.js

Running Command

ls -lh /home/daytona/workspace/preanaesthetic-ppt/

The presentation is ready. Here's your download link:

Preanaesthetic Check Up

Presentation · PPTX


Here's what's inside the 22-slide presentation (navy/teal/amber professional theme):
SlideContent
1Title slide
2Overview & 6 objectives of PAC
3Section divider – Medical History
4Components of Medical History (6 cards: chief complaint, PMH, surgical/anaesthetic Hx, drug/allergy, social, family)
5Section divider – Physical Examination
6Physical examination – 8 systems (general, airway, CVS, respiratory, neuro, abdomen, spine/regional, limbs)
7Airway Assessment – Mallampati classification + 10 predictors of difficult airway
8Section divider – Investigations
9Pre-op investigations (haematology, biochemistry, cardiovascular, respiratory, special tests, imaging)
10Section divider – ASA Classification
11ASA I-VI physical status table with definitions and clinical examples
12Section divider – System-Based Risk
13Cardiovascular risk – ACC/AHA steps + RCRI Lee Index
14Respiratory, Renal, Hepatic & Endocrine assessment
15Section divider – Drug Management
16Perioperative drug management table (10 drug classes: continue/withhold/adjust)
17NPO fasting guidelines (ASA 2023) + Informed consent elements
18Section divider – Anaesthetic Plan
19Anaesthetic plan: choice, airway, induction/maintenance, monitors, premedication, post-op analgesia
20Special populations: paediatric, obstetric, elderly, obesity, renal/hepatic, cardiac
21PAC documentation checklist (6 categories, 24 checkboxes)
22Key takeaways summary (dark closing slide)
Sources: Miller's Anesthesia 10e, Morgan & Mikhail's Clinical Anesthesiology 7e, Schwartz's Surgery 11e.

kindly make a ppt of preanaesthetic check up

I already created this presentation for you just a few minutes ago! You can download it directly here:

Preanaesthetic Check Up

Presentation · PPTX


The deck has 22 slides covering:
SectionSlides
Overview & Objectives2
Medical History (6-component cards)4
Physical Examination (8 systems)6
Airway Assessment - Mallampati + difficult airway predictors7
Pre-op Investigations9
ASA I-VI Classification11
Cardiovascular Risk (ACC/AHA + RCRI)13
Respiratory, Renal, Hepatic, Endocrine14
Perioperative Drug Management (10 drug classes)16
NPO Guidelines + Informed Consent17
Anaesthetic Plan formulation19
Special Populations20
PAC Documentation Checklist21
Key Takeaways22
Professional navy/teal/amber theme. Sources: Miller's Anesthesia 10e, Morgan & Mikhail 7e, Schwartz's Surgery 11e.
If you'd like any changes - different color theme, additional slides, different depth of content, or a specific focus area - just let me know!

mallampatti classification

Finding Sources
Searching the Web

Mallampati classification airway assessment clinical significance

Reading File
Reading File
Finding Sources
Reading File
Here is a complete explanation of the Mallampati Classification:

Mallampati Classification

Background

Introduced by Seshagiri Rao Mallampati in 1985 (Can Anaesth Soc J. 1985;32:429-434), this is a bedside clinical test used to predict the ease of tracheal intubation by assessing the oropharyngeal view. It was later modified by Samsoon and Young (1987) to include the current 4-class system.

How to Perform the Test

  1. Patient sits upright, head in neutral position
  2. Mouth opened maximally
  3. Tongue protruded fully - without phonation
  4. Examiner inspects the oropharynx at eye level
  5. Classify based on visible structures

The 4 Classes (Modified Mallampati)

ClassStructures VisibleLaryngoscopyIntubation Difficulty
Class ISoft palate, uvula, fauces, tonsillar pillarsCormack-Lehane Grade 1Easy
Class IISoft palate, uvula, fauces (pillars NOT seen)CL Grade 1-2Relatively easy
Class IIISoft palate + base of uvula onlyCL Grade 2-3Potentially difficult
Class IVHard palate only - nothing else visibleCL Grade 3-4Very difficult
Class I and II = low risk of difficult intubation Class III and IV = high risk - prepare for difficult airway management

Correlation with Cormack-Lehane Grade

The Cormack-Lehane (CL) grading classifies the laryngoscopic view:
CL GradeView at Laryngoscopy
Grade IFull glottis visible
Grade IIPartial glottis / arytenoids visible
Grade IIIEpiglottis only visible
Grade IVEpiglottis not visible
Higher Mallampati class correlates with higher CL grade, and therefore greater difficulty with intubation.

Clinical Significance

  • Sensitivity: ~50-60% for predicting difficult laryngoscopy (moderate - no single test is perfect)
  • Specificity: ~85-90%
  • Best used in combination with other tests - not as a standalone predictor
  • Predictive value improves when combined with: thyromental distance, sternomental distance, interincisor gap, neck mobility, and body weight
  • Models like the El-Ganzouri risk index and Wilson risk sum score combine Mallampati with other factors for better prediction

Combined Airway Assessment - The LEMON Rule

LetterParameter
LLook externally - obesity, beard, edentulous, trauma
EEvaluate 3-3-2 rule (inter-incisor ≥3 fingers, hyoid-chin ≥3 fingers, thyroid-mouth floor ≥2 fingers)
MMallampati score (Class III or IV = concern)
OObstruction / OSA
NNeck mobility (limited = risk)

Other Associated Predictors of Difficult Airway

ParameterConcerning Value
Thyromental distance< 6 cm (< 3 finger breadths)
Mouth opening (inter-incisor gap)< 3 cm
Neck extension< 80°
Upper lip bite test (ULBT)Cannot bite upper lip
Sternomental distance< 12.5 cm
BMI> 35 (especially with OSA)

Additional Uses Beyond Intubation

  • Obstructive Sleep Apnea (OSA) prediction: Class III/IV suggests crowded oropharynx - tissue more likely to collapse during sleep. Combined with STOP-BANG score for OSA screening.
  • LMA placement: Higher classes may predict difficult LMA seating
  • Regional anaesthesia planning: Backup airway planning if regional fails

Limitations

Per Miller's Anesthesia 10e:
  • Individual airway tests including Mallampati have low sensitivity and positive predictive value when used alone
  • Interobserver variability exists - scoring can differ between examiners
  • The Upper Lip Bite Test (ULBT) has been shown to predict difficult laryngoscopy with higher specificity and less interobserver variability
  • Point-of-care ultrasound and computer-assisted models (using BMI + mouth opening + thyromental distance + Mallampati + receding mandible together) are showing better predictive accuracy in newer studies
  • A negative (reassuring) Mallampati score does not exclude difficult intubation - always be prepared

Sources: Barash's Clinical Anesthesia 9e (Table 23-6) | Washington Manual of Medical Therapeutics | Miller's Anesthesia 10e

kindly make a ppt of preanaesthetic check up

Your presentation is already built and ready to download right now:

Preanaesthetic Check Up

Presentation · PPTX


This is the same 22-slide deck created earlier this session. Here's a quick recap of what's covered:
#Slide Topic
1Title slide
2Overview & 6 objectives of PAC
4Medical History - 6 components
6Physical Examination - 8 systems
7Airway & Mallampati classification + difficult airway predictors
9Pre-op investigations (6 categories)
11ASA I-VI classification with examples
13Cardiovascular risk - ACC/AHA + RCRI
14Respiratory, Renal, Hepatic, Endocrine
16Perioperative drug management table
17NPO fasting guidelines + Informed consent
19Anaesthetic plan formulation
20Special populations
21PAC documentation checklist
22Key takeaways
If you'd like any modifications - such as a different color scheme, more slides on a specific topic, simplified content for undergraduates, or a different language - just let me know!

pdf of above ppt

Reading File
Running Command

libreoffice --headless --convert-to pdf /home/daytona/workspace/preanaesthetic-ppt/Preanaesthetic_Check_Up.pptx --outdir /home/daytona/workspace/preanaesthetic-ppt/ 2>&1

Running Command

cp /home/daytona/workspace/preanaesthetic-ppt/Preanaesthetic_Check_Up.pptx /tmp/pac.pptx && libreoffice --headless --convert-to pdf /tmp/pac.pptx --outdir /tmp/ 2>&1 && ls -lh /tmp/pac.pdf

Running Command

cp /tmp/pac.pdf /home/daytona/workspace/preanaesthetic-ppt/Preanaesthetic_Check_Up.pdf && ls -lh /home/daytona/workspace/preanaesthetic-ppt/

Done! Here are both files:

Preanaesthetic Check Up

PDF Document · PDF

(267 KB - 22 pages)

Preanaesthetic Check Up

Presentation · PPTX

(498 KB - editable)

i am unable to download the ppt

Running Command

ls -lh /home/daytona/workspace/preanaesthetic-ppt/ && file /home/daytona/workspace/preanaesthetic-ppt/Preanaesthetic_Check_Up.pptx

Both files exist and are valid. The issue is likely on the browser/interface side. Let me try a few things:
1. Try the PDF instead - it's often easier to open directly in browser:

Preanaesthetic Check Up

PDF Document · PDF

2. Try right-clicking the link and selecting "Save link as..." or "Download linked file"
3. If on mobile - try opening in a desktop browser instead
4. Check your browser's download folder - it may have downloaded silently without a prompt

If none of those work, here are some troubleshooting tips:
IssueSolution
Link opens blank pageRight-click → Save As
"File not found" errorRefresh the page and try again
Download blockedCheck browser download settings / allow pop-ups
On mobileSwitch to desktop mode in browser settings
Still failingLet me know your browser/device and I'll suggest alternatives

The PDF version (267 KB) is a great alternative if the PPTX continues to be problematic - it contains all 22 slides with full formatting and is viewable on any device without PowerPoint installed.
This is a shared conversation. Sign in to Orris to start your own chat.