Outline soft skills for medical students with example for lec
soft skills medical students communication empathy teamwork examples
https://www.trinityschoolofmedicine.org/about/resources/blog…
A patient with newly diagnosed Type 2 diabetes looks confused after the doctor explains "glycemic control." A student who pauses and says, "That means keeping your blood sugar in a safe range — let me show you a simple chart" immediately improves understanding and adherence.
A patient on rounds mentions "I feel fine." Active listening — noting the patient's flat affect, hesitation, and averted gaze — prompts the student to ask further and uncover unspoken anxiety about a new diagnosis.
A tearful mother brings in her child for a cancer follow-up. Instead of jumping straight to lab results, the empathic student says: "I can see how hard this has been for your family. Let's take a moment before we go through the numbers."
During a ward round, a student notices a nurse's concern about a patient's altered mobility that was not documented. Speaking up and including the nurse's observation in the team discussion prevents a fall risk from being overlooked.
| Domain | Description |
|---|---|
| Self-awareness | Knowing your emotional triggers |
| Self-regulation | Managing stress without outbursts |
| Social awareness | Reading the room / reading patients |
| Relationship management | Navigating conflict constructively |
A student receives harsh feedback from a consultant in front of peers. Instead of reacting defensively, they regulate their frustration, note the feedback professionally, and seek a private moment to ask for clarification.
A student's carefully prepared presentation is disrupted when a patient emergency unfolds mid-round. Rather than freezing, they calmly assist the team, then debrief what they learned from the unplanned event.
Two patients present with chest pain. Critical thinking leads the student to weigh the atypical features in a young woman (fatigue, nausea, jaw pain) and not dismiss her presentation because she doesn't fit the "classic" MI profile.
A patient declines a blood transfusion for religious reasons. A culturally competent student does not argue but explores alternative management options with the team and ensures the patient's autonomy is documented and respected.
A student on call has three tasks simultaneously: clerk a new admission, attend a teaching session, and follow up on urgent labs. Effective prioritization — labs first (patient safety), then admission, then teaching — reflects mature clinical judgment.
A student witnesses a colleague falsifying a patient note to cover a missed assessment. Professionalism requires raising the concern — first with the colleague, then through appropriate channels — even when socially uncomfortable.
| Method | What it Evaluates |
|---|---|
| OSCEs (Objective Structured Clinical Exams) | Communication, empathy, history-taking |
| 360-degree feedback | Teamwork, professionalism (peers, faculty, patients) |
| Mini-CEX | Clinical encounter skills in real settings |
| Reflective portfolios | Self-awareness, emotional intelligence |
| Standardized patients | Bedside manner, active listening |
"The most technically brilliant doctor who cannot communicate, empathize, or collaborate will consistently underperform compared to a compassionate, skilled communicator."
Power point
mkdir -p /home/daytona/workspace/soft-skills-pptx
~/soft-skills-pptx/generate.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Soft Skills for Medical Students";
pres.author = "Medical Education";
// ── Color Palette ──────────────────────────────────────────────
const C = {
navy: "0B2545", // dominant background
teal: "1A7A6E", // section accent bar
mint: "2ABFAE", // highlights / icons
white: "FFFFFF",
offwhite:"F0F7F6",
gray: "B0C4C1",
yellow: "F4C542", // example callout
lightTeal:"D6F0ED",
};
// ── Helper: slide number footer ───────────────────────────────
function addFooter(slide, num) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 5.325, w: 10, h: 0.3,
fill: { color: C.teal }, line: { color: C.teal }
});
slide.addText(`Soft Skills for Medical Students · ${num}`, {
x: 0, y: 5.325, w: 10, h: 0.3,
fontSize: 9, color: C.offwhite, align: "center", valign: "middle", margin: 0
});
}
// ── Helper: section header bar ────────────────────────────────
function sectionBadge(slide, label) {
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.4, y: 0.22, w: 2.2, h: 0.35,
fill: { color: C.mint }, line: { color: C.mint }, rectRadius: 0.06
});
slide.addText(label.toUpperCase(), {
x: 0.4, y: 0.22, w: 2.2, h: 0.35,
fontSize: 8.5, bold: true, color: C.navy, align: "center", valign: "middle", margin: 0
});
}
// ── Helper: example callout box ───────────────────────────────
function addExample(slide, text, x, y, w, h) {
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x, y, w, h,
fill: { color: C.yellow }, line: { color: "D4A800", pt: 1 }, rectRadius: 0.1
});
slide.addText([
{ text: "📋 Example: ", options: { bold: true, color: C.navy, fontSize: 10.5 } },
{ text, options: { color: C.navy, fontSize: 10.5, italic: true } }
], { x: x + 0.15, y: y + 0.08, w: w - 0.3, h: h - 0.16, valign: "middle" });
}
// ─────────────────────────────────────────────────────────────
// SLIDE 1 — Title
// ─────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
// Full background
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 5.625,
fill: { color: C.navy }, line: { color: C.navy }
});
// Decorative teal bar left
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 0.35, h: 5.625,
fill: { color: C.mint }, line: { color: C.mint }
});
// Decorative teal bar bottom
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 5.2, w: 10, h: 0.425,
fill: { color: C.teal }, line: { color: C.teal }
});
// Circle accent top-right
s.addShape(pres.shapes.OVAL, {
x: 7.8, y: -1.2, w: 3.5, h: 3.5,
fill: { color: C.teal, transparency: 70 }, line: { color: C.teal, transparency: 70 }
});
s.addShape(pres.shapes.OVAL, {
x: 8.3, y: -0.6, w: 2.2, h: 2.2,
fill: { color: C.mint, transparency: 60 }, line: { color: C.mint, transparency: 60 }
});
s.addText("SOFT SKILLS", {
x: 0.6, y: 1.1, w: 8.5, h: 0.8,
fontSize: 42, bold: true, color: C.mint, align: "left", charSpacing: 6, margin: 0
});
s.addText("for Medical Students", {
x: 0.6, y: 1.85, w: 8.5, h: 0.7,
fontSize: 28, bold: false, color: C.white, align: "left", margin: 0
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0.6, y: 2.65, w: 5.5, h: 0.04,
fill: { color: C.mint }, line: { color: C.mint }
});
s.addText("Building the Human Side of Medicine", {
x: 0.6, y: 2.8, w: 8.5, h: 0.5,
fontSize: 15, color: C.gray, italic: true, align: "left", margin: 0
});
s.addText("Medical Education · 2026", {
x: 0.6, y: 5.2, w: 9, h: 0.4,
fontSize: 10, color: C.offwhite, align: "left", valign: "middle", margin: 0
});
}
// ─────────────────────────────────────────────────────────────
// SLIDE 2 — What Are Soft Skills?
// ─────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.offwhite}, line:{color:C.offwhite} });
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:1.05, fill:{color:C.navy}, line:{color:C.navy} });
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.3, h:5.625, fill:{color:C.mint}, line:{color:C.mint} });
s.addText("What Are Soft Skills?", {
x: 0.55, y: 0.15, w: 9, h: 0.75,
fontSize: 26, bold: true, color: C.white, valign: "middle", margin: 0
});
// Two column boxes
const box1 = { x: 0.45, y: 1.2, w: 4.2, h: 3.8 };
const box2 = { x: 5.2, y: 1.2, w: 4.35, h: 3.8 };
s.addShape(pres.shapes.RECTANGLE, { ...box1, fill:{color:C.white}, line:{color:C.teal, pt:1.5},
shadow:{type:"outer",color:"000000",blur:6,offset:2,angle:135,opacity:0.1} });
s.addShape(pres.shapes.RECTANGLE, { ...box2, fill:{color:C.navy}, line:{color:C.navy},
shadow:{type:"outer",color:"000000",blur:6,offset:2,angle:135,opacity:0.1} });
// Box 1 header
s.addShape(pres.shapes.RECTANGLE, { x:0.45, y:1.2, w:4.2, h:0.45, fill:{color:C.teal}, line:{color:C.teal} });
s.addText("DEFINITION", { x:0.45, y:1.2, w:4.2, h:0.45, fontSize:11, bold:true, color:C.white, align:"center", valign:"middle", margin:0 });
s.addText([
{ text: "Interpersonal, social, and emotional competencies that shape ", options:{color:"333333", fontSize:11} },
{ text: "how", options:{color:C.teal, bold:true, fontSize:11} },
{ text: " care is delivered — not just what is known.", options:{color:"333333", fontSize:11} },
], { x:0.6, y:1.75, w:3.9, h:1.1, valign:"top" });
s.addText([
{ text: "Hard Skills", options:{bold:true, color:C.navy, fontSize:10.5, breakLine:true} },
{ text: "Clinical knowledge, procedures, diagnostics", options:{color:"555555", fontSize:10, breakLine:true} },
{ text: " ", options:{fontSize:6, breakLine:true} },
{ text: "Soft Skills", options:{bold:true, color:C.teal, fontSize:10.5, breakLine:true} },
{ text: "Communication, empathy, teamwork, judgement", options:{color:"555555", fontSize:10} },
], { x:0.6, y:2.9, w:3.9, h:1.8 });
// Box 2 content
s.addShape(pres.shapes.RECTANGLE, { x:5.2, y:1.2, w:4.35, h:0.45, fill:{color:C.mint}, line:{color:C.mint} });
s.addText("WHY THEY MATTER", { x:5.2, y:1.2, w:4.35, h:0.45, fontSize:11, bold:true, color:C.navy, align:"center", valign:"middle", margin:0 });
const whys = [
"Top cause of medical errors: poor communication",
"Patients rate empathy as highly as clinical skill",
"Soft skills training → ↑ patient satisfaction & staff retention",
"Core competency: CanMEDS, ACGME, GMC frameworks",
"Learnable, teachable, and assessable"
];
whys.forEach((w, i) => {
s.addShape(pres.shapes.OVAL, { x:5.35, y:1.82+(i*0.58), w:0.18, h:0.18, fill:{color:C.mint}, line:{color:C.mint} });
s.addText(w, { x:5.6, y:1.78+(i*0.58), w:3.75, h:0.38, fontSize:10.5, color:C.white, valign:"middle" });
});
addFooter(s, "2");
}
// ─────────────────────────────────────────────────────────────
// SLIDE 3 — Overview: 10 Skills
// ─────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.navy}, line:{color:C.navy} });
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.3, h:5.625, fill:{color:C.mint}, line:{color:C.mint} });
s.addText("10 Essential Soft Skills", {
x:0.55, y:0.18, w:9, h:0.6,
fontSize:24, bold:true, color:C.white, margin:0
});
s.addShape(pres.shapes.RECTANGLE, { x:0.55, y:0.82, w:8.5, h:0.03, fill:{color:C.mint}, line:{color:C.mint} });
const skills = [
["01", "Communication"],
["02", "Active Listening"],
["03", "Empathy"],
["04", "Teamwork & Collaboration"],
["05", "Emotional Intelligence"],
["06", "Adaptability & Resilience"],
["07", "Critical Thinking"],
["08", "Cultural Competence"],
["09", "Time Management"],
["10", "Professionalism & Ethics"],
];
const cols = [0.45, 5.2];
skills.forEach((sk, i) => {
const col = i < 5 ? cols[0] : cols[1];
const row = i < 5 ? i : i - 5;
const y = 1.0 + row * 0.83;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: col, y, w: 4.55, h: 0.68,
fill:{color: i%2===0 ? "162E52" : "0E2340"}, line:{color:C.mint, pt:0.5}, rectRadius:0.08
});
s.addText(sk[0], { x:col+0.12, y, w:0.52, h:0.68, fontSize:13, bold:true, color:C.mint, align:"center", valign:"middle", margin:0 });
s.addShape(pres.shapes.RECTANGLE, { x:col+0.66, y:y+0.14, w:0.03, h:0.4, fill:{color:C.mint}, line:{color:C.mint} });
s.addText(sk[1], { x:col+0.76, y, w:3.65, h:0.68, fontSize:13, color:C.white, valign:"middle", margin:0 });
});
addFooter(s, "3");
}
// ─────────────────────────────────────────────────────────────
// Helper: build a "skill detail" slide
// ─────────────────────────────────────────────────────────────
function skillSlide(num, number, title, icon, bullets, exampleText, slideNum) {
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.offwhite}, line:{color:C.offwhite} });
// Left accent panel
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:3.3, h:5.625, fill:{color:C.navy}, line:{color:C.navy} });
s.addShape(pres.shapes.RECTANGLE, { x:3.3, y:0, w:0.06, h:5.625, fill:{color:C.mint}, line:{color:C.mint} });
// Number badge
s.addShape(pres.shapes.OVAL, { x:0.5, y:0.3, w:0.9, h:0.9, fill:{color:C.mint}, line:{color:C.mint} });
s.addText(number, { x:0.5, y:0.3, w:0.9, h:0.9, fontSize:18, bold:true, color:C.navy, align:"center", valign:"middle", margin:0 });
// Icon
s.addText(icon, { x:0.3, y:1.45, w:2.7, h:1.1, fontSize:52, align:"center", valign:"middle" });
// Title on left
s.addText(title, {
x:0.2, y:2.7, w:2.9, h:1.3,
fontSize:18, bold:true, color:C.mint, align:"center", valign:"middle",
wrap: true
});
// Bullets right
const bulletItems = bullets.map((b, i) => ({
text: b,
options: { bullet:{code:"25B6", color:C.teal}, breakLine: i < bullets.length-1, fontSize:12, color:"1A1A2E" }
}));
s.addText(bulletItems, {
x: 3.55, y: 0.25, w: 6.1, h: 2.85,
valign:"top", lineSpacingMultiple: 1.4
});
// Example box
addExample(s, exampleText, 3.55, 3.25, 6.1, 2.0);
addFooter(s, slideNum);
}
// ─────────────────────────────────────────────────────────────
// SLIDES 4–13 — Individual Skills
// ─────────────────────────────────────────────────────────────
skillSlide(1, "01", "Communication", "💬",
[
"Use plain language — avoid medical jargon with patients",
"Non-verbal cues: eye contact, open posture, calm tone",
"Written: accurate, legible notes and handovers",
"Adapt message to the audience (patient vs. colleague)",
],
"A patient looks confused after hearing 'glycemic control.' The student pauses and says: \"That means keeping your blood sugar in a safe range — let me show you a simple chart.\" Adherence improves immediately.",
"4"
);
skillSlide(2, "02", "Active Listening", "👂",
[
"Focus fully — do not interrupt or rush the patient",
"Studies: doctors interrupt within 11–23 seconds on average",
"Reflective listening: \"So the pain worsens at night?\"",
"Summarize back to confirm understanding",
],
"A patient says \"I feel fine\" but appears flat and avoids eye contact. Active listening prompts the student to probe further, uncovering unspoken anxiety about a new cancer diagnosis.",
"5"
);
skillSlide(3, "03", "Empathy", "❤️",
[
"Cognitive empathy — understand the patient's perspective",
"Affective empathy — acknowledge their emotional state",
"Compassionate empathy — take action in response",
"Builds trust and improves patient satisfaction scores",
],
"Before presenting lab results to a tearful mother at her child's oncology follow-up, the student says: \"I can see how hard this has been for your family. Let's take a moment before we go through the numbers.\"",
"6"
);
skillSlide(4, "04", "Teamwork &\nCollaboration", "🤝",
[
"Respect every team member's role and expertise",
"Use SBAR handover: Situation–Background–Assessment–Recommendation",
"Share information without ego or hierarchy barriers",
"Multidisciplinary teams: doctors, nurses, pharmacists, social workers",
],
"On a ward round, a student notices a nurse's undocumented concern about a patient's mobility. Speaking up and including it in the team discussion prevents a fall risk from being missed.",
"7"
);
skillSlide(5, "05", "Emotional\nIntelligence", "🧠",
[
"Self-awareness: know your emotional triggers",
"Self-regulation: manage stress without outbursts",
"Social awareness: read the room and read patients",
"Relationship management: navigate conflict constructively",
],
"A student receives harsh feedback from a consultant in front of peers. Instead of reacting defensively, they regulate their frustration, note the feedback, and privately seek clarification later.",
"8"
);
skillSlide(6, "06", "Adaptability &\nResilience", "🔄",
[
"Adjust quickly to rapidly changing clinical environments",
"Recover from setbacks: errors, grief, failed exams",
"Reframe uncertainty as a learning opportunity",
"Seek debriefing after difficult or unexpected cases",
],
"A student's ward round presentation is interrupted by a patient emergency. Rather than freezing, they calmly assist the team and later debrief what they learned from the unplanned event.",
"9"
);
skillSlide(7, "07", "Critical Thinking &\nClinical Judgement", "🔍",
[
"Apply logical reasoning to ambiguous clinical presentations",
"Weigh evidence rather than pattern-matching blindly",
"Avoid anchoring bias — stay open to alternative diagnoses",
"Strengthened by repeated exposure to real patient cases",
],
"Two patients present with chest pain. Critical thinking leads the student to weigh atypical features in a young woman (fatigue, nausea, jaw pain) and not dismiss her presentation as non-cardiac.",
"10"
);
skillSlide(8, "08", "Cultural\nCompetence", "🌍",
[
"Recognise and respect cultural, linguistic, social differences",
"Use professional interpreters — not family members",
"Be aware of personal biases and their clinical impact",
"Respect religious and dietary considerations in care plans",
],
"A patient declines a blood transfusion for religious reasons. The student does not argue but explores alternative management options with the team and ensures the patient's autonomy is documented.",
"11"
);
skillSlide(9, "09", "Time Management\n& Organisation", "⏱️",
[
"Prioritise tasks under pressure without compromising safety",
"Use structured checklists and handover tools",
"Distinguish urgent (patient safety) from important (teaching)",
"Prevent cognitive overload with systematic daily planning",
],
"A student on call has three simultaneous tasks: clerk a new admission, attend teaching, and follow up urgent labs. They prioritise labs first (patient safety), then admission, then teaching.",
"12"
);
skillSlide(10, "10", "Professionalism\n& Ethics", "⚖️",
[
"Maintain integrity, confidentiality, and punctuality",
"Accountability: acknowledge and report errors honestly",
"Uphold patient autonomy and informed consent",
"Speak up when you witness unprofessional behaviour",
],
"A student witnesses a colleague falsifying a patient note to cover a missed assessment. Professionalism requires raising the concern — first with the colleague, then through the appropriate institutional channel.",
"13"
);
// ─────────────────────────────────────────────────────────────
// SLIDE 14 — Assessment Methods
// ─────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.navy}, line:{color:C.navy} });
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.3, h:5.625, fill:{color:C.mint}, line:{color:C.mint} });
s.addText("How Are Soft Skills Assessed?", {
x:0.55, y:0.18, w:9, h:0.6, fontSize:24, bold:true, color:C.white, margin:0
});
s.addShape(pres.shapes.RECTANGLE, { x:0.55, y:0.82, w:8.5, h:0.03, fill:{color:C.mint}, line:{color:C.mint} });
const methods = [
{ icon:"🏥", method:"OSCEs", desc:"Objective Structured Clinical Exams — simulate real patient encounters to test communication, empathy, and history-taking" },
{ icon:"🔄", method:"360-Degree Feedback", desc:"Input from peers, faculty, and patients for a holistic view of teamwork and professionalism" },
{ icon:"📋", method:"Mini-CEX", desc:"Mini Clinical Evaluation Exercise — observed real clinical encounters scored for soft skill competencies" },
{ icon:"📓", method:"Reflective Portfolio", desc:"Written reflections on clinical experiences to build self-awareness and emotional intelligence" },
{ icon:"🎭", method:"Standardised Patients", desc:"Trained actors simulate patients to assess bedside manner and active listening in a safe environment" },
];
methods.forEach((m, i) => {
const y = 1.02 + i * 0.88;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x:0.45, y, w:9.1, h:0.75,
fill:{color: i%2===0 ? "162E52" : "0E2340"}, line:{color:C.mint, pt:0.5}, rectRadius:0.08
});
s.addText(m.icon, { x:0.55, y, w:0.6, h:0.75, fontSize:20, align:"center", valign:"middle" });
s.addText(m.method, { x:1.25, y, w:2.0, h:0.75, fontSize:12, bold:true, color:C.mint, valign:"middle", margin:0 });
s.addShape(pres.shapes.RECTANGLE, { x:3.25, y:y+0.18, w:0.03, h:0.38, fill:{color:C.teal}, line:{color:C.teal} });
s.addText(m.desc, { x:3.38, y, w:6.05, h:0.75, fontSize:10.5, color:C.white, valign:"middle", wrap:true });
});
addFooter(s, "14");
}
// ─────────────────────────────────────────────────────────────
// SLIDE 15 — Developing Soft Skills: Practical Tips
// ─────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.offwhite}, line:{color:C.offwhite} });
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:1.05, fill:{color:C.teal}, line:{color:C.teal} });
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.3, h:5.625, fill:{color:C.navy}, line:{color:C.navy} });
s.addText("Developing Soft Skills: Practical Tips", {
x:0.55, y:0.15, w:9, h:0.75, fontSize:22, bold:true, color:C.white, valign:"middle", margin:0
});
const tips = [
{ num:"1", icon:"🎭", tip:"Role-play", desc:"Practise clinical scenarios with peers before real patient encounters" },
{ num:"2", icon:"💬", tip:"Seek Feedback", desc:"Actively request feedback after every patient interaction" },
{ num:"3", icon:"📓", tip:"Reflective Writing", desc:"Keep a clinical diary noting your emotional reactions to cases" },
{ num:"4", icon:"👁️", tip:"Observe Senior Clinicians", desc:"Note behaviours to emulate — and those to consciously avoid" },
{ num:"5", icon:"🔎", tip:"Debrief Difficult Cases", desc:"Especially after death, bad news, or conflicts — process, don't suppress" },
];
const positions = [
[0.45, 1.2], [3.65, 1.2], [6.85, 1.2],
[2.05, 3.1], [5.25, 3.1]
];
tips.forEach((t, i) => {
const [x, y] = positions[i];
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x, y, w:2.9, h:2.1,
fill:{color:C.white}, line:{color:C.navy, pt:1.5}, rectRadius:0.1,
shadow:{type:"outer",color:"000000",blur:5,offset:2,angle:135,opacity:0.1}
});
// Accent top bar
s.addShape(pres.shapes.RECTANGLE, { x, y, w:2.9, h:0.38, fill:{color:C.navy}, line:{color:C.navy} });
s.addText(`${t.icon} ${t.tip}`, {
x:x+0.1, y, w:2.7, h:0.38, fontSize:11, bold:true, color:C.mint, valign:"middle"
});
s.addText(t.desc, {
x:x+0.15, y:y+0.5, w:2.6, h:1.45,
fontSize:10.5, color:"333333", wrap:true, valign:"top"
});
});
addFooter(s, "15");
}
// ─────────────────────────────────────────────────────────────
// SLIDE 16 — Key Takeaway
// ─────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.navy}, line:{color:C.navy} });
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.3, h:5.625, fill:{color:C.mint}, line:{color:C.mint} });
// Large decorative circle
s.addShape(pres.shapes.OVAL, { x:5.5, y:2.2, w:5.5, h:5.5,
fill:{color:C.teal, transparency:85}, line:{color:C.teal, transparency:85} });
s.addText("Key Takeaway", {
x:0.6, y:0.35, w:8.5, h:0.55,
fontSize:14, color:C.mint, bold:true, charSpacing:4, margin:0
});
s.addShape(pres.shapes.RECTANGLE, { x:0.6, y:0.95, w:8.5, h:0.04, fill:{color:C.teal}, line:{color:C.teal} });
s.addText([
{ text: "\"The most technically brilliant doctor\nwho cannot ", options:{color:C.white, fontSize:22} },
{ text: "communicate, empathise,\nor collaborate", options:{color:C.mint, bold:true, fontSize:22} },
{ text: " will consistently\nunderperform compared to a\n", options:{color:C.white, fontSize:22} },
{ text: "compassionate, skilled communicator.\"", options:{color:C.yellow, italic:true, fontSize:22} },
], { x:0.6, y:1.15, w:8.5, h:3.1, valign:"middle" });
s.addShape(pres.shapes.RECTANGLE, { x:0.6, y:4.4, w:8.5, h:0.04, fill:{color:C.teal}, line:{color:C.teal} });
s.addText("Soft skills are learnable · teachable · assessable · essential", {
x:0.6, y:4.5, w:8.8, h:0.55,
fontSize:13, color:C.gray, align:"center", italic:true, margin:0
});
addFooter(s, "16");
}
// ─────────────────────────────────────────────────────────────
// Write file
// ─────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/soft-skills-pptx/Soft_Skills_Medical_Students.pptx" })
.then(() => console.log("Done: Soft_Skills_Medical_Students.pptx"))
.catch(e => { console.error(e); process.exit(1); });
cd /home/daytona/workspace/soft-skills-pptx && node generate.js 2>&1
Soft Skills Medical Students
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide — navy/teal design |
| 2 | What Are Soft Skills? (definition + why they matter) |
| 3 | Overview: All 10 skills at a glance |
| 4–13 | One dedicated slide per skill with bullet points + yellow clinical example callout |
| 14 | Assessment methods (OSCEs, 360° feedback, Mini-CEX, reflective portfolio, standardised patients) |
| 15 | 5 practical tips for developing soft skills |
| 16 | Key takeaway quote |