Give me ppt of dulcamara homoeopathic medicine
Dulcamara homoeopathic medicine materia medica keynotes indications
http://www.homeoint.org/books/boerickmm/d/dulc.htm
ls /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/dulcamara-ppt
~/dulcamara-ppt/create_ppt.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Dulcamara - Homoeopathic Medicine";
pres.author = "Homoeopathic Materia Medica";
// Color palette: deep forest green (dominant) + cream + amber accent + dark text
const C = {
darkGreen: "1B4332",
midGreen: "2D6A4F",
lightGreen: "52B788",
cream: "F8F5EE",
amber: "D4A017",
white: "FFFFFF",
textDark: "1A1A2E",
textMid: "2D3748",
mutedGreen: "40916C",
paleGreen: "D8F3DC",
bgSlide: "F0F7F4",
};
// ─── Helper: add section header band ───
function sectionBand(slide, label) {
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 10, h: 0.55,
fill: { color: C.darkGreen },
line: { width: 0 },
});
slide.addText(label, {
x: 0.3, y: 0, w: 9.4, h: 0.55,
fontSize: 13, bold: true, color: C.amber,
valign: "middle", margin: 0,
});
}
// ─── Helper: accent left bar ───
function leftBar(slide) {
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0.55, w: 0.09, h: 5.07,
fill: { color: C.lightGreen },
line: { width: 0 },
});
}
// ─── Helper: footer ───
function footer(slide, text) {
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 5.35, w: 10, h: 0.28,
fill: { color: C.darkGreen },
line: { width: 0 },
});
slide.addText(text, {
x: 0.2, y: 5.35, w: 9.6, h: 0.28,
fontSize: 8, color: C.paleGreen, valign: "middle", margin: 0,
});
}
// ─── Helper: bullet block ───
function bulletBlock(slide, items, opts = {}) {
const { x = 0.35, y = 0.65, w = 9.3, h = 4.5, fontSize = 15 } = opts;
const textArr = items.map((item, i) => ({
text: item,
options: {
bullet: { type: "bullet", code: "2022" },
fontSize,
color: C.textDark,
breakLine: i < items.length - 1,
paraSpaceBefore: 4,
},
}));
slide.addText(textArr, { x, y, w, h, valign: "top", margin: 4 });
}
// ─── Helper: two-column layout ───
function twoCol(slide, leftItems, rightItems, opts = {}) {
const { y = 0.65, h = 4.55, fontSize = 13.5 } = opts;
const makeArr = (items) =>
items.map((item, i) => ({
text: item,
options: {
bullet: { type: "bullet", code: "2022" },
fontSize,
color: C.textDark,
breakLine: i < items.length - 1,
paraSpaceBefore: 5,
},
}));
// Left column card
slide.addShape(pres.ShapeType.rect, {
x: 0.2, y, w: 4.55, h,
fill: { color: C.paleGreen },
line: { color: C.lightGreen, width: 1 },
rounding: true,
});
slide.addText(makeArr(leftItems), { x: 0.4, y: y + 0.1, w: 4.2, h: h - 0.2, valign: "top", margin: 4 });
// Right column card
slide.addShape(pres.ShapeType.rect, {
x: 5.25, y, w: 4.55, h,
fill: { color: C.paleGreen },
line: { color: C.lightGreen, width: 1 },
rounding: true,
});
slide.addText(makeArr(rightItems), { x: 5.45, y: y + 0.1, w: 4.2, h: h - 0.2, valign: "top", margin: 4 });
}
// ═══════════════════════════════════════════════
// SLIDE 1 — Title Slide
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.darkGreen };
// Decorative circles
s.addShape(pres.ShapeType.ellipse, { x: -0.6, y: -0.6, w: 2.8, h: 2.8, fill: { color: C.midGreen }, line: { width: 0 } });
s.addShape(pres.ShapeType.ellipse, { x: 8.2, y: 3.8, w: 3, h: 3, fill: { color: C.midGreen }, line: { width: 0 } });
s.addShape(pres.ShapeType.ellipse, { x: 7.5, y: -0.4, w: 1.5, h: 1.5, fill: { color: C.lightGreen }, line: { width: 0 } });
// Amber accent bar
s.addShape(pres.ShapeType.rect, { x: 0.55, y: 1.6, w: 0.12, h: 2.5, fill: { color: C.amber }, line: { width: 0 } });
s.addText("DULCAMARA", {
x: 0.9, y: 1.35, w: 8.5, h: 1.1,
fontSize: 52, bold: true, color: C.white,
charSpacing: 6, margin: 0,
});
s.addText("Bitter-sweet | Solanum dulcamara", {
x: 0.9, y: 2.42, w: 8.5, h: 0.55,
fontSize: 19, italic: true, color: C.amber, margin: 0,
});
s.addText("Homoeopathic Materia Medica", {
x: 0.9, y: 3.0, w: 8.5, h: 0.42,
fontSize: 14, color: C.paleGreen, margin: 0,
});
// Bottom tag
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.25, w: 10, h: 0.38, fill: { color: C.midGreen }, line: { width: 0 } });
s.addText("Family: Solanaceae | Kingdom: Plant | Source: Fresh green stems & leaves gathered before flowering", {
x: 0.3, y: 5.25, w: 9.4, h: 0.38,
fontSize: 9.5, color: C.paleGreen, valign: "middle", margin: 0,
});
}
// ═══════════════════════════════════════════════
// SLIDE 2 — Drug Introduction & Source
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "INTRODUCTION & SOURCE");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
// Two cards
// Left — identity card
s.addShape(pres.ShapeType.rect, { x: 0.2, y: 0.65, w: 4.35, h: 4.55, fill: { color: C.darkGreen }, line: { width: 0 }, rounding: true });
s.addText([
{ text: "Drug Identity", options: { bold: true, fontSize: 15, color: C.amber, breakLine: true } },
{ text: "\n", options: { fontSize: 6, breakLine: true } },
{ text: "Common Name: ", options: { bold: true, fontSize: 13, color: C.paleGreen } },
{ text: "Bittersweet / Woody Nightshade\n", options: { fontSize: 13, color: C.white, breakLine: true } },
{ text: "Botanical Name: ", options: { bold: true, fontSize: 13, color: C.paleGreen } },
{ text: "Solanum dulcamara\n", options: { fontSize: 13, italic: true, color: C.white, breakLine: true } },
{ text: "Family: ", options: { bold: true, fontSize: 13, color: C.paleGreen } },
{ text: "Solanaceae\n", options: { fontSize: 13, color: C.white, breakLine: true } },
{ text: "Kingdom: ", options: { bold: true, fontSize: 13, color: C.paleGreen } },
{ text: "Plant\n", options: { fontSize: 13, color: C.white, breakLine: true } },
{ text: "Part Used: ", options: { bold: true, fontSize: 13, color: C.paleGreen } },
{ text: "Fresh green stems & leaves (before flowering)\n", options: { fontSize: 13, color: C.white, breakLine: true } },
{ text: "Proved by: ", options: { bold: true, fontSize: 13, color: C.paleGreen } },
{ text: "Hahnemann", options: { fontSize: 13, color: C.white } },
], { x: 0.35, y: 0.8, w: 4.0, h: 4.25, valign: "top", margin: 6 });
// Right — historical use
s.addShape(pres.ShapeType.rect, { x: 4.8, y: 0.65, w: 4.95, h: 4.55, fill: { color: C.bgSlide }, line: { color: C.lightGreen, width: 1 }, rounding: true });
s.addText([
{ text: "Historical & Herbal Use", options: { bold: true, fontSize: 15, color: C.darkGreen, breakLine: true } },
{ text: "\n", options: { fontSize: 5, breakLine: true } },
{ text: "• Obstinate skin eruptions, scrofula & ulcers\n", options: { fontSize: 13, color: C.textDark, breakLine: true, paraSpaceBefore: 4 } },
{ text: "• Chronic bronchial catarrh & asthma\n", options: { fontSize: 13, color: C.textDark, breakLine: true, paraSpaceBefore: 4 } },
{ text: "• Whooping cough\n", options: { fontSize: 13, color: C.textDark, breakLine: true, paraSpaceBefore: 4 } },
{ text: "• Chronic rheumatism\n", options: { fontSize: 13, color: C.textDark, breakLine: true, paraSpaceBefore: 4 } },
{ text: "• Jaundice\n", options: { fontSize: 13, color: C.textDark, breakLine: true, paraSpaceBefore: 4 } },
{ text: "\nConstitution: ", options: { bold: true, fontSize: 13, color: C.darkGreen, breakLine: false } },
{ text: "Phlegmatic, scrofulous persons; restless and irritable", options: { fontSize: 13, color: C.textDark } },
], { x: 4.95, y: 0.8, w: 4.6, h: 4.25, valign: "top", margin: 6 });
}
// ═══════════════════════════════════════════════
// SLIDE 3 — Doctrine / Key Theme
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "KEY THEME & DOCTRINE");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
// Big theme banner
s.addShape(pres.ShapeType.rect, { x: 0.2, y: 0.7, w: 9.6, h: 1.15, fill: { color: C.midGreen }, line: { width: 0 }, rounding: true });
s.addText('"WORSE FROM COLD AND DAMP"', {
x: 0.2, y: 0.7, w: 9.6, h: 1.15,
fontSize: 26, bold: true, color: C.amber, align: "center", valign: "middle", margin: 0,
});
s.addText([
{ text: "The leading characteristic of Dulcamara is its aggravation from cold, damp, wet weather and sudden temperature changes.\n", options: { fontSize: 14, color: C.textDark, breakLine: true, paraSpaceBefore: 2 } },
{ text: "• Hot days and cold nights (especially late summer) are favourable for its action\n", options: { fontSize: 13.5, color: C.textDark, breakLine: true, paraSpaceBefore: 5 } },
{ text: "• Patients who live or work in damp, cold basements or milk dairies\n", options: { fontSize: 13.5, color: C.textDark, breakLine: true, paraSpaceBefore: 5 } },
{ text: "• Every exposure to cold suppresses secretions and produces new complaints\n", options: { fontSize: 13.5, color: C.textDark, breakLine: true, paraSpaceBefore: 5 } },
{ text: "• Mucous membranes secrete more profusely while skin becomes inactive\n", options: { fontSize: 13.5, color: C.textDark, breakLine: true, paraSpaceBefore: 5 } },
{ text: "• Complaints arise from sitting on cold damp ground, getting feet wet, or wading in cold water", options: { fontSize: 13.5, color: C.textDark, paraSpaceBefore: 5 } },
], { x: 0.35, y: 1.95, w: 9.25, h: 3.25, valign: "top", margin: 4 });
}
// ═══════════════════════════════════════════════
// SLIDE 4 — Mind Symptoms
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "MENTAL SYMPTOMS");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
bulletBlock(s, [
"Mental confusion — cannot find the right word for anything; cannot concentrate thoughts",
"Depression and restlessness",
"Scolds without anger; rejects things asked for",
"Irritability; easily becomes delirious with pain",
"Difficult, slow speech",
"Impatient, hurried feeling with physical complaints",
"Mental symptoms worse in cold, damp weather — same aggravation as physical symptoms",
], { fontSize: 15 });
}
// ═══════════════════════════════════════════════
// SLIDE 5 — Head, Eyes, Ears, Nose
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "HEAD | EYES | EARS | NOSE");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
twoCol(s,
[
"HEAD: Congestive headache with neuralgia; dry nose with headache",
"Head feels numb; heaviness and confusion",
"Pulsating headache, as if in a fog",
"Thick brown-yellow crusts on scalp, forehead, temples, chin with reddish borders; bleed when scratched",
],
[
"EYES: Every cold settles in the eyes — conjunctivitis from cold, damp weather",
"Eyes inflamed, heavy, tired; photophobia",
"EARS: Earache from cold, damp exposure",
"NOSE: Stuffed-up nose in cold, damp weather; fluent coryza alternating with stoppage; loss of smell",
]
);
}
// ═══════════════════════════════════════════════
// SLIDE 6 — Throat, Respiratory, Chest
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "THROAT | RESPIRATORY | CHEST");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
bulletBlock(s, [
"THROAT: Tonsillitis from every cold change; sensation as if uvula were too long",
"Throat muscles sensitive to cold draughts; follicular pharyngitis",
"COUGH: Loose rattling cough; profuse mucous secretion; worse cold damp nights",
"Asthma from cold, damp exposure; respiratory mucous membrane sensitive to draughts",
"Whooping cough — historically treated with Dulcamara",
"Bronchial catarrh with abundant mucous secretion; worse lying down",
"Chest oppression in damp weather; bronchitis from cold rain",
], { fontSize: 14.5 });
}
// ═══════════════════════════════════════════════
// SLIDE 7 — GIT Symptoms
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "GASTRO-INTESTINAL SYMPTOMS");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
bulletBlock(s, [
"DIARRHOEA: From taking cold in damp places, damp foggy weather, change from warm to cold weather",
"Stools green, slimy, bloody; associated with colic and rumbling",
"Diarrhoea alternating with skin eruptions (when eruptions suppressed, diarrhoea appears)",
"Nausea and vomiting from cold drinks or ice cream",
"Colic from getting chilled; cramping before and during stool",
"Abdomen distended with flatulence in cold, wet seasons",
"Digestive weakness in phlegmatic, scrofulous constitutions",
], { fontSize: 14.5 });
}
// ═══════════════════════════════════════════════
// SLIDE 8 — Urinary Symptoms
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "URINARY SYMPTOMS");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
bulletBlock(s, [
"Catarrhal ischuria (urinary retention / difficulty) from cold",
"Involuntary urination in grown-up children; milky urine from wading with bare feet in cold water",
"Frequent urging to urinate in cold, damp weather",
"Cystitis worse from cold and dampness",
"Chill with urging to stool and urination",
"Urine may be milky, cloudy, or contain mucus",
"Every cold settles in the bladder — hallmark of Dulcamara",
], { fontSize: 14.5 });
}
// ═══════════════════════════════════════════════
// SLIDE 9 — Skin Symptoms
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "SKIN SYMPTOMS");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
twoCol(s,
[
"Urticaria (hives) over whole body; no fever; itching burns after scratching; worse in warmth, better in cold",
"Thick, brown-yellow crusts on scalp/face; reddish borders, bleed when scratched",
"Skin eruptions that appear in cold, damp weather and disappear in warm weather",
"Moist, crusty eruptions; eczema-like lesions",
],
[
"WARTS: Fleshy, large, smooth warts on face, back of hands and fingers (compare Thuja)",
"Anasarca (generalised oedema) after ague, rheumatism, or scarlet fever",
"Dropsy from suppressed sweat or suppressed eruptions",
"Skin delicate, sensitive to cold; liable to eruptions every time patient takes cold",
]
);
}
// ═══════════════════════════════════════════════
// SLIDE 10 — Musculoskeletal / Extremities
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "MUSCULOSKELETAL | EXTREMITIES");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
bulletBlock(s, [
"Rheumatic pains and stiffness worse in cold, wet weather; better from moving about",
"One-sided spasms with speechlessness; paralysis of single parts",
"Icy coldness of paralysed parts; paralysis from lying on damp ground",
"Needle-like pains in upper right arm spreading to hand with numbness",
"Cramps in hands; numbness and coldness of arms; heavy and cold legs",
"Stiffness of neck (stiff neck after cold draught); lumbago from damp cold",
"Joints swollen, stiff; better by warmth and continued motion (compare Rhus tox)",
], { fontSize: 14.5 });
}
// ═══════════════════════════════════════════════
// SLIDE 11 — Female Symptoms & Fever
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "FEMALE SYMPTOMS | FEVER");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
twoCol(s,
[
"FEMALE: Rash before menses (urticaria appearing before periods)",
"Suppressed menstruation from cold, damp weather",
"Leucorrhoea (vaginal discharge) increased in cold weather",
"Prolapse of uterus from getting wet or chilled",
],
[
"FEVER: Dry burning heat all over; icy coldness with pains",
"Chill starts in the back; not relieved by warmth; worse evening",
"Chilliness with thirst; chill with urging to stool & urination",
"Foul sweat; fever follows suppressed skin conditions",
]
);
}
// ═══════════════════════════════════════════════
// SLIDE 12 — Modalities
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.darkGreen };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.55, fill: { color: C.amber }, line: { width: 0 } });
s.addText("MODALITIES", {
x: 0.3, y: 0, w: 9.4, h: 0.55,
fontSize: 18, bold: true, color: C.darkGreen, valign: "middle", margin: 0,
});
// WORSE box
s.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.7, w: 4.35, h: 4.6, fill: { color: "C62828" }, line: { width: 0 }, rounding: true });
s.addText("WORSE ▼", { x: 0.3, y: 0.7, w: 4.35, h: 0.5, fontSize: 15, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
const worseItems = [
"Cold in general; cold air",
"Cold, wet, rainy weather",
"Sudden change — hot to cold",
"Damp ground, basements, cellars",
"Getting feet wet; wading in cold water",
"Cold drinks; ice cream",
"Suppressed eruptions, menses, sweat",
"Autumn; hot days & cold nights",
"Night; rest; lying down",
].map((t, i) => ({ text: t, options: { bullet: { code: "2022" }, fontSize: 12.5, color: C.white, breakLine: i < 8, paraSpaceBefore: 5 } }));
s.addText(worseItems, { x: 0.45, y: 1.25, w: 4.05, h: 3.9, valign: "top", margin: 4 });
// BETTER box
s.addShape(pres.ShapeType.rect, { x: 5.35, y: 0.7, w: 4.35, h: 4.6, fill: { color: "2E7D32" }, line: { width: 0 }, rounding: true });
s.addText("BETTER ▲", { x: 5.35, y: 0.7, w: 4.35, h: 0.5, fontSize: 15, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
const betterItems = [
"Moving about; continued motion",
"External warmth",
"Dry weather",
"Warm, sunny weather",
"After eruptions or discharges appear",
].map((t, i) => ({ text: t, options: { bullet: { code: "2022" }, fontSize: 12.5, color: C.white, breakLine: i < 4, paraSpaceBefore: 5 } }));
s.addText(betterItems, { x: 5.5, y: 1.25, w: 4.05, h: 3.9, valign: "top", margin: 4 });
footer(s, "Dulcamara — Homoeopathic Materia Medica");
}
// ═══════════════════════════════════════════════
// SLIDE 13 — Keynotes & Characteristic Symptoms
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "KEYNOTES & CHARACTERISTIC SYMPTOMS");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
const keynotes = [
"COLD + DAMP = DULCAMARA: Any condition appearing or worsening from cold, wet weather",
"Hot days and cold nights (late summer) are the typical season for Dulcamara complaints",
"Mucous membranes secrete MORE, while skin secretion is suppressed",
"Every cold settles in eyes, throat, bladder, chest, or bowels",
"Alternation: suppressed eruptions → diarrhoea; suppressed sweat → dropsy",
"Fleshy, smooth WARTS on face and hands (large)",
"Urticaria before menses; skin delicate and cold-sensitive",
"Paralysis or one-sided spasms from lying on damp ground",
];
keynotes.forEach((kn, i) => {
const row = Math.floor(i / 2);
const col = i % 2;
const x = col === 0 ? 0.2 : 5.1;
const y = 0.68 + row * 1.18;
s.addShape(pres.ShapeType.rect, { x, y, w: 4.7, h: 1.05, fill: { color: C.darkGreen }, line: { width: 0 }, rounding: true });
s.addText(kn, { x: x + 0.12, y: y + 0.05, w: 4.46, h: 0.95, fontSize: 11.5, color: C.white, valign: "middle", margin: 4 });
});
}
// ═══════════════════════════════════════════════
// SLIDE 14 — Relationship & Comparison
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "RELATIONSHIP — COMPLEMENTARY, COMPARE & INCOMPATIBLE");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
// Three boxes
const boxes = [
{
label: "Complementary",
color: C.midGreen,
items: ["Baryta carbonica (Baryta carb) — main complementary remedy"],
},
{
label: "Compare With",
color: C.amber,
items: [
"Rhus tox — rheumatism worse damp, better motion (Dulc more weather-driven)",
"Bryonia — worse cold, worse motion (opposite to Rhus/Dulc)",
"Natrum sulph — damp-weather remedy, liver involvement",
"Arsenicum — chilly patient with anxiety",
"Calcarea carb — phlegmatic, cold-sensitive constitution",
"Thuja — warts (Dulc has smoother, fleshier warts)",
],
},
{
label: "Incompatible",
color: "C62828",
items: ["Belladonna", "Lachesis"],
},
];
let y = 0.68;
boxes.forEach((box) => {
const h = 0.38 + box.items.length * 0.52;
s.addShape(pres.ShapeType.rect, { x: 0.2, y, w: 9.6, h, fill: { color: box.color + "22" }, line: { color: box.color, width: 1.5 }, rounding: true });
s.addText(box.label, { x: 0.35, y: y + 0.04, w: 2.5, h: 0.38, fontSize: 13, bold: true, color: box.color, valign: "top", margin: 0 });
const textArr = box.items.map((item, i) => ({
text: item,
options: { bullet: { code: "2022" }, fontSize: 12.5, color: C.textDark, breakLine: i < box.items.length - 1, paraSpaceBefore: 3 },
}));
s.addText(textArr, { x: 2.9, y: y + 0.04, w: 6.8, h, valign: "top", margin: 3 });
y += h + 0.14;
});
}
// ═══════════════════════════════════════════════
// SLIDE 15 — Potency, Dosage & Clinical Uses
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.cream };
sectionBand(s, "POTENCY, DOSAGE & CLINICAL CONDITIONS");
leftBar(s);
footer(s, "Dulcamara — Homoeopathic Materia Medica");
twoCol(s,
[
"Commonly used potencies: 6C, 30C, 200C",
"Lower potencies (6X, 6C) for acute conditions (diarrhoea, coryza)",
"Higher potencies (30C, 200C) for chronic rheumatism, warts, skin conditions",
"Mother tincture used topically for warts",
"Dose frequency guided by symptom intensity — acute: every 2-4 hrs; chronic: once/week",
],
[
"Diarrhoea from cold, damp weather",
"Rheumatic complaints in wet seasons",
"Urticaria / skin eruptions from cold",
"Warts — fleshy, smooth",
"Cystitis / urinary complaints from cold",
"Nasal catarrh, tonsillitis from weather change",
"Paralysis from damp exposure",
"Dropsy / oedema from suppressed eruptions",
]
);
}
// ═══════════════════════════════════════════════
// SLIDE 16 — Summary / Closing
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.darkGreen };
s.addShape(pres.ShapeType.ellipse, { x: -1, y: -1, w: 4, h: 4, fill: { color: C.midGreen }, line: { width: 0 } });
s.addShape(pres.ShapeType.ellipse, { x: 7.5, y: 3.2, w: 3.5, h: 3.5, fill: { color: C.midGreen }, line: { width: 0 } });
s.addText("DULCAMARA", { x: 0.5, y: 0.5, w: 9, h: 0.9, fontSize: 38, bold: true, color: C.amber, align: "center", margin: 0 });
s.addText("The Cold & Damp Remedy", { x: 0.5, y: 1.35, w: 9, h: 0.45, fontSize: 18, italic: true, color: C.paleGreen, align: "center", margin: 0 });
const summary = [
{ text: "Source: ", options: { bold: true, color: C.amber, fontSize: 13 } },
{ text: "Solanum dulcamara (Bittersweet Nightshade) — Family Solanaceae\n", options: { color: C.white, fontSize: 13, breakLine: true } },
{ text: "Constitution: ", options: { bold: true, color: C.amber, fontSize: 13 } },
{ text: "Phlegmatic, scrofulous; restless and irritable\n", options: { color: C.white, fontSize: 13, breakLine: true } },
{ text: "Master Key: ", options: { bold: true, color: C.amber, fontSize: 13 } },
{ text: "Worse cold, damp weather; better warmth and motion\n", options: { color: C.white, fontSize: 13, breakLine: true } },
{ text: "Sphere: ", options: { bold: true, color: C.amber, fontSize: 13 } },
{ text: "Mucous membranes, skin, glands, joints, urinary system\n", options: { color: C.white, fontSize: 13, breakLine: true } },
{ text: "Incompatible: ", options: { bold: true, color: C.amber, fontSize: 13 } },
{ text: "Belladonna, Lachesis | ", options: { color: C.white, fontSize: 13 } },
{ text: "Complementary: ", options: { bold: true, color: C.amber, fontSize: 13 } },
{ text: "Baryta carb", options: { color: C.white, fontSize: 13 } },
];
s.addText(summary, { x: 0.7, y: 1.95, w: 8.6, h: 3.1, valign: "top", margin: 6 });
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.25, w: 10, h: 0.38, fill: { color: C.amber }, line: { width: 0 } });
s.addText("Based on Boericke, Allen, Clarke & Phatak — Homoeopathic Materia Medica", {
x: 0.3, y: 5.25, w: 9.4, h: 0.38,
fontSize: 10, bold: true, color: C.darkGreen, align: "center", valign: "middle", margin: 0,
});
}
// ─── Write File ───
pres.writeFile({ fileName: "/home/daytona/workspace/dulcamara-ppt/Dulcamara_Homoeopathic_Medicine.pptx" })
.then(() => console.log("PPT created successfully!"))
.catch(err => console.error("Error:", err));
cd /home/daytona/workspace/dulcamara-ppt && node create_ppt.js
~/dulcamara-ppt/create_ppt.js
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/dulcamara-ppt/create_ppt.js'
cd /home/daytona/workspace/dulcamara-ppt && node create_ppt.js 2>&1
Dulcamara Homoeopathic Medicine
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide - Dulcamara / Solanum dulcamara |
| 2 | Introduction, source, family, historical herbal uses |
| 3 | Key theme - "Worse from cold and damp" doctrine |
| 4 | Mental symptoms |
| 5 | Head, Eyes, Ears, Nose symptoms |
| 6 | Throat, Respiratory, Chest |
| 7 | Gastro-intestinal symptoms |
| 8 | Urinary symptoms |
| 9 | Skin symptoms (warts, urticaria, crusts, dropsy) |
| 10 | Musculoskeletal and extremities |
| 11 | Female symptoms and fever |
| 12 | Modalities - Worse / Better (dark slide with red/green boxes) |
| 13 | Keynotes and characteristic symptoms (grid layout) |
| 14 | Relationship - Complementary (Baryta carb), Compare, Incompatible (Bell, Lach) |
| 15 | Potency, dosage, and clinical indications |
| 16 | Summary closing slide |
Give me ppt of Calcarea Carbonica homoeopathic medicine
Calcarea Carbonica homoeopathic materia medica keynotes symptoms indications Boericke Allen
https://www.materiamedica.info/en/materia-medica/william-boe…
Calcarea carbonica Allen keynotes characteristics constitution mental symptoms modalities relationship
mkdir -p /home/daytona/workspace/calcarea-carb-ppt
~/calcarea-carb-ppt/create_ppt.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Calcarea Carbonica - Homoeopathic Medicine";
pres.author = "Homoeopathic Materia Medica";
// Color palette: royal blue (dominant) + ivory + gold accent
const C = {
royalBlue: "1A3A5C",
midBlue: "2E5F8A",
lightBlue: "4A90C4",
skyBlue: "B8D4EA",
ivory: "F9F7F2",
gold: "C9A84C",
white: "FFFFFF",
textDark: "1A1A2E",
paleBlue: "E3EEF7",
red: "C0392B",
green: "1E7A45",
bgSlide: "EEF4FA",
};
// ─── Helpers ───
function sectionBand(slide, label) {
slide.addShape(pres.ShapeType.rect, { x:0, y:0, w:10, h:0.55, fill:{color:C.royalBlue}, line:{width:0} });
slide.addText(label, { x:0.3, y:0, w:9.4, h:0.55, fontSize:13, bold:true, color:C.gold, valign:"middle", margin:0 });
}
function leftBar(slide) {
slide.addShape(pres.ShapeType.rect, { x:0, y:0.55, w:0.09, h:5.07, fill:{color:C.lightBlue}, line:{width:0} });
}
function footer(slide, text) {
slide.addShape(pres.ShapeType.rect, { x:0, y:5.35, w:10, h:0.28, fill:{color:C.royalBlue}, line:{width:0} });
slide.addText(text, { x:0.2, y:5.35, w:9.6, h:0.28, fontSize:8, color:C.skyBlue, valign:"middle", margin:0 });
}
function bulletBlock(slide, items, opts={}) {
const {x=0.35, y=0.65, w=9.3, h=4.55, fontSize=14.5} = opts;
const arr = items.map((item, i) => ({
text: item,
options: { bullet:{type:"bullet", code:"2022"}, fontSize, color:C.textDark, breakLine: i<items.length-1, paraSpaceBefore:5 }
}));
slide.addText(arr, {x, y, w, h, valign:"top", margin:4});
}
function twoCol(slide, leftItems, rightItems, opts={}) {
const {y=0.65, h=4.55, fontSize=13} = opts;
const makeArr = (items) => items.map((item, i) => ({
text: item,
options: { bullet:{type:"bullet", code:"2022"}, fontSize, color:C.textDark, breakLine: i<items.length-1, paraSpaceBefore:5 }
}));
slide.addShape(pres.ShapeType.rect, { x:0.2, y, w:4.55, h, fill:{color:C.paleBlue}, line:{color:C.lightBlue, width:1}, rounding:true });
slide.addText(makeArr(leftItems), { x:0.4, y:y+0.1, w:4.2, h:h-0.2, valign:"top", margin:4 });
slide.addShape(pres.ShapeType.rect, { x:5.25, y, w:4.55, h, fill:{color:C.paleBlue}, line:{color:C.lightBlue, width:1}, rounding:true });
slide.addText(makeArr(rightItems), { x:5.45, y:y+0.1, w:4.2, h:h-0.2, valign:"top", margin:4 });
}
// ═══════════════════════════════════════════════
// SLIDE 1 — Title
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.royalBlue };
// Decorative circles
s.addShape(pres.ShapeType.ellipse, { x:-0.8, y:-0.8, w:3.2, h:3.2, fill:{color:C.midBlue}, line:{width:0} });
s.addShape(pres.ShapeType.ellipse, { x:7.8, y:3.5, w:3.2, h:3.2, fill:{color:C.midBlue}, line:{width:0} });
s.addShape(pres.ShapeType.ellipse, { x:7.2, y:-0.5, w:1.6, h:1.6, fill:{color:C.lightBlue}, line:{width:0} });
// Gold accent bar
s.addShape(pres.ShapeType.rect, { x:0.55, y:1.2, w:0.14, h:2.8, fill:{color:C.gold}, line:{width:0} });
s.addText("CALCAREA CARBONICA", {
x:0.9, y:1.1, w:8.8, h:1.1,
fontSize:42, bold:true, color:C.white, charSpacing:3, margin:0
});
s.addText("Calc. Carb. | Calcarea Ostrearum", {
x:0.9, y:2.2, w:8.5, h:0.55,
fontSize:18, italic:true, color:C.gold, margin:0
});
s.addText("Homoeopathic Materia Medica", {
x:0.9, y:2.78, w:8.5, h:0.42,
fontSize:14, color:C.skyBlue, margin:0
});
// Bottom tag
s.addShape(pres.ShapeType.rect, { x:0, y:5.25, w:10, h:0.38, fill:{color:C.midBlue}, line:{width:0} });
s.addText("Source: Middle layer (Carbonate of Lime) of Oyster Shell — Ostrea edulis | Proved by: Samuel Hahnemann", {
x:0.3, y:5.25, w:9.4, h:0.38,
fontSize:9.5, color:C.skyBlue, valign:"middle", margin:0
});
}
// ═══════════════════════════════════════════════
// SLIDE 2 — Introduction & Source
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "INTRODUCTION & SOURCE");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
// Left dark card — identity
s.addShape(pres.ShapeType.rect, { x:0.2, y:0.65, w:4.35, h:4.55, fill:{color:C.royalBlue}, line:{width:0}, rounding:true });
s.addText([
{ text:"Drug Identity", options:{bold:true, fontSize:15, color:C.gold, breakLine:true} },
{ text:"\n", options:{fontSize:5, breakLine:true} },
{ text:"Abbrev: ", options:{bold:true, fontSize:13, color:C.skyBlue} },
{ text:"Calc. / Calc. carb.\n", options:{fontSize:13, color:C.white, breakLine:true} },
{ text:"Full Name: ", options:{bold:true, fontSize:13, color:C.skyBlue} },
{ text:"Calcarea Carbonica (Calcarea Ostrearum)\n", options:{fontSize:13, color:C.white, breakLine:true} },
{ text:"Source: ", options:{bold:true, fontSize:13, color:C.skyBlue} },
{ text:"Middle layer of Oyster Shell (Ostrea edulis)\n", options:{fontSize:13, color:C.white, breakLine:true} },
{ text:"Preparation: ", options:{bold:true, fontSize:13, color:C.skyBlue} },
{ text:"Trituration of the carbonate of lime\n", options:{fontSize:13, color:C.white, breakLine:true} },
{ text:"Kingdom: ", options:{bold:true, fontSize:13, color:C.skyBlue} },
{ text:"Animal (Mollusca)\n", options:{fontSize:13, color:C.white, breakLine:true} },
{ text:"Proved by: ", options:{bold:true, fontSize:13, color:C.skyBlue} },
{ text:"Samuel Hahnemann", options:{fontSize:13, color:C.white} },
], { x:0.35, y:0.8, w:4.0, h:4.25, valign:"top", margin:6 });
// Right card — constitution
s.addShape(pres.ShapeType.rect, { x:4.8, y:0.65, w:4.95, h:4.55, fill:{color:C.bgSlide}, line:{color:C.lightBlue, width:1}, rounding:true });
s.addText([
{ text:"Constitution & Temperament", options:{bold:true, fontSize:15, color:C.royalBlue, breakLine:true} },
{ text:"\n", options:{fontSize:5, breakLine:true} },
{ text:"• Leucophlegmatic constitution — fat, fair, flabby, and flaccid\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4} },
{ text:"• Children: heavy, fat, big-headed, big-bellied; slow in all milestones\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4} },
{ text:"• Adults: overweight, easily fatigued, slow and sluggish\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4} },
{ text:"• Scrofulous, tubercular, and rachitic diathesis\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4} },
{ text:"• Great antipsoric remedy (one of Hahnemann's polychrests)\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4} },
{ text:"• CALC mnemonic: Chilly • Antipsoric • Leucophlegmatic • Coldness • Affection of glands • Ravenous hunger • Excessive sour discharge • Assimilation altered", options:{fontSize:11.5, color:C.midBlue, paraSpaceBefore:6} },
], { x:4.95, y:0.8, w:4.6, h:4.25, valign:"top", margin:6 });
}
// ═══════════════════════════════════════════════
// SLIDE 3 — Key Theme
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "KEY THEME & DOCTRINE OF DRUG ACTION");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
// Big theme banner
s.addShape(pres.ShapeType.rect, { x:0.2, y:0.68, w:9.6, h:1.05, fill:{color:C.midBlue}, line:{width:0}, rounding:true });
s.addText('"FAT, FAIR, FLABBY & CHILLY — IMPAIRED ASSIMILATION & NUTRITION"', {
x:0.2, y:0.68, w:9.6, h:1.05,
fontSize:19, bold:true, color:C.gold, align:"center", valign:"middle", margin:0
});
s.addText([
{ text:"Calcarea Carbonica primarily acts upon the vegetative system, impairing nutrition, favoring deposit of earthy salts, and altering composition of blood. It mimics the three great disorders of nutrition — ", options:{fontSize:13.5, color:C.textDark} },
{ text:"scrofula, tuberculosis, and rachitis", options:{fontSize:13.5, color:C.royalBlue, bold:true, breakLine:true} },
{ text:"\n", options:{fontSize:5, breakLine:true} },
{ text:"• Mucous membranes secrete more profusely; skin becomes inactive\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4} },
{ text:"• Glands, bones, and skin are primary target organs\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4} },
{ text:"• Sour taste, sour vomiting, sour stools — sourness is a hallmark\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4} },
{ text:"• Profuse sour-smelling head sweat during sleep — drenches pillow\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4} },
{ text:"• Head sweats while the rest of the body (especially feet) remains cold", options:{fontSize:13, color:C.textDark, paraSpaceBefore:4} },
], { x:0.35, y:1.84, w:9.25, h:3.35, valign:"top", margin:4 });
}
// ═══════════════════════════════════════════════
// SLIDE 4 — Mental / Mind Symptoms
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "MENTAL & EMOTIONAL SYMPTOMS");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
bulletBlock(s, [
"Great anxiety with palpitation of the heart; fear of impending evil or misfortune",
"Fear of insanity — feared she would lose her reason or that people would observe her confusion of mind",
"Anxious when watching or hearing about cruelty, violence, or horror; children leave the room",
"Slow, dull, difficult concentration; learns with difficulty; averse to work and exertion",
"Obstinate — self-willed, especially in children; sits and breaks pins indifferently",
"Depression, melancholy, tearfulness; despondent about shattered health",
"Shuddering and dread as evening draws near",
"Delusions: visions of fire, sees figures, someone is behind him, thinks he is sick",
"Desire for company; anxious about the future; seeks stability and routine",
], {fontSize:14});
}
// ═══════════════════════════════════════════════
// SLIDE 5 — Head & Eyes
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "HEAD | EYES | EARS");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
twoCol(s,
[
"HEAD: Profuse sour-smelling perspiration on scalp during sleep — drenches pillow",
"Rush of blood to head with heat; vertigo on ascending or stooping",
"Headache relieved by lying quietly; worse ascending, mental exertion",
"Thick brown-yellow crusts on scalp (tinea capitis) in children",
"Fontanelles remain open too long; hydrocephalus tendency",
],
[
"EYES: Chronic ophthalmia; conjunctivitis; photophobia",
"Eyes sensitive to light; corneal opacities",
"Strabismus (squinting) from suppressed eruptions",
"EARS: Difficult hearing; polyps in ear; cracking in ear on blowing nose",
"Chronic otitis media with thick discharge; deafness in scrofulous children",
]
);
}
// ═══════════════════════════════════════════════
// SLIDE 6 — Nose, Throat, Respiratory
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "NOSE | THROAT | RESPIRATORY");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
bulletBlock(s, [
"NOSE: Nasal polypi; chronic catarrh with thick yellow-green discharge; offensive odour from nose",
"Constant sneezing; nose blocked in warm room but runs in cold air",
"THROAT: Chronic tonsillitis and adenoids; tonsils repeatedly inflamed in scrofulous children",
"Goitre-like swelling of neck glands; cervical lymph nodes painfully enlarged",
"CHEST: Difficult breathing on slight exertion; shortness of breath going upstairs",
"Chronic cough; expectoration profuse, yellow, offensive, or blood-streaked",
"Tubercular tendency — sweats on chest; rattling mucus in bronchi; haemoptysis",
"Palpitation of heart with great anxiety; pulse accelerated with throbbing in vessels",
], {fontSize:14});
}
// ═══════════════════════════════════════════════
// SLIDE 7 — Gastro-Intestinal Symptoms
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "GASTRO-INTESTINAL SYMPTOMS");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
twoCol(s,
[
"APPETITE: Ravenous hunger especially in morning; insatiable thirst for cold drinks at night",
"Craving: eggs, sweets, chalk, coal, pencils (pica); craving for indigestible things",
"AVERSIONS: Meat; hot food; tobacco",
"TASTE: Sour; everything tastes sour",
"Nausea in morning after milk; vomiting of sour-tasting food",
"Continuous heartburn and belching after every meal",
],
[
"STOMACH: Great weakness of digestion; intolerance of tight clothes around stomach",
"Flatulence and distension; cutting pains in abdomen after cold drinks",
"STOOL: Constipation — better when constipated (paradox); stools large, hard, white like chalk",
"Diarrhoea in children: sour, white, watery; from cold air or suppressed eruptions",
"Abdomen large, distended in children; mesenteric gland enlargement",
"Liver congestion; stitches in liver region",
]
);
}
// ═══════════════════════════════════════════════
// SLIDE 8 — Urinary & Female Symptoms
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "URINARY | FEMALE SYMPTOMS");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
twoCol(s,
[
"URINARY: Dark, offensive urine; milky, turbid urine after standing",
"Involuntary urination from suppressed eruptions or cold",
"Polyuria — profuse pale urine alternating with scanty dark urine",
"Catarrh of bladder; burning on urination",
"Kidney affections in scrofulous constitutions",
],
[
"FEMALE: Menses too early, too profuse, too long-lasting",
"Leucorrhoea: profuse, milky-white, acrid; before and after menses",
"Uterine fibroids and polypi tendency",
"Prolapse of uterus from cold damp exposure",
"Rash before menses; premenstrual anxiety and fear",
"Delayed menarche in fat, flabby girls",
]
);
}
// ═══════════════════════════════════════════════
// SLIDE 9 — Bones, Glands & Teeth (Rachitic)
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "BONES | GLANDS | TEETH — RACHITIC AFFECTIONS");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
bulletBlock(s, [
"RACHITIS: Swelling and softening of bones (epiphyses); curvature of spine; caries of bone",
"Fontanelles remain open too long; bones soft, imperfect ossification",
"Teeth: delayed dentition; teeth slow to appear; dentition difficult and painful",
"Teeth decay rapidly; yellow, soft teeth in children",
"GLANDS: Painfully swollen lymph nodes throughout body — cervical, mesenteric, inguinal",
"Scrofulous gland enlargements; glands indurate (harden) and suppurate slowly",
"Goitre with neck stiffness; thyroid enlargement in fat, chilly persons",
"Legs heavy; children slow to walk; legs cold from knees downward; knock-knee, bow-leg",
], {fontSize:14});
}
// ═══════════════════════════════════════════════
// SLIDE 10 — Skin & Extremities
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "SKIN | EXTREMITIES");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
twoCol(s,
[
"SKIN: Unhealthy, flaccid, easily ulcerating; small wounds do not heal readily",
"Nettle rash (urticaria) better in cold air",
"Warts on face and hands; polypi (nasal, aural, uterine)",
"Petechial eruptions; chilblains; boils and furuncles",
"Moist, scaly eruptions; follicular tumors recurring at full moon",
],
[
"EXTREMITIES: Profuse foot sweat — cold and offensive; sour-smelling",
"Sweaty hands; deadness and numbness of hands and fingers",
"Arthritic nodes on wrist and finger joints; rheumatic swelling of knees",
"Heaviness of legs; tension from knees to toes; inflammatory swelling",
"Back pain after over-lifting; stiffness of neck from cold draught",
]
);
}
// ═══════════════════════════════════════════════
// SLIDE 11 — Fever & Sweat
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "FEVER | SWEAT | CHILL");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
bulletBlock(s, [
"CHILL: With shuddering, most in evening and forenoon; internal chilliness in morning after rising",
"Icy coldness of feet in the evening even in bed; legs cold from knees down while head sweats",
"FEVER: Frequent attacks of overwhelming heat with anxious palpitation, then chill with cold hands",
"Full, accelerated pulse; throbbing in blood vessels; strong ebullitions",
"SWEAT (HALLMARK): Profuse sour-smelling sweat on head and chest during sleep",
"Sweat from slightest movement even in cold air; sticky exhausting sweat on occiput and neck",
"Head sweats while legs remain cold — this contrast is a keynote of Calcarea",
"Early morning sweat; night sweats in tuberculosis-prone patients",
], {fontSize:14});
}
// ═══════════════════════════════════════════════
// SLIDE 12 — Modalities (dark visual slide)
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.royalBlue };
s.addShape(pres.ShapeType.rect, { x:0, y:0, w:10, h:0.55, fill:{color:C.gold}, line:{width:0} });
s.addText("MODALITIES", {
x:0.3, y:0, w:9.4, h:0.55,
fontSize:18, bold:true, color:C.royalBlue, valign:"middle", margin:0
});
// WORSE box
s.addShape(pres.ShapeType.rect, { x:0.25, y:0.68, w:4.45, h:4.65, fill:{color:C.red}, line:{width:0}, rounding:true });
s.addText("WORSE ▼", { x:0.25, y:0.68, w:4.45, h:0.48, fontSize:15, bold:true, color:C.white, align:"center", valign:"middle", margin:0 });
const worseItems = [
"Cold in every form; cold air; cold water; washing",
"Wet, damp, moist weather",
"Mental or physical exertion",
"Ascending stairs or heights",
"Standing for long periods",
"Full moon",
"Suppressed eruptions or sweat",
"After eating (gastric symptoms)",
"Overlifting; stooping; looking up",
"Morning; during wet weather",
].map((t, i) => ({ text:t, options:{bullet:{code:"2022"}, fontSize:12, color:C.white, breakLine: i<9, paraSpaceBefore:4} }));
s.addText(worseItems, { x:0.4, y:1.22, w:4.15, h:4.0, valign:"top", margin:4 });
// BETTER box
s.addShape(pres.ShapeType.rect, { x:5.3, y:0.68, w:4.45, h:4.65, fill:{color:C.green}, line:{width:0}, rounding:true });
s.addText("BETTER ▲", { x:5.3, y:0.68, w:4.45, h:0.48, fontSize:15, bold:true, color:C.white, align:"center", valign:"middle", margin:0 });
const betterItems = [
"Dry climate and weather",
"Lying on painful side",
"Warmth; warm room",
"Sneezing (pain in head and nape relieved)",
"After breakfast (vertigo relieved)",
"Constipation (feels better when constipated)",
"Touch; closing eyes; lying quietly",
].map((t, i) => ({ text:t, options:{bullet:{code:"2022"}, fontSize:12, color:C.white, breakLine: i<6, paraSpaceBefore:4} }));
s.addText(betterItems, { x:5.45, y:1.22, w:4.15, h:4.0, valign:"top", margin:4 });
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
}
// ═══════════════════════════════════════════════
// SLIDE 13 — Keynotes & Characteristic Symptoms
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "KEYNOTES & CHARACTERISTIC SYMPTOMS");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
const keynotes = [
"Profuse SOUR-SMELLING head sweat during sleep, drenching the pillow",
"FAT, FAIR, FLABBY — leucophlegmatic; easily chilled",
"Head sweats profusely while feet remain ICY COLD",
"Delayed milestones in children — late teething, late walking",
"SOURNESS everywhere — taste, vomit, stool, body odour",
"Craving for EGGS, sweets, chalk, coal (indigestible things)",
"BETTER WHEN CONSTIPATED (paradoxical improvement)",
"Open fontanelles; rachitis; scrofulous gland enlargements",
];
keynotes.forEach((kn, i) => {
const row = Math.floor(i / 2);
const col = i % 2;
const x = col===0 ? 0.2 : 5.1;
const y = 0.68 + row * 1.18;
s.addShape(pres.ShapeType.rect, { x, y, w:4.7, h:1.05, fill:{color:C.royalBlue}, line:{width:0}, rounding:true });
s.addText(kn, { x:x+0.12, y:y+0.05, w:4.46, h:0.95, fontSize:11.5, color:C.white, valign:"middle", margin:4 });
});
}
// ═══════════════════════════════════════════════
// SLIDE 14 — Comparison with Sulphur & Lycopodium
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "CONSTITUTIONAL COMPARISON — SULPHUR → CALC. CARB. → LYCOPODIUM");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
const cols = [
{
title: "SULPHUR", color: C.red,
items: [
"Lean, untidy, philosophical",
"Burning heat; hot-blooded",
"Skin: itching, burning eruptions",
"Worse bathing; Hungry at 11 am",
"Dirty, ragged appearance",
"Acts first in chronic prescribing (psora)",
]
},
{
title: "CALC. CARB.", color: C.royalBlue,
items: [
"Fat, fair, flabby; chilly",
"Sweating head + cold feet",
"Scrofulous, rachitic constitution",
"Better when constipated",
"Craves eggs, chalk; sour everything",
"Follows Sulphur well",
]
},
{
title: "LYCOPODIUM", color: C.midBlue,
items: [
"Lean, intellectually sharp",
"Right-sided; worse 4–8 pm",
"Flatulence; digestive-hepatic",
"Anticipatory anxiety; cowardly",
"Craves sweets and hot food",
"Follows Calc. carb. well",
]
},
];
cols.forEach((col, ci) => {
const x = 0.2 + ci * 3.27;
s.addShape(pres.ShapeType.rect, { x, y:0.66, w:3.05, h:4.6, fill:{color:col.color}, line:{width:0}, rounding:true });
s.addText(col.title, { x:x+0.08, y:0.66, w:2.9, h:0.5, fontSize:14, bold:true, color:C.gold, align:"center", valign:"middle", margin:0 });
const arr = col.items.map((item, i) => ({
text: item,
options: { bullet:{code:"2022"}, fontSize:12, color:C.white, breakLine: i<col.items.length-1, paraSpaceBefore:5 }
}));
s.addText(arr, { x:x+0.08, y:1.22, w:2.9, h:3.9, valign:"top", margin:5 });
});
}
// ═══════════════════════════════════════════════
// SLIDE 15 — Relationship
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "RELATIONSHIP — COMPLEMENTARY, COMPARE & INCOMPATIBLE");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
const boxes = [
{
label:"Complementary",
color: C.green,
bgColor: "E8F5E9",
items: ["Belladonna (Bell.)", "Rhus toxicodendron (Rhus tox.)", "Lycopodium clavatum (Lyc.)", "Silicea terra (Sil.)"]
},
{
label:"Antidotes",
color: C.midBlue,
bgColor: "E3EEF7",
items: ["Camphor (Camph.)", "Ipecacuanha (Ipec.)", "Nitric acid (Nit. ac.)", "Nux vomica (Nux)"]
},
{
label:"Incompatible",
color: C.red,
bgColor: "FFEBEE",
items: ["Bryonia alba (Bry.)", "Sulphur (Sulph.) — do NOT give Sulphur AFTER Calc. carb."]
},
{
label:"Useful After",
color: C.royalBlue,
bgColor: "E8EAF6",
items: ["Sulphur → Calc. carb. (classic antipsoric sequence)", "Dulcamara → Rhus tox. → Calc. carb.", "Tuberculinum → Calc. carb. → Silicea"]
},
];
let y = 0.68;
boxes.forEach((box) => {
const h = 0.36 + box.items.length * 0.52;
s.addShape(pres.ShapeType.rect, { x:0.2, y, w:9.6, h, fill:{color:box.bgColor}, line:{color:box.color, width:1.5}, rounding:true });
s.addText(box.label, { x:0.35, y:y+0.04, w:2.4, h:0.36, fontSize:13, bold:true, color:box.color, valign:"top", margin:0 });
const arr = box.items.map((item, i) => ({
text: item,
options: { bullet:{code:"2022"}, fontSize:12.5, color:C.textDark, breakLine: i<box.items.length-1, paraSpaceBefore:3 }
}));
s.addText(arr, { x:2.85, y:y+0.04, w:6.85, h, valign:"top", margin:3 });
y += h + 0.12;
});
}
// ═══════════════════════════════════════════════
// SLIDE 16 — Potency, Dosage & Clinical Uses
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "POTENCY, DOSAGE & CLINICAL INDICATIONS");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
twoCol(s,
[
"Potency: 6C, 30C, 200C, 1M are most commonly used",
"Lower potencies (6X, 6C, 12C) for acute and supportive prescribing",
"30C for most chronic constitutional cases",
"200C / 1M for deeply entrenched constitutional pathology",
"Do NOT repeat too frequently in elderly patients (Boericke)",
"6th trituration used in tissue salt therapy",
],
[
"Rickets, delayed dentition, open fontanelles",
"Scrofulous gland enlargements; adenoids and tonsils",
"Obesity with easy fatigue in chilly patients",
"Menorrhagia; leucorrhoea; uterine fibroids",
"Chronic catarrhs; nasal polypi; otitis media",
"Warts; skin that does not heal; chilblains",
"Epilepsy; chorea; neurasthenia in fat, flabby patients",
"Leucopenia; anaemia in scrofulous diathesis",
]
);
}
// ═══════════════════════════════════════════════
// SLIDE 17 — Summary / Closing
// ═══════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.royalBlue };
s.addShape(pres.ShapeType.ellipse, { x:-1, y:-1, w:4, h:4, fill:{color:C.midBlue}, line:{width:0} });
s.addShape(pres.ShapeType.ellipse, { x:7.5, y:3.2, w:3.5, h:3.5, fill:{color:C.midBlue}, line:{width:0} });
s.addText("CALCAREA CARBONICA", { x:0.4, y:0.45, w:9.2, h:0.9, fontSize:34, bold:true, color:C.gold, align:"center", margin:0 });
s.addText("The Great Antipsoric — Calc. / Calc. carb.", { x:0.4, y:1.32, w:9.2, h:0.45, fontSize:17, italic:true, color:C.skyBlue, align:"center", margin:0 });
const summary = [
{ text:"Source: ", options:{bold:true, color:C.gold, fontSize:13} },
{ text:"Middle layer of Oyster Shell — Ostrea edulis\n", options:{color:C.white, fontSize:13, breakLine:true} },
{ text:"Constitution: ", options:{bold:true, color:C.gold, fontSize:13} },
{ text:"Fat, fair, flabby, chilly — leucophlegmatic; scrofulous, rachitic\n", options:{color:C.white, fontSize:13, breakLine:true} },
{ text:"Master Keys: ", options:{bold:true, color:C.gold, fontSize:13} },
{ text:"Sour head sweat in sleep | Cold feet | Craves eggs | Delayed milestones\n", options:{color:C.white, fontSize:13, breakLine:true} },
{ text:"Modalities: ", options:{bold:true, color:C.gold, fontSize:13} },
{ text:"Worse cold, wet, exertion, full moon | Better dry weather, lying on painful side\n", options:{color:C.white, fontSize:13, breakLine:true} },
{ text:"Complementary: ", options:{bold:true, color:C.gold, fontSize:13} },
{ text:"Bell., Rhus tox., Lyc., Sil. | ", options:{color:C.white, fontSize:13} },
{ text:"Incompatible: ", options:{bold:true, color:C.gold, fontSize:13} },
{ text:"Bry., Sulph. (not after Calc.)", options:{color:C.white, fontSize:13} },
];
s.addText(summary, { x:0.7, y:1.9, w:8.6, h:3.1, valign:"top", margin:6 });
s.addShape(pres.ShapeType.rect, { x:0, y:5.25, w:10, h:0.38, fill:{color:C.gold}, line:{width:0} });
s.addText("Based on Boericke, H.C. Allen, Boger, Clarke, Cowperthwaite & Phatak — Homoeopathic Materia Medica", {
x:0.3, y:5.25, w:9.4, h:0.38,
fontSize:9.5, bold:true, color:C.royalBlue, align:"center", valign:"middle", margin:0
});
}
// ─── Write File ───
pres.writeFile({ fileName: "/home/daytona/workspace/calcarea-carb-ppt/Calcarea_Carbonica_Homoeopathic_Medicine.pptx" })
.then(() => console.log("PPT created successfully!"))
.catch(err => console.error("Error:", err));
cd /home/daytona/workspace/calcarea-carb-ppt && node create_ppt.js 2>&1
Calcarea Carbonica Homoeopathic Medicine
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide — Calcarea Carbonica / Calc. Ostrearum |
| 2 | Introduction, source (oyster shell), constitution & CALC mnemonic |
| 3 | Key theme — "Fat, Fair, Flabby & Chilly — Impaired Assimilation" |
| 4 | Mental & emotional symptoms |
| 5 | Head, Eyes, Ears symptoms |
| 6 | Nose, Throat, Respiratory & cardiac symptoms |
| 7 | Gastro-intestinal symptoms (appetite, cravings, stool) |
| 8 | Urinary & Female symptoms |
| 9 | Bones, Glands & Teeth — Rachitic affections |
| 10 | Skin & Extremities |
| 11 | Fever, Sweat & Chill |
| 12 | Modalities — Worse / Better (dark visual slide with red/green boxes) |
| 13 | Keynotes grid (8 characteristic symptoms) |
| 14 | Constitutional comparison — Sulphur → Calc. carb. → Lycopodium |
| 15 | Relationships — Complementary, Antidotes, Incompatible, Useful After |
| 16 | Potency, dosage & clinical indications |
| 17 | Summary closing slide |
Give me ppt of calcarea carbonica homoeopathic medicine with symptoms images
Calcarea carbonica homeopathic medicine symptoms images free use clinical photos
rickets rachitis children open fontanelle swollen glands scrofula clinical image free
head sweating child sleep profuse scalp sweat clinical photo
oyster shell calcarea carbonica source homeopathy fat chubby child obesity belly
mkdir -p /home/daytona/workspace/calc-carb-images-ppt/imgs # Download usable images curl -sL "https://www.trishlaortho.com/wp-content/uploads/2022/02/Ricket-Image.jpeg" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/rickets.jpg --max-time 15 echo "rickets: $?" curl -sL "https://i0.wp.com/post.healthline.com/wp-content/uploads/2020/02/young_child_sleeping-1296x728-header.jpg?w=1155&h=1528" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/child_sleep_sweat.jpg --max-time 15 echo "sleep_sweat: $?" curl -sL "https://dailymed.nlm.nih.gov/dailymed/image.cfm?name=Calc+Carb.jpg&id=877017" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/calc_carb_bottle.jpg --max-time 15 echo "bottle: $?" curl -sL "https://www.verywellhealth.com/thmb/mvXcHcUA6BP5FkTYiVj8Wph8Cgg=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/GettyImages-157589125-053f113f3a9b4b3985063fdff7696ae8.jpg" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/child_sweat.jpg --max-time 15 echo "child_sweat: $?"
# Download oyster shell and more images curl -sL "https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Oyster_-_Haeckel.jpg/800px-Oyster_-_Haeckel.jpg" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/oyster.jpg --max-time 15 echo "oyster: $?" curl -sL "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Ostrea_edulis_-_Mus%C3%A9um_de_Toulouse.jpg/640px-Ostrea_edulis_-_Mus%C3%A9um_de_Toulouse.jpg" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/oyster2.jpg --max-time 15 echo "oyster2: $?" curl -sL "https://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Blausen_0785_Rickets.png/640px-Blausen_0785_Rickets.png" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/rickets_diagram.png --max-time 15 echo "rickets_diag: $?" curl -sL "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Swollen_lymph_node_neck.jpg/400px-Swollen_lymph_node_neck.jpg" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/swollen_glands.jpg --max-time 15 echo "swollen_glands: $?" curl -sL "https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/Fontanelle.png/640px-Fontanelle.png" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/fontanelle.png --max-time 15 echo "fontanelle: $?" ls -lh /home/daytona/workspace/calc-carb-images-ppt/imgs/
# Check which files are valid images (not 2KB error pages) for f in /home/daytona/workspace/calc-carb-images-ppt/imgs/*; do size=$(stat -c%s "$f") echo "$size bytes: $(basename $f)" done # Try to identify actual image files file /home/daytona/workspace/calc-carb-images-ppt/imgs/*
# Get more valid images - try different sources # Oyster shell curl -sL "https://upload.wikimedia.org/wikipedia/commons/6/6c/Oyster_shell.jpg" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/oyster_shell.jpg --max-time 15 -A "Mozilla/5.0" echo "oyster_shell: $? $(stat -c%s /home/daytona/workspace/calc-carb-images-ppt/imgs/oyster_shell.jpg) bytes" # Warts on hand curl -sL "https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Verruca_vulgaris_-_1.jpg/320px-Verruca_vulgaris_-_1.jpg" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/warts.jpg --max-time 15 -A "Mozilla/5.0" echo "warts: $? $(stat -c%s /home/daytona/workspace/calc-carb-images-ppt/imgs/warts.jpg) bytes" # Obese child curl -sL "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Obesity_waist_circumference.JPG/320px-Obesity_waist_circumference.JPG" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/obesity.jpg --max-time 15 -A "Mozilla/5.0" echo "obesity: $? $(stat -c%s /home/daytona/workspace/calc-carb-images-ppt/imgs/obesity.jpg) bytes" # Dental caries curl -sL "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Dental_Caries_Cavity_-_annotated.jpg/320px-Dental_Caries_Cavity_-_annotated.jpg" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/dental_caries.jpg --max-time 15 -A "Mozilla/5.0" echo "dental_caries: $? $(stat -c%s /home/daytona/workspace/calc-carb-images-ppt/imgs/dental_caries.jpg) bytes" # Ostrea edulis oyster shell curl -sL "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/OstreaedulisPCCA20060902_0085.jpg/320px-OstreaedulisPCCA20060902_0085.jpg" -o /home/daytona/workspace/calc-carb-images-ppt/imgs/ostrea.jpg --max-time 15 -A "Mozilla/5.0" echo "ostrea: $? $(stat -c%s /home/daytona/workspace/calc-carb-images-ppt/imgs/ostrea.jpg) bytes" file /home/daytona/workspace/calc-carb-images-ppt/imgs/oyster_shell.jpg /home/daytona/workspace/calc-carb-images-ppt/imgs/warts.jpg /home/daytona/workspace/calc-carb-images-ppt/imgs/obesity.jpg /home/daytona/workspace/calc-carb-images-ppt/imgs/dental_caries.jpg /home/daytona/workspace/calc-carb-images-ppt/imgs/ostrea.jpg
# Wikipedia blocks direct curl - use the node fetch_images script to get images from wikimedia node /home/daytona/skills/shared/scripts/fetch_images.js \ "https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Verruca_vulgaris_-_1.jpg/320px-Verruca_vulgaris_-_1.jpg" \ "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/OstreaedulisPCCA20060902_0085.jpg/320px-OstreaedulisPCCA20060902_0085.jpg" \ "https://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Blausen_0785_Rickets.png/640px-Blausen_0785_Rickets.png" \ "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Dental_Caries_Cavity_-_annotated.jpg/320px-Dental_Caries_Cavity_-_annotated.jpg" 2>/dev/null | python3 -c " import sys, json data = json.load(sys.stdin) for item in data: url = item['url'] err = item.get('error') b64 = item.get('base64','') print(f'{url[-40:]}: error={err}, b64_len={len(b64)}') "
# Use python to download images with proper headers python3 << 'EOF' import urllib.request import os imgs_dir = "/home/daytona/workspace/calc-carb-images-ppt/imgs" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Accept': 'image/*,*/*;q=0.8', } urls = { "warts.jpg": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Verruca_vulgaris_-_1.jpg/320px-Verruca_vulgaris_-_1.jpg", "oyster_shell.jpg": "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/OstreaedulisPCCA20060902_0085.jpg/320px-OstreaedulisPCCA20060902_0085.jpg", "rickets_diag.png": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Blausen_0785_Rickets.png/640px-Blausen_0785_Rickets.png", "dental.jpg": "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Dental_Caries_Cavity_-_annotated.jpg/320px-Dental_Caries_Cavity_-_annotated.jpg", "swollen_lymph.jpg": "https://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/Swollen_Lymph_Nodes_-_Hodgkin%27s.jpg/320px-Swollen_Lymph_Nodes_-_Hodgkin%27s.jpg", } for fname, url in urls.items(): try: req = urllib.request.Request(url, headers=headers) with urllib.request.urlopen(req, timeout=10) as resp: data = resp.read() fpath = os.path.join(imgs_dir, fname) with open(fpath, 'wb') as f: f.write(data) print(f"OK {fname}: {len(data)} bytes") except Exception as e: print(f"FAIL {fname}: {e}") EOF
python3 << 'EOF' import urllib.request import os imgs_dir = "/home/daytona/workspace/calc-carb-images-ppt/imgs" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Accept': 'image/*,*/*;q=0.8', } # Use allowed thumbnail sizes (200px, 400px, 600px etc.) urls = { "warts.jpg": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Verruca_vulgaris_-_1.jpg/200px-Verruca_vulgaris_-_1.jpg", "oyster_shell.jpg": "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/OstreaedulisPCCA20060902_0085.jpg/200px-OstreaedulisPCCA20060902_0085.jpg", "rickets_diag.png": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Blausen_0785_Rickets.png/400px-Blausen_0785_Rickets.png", "dental.jpg": "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Dental_Caries_Cavity_-_annotated.jpg/200px-Dental_Caries_Cavity_-_annotated.jpg", "fontanelle.png": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/Fontanelle.png/400px-Fontanelle.png", "sweat_night.jpg": "https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Baby_sleep.jpg/400px-Baby_sleep.jpg", } for fname, url in urls.items(): try: req = urllib.request.Request(url, headers=headers) with urllib.request.urlopen(req, timeout=10) as resp: data = resp.read() fpath = os.path.join(imgs_dir, fname) with open(fpath, 'wb') as f: f.write(data) print(f"OK {fname}: {len(data)} bytes") except Exception as e: print(f"FAIL {fname}: {e}") EOF
python3 << 'EOF' # Create symptom illustration images using PIL from PIL import Image, ImageDraw, ImageFont import os out = "/home/daytona/workspace/calc-carb-images-ppt/imgs" def make_symptom_card(filename, title, icon_text, color_bg, color_accent, lines): """Create a clean symptom illustration card""" W, H = 600, 400 img = Image.new("RGB", (W, H), color_bg) draw = ImageDraw.Draw(img) # Accent bar on left draw.rectangle([0, 0, 12, H], fill=color_accent) # Top bar draw.rectangle([0, 0, W, 60], fill=color_accent) # Title try: font_title = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 28) font_body = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 20) font_icon = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 60) except: font_title = ImageFont.load_default() font_body = font_title font_icon = font_title draw.text((25, 14), title, fill="white", font=font_title) # Icon area draw.text((W//2 - 35, 75), icon_text, fill=color_accent, font=font_icon) # Lines y = 170 for line in lines: draw.text((25, y), f"• {line}", fill="#1a1a2e", font=font_body) y += 34 img.save(os.path.join(out, filename)) print(f"Created {filename}") # 1. Constitution card make_symptom_card( "constitution.png", "CONSTITUTION", "♟", "#E3EEF7", "#1A3A5C", ["Fat, Fair, Flabby", "Leucophlegmatic type", "Easily chilled", "Slow & sluggish", "Scrofulous diathesis"] ) # 2. Head Sweat card make_symptom_card( "head_sweat.png", "HEAD SWEAT KEYNOTE", "💧", "#FFF8E1", "#C9A84C", ["Profuse sour-smelling sweat", "Occurs during sleep", "Drenches the pillow", "Head sweats — feet stay cold", "Hallmark of Calc. carb."] ) # 3. Bone/Rachitis make_symptom_card( "bones_rachitis.png", "RACHITIS & BONES", "🦴", "#E8F5E9", "#1E7A45", ["Delayed bone ossification", "Open fontanelles too long", "Soft, curved bones", "Delayed dentition", "Scrofulous gland swelling"] ) # 4. Mental symptoms make_symptom_card( "mental.png", "MENTAL SYMPTOMS", "🧠", "#F3E5F5", "#6A1B9A", ["Fear of insanity", "Anxiety with palpitation", "Slow, difficult thinking", "Obstinate in children", "Dread as evening approaches"] ) # 5. Modalities make_symptom_card( "modalities.png", "MODALITIES", "⚖", "#E8EAF6", "#283593", ["WORSE: Cold, wet, exertion", "WORSE: Full moon, standing", "WORSE: Ascending stairs", "BETTER: Dry warm weather", "BETTER: Lying on painful side"] ) # 6. GI symptoms make_symptom_card( "gi_symptoms.png", "GASTRIC SYMPTOMS", "🌾", "#FFF3E0", "#E65100", ["Craves EGGS, sweets, chalk", "Sour taste & sour vomiting", "Ravenous hunger (morning)", "Better when constipated", "Milk disagrees — diarrhoea"] ) # 7. Skin make_symptom_card( "skin.png", "SKIN SYMPTOMS", "🔬", "#FCE4EC", "#880E4F", ["Warts: fleshy, on face/hands", "Unhealthy; wounds don't heal", "Urticaria better in cold air", "Petechiae; chilblains; boils", "Polypi (nasal, uterine, ear)"] ) # 8. Sourness keynote make_symptom_card( "sourness.png", "SOURNESS — KEYNOTE", "🍋", "#F1F8E9", "#33691E", ["Sour taste in mouth", "Sour vomiting after milk", "Sour-smelling stools", "Sour body odour", "Everything is SOUR"] ) print("All cards created!") EOF
python3 << 'EOF' # Create more clinical illustration images from PIL import Image, ImageDraw, ImageFont import os out = "/home/daytona/workspace/calc-carb-images-ppt/imgs" def make_body_diagram(filename, title, highlights): """Create a simple body silhouette diagram with annotations""" W, H = 600, 450 img = Image.new("RGB", (W, H), "#F0F7F4") draw = ImageDraw.Draw(img) try: font_title = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 24) font_body = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 17) except: font_title = ImageFont.load_default() font_body = font_title # Title bar draw.rectangle([0, 0, W, 50], fill="#1A3A5C") draw.text((15, 12), title, fill="white", font=font_title) # Draw a simple human outline (head + body) cx = 300 # Head draw.ellipse([cx-35, 65, cx+35, 135], outline="#2E5F8A", width=3, fill="#B8D4EA") # Neck draw.rectangle([cx-12, 135, cx+12, 160], fill="#B8D4EA", outline="#2E5F8A", width=2) # Body/torso draw.rectangle([cx-55, 160, cx+55, 300], fill="#B8D4EA", outline="#2E5F8A", width=3) # Arms draw.rectangle([cx-90, 165, cx-55, 275], fill="#B8D4EA", outline="#2E5F8A", width=2) draw.rectangle([cx+55, 165, cx+90, 275], fill="#B8D4EA", outline="#2E5F8A", width=2) # Legs draw.rectangle([cx-45, 300, cx-10, 420], fill="#B8D4EA", outline="#2E5F8A", width=2) draw.rectangle([cx+10, 300, cx+45, 420], fill="#B8D4EA", outline="#2E5F8A", width=2) # Annotations colors = ["#C0392B", "#E65100", "#1E7A45", "#6A1B9A", "#283593", "#C9A84C"] for idx, (label, y_pos, side) in enumerate(highlights): c = colors[idx % len(colors)] if side == "right": x_text = cx + 100 x_dot = cx + 60 else: x_text = 15 x_dot = cx - 60 # Dot marker draw.ellipse([x_dot-7, y_pos-7, x_dot+7, y_pos+7], fill=c) # Line draw.line([(x_dot, y_pos), (x_text + (150 if side=="right" else 0), y_pos)], fill=c, width=2) # Label draw.text((x_text, y_pos-12), label, fill=c, font=font_body) img.save(os.path.join(out, filename)) print(f"Created {filename}") # Body diagram with Calc carb affections make_body_diagram("body_affections.png", "CALCAREA CARB — ORGAN AFFECTIONS", [ ("Head sweat ↑", 100, "right"), ("Lymph glands", 165, "left"), ("Chest / lungs", 205, "right"), ("Large abdomen", 245, "left"), ("Cold feet ↓", 400, "right"), ]) # Child milestones card W, H = 600, 400 img = Image.new("RGB", (W, H), "#FFF8E1") draw = ImageDraw.Draw(img) try: font_title = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 26) font_body = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 19) font_sm = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 15) except: font_title = font_body = font_sm = ImageFont.load_default() draw.rectangle([0, 0, W, 55], fill="#C9A84C") draw.text((15, 14), "DELAYED MILESTONES IN CHILDREN", fill="white", font=font_title) milestones = [ ("Normal", "Calc. carb.", "MILESTONE"), ("6–8 mo", "12–18 mo", "First tooth appears"), ("1 yr", "2–3 yr", "Fontanelle closes"), ("12 mo", "18–24 mo", "Child walks independently"), ("2 yr", "3–4 yr", "Full primary dentition"), ("Normal wt", "Fat, heavy", "Body habitus"), ] colors_row = ["#1A3A5C", "#1A3A5C", "#1E7A45", "#C9A84C", "#C0392B", "#6A1B9A", "#E65100"] y = 65 for i, (norm, calc, label) in enumerate(milestones): bg = "#FFF8E1" if i % 2 == 0 else "#FFF3CD" draw.rectangle([0, y, W, y+45], fill=bg) c = colors_row[i] draw.text((15, y+12), label, fill="#1A1A2E", font=font_body) draw.text((310, y+12), norm, fill="#1E7A45", font=font_body) draw.text((460, y+12), calc, fill=c if i>0 else "#1A3A5C", font=font_body) if i == 0: draw.line([(0, y+44), (W, y+44)], fill="#C9A84C", width=2) y += 45 img.save(os.path.join(out, "milestones.png")) print("Created milestones.png") print("All diagrams created!") EOF
ls -lh /home/daytona/workspace/calc-carb-images-ppt/imgs/ | grep -v "2010 bytes\|83 bytes\|HTML" # List valid images python3 -c " import os from PIL import Image d = '/home/daytona/workspace/calc-carb-images-ppt/imgs' for f in sorted(os.listdir(d)): fp = os.path.join(d,f) try: img = Image.open(fp) print(f'VALID {f}: {img.size} {img.format}') except: print(f'INVALID {f}') "
~/calc-carb-images-ppt/create_ppt.js
const pptxgen = require("pptxgenjs");
const fs = require("fs");
const path = require("path");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Calcarea Carbonica - Homoeopathic Medicine";
const IMGS = "/home/daytona/workspace/calc-carb-images-ppt/imgs";
// Helper: load image as base64 data URI
function img(filename) {
const ext = path.extname(filename).slice(1).toLowerCase();
const mime = ext === "png" ? "image/png" : "image/jpeg";
const data = fs.readFileSync(path.join(IMGS, filename));
return `data:${mime};base64,` + data.toString("base64");
}
const C = {
royalBlue: "1A3A5C", midBlue: "2E5F8A", lightBlue: "4A90C4",
skyBlue: "B8D4EA", ivory: "F9F7F2", gold: "C9A84C",
white: "FFFFFF", textDark: "1A1A2E", paleBlue: "E3EEF7",
red: "C0392B", green: "1E7A45", bgSlide: "EEF4FA",
};
function sectionBand(s, label) {
s.addShape(pres.ShapeType.rect, { x:0, y:0, w:10, h:0.55, fill:{color:C.royalBlue}, line:{width:0} });
s.addText(label, { x:0.3, y:0, w:9.4, h:0.55, fontSize:13, bold:true, color:C.gold, valign:"middle", margin:0 });
}
function footer(s, text) {
s.addShape(pres.ShapeType.rect, { x:0, y:5.35, w:10, h:0.28, fill:{color:C.royalBlue}, line:{width:0} });
s.addText(text, { x:0.2, y:5.35, w:9.6, h:0.28, fontSize:8, color:C.skyBlue, valign:"middle", margin:0 });
}
function leftBar(s) {
s.addShape(pres.ShapeType.rect, { x:0, y:0.55, w:0.09, h:4.8, fill:{color:C.lightBlue}, line:{width:0} });
}
function bulletBlock(s, items, opts={}) {
const {x=0.3, y=0.65, w=9.3, h=4.6, fontSize=14} = opts;
const arr = items.map((item,i) => ({
text: item,
options: { bullet:{type:"bullet",code:"2022"}, fontSize, color:C.textDark, breakLine: i<items.length-1, paraSpaceBefore:5 }
}));
s.addText(arr, {x, y, w, h, valign:"top", margin:4});
}
// ═══ SLIDE 1 — Title with Bottle Photo ═══
{
const s = pres.addSlide();
s.background = { color: C.royalBlue };
s.addShape(pres.ShapeType.ellipse, { x:-0.8, y:-0.8, w:3.2, h:3.2, fill:{color:C.midBlue}, line:{width:0} });
s.addShape(pres.ShapeType.ellipse, { x:7.8, y:3.5, w:3.2, h:3.2, fill:{color:C.midBlue}, line:{width:0} });
// Bottle image on right
s.addImage({ data: img("calc_carb_bottle.jpg"), x:6.2, y:0.5, w:3.5, h:1.75 });
s.addShape(pres.ShapeType.rect, { x:0.55, y:1.2, w:0.14, h:2.8, fill:{color:C.gold}, line:{width:0} });
s.addText("CALCAREA CARBONICA", { x:0.9, y:1.05, w:5.8, h:1.05, fontSize:38, bold:true, color:C.white, charSpacing:3, margin:0 });
s.addText("Calc. Carb. | Calcarea Ostrearum", { x:0.9, y:2.15, w:5.8, h:0.55, fontSize:17, italic:true, color:C.gold, margin:0 });
s.addText("Homoeopathic Materia Medica", { x:0.9, y:2.72, w:5.8, h:0.42, fontSize:13, color:C.skyBlue, margin:0 });
s.addShape(pres.ShapeType.rect, { x:0, y:5.25, w:10, h:0.38, fill:{color:C.midBlue}, line:{width:0} });
s.addText("Source: Middle layer of Oyster Shell (Ostrea edulis) | Proved by: Samuel Hahnemann | Family: Animal (Mollusca)", {
x:0.3, y:5.25, w:9.4, h:0.38, fontSize:9, color:C.skyBlue, valign:"middle", margin:0 });
}
// ═══ SLIDE 2 — Constitution with Image ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "CONSTITUTION & DRUG SOURCE");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
// Constitution image left
s.addImage({ data: img("constitution.png"), x:0.15, y:0.65, w:4.5, h:3.0 });
// Text right
s.addShape(pres.ShapeType.rect, { x:4.85, y:0.65, w:4.95, h:4.55, fill:{color:C.bgSlide}, line:{color:C.lightBlue, width:1}, rounding:true });
s.addText([
{text:"Source & Preparation\n", options:{bold:true, fontSize:14, color:C.royalBlue, breakLine:true}},
{text:"• Middle layer of Oyster Shell (Ostrea edulis)\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Trituration of Carbonate of Lime\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Kingdom: Animal (Mollusca)\n\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"Constitutional Type\n", options:{bold:true, fontSize:14, color:C.royalBlue, breakLine:true}},
{text:"• LEUCOPHLEGMATIC — Fat, Fair, Flabby\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Easily chilled; slow and sluggish\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Scrofulous, rachitic, tubercular tendency\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Great ANTIPSORIC polychrest\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Proved by Samuel Hahnemann", options:{fontSize:13, color:C.textDark, paraSpaceBefore:3}},
], { x:5.0, y:0.78, w:4.6, h:4.3, valign:"top", margin:6 });
}
// ═══ SLIDE 3 — Key Theme with Body Diagram ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "KEY THEME — ORGAN AFFECTIONS & DOCTRINE");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
// Body diagram
s.addImage({ data: img("body_affections.png"), x:6.0, y:0.62, w:3.8, h:2.85 });
// Theme banner
s.addShape(pres.ShapeType.rect, { x:0.15, y:0.65, w:5.7, h:0.75, fill:{color:C.midBlue}, line:{width:0}, rounding:true });
s.addText('"FAT • FAIR • FLABBY • CHILLY"', { x:0.15, y:0.65, w:5.7, h:0.75, fontSize:17, bold:true, color:C.gold, align:"center", valign:"middle", margin:0 });
s.addText([
{text:"• Acts on vegetative system — impairs nutrition & assimilation\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4}},
{text:"• Mimics scrofula, tuberculosis, rachitis\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4}},
{text:"• Mucous membranes secrete more; skin suppressed\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4}},
{text:"• Glands, bones, skin — primary spheres\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:4}},
{text:"• SOURNESS is a hallmark — taste, vomit, sweat, stool", options:{fontSize:13, color:C.textDark, paraSpaceBefore:4}},
], { x:0.2, y:1.5, w:5.6, h:2.1, valign:"top", margin:4 });
// Bottom info strip
s.addShape(pres.ShapeType.rect, { x:0.15, y:3.75, w:5.7, h:1.45, fill:{color:C.paleBlue}, line:{color:C.lightBlue, width:1}, rounding:true });
s.addText([
{text:"CALC. CARB. MNEMONIC:\n", options:{bold:true, fontSize:13, color:C.royalBlue, breakLine:true}},
{text:"C", options:{bold:true, color:C.red, fontSize:12}}, {text:"hilly • ", options:{fontSize:12, color:C.textDark}},
{text:"A", options:{bold:true, color:C.red, fontSize:12}}, {text:"ntipsoric • ", options:{fontSize:12, color:C.textDark}},
{text:"L", options:{bold:true, color:C.red, fontSize:12}}, {text:"eucoplegmatic • ", options:{fontSize:12, color:C.textDark}},
{text:"C", options:{bold:true, color:C.red, fontSize:12}}, {text:"oldness • ", options:{fontSize:12, color:C.textDark}},
{text:"A", options:{bold:true, color:C.red, fontSize:12}}, {text:"ffection of glands\n", options:{fontSize:12, color:C.textDark, breakLine:true}},
{text:"R", options:{bold:true, color:C.red, fontSize:12}}, {text:"avenous hunger • ", options:{fontSize:12, color:C.textDark}},
{text:"E", options:{bold:true, color:C.red, fontSize:12}}, {text:"xcessive sour discharge • ", options:{fontSize:12, color:C.textDark}},
{text:"A", options:{bold:true, color:C.red, fontSize:12}}, {text:"ssimilation altered", options:{fontSize:12, color:C.textDark}},
], { x:0.3, y:3.82, w:5.5, h:1.3, valign:"top", margin:4 });
}
// ═══ SLIDE 4 — Mental Symptoms with Image ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "MENTAL & EMOTIONAL SYMPTOMS");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
// Mental image on right
s.addImage({ data: img("mental.png"), x:6.1, y:0.65, w:3.7, h:2.45 });
// Bullets left + below
s.addText([
{text:"• Fear of insanity — fears losing reason; fears others will notice confusion\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Anxiety with palpitation of the heart; fear of impending evil\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Shuddering and dread as evening draws near\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Slow, dull thinking; learns with great difficulty; averse to work\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Obstinate in children; sits and breaks pins; indifferent to recovery", options:{fontSize:13, color:C.textDark, paraSpaceBefore:3}},
], {x:0.2, y:0.68, w:5.7, h:2.5, valign:"top", margin:4});
// More bullets below the image
s.addText([
{text:"• Depression, melancholy, tearfulness; despondent about health\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Anxious about cruelty — avoids violent TV scenes\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Delusions: visions of fire, sees figures, someone is behind him\n", options:{fontSize:13, color:C.textDark, breakLine:true, paraSpaceBefore:3}},
{text:"• Seeks company, stability, routine; fear of new situations", options:{fontSize:13, color:C.textDark, paraSpaceBefore:3}},
], {x:0.2, y:3.2, w:9.6, h:2.0, valign:"top", margin:4});
}
// ═══ SLIDE 5 — Head Sweat Keynote with Photo ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "HEAD SWEAT — KEYNOTE SYMPTOM");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
// Sleeping child photo
s.addImage({ data: img("child_sleep_sweat.jpg"), x:5.3, y:0.65, w:4.5, h:2.53 });
s.addShape(pres.ShapeType.rect, { x:5.3, y:3.16, w:4.5, h:0.28, fill:{color:C.royalBlue}, line:{width:0} });
s.addText("Profuse sweating on scalp during sleep — a Calc. carb. hallmark", {
x:5.3, y:3.16, w:4.5, h:0.28, fontSize:8, color:C.white, valign:"middle", align:"center", margin:0 });
// Head sweat card
s.addImage({ data: img("head_sweat.png"), x:0.15, y:0.65, w:5.0, h:2.8 });
// Extra info below
s.addShape(pres.ShapeType.rect, { x:0.15, y:3.55, w:9.65, h:1.65, fill:{color:C.paleBlue}, line:{color:C.lightBlue, width:1}, rounding:true });
s.addText([
{text:"CONTRAST KEYNOTE: ", options:{bold:true, fontSize:14, color:C.royalBlue}},
{text:"Head sweats PROFUSELY during sleep (drenches pillow) while the FEET remain ICY COLD. This contrast — wet scalp + cold extremities — is a hallmark distinguishing feature of Calcarea carbonica.", options:{fontSize:13, color:C.textDark}},
], { x:0.3, y:3.62, w:9.4, h:1.5, valign:"middle", margin:4 });
}
// ═══ SLIDE 6 — Delayed Milestones with Table ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "DELAYED MILESTONES — CHILDREN & RACHITIC AFFECTIONS");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
// Milestones table image
s.addImage({ data: img("milestones.png"), x:0.15, y:0.65, w:5.8, h:3.87 });
// Rickets image + text
s.addImage({ data: img("rickets.jpg"), x:6.1, y:0.65, w:2.5, h:2.46 });
s.addShape(pres.ShapeType.rect, { x:6.1, y:3.09, w:2.5, h:0.25, fill:{color:C.royalBlue}, line:{width:0} });
s.addText("Rickets (Rachitis) — Calc. carb. indication", {
x:6.1, y:3.09, w:2.5, h:0.25, fontSize:7.5, color:C.white, align:"center", valign:"middle", margin:0 });
// Bones card
s.addImage({ data: img("bones_rachitis.png"), x:6.1, y:3.38, w:3.7, h:1.84 });
}
// ═══ SLIDE 7 — Gastric Symptoms with Image ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "GASTRO-INTESTINAL & APPETITE SYMPTOMS");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
// GI card image
s.addImage({ data: img("gi_symptoms.png"), x:6.1, y:0.65, w:3.7, h:2.45 });
// Sourness card
s.addImage({ data: img("sourness.png"), x:6.1, y:3.2, w:3.7, h:2.0 });
bulletBlock(s, [
"Ravenous hunger, especially in morning; insatiable thirst for cold drinks at night",
"CRAVES: Eggs (especially), sweets, chalk, coal, pencils (pica)",
"AVERSIONS: Meat, hot food, tobacco",
"Sour taste to everything; food tastes sour; sour vomiting after milk",
"Continuous heartburn and belching after every meal",
"BETTER WHEN CONSTIPATED — paradoxical well-being",
"Diarrhoea in children: sour, white, watery (from cold or suppressed eruptions)",
"Abdomen large, distended in children; mesenteric gland enlargement",
], {x:0.2, y:0.65, w:5.7, h:4.6, fontSize:13});
}
// ═══ SLIDE 8 — Skin Symptoms with Image ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "SKIN SYMPTOMS");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
// Skin card
s.addImage({ data: img("skin.png"), x:6.1, y:0.65, w:3.7, h:2.45 });
bulletBlock(s, [
"WARTS: Fleshy, large, smooth — on face, back of hands and fingers",
"Unhealthy skin — flaccid, easily ulcerating; small wounds do not heal readily",
"Nettle rash (urticaria) — better in COLD air (paradoxical: chilly patient relieved by cold)",
"Petechial eruptions; chilblains; recurring boils",
"Polypi tendency: nasal, aural, uterine, rectal",
"Follicular tumors recurring every 4 weeks at full moon",
"Skin sensitive; dry, rough, with tendency to eruptions",
"Profuse cold, sour-smelling foot sweat; offensive perspiration",
], {x:0.2, y:0.65, w:5.7, h:4.6, fontSize:13});
// Additional: body image in lower right
s.addShape(pres.ShapeType.rect, { x:6.1, y:3.22, w:3.7, h:1.9, fill:{color:C.paleBlue}, line:{color:C.lightBlue, width:1}, rounding:true });
s.addText([
{text:"Wart Keynote\n", options:{bold:true, fontSize:13, color:C.royalBlue, breakLine:true}},
{text:"Large, fleshy, smooth warts on face and hands. Compare Thuja (cauliflower warts) and Dulcamara (smooth warts after cold exposure).", options:{fontSize:12, color:C.textDark}},
], { x:6.2, y:3.3, w:3.5, h:1.7, valign:"top", margin:4 });
}
// ═══ SLIDE 9 — Respiratory, Throat, Glands ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "THROAT | RESPIRATORY | GLANDS | BONES");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
// Two columns
const left = [
"THROAT: Chronic tonsillitis; adenoids; tonsils repeatedly inflamed",
"Goitre — thyroid enlargement in fat, chilly persons",
"Cervical lymph glands painfully swollen",
"CHEST: Dyspnoea on exertion; shortness of breath on stairs",
"Chronic cough; profuse yellow/offensive expectoration",
"Tubercular tendency: chest sweats, haemoptysis, rattling bronchi",
];
const right = [
"BONES: Swelling and softening of epiphyses (rachitis)",
"Curvature of spine; caries of bone",
"Fontanelles remain open too long",
"Teeth: delayed, soft, yellow, rapidly carious",
"GLANDS: Painfully swollen lymph nodes everywhere",
"Mesenteric adenitis; induration then suppuration",
];
// Left card
s.addShape(pres.ShapeType.rect, { x:0.15, y:0.65, w:4.7, h:4.6, fill:{color:C.paleBlue}, line:{color:C.lightBlue, width:1}, rounding:true });
const lArr = left.map((t,i)=>({text:t, options:{bullet:{code:"2022"}, fontSize:12.5, color:C.textDark, breakLine:i<left.length-1, paraSpaceBefore:5}}));
s.addText(lArr, {x:0.3, y:0.75, w:4.45, h:4.4, valign:"top", margin:4});
// Right card
s.addShape(pres.ShapeType.rect, { x:5.1, y:0.65, w:4.7, h:4.6, fill:{color:C.paleBlue}, line:{color:C.lightBlue, width:1}, rounding:true });
const rArr = right.map((t,i)=>({text:t, options:{bullet:{code:"2022"}, fontSize:12.5, color:C.textDark, breakLine:i<right.length-1, paraSpaceBefore:5}}));
s.addText(rArr, {x:5.25, y:0.75, w:4.45, h:4.4, valign:"top", margin:4});
}
// ═══ SLIDE 10 — Female & Urinary ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "FEMALE | URINARY | FEVER & SWEAT");
leftBar(s);
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
bulletBlock(s, [
"FEMALE: Menses — too early, too profuse, too long-lasting; in fat, plethoric women",
"Leucorrhoea: profuse, milky-white, acrid — before and after menses",
"Uterine fibroids and polypi tendency; uterine prolapse from cold",
"Delayed menarche in fat, flabby, slow girls",
"URINARY: Milky, turbid urine after standing; burning on urination",
"Involuntary urination from cold; catarrh of bladder",
"FEVER: Sticky, exhausting night sweat — most on head and chest",
"Chill in evening with shuddering; cold hands after heat episode; internal chilliness after rising",
], {fontSize:13.5});
}
// ═══ SLIDE 11 — Modalities with Image ═══
{
const s = pres.addSlide();
s.background = { color: "1A2540" };
s.addShape(pres.ShapeType.rect, { x:0, y:0, w:10, h:0.55, fill:{color:C.gold}, line:{width:0} });
s.addText("MODALITIES", { x:0.3, y:0, w:9.4, h:0.55, fontSize:18, bold:true, color:C.royalBlue, valign:"middle", margin:0 });
// Modalities image
s.addImage({ data: img("modalities.png"), x:3.7, y:0.62, w:2.6, h:1.73 });
// WORSE box
s.addShape(pres.ShapeType.rect, { x:0.2, y:2.45, w:4.4, h:2.82, fill:{color:C.red}, line:{width:0}, rounding:true });
s.addText("WORSE ▼", { x:0.2, y:2.45, w:4.4, h:0.45, fontSize:14, bold:true, color:C.white, align:"center", valign:"middle", margin:0 });
const worseArr = [
"Cold in every form — air, water, washing","Wet & damp weather","Mental or physical exertion",
"Ascending stairs / heights","Standing; full moon","Overlifting; stooping","Suppressed eruptions or sweat",
].map((t,i)=>({text:t, options:{bullet:{code:"2022"}, fontSize:12, color:C.white, breakLine:i<6, paraSpaceBefore:4}}));
s.addText(worseArr, {x:0.35, y:2.95, w:4.1, h:2.25, valign:"top", margin:4});
// BETTER box
s.addShape(pres.ShapeType.rect, { x:5.4, y:2.45, w:4.4, h:2.82, fill:{color:C.green}, line:{width:0}, rounding:true });
s.addText("BETTER ▲", { x:5.4, y:2.45, w:4.4, h:0.45, fontSize:14, bold:true, color:C.white, align:"center", valign:"middle", margin:0 });
const betterArr = [
"Dry climate & weather","Warmth; warm room","Lying on painful side",
"Sneezing (relieves head/nape pain)","After breakfast (vertigo relieved)","When constipated",
].map((t,i)=>({text:t, options:{bullet:{code:"2022"}, fontSize:12, color:C.white, breakLine:i<5, paraSpaceBefore:4}}));
s.addText(betterArr, {x:5.55, y:2.95, w:4.1, h:2.25, valign:"top", margin:4});
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
}
// ═══ SLIDE 12 — Keynotes Grid ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "KEYNOTES & CHARACTERISTIC SYMPTOMS");
s.addShape(pres.ShapeType.rect, { x:0, y:0.55, w:0.09, h:4.8, fill:{color:C.lightBlue}, line:{width:0} });
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
const keynotes = [
"Profuse SOUR-SMELLING head sweat during sleep — drenches pillow",
"FAT, FAIR, FLABBY — leucophlegmatic; easily chilled",
"Head sweats profusely while FEET remain ICY COLD",
"Delayed milestones — late teething, late walking, open fontanelles",
"SOURNESS: taste, vomit, stool, body odour — all sour",
"Craving for EGGS, sweets, chalk, indigestible things",
"BETTER WHEN CONSTIPATED — paradoxical feature",
"Fear of INSANITY; anxiety about impending evil",
];
keynotes.forEach((kn, i) => {
const row = Math.floor(i/2), col = i%2;
const x = col===0 ? 0.2 : 5.1;
const y = 0.68 + row*1.18;
s.addShape(pres.ShapeType.rect, { x, y, w:4.7, h:1.05, fill:{color:C.royalBlue}, line:{width:0}, rounding:true });
s.addText(kn, { x:x+0.12, y:y+0.05, w:4.46, h:0.95, fontSize:11.5, color:C.white, valign:"middle", margin:4 });
});
}
// ═══ SLIDE 13 — Comparison Sulphur→Calc→Lyc ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "CONSTITUTIONAL COMPARISON — SULPHUR → CALC. CARB. → LYCOPODIUM");
s.addShape(pres.ShapeType.rect, { x:0, y:0.55, w:0.09, h:4.8, fill:{color:C.lightBlue}, line:{width:0} });
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
const cols = [
{ title:"SULPHUR", color:C.red, items:["Lean, untidy, philosophical","Hot-blooded; burning symptoms","Skin: itching burning eruptions","Hungry at 11 am","Acts first (primary antipsoric)","Dirty, ragged appearance"] },
{ title:"CALC. CARB.", color:C.royalBlue, items:["Fat, fair, flabby; chilly","Head sweats + cold feet","Scrofulous/rachitic body","Better when constipated","Craves eggs; all sourness","Follows Sulphur well"] },
{ title:"LYCOPODIUM", color:C.midBlue, items:["Lean, intellectually sharp","Right-sided; worse 4–8 pm","Flatulence; digestive-hepatic","Anticipatory anxiety","Craves sweets & hot food","Follows Calc. carb. well"] },
];
cols.forEach((col, ci) => {
const x = 0.2 + ci*3.27;
s.addShape(pres.ShapeType.rect, { x, y:0.66, w:3.05, h:4.6, fill:{color:col.color}, line:{width:0}, rounding:true });
s.addText(col.title, { x:x+0.08, y:0.66, w:2.9, h:0.5, fontSize:14, bold:true, color:C.gold, align:"center", valign:"middle", margin:0 });
const arr = col.items.map((t,i)=>({text:t, options:{bullet:{code:"2022"}, fontSize:12, color:C.white, breakLine:i<col.items.length-1, paraSpaceBefore:5}}));
s.addText(arr, {x:x+0.08, y:1.22, w:2.9, h:3.9, valign:"top", margin:5});
});
}
// ═══ SLIDE 14 — Relationship ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "RELATIONSHIP — COMPLEMENTARY, ANTIDOTES & INCOMPATIBLE");
s.addShape(pres.ShapeType.rect, { x:0, y:0.55, w:0.09, h:4.8, fill:{color:C.lightBlue}, line:{width:0} });
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
const boxes = [
{ label:"Complementary", color:C.green, bgColor:"E8F5E9", items:["Belladonna (Bell.)","Rhus toxicodendron (Rhus tox.)","Lycopodium clavatum (Lyc.)","Silicea terra (Sil.)"] },
{ label:"Antidotes", color:C.midBlue, bgColor:"E3EEF7", items:["Camphor (Camph.)","Ipecacuanha (Ipec.)","Nitric acid (Nit. ac.)","Nux vomica (Nux)"] },
{ label:"Incompatible", color:C.red, bgColor:"FFEBEE", items:["Bryonia alba (Bry.)","Sulphur — DO NOT give Sulph. AFTER Calc. carb."] },
{ label:"Follows Well / Useful After", color:C.royalBlue, bgColor:"E8EAF6", items:["Sulphur → Calc. carb. (classic antipsoric triad)","Dulcamara → Rhus tox → Calc. carb.","Tuberculinum → Calc. carb. → Silicea"] },
];
let y=0.68;
boxes.forEach((box) => {
const h = 0.36 + box.items.length*0.52;
s.addShape(pres.ShapeType.rect, { x:0.2, y, w:9.6, h, fill:{color:box.bgColor}, line:{color:box.color, width:1.5}, rounding:true });
s.addText(box.label, { x:0.35, y:y+0.04, w:2.4, h:0.36, fontSize:13, bold:true, color:box.color, valign:"top", margin:0 });
const arr = box.items.map((t,i)=>({text:t, options:{bullet:{code:"2022"}, fontSize:12.5, color:C.textDark, breakLine:i<box.items.length-1, paraSpaceBefore:3}}));
s.addText(arr, {x:2.85, y:y+0.04, w:6.85, h, valign:"top", margin:3});
y += h+0.12;
});
}
// ═══ SLIDE 15 — Potency & Clinical Uses ═══
{
const s = pres.addSlide();
s.background = { color: C.ivory };
sectionBand(s, "POTENCY, DOSAGE & CLINICAL INDICATIONS");
s.addShape(pres.ShapeType.rect, { x:0, y:0.55, w:0.09, h:4.8, fill:{color:C.lightBlue}, line:{width:0} });
footer(s, "Calcarea Carbonica — Homoeopathic Materia Medica");
const left = [
"Potencies: 6C, 30C, 200C, 1M",
"6X/6C: Acute and tissue salt therapy",
"30C: Most chronic constitutional cases",
"200C / 1M: Deep chronic pathology",
"Do NOT repeat frequently in elderly",
"6th trituration: Schussler tissue salt",
];
const right = [
"Rickets, open fontanelles, delayed teething",
"Scrofulous gland enlargements; adenoids",
"Obesity in fat, flabby, chilly patients",
"Menorrhagia; leucorrhoea; uterine fibroids",
"Chronic catarrhs; nasal polypi; otitis",
"Warts; unhealthy skin; chilblains; boils",
"Epilepsy; chorea (in scrofulous patients)",
"Anaemia; leucopenia; phthisis tendency",
];
s.addShape(pres.ShapeType.rect, { x:0.2, y:0.65, w:4.55, h:4.6, fill:{color:C.paleBlue}, line:{color:C.lightBlue, width:1}, rounding:true });
s.addText("Potency & Dosage", {x:0.35, y:0.7, w:4.25, h:0.4, fontSize:13, bold:true, color:C.royalBlue, margin:0});
s.addText(left.map((t,i)=>({text:t, options:{bullet:{code:"2022"}, fontSize:13, color:C.textDark, breakLine:i<left.length-1, paraSpaceBefore:5}})), {x:0.35, y:1.12, w:4.25, h:4.0, valign:"top", margin:4});
s.addShape(pres.ShapeType.rect, { x:5.25, y:0.65, w:4.55, h:4.6, fill:{color:C.paleBlue}, line:{color:C.lightBlue, width:1}, rounding:true });
s.addText("Clinical Indications", {x:5.4, y:0.7, w:4.25, h:0.4, fontSize:13, bold:true, color:C.royalBlue, margin:0});
s.addText(right.map((t,i)=>({text:t, options:{bullet:{code:"2022"}, fontSize:13, color:C.textDark, breakLine:i<right.length-1, paraSpaceBefore:5}})), {x:5.4, y:1.12, w:4.25, h:4.0, valign:"top", margin:4});
}
// ═══ SLIDE 16 — Summary ═══
{
const s = pres.addSlide();
s.background = { color: C.royalBlue };
s.addShape(pres.ShapeType.ellipse, { x:-1, y:-1, w:4, h:4, fill:{color:C.midBlue}, line:{width:0} });
s.addShape(pres.ShapeType.ellipse, { x:7.5, y:3.2, w:3.5, h:3.5, fill:{color:C.midBlue}, line:{width:0} });
s.addText("CALCAREA CARBONICA", { x:0.4, y:0.4, w:9.2, h:0.88, fontSize:34, bold:true, color:C.gold, align:"center", margin:0 });
s.addText("The Great Antipsoric | Calc. / Calc. carb. | Ostrea edulis", { x:0.4, y:1.28, w:9.2, h:0.42, fontSize:15, italic:true, color:C.skyBlue, align:"center", margin:0 });
s.addText([
{text:"Source: ", options:{bold:true, color:C.gold, fontSize:13}},
{text:"Middle layer of Oyster Shell — Kingdom: Animal (Mollusca)\n", options:{color:C.white, fontSize:13, breakLine:true}},
{text:"Constitution: ", options:{bold:true, color:C.gold, fontSize:13}},
{text:"Fat, Fair, Flabby, Chilly — Leucophlegmatic; Scrofulous & Rachitic diathesis\n", options:{color:C.white, fontSize:13, breakLine:true}},
{text:"Master Keys: ", options:{bold:true, color:C.gold, fontSize:13}},
{text:"Sour head sweat in sleep | Cold feet | Craves eggs | Delayed milestones | Better constipated\n", options:{color:C.white, fontSize:13, breakLine:true}},
{text:"Modalities: ", options:{bold:true, color:C.gold, fontSize:13}},
{text:"Worse cold/wet/exertion/full moon | Better dry weather, lying on painful side\n", options:{color:C.white, fontSize:13, breakLine:true}},
{text:"Complementary: ", options:{bold:true, color:C.gold, fontSize:13}},
{text:"Bell., Rhus tox., Lyc., Sil. ", options:{color:C.white, fontSize:13}},
{text:"Incompatible: ", options:{bold:true, color:C.gold, fontSize:13}},
{text:"Bry., Sulph. (not after Calc.)", options:{color:C.white, fontSize:13}},
], { x:0.7, y:1.82, w:8.6, h:3.2, valign:"top", margin:6 });
s.addShape(pres.ShapeType.rect, { x:0, y:5.25, w:10, h:0.38, fill:{color:C.gold}, line:{width:0} });
s.addText("Based on Boericke, H.C. Allen, Boger, Clarke, Cowperthwaite & Phatak — Homoeopathic Materia Medica", {
x:0.3, y:5.25, w:9.4, h:0.38, fontSize:9.5, bold:true, color:C.royalBlue, align:"center", valign:"middle", margin:0 });
}
// ─── Write ───
pres.writeFile({ fileName: "/home/daytona/workspace/calc-carb-images-ppt/Calcarea_Carbonica_With_Images.pptx" })
.then(() => console.log("PPT created successfully!"))
.catch(err => console.error("Error:", err));
cd /home/daytona/workspace/calc-carb-images-ppt && node create_ppt.js 2>&1
ls -lh /home/daytona/workspace/calc-carb-images-ppt/*.pptx
Calcarea Carbonica With Images
Presentation · PPTX
| Slide | Content | Images |
|---|---|---|
| 1 | Title slide | Calc. carb. medicine bottle photo |
| 2 | Constitution & source | Custom constitution symptom card |
| 3 | Key theme + CALC mnemonic | Body organ affections diagram |
| 4 | Mental symptoms | Custom mental symptom card |
| 5 | Head sweat keynote | Sleeping child photo + head sweat card |
| 6 | Delayed milestones | Milestone comparison table + rickets photo + bones card |
| 7 | Gastric & appetite symptoms | GI card + sourness keynote card |
| 8 | Skin symptoms | Skin card + wart comparison note |
| 9 | Throat, respiratory, glands, bones | Two-column layout |
| 10 | Female, urinary, fever & sweat | Full bullet layout |
| 11 | Modalities | Modalities card + Worse/Better boxes |
| 12 | Keynotes grid | 8 characteristic symptom tiles |
| 13 | Constitutional comparison | Sulphur → Calc. carb. → Lycopodium |
| 14 | Relationships | Complementary / Antidotes / Incompatible |
| 15 | Potency & clinical indications | Two-column layout |
| 16 | Summary closing | Dark blue closing slide |