Tommorow i should present a topic of clinical rehabilitation and scope of rehabilitation make a proper presentation for me on which I can speak about 10 min in classes
mkdir -p /tmp/workspace/rehab-presentation/output && ls -la /tmp/workspace/
~/rehab-presentation/build.py
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.enum.shapes import MSO_SHAPE
# ---------- Colors ----------
NAVY = RGBColor(0x0B, 0x2E, 0x4E)
TEAL = RGBColor(0x11, 0x7A, 0x8C)
LIGHT = RGBColor(0xF4, 0xF8, 0xFA)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
GRAY = RGBColor(0x4A, 0x4A, 0x4A)
ACCENT = RGBColor(0xE8, 0x8B, 0x2D)
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
BLANK = prs.slide_layouts[6]
SW, SH = prs.slide_width, prs.slide_height
def add_slide():
return prs.slides.add_slide(BLANK)
def bg(slide, color):
slide.background.fill.solid()
slide.background.fill.fore_color.rgb = color
def add_box(slide, x, y, w, h, color=None):
box = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, x, y, w, h)
box.fill.solid()
box.fill.fore_color.rgb = color if color else NAVY
box.line.fill.background()
box.shadow.inherit = False
return box
def add_text(slide, x, y, w, h, text, size=18, color=GRAY, bold=False,
align=PP_ALIGN.LEFT, font="Calibri", anchor=MSO_ANCHOR.TOP, italic=False):
tb = slide.shapes.add_textbox(x, y, w, h)
tf = tb.text_frame
tf.word_wrap = True
tf.vertical_anchor = anchor
p = tf.paragraphs[0]
p.text = text
p.alignment = align
r = p.runs[0]
r.font.size = Pt(size)
r.font.color.rgb = color
r.font.bold = bold
r.font.italic = italic
r.font.name = font
return tb
def add_bullets(slide, x, y, w, h, items, size=17, color=GRAY, bold_first=False,
space_after=10, font="Calibri", bullet_color=TEAL):
tb = slide.shapes.add_textbox(x, y, w, h)
tf = tb.text_frame
tf.word_wrap = True
for i, item in enumerate(items):
p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
if isinstance(item, tuple):
level, txt = item
else:
level, txt = 0, item
p.text = ("• " if level == 0 else "- ") + txt
p.level = 0
p.space_after = Pt(space_after)
r = p.runs[0]
r.font.size = Pt(size if level == 0 else size - 2)
r.font.color.rgb = color if level == 0 else GRAY
r.font.name = font
r.font.bold = (level == 0 and bold_first)
return tb
def header(slide, title, subtitle=None, num=None):
add_box(slide, 0, 0, SW, Inches(1.15), NAVY)
add_text(slide, Inches(0.6), Inches(0.18), Inches(11.5), Inches(0.8), title,
size=30, color=WHITE, bold=True, font="Calibri")
if subtitle:
add_text(slide, Inches(0.6), Inches(0.75), Inches(11.5), Inches(0.4), subtitle,
size=14, color=RGBColor(0xBF, 0xE3, 0xE8), italic=True)
add_box(slide, 0, Inches(1.15), SW, Inches(0.05), ACCENT)
if num:
add_text(slide, SW - Inches(0.9), SH - Inches(0.5), Inches(0.6), Inches(0.35),
str(num), size=12, color=RGBColor(0xAA, 0xAA, 0xAA), align=PP_ALIGN.RIGHT)
def set_notes(slide, text):
slide.notes_slide.notes_text_frame.text = text
# ================= SLIDE 1: TITLE =================
s = add_slide()
bg(s, NAVY)
add_box(s, 0, Inches(4.9), SW, Inches(0.08), ACCENT)
add_text(s, Inches(1), Inches(2.3), Inches(11.3), Inches(1.3),
"Clinical Rehabilitation and Its Scope", size=44, color=WHITE, bold=True, align=PP_ALIGN.CENTER)
add_text(s, Inches(1), Inches(3.45), Inches(11.3), Inches(0.6),
"Restoring Function, Dignity, and Independence", size=20, color=RGBColor(0xBF, 0xE3, 0xE8),
align=PP_ALIGN.CENTER, italic=True)
add_text(s, Inches(1), Inches(6.4), Inches(11.3), Inches(0.5),
"Seminar Presentation", size=14, color=RGBColor(0x9C, 0xB8, 0xC4), align=PP_ALIGN.CENTER)
set_notes(s, "Good morning everyone. Today I will be presenting on Clinical Rehabilitation and its Scope. "
"I'll cover what rehabilitation means, key WHO concepts, the team involved, the four major types "
"of rehabilitation, disability prevention, and where rehabilitation applies in real clinical practice. "
"This should take about 10 minutes.")
# ================= SLIDE 2: WHAT IS REHABILITATION =================
s = add_slide()
bg(s, WHITE)
header(s, "What is Rehabilitation?", num=2)
add_box(s, Inches(0.7), Inches(1.6), Inches(11.9), Inches(1.9), LIGHT)
add_text(s, Inches(1.0), Inches(1.85), Inches(11.3), Inches(1.4),
"\u201cThe combined and coordinated use of medical, social, educational and "
"vocational measures for training and retraining the individual to the "
"highest possible level of functional ability.\u201d",
size=22, color=NAVY, bold=True, italic=True)
add_text(s, Inches(1.0), Inches(3.15), Inches(4.2), Inches(0.4), "- World Health Organization (WHO)",
size=14, color=GRAY, italic=True)
add_bullets(s, Inches(0.8), Inches(3.9), Inches(11.5), Inches(3),
["It includes all measures aimed at reducing the impact of disabling and "
"handicapping conditions, and enabling disabled/handicapped persons to "
"achieve social integration",
"Goal: to make productive people out of non-productive people",
"Modern principle: the doctor's responsibility does not end when \u201cthe "
"temperature touches normal and the stitches are removed\u201d - the patient "
"must be restored to live and work \u201cto the hilt of his capacity\u201d",
"Rehabilitation should begin very early in the course of medical treatment, "
"not as an afterthought"], size=18)
set_notes(s, "Let's start with the definition. WHO defines rehabilitation as the combined and "
"coordinated use of medical, social, educational and vocational measures to train and "
"retrain a person to the highest possible level of functional ability. In simple words, "
"it's not just about curing disease, it's about restoring a person's ability to live and "
"work despite any remaining impairment. Historically, doctors felt their job ended once "
"the patient's vitals were normal and stitches removed. Today we know rehabilitation must "
"start early, right from the acute treatment phase, so the person can return to the fullest "
"capacity possible.")
# ================= SLIDE 3: WHO CONCEPTS (Impairment/Disability/Handicap) =================
s = add_slide()
bg(s, WHITE)
header(s, "Key WHO Concepts: The ID-H Chain", subtitle="Impairment -> Disability -> Handicap", num=3)
cols = [
("IMPAIRMENT", "Any loss or abnormality of psychological, physiological or "
"anatomical structure or function", "e.g. loss of a foot, defective vision"),
("DISABILITY", "Restriction or lack of ability to perform an activity in the "
"manner considered normal for a human being", "e.g. cannot walk"),
("HANDICAP", "A disadvantage that limits or prevents fulfilment of a normal "
"social role for that individual", "e.g. becomes unemployed"),
]
x = Inches(0.6)
w = Inches(3.95)
gap = Inches(0.15)
for i, (title, desc, ex) in enumerate(cols):
xpos = x + i * (w + gap)
box = add_box(s, xpos, Inches(1.55), w, Inches(4.3), LIGHT)
add_box(s, xpos, Inches(1.55), w, Inches(0.7), TEAL if i != 1 else NAVY)
add_text(s, xpos, Inches(1.55), w, Inches(0.7), title, size=20, color=WHITE, bold=True,
align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE)
add_text(s, xpos + Inches(0.25), Inches(2.5), w - Inches(0.5), Inches(2.2), desc,
size=15, color=GRAY)
add_text(s, xpos + Inches(0.25), Inches(4.9), w - Inches(0.5), Inches(0.8), ex,
size=13, color=ACCENT, italic=True, bold=True)
if i < 2:
add_text(s, xpos + w + Inches(0.02), Inches(3.4), gap + Inches(0.1), Inches(0.6), "\u2192",
size=28, color=NAVY, bold=True, align=PP_ALIGN.CENTER)
add_text(s, Inches(0.6), Inches(6.1), Inches(12.1), Inches(0.9),
"Intervention differs at each stage: impairment has a large medical component; "
"disability and handicap have large social and environmental components.",
size=14, color=GRAY, italic=True)
set_notes(s, "The WHO gives us three linked concepts. First, impairment - any loss or abnormality of "
"structure or function, like losing a foot. Second, because of that impairment, the person "
"cannot do certain normal activities - that's disability, such as not being able to walk. "
"Third, as a result of that disability, the person faces a social disadvantage - that's "
"handicap, for example becoming unemployed. It's important to note that impairment is mostly "
"a medical problem, while disability and handicap increasingly involve social and environmental "
"factors. This chain helps us understand where and how to intervene.")
# ================= SLIDE 4: DISABILITY PREVENTION LEVELS =================
s = add_slide()
bg(s, WHITE)
header(s, "Disability Prevention: Three Levels", num=4)
levels = [
("Primary Prevention", "Reduce the occurrence of impairment itself", "e.g. immunization against polio"),
("Secondary Prevention", "Limit disability through appropriate and timely treatment", "e.g. early physiotherapy after stroke/injury"),
("Tertiary Prevention", "Prevent the transition of disability into handicap", "e.g. vocational training, social reintegration"),
]
y = Inches(1.6)
for i, (t, d, e) in enumerate(levels):
yy = y + i * Inches(1.7)
add_box(s, Inches(0.7), yy, Inches(0.12), Inches(1.4), ACCENT)
add_text(s, Inches(1.0), yy, Inches(3.3), Inches(0.5), t, size=20, color=NAVY, bold=True)
add_text(s, Inches(1.0), yy + Inches(0.5), Inches(7.4), Inches(0.7), d, size=16, color=GRAY)
add_text(s, Inches(1.0), yy + Inches(1.0), Inches(7.4), Inches(0.5), e, size=14, color=TEAL, italic=True)
add_text(s, Inches(8.9), Inches(1.6), Inches(3.7), Inches(4.5),
"Note: About 70% of disability in developing countries stems from "
"communicable diseases, malnutrition, poor perinatal care and accidents.\n\n"
"Primary prevention remains the most effective and cost-efficient strategy.",
size=14, color=GRAY, italic=True)
set_notes(s, "Rehabilitation is closely tied to disability prevention, which works at three levels. "
"Primary prevention reduces impairment from occurring in the first place, like immunizing "
"children against polio. Secondary prevention limits disability once impairment has occurred, "
"through timely treatment, for example early physiotherapy after a stroke. Tertiary prevention "
"stops disability from turning into handicap, for example through vocational training so the "
"person can still earn a living. In developing countries, about seventy percent of disabling "
"conditions come from communicable disease, malnutrition, poor perinatal care and accidents, "
"so primary prevention gives us the biggest returns.")
# ================= SLIDE 5: SCOPE - FOUR TYPES OF REHABILITATION =================
s = add_slide()
bg(s, WHITE)
header(s, "Scope of Rehabilitation: Four Core Areas", num=5)
quad = [
("Medical Rehabilitation", "Restoration of physical/organ function", NAVY),
("Vocational Rehabilitation", "Restoration of capacity to earn a livelihood", TEAL),
("Social Rehabilitation", "Restoration of family and social relationships", ACCENT),
("Psychological Rehabilitation", "Restoration of personal dignity and confidence", RGBColor(0x6A, 0x4C, 0x93)),
]
positions = [(Inches(0.7), Inches(1.55)), (Inches(6.85), Inches(1.55)),
(Inches(0.7), Inches(4.35)), (Inches(6.85), Inches(4.35))]
w2, h2 = Inches(5.75), Inches(2.6)
for (title, desc, col), (px, py) in zip(quad, positions):
add_box(s, px, py, w2, h2, LIGHT)
add_box(s, px, py, Inches(0.15), h2, col)
add_text(s, px + Inches(0.4), py + Inches(0.25), w2 - Inches(0.6), Inches(0.6), title,
size=20, color=col, bold=True)
add_text(s, px + Inches(0.4), py + Inches(0.95), w2 - Inches(0.6), Inches(1.4), desc,
size=16, color=GRAY)
set_notes(s, "The scope of rehabilitation covers four core areas. Medical rehabilitation focuses on "
"restoring physical function through treatment, physiotherapy, and reconstructive surgery. "
"Vocational rehabilitation helps the person regain the capacity to earn a livelihood, sometimes "
"through a change of profession suited to their new ability. Social rehabilitation restores the "
"person's family and social relationships and helps reintegration into the community. Psychological "
"rehabilitation restores personal dignity and confidence, addressing the emotional impact of disability. "
"All four must work together for rehabilitation to be truly successful.")
# ================= SLIDE 6: REHABILITATION MEDICINE / PHYSIATRY =================
s = add_slide()
bg(s, WHITE)
header(s, "Rehabilitation Medicine (Physiatry)", num=6)
add_text(s, Inches(0.7), Inches(1.5), Inches(11.9), Inches(0.7),
"A recognized medical specialty (Physical Medicine & Rehabilitation) aimed at enhancing "
"and restoring functional ability and quality of life.", size=17, color=GRAY)
add_text(s, Inches(0.7), Inches(2.35), Inches(5.5), Inches(0.4), "Six Recognized Sub-specialties:",
size=17, color=NAVY, bold=True)
subs = ["Neuromuscular medicine", "Pain medicine", "Paediatric rehabilitation medicine",
"Spinal cord injury medicine", "Sports medicine", "Brain injury medicine"]
add_bullets(s, Inches(0.9), Inches(2.85), Inches(5.3), Inches(3.2), subs, size=16)
add_text(s, Inches(6.7), Inches(2.35), Inches(5.9), Inches(0.4), "The Rehabilitation Team:",
size=17, color=NAVY, bold=True)
team = ["Physiatrist (physician lead)", "Physiotherapist", "Occupational therapist",
"Speech therapist / Audiologist", "Clinical psychologist", "Social worker",
"Vocational guidance & placement counselor"]
add_bullets(s, Inches(6.9), Inches(2.85), Inches(5.3), Inches(3.5), team, size=16, bullet_color=ACCENT)
set_notes(s, "In recent years, rehabilitation medicine, also called physical medicine or physiatry, has "
"become a recognized medical specialty. A physiatrist specializes in restoring optimal function "
"to people with injuries to muscles, bones, ligaments or the nervous system. There are six "
"recognized sub-specialties: neuromuscular medicine, pain medicine, paediatric rehab medicine, "
"spinal cord injury medicine, sports medicine, and brain injury medicine. Rehabilitation is never "
"a one-person job. It requires a full team: the physiatrist leads, supported by physiotherapists, "
"occupational therapists, speech therapists, audiologists, psychologists, social workers, and "
"vocational counselors, all working together around the patient.")
# ================= SLIDE 7: EXAMPLES / APPLICATION =================
s = add_slide()
bg(s, WHITE)
header(s, "Rehabilitation in Practice: Examples", num=7)
examples = [
("Visual impairment", "Establishing schools for the blind, low-vision aids"),
("Orthopaedic / physical disability", "Provision of aids and appliances for the crippled/amputee"),
("Leprosy", "Reconstructive surgery, footwear, nerve-damage care"),
("Neurological disorders (stroke, SCI)", "Muscle re-education, graded exercises, mobility training"),
("Tuberculosis / cardiac disease", "Change of profession, modification of lifestyle and workload"),
]
y = Inches(1.6)
for i, (cond, act) in enumerate(examples):
yy = y + i * Inches(1.0)
add_box(s, Inches(0.7), yy + Inches(0.05), Inches(3.6), Inches(0.75), NAVY if i % 2 == 0 else TEAL)
add_text(s, Inches(0.85), yy + Inches(0.05), Inches(3.3), Inches(0.75), cond, size=15, color=WHITE,
bold=True, anchor=MSO_ANCHOR.MIDDLE)
add_text(s, Inches(4.55), yy + Inches(0.05), Inches(8.0), Inches(0.75), act, size=15, color=GRAY,
anchor=MSO_ANCHOR.MIDDLE)
set_notes(s, "Let me give a few concrete clinical examples to make this real. For visual impairment, "
"rehabilitation means schools for the blind and low vision aids. For orthopaedic disability, "
"it means aids, appliances and prosthetics for amputees. In leprosy, it involves reconstructive "
"surgery and protective footwear because nerve damage causes plantar ulcers. In neurological "
"conditions like stroke or spinal cord injury, it's muscle re-education and graded exercise "
"programs. And for chronic conditions like tuberculosis or cardiac disease, rehabilitation may "
"simply mean helping the person change their profession or modify their lifestyle to match their "
"reduced physical capacity.")
# ================= SLIDE 8: WHY REHAB MATTERS NOW =================
s = add_slide()
bg(s, WHITE)
header(s, "Why Rehabilitation Matters Today", num=8)
add_bullets(s, Inches(0.8), Inches(1.6), Inches(11.5), Inches(4.5), [
"Changing disease pattern: rising burden of chronic non-communicable diseases "
"(stroke, ischaemic heart disease, road traffic injuries) that leave survivors "
"with long-term impairment",
"Increasing survival after trauma, cancer, and critical illness means more "
"people living WITH disability, not just dying from disease",
"Rehabilitation is a difficult, resource-intensive task requiring cooperation "
"across medical, social and economic sectors, expertise, equipment and funding",
"Earlier intervention is more feasible, yields better results and uses fewer "
"scarce resources than late-stage rehabilitation",
"Aligned with WHO's broader goal: enabling disabled and handicapped persons "
"to achieve full social integration"
], size=18, space_after=16)
set_notes(s, "Why does this topic matter so much today? Disease patterns are shifting - we now see a "
"rising burden of stroke, heart disease and road traffic injuries, all of which leave survivors "
"with lasting impairment. Modern medicine is also better at keeping people alive after trauma, "
"cancer and critical illness, which means more people are living long-term with disability rather "
"than dying from the acute event. This makes rehabilitation services essential, not optional. It "
"is resource-intensive and needs cooperation from many sectors, but the evidence is clear that "
"earlier intervention gives better results with fewer resources than trying to fix things late.")
# ================= SLIDE 9: SUMMARY =================
s = add_slide()
bg(s, NAVY)
add_text(s, Inches(0.6), Inches(0.5), Inches(11.5), Inches(0.9), "Summary", size=34, color=WHITE, bold=True)
add_box(s, Inches(0.6), Inches(1.3), Inches(2.2), Inches(0.06), ACCENT)
add_bullets(s, Inches(0.8), Inches(1.7), Inches(11.5), Inches(5), [
"Rehabilitation = coordinated medical + social + educational + vocational effort "
"to restore highest possible function",
"WHO chain: Impairment -> Disability -> Handicap, each needing different intervention",
"Prevention operates at 3 levels: primary, secondary, tertiary",
"Scope covers 4 pillars: Medical, Vocational, Social, Psychological rehabilitation",
"Delivered by a multidisciplinary team led by a physiatrist",
"Start early, intervene early - the goal is to convert non-productive lives back "
"into productive, dignified ones"
], size=19, color=RGBColor(0xE8, 0xF3, 0xF5), space_after=14, bullet_color=ACCENT)
set_notes(s, "To summarize: rehabilitation is the coordinated use of medical, social, educational and "
"vocational measures to restore a person's highest possible functional ability. We use the WHO "
"chain of impairment, disability and handicap to understand where to intervene, and prevention "
"works at primary, secondary and tertiary levels. The scope spans four pillars - medical, "
"vocational, social and psychological rehabilitation - delivered by a multidisciplinary team led "
"by a physiatrist. The single most important message is: start early. Early rehabilitation gives "
"the best outcomes and turns a non-productive life back into a productive, dignified one. Thank you.")
# ================= SLIDE 10: THANK YOU / Q&A =================
s = add_slide()
bg(s, NAVY)
add_text(s, Inches(1), Inches(2.8), Inches(11.3), Inches(1), "Thank You",
size=48, color=WHITE, bold=True, align=PP_ALIGN.CENTER)
add_box(s, Inches(5.6), Inches(3.85), Inches(2.1), Inches(0.06), ACCENT)
add_text(s, Inches(1), Inches(4.1), Inches(11.3), Inches(0.6), "Questions & Discussion",
size=20, color=RGBColor(0xBF, 0xE3, 0xE8), align=PP_ALIGN.CENTER, italic=True)
set_notes(s, "Thank you for listening. I'm happy to take any questions now.")
prs.save("/tmp/workspace/rehab-presentation/output/Clinical_Rehabilitation_and_Scope.pptx")
print("Saved. Slides:", len(prs.slides.__iter__().__length_hint__()) if False else len(prs.slides._sldIdLst))
cd /tmp/workspace/rehab-presentation && python build.py
cd /tmp/workspace/rehab-presentation/output && python3 -c " from pptx import Presentation prs = Presentation('Clinical_Rehabilitation_and_Scope.pptx') print('Total slides:', len(prs.slides)) for i, slide in enumerate(prs.slides,1): texts = [sh.text_frame.text[:40] for sh in slide.shapes if sh.has_text_frame and sh.text_frame.text.strip()] print(i, texts[:2]) " && ls -la .
Clinical Rehabilitation and Scope
Presentation · PPTX
The topic is scope of rehabilitation
~/rehab-presentation/build_scope.py
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.enum.shapes import MSO_SHAPE
NAVY = RGBColor(0x0B, 0x2E, 0x4E)
TEAL = RGBColor(0x11, 0x7A, 0x8C)
LIGHT = RGBColor(0xF4, 0xF8, 0xFA)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
GRAY = RGBColor(0x4A, 0x4A, 0x4A)
ACCENT = RGBColor(0xE8, 0x8B, 0x2D)
PURPLE = RGBColor(0x6A, 0x4C, 0x93)
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
BLANK = prs.slide_layouts[6]
SW, SH = prs.slide_width, prs.slide_height
def add_slide():
return prs.slides.add_slide(BLANK)
def bg(slide, color):
slide.background.fill.solid()
slide.background.fill.fore_color.rgb = color
def add_box(slide, x, y, w, h, color=None):
box = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, x, y, w, h)
box.fill.solid()
box.fill.fore_color.rgb = color if color else NAVY
box.line.fill.background()
box.shadow.inherit = False
return box
def add_text(slide, x, y, w, h, text, size=18, color=GRAY, bold=False,
align=PP_ALIGN.LEFT, font="Calibri", anchor=MSO_ANCHOR.TOP, italic=False):
tb = slide.shapes.add_textbox(x, y, w, h)
tf = tb.text_frame
tf.word_wrap = True
tf.vertical_anchor = anchor
p = tf.paragraphs[0]
p.text = text
p.alignment = align
r = p.runs[0]
r.font.size = Pt(size)
r.font.color.rgb = color
r.font.bold = bold
r.font.italic = italic
r.font.name = font
return tb
def add_bullets(slide, x, y, w, h, items, size=17, color=GRAY, space_after=10, font="Calibri"):
tb = slide.shapes.add_textbox(x, y, w, h)
tf = tb.text_frame
tf.word_wrap = True
for i, item in enumerate(items):
p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
if isinstance(item, tuple):
level, txt = item
else:
level, txt = 0, item
p.text = ("• " if level == 0 else "- ") + txt
p.space_after = Pt(space_after)
r = p.runs[0]
r.font.size = Pt(size if level == 0 else size - 2)
r.font.color.rgb = color if level == 0 else GRAY
r.font.name = font
return tb
def header(slide, title, subtitle=None, num=None):
add_box(slide, 0, 0, SW, Inches(1.15), NAVY)
add_text(slide, Inches(0.6), Inches(0.18), Inches(11.5), Inches(0.8), title,
size=28, color=WHITE, bold=True, font="Calibri")
if subtitle:
add_text(slide, Inches(0.6), Inches(0.75), Inches(11.5), Inches(0.4), subtitle,
size=13, color=RGBColor(0xBF, 0xE3, 0xE8), italic=True)
add_box(slide, 0, Inches(1.15), SW, Inches(0.05), ACCENT)
if num:
add_text(slide, SW - Inches(0.9), SH - Inches(0.5), Inches(0.6), Inches(0.35),
str(num), size=12, color=RGBColor(0xAA, 0xAA, 0xAA), align=PP_ALIGN.RIGHT)
def set_notes(slide, text):
slide.notes_slide.notes_text_frame.text = text
# ============ SLIDE 1: TITLE ============
s = add_slide()
bg(s, NAVY)
add_box(s, 0, Inches(4.9), SW, Inches(0.08), ACCENT)
add_text(s, Inches(1), Inches(2.3), Inches(11.3), Inches(1.3), "Scope of Rehabilitation",
size=46, color=WHITE, bold=True, align=PP_ALIGN.CENTER)
add_text(s, Inches(1), Inches(3.5), Inches(11.3), Inches(0.6),
"How Far Does Rehabilitation Reach - Areas, Settings, Team and Conditions",
size=18, color=RGBColor(0xBF, 0xE3, 0xE8), align=PP_ALIGN.CENTER, italic=True)
add_text(s, Inches(1), Inches(6.4), Inches(11.3), Inches(0.5), "Seminar Presentation",
size=14, color=RGBColor(0x9C, 0xB8, 0xC4), align=PP_ALIGN.CENTER)
set_notes(s, "Good morning everyone. My topic today is the Scope of Rehabilitation. Scope means how far and "
"wide rehabilitation actually reaches - which areas of a person's life it covers, in what settings "
"it is delivered, who delivers it, and which conditions and life stages it applies to. I will walk "
"through each of these dimensions in about 10 minutes.")
# ============ SLIDE 2: DEFINITION RECAP ============
s = add_slide()
bg(s, WHITE)
header(s, "Rehabilitation: A Quick Recap", num=2)
add_box(s, Inches(0.7), Inches(1.5), Inches(11.9), Inches(1.7), LIGHT)
add_text(s, Inches(1.0), Inches(1.7), Inches(11.3), Inches(1.3),
"\u201cThe combined and coordinated use of medical, social, educational and vocational "
"measures for training and retraining the individual to the highest possible level "
"of functional ability.\u201d - WHO",
size=20, color=NAVY, bold=True, italic=True)
add_bullets(s, Inches(0.8), Inches(3.5), Inches(11.6), Inches(3),
["The word \u201ccombined and coordinated\u201d is the key - it tells us rehabilitation is "
"never a single action, it is a WIDE, multi-sector effort",
"This breadth of coverage is exactly what we mean by the \u201cScope\u201d of rehabilitation",
"Scope can be understood along four dimensions: (1) Functional areas restored, "
"(2) Settings of delivery, (3) Team/disciplines involved, (4) Conditions and "
"life-stages covered"], size=18, space_after=14)
set_notes(s, "Just to recap quickly - WHO defines rehabilitation as the combined and coordinated use of "
"medical, social, educational and vocational measures to train and retrain a person to the "
"highest possible functional ability. Notice the phrase 'combined and coordinated' - that single "
"phrase is really the key to understanding scope, because it tells us rehabilitation is never a "
"single narrow action, it is a wide multi-sector effort. For this talk, I will break the scope "
"down into four dimensions: the functional areas it restores, the settings where it is delivered, "
"the team of people involved, and the range of conditions and life-stages it covers.")
# ============ SLIDE 3: PRINCIPLE - PREVENTIVE REHAB ============
s = add_slide()
bg(s, WHITE)
header(s, "Guiding Principle: Prevent Dehabilitation", num=3)
add_text(s, Inches(0.7), Inches(1.5), Inches(11.9), Inches(1.0),
"\u201cWe should never allow dehabilitation to take place and afterwards take up the "
"uphill task of rehabilitation.\u201d", size=20, color=NAVY, bold=True, italic=True)
add_bullets(s, Inches(0.8), Inches(2.7), Inches(11.6), Inches(3.8), [
"The cheapest and surest rehabilitation is to PREVENT physical deformity and social/vocational "
"disruption in the first place - through early diagnosis and adequate treatment",
"This early, anticipatory approach is called \u201cpreventive rehabilitation\u201d",
"Rehabilitation must begin as soon as the disease/injury is diagnosed - not after "
"deformity or disability has already set in",
"This principle extends the scope of rehabilitation BACKWARDS - into acute care and even "
"disease-prevention programmes - rather than confining it to the end of treatment"
], size=18, space_after=16)
set_notes(s, "One guiding principle really expands the scope of rehabilitation: prevent dehabilitation "
"before it happens. The cheapest and surest form of rehabilitation is simply to prevent physical "
"deformity and social or vocational disruption through early diagnosis and adequate treatment. "
"This is called preventive rehabilitation. It means rehabilitation shouldn't wait until a person "
"already has a disability - it should start the moment a disease or injury is diagnosed. This "
"pushes the scope of rehabilitation backward, into acute care itself, rather than treating it as "
"something that only happens after treatment ends.")
# ============ SLIDE 4: DIMENSION 1 - FOUR FUNCTIONAL AREAS ============
s = add_slide()
bg(s, WHITE)
header(s, "Dimension 1: Four Functional Areas", subtitle="What rehabilitation restores", num=4)
quad = [
("Medical Rehabilitation", "Restoration of physical/organ function - prostheses, orthoses, "
"corrective surgery, physiotherapy", NAVY),
("Vocational Rehabilitation", "Restoration of the capacity to earn a livelihood - "
"retraining, job placement, change of profession", TEAL),
("Social Rehabilitation", "Restoration of family and social relationships, community reintegration", ACCENT),
("Psychological Rehabilitation", "Restoration of personal dignity, confidence and self-esteem", PURPLE),
]
positions = [(Inches(0.7), Inches(1.55)), (Inches(6.85), Inches(1.55)),
(Inches(0.7), Inches(4.35)), (Inches(6.85), Inches(4.35))]
w2, h2 = Inches(5.75), Inches(2.6)
for (title, desc, col), (px, py) in zip(quad, positions):
add_box(s, px, py, w2, h2, LIGHT)
add_box(s, px, py, Inches(0.15), h2, col)
add_text(s, px + Inches(0.4), py + Inches(0.25), w2 - Inches(0.6), Inches(0.6), title,
size=19, color=col, bold=True)
add_text(s, px + Inches(0.4), py + Inches(0.95), w2 - Inches(0.6), Inches(1.5), desc, size=15, color=GRAY)
set_notes(s, "The first dimension of scope is the functional areas rehabilitation restores. There are four: "
"medical rehabilitation, which restores physical or organ function through prostheses, orthopaedic "
"devices, corrective surgery and physiotherapy. Vocational rehabilitation, which restores a "
"person's capacity to earn a livelihood, sometimes through retraining or a complete change of "
"profession. Social rehabilitation, which restores family and social relationships and helps "
"reintegration into community life. And psychological rehabilitation, which restores personal "
"dignity, confidence and self-esteem. None of these four work in isolation - true rehabilitation "
"requires all four together.")
# ============ SLIDE 5: DIMENSION 2 - SETTINGS: INSTITUTION vs CBR ============
s = add_slide()
bg(s, WHITE)
header(s, "Dimension 2: Settings of Delivery", subtitle="Institution-based vs Community-Based Rehabilitation (CBR)", num=5)
add_box(s, Inches(0.7), Inches(1.55), Inches(5.7), Inches(4.5), LIGHT)
add_box(s, Inches(0.7), Inches(1.55), Inches(5.7), Inches(0.65), NAVY)
add_text(s, Inches(0.7), Inches(1.55), Inches(5.7), Inches(0.65), "Institution-Based Rehabilitation",
size=17, color=WHITE, bold=True, align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE)
add_bullets(s, Inches(0.95), Inches(2.4), Inches(5.2), Inches(3.5), [
"Delivered in hospitals, rehab centres, special schools",
"Needs specialized expertise, equipment and facilities",
"Costly, limited reach - mainly urban/tertiary centres",
"Best for complex medical/surgical needs (e.g. major prosthetic fitting)"
], size=15, space_after=10)
add_box(s, Inches(6.9), Inches(1.55), Inches(5.7), Inches(4.5), LIGHT)
add_box(s, Inches(6.9), Inches(1.55), Inches(5.7), Inches(0.65), TEAL)
add_text(s, Inches(6.9), Inches(1.55), Inches(5.7), Inches(0.65), "Community-Based Rehabilitation (CBR)",
size=17, color=WHITE, bold=True, align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE)
add_bullets(s, Inches(7.15), Inches(2.4), Inches(5.2), Inches(3.5), [
"WHO/NGO strategy within general community development",
"\u201cImplemented through combined efforts of disabled persons themselves, families, "
"organizations, communities, and govt/non-govt health, education, vocational and "
"social services\u201d",
"Aims at equalization of opportunity and social inclusion",
"Extends scope to rural/underserved areas at low cost"
], size=15, space_after=10)
set_notes(s, "The second dimension of scope is WHERE rehabilitation is delivered. Institution-based "
"rehabilitation happens in hospitals, dedicated rehab centres and special schools. It needs "
"specialized expertise and equipment, so it's costly and has limited reach, mostly in urban or "
"tertiary centres, but it's essential for complex medical or surgical needs. To extend the reach "
"further, WHO and major NGOs promote Community-Based Rehabilitation, or CBR. CBR is defined as a "
"strategy within general community development for the rehabilitation, equalization of opportunity "
"and social inclusion of all people with disabilities, implemented through the combined efforts of "
"disabled people themselves, their families, organizations, communities, and relevant government "
"and non-government services. This is what extends the scope of rehabilitation into rural and "
"underserved areas at a much lower cost.")
# ============ SLIDE 6: DIMENSION 3 - THE TEAM ============
s = add_slide()
bg(s, WHITE)
header(s, "Dimension 3: Who Delivers It", subtitle="A multidisciplinary team, led by a physiatrist", num=6)
add_text(s, Inches(0.7), Inches(1.45), Inches(11.9), Inches(0.6),
"Rehabilitation medicine (Physiatry) has 6 recognized sub-specialties:", size=16, color=NAVY, bold=True)
subs = ["Neuromuscular medicine", "Pain medicine", "Paediatric rehab medicine",
"Spinal cord injury medicine", "Sports medicine", "Brain injury medicine"]
xs = Inches(0.7)
for i, sub in enumerate(subs):
col = i % 3
row = i // 3
px = xs + col * Inches(4.05)
py = Inches(2.1) + row * Inches(0.75)
add_box(s, px, py, Inches(3.85), Inches(0.6), TEAL)
add_text(s, px, py, Inches(3.85), Inches(0.6), sub, size=13, color=WHITE, bold=True,
align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE)
add_text(s, Inches(0.7), Inches(3.85), Inches(11.9), Inches(0.5),
"Supporting allied-health and non-medical scope:", size=16, color=NAVY, bold=True)
team = ["Physiotherapist", "Occupational therapist", "Speech therapist / Audiologist",
"Clinical psychologist", "Social worker", "Vocational counselor / placement officer",
"Special educator", "Community rehab worker"]
for i, t in enumerate(team):
col = i % 4
row = i // 4
px = xs + col * Inches(2.98)
py = Inches(4.4) + row * Inches(0.75)
add_box(s, px, py, Inches(2.8), Inches(0.6), ACCENT)
add_text(s, px, py, Inches(2.8), Inches(0.6), t, size=12, color=WHITE, bold=True,
align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE)
set_notes(s, "The third dimension of scope is who actually delivers rehabilitation. Rehabilitation medicine, "
"or physiatry, is a recognized specialty with six sub-specialties: neuromuscular medicine, pain "
"medicine, paediatric rehab medicine, spinal cord injury medicine, sports medicine and brain injury "
"medicine. But the scope of the workforce goes far beyond doctors. It includes physiotherapists, "
"occupational therapists, speech therapists and audiologists, clinical psychologists, social "
"workers, vocational counselors, special educators, and at the community level, community "
"rehabilitation workers who visit patients at home. This wide team is what allows rehabilitation "
"to cover medical, vocational, social and psychological needs simultaneously.")
# ============ SLIDE 7: DIMENSION 4 - CONDITIONS & LIFE-STAGES ============
s = add_slide()
bg(s, WHITE)
header(s, "Dimension 4: Conditions and Life-Stages Covered", num=7)
examples = [
("Sensory disability", "Blindness/low vision, deafness - special schools, hearing aids, low-vision devices"),
("Physical/orthopaedic disability", "Amputees, polio, leprosy - prostheses, orthoses, corrective surgery"),
("Neurological disability", "Stroke, spinal cord injury, brain injury - muscle re-education, graded exercise"),
("Chronic disease", "TB, cardiac disease, cancer survivors - lifestyle change, occupational modification"),
("Special populations", "Paediatric, geriatric, mental illness - age/context-specific rehab programmes"),
]
y = Inches(1.55)
colors_c = [NAVY, TEAL, ACCENT, PURPLE, NAVY]
for i, (cond, act) in enumerate(examples):
yy = y + i * Inches(1.02)
add_box(s, Inches(0.7), yy + Inches(0.03), Inches(3.9), Inches(0.85), colors_c[i])
add_text(s, Inches(0.85), yy + Inches(0.03), Inches(3.6), Inches(0.85), cond, size=14, color=WHITE,
bold=True, anchor=MSO_ANCHOR.MIDDLE)
add_text(s, Inches(4.75), yy + Inches(0.03), Inches(7.8), Inches(0.85), act, size=14, color=GRAY,
anchor=MSO_ANCHOR.MIDDLE)
set_notes(s, "The fourth dimension of scope is the sheer range of conditions and life-stages rehabilitation "
"covers. Sensory disabilities like blindness or deafness are covered through special schools, "
"hearing aids and low-vision devices. Physical disabilities from amputation, polio or leprosy are "
"covered through prostheses, orthoses and corrective surgery. Neurological disability from stroke, "
"spinal cord injury or brain injury is covered through muscle re-education and graded exercise "
"programmes. Chronic disease survivors of tuberculosis, cardiac disease or cancer are helped "
"through lifestyle change and occupational modification. And special populations - children, the "
"elderly, and people with mental illness - all have their own age- and context-specific "
"rehabilitation programmes. This is really the widest part of the scope.")
# ============ SLIDE 8: SCOPE LINKED TO PREVENTION LEVELS ============
s = add_slide()
bg(s, WHITE)
header(s, "Scope Linked to Levels of Prevention", num=8)
levels = [
("Primary Prevention", "Reduce occurrence of impairment itself", "e.g. polio immunization"),
("Secondary Prevention", "Limit disability through timely treatment", "e.g. early physiotherapy post-stroke"),
("Tertiary Prevention", "Prevent disability turning into handicap", "e.g. vocational training, CBR, social reintegration"),
]
y = Inches(1.6)
for i, (t, d, e) in enumerate(levels):
yy = y + i * Inches(1.7)
add_box(s, Inches(0.7), yy, Inches(0.12), Inches(1.4), ACCENT)
add_text(s, Inches(1.0), yy, Inches(3.3), Inches(0.5), t, size=19, color=NAVY, bold=True)
add_text(s, Inches(1.0), yy + Inches(0.5), Inches(7.4), Inches(0.7), d, size=15, color=GRAY)
add_text(s, Inches(1.0), yy + Inches(1.0), Inches(7.4), Inches(0.5), e, size=14, color=TEAL, italic=True)
add_text(s, Inches(8.9), Inches(1.6), Inches(3.7), Inches(4.5),
"This shows rehabilitation's scope is not just 'after the fact' care - it operates across the "
"entire prevention continuum, from stopping impairment before it starts to reintegrating "
"disabled persons into society.",
size=14, color=GRAY, italic=True)
set_notes(s, "The scope of rehabilitation also maps onto the three levels of disability prevention. Primary "
"prevention reduces the occurrence of impairment itself, for example through polio immunization. "
"Secondary prevention limits disability through timely treatment, like early physiotherapy after a "
"stroke. Tertiary prevention prevents disability from becoming a social handicap, through "
"vocational training, CBR and social reintegration. This shows that rehabilitation's scope is not "
"confined to 'after the fact' care - it actually operates across the entire prevention continuum.")
# ============ SLIDE 9: WHY SCOPE IS EXPANDING ============
s = add_slide()
bg(s, WHITE)
header(s, "Why the Scope Keeps Expanding", num=9)
add_bullets(s, Inches(0.8), Inches(1.6), Inches(11.5), Inches(4.8), [
"Changing disease pattern - rising burden of stroke, ischaemic heart disease and road "
"traffic injuries leaves more survivors with long-term impairment",
"Better acute/critical care means more people survive WITH disability, not just die "
"from the acute event - demand for rehab keeps growing",
"Global push for Community-Based Rehabilitation (CBR) is pulling the scope out of "
"hospitals and into homes and villages",
"Recognition of physiatry as a formal specialty (with 6 sub-specialties) has "
"professionalized and widened medical rehabilitation",
"National disability and elderly-care programmes are adding rehabilitation services "
"at the primary health centre level, extending scope down to grassroots"
], size=17, space_after=14)
set_notes(s, "Why does this scope keep growing? Disease patterns are shifting toward chronic conditions like "
"stroke and heart disease that leave survivors with lasting impairment. Better critical and acute "
"care means more people survive with disability rather than dying, so the demand for rehab "
"services keeps rising. The global push for Community-Based Rehabilitation is pulling services out "
"of hospitals and into homes and villages. Physiatry becoming a formal specialty with six "
"sub-specialties has professionalized medical rehabilitation. And national disability and "
"elderly-care programmes are now adding rehabilitation services right down at the primary health "
"centre level, extending the scope to the grassroots.")
# ============ SLIDE 10: SUMMARY - SCOPE AT A GLANCE ============
s = add_slide()
bg(s, NAVY)
add_text(s, Inches(0.6), Inches(0.45), Inches(11.5), Inches(0.8), "Scope of Rehabilitation - At a Glance",
size=30, color=WHITE, bold=True)
add_box(s, Inches(0.6), Inches(1.2), Inches(2.6), Inches(0.06), ACCENT)
grid = [
("Areas", "Medical, Vocational, Social, Psychological"),
("Settings", "Institution-based & Community-Based Rehabilitation (CBR)"),
("Team", "Physiatrist-led multidisciplinary team of 8+ disciplines"),
("Conditions", "Sensory, physical, neurological, chronic disease, special populations"),
("Prevention levels", "Primary, Secondary, Tertiary"),
("Principle", "Start early - prevent dehabilitation, don't wait to rehabilitate"),
]
y0 = Inches(1.6)
for i, (k, v) in enumerate(grid):
row, col = divmod(i, 2)
px = Inches(0.6) + col * Inches(6.2)
py = y0 + row * Inches(1.75)
add_box(s, px, py, Inches(5.9), Inches(1.55), RGBColor(0x15, 0x3E, 0x60))
add_text(s, px + Inches(0.3), py + Inches(0.15), Inches(5.3), Inches(0.4), k, size=16,
color=ACCENT, bold=True)
add_text(s, px + Inches(0.3), py + Inches(0.6), Inches(5.3), Inches(0.9), v, size=14,
color=RGBColor(0xE8, 0xF3, 0xF5))
set_notes(s, "To summarize the scope of rehabilitation in one picture: it spans four functional areas - "
"medical, vocational, social and psychological. It spans two main settings - institution-based "
"and community-based rehabilitation. It is delivered by a physiatrist-led multidisciplinary team "
"of at least eight different disciplines. It covers a very wide range of conditions - sensory, "
"physical, neurological, chronic disease, and special populations across all life stages. It maps "
"onto all three levels of disability prevention. And the guiding principle throughout is to start "
"early - prevent dehabilitation rather than waiting to rehabilitate after the damage is done.")
# ============ SLIDE 11: THANK YOU ============
s = add_slide()
bg(s, NAVY)
add_text(s, Inches(1), Inches(2.8), Inches(11.3), Inches(1), "Thank You", size=48, color=WHITE,
bold=True, align=PP_ALIGN.CENTER)
add_box(s, Inches(5.6), Inches(3.85), Inches(2.1), Inches(0.06), ACCENT)
add_text(s, Inches(1), Inches(4.1), Inches(11.3), Inches(0.6), "Questions & Discussion", size=20,
color=RGBColor(0xBF, 0xE3, 0xE8), align=PP_ALIGN.CENTER, italic=True)
set_notes(s, "Thank you for listening. I'm happy to take any questions now.")
prs.save("/tmp/workspace/rehab-presentation/output/Scope_of_Rehabilitation.pptx")
print("Saved slides:", len(prs.slides._sldIdLst))
cd /tmp/workspace/rehab-presentation && python build_scope.py && python3 -c " from pptx import Presentation prs = Presentation('output/Scope_of_Rehabilitation.pptx') print('slides:', len(prs.slides)) for i,s in enumerate(prs.slides,1): t=[sh.text_frame.text[:50] for sh in s.shapes if sh.has_text_frame and sh.text_frame.text.strip()] print(i, t[:1]) "
Scope of Rehabilitation
Presentation · PPTX