Patient has primary peritoneal cancer with ca ovarian. Patient age -51 yr. Hight 151 weight -60 kg . S.creatinine - 0.8 . Ca 125- 320, LFT - NORMAL.

Reading File
Asking for Preferences
Here is the Carboplatin dose calculation for this patient.

Carboplatin AUC Dose Calculation

Patient Parameters:
  • Age: 51 years
  • Weight: 60 kg
  • Height: 151 cm
  • Serum Creatinine: 0.8 mg/dL
  • Diagnosis: Primary Peritoneal Cancer + CA Ovary

Step 1 - Calculate GFR using Cockcroft-Gault formula

$$\text{CrCl} = \frac{(140 - \text{Age}) \times \text{Weight}}{72 \times \text{S.Creatinine}} \times 0.85 \text{ (female)}$$
$$\text{CrCl} = \frac{(140 - 51) \times 60}{72 \times 0.8} \times 0.85$$
$$= \frac{89 \times 60}{57.6} \times 0.85$$
$$= \frac{5340}{57.6} \times 0.85$$
$$= 92.71 \times 0.85$$
$$= \textbf{78.8 mL/min}$$

Step 2 - Apply Calvert Formula for Carboplatin Dose

$$\text{Carboplatin Dose (mg)} = \text{AUC} \times (\text{GFR} + 25)$$
AUC TargetIndicationDose (mg)
AUC 51st line with Paclitaxel (standard)5 × (78.8 + 25) = 519 mg
AUC 61st line (some protocols)6 × (78.8 + 25) = 623 mg
AUC 4Reduced intensity / dose-dense4 × (78.8 + 25) = 415 mg

Recommended Standard Regimen (Primary Peritoneal / Ovarian Cancer)

TC Regimen (every 3 weeks x 6 cycles):
  • Paclitaxel 175 mg/m² IV over 3 hours
    • BSA (Mosteller): √(151 × 60 / 3600) = √(9060/3600) = √2.517 = 1.587 m²
    • Paclitaxel dose: 175 × 1.587 = ~278 mg
  • Carboplatin AUC 5-6 = 519-623 mg IV over 30-60 min

Key Notes

  • Calvert formula uses GFR, not BSA - so the carboplatin dose is independent of body surface area.
  • For GFR, use Cockcroft-Gault or EDTA-measured GFR. Most centers cap GFR at 125 mL/min to avoid overdosing.
  • This patient's GFR of 78.8 mL/min is in the normal-to-mildly-reduced range - no dose reduction needed.
  • AUC 5 with Paclitaxel is the NCCN-recommended standard for first-line treatment.
  • CA-125 of 320 and normal LFT confirm no hepatic dose adjustment is required for Paclitaxel.
  • Recheck renal function before each cycle - carboplatin dose must be recalculated if creatinine changes.

Summary Dose for Cycle 1:
DrugDose
Paclitaxel278 mg IV (AUC not applicable)
Carboplatin519 mg IV (AUC 5)

Paclitaxel not continue. Inj. Gemcitabine

Here is the Carboplatin + Gemcitabine regimen calculation for this patient.

Carboplatin + Gemcitabine Regimen

Patient Parameters (unchanged):
  • Age: 51 yr | Weight: 60 kg | Height: 151 cm
  • S. Creatinine: 0.8 mg/dL
  • BSA (Mosteller): 1.587 m²
  • CrCl (Cockcroft-Gault): 78.8 mL/min

Carboplatin Dose (Calvert Formula)

$$\text{Carboplatin} = \text{AUC} \times (\text{GFR} + 25)$$
AUCClinical ContextDose
AUC 4Gemcitabine combination (standard)4 × (78.8 + 25) = 415 mg
AUC 5If used as single agent519 mg
For Carboplatin + Gemcitabine doublet, AUC 4 is the standard target to reduce hematologic toxicity.

Gemcitabine Dose

$$\text{Gemcitabine} = 1000 \text{ mg/m}^2 \times 1.587 \text{ m}^2 = \textbf{1587 mg}$$
Rounded to: 1500 mg (practical rounding, per institutional protocol)

Standard Dosing Schedule (Carboplatin + Gemcitabine)

Cycle: Every 21 days (3-week cycle)
DayDrugDoseInfusion
Day 1Gemcitabine1500 mg IVOver 30 min
Day 1Carboplatin415 mg IV (AUC 4)Over 30-60 min (after Gem)
Day 8Gemcitabine1500 mg IVOver 30 min
Day 8CarboplatinNot given on Day 8
Repeat every 21 days x 6 cycles

Alternative: 28-day cycle schedule

DayDrugDose
Day 1Gemcitabine 1000 mg/m² + Carboplatin AUC 4Gem 1587 mg + Carbo 415 mg
Day 8Gemcitabine 1000 mg/m²1587 mg only
Day 15REST
Day 28Start next cycle

Key Clinical Notes

  • Carboplatin + Gemcitabine is an established regimen for recurrent/platinum-sensitive ovarian and primary peritoneal cancer (ICON4/AGO-OVAR-2.2 trial).
  • If this is first-line (Paclitaxel intolerant/contraindicated), this doublet is an acceptable alternative per NCCN guidelines.
  • Day 8 Gemcitabine should be held if: ANC < 1000/mm³ or Platelets < 100,000/mm³.
  • Renal function must be rechecked before each cycle - recalculate carboplatin dose each time.
  • Normal LFT: no Gemcitabine dose adjustment needed.
  • Watch for myelosuppression (main toxicity) - CBC on Day 8 and Day 1 of each cycle.

Summary - Cycle 1, Day 1:
DrugDose
Gemcitabine1500 mg IV over 30 min
Carboplatin415 mg IV over 30-60 min (after Gemcitabine)

Inj. Beviruzun

Searching the Web

Beviruzun injection ovarian cancer dosing bevacizumab biosimilar

Searching PubMed

bevacizumab ovarian cancer carboplatin gemcitabine dosing

Note: "Beviruzun" is most likely Bevacizumab (brand name: Avastin, or biosimilar). I could not find a drug specifically named "Beviruzun" - it appears to be a phonetic/local trade name for a Bevacizumab biosimilar used in India. Please confirm, but the dosing below is for Bevacizumab as used with Carboplatin + Gemcitabine.

Complete Regimen: Carboplatin + Gemcitabine + Bevacizumab

Patient: 51F | Weight: 60 kg | Height: 151 cm | BSA: 1.587 m² | CrCl: 78.8 mL/min

Bevacizumab Dose

$$\text{Bevacizumab} = 15 \text{ mg/kg} \times 60 \text{ kg} = \textbf{900 mg IV}$$
Standard dose for platinum-sensitive recurrent ovarian / primary peritoneal cancer with Carboplatin + Gemcitabine is 15 mg/kg every 3 weeks (per FDA-approved labeling).

Full Regimen Schedule (Every 21 Days)

DayDrugDoseInfusion Notes
Day 1Gemcitabine1500 mg IVOver 30 min
Day 1Carboplatin415 mg IV (AUC 4)Over 30-60 min, after Gemcitabine
Day 1Bevacizumab900 mg IV1st dose: over 90 min; 2nd dose: over 60 min; subsequent: over 30 min
Day 8Gemcitabine1500 mg IVOver 30 min only
Repeat every 21 days x 6-10 cycles, then Bevacizumab maintenance monotherapy 900 mg IV q3w until progression.

Bevacizumab Infusion Rate Protocol

CycleInfusion Duration
Cycle 1 (first dose)90 minutes - observe for infusion reaction
Cycle 260 minutes - if Cycle 1 tolerated
Cycle 3 onwards30 minutes - if Cycle 2 tolerated

Summary - All Three Drugs

DrugDoseFrequency
Gemcitabine1500 mg IVDay 1 + Day 8 of each 21-day cycle
Carboplatin415 mg IV (AUC 4)Day 1 only
Bevacizumab900 mg IV (15 mg/kg)Day 1 only

Important Bevacizumab-Specific Precautions

  • Hold Bevacizumab if: uncontrolled hypertension, proteinuria >2g/24h, wound not healed, planned surgery within 28 days.
  • Check urine protein by dipstick before each cycle - if 2+ or more, do 24-hr urine protein.
  • Monitor BP at every visit - bevacizumab commonly causes hypertension.
  • Do NOT give if bowel perforation, fistula, or active bleeding.
  • This patient's normal LFT and creatinine of 0.8 - no dose adjustments needed.

If "Beviruzun" is a different molecule entirely (not Bevacizumab), please share the full brand/generic name or manufacturer so I can provide the exact dosing.

I gave bevacizumab 400 mg only

This is an important clarification. Let me analyze what happened.

Bevacizumab Dose Review

Calculated correct dose: 15 mg/kg × 60 kg = 900 mg Dose administered: 400 mg

What Does This Mean?

The patient received approximately 6.67 mg/kg instead of 15 mg/kg.
That is roughly 44% of the intended dose - an underdose of ~500 mg.

Is 400 mg a Recognized Dose?

Dosemg/kg equivalent (60 kg)Evidence base
900 mg15 mg/kgStandard - FDA approved for ovarian/peritoneal ca + Carbo/Gem
450 mg7.5 mg/kgUsed in ICON7 trial (1st line with Carbo/Paclitaxel)
400 mg6.67 mg/kgNot a standard dose for this indication
400 mg does not correspond to any standard weight-based or flat-dose protocol for ovarian/primary peritoneal cancer with Carboplatin + Gemcitabine.

Possible Explanations

  1. Vial availability issue - Bevacizumab comes in 100 mg/4 mL and 400 mg/16 mL vials. It is possible only one 400 mg vial was available and the remaining 500 mg was not administered.
  2. Prescribing/dispensing error - dose was written or prepared incorrectly.
  3. Intentional dose reduction - if so, this should be documented with clinical justification.

Clinical Impact of This Underdose

  • Single missed/reduced dose in Cycle 1 is unlikely to cause immediate clinical harm.
  • Bevacizumab has a half-life of ~20 days - therapeutic levels will be suboptimal this cycle.
  • Anti-tumor/anti-angiogenic efficacy may be reduced for this cycle.
  • No acute toxicity concern from underdosing.

Recommended Action

ActionDetails
DocumentRecord actual dose given (400 mg) in case notes
Do NOT re-dose mid-cycle to "top up"No evidence supports supplemental dosing
Next cycle (Day 1, Cycle 2)Administer full correct dose of 900 mg
Review prescribing/dispensing processPrevent recurrence of dose error
Inform treating oncologistFor documentation and oversight

For all subsequent cycles: Bevacizumab 900 mg IV on Day 1 every 21 days. The 400 mg given this cycle should be noted as a reduced first dose, and full dosing resumed from Cycle 2 onwards.

Should we recalculate carboplatin/gemcitabine doses for Cycle 2?

Yes - and here is exactly what needs to be rechecked before Cycle 2.

Cycle 2 Dose Recalculation Guide

Gemcitabine - Does It Need Recalculation?

Gemcitabine is BSA-based (mg/m²). BSA changes only if weight changes significantly.
ParameterCycle 1Cycle 2
Weight60 kgReweigh on Day 1
BSA1.587 m²Recalculate if weight changed
Dose (1000 mg/m²)1500 mgAdjust only if BSA changes
Rule: If weight change is ≤ 5% (i.e., stays between 57-63 kg), no recalculation needed - use 1500 mg again. If weight drops or rises beyond that, recalculate BSA and dose.

Carboplatin - YES, MUST Recalculate Every Cycle

This is the most important one. Carboplatin dose depends on real-time GFR, which can change cycle to cycle due to cumulative nephrotoxicity.
Recheck S. Creatinine on Day 1 of Cycle 2, then recalculate:
$$\text{CrCl} = \frac{(140 - 51) \times \text{new weight}}{72 \times \text{new S.Creatinine}} \times 0.85$$
$$\text{Carboplatin (mg)} = 4 \times (\text{new CrCl} + 25)$$
If new S.CreatinineEstimated CrClCarboplatin AUC 4
0.8 (unchanged)78.8 mL/min415 mg (same)
1.063 mL/min352 mg
1.252.5 mL/min310 mg
1.542 mL/min268 mg
Carboplatin MUST be recalculated before every cycle - this is standard practice, not optional.

Bevacizumab - Recalculate if Weight Changed

$$\text{Bevacizumab} = 15 \text{ mg/kg} \times \text{new weight}$$
WeightBevacizumab dose
60 kg900 mg
58 kg870 mg
62 kg930 mg

Pre-Cycle 2 Checklist (Day 1)

CheckThreshold to proceedAction if abnormal
ANC≥ 1500/mm³Delay 1 week
Platelets≥ 100,000/mm³Delay 1 week
Hemoglobin≥ 8 g/dLTransfuse if symptomatic
S. CreatinineRecalculate CrClAdjust Carboplatin dose
LFTShould be normalAdjust Gemcitabine if elevated
Urine proteinDipstick < 2+If 2+, do 24-hr urine before Bevacizumab
Blood pressure< 150/100 mmHgControl BP before Bevacizumab
WeightReweighRecalculate BSA + Bevacizumab

Bottom Line

DrugRecalculate each cycle?Based on
CarboplatinYES - mandatoryFresh S. Creatinine → CrCl
GemcitabineOnly if weight changes >5%Weight → BSA
BevacizumabYes, weight-basedCurrent weight (kg)

Generate a summary document with all 3 drugs, doses, and monitoring parameters to share with the patient/team

Reading File
Running Command

mkdir -p /home/daytona/workspace/chemo-summary && ls /home/daytona/workspace/che…

Writing File

~/chemo-summary/generate.js

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

// ── Helpers ──────────────────────────────────────────────────────────────────
const BLUE   = "1F4E79";
const LBLUE  = "D6E4F0";
const ORANGE = "C55A11";
const LGRAY  = "F2F2F2";
const WHITE  = "FFFFFF";
const RED    = "C00000";
const GREEN  = "375623";

function hCell(text, bg = BLUE, color = WHITE, bold = true, width = null) {
  const cell = new TableCell({
    shading: { type: ShadingType.CLEAR, fill: bg },
    verticalAlign: VerticalAlign.CENTER,
    margins: { top: 80, bottom: 80, left: 120, right: 120 },
    children: [new Paragraph({
      alignment: AlignmentType.CENTER,
      children: [new TextRun({ text, bold, color, size: 18, font: "Calibri" })]
    })],
    ...(width ? { width: { size: width, type: WidthType.DXA } } : {})
  });
  return cell;
}

function dCell(text, bg = WHITE, bold = false, color = "000000", align = AlignmentType.LEFT) {
  return new TableCell({
    shading: { type: ShadingType.CLEAR, fill: bg },
    verticalAlign: VerticalAlign.CENTER,
    margins: { top: 70, bottom: 70, left: 120, right: 120 },
    children: [new Paragraph({
      alignment: align,
      children: [new TextRun({ text, bold, color, size: 18, font: "Calibri" })]
    })]
  });
}

function sectionHeading(text) {
  return new Paragraph({
    spacing: { before: 240, after: 100 },
    children: [new TextRun({
      text, bold: true, color: BLUE, size: 24, font: "Calibri",
      underline: { type: UnderlineType.SINGLE, color: BLUE }
    })]
  });
}

function bullet(text, bold = false) {
  return new Paragraph({
    bullet: { level: 0 },
    spacing: { after: 60 },
    children: [new TextRun({ text, size: 18, font: "Calibri", bold })]
  });
}

function note(text) {
  return new Paragraph({
    spacing: { before: 80, after: 80 },
    children: [new TextRun({ text, size: 16, font: "Calibri", italics: true, color: "595959" })]
  });
}

function spacer() {
  return new Paragraph({ spacing: { after: 120 }, children: [new TextRun("")] });
}

// ── Document ──────────────────────────────────────────────────────────────────
const doc = new Document({
  styles: {
    default: {
      document: {
        run: { font: "Calibri", size: 20 }
      }
    }
  },
  sections: [{
    properties: {
      page: { margin: { top: 900, bottom: 900, left: 1000, right: 1000 } }
    },
    headers: {
      default: new Header({
        children: [
          new Paragraph({
            alignment: AlignmentType.CENTER,
            spacing: { after: 60 },
            children: [
              new TextRun({ text: "CHEMOTHERAPY TREATMENT SUMMARY", bold: true, size: 26, color: WHITE, font: "Calibri" })
            ],
            shading: { type: ShadingType.CLEAR, fill: BLUE }
          }),
          new Paragraph({
            alignment: AlignmentType.CENTER,
            spacing: { after: 40 },
            children: [
              new TextRun({ text: "Primary Peritoneal Cancer + Ovarian Cancer  |  Carboplatin + Gemcitabine + Bevacizumab", size: 18, color: "595959", font: "Calibri" })
            ]
          })
        ]
      })
    },
    footers: {
      default: new Footer({
        children: [new Paragraph({
          alignment: AlignmentType.CENTER,
          children: [
            new TextRun({ text: "Generated: July 2026  |  Page ", size: 16, color: "595959", font: "Calibri" }),
            new TextRun({ children: [PageNumber.CURRENT], size: 16, color: "595959", font: "Calibri" }),
            new TextRun({ text: " of ", size: 16, color: "595959", font: "Calibri" }),
            new TextRun({ children: [PageNumber.TOTAL_PAGES], size: 16, color: "595959", font: "Calibri" }),
            new TextRun({ text: "  |  For clinical use only — verify before each cycle", size: 16, color: "595959", font: "Calibri" })
          ]
        })]
      })
    },
    children: [

      // ─── Patient Details ───────────────────────────────────────────────────
      spacer(),
      sectionHeading("1. PATIENT DETAILS"),
      new Table({
        width: { size: 100, type: WidthType.PERCENTAGE },
        rows: [
          new TableRow({ children: [
            hCell("Parameter", BLUE, WHITE), hCell("Value", BLUE, WHITE), hCell("Parameter", BLUE, WHITE), hCell("Value", BLUE, WHITE)
          ]}),
          new TableRow({ children: [
            dCell("Age", LGRAY, true), dCell("51 years"), dCell("Diagnosis", LGRAY, true), dCell("Primary Peritoneal Cancer + CA Ovary")
          ]}),
          new TableRow({ children: [
            dCell("Weight", LGRAY, true), dCell("60 kg"), dCell("CA-125", LGRAY, true), dCell("320 U/mL")
          ]}),
          new TableRow({ children: [
            dCell("Height", LGRAY, true), dCell("151 cm"), dCell("LFT", LGRAY, true), dCell("Normal")
          ]}),
          new TableRow({ children: [
            dCell("BSA (Mosteller)", LGRAY, true), dCell("1.587 m²"), dCell("S. Creatinine", LGRAY, true), dCell("0.8 mg/dL")
          ]}),
          new TableRow({ children: [
            dCell("CrCl (C-G formula)", LGRAY, true), dCell("78.8 mL/min"), dCell("Regimen Start", LGRAY, true), dCell("July 2026")
          ]}),
        ]
      }),

      // ─── Regimen Overview ─────────────────────────────────────────────────
      spacer(),
      sectionHeading("2. CHEMOTHERAPY REGIMEN"),
      new Paragraph({
        spacing: { after: 100 },
        children: [new TextRun({ text: "Regimen: Carboplatin (AUC 4) + Gemcitabine (1000 mg/m²) + Bevacizumab (15 mg/kg)  |  Cycle: Every 21 days  |  Duration: 6-10 cycles, then Bevacizumab maintenance", size: 18, font: "Calibri", bold: false, color: "000000" })]
      }),
      new Table({
        width: { size: 100, type: WidthType.PERCENTAGE },
        rows: [
          new TableRow({ children: [
            hCell("Drug", BLUE, WHITE), hCell("Calculated Dose", BLUE, WHITE), hCell("Day 1", BLUE, WHITE), hCell("Day 8", BLUE, WHITE), hCell("Infusion Duration", BLUE, WHITE)
          ]}),
          new TableRow({ children: [
            dCell("Gemcitabine", LGRAY, true, "000000"), dCell("1500 mg\n(1000 mg/m² × 1.587 m²)"), dCell("✓", WHITE, true, GREEN, AlignmentType.CENTER), dCell("✓", WHITE, true, GREEN, AlignmentType.CENTER), dCell("30 minutes")
          ]}),
          new TableRow({ children: [
            dCell("Carboplatin", LGRAY, true, "000000"), dCell("415 mg\n(AUC 4 × [78.8+25])"), dCell("✓", WHITE, true, GREEN, AlignmentType.CENTER), dCell("✗", WHITE, true, RED, AlignmentType.CENTER), dCell("30-60 minutes (after Gemcitabine)")
          ]}),
          new TableRow({ children: [
            dCell("Bevacizumab", LGRAY, true, "000000"), dCell("900 mg\n(15 mg/kg × 60 kg)"), dCell("✓", WHITE, true, GREEN, AlignmentType.CENTER), dCell("✗", WHITE, true, RED, AlignmentType.CENTER), dCell("Cycle 1: 90 min → Cycle 2: 60 min → Cycle 3+: 30 min")
          ]}),
        ]
      }),
      spacer(),
      note("⚠  Cycle 1 Note: Bevacizumab was administered at 400 mg (reduced dose). Full dose of 900 mg to be given from Cycle 2 onwards. Document in patient record."),

      // ─── Administration Order ─────────────────────────────────────────────
      spacer(),
      sectionHeading("3. ADMINISTRATION ORDER (Day 1)"),
      new Table({
        width: { size: 100, type: WidthType.PERCENTAGE },
        rows: [
          new TableRow({ children: [hCell("Step", BLUE, WHITE), hCell("Drug", BLUE, WHITE), hCell("Dose", BLUE, WHITE), hCell("Route / Duration", BLUE, WHITE)]}),
          new TableRow({ children: [dCell("1", LGRAY, true, BLUE, AlignmentType.CENTER), dCell("Pre-medications", LGRAY, true), dCell("Antiemetics, dexamethasone, antihistamine"), dCell("IV — per protocol")]}),
          new TableRow({ children: [dCell("2", LGRAY, true, BLUE, AlignmentType.CENTER), dCell("Gemcitabine"), dCell("1500 mg in 250 mL NS"), dCell("IV over 30 min")]}),
          new TableRow({ children: [dCell("3", LGRAY, true, BLUE, AlignmentType.CENTER), dCell("Carboplatin"), dCell("415 mg in 250 mL D5W / NS"), dCell("IV over 30-60 min")]}),
          new TableRow({ children: [dCell("4", LGRAY, true, BLUE, AlignmentType.CENTER), dCell("Bevacizumab"), dCell("900 mg in 100 mL NS"), dCell("IV over 90/60/30 min (cycle-dependent)")]}),
        ]
      }),
      note("Day 8: Gemcitabine 1500 mg only (Carboplatin and Bevacizumab NOT given on Day 8)"),

      // ─── Dose Recalculation ───────────────────────────────────────────────
      spacer(),
      sectionHeading("4. DOSE RECALCULATION BEFORE EACH CYCLE"),
      new Table({
        width: { size: 100, type: WidthType.PERCENTAGE },
        rows: [
          new TableRow({ children: [hCell("Drug", BLUE, WHITE), hCell("Recalculate?", BLUE, WHITE), hCell("Formula", BLUE, WHITE), hCell("Trigger", BLUE, WHITE)]}),
          new TableRow({ children: [dCell("Carboplatin", LGRAY, true), dCell("YES — Every cycle", WHITE, true, RED), dCell("AUC 4 × (CrCl + 25)"), dCell("Fresh S.Creatinine on Day 1 of each cycle")]}),
          new TableRow({ children: [dCell("Gemcitabine", LGRAY, true), dCell("Only if weight changes >5%"), dCell("1000 mg/m² × BSA"), dCell("Reweigh on Day 1")]}),
          new TableRow({ children: [dCell("Bevacizumab", LGRAY, true), dCell("Yes — weight-based"), dCell("15 mg/kg × current weight"), dCell("Reweigh on Day 1")]}),
        ]
      }),

      // ─── Monitoring Parameters ────────────────────────────────────────────
      spacer(),
      sectionHeading("5. PRE-CYCLE MONITORING CHECKLIST (Day 1 of Each Cycle)"),
      new Table({
        width: { size: 100, type: WidthType.PERCENTAGE },
        rows: [
          new TableRow({ children: [hCell("Parameter", BLUE, WHITE), hCell("Required Value to Proceed", BLUE, WHITE), hCell("Action if Abnormal", BLUE, WHITE)]}),
          new TableRow({ children: [dCell("ANC", LGRAY, true), dCell("≥ 1500 /mm³"), dCell("Delay 1 week; reassess")]}),
          new TableRow({ children: [dCell("Platelets", LGRAY, true), dCell("≥ 100,000 /mm³"), dCell("Delay 1 week; reassess")]}),
          new TableRow({ children: [dCell("Hemoglobin", LGRAY, true), dCell("≥ 8 g/dL"), dCell("Transfuse if symptomatic; may proceed if PS stable")]}),
          new TableRow({ children: [dCell("S. Creatinine", LGRAY, true), dCell("Recheck — recalculate CrCl"), dCell("Adjust Carboplatin dose accordingly")]}),
          new TableRow({ children: [dCell("LFT (AST/ALT/Bili)", LGRAY, true), dCell("≤ 2.5× ULN"), dCell("Delay Gemcitabine if significantly elevated")]}),
          new TableRow({ children: [dCell("Urine Protein (dipstick)", LGRAY, true), dCell("< 2+"), dCell("If 2+: do 24-hr urine; hold Bevacizumab if >2 g/24h")]}),
          new TableRow({ children: [dCell("Blood Pressure", LGRAY, true), dCell("< 150/100 mmHg"), dCell("Control BP before Bevacizumab; anti-hypertensives if needed")]}),
          new TableRow({ children: [dCell("Weight", LGRAY, true), dCell("Reweigh each cycle"), dCell("Recalculate BSA and Bevacizumab dose")]}),
          new TableRow({ children: [dCell("CA-125", LGRAY, true), dCell("Trend — not a stop criterion"), dCell("Discuss with oncologist if rising trend")]}),
        ]
      }),

      // ─── Toxicity Management ──────────────────────────────────────────────
      spacer(),
      sectionHeading("6. KEY TOXICITIES & MANAGEMENT"),

      new Paragraph({ spacing: { after: 80 }, children: [new TextRun({ text: "Gemcitabine", bold: true, size: 20, color: ORANGE, font: "Calibri" })] }),
      bullet("Myelosuppression (neutropenia, thrombocytopenia) — most common; check CBC on Day 8 before second dose"),
      bullet("Fatigue, nausea, mild flu-like symptoms"),
      bullet("Hepatotoxicity — monitor LFT each cycle"),
      bullet("Day 8 dose: Hold if ANC < 1000 or Platelets < 100,000"),

      new Paragraph({ spacing: { before: 100, after: 80 }, children: [new TextRun({ text: "Carboplatin", bold: true, size: 20, color: ORANGE, font: "Calibri" })] }),
      bullet("Myelosuppression — nadir at Day 14-21; cumulative with repeated cycles"),
      bullet("Nephrotoxicity — renal function may decline with cumulative doses; always recheck creatinine"),
      bullet("Hypersensitivity reactions — more common after multiple cycles; have emergency drugs ready"),
      bullet("Nausea/vomiting — premedicate with antiemetics"),
      bullet("Peripheral neuropathy — less than cisplatin but monitor"),

      new Paragraph({ spacing: { before: 100, after: 80 }, children: [new TextRun({ text: "Bevacizumab", bold: true, size: 20, color: ORANGE, font: "Calibri" })] }),
      bullet("Hypertension — monitor BP every visit; start antihypertensives if needed"),
      bullet("Proteinuria — urine dipstick before each dose; 24-hr urine if ≥2+"),
      bullet("Wound healing impairment — hold 28 days before/after major surgery"),
      bullet("Bowel perforation / fistula — rare but serious; stop permanently if occurs"),
      bullet("Thromboembolic events (DVT, PE) — monitor for symptoms"),
      bullet("Infusion-related reactions — observe during first infusion; emergency kit at bedside"),
      bullet("Epistaxis, minor bleeding — common; report any major bleeding immediately"),

      // ─── Dose Modification Guide ──────────────────────────────────────────
      spacer(),
      sectionHeading("7. DOSE MODIFICATION GUIDE"),
      new Table({
        width: { size: 100, type: WidthType.PERCENTAGE },
        rows: [
          new TableRow({ children: [hCell("Situation", BLUE, WHITE), hCell("Action", BLUE, WHITE)]}),
          new TableRow({ children: [dCell("Grade 3-4 Neutropenia (ANC < 1000)", LGRAY, true), dCell("Delay until recovery; reduce Gemcitabine by 25% next cycle")]}),
          new TableRow({ children: [dCell("Grade 3-4 Thrombocytopenia (< 50,000)", LGRAY, true), dCell("Delay until recovery; reduce Carboplatin to AUC 3 if recurrent")]}),
          new TableRow({ children: [dCell("CrCl drops to 40-60 mL/min", LGRAY, true), dCell("Recalculate Carboplatin — dose will decrease automatically via Calvert")]}),
          new TableRow({ children: [dCell("CrCl < 30 mL/min", LGRAY, true), dCell("Discuss with oncologist — consider alternative regimen")]}),
          new TableRow({ children: [dCell("Urine Protein > 2 g/24h", LGRAY, true), dCell("Hold Bevacizumab; resume when protein < 2 g/24h")]}),
          new TableRow({ children: [dCell("Uncontrolled Hypertension", LGRAY, true), dCell("Hold Bevacizumab until BP controlled")]}),
          new TableRow({ children: [dCell("Hypersensitivity to Carboplatin", LGRAY, true), dCell("Stop infusion; desensitization protocol or switch agent")]}),
        ]
      }),

      // ─── Maintenance Phase ────────────────────────────────────────────────
      spacer(),
      sectionHeading("8. MAINTENANCE PHASE (After 6-10 Cycles)"),
      bullet("Bevacizumab 900 mg IV every 21 days as single agent"),
      bullet("Continue until disease progression or unacceptable toxicity"),
      bullet("Monitor BP, urine protein, and CBC at each maintenance visit"),
      bullet("CA-125 and imaging per oncologist's schedule (typically every 3-4 months)"),

      // ─── Emergency Contacts ───────────────────────────────────────────────
      spacer(),
      sectionHeading("9. WHEN TO SEEK IMMEDIATE ATTENTION"),
      new Table({
        width: { size: 100, type: WidthType.PERCENTAGE },
        rows: [
          new TableRow({ children: [hCell("Symptom / Sign", RED, WHITE), hCell("Possible Cause", RED, WHITE)]}),
          new TableRow({ children: [dCell("Fever > 38°C (especially with chills)", LGRAY, true), dCell("Febrile neutropenia — EMERGENCY")]}),
          new TableRow({ children: [dCell("Severe abdominal pain / distension", LGRAY, true), dCell("Bowel perforation (Bevacizumab)")]}),
          new TableRow({ children: [dCell("Sudden breathlessness / chest pain / leg swelling", LGRAY, true), dCell("Pulmonary embolism / DVT")]}),
          new TableRow({ children: [dCell("Severe headache / blurred vision", LGRAY, true), dCell("Hypertensive urgency — Bevacizumab")]}),
          new TableRow({ children: [dCell("Heavy bleeding from any site", LGRAY, true), dCell("Bevacizumab-related hemorrhage")]}),
          new TableRow({ children: [dCell("Rash, hives, throat tightness during infusion", LGRAY, true), dCell("Anaphylaxis / infusion reaction")]}),
        ]
      }),

      // ─── Disclaimer ───────────────────────────────────────────────────────
      spacer(),
      new Paragraph({
        spacing: { before: 200, after: 60 },
        shading: { type: ShadingType.CLEAR, fill: "FFF2CC" },
        children: [new TextRun({
          text: "⚕  CLINICAL DISCLAIMER: This document is for clinical team reference only. All doses must be verified by a qualified oncologist and pharmacist before administration. Carboplatin dose MUST be recalculated at each cycle using a fresh serum creatinine.",
          size: 16, font: "Calibri", bold: false, color: "7B5B00", italics: true
        })]
      }),
    ]
  }]
});

Packer.toBuffer(doc).then(buffer => {
  fs.writeFileSync("/home/daytona/workspace/chemo-summary/Chemo_Summary_PPC_Ovarian.docx", buffer);
  console.log("Document created successfully.");
}).catch(err => {
  console.error("Error:", err);
  process.exit(1);
});
Running Command

cd /home/daytona/workspace/chemo-summary && node generate.js 2>&1

Running Command

python /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/worksp…

Running Command

ls -lh /home/daytona/workspace/chemo-summary/Chemo_Summary_PPC_Ovarian.docx && p…

The document is ready for download:

Chemo Summary PPC Ovarian

Word Document · DOCX


What's included in the document:

SectionContents
1. Patient DetailsAge, weight, height, BSA, CrCl, CA-125, diagnosis
2. Chemotherapy RegimenAll 3 drugs, calculated doses, Day 1 vs Day 8 schedule
3. Administration OrderStep-by-step infusion sequence with dilution details
4. Dose Recalculation RulesWhen and how to recalculate each drug each cycle
5. Pre-Cycle Monitoring ChecklistCBC, renal, hepatic, BP, urine protein thresholds
6. Key ToxicitiesDrug-wise toxicity profile and management
7. Dose Modification GuideWhat to do for neutropenia, renal decline, proteinuria, etc.
8. Maintenance PhaseBevacizumab 900 mg q3w until progression
9. Emergency Warning SignsRed flag symptoms requiring immediate attention
The Cycle 1 Bevacizumab underdose (400 mg given) is flagged as a clinical note in the document. Full 900 mg dose to resume from Cycle 2 is clearly stated.

I can't able to download file

Running Command

cd /home/daytona/workspace/chemo-summary && python3 -c " import subprocess resul…

Running Command

chmod 777 /home/daytona/workspace/chemo-summary/ && libreoffice --headless --con…

Running Command

pip install --user reportlab 2>/dev/null | tail -1; python3 -c "from reportlab.l…

Writing File

~/chemo-summary/make_pdf.py

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

OUT = "/home/daytona/workspace/chemo-summary/Chemo_Summary_PPC_Ovarian.pdf"

# ── Colors ───────────────────────────────────────────────────────────────────
NAVY    = colors.HexColor("#1F4E79")
LBLUE   = colors.HexColor("#D6E4F0")
ORANGE  = colors.HexColor("#C55A11")
LGRAY   = colors.HexColor("#F2F2F2")
YELLOW  = colors.HexColor("#FFF2CC")
RED     = colors.HexColor("#C00000")
GREEN   = colors.HexColor("#375623")
WHITE   = colors.white
BLACK   = colors.black

doc = SimpleDocTemplate(OUT, pagesize=A4,
                        leftMargin=1.8*cm, rightMargin=1.8*cm,
                        topMargin=2*cm, bottomMargin=2*cm)

styles = getSampleStyleSheet()

def S(name, **kw):
    return ParagraphStyle(name, **kw)

title_s   = S("T", fontSize=16, textColor=WHITE, backColor=NAVY,
               alignment=TA_CENTER, spaceAfter=2, spaceBefore=4,
               fontName="Helvetica-Bold", leading=22)
sub_s     = S("Sub", fontSize=9, textColor=colors.HexColor("#595959"),
               alignment=TA_CENTER, spaceAfter=6, fontName="Helvetica")
sec_s     = S("Sec", fontSize=11, textColor=NAVY, fontName="Helvetica-Bold",
               spaceBefore=12, spaceAfter=4, underlineWidth=0.5)
body_s    = S("B", fontSize=8.5, fontName="Helvetica", spaceAfter=3, leading=12)
bold_s    = S("Bd", fontSize=8.5, fontName="Helvetica-Bold", spaceAfter=3)
warn_s    = S("W", fontSize=8, fontName="Helvetica-Oblique",
               textColor=colors.HexColor("#7B5B00"), backColor=YELLOW,
               spaceAfter=4, spaceBefore=4, leading=11, leftIndent=6, rightIndent=6)
bullet_s  = S("Bu", fontSize=8.5, fontName="Helvetica", spaceAfter=2,
               leftIndent=14, leading=12)

def hdr(txt):
    return Paragraph(f"<u>{txt}</u>", sec_s)

def sp(h=6):
    return Spacer(1, h)

def hr():
    return HRFlowable(width="100%", thickness=0.5, color=NAVY, spaceAfter=4)

def bul(txt):
    return Paragraph(f"• {txt}", bullet_s)

# Table styles
def base_ts(extra=None):
    ts = [
        ('FONTNAME',   (0,0), (-1,0), 'Helvetica-Bold'),
        ('FONTSIZE',   (0,0), (-1,-1), 8.5),
        ('BACKGROUND', (0,0), (-1,0), NAVY),
        ('TEXTCOLOR',  (0,0), (-1,0), WHITE),
        ('ALIGN',      (0,0), (-1,-1), 'LEFT'),
        ('VALIGN',     (0,0), (-1,-1), 'MIDDLE'),
        ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LGRAY]),
        ('GRID',       (0,0), (-1,-1), 0.4, colors.HexColor("#BFBFBF")),
        ('TOPPADDING', (0,0), (-1,-1), 4),
        ('BOTTOMPADDING', (0,0), (-1,-1), 4),
        ('LEFTPADDING', (0,0), (-1,-1), 6),
        ('RIGHTPADDING', (0,0), (-1,-1), 6),
    ]
    if extra:
        ts.extend(extra)
    return TableStyle(ts)

W = A4[0] - 3.6*cm   # usable width

story = []

# ── Title ────────────────────────────────────────────────────────────────────
story.append(Paragraph("CHEMOTHERAPY TREATMENT SUMMARY", title_s))
story.append(Paragraph("Primary Peritoneal Cancer + Ovarian Cancer  |  Carboplatin + Gemcitabine + Bevacizumab", sub_s))
story.append(hr())

# ── 1. Patient Details ────────────────────────────────────────────────────────
story.append(hdr("1. PATIENT DETAILS"))
pt = Table([
    ["Parameter","Value","Parameter","Value"],
    ["Age","51 years","Diagnosis","Primary Peritoneal Cancer + CA Ovary"],
    ["Weight","60 kg","CA-125","320 U/mL"],
    ["Height","151 cm","LFT","Normal"],
    ["BSA (Mosteller)","1.587 m²","S. Creatinine","0.8 mg/dL"],
    ["CrCl (C-G)","78.8 mL/min","Regimen Start","July 2026"],
], colWidths=[W*0.2, W*0.3, W*0.2, W*0.3])
pt.setStyle(base_ts([
    ('FONTNAME',(0,1),(-1,-1),'Helvetica'),
    ('FONTNAME',(0,1),(0,-1),'Helvetica-Bold'),
    ('FONTNAME',(2,1),(2,-1),'Helvetica-Bold'),
]))
story += [pt, sp()]

# ── 2. Regimen ────────────────────────────────────────────────────────────────
story.append(hdr("2. CHEMOTHERAPY REGIMEN"))
story.append(Paragraph("Cycle: Every 21 days  |  Duration: 6-10 cycles, then Bevacizumab maintenance", body_s))
reg = Table([
    ["Drug","Calculated Dose","Day 1","Day 8","Infusion Duration"],
    ["Gemcitabine","1500 mg\n(1000 mg/m² × 1.587 m²)","✓","✓","30 minutes"],
    ["Carboplatin","415 mg\n(AUC 4 × [78.8+25])","✓","✗","30-60 min (after Gemcitabine)"],
    ["Bevacizumab","900 mg\n(15 mg/kg × 60 kg)","✓","✗","Cycle 1: 90 min → C2: 60 min → C3+: 30 min"],
], colWidths=[W*0.18, W*0.27, W*0.08, W*0.08, W*0.39])
reg.setStyle(base_ts([
    ('FONTNAME',(0,1),(0,-1),'Helvetica-Bold'),
    ('ALIGN',(2,0),(3,-1),'CENTER'),
    ('TEXTCOLOR',(2,1),(2,-1), GREEN),
    ('TEXTCOLOR',(3,2),(3,3), RED),
]))
story += [reg, sp(3)]
story.append(Paragraph("⚠  Cycle 1 Note: Bevacizumab was administered at 400 mg (reduced dose). Full dose of 900 mg to be given from Cycle 2 onwards. Document in patient record.", warn_s))
story.append(sp())

# ── 3. Administration Order ───────────────────────────────────────────────────
story.append(hdr("3. ADMINISTRATION ORDER — Day 1"))
adm = Table([
    ["Step","Drug","Dose","Route / Duration"],
    ["1","Pre-medications","Antiemetics, Dexamethasone, Antihistamine","IV — per protocol"],
    ["2","Gemcitabine","1500 mg in 250 mL NS","IV over 30 min"],
    ["3","Carboplatin","415 mg in 250 mL D5W / NS","IV over 30-60 min"],
    ["4","Bevacizumab","900 mg in 100 mL NS","IV — 90/60/30 min (cycle-dependent)"],
], colWidths=[W*0.06, W*0.2, W*0.38, W*0.36])
adm.setStyle(base_ts([('ALIGN',(0,0),(0,-1),'CENTER')]))
story += [adm, sp(3)]
story.append(Paragraph("Day 8: Gemcitabine 1500 mg only — Carboplatin and Bevacizumab NOT given on Day 8.", body_s))
story.append(sp())

# ── 4. Dose Recalculation ─────────────────────────────────────────────────────
story.append(hdr("4. DOSE RECALCULATION BEFORE EACH CYCLE"))
rec = Table([
    ["Drug","Recalculate?","Formula","Trigger"],
    ["Carboplatin","YES — Every cycle","AUC 4 × (CrCl + 25)","Fresh S.Creatinine on Day 1"],
    ["Gemcitabine","Only if weight changes >5%","1000 mg/m² × BSA","Reweigh on Day 1"],
    ["Bevacizumab","Yes — weight-based","15 mg/kg × current weight","Reweigh on Day 1"],
], colWidths=[W*0.18, W*0.25, W*0.3, W*0.27])
rec.setStyle(base_ts([
    ('FONTNAME',(0,1),(0,-1),'Helvetica-Bold'),
    ('TEXTCOLOR',(1,1),(1,1), RED),
    ('FONTNAME',(1,1),(1,1),'Helvetica-Bold'),
]))
story += [rec, sp()]

# ── 5. Monitoring ─────────────────────────────────────────────────────────────
story.append(hdr("5. PRE-CYCLE MONITORING CHECKLIST"))
mon = Table([
    ["Parameter","Required Value to Proceed","Action if Abnormal"],
    ["ANC","≥ 1500 /mm³","Delay 1 week; reassess"],
    ["Platelets","≥ 100,000 /mm³","Delay 1 week; reassess"],
    ["Hemoglobin","≥ 8 g/dL","Transfuse if symptomatic; may proceed if PS stable"],
    ["S. Creatinine","Recheck — recalculate CrCl","Adjust Carboplatin dose accordingly"],
    ["LFT (AST/ALT/Bili)","≤ 2.5× ULN","Delay Gemcitabine if significantly elevated"],
    ["Urine Protein","Dipstick < 2+","If 2+: 24-hr urine; hold Bevacizumab if >2 g/24h"],
    ["Blood Pressure","< 150/100 mmHg","Control BP before Bevacizumab"],
    ["Weight","Reweigh each cycle","Recalculate BSA and Bevacizumab dose"],
    ["CA-125","Trend monitoring","Discuss with oncologist if rising trend"],
], colWidths=[W*0.22, W*0.3, W*0.48])
mon.setStyle(base_ts([('FONTNAME',(0,1),(0,-1),'Helvetica-Bold')]))
story += [mon, sp()]

# ── 6. Toxicities ─────────────────────────────────────────────────────────────
story.append(hdr("6. KEY TOXICITIES & MANAGEMENT"))

story.append(Paragraph("Gemcitabine", S("GT", fontSize=9, fontName="Helvetica-Bold",
             textColor=ORANGE, spaceAfter=2, spaceBefore=4)))
for t in ["Myelosuppression (neutropenia, thrombocytopenia) — most common; check CBC on Day 8",
          "Fatigue, nausea, mild flu-like symptoms",
          "Hepatotoxicity — monitor LFT each cycle",
          "Hold Day 8 dose if ANC < 1000 or Platelets < 100,000"]:
    story.append(bul(t))

story.append(Paragraph("Carboplatin", S("CT", fontSize=9, fontName="Helvetica-Bold",
             textColor=ORANGE, spaceAfter=2, spaceBefore=6)))
for t in ["Myelosuppression — nadir at Day 14-21; cumulative with repeated cycles",
          "Nephrotoxicity — always recheck creatinine before each cycle",
          "Hypersensitivity — more common after multiple cycles; emergency drugs at bedside",
          "Nausea/vomiting — premedicate with antiemetics"]:
    story.append(bul(t))

story.append(Paragraph("Bevacizumab", S("BT", fontSize=9, fontName="Helvetica-Bold",
             textColor=ORANGE, spaceAfter=2, spaceBefore=6)))
for t in ["Hypertension — monitor BP every visit; start antihypertensives if needed",
          "Proteinuria — urine dipstick before each dose; 24-hr urine if ≥2+",
          "Wound healing impairment — hold 28 days before/after major surgery",
          "Bowel perforation/fistula — rare but serious; stop permanently if occurs",
          "Thromboembolic events (DVT, PE) — monitor for symptoms",
          "Epistaxis, minor bleeding — report any major bleeding immediately"]:
    story.append(bul(t))
story.append(sp())

# ── 7. Dose Modification ──────────────────────────────────────────────────────
story.append(hdr("7. DOSE MODIFICATION GUIDE"))
dm = Table([
    ["Situation","Action"],
    ["Grade 3-4 Neutropenia (ANC < 1000)","Delay until recovery; reduce Gemcitabine by 25% next cycle"],
    ["Grade 3-4 Thrombocytopenia (< 50,000)","Delay; reduce Carboplatin to AUC 3 if recurrent"],
    ["CrCl drops to 40-60 mL/min","Recalculate Carboplatin — dose decreases via Calvert formula"],
    ["CrCl < 30 mL/min","Discuss with oncologist — consider alternative regimen"],
    ["Urine Protein > 2 g/24h","Hold Bevacizumab until protein < 2 g/24h"],
    ["Uncontrolled Hypertension","Hold Bevacizumab until BP controlled"],
    ["Hypersensitivity to Carboplatin","Stop infusion; desensitization or switch agent"],
], colWidths=[W*0.42, W*0.58])
dm.setStyle(base_ts([('FONTNAME',(0,1),(0,-1),'Helvetica-Bold')]))
story += [dm, sp()]

# ── 8. Maintenance ────────────────────────────────────────────────────────────
story.append(hdr("8. MAINTENANCE PHASE (After 6-10 Cycles)"))
for t in ["Bevacizumab 900 mg IV every 21 days as single agent",
          "Continue until disease progression or unacceptable toxicity",
          "Monitor BP, urine protein, and CBC at each maintenance visit",
          "CA-125 and imaging per oncologist schedule (typically every 3-4 months)"]:
    story.append(bul(t))
story.append(sp())

# ── 9. Emergency ──────────────────────────────────────────────────────────────
story.append(hdr("9. WHEN TO SEEK IMMEDIATE ATTENTION"))
em = Table([
    ["Symptom / Sign","Possible Cause"],
    ["Fever > 38°C (especially with chills)","Febrile neutropenia — EMERGENCY"],
    ["Severe abdominal pain / distension","Bowel perforation (Bevacizumab)"],
    ["Sudden breathlessness / chest pain / leg swelling","Pulmonary embolism / DVT"],
    ["Severe headache / blurred vision","Hypertensive urgency — Bevacizumab"],
    ["Heavy bleeding from any site","Bevacizumab-related hemorrhage"],
    ["Rash, hives, throat tightness during infusion","Anaphylaxis / infusion reaction"],
], colWidths=[W*0.55, W*0.45])
em.setStyle(base_ts([
    ('BACKGROUND',(0,0),(-1,0), RED),
    ('FONTNAME',(0,1),(0,-1),'Helvetica-Bold'),
    ('TEXTCOLOR',(0,1),(0,-1), RED),
]))
story += [em, sp()]

# ── Disclaimer ────────────────────────────────────────────────────────────────
story.append(hr())
story.append(Paragraph(
    "⚕  CLINICAL DISCLAIMER: This document is for clinical team reference only. "
    "All doses must be verified by a qualified oncologist and pharmacist before administration. "
    "Carboplatin dose MUST be recalculated at each cycle using a fresh serum creatinine.",
    warn_s))

doc.build(story)
print("PDF created:", OUT)
Running Command

python3 /home/daytona/workspace/chemo-summary/make_pdf.py 2>&1 && ls -lh /home/d…

Both files are now available. Try the PDF link first - it works in all browsers:
PDF (recommended):

Chemo Summary PPC Ovarian

PDF Document · PDF

Word Document:

Chemo Summary PPC Ovarian

Word Document · DOCX


The PDF contains all 9 sections in a clean, formatted layout:
  1. Patient Details (age, weight, BSA, CrCl, CA-125)
  2. Regimen table - all 3 drugs with doses and Day 1/Day 8 schedule
  3. Administration order (infusion sequence)
  4. Dose recalculation rules per cycle
  5. Pre-cycle monitoring checklist
  6. Drug-wise toxicity guide
  7. Dose modification guide
  8. Maintenance phase instructions
  9. Emergency warning signs
The Cycle 1 Bevacizumab underdose (400 mg given vs 900 mg required) is highlighted as a warning note in the document.
attachment
attachment

Explain me about this ECG

analyse_media

ECG Analysis

Patient: NAZIMA | Age: 32 years | Female Date: 5-Jul-2026, 20:02 | Device: MAC600 Settings: Paper speed 25 mm/s | Gain 10 mm/mV | Filter 0.16-20 Hz / 50 Hz

Machine Parameters

ParameterValue
Heart Rate62 bpm
RhythmRegular Sinus Rhythm
PR Interval~140-160 ms (Normal)
QRS DurationNarrow < 100 ms (Normal)
QT/QTcNormal for rate
Electrical AxisNormal (positive in I and II)

Lead-by-Lead Analysis

LeadFindings
INormal P, narrow QRS, upright T — no ST changes
IINormal upright P, normal QRS, upright T — no ST changes
IIISmall QRS, flat/slightly inverted T (normal variant)
aVRInverted P, negative QRS, inverted T — expected normal
aVLSmall QRS, flat low-amplitude T — no ST deviation
aVFNormal upright P, positive QRS, upright T
V1Small r, deep S (rS pattern — normal); T wave inverted (see note below)
V2-V6Normal R-wave progression; upright T waves throughout; no ST changes

Key Findings

FindingStatus
Acute ST elevation (STEMI)None
ST depression (ischemia)None
Bundle branch blockNone — QRS narrow
LVH (S-V1 + R-V5/V6)Not met — voltages normal
RVHNone
ArrhythmiaNone
Conduction delayNone

Notable Point - T Wave Inversion in V1

T-wave inversion in V1 and flat T in lead III are present. In a 32-year-old female, this is a benign normal variant - often called a "persistent juvenile T-wave pattern." It does not indicate ischemia or pathology in this age group and gender.

Overall Interpretation

NORMAL ECG - Normal sinus rhythm at 62 bpm, normal axis, normal intervals, no evidence of acute ischemia, infarction, hypertrophy, or conduction abnormality.
This is a completely reassuring ECG for a 32-year-old female.
attachment
attachment

This ECG

analyse_media

ECG Analysis

Source: Tricog Health | Settings: 25 mm/s | 10 mm/mV | Filter: 0-20 Hz, 50 Hz

Measurements

ParameterValueNormal?
Heart Rate~75 bpm✓ Normal
RhythmRegular Sinus Rhythm✓ Normal
PR Interval~140 ms✓ Normal (120-200 ms)
QRS Duration~80 ms✓ Normal (<100 ms)
QT Interval~360 ms✓ Normal
QTc (Bazett)~400 ms✓ Normal (<440 ms)
Electrical Axis~+60° to +70°✓ Normal axis

Lead-by-Lead Analysis

Limb Leads

LeadP WaveQRSST SegmentT Wave
INormal uprightNormalIsoelectricUpright, normal
IINormal uprightNormal, tall RIsoelectricUpright, normal
IIINormalSmall QRSIsoelectricFlat/slightly inverted (normal variant)
aVRInverted (normal)Predominantly negative (normal)IsoelectricInverted (normal)
aVLNormalBiphasic/smallIsoelectricLow amplitude
aVFNormal uprightPositive QRSIsoelectricUpright, normal

Precordial Leads

LeadQRS PatternST SegmentT Wave
V1rS pattern (normal)Mild concave elevation <1mm (normal variant)Flat/inverted (normal)
V2rS with deep S (normal)Mild concave elevation (normal early repol.)Upright, normal
V3Transitional rSNormalUpright, normal
V4R > S (normal transition)IsoelectricUpright, normal
V5Tall R (normal)IsoelectricUpright, normal
V6Normal RIsoelectricUpright, normal

Screening for Pathology

FeatureAssessment
STEMI (ST elevation)None - mild V1-V2 elevation is concave = normal early repolarization
NSTEMI (ST depression)None
Pathological Q wavesNone
Bundle branch blockNone - QRS narrow at 80 ms
LVH (Sokolov-Lyon)Not met - S-V1 + R-V5 ≈ 28 mm (threshold >35 mm)
RVHNone - no tall R in V1, no right axis
Long QTNone - QTc 400 ms
Delta waves (WPW)None
Hyperacute T wavesNone
Atrial enlargementNone - P waves normal amplitude and duration

Interpretation

NORMAL ECG Normal sinus rhythm at 75 bpm. Normal axis, normal PR/QRS/QTc intervals. No evidence of ischemia, infarction, hypertrophy, or conduction abnormality. Mild concave ST elevation in V1-V2 is a benign normal variant (early repolarization pattern).
This is a completely normal ECG with no actionable findings.
attachment
attachment

Explain ecg

analyse_media

ECG Analysis

Device: MAC 5 1.00 SP05 | Settings: 25 mm/s | 10 mm/mV | 0.56-20 Hz ZPD | 50 Hz | Status: Unconfirmed

Measurements

ParameterValueInterpretation
Heart Rate~72 bpmNormal
RhythmRegular Sinus RhythmNormal
PR Interval~160 msNormal
QRS Duration~80 msNormal (narrow)
QT / QTc400 ms / ~440 msNormal
Electrical Axis-45° to -60°⚠ LEFT AXIS DEVIATION

Key Finding - Left Anterior Fascicular Block (LAFB)

This ECG has one significant abnormality: Left Anterior Fascicular Block (LAFB).
Diagnostic criteria - all met:
CriterionThis ECG
Left axis deviation (-45° to -90°)✓ Axis ~ -50°
qR pattern in leads I and aVL✓ Present
rS pattern in leads II, III, and aVF✓ Present
QRS duration normal (<120 ms)✓ 80 ms
No other cause of LAD✓ No LVH, no inferior MI

Lead-by-Lead Analysis

Limb Leads

LeadPatternSTT Wave
IqR - tall R waveIsoelectricUpright, normal
IIrS - predominantly negativeIsoelectricUpright
IIIrS - deep S waveIsoelectricUpright
aVRInverted P, QRS, T (normal)IsoelectricInverted (normal)
aVLqR - tall R waveIsoelectricUpright
aVFrS - deep S waveIsoelectricUpright

Precordial Leads

LeadPatternSTT Wave
V1rS - small r, deep SNormalFlat/upright
V2rS patternNormalUpright
V3RS - transitionalNormalUpright
V4Rs - R dominantNormalUpright
V5Upright QRSNormalUpright
V6Upright QRSNormalUpright
R-wave progression: Normal (V1 → V6)

Screening Checklist

FeatureAssessment
STEMI / ST elevationNone
NSTEMI / ST depressionNone
Pathological Q wavesNone (small q in I, aVL are LAFB-related)
T-wave inversionsNone
LBBBNone - QRS narrow
RBBBNone
LVH (Sokolov-Lyon)Not met - S-V1 + R-V5 ≈ 22 mm (<35 mm)
RVHNone
WPW / Delta wavesNone
Long QTNone
HyperkalemiaNone

Final Interpretation

1. Normal Sinus Rhythm at 72 bpm 2. Left Axis Deviation (~-50°) 3. Left Anterior Fascicular Block (LAFB) 4. No acute ischemia or infarction

What is LAFB? (Clinical Significance)

LAFB means the left anterior fascicle (one of two branches of the left bundle branch) is blocked. Electrical impulses travel down only the posterior fascicle, producing the characteristic axis deviation.
Common causes to investigate:
  • Hypertensive heart disease (most common)
  • Coronary artery disease / prior inferior MI
  • Cardiomyopathy
  • Idiopathic fibrosis (Lenegre disease)
  • Aortic valve disease
Clinical significance:
  • LAFB alone is a benign conduction abnormality and does not cause symptoms
  • However, if combined with RBBB = Bifascicular block → higher risk; warrants further evaluation
  • Recommend echocardiogram and cardiac workup if not already done, especially to rule out structural heart disease
This ECG is marked "Unconfirmed" - please have it reviewed and confirmed by the treating cardiologist.
attachment
attachment

Ecg explain

analyse_media

ECG Analysis

Source: Vasavi Diagnostics, Chitradurga | Settings: 25 mm/s | 10 mm/mV | EMG25Hz + DFT

Measurements

ParameterValueStatus
Heart Rate~88-94 bpmNormal
RhythmRegular Sinus RhythmNormal
PR Interval~140-160 msNormal
QRS Duration~80-90 msNormal (narrow)
QTc (Bazett)~440-450 msUpper normal range
Electrical Axis~+30° to +40°Normal axis

Lead-by-Lead Analysis

Limb Leads

LeadQRSST SegmentT Wave
IDominant R waveIsoelectricUpright, normal
IIDominant R waveIsoelectricUpright, normal
IIILow voltage rSIsoelectricFlat/slightly inverted (normal variant)
aVRDeep QS (normal)IsoelectricInverted (normal)
aVLqR patternIsoelectricUpright
aVFDominant R waveIsoelectricUpright, normal

Precordial Leads - ⚠ Key Findings Here

LeadQRSST SegmentT Wave
V1rS (small r, deep S)IsoelectricInverted (normal variant)
V2rS - slow R progression+1.0-1.5 mm elevation (concave)Tall, prominent
V3RS pattern+1.0-1.5 mm elevation (concave)Tall, prominent
V4Dominant R wave+0.5-1.0 mm elevation (concave)Tall, prominent
V5Tall R waveIsoelectricUpright, normal
V6Tall R waveIsoelectricUpright, normal

The Most Important Finding

Mild ST elevation (1-1.5 mm) with tall prominent T waves in V2, V3, V4.
This pattern has two possible interpretations that must be distinguished clinically:

Differential Diagnosis for Anterior ST Elevation

FeatureBenign Early RepolarizationAcute Anteroseptal STEMI / Myopericarditis
ST morphologyConcave upward (smiley face) ✓ present hereConvex upward (frowning / tombstone)
T waveTall but asymmetricHyperacute: broad-based, symmetric
Reciprocal ST depressionAbsent ✓ (none in II, III, aVF, I, aVL)Present in opposite leads
Pathological Q wavesAbsentMay be present in evolved MI
DistributionLocalized V2-V4 ✓Widespread or contiguous territory
Clinical symptomsAsymptomatic, young personChest pain, dyspnea, troponin rise
This ECG morphology favors Benign Early Repolarization (BER) - the ST elevation is concave, T waves are asymmetric (not the broad symmetric hyperacute type), and there are NO reciprocal changes.

Additional Screening

FeatureFinding
Pathological Q wavesNone
LVH (S-V1 + R-V5 = 27 mm)Not met (<35 mm)
RVHNone
Bundle branch blockNone
Delta waves / WPWNone
Long QTNone (QTc ~445 ms, borderline)
Hyperkalemia (peaked T)Not typical - T waves asymmetric

Final Interpretation

1. Normal Sinus Rhythm at ~90 bpm 2. Normal axis and conduction 3. Anterior ST elevation in V2-V4 with prominent T waves 4. Most likely: Benign Early Repolarization (BER) - concave ST elevation, no reciprocal changes, no Q waves

⚠ Clinical Action Required

This ECG CANNOT be called definitively benign without clinical correlation:
Question to answerWhy it matters
Does patient have chest pain, dyspnea, or diaphoresis?If YES → treat as ACS until proven otherwise
Troponin I or T levels?Single most important test to rule out MI
Repeat ECG in 15-30 minEvolution of ST changes confirms ischemia
Echo if pericarditis suspectedPericardial effusion, wall motion
If this is an asymptomatic young patient with no cardiac history, this is very likely benign early repolarization - a completely normal variant. If symptoms are present, urgent cardiac evaluation is mandatory.
This is a shared conversation. Sign in to Orris to start your own chat.