e please make me presentation on everything that is to know about QI cycles. Add the abstract of all the ongoing QI projects in low income countries. We are conducting a clinical audit on KMC in NICU so please add that to the presentation. Remember this is a presentation for all the pediatricians as i present to them.

Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Searching the Web

ongoing quality improvement projects Kangaroo Mother Care NICU low income countries

Searching PubMed

"quality improvement" AND "kangaroo mother care"

Reading Article

PMID: 37863504

Reading Article

PMID: 25001366

Reading Article

PMID: 35545277

Reading Article

PMID: 35545269

Searching PubMed

NEST360 kangaroo mother care

Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading Web Page

https://www.researchgate.net/publication/396602326_Scaling_u…

Finding Sources
Reading File
Reading File
Searching the Web

"NEST360" kangaroo mother care change package abstract Ethiopia Kenya Malawi Nigeria Tanzania

Running Command

mkdir -p /tmp/workspace/qi-kmc-presentation && ls -la /tmp/workspace/

Writing File

~/qi-kmc-presentation/build_ppt.py

"""
Build: QI Cycles + KMC NICU Clinical Audit presentation for pediatricians.
"""
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.enum.shapes import MSO_SHAPE
from pptx.oxml.ns import qn
import copy

# ---------- THEME ----------
NAVY = RGBColor(0x0E, 0x3A, 0x53)      # deep teal-navy
TEAL = RGBColor(0x12, 0x7C, 0x84)      # teal accent
LIGHT_TEAL = RGBColor(0xE4, 0xF3, 0xF3)
CORAL = RGBColor(0xE8, 0x7A, 0x5D)     # warm accent
GOLD = RGBColor(0xE0, 0xA5, 0x2E)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK = RGBColor(0x22, 0x2B, 0x2E)
GRAY = RGBColor(0x5B, 0x6B, 0x6E)
LIGHTGRAY = RGBColor(0xF2, 0xF4, 0xF4)

FONT = "Calibri"

prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
SW, SH = prs.slide_width, prs.slide_height
BLANK = prs.slide_layouts[6]

SLIDE_NUM = {"n": 0}
TOTAL_SLIDES_PLACEHOLDER = 24

def new_slide(bg=WHITE):
    s = prs.slides.add_slide(BLANK)
    bgel = s.background
    bgel.fill.solid()
    bgel.fill.fore_color.rgb = bg
    SLIDE_NUM["n"] += 1
    return s

def add_rect(slide, x, y, w, h, color, line=False):
    shp = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, x, y, w, h)
    shp.fill.solid()
    shp.fill.fore_color.rgb = color
    if line:
        shp.line.color.rgb = color
    else:
        shp.line.fill.background()
    shp.shadow.inherit = False
    return shp

def add_text(slide, x, y, w, h, text, size=18, color=DARK, bold=False, italic=False,
             align=PP_ALIGN.LEFT, anchor=MSO_ANCHOR.TOP, font=FONT, line_spacing=1.0, wrap=True):
    tb = slide.shapes.add_textbox(x, y, w, h)
    tf = tb.text_frame
    tf.word_wrap = wrap
    tf.vertical_anchor = anchor
    tf.margin_left = 0
    tf.margin_right = 0
    tf.margin_top = 0
    tf.margin_bottom = 0
    lines = text.split("\n") if isinstance(text, str) else text
    for i, line in enumerate(lines):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.text = line
        p.alignment = align
        p.line_spacing = line_spacing
        for r in p.runs:
            r.font.name = font
            r.font.size = Pt(size)
            r.font.bold = bold
            r.font.italic = italic
            r.font.color.rgb = color
    return tb

def add_bullets(slide, x, y, w, h, items, size=16, color=DARK, font=FONT,
                 space_after=10, line_spacing=1.05, bullet_color=TEAL, bold_first=False):
    """items: list of (text, level) or plain strings (level 0), or (text, level, bold)"""
    tb = slide.shapes.add_textbox(x, y, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = 0
    tf.margin_right = 0
    tf.margin_top = 0
    tf.margin_bottom = 0
    first = True
    for item in items:
        lvl = 0
        b = False
        if isinstance(item, tuple):
            if len(item) == 2:
                txt, lvl = item
            else:
                txt, lvl, b = item
        else:
            txt = item
        p = tf.paragraphs[0] if first else tf.add_paragraph()
        first = False
        p.level = 0
        indent = lvl * Inches(0.32)
        marker = "●  " if lvl == 0 else "–  "
        p.text = marker + txt
        p.space_after = Pt(space_after)
        p.line_spacing = line_spacing
        for r in p.runs:
            r.font.name = font
            r.font.size = Pt(size - (2 if lvl > 0 else 0))
            r.font.color.rgb = color if lvl == 0 else GRAY
            r.font.bold = b
        # manual indent via paragraph format
        pPr = p._pPr
        p.alignment = PP_ALIGN.LEFT
        tb.left = x
        # use indentation through margin adjust
        from pptx.oxml.ns import qn as _qn
    return tb

def indent_para(p, level_inches):
    pPr = p._p.get_or_add_pPr()
    pPr.set('marL', str(Emu(Inches(level_inches))))
    pPr.set('indent', '0')

def header(slide, kicker, title, num=True, dark=False):
    """Standard content-slide header with kicker + big title + accent bar."""
    add_rect(slide, 0, 0, SW, Inches(1.35), NAVY)
    add_rect(slide, 0, Inches(1.35), SW, Pt(3), CORAL)
    add_text(slide, Inches(0.55), Inches(0.18), Inches(11.5), Inches(0.35), kicker.upper(),
              size=13, color=GOLD, bold=True)
    add_text(slide, Inches(0.55), Inches(0.5), Inches(12.2), Inches(0.75), title,
              size=28, color=WHITE, bold=True)
    if num:
        add_text(slide, SW - Inches(1.0), Inches(0.4), Inches(0.6), Inches(0.4),
                  str(SLIDE_NUM["n"]), size=14, color=WHITE, align=PP_ALIGN.RIGHT)

def footer(slide, text="Quality Improvement Cycles & KMC Clinical Audit  |  Pediatrics Department"):
    add_text(slide, Inches(0.55), SH - Inches(0.4), Inches(10), Inches(0.3), text,
              size=9, color=GRAY, italic=True)
    add_text(slide, SW - Inches(1.0), SH - Inches(0.4), Inches(0.6), Inches(0.3),
              str(SLIDE_NUM["n"]), size=9, color=GRAY, align=PP_ALIGN.RIGHT)

def card(slide, x, y, w, h, fill=LIGHT_TEAL, line_color=None):
    shp = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, x, y, w, h)
    try:
        shp.adjustments[0] = 0.06
    except Exception:
        pass
    shp.fill.solid()
    shp.fill.fore_color.rgb = fill
    if line_color:
        shp.line.color.rgb = line_color
        shp.line.width = Pt(1)
    else:
        shp.line.fill.background()
    shp.shadow.inherit = False
    return shp

print("helpers ready")
prs.save("/tmp/workspace/qi-kmc-presentation/_scratch.pptx")
Running Command

cd /tmp/workspace/qi-kmc-presentation && python build_ppt.py

Helpers work. Now building the full slide deck content.
Editing File

~/qi-kmc-presentation/build_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/qi-kmc-presentation/build_ppt.py'
Running Command

cd /tmp/workspace/qi-kmc-presentation && python build_ppt.py

Working well. Continuing with slides 7-13 (frameworks, audit cycle, quality measures, tools, and the start of the KMC projects section).
Editing File

~/qi-kmc-presentation/build_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/qi-kmc-presentation/build_ppt.py'
Running Command

cd /tmp/workspace/qi-kmc-presentation && python build_ppt.py

Now the KMC background + section divider + the 5 project abstract slides.
Editing File

~/qi-kmc-presentation/build_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/qi-kmc-presentation/build_ppt.py'
Running Command

cd /tmp/workspace/qi-kmc-presentation && python build_ppt.py

Now the remaining 4 project slides plus summary table, using the project_slide helper.
Editing File

~/qi-kmc-presentation/build_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/qi-kmc-presentation/build_ppt.py'
Running Command

cd /tmp/workspace/qi-kmc-presentation && python build_ppt.py

Editing File

~/qi-kmc-presentation/build_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/qi-kmc-presentation/build_ppt.py'
Running Command

cd /tmp/workspace/qi-kmc-presentation && python build_ppt.py && ls -la QI_Cycles_KMC_Audit.pptx

The presentation is built successfully with all 25 slides. Here it is:

QI Cycles KMC Audit

Presentation · PPTX

What's inside (25 slides):
  1. Title & Agenda - framed for a pediatrics grand rounds audience
  2. QI Foundations - definitions (Crosby, CMS), QI vs. research vs. audit
  3. Theory - Shewhart's 3-step cycle and Deming's System of Profound Knowledge
  4. The PDSA Cycle - Plan/Do/Study/Act broken down visually
  5. Model for Improvement - IHI's 3 guiding questions
  6. Other frameworks - Lean/Kaizen, Six Sigma DMAIC, IHI Breakthrough Collaboratives
  7. Clinical Audit Cycle - the 4 stages, and how it differs from/complements PDSA
  8. Quality measures - Donabedian's structure/process/outcome framework
  9. Practical QI tools - fishbone, Pareto, run charts, driver diagrams, etc.
  10. KMC primer - definition, 4 components, why it needs QI not just guidelines
  11. 5 ongoing QI project abstracts in LMICs, each with background/methods/results/conclusion:
  • Karnataka, India - 6-centre QI collaborative (PMID 37863504)
  • India teaching hospital PDSA project (PMID 35545277)
  • India outborn-unit prolonged KMC (PMID 35545269)
  • Malawi/Mali/Rwanda/Uganda multi-country evaluation (PMID 25001366)
  • NEST360 Alliance change package (Ethiopia, Kenya, Malawi, Nigeria, Tanzania)
  • plus a comparison summary table
  1. Our clinical audit section - rationale, the audit cycle mapped to our KMC audit, proposed standards/indicators, a proposed PDSA timeline (baseline → 3 PDSA cycles → re-audit)
  2. Key takeaways and references
A few notes:
  • The NEST360 abstract text itself wasn't retrievable in full (it's a very recent preprint), so that slide summarizes the project scope and approach from available sources rather than quoting a verbatim abstract - flagged with its DOI/source for you to verify before presenting if you want the exact wording.
  • Slide 21-23 (audit cycle mapping, standards, PDSA timeline) are a proposed template for your actual audit - swap in your unit's real baseline numbers once you have them.
Let me know if you'd like the color scheme changed, slides trimmed/added, or your institution's logo/name added to the title slide.
This is a shared conversation. Sign in to Orris to start your own chat.