Make ppt on Cinchona officinalis with these topics: Introduction with common name, family, prover, class, prepared from, characteristics symptoms, sphere of action, mental, physical generals, head, face, gut, frs, nervous, fever, modalities

Reading File
Reading File
Finding Sources
Searching the Web

Cinchona officinalis China homeopathy materia medica mental symptoms head face fever modalities

Reading Web Page

http://homeoint.org/books/boericmm/c/chin.htm

Running Command

mkdir -p /tmp/workspace/cinchona-ppt && ls -la /tmp/workspace/

Writing File

~/cinchona-ppt/build_ppt.py

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

# ---------- Colors ----------
DARK_GREEN = RGBColor(0x1B, 0x4D, 0x3E)
GOLD = RGBColor(0xC9, 0xA2, 0x27)
CREAM = RGBColor(0xF7, 0xF3, 0xE8)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
TEXT_DARK = RGBColor(0x2B, 0x2B, 0x2B)

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_background(slide, color=CREAM):
    bg = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, SH)
    bg.fill.solid()
    bg.fill.fore_color.rgb = color
    bg.line.fill.background()
    bg.shadow.inherit = False
    slide.shapes._spTree.remove(bg._element)
    slide.shapes._spTree.insert(2, bg._element)
    return bg


def add_title_band(slide, title, subtitle=None):
    band = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, Inches(1.15))
    band.fill.solid()
    band.fill.fore_color.rgb = DARK_GREEN
    band.line.fill.background()
    band.shadow.inherit = False

    accent = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(1.15), SW, Pt(4))
    accent.fill.solid()
    accent.fill.fore_color.rgb = GOLD
    accent.line.fill.background()
    accent.shadow.inherit = False

    tb = slide.shapes.add_textbox(Inches(0.5), Inches(0.12), Inches(11.5), Inches(0.7))
    tf = tb.text_frame
    tf.word_wrap = True
    p = tf.paragraphs[0]
    r = p.add_run()
    r.text = title
    r.font.size = Pt(30)
    r.font.bold = True
    r.font.color.rgb = WHITE
    r.font.name = "Georgia"

    if subtitle:
        p2 = tf.add_paragraph()
        r2 = p2.add_run()
        r2.text = subtitle
        r2.font.size = Pt(15)
        r2.font.italic = True
        r2.font.color.rgb = GOLD
        r2.font.name = "Georgia"


def add_bullets(slide, items, left=0.7, top=1.5, width=11.9, height=5.6, font_size=18,
                 bullet_color=DARK_GREEN):
    tb = slide.shapes.add_textbox(Inches(left), Inches(top), Inches(width), Inches(height))
    tf = tb.text_frame
    tf.word_wrap = True
    first = True
    for item in items:
        if isinstance(item, tuple):
            text, level = item
        else:
            text, level = item, 0
        p = tf.paragraphs[0] if first else tf.add_paragraph()
        first = False
        p.level = level
        p.space_after = Pt(10 if level == 0 else 6)
        bullet_char = "\u25CF " if level == 0 else "\u2013 "
        r = p.add_run()
        r.text = bullet_char + text
        r.font.size = Pt(font_size if level == 0 else font_size - 2)
        r.font.color.rgb = TEXT_DARK if level else DARK_GREEN
        r.font.bold = (level == 0)
        r.font.name = "Calibri"
        if level == 0:
            r.font.color.rgb = TEXT_DARK
    return tb


def add_footer(slide, num):
    tb = slide.shapes.add_textbox(Inches(11.9), Inches(7.1), Inches(1.2), Inches(0.35))
    p = tb.text_frame.paragraphs[0]
    r = p.add_run()
    r.text = f"{num}"
    r.font.size = Pt(11)
    r.font.color.rgb = DARK_GREEN
    tb2 = slide.shapes.add_textbox(Inches(0.5), Inches(7.1), Inches(4), Inches(0.35))
    p2 = tb2.text_frame.paragraphs[0]
    r2 = p2.add_run()
    r2.text = "Cinchona officinalis (China) \u2013 Homeopathic Materia Medica"
    r2.font.size = Pt(10)
    r2.font.italic = True
    r2.font.color.rgb = RGBColor(0x7A, 0x7A, 0x7A)


def new_slide(title=None, subtitle=None, num=None):
    s = prs.slides.add_slide(blank)
    add_background(s)
    if title:
        add_title_band(s, title, subtitle)
    if num:
        add_footer(s, num)
    return s


# ---------------- SLIDE 1: TITLE ----------------
s = new_slide()
band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, SH)
band.fill.solid()
band.fill.fore_color.rgb = DARK_GREEN
band.line.fill.background()
band.shadow.inherit = False

deco = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(3.55), SW, Pt(3))
deco.fill.solid()
deco.fill.fore_color.rgb = GOLD
deco.line.fill.background()
deco.shadow.inherit = False

tb = s.shapes.add_textbox(Inches(1), Inches(2.5), Inches(11.3), Inches(1.0))
p = tb.text_frame.paragraphs[0]
p.alignment = PP_ALIGN.CENTER
r = p.add_run()
r.text = "CINCHONA OFFICINALIS"
r.font.size = Pt(48)
r.font.bold = True
r.font.color.rgb = WHITE
r.font.name = "Georgia"

tb2 = s.shapes.add_textbox(Inches(1), Inches(3.65), Inches(11.3), Inches(0.7))
p2 = tb2.text_frame.paragraphs[0]
p2.alignment = PP_ALIGN.CENTER
r2 = p2.add_run()
r2.text = "( CHINA OFFICINALIS )"
r2.font.size = Pt(24)
r2.font.italic = True
r2.font.color.rgb = GOLD
r2.font.name = "Georgia"

tb3 = s.shapes.add_textbox(Inches(1), Inches(4.5), Inches(11.3), Inches(0.6))
p3 = tb3.text_frame.paragraphs[0]
p3.alignment = PP_ALIGN.CENTER
r3 = p3.add_run()
r3.text = "A Study in Homeopathic Materia Medica"
r3.font.size = Pt(16)
r3.font.color.rgb = CREAM
r3.font.name = "Calibri"

# ---------------- SLIDE 2: INTRODUCTION ----------------
s = new_slide("Introduction", "The remedy that gave birth to Homeopathy", 2)
items = [
    ("Common Name: Peruvian Bark, China, Jesuit's Bark", 0),
    ("Botanical Family: Rubiaceae", 0),
    ("Prover: Dr. Samuel Hahnemann", 0),
    ("The very first drug proved by Hahnemann on himself; the experience that led him to the Law of Similars (Similia Similibus Curantur)", 1),
    ("Class / Kingdom: Plant kingdom \u2013 Bark remedies", 0),
    ("Prepared From: Dried bark of the Cinchona officinalis tree (grows in tropical Andean forests of South America)", 0),
    ("Tincture is prepared from the powdered bark; part used is the stem bark", 1),
]
add_bullets(s, items, font_size=19)

# ---------------- SLIDE 3: CHARACTERISTIC SYMPTOMS ----------------
s = new_slide("Characteristic (Keynote) Symptoms", None, 3)
items = [
    ("Debility from exhausting discharges / loss of vital fluids (blood, semen, milk, sweat, diarrhoea) with nervous erethism", 0),
    ("Marked periodicity \u2013 symptoms recur at fixed intervals (every other day / every week)", 0),
    ("Extreme sensitiveness to touch, yet hard pressure relieves \u2013 the great touch paradox of China", 0),
    ("Painless, exhausting, undigested diarrhoea, worse at night and after eating", 0),
    ("Flatulent distension of abdomen; belching does not relieve", 0),
    ("Weak, over-sensitive, nervous \u2013 upset by light, noise and odours (Boger)", 0),
    ("Seldom indicated in the early stage of acute disease \u2013 essentially a remedy of debility and after-effects", 0),
]
add_bullets(s, items, font_size=18)

# ---------------- SLIDE 4: SPHERE OF ACTION ----------------
s = new_slide("Sphere of Action", None, 4)
items = [
    ("Acts primarily on the blood and nervous system \u2013 produces an anaemic, exhausted state", 0),
    ("Affects the gastro-intestinal tract \u2013 liver, spleen, stomach and bowels", 0),
    ("Acts on the venous system and produces marked periodicity, characteristic of intermittent fevers", 0),
    ("Affects mucous membranes and glands \u2013 catarrh, glandular swelling", 0),
    ("Especially suited to persons debilitated by loss of fluids, chronic suppuration, gout, and post-operative states", 0),
    ("Constitution: thin, dry, bilious persons; or leuco-phlegmatic persons prone to dropsy, catarrh and diarrhoea", 0),
]
add_bullets(s, items, font_size=18)

# ---------------- SLIDE 5: MENTAL GENERALS ----------------
s = new_slide("Mental Generals", None, 5)
items = [
    ("Apathetic, indifferent, disobedient, taciturn, despondent", 0),
    ("Ideas crowd in the mind and prevent sleep", 0),
    ("Kent's \u201cnight-time castle-building\u201d \u2013 lies awake planning, theorising, building air-castles; in the morning wonders how he thought such foolish things", 1),
    ("Disposition to hurt other people's feelings; irritable and easily offended", 0),
    ("Sudden crying and tossing about", 0),
    ("Anxious and restless, with great prostration of mental capacities", 0),
    ("Gradually increasing irritability of the nerves \u2013 \u201cnerves always in a fret\u201d (Kent)", 0),
    ("First sign of mental exhaustion \u2013 tendency to misplace words while reading or writing", 0),
    ("Indecisiveness; emotions become exhausted; feels no one wants to connect with them", 0),
]
add_bullets(s, items, font_size=17)

# ---------------- SLIDE 6: PHYSICAL GENERALS ----------------
s = new_slide("Physical Generals", None, 6)
items = [
    ("Debility from loss of vital fluids \u2013 haemorrhage, suppuration, diarrhoea, sweat, over-lactation, seminal loss", 0),
    ("Marked periodicity of complaints (alternate days / weekly)", 0),
    ("Extreme sensitiveness to touch; relieved by hard pressure", 0),
    ("One hand ice-cold, the other warm", 0),
    ("Great debility, trembling, with a numb sensation", 0),
    ("Averse to exercise, yet weariness of joints worse on sitting", 0),
    ("Sensitive to draughts of air and to cold", 0),
    ("Craves stimulants; food (especially fruit, milk, beer, tea, sour wine) disagrees", 0),
    ("Free, profuse perspiration from the slightest exertion", 0),
]
add_bullets(s, items, font_size=17)

# ---------------- SLIDE 7: HEAD ----------------
s = new_slide("Head", None, 7)
items = [
    ("Sensation as if the skull would burst", 0),
    ("Sensation as if the brain were balancing to and fro, striking against the skull with great pain", 0),
    ("Intense throbbing of the head and carotids", 0),
    ("Spasmodic headache in the vertex, followed by a bruised pain in the sides of the head", 0),
    ("Scalp sensitive; worse on combing the hair", 0),
    ("Pain worse in open air, from temple to temple; worse from contact, current of air, and stepping", 0),
    ("Relieved by firm pressure and a warm room", 0),
    ("Dizziness on walking", 0),
]
add_bullets(s, items, font_size=18)

# ---------------- SLIDE 8: FACE ----------------
s = new_slide("Face", None, 8)
items = [
    ("Sallow, withered, shrunken, sickly (an anaemic, \u201cpumped-out\u201d appearance)", 0),
    ("Face bloated and red", 0),
    ("Flushed after haemorrhages, sexual excesses, or other loss of vital fluids", 0),
    ("Blue discoloration and hollowness around the eyes", 0),
    ("Complexion reflects the underlying anaemia and debility of the whole constitution", 0),
]
add_bullets(s, items, font_size=19)

# ---------------- SLIDE 9: GUT / GIT ----------------
s = new_slide("Gut (Gastro-Intestinal Tract)", None, 9)
items = [
    ("Stomach: tender, cold; vomiting of undigested food; slow digestion; sense of weight after eating", 0),
    ("Hungry, but without real appetite; food tastes flat, or too salty", 0),
    ("Flatulence and belching of bitter fluid; regurgitation gives no relief; worse after eating fruit", 0),
    ("Hiccough; bloatedness better on movement", 0),
    ("Abdomen: much flatulent colic, better on bending double; tympanitic (drum-like distension)", 0),
    ("Liver and spleen swollen and enlarged; gall-stone colic; jaundice", 0),
    ("Stool: undigested, frothy, yellow, and painless \u2013 worse at night, after meals, in hot weather, and from fruit, milk or beer", 0),
    ("Very weakening diarrhoea, with much flatulence; stool difficult to pass even when soft", 0),
]
add_bullets(s, items, font_size=17)

# ---------------- SLIDE 10: FRS ----------------
s = new_slide("FRS \u2013 Female Reproductive System", None, 10)
items = [
    ("Menses appear too early", 0),
    ("Profuse menses with pain; dark clots and abdominal distension", 0),
    ("Sexual desire too strong", 0),
    ("Bloody leucorrhoea, which seems to take the place of the usual menstrual discharge", 0),
    ("Painful sense of heaviness in the pelvis", 0),
    ("Complaints from loss of fluids during menses or lactation aggravate the whole constitutional picture", 0),
]
add_bullets(s, items, font_size=19)

# ---------------- SLIDE 11: NERVOUS SYSTEM ----------------
s = new_slide("Nervous System", None, 11)
items = [
    ("Nervous erethism (over-excitability) combined with profound debility \u2013 the central picture of China", 0),
    ("Gradually increasing sensitivity and irritability of the nerves throughout the body", 0),
    ("Extreme sensitiveness to touch, noise, light and odours; hard pressure relieves", 0),
    ("Trembling with numb sensation; weakness of nerves after loss of fluids", 0),
    ("Twitching and jerking of limbs; drawing and cramping in muscles", 0),
    ("Neuralgic pains that follow a periodic pattern", 0),
    ("Patients often ask, \u201cDoctor, what is the matter with me, I am so nervous?\u201d (Kent)", 0),
]
add_bullets(s, items, font_size=18)

# ---------------- SLIDE 12: FEVER ----------------
s = new_slide("Fever", None, 12)
items = [
    ("Classic remedy for intermittent fever (ague) \u2013 the fever that led Hahnemann to discover Homeopathy", 0),
    ("Paroxysms anticipate (come earlier each time); tend to return every week or on alternate days", 0),
    ("All stages of the fever are well marked and distinct \u2013 chill, heat, and sweat", 0),
    ("Chill generally begins in the forenoon, commencing in the chest/breast", 0),
    ("Thirst before the chill, taken in small and frequent sips", 0),
    ("Debilitating, profuse night-sweats", 0),
    ("Free perspiration brought on by the slightest exertion, often on single parts of the body", 0),
    ("Associated hay fever with watery coryza and pain in the temples", 0),
]
add_bullets(s, items, font_size=17)

# ---------------- SLIDE 13: MODALITIES ----------------
s = new_slide("Modalities", None, 13)

tb = s.shapes.add_textbox(Inches(0.6), Inches(1.4), Inches(6.0), Inches(0.5))
p = tb.text_frame.paragraphs[0]
r = p.add_run(); r.text = "WORSE ( \u25B2 )"; r.font.bold = True; r.font.size = Pt(20); r.font.color.rgb = RGBColor(0xA1, 0x2A, 0x2A)

worse = [
    "Slightest touch (though hard pressure relieves)",
    "Loss of vital fluids \u2013 haemorrhage, suppuration, diarrhoea, sweat, lactation",
    "Periodic \u2013 every other day / weekly recurrence",
    "Draught of air, cold, wind, open air",
    "At night, and after eating",
    "Fruit, milk, beer, fish, tea, sour wine",
    "Jar, noise, motion; mental exertion",
    "Bending over; combing hair",
]
add_bullets(s, [(w, 0) for w in worse], left=0.6, top=1.9, width=6.0, height=4.8, font_size=15)

tb2 = s.shapes.add_textbox(Inches(6.9), Inches(1.4), Inches(6.0), Inches(0.5))
p2 = tb2.text_frame.paragraphs[0]
r2 = p2.add_run(); r2.text = "BETTER ( \u25BC )"; r2.font.bold = True; r2.font.size = Pt(20); r2.font.color.rgb = RGBColor(0x1B, 0x6B, 0x3A)

better = [
    "Hard, firm pressure on the painful part",
    "Warm room; warmth in general",
    "Bending double (for flatulent colic)",
    "Movement / motion (for bloatedness and stiffness)",
    "Open air can occasionally relieve mental symptoms, though generally aggravates head pains",
]
add_bullets(s, [(b, 0) for b in better], left=6.9, top=1.9, width=6.0, height=4.8, font_size=15)

# ---------------- SLIDE 14: SUMMARY ----------------
s = new_slide()
band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, SH)
band.fill.solid(); band.fill.fore_color.rgb = DARK_GREEN; band.line.fill.background(); band.shadow.inherit = False
tb = s.shapes.add_textbox(Inches(1), Inches(2.7), Inches(11.3), Inches(1.2))
p = tb.text_frame.paragraphs[0]
p.alignment = PP_ALIGN.CENTER
r = p.add_run(); r.text = "Thank You"; r.font.size = Pt(44); r.font.bold = True; r.font.color.rgb = WHITE; r.font.name = "Georgia"
tb2 = s.shapes.add_textbox(Inches(1), Inches(3.9), Inches(11.3), Inches(0.8))
p2 = tb2.text_frame.paragraphs[0]
p2.alignment = PP_ALIGN.CENTER
r2 = p2.add_run(); r2.text = "Cinchona officinalis \u2013 the remedy of drained vitality and over-strung nerves"
r2.font.size = Pt(16); r2.font.italic = True; r2.font.color.rgb = GOLD

out_path = "/tmp/workspace/cinchona-ppt/Cinchona_officinalis.pptx"
prs.save(out_path)
print("Saved:", out_path)
print("Slides:", len(prs.slides.__iter__.__self__._sldIdLst))
Running Command

cd /tmp/workspace/cinchona-ppt && python3 build_ppt.py

Running Command

cd /tmp/workspace/cinchona-ppt && python3 -c " from pptx import Presentation prs = Presentation('Cinchona_officinalis.pptx') print('Total slides:', len(prs.slides)) for i, slide in enumerate(prs.slides,1): texts=[sh.text_frame.text.split(chr(10))[0] for sh in slide.shapes if sh.has_text_frame and sh.text_frame.text.strip()] print(i, texts[:1]) " && ls -la Cinchona_officinalis.pptx

Your presentation on Cinchona officinalis (China) is ready, covering all 14 requested sections:
  1. Title slide
  2. Introduction – common name (Peruvian Bark/China), family (Rubiaceae), prover (Hahnemann – his very first proving), class (plant/bark remedy), prepared from (dried bark)
  3. Characteristic Symptoms – debility from fluid loss, marked periodicity, touch paradox
  4. Sphere of Action – blood, nerves, GI tract, mucous membranes
  5. Mental Generals – apathy, irritability, "castle-building" at night
  6. Physical Generals – debility, periodicity, touch sensitivity relieved by pressure
  7. Head – bursting sensation, throbbing, worse open air/touch, better firm pressure
  8. Face – sallow, bloated, flushed after fluid loss
  9. Gut/GIT – flatulence, painless undigested diarrhoea, liver/spleen involvement
  10. FRS – menstrual and leucorrhoea symptoms
  11. Nervous System – nervous erethism, hypersensitivity, trembling
  12. Fever – classic intermittent fever picture (the fever that led to homeopathy's discovery)
  13. Modalities – worse/better table
  14. Closing slide
Content is drawn from Boericke's Materia Medica and Kent/Boger/Clarke keynotes.

Cinchona officinalis

Presentation · PPTX

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