most effective PRP preparation method for knee joint osteoarthritis

Reading File
Finding Sources
Searching PubMed

"platelet-rich plasma" AND "knee osteoarthritis" AND preparation

Searching the Web

PRP preparation method knee osteoarthritis leukocyte rich poor platelet concentration most effective 2024 2025

Reading Article

PMID: 36502442

Searching PubMed

"leukocyte-poor" OR "leukocyte-rich" AND "platelet-rich plasma" AND "knee osteoarthritis"

Reading Web Page

https://driainduncan.com.au/prp-in-osteoarthritis/

Reading Article

PMID: 41629990

Reading Article

PMID: 36173473

Reading Article

PMID: 34826301

I now have comprehensive, high-quality evidence to synthesize a detailed answer. Here is the full synthesis:

PRP Preparation for Knee Osteoarthritis: Most Effective Method

PRP for knee OA is one of the most studied orthobiologic interventions, but outcomes vary significantly based on how the PRP is prepared. The key preparation variables are: leukocyte content, platelet concentration, activation method, and injection protocol.

1. Leukocyte Content: LP-PRP vs. LR-PRP

This is the most debated and clinically important preparation variable.
ParameterLP-PRPLR-PRP
Leukocyte concentrationBelow whole blood baselineAbove whole blood baseline
Typical centrifugationSoft spin (single/double)Hard spin or buffy coat technique
Inflammatory profileLower IL-1β, TNF-αHigher IL-1β, TNF-α
Local adverse reactionsLowerHigher (OR 3.3 vs HA, 95% CI 1.1–10.2)
Functional improvement (WOMAC, P-score)0.96 (highest ranked)0.82
The 2026 network meta-analysis (Xu et al., J Orthop Surg Res, PMID 41629990) — the most current and comprehensive evidence, including 21 RCTs and 2,254 patients — found that LP-PRP ranked highest for functional improvement (P-score 0.96 vs. L-PRP 0.82), with both superior to hyaluronic acid. The direct LP-PRP vs. LR-PRP comparison did not reach statistical significance, however, meaning current evidence cannot definitively mandate one over the other.
The 2022 JBJS network meta-analysis (Abbas et al., PMID 34826301), 23 studies, 2,260 patients, confirmed: SUCRA rankings consistently preferred LP-PRP across all outcome measures and time points (6 and 12 months), and LR-PRP carried a significantly higher risk of post-injection pain/swelling.
Clinical recommendation: LP-PRP is the preferred formulation for intra-articular knee OA, primarily due to its superior safety profile and trend toward better functional outcomes. Leukocytes in the joint space can amplify synovial inflammation, counteracting PRP's anabolic and anti-inflammatory growth factors.

2. Platelet Concentration

Higher platelet concentration = greater clinical benefit, with a clinically important threshold.
  • The 2025 AJSM meta-analysis (Bensa et al., Am J Sports Med 2025;53(3):745–754) showed high-platelet PRP (≥1,000,000 platelets/µL, i.e., ≥4× baseline) achieved MCID on WOMAC and VAS at 12 months, while low-platelet formulations did not sustain meaningful benefit beyond 3–6 months.
  • A ≥4-fold increase from whole blood baseline (normal: 150,000–450,000/µL) is the most commonly cited effective threshold.
  • Very high concentrations (>8×) may paradoxically inhibit cell proliferation due to growth factor excess — the therapeutic window matters.
Optimal target: ~1,000,000–1,500,000 platelets/µL (4–5× concentration).

3. Activation Method: Activated vs. Non-Activated

The 2023 systematic review and meta-analysis (Simental-Mendía et al., Clin Rheumatol, PMID 36502442) — 14 RCTs, 1,292 subjects — found:
  • Exogenously activated PRP produced significantly greater pain relief (SMD −1.05, 95% CI −1.58 to −0.52, p = 0.0001) and functional improvement (SMD −1.21, 95% CI −1.75 to −0.67, p < 0.0001)
  • Non-activated PRP did not reach significance on either outcome
  • Most common activator: calcium chloride (CaCl₂) — mimics the physiological coagulation cascade, triggering alpha-granule degranulation and releasing PDGF, TGF-β1, VEGF, IGF-1, and EGF
Other activation agents: thrombin (bovine/autologous), collagen type I. CaCl₂ is preferred clinically due to safety (no allogenic protein exposure) and ease of use.

4. Centrifugation Protocol

Two main methods:
  • Single spin (soft): Lower centrifugal force (~1,500–2,000 rpm, 5–10 min) → LP-PRP; simpler, preserves platelet integrity
  • Double spin (buffy coat): First spin separates red blood cells; second spin concentrates platelets → higher platelet yield but may include more leukocytes (LR-PRP)
For LP-PRP targeting knee OA: a single soft-spin protocol at ~1,500–2,000 rpm for 8–10 minutes is standard and most widely validated.

5. Injection Protocol

FactorEvidence-based recommendation
Number of injections3 injections (weekly × 3) outperform single injection for sustained benefit; Kim et al. 2023 (PMID 36173473) — both single and multiple beat HA at 12 months
Injection volume3–5 mL per injection
Interval1 week apart
GuidanceUltrasound-guided preferred for accuracy
Activity restrictionRelative rest 24–48 h post-injection; avoid NSAIDs (inhibit platelet function) for 2 weeks before and after

6. Patient Selection (Moderates Efficacy)

  • Best responders: Kellgren-Lawrence grades I–III (mild to moderate OA); younger patients; higher BMI does not appear to be a contrainditor
  • Poor responders: KL grade IV (bone-on-bone), severe synovitis, prior corticosteroid injections within 4 weeks
  • Benefit is most durable at 6–12 months; repeat courses are common at 6–12 months

Summary: Optimal PRP Preparation for Knee OA

ParameterRecommended
Leukocyte contentLeukocyte-poor (LP-PRP)
Platelet concentration≥1,000,000/µL (≥4× whole blood)
ActivationExogenous CaCl₂ activation
CentrifugationSingle soft spin ~1,500–2,000 rpm × 8–10 min
AnticoagulantACD-A (acid citrate dextrose) or sodium citrate preferred
Volume3–5 mL per injection
Dosing schedule3 weekly intra-articular injections

Key caveats: The field still lacks a universally accepted standardization protocol. The AAOS, ACR, and OARSI maintain cautious recommendations due to heterogeneity in preparation methods across trials, making direct comparisons difficult. The 2026 Xu et al. network meta-analysis represents the current best evidence, but notes that LP-PRP vs. LR-PRP superiority remains statistically non-significant in direct comparison, though LP-PRP consistently ranks higher and has a more favorable adverse event profile.

best BMAC preparation protocol for regenerative therapy in orthopedic

Reading File
Finding Sources
Searching PubMed

"bone marrow aspirate concentrate" AND preparation AND orthopedic

Searching the Web

BMAC bone marrow aspirate concentrate preparation protocol centrifugation aspiration site orthopedic regenerative 2024 2025

Reading Article

PMID: 39428140

Reading Article

PMID: 36410885

Reading Article

PMID: 40428811

Reading Web Page

https://www.briancolemd.com/wp-content/themes/ypo-theme/pdf/…

!

not well-formed (invalid token): line 7, column 70

We encountered an error while processing your request. Please try again or reach out to us for help.

research all available papers,RCT,Journals on BMAC preparation and use in orthopedic and prepare a BMAC preparation protocol for regenerative therapy in orthopedics clinic

Reading File
Searching PubMed

"bone marrow aspirate concentrate" AND orthopedic AND preparation

Searching PubMed

"bone marrow aspirate" AND "mesenchymal stem cells" AND "centrifugation" AND musculoskeletal

Searching the Web

BMAC preparation protocol iliac crest aspiration centrifugation MSC yield orthopedic clinic best practices 2024 2025

Finding Sources
Reading Article

PMID: 39428140

Reading Article

PMID: 36410885

Reading Article

PMID: 40428811

Reading Web Page

https://www.briancolemd.com/wp-content/themes/ypo-theme/pdf/…

Reading Article

PMID: 39506910

Reading Article

PMID: 39282657

Searching PubMed

"bone marrow aspirate" AND "iliac crest" AND "harvest" AND "progenitor cells" AND orthopedic

Searching the Web

Muschler technique BMAC sequential aspiration 2mL aliquots bone marrow harvest connective tissue progenitors protocol

Reading Article

PMID: 30961655

Reading Article

PMID: 40313480

Reading Web Page

https://pmc.ncbi.nlm.nih.gov/articles/PMC5443590/

This is a comprehensive, evidence-based BMAC protocol built from 10+ peer-reviewed sources including systematic reviews (2025), comparative device studies, and standardized surgical technique papers. Here are the critical takeaways:
The 5 most evidence-critical preparation decisions:
  1. Harvest site: Posterior iliac crest (PSIS) or anterior iliac crest — both equivalent in MSC yield. Appendicular sites (proximal tibia, distal femur) now confirmed equally viable by 2025 meta-analysis, allowing harvest near the operative field
  2. Aspiration technique: Sequential 2 mL aliquots with needle redirection (Muschler principle) — this single factor has the greatest impact on MSC yield per mL, more than device choice
  3. Anticoagulant: ACD-A preferred over heparin for platelet and growth factor preservation
  4. Processing: 3,200 rpm × 15 min (SmartPReP2) or equivalent closed-system centrifugation targeting ≥3–5× platelet concentration and ≥90% cell viability
  5. Volume: 60 mL aspirate → ~6 mL BMAC is the most consistently validated ratio across clinical trials
The most important current gap: no universally accepted standardization protocol exists, which limits direct comparison between studies and is the primary reason AAOS/ACR guidelines remain cautious about routine recommendation.

Create a patient education handout on BMAC preparation and expected recovery timeline

Reading File
Running Command

ls -la /home/daytona/workspace/ && ls /home/daytona/skills/docx/

Running Command

mkdir -p /home/daytona/workspace/bmac-handout && node -e "require('docx'); console.log('docx available')"

Writing File

~/bmac-handout/create_handout.js

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

// ── Colour palette ──────────────────────────────────────────────────────────
const NAVY   = "1B3A6B";   // headings, header bar
const TEAL   = "0E7C7B";   // section accent lines, table header
const AMBER  = "E8A020";   // callout boxes
const LIGHT  = "EEF4FB";   // alternating table rows / info boxes
const WHITE  = "FFFFFF";
const DARK   = "1A1A1A";   // body text

// ── Helpers ─────────────────────────────────────────────────────────────────
function noBorder() {
  return { style: BorderStyle.NONE, size: 0, color: "FFFFFF" };
}

function cellBorders(color = "CCCCCC") {
  const b = { style: BorderStyle.SINGLE, size: 4, color };
  return { top: b, bottom: b, left: b, right: b };
}

function sectionRule() {
  return new Paragraph({
    border: { bottom: { style: BorderStyle.SINGLE, size: 8, color: TEAL } },
    spacing: { before: 80, after: 80 },
    children: [],
  });
}

function heading1(text) {
  return new Paragraph({
    spacing: { before: 280, after: 60 },
    children: [
      new TextRun({
        text,
        bold: true,
        size: 26,
        color: NAVY,
        font: "Calibri",
      }),
    ],
  });
}

function heading2(text) {
  return new Paragraph({
    spacing: { before: 200, after: 40 },
    children: [
      new TextRun({
        text,
        bold: true,
        size: 22,
        color: TEAL,
        font: "Calibri",
      }),
    ],
  });
}

function body(text, { bold = false, italic = false, color = DARK, size = 20 } = {}) {
  return new Paragraph({
    spacing: { before: 40, after: 40 },
    children: [
      new TextRun({ text, bold, italic, size, color, font: "Calibri" }),
    ],
  });
}

function bullet(text, level = 0) {
  return new Paragraph({
    bullet: { level },
    spacing: { before: 30, after: 30 },
    children: [
      new TextRun({ text, size: 20, color: DARK, font: "Calibri" }),
    ],
  });
}

function calloutBox(title, lines, bgColor = LIGHT, titleColor = NAVY) {
  const rows = [
    new TableRow({
      children: [
        new TableCell({
          shading: { type: ShadingType.CLEAR, fill: TEAL },
          borders: { top: noBorder(), bottom: noBorder(), left: noBorder(), right: noBorder() },
          width: { size: 100, type: WidthType.PERCENTAGE },
          children: [
            new Paragraph({
              spacing: { before: 80, after: 80 },
              children: [
                new TextRun({ text: title, bold: true, size: 22, color: WHITE, font: "Calibri" }),
              ],
            }),
          ],
        }),
      ],
    }),
    new TableRow({
      children: [
        new TableCell({
          shading: { type: ShadingType.CLEAR, fill: bgColor },
          borders: { top: noBorder(), bottom: noBorder(), left: noBorder(), right: noBorder() },
          width: { size: 100, type: WidthType.PERCENTAGE },
          children: lines.map(l =>
            new Paragraph({
              spacing: { before: 40, after: 40 },
              children: [new TextRun({ text: l, size: 20, color: DARK, font: "Calibri" })],
            })
          ),
        }),
      ],
    }),
  ];

  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    borders: {
      top:    { style: BorderStyle.SINGLE, size: 6, color: TEAL },
      bottom: { style: BorderStyle.SINGLE, size: 6, color: TEAL },
      left:   { style: BorderStyle.SINGLE, size: 6, color: TEAL },
      right:  { style: BorderStyle.SINGLE, size: 6, color: TEAL },
      insideH:noBorder(), insideV: noBorder(),
    },
    rows,
  });
}

function timelineTable(rows_data) {
  const header = new TableRow({
    tableHeader: true,
    children: ["Timeframe", "What to Expect", "What to Do / Avoid"].map(h =>
      new TableCell({
        shading: { type: ShadingType.CLEAR, fill: NAVY },
        verticalAlign: VerticalAlign.CENTER,
        children: [
          new Paragraph({
            alignment: AlignmentType.CENTER,
            children: [new TextRun({ text: h, bold: true, size: 20, color: WHITE, font: "Calibri" })],
          }),
        ],
      })
    ),
  });

  const dataRows = rows_data.map(([time, expect, action], i) =>
    new TableRow({
      children: [time, expect, action].map(txt =>
        new TableCell({
          shading: { type: ShadingType.CLEAR, fill: i % 2 === 0 ? LIGHT : WHITE },
          children: [
            new Paragraph({
              spacing: { before: 60, after: 60 },
              children: [new TextRun({ text: txt, size: 19, color: DARK, font: "Calibri" })],
            }),
          ],
        })
      ),
    })
  );

  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    columnWidths: [1800, 4200, 4000],
    borders: {
      top:    cellBorders().top,
      bottom: cellBorders().bottom,
      left:   cellBorders().left,
      right:  cellBorders().right,
      insideH:{ style: BorderStyle.SINGLE, size: 3, color: "AAAAAA" },
      insideV:{ style: BorderStyle.SINGLE, size: 3, color: "AAAAAA" },
    },
    rows: [header, ...dataRows],
  });
}

function warningBox(title, lines) {
  return calloutBox("⚠  " + title, lines, "FFF8EC", "CC6600");
}

function greenBox(title, lines) {
  return calloutBox("✓  " + title, lines, "EBF7F0", "0E7C7B");
}

function spacer(pts = 120) {
  return new Paragraph({ spacing: { before: pts, after: 0 }, children: [] });
}

// ── Document header banner ──────────────────────────────────────────────────
function bannerTable(clinicName, subtitle) {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    borders: {
      top: noBorder(), bottom: { style: BorderStyle.SINGLE, size: 12, color: AMBER },
      left: noBorder(), right: noBorder(), insideH: noBorder(), insideV: noBorder(),
    },
    rows: [
      new TableRow({
        children: [
          new TableCell({
            shading: { type: ShadingType.CLEAR, fill: NAVY },
            children: [
              new Paragraph({
                alignment: AlignmentType.CENTER,
                spacing: { before: 160, after: 40 },
                children: [
                  new TextRun({ text: clinicName, bold: true, size: 36, color: WHITE, font: "Calibri" }),
                ],
              }),
              new Paragraph({
                alignment: AlignmentType.CENTER,
                spacing: { before: 0, after: 160 },
                children: [
                  new TextRun({ text: subtitle, size: 24, color: "CCE4FF", font: "Calibri", italics: true }),
                ],
              }),
            ],
          }),
        ],
      }),
    ],
  });
}

// ════════════════════════════════════════════════════════════════════════════
//  BUILD DOCUMENT
// ════════════════════════════════════════════════════════════════════════════
const doc = new Document({
  styles: {
    default: {
      document: {
        run: { font: "Calibri", size: 20, color: DARK },
      },
    },
  },
  sections: [
    {
      properties: {
        page: {
          margin: { top: 720, bottom: 720, left: 900, right: 900 },
        },
      },
      headers: {
        default: new Header({
          children: [
            new Paragraph({
              alignment: AlignmentType.RIGHT,
              spacing: { after: 0 },
              children: [
                new TextRun({ text: "PATIENT EDUCATION — BMAC THERAPY  |  Orthopaedic Regenerative Clinic", size: 16, color: "888888", font: "Calibri" }),
              ],
            }),
          ],
        }),
      },
      children: [
        // ── Banner ─────────────────────────────────────────────────────────
        bannerTable(
          "BONE MARROW ASPIRATE CONCENTRATE (BMAC) THERAPY",
          "Your Complete Guide to the Procedure and Recovery"
        ),

        spacer(180),

        // ── Section 1: What is BMAC ─────────────────────────────────────────
        heading1("1.  What Is BMAC Therapy?"),
        sectionRule(),
        spacer(60),
        body(
          "Bone Marrow Aspirate Concentrate (BMAC) is a regenerative treatment made entirely from " +
          "your own blood and bone marrow. A small sample of bone marrow is collected from your " +
          "pelvis, concentrated in a centrifuge (a spinning machine that separates cells), and then " +
          "injected into the injured or arthritic area of your body — all in the same clinic visit."
        ),
        spacer(40),
        calloutBox("Why use your own bone marrow?", [
          "Your bone marrow naturally contains healing cells called Mesenchymal Stem Cells (MSCs),",
          "along with growth factors and anti-inflammatory proteins. When concentrated and injected",
          "into a damaged joint or tissue, these cells help reduce pain, calm inflammation, and",
          "support the body's own repair processes.",
          "",
          "Because BMAC comes from your own body, there is no risk of rejection or allergic reaction.",
        ]),

        spacer(120),

        // ── Section 2: How it's made ────────────────────────────────────────
        heading1("2.  How Is BMAC Prepared? (Step-by-Step)"),
        sectionRule(),
        spacer(60),
        body("Here is exactly what happens on the day of your procedure:", { bold: true }),
        spacer(40),

        // Step table
        new Table({
          width: { size: 100, type: WidthType.PERCENTAGE },
          borders: {
            top: noBorder(), bottom: noBorder(), left: noBorder(), right: noBorder(),
            insideH: { style: BorderStyle.SINGLE, size: 3, color: "DDDDDD" },
            insideV: noBorder(),
          },
          rows: [
            ["STEP 1", "Blood Draw & Preparation",
             "A small blood sample is taken to run a baseline count. A local anaesthetic is injected into the skin and pelvis bone (iliac crest) to numb the area completely."],
            ["STEP 2", "Bone Marrow Aspiration (Harvest)",
             "Using a special hollow needle (trocar), your doctor gently draws 60 mL of bone marrow fluid from your pelvis. The needle is moved to several positions to collect the richest marrow — this technique maximises the number of healing cells. The procedure takes about 10–15 minutes. You may feel pressure but should not feel sharp pain."],
            ["STEP 3", "Centrifugation (Concentration)",
             "Your bone marrow sample is placed into an FDA-cleared processing device (centrifuge) which spins it at high speed for 15 minutes. This separates and concentrates the healing cells, platelets, and growth factors into approximately 6 mL of BMAC — roughly 5–10 times more concentrated than the original sample."],
            ["STEP 4", "Quality Check",
             "The concentrated BMAC is briefly checked for colour and cell content before use."],
            ["STEP 5", "Injection",
             "Using ultrasound guidance for precise placement, your doctor injects the BMAC directly into the target area (knee joint, shoulder, cartilage defect, etc.). The injection itself takes only 2–5 minutes."],
          ].map(([step, title, desc], i) =>
            new TableRow({
              children: [
                new TableCell({
                  shading: { type: ShadingType.CLEAR, fill: i % 2 === 0 ? TEAL : NAVY },
                  width: { size: 12, type: WidthType.PERCENTAGE },
                  verticalAlign: VerticalAlign.CENTER,
                  children: [
                    new Paragraph({
                      alignment: AlignmentType.CENTER,
                      children: [new TextRun({ text: step, bold: true, size: 18, color: WHITE, font: "Calibri" })],
                    }),
                  ],
                }),
                new TableCell({
                  shading: { type: ShadingType.CLEAR, fill: i % 2 === 0 ? "E8F4F4" : LIGHT },
                  width: { size: 88, type: WidthType.PERCENTAGE },
                  children: [
                    new Paragraph({
                      spacing: { before: 80, after: 20 },
                      children: [new TextRun({ text: title, bold: true, size: 20, color: NAVY, font: "Calibri" })],
                    }),
                    new Paragraph({
                      spacing: { before: 0, after: 80 },
                      children: [new TextRun({ text: desc, size: 19, color: DARK, font: "Calibri" })],
                    }),
                  ],
                }),
              ],
            })
          ),
        }),

        spacer(120),

        // ── Section 3: Before your procedure ──────────────────────────────
        heading1("3.  Before Your Procedure — What You Need to Do"),
        sectionRule(),
        spacer(60),

        warningBox("Medications to Stop Before Your Procedure", [
          "Stop taking anti-inflammatory medications (NSAIDs) 7 days before your procedure.",
          "These include: ibuprofen (Nurofen, Advil), naproxen (Naprosyn), diclofenac,",
          "aspirin (unless prescribed for your heart — check with your doctor first),",
          "and celecoxib (Celebrex).",
          "",
          "Why? NSAIDs reduce platelet activity and can decrease the effectiveness of BMAC.",
        ]),

        spacer(80),

        body("Also do the following before your appointment:", { bold: true }),
        bullet("Tell your doctor about ALL medications, including blood thinners (warfarin, rivaroxaban, apixaban)"),
        bullet("Stop blood-thinning medications as directed — your doctor will give you specific instructions"),
        bullet("Arrange a driver — you should not drive yourself home after the procedure"),
        bullet("Wear comfortable, loose-fitting clothing that gives easy access to your pelvis and the injection site"),
        bullet("Stay well hydrated — drink plenty of water the day before and morning of the procedure"),
        bullet("You may eat a normal meal before the procedure unless sedation is planned"),
        bullet("Bring your Medicare/insurance card and any recent scan reports (MRI, X-ray)"),

        spacer(120),

        // ── Section 4: On the day ──────────────────────────────────────────
        heading1("4.  On the Day of Your Procedure"),
        sectionRule(),
        spacer(60),

        body("The entire visit typically takes 60–90 minutes:", { bold: true }),
        spacer(40),

        new Table({
          width: { size: 100, type: WidthType.PERCENTAGE },
          columnWidths: [2000, 8000],
          borders: {
            top: { style: BorderStyle.SINGLE, size: 4, color: "CCCCCC" },
            bottom: { style: BorderStyle.SINGLE, size: 4, color: "CCCCCC" },
            left: noBorder(), right: noBorder(),
            insideH: { style: BorderStyle.SINGLE, size: 3, color: "EEEEEE" },
            insideV: noBorder(),
          },
          rows: [
            ["Arrival", "Check in, sign consent forms, change into gown if required"],
            ["Prep (15 min)", "Positioning, sterile preparation, local anaesthetic injection"],
            ["Harvest (10–15 min)", "Bone marrow collection from pelvis — you may feel pressure"],
            ["Processing (15 min)", "Centrifugation in processing device — you rest during this time"],
            ["Injection (5 min)", "BMAC injected into target joint under ultrasound guidance"],
            ["Recovery (20–30 min)", "Rest, observation, discharge instructions given"],
          ].map(([time, desc], i) =>
            new TableRow({
              children: [
                new TableCell({
                  shading: { type: ShadingType.CLEAR, fill: i % 2 === 0 ? LIGHT : WHITE },
                  children: [
                    new Paragraph({
                      spacing: { before: 60, after: 60 },
                      children: [new TextRun({ text: time, bold: true, size: 19, color: TEAL, font: "Calibri" })],
                    }),
                  ],
                }),
                new TableCell({
                  shading: { type: ShadingType.CLEAR, fill: i % 2 === 0 ? LIGHT : WHITE },
                  children: [
                    new Paragraph({
                      spacing: { before: 60, after: 60 },
                      children: [new TextRun({ text: desc, size: 19, color: DARK, font: "Calibri" })],
                    }),
                  ],
                }),
              ],
            })
          ),
        }),

        spacer(120),

        // ── Section 5: Recovery timeline ──────────────────────────────────
        heading1("5.  Your Recovery Timeline"),
        sectionRule(),
        spacer(60),
        body(
          "BMAC does not work instantly — it works through a biological process that takes weeks " +
          "to months. The timeline below gives you realistic expectations at each stage."
        ),
        spacer(60),

        timelineTable([
          [
            "Hours 0–48\n(Immediately After)",
            "• Soreness and bruising at the bone marrow harvest site (pelvis)\n" +
            "• Mild swelling or aching at the injection site\n" +
            "• Some patients feel initial worsening before improvement — this is normal (the healing process is beginning)",
            "• REST — avoid strenuous activity\n" +
            "• Ice pack (20 min on/off) for harvest site discomfort\n" +
            "• DO NOT take NSAIDs — use paracetamol (acetaminophen) for pain\n" +
            "• Keep injection site dry for 24 hours",
          ],
          [
            "Days 3–7\n(Early Recovery)",
            "• Harvest site soreness gradually improving\n" +
            "• Injection site swelling begins to settle\n" +
            "• Some patients notice very early reduction in joint aching",
            "• Gentle walking encouraged from Day 3\n" +
            "• Avoid high-impact activity (running, jumping, heavy lifting)\n" +
            "• Avoid swimming or submerging injection site for 7 days\n" +
            "• Continue to avoid NSAIDs",
          ],
          [
            "Weeks 2–4\n(Initial Healing)",
            "• Most harvest site pain resolves\n" +
            "• Some patients notice initial pain relief at treatment site\n" +
            "• Joint may still feel slightly stiff or swollen",
            "• Begin gentle physiotherapy as prescribed\n" +
            "• Continue avoiding NSAIDs for the full 2 weeks\n" +
            "• Low-impact activity: walking, cycling, swimming (from Week 2)\n" +
            "• Follow up appointment at Week 4",
          ],
          [
            "Weeks 4–8\n(Active Regeneration)",
            "• Many patients notice meaningful improvement in pain and function during this window\n" +
            "• Gradual increase in joint comfort and mobility\n" +
            "• This phase is when stem cells are most active in modulating the healing environment",
            "• Progress physiotherapy programme\n" +
            "• Introduce functional strengthening exercises\n" +
            "• Maintain healthy diet — protein, vitamin D, omega-3s support regeneration\n" +
            "• Avoid corticosteroid injections to the same area",
          ],
          [
            "Months 3–6\n(Peak Improvement)",
            "• Maximum benefit for most patients is reached between 3–6 months\n" +
            "• Significant reduction in pain and improved function reported by majority of patients\n" +
            "• Return to sport / normal activities typically possible",
            "• Review with your doctor at 3 months\n" +
            "• Discuss physiotherapy progression\n" +
            "• Discuss whether a second injection (booster) is appropriate at 6 months if partial response",
          ],
          [
            "Months 6–12\n(Long-Term Benefit)",
            "• Benefits can last 6–18 months or longer in many patients\n" +
            "• Sustained reduction in inflammation and pain\n" +
            "• Some studies show BMAC may slow cartilage degeneration",
            "• Annual review recommended\n" +
            "• Repeat treatment considered if symptoms return (typically after 6–12 months)\n" +
            "• Continue exercise and healthy weight to maximise results",
          ],
        ]),

        spacer(60),
        greenBox("When will I feel better?", [
          "Every patient responds differently. On average:",
          "  • First noticeable improvement:  4–8 weeks",
          "  • Peak benefit:  3–6 months",
          "  • Duration of benefit:  6–18 months (varies by condition severity and age)",
          "",
          "Patients with mild-to-moderate arthritis (KL Grade I–III) and younger patients tend to",
          "respond best. BMAC is not a cure — it is a treatment to reduce pain, improve function,",
          "and potentially slow disease progression.",
        ]),

        spacer(120),

        // ── Section 6: After care ─────────────────────────────────────────
        heading1("6.  After-Care Instructions"),
        sectionRule(),
        spacer(60),

        new Table({
          width: { size: 100, type: WidthType.PERCENTAGE },
          columnWidths: [5000, 5000],
          borders: {
            top: noBorder(), bottom: noBorder(), left: noBorder(), right: noBorder(),
            insideH: noBorder(), insideV: noBorder(),
          },
          rows: [
            new TableRow({
              children: [
                new TableCell({
                  margins: { right: 200 },
                  children: [
                    calloutBox("✓  DO — Recommended", [
                      "✓  Take paracetamol for mild pain",
                      "✓  Use ice packs on harvest site (not injection site)",
                      "✓  Stay hydrated — drink 2–3 L of water daily",
                      "✓  Eat a protein-rich, anti-inflammatory diet",
                      "✓  Do gentle walking from Day 3",
                      "✓  Follow your physiotherapy programme",
                      "✓  Keep all follow-up appointments",
                      "✓  Get adequate sleep — regeneration occurs during rest",
                      "✓  Supplement with Vitamin D if deficient",
                    ], "EBF7F0", TEAL),
                  ],
                }),
                new TableCell({
                  margins: { left: 200 },
                  children: [
                    calloutBox("✗  DO NOT — Avoid", [
                      "✗  DO NOT take NSAIDs for 2 weeks (ibuprofen, naproxen)",
                      "✗  DO NOT take corticosteroids (prednisone, cortisone injections)",
                      "✗  DO NOT run, jump, or lift heavy weights for 2 weeks",
                      "✗  DO NOT submerge injection site for 7 days",
                      "✗  DO NOT smoke — nicotine severely impairs stem cell healing",
                      "✗  DO NOT drink excessive alcohol (>1 standard drink/day)",
                      "✗  DO NOT drive on the day of procedure",
                      "✗  DO NOT apply heat to harvest site in first 48 hours",
                    ], "FFF0F0", "CC2200"),
                  ],
                }),
              ],
            }),
          ],
        }),

        spacer(120),

        // ── Section 7: Physio ─────────────────────────────────────────────
        heading1("7.  Physiotherapy and Exercise Guidance"),
        sectionRule(),
        spacer(60),

        body(
          "Physiotherapy is an essential part of your recovery. BMAC creates the biological conditions " +
          "for healing — physiotherapy helps you rebuild strength and function around the healed tissue."
        ),
        spacer(60),

        body("Phase 1 — Weeks 1–2: Protection", { bold: true, color: TEAL }),
        bullet("Gentle range-of-motion exercises only"),
        bullet("No weight-bearing exercise beyond normal walking"),
        bullet("Goal: protect the treatment site, allow initial healing"),
        spacer(30),
        body("Phase 2 — Weeks 3–6: Gentle Rehabilitation", { bold: true, color: TEAL }),
        bullet("Low-impact cardio: swimming (from Week 2–3), stationary cycling"),
        bullet("Begin gentle muscle activation exercises as prescribed"),
        bullet("Goal: reduce stiffness, restore normal movement"),
        spacer(30),
        body("Phase 3 — Weeks 7–12: Strengthening", { bold: true, color: TEAL }),
        bullet("Introduce progressive resistance exercises"),
        bullet("Balance and proprioception training"),
        bullet("Goal: rebuild muscle strength and joint stability"),
        spacer(30),
        body("Phase 4 — Months 3–6: Functional Return", { bold: true, color: TEAL }),
        bullet("Sport-specific drills (if applicable)"),
        bullet("Return to recreational sport with your physiotherapist's clearance"),
        bullet("Goal: return to full function and maintain long-term joint health"),

        spacer(120),

        // ── Section 8: Red flags ──────────────────────────────────────────
        heading1("8.  When to Call Us — Warning Signs"),
        sectionRule(),
        spacer(60),

        warningBox("Seek Medical Attention Immediately If You Experience:", [
          "🔴  Increasing redness, warmth, or swelling at the injection or harvest site after 48 hours",
          "🔴  Fever above 38°C (100.4°F)",
          "🔴  Discharge or pus from either wound site",
          "🔴  Sudden severe pain (not the gradual soreness expected in first 48 hours)",
          "🔴  Numbness or tingling in the leg or arm following the procedure",
          "🔴  Difficulty walking or bearing weight that significantly worsens after Day 3",
          "",
          "These symptoms may indicate infection — contact our clinic immediately or",
          "go to your nearest emergency department.",
        ]),

        spacer(80),

        greenBox("Normal Post-Procedure Symptoms (Not Cause for Concern)", [
          "✓  Bruising or mild swelling at the pelvis harvest site — normal, resolves in 1–2 weeks",
          "✓  Mild aching or stiffness at the injection site for 3–5 days",
          "✓  Brief flare of pain in the treated joint in the first 1–2 weeks",
          "✓  Fatigue on the day of the procedure",
        ]),

        spacer(120),

        // ── Section 9: FAQ ────────────────────────────────────────────────
        heading1("9.  Frequently Asked Questions"),
        sectionRule(),
        spacer(60),

        ...[
          ["Is BMAC painful?", "The procedure is performed under local anaesthetic so you should feel pressure but not sharp pain. Some patients choose mild sedation. Post-procedure soreness at the harvest site (pelvis) is common for 3–7 days and is manageable with paracetamol."],
          ["How many injections will I need?", "Most patients receive a single injection. Some may benefit from a repeat injection at 6–12 months if symptoms return or improvement is partial. Your doctor will discuss this at your follow-up review."],
          ["Can I combine BMAC with PRP?", "Yes — in some cases your doctor may recommend combining BMAC with PRP (platelet-rich plasma) for enhanced results. This will be discussed with you before the procedure."],
          ["Will BMAC cure my arthritis?", "BMAC is not a cure for arthritis. It is a treatment designed to reduce pain, improve function, and potentially slow the progression of joint degeneration. It can provide significant relief but does not reverse severe structural damage."],
          ["What if BMAC doesn't work for me?", "Not all patients respond to BMAC. Factors like age, severity of arthritis, and general health influence outcomes. If BMAC does not provide adequate relief, your doctor will discuss alternative options including further physiotherapy, other orthobiologic treatments, or surgical consultation."],
          ["Is BMAC covered by health insurance?", "Coverage varies. In most countries, BMAC is currently considered an emerging therapy and may not be covered by standard health insurance. Please speak with our billing team before your procedure for a cost estimate and your out-of-pocket responsibility."],
          ["How is BMAC different from a stem cell injection I've seen advertised?", "BMAC uses your own bone marrow cells prepared in the same visit — no cells are grown in a lab or come from a donor. It is approved for point-of-care use by the FDA and equivalent regulatory bodies. Beware of clinics offering 'expanded' or 'cultured' stem cells — these products require clinical trial approval and are not currently approved for general use."],
        ].flatMap(([q, a]) => [
          body(q, { bold: true, color: NAVY }),
          body(a),
          spacer(40),
        ]),

        spacer(120),

        // ── Section 10: Contact / Footer ──────────────────────────────────
        new Table({
          width: { size: 100, type: WidthType.PERCENTAGE },
          borders: {
            top: { style: BorderStyle.SINGLE, size: 8, color: AMBER },
            bottom: { style: BorderStyle.SINGLE, size: 8, color: AMBER },
            left: noBorder(), right: noBorder(),
            insideH: noBorder(), insideV: noBorder(),
          },
          rows: [
            new TableRow({
              children: [
                new TableCell({
                  shading: { type: ShadingType.CLEAR, fill: LIGHT },
                  children: [
                    new Paragraph({
                      alignment: AlignmentType.CENTER,
                      spacing: { before: 120, after: 20 },
                      children: [new TextRun({ text: "CONTACT YOUR CLINIC", bold: true, size: 22, color: NAVY, font: "Calibri" })],
                    }),
                    new Paragraph({
                      alignment: AlignmentType.CENTER,
                      spacing: { before: 0, after: 20 },
                      children: [new TextRun({ text: "Orthopaedic Regenerative Clinic", size: 20, color: TEAL, font: "Calibri", bold: true })],
                    }),
                    new Paragraph({
                      alignment: AlignmentType.CENTER,
                      spacing: { before: 0, after: 20 },
                      children: [new TextRun({ text: "Phone: ________________  |  Email: ________________", size: 19, color: DARK, font: "Calibri" })],
                    }),
                    new Paragraph({
                      alignment: AlignmentType.CENTER,
                      spacing: { before: 0, after: 120 },
                      children: [new TextRun({ text: "Emergency After-Hours: ________________", size: 19, color: DARK, font: "Calibri" })],
                    }),
                  ],
                }),
              ],
            }),
          ],
        }),

        spacer(80),
        new Paragraph({
          alignment: AlignmentType.CENTER,
          spacing: { before: 40, after: 0 },
          children: [
            new TextRun({
              text: "This handout is for educational purposes only and does not replace personalised medical advice from your treating doctor.",
              size: 16, color: "888888", font: "Calibri", italics: true,
            }),
          ],
        }),
        new Paragraph({
          alignment: AlignmentType.CENTER,
          spacing: { before: 20, after: 0 },
          children: [
            new TextRun({
              text: "Document Reference: BMAC-PT-EDU-001  |  Version 1.0  |  Date: May 2026  |  Review: May 2027",
              size: 16, color: "AAAAAA", font: "Calibri",
            }),
          ],
        }),
      ],
    },
  ],
});

Packer.toBuffer(doc).then(buffer => {
  fs.writeFileSync("/home/daytona/workspace/bmac-handout/BMAC_Patient_Education_Handout.docx", buffer);
  console.log("Created: BMAC_Patient_Education_Handout.docx");
}).catch(err => {
  console.error("Error:", err);
  process.exit(1);
});
Running Command

cd /home/daytona/workspace/bmac-handout && node create_handout.js

Running Command

python3 /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/workspace/bmac-handout/BMAC_Patient_Education_Handout.docx

Running Command

cd /home/daytona/workspace/bmac-handout && python3 -c " import zipfile, os with zipfile.ZipFile('BMAC_Patient_Education_Handout.docx', 'r') as z: names = z.namelist() print('Files in docx:', names[:10]) print('Size:', os.path.getsize('BMAC_Patient_Education_Handout.docx'), 'bytes') # quick XML check xml = z.read('word/document.xml').decode('utf-8', errors='replace') print('document.xml length:', len(xml)) print('No XML errors found' if '</w:document>' in xml else 'WARNING: document.xml may be malformed') "

The document is valid and well-formed. Here it is:
📄

BMAC Patient Education Handout

Word Document · DOCX


What's in the handout

The document is a professionally formatted, clinic-ready patient education handout with 9 full sections:
SectionContent
1. What Is BMAC?Plain-language explanation of BMAC, why it uses your own bone marrow, and how healing cells work
2. How Is BMAC Prepared?5-step visual table (harvest → centrifuge → inject), written for a non-medical reader
3. Before Your ProcedureAmber warning box listing medications to stop (NSAIDs), plus a checklist of preparation steps
4. On the DayTimed schedule of the 60–90 minute visit
5. Recovery TimelineFull colour table: Hours 0–48 → Days 3–7 → Weeks 2–4 → Weeks 4–8 → Months 3–6 → Months 6–12, with what to expect and what to do at each stage
6. After-CareSide-by-side DO / DO NOT table with colour coding
7. Physiotherapy4-phase rehab progression (Weeks 1–12 → Month 3–6)
8. Warning SignsRed-flag symptoms requiring urgent contact vs. normal expected symptoms
9. FAQ7 common patient questions answered in plain language
FooterContact placeholder fields, disclaimer, document version/review date
Design: Navy and teal colour scheme with amber accent, callout boxes for critical information, consistent table formatting throughout. You can replace the clinic name, logo, and contact details to customise for your practice.

1-5

Asking for Preferences
This is a shared conversation. Sign in to Orris to start your own chat.