A person is suffering to neck pain whenever he lifts something or didnt eat anything gor much time it ovcurs rarely but only stops after taking a tablet what can it be

Reading File
This is an interesting symptom pattern - neck pain triggered by physical exertion (lifting) AND by fasting/hunger, relieved by a tablet. Let me search the medical library for possible causes.
Searching sources...
Finding Sources
Finding Sources
Searching the Web

neck pain when lifting heavy objects and when hungry fasting causes diagnosis

Finding Sources
Finding Sources
Searching the Web

neck pain triggered by exertion AND empty stomach angina equivalent referred pain

Reading File
Finding Sources
This symptom pattern is quite telling. Here is a thorough breakdown of what this could be:

Neck Pain With Lifting + Hunger - Possible Causes

The combination of neck pain triggered by physical exertion (lifting) AND going too long without eating, occurring rarely, and relieved by a tablet - points to a few distinct possibilities. Let me walk through them from most to least likely based on this pattern.

1. Cardiac Angina (Anginal Equivalent) - Most Important to Rule Out

This is the most medically significant possibility. The classic chest pain of angina does not always feel like chest pain - it can present entirely as neck, jaw, or arm discomfort. This is called an "anginal equivalent."
According to Fuster and Hurst's The Heart (15th Ed.):
"Some patients do not report chest pain, but report jaw, neck, ear, arm, or epigastric discomfort. Among this constellation of cardiac angina equivalent symptoms, exertional dyspnea should be considered a potentially high-risk finding."
Why this fits the pattern:
  • Lifting (exertion) - classic trigger for angina, as the heart demands more oxygen during physical effort
  • Fasting/skipping meals - low blood sugar and electrolyte shifts from fasting can trigger cardiac ischemia, and hunger/fasting also causes physical stress on the body
  • Rarely occurring - consistent with stable angina (only triggered under certain conditions)
  • Relieved by a tablet - if the tablet is a nitrate (like nitroglycerin/isosorbide), this strongly points to angina, as nitrates relieve it within minutes
This needs urgent evaluation - an ECG, stress test, and ideally a cardiology consultation.

2. Tension-Type Headache + Neck Pain From Hypoglycemia / Hunger

Cleveland Clinic notes that hunger headaches are accompanied by muscle tension in the neck and shoulders - caused by low blood sugar (hypoglycemia) or dehydration from skipping meals.
Why this fits:
  • Neck/shoulder tension and pain during fasting is a recognized phenomenon
  • The tablet could be a pain reliever (paracetamol/ibuprofen) or even a sugar tablet
  • However, this would NOT typically explain the lifting trigger alongside it

3. Cervicogenic / Musculoskeletal Neck Problem

A herniated cervical disc, muscle strain, or nerve root compression can cause neck pain triggered by:
  • Straining/lifting (increased axial load on the spine)
  • Holding the neck in certain positions
However, hunger as a trigger doesn't fit purely musculoskeletal causes - making this less likely as a standalone explanation.

4. GERD / Acid Reflux With Referred Neck Pain

  • Acid reflux is notoriously worsened when the stomach is empty (acid irritates the unprotected lining)
  • Can cause referred discomfort to the throat and neck
  • Also worsened by physical exertion (bending, lifting - increases intra-abdominal pressure)
  • Relieved by an antacid tablet - this fits perfectly if the "tablet" is an antacid

Summary Table

Possible CauseLifting TriggerHunger TriggerTablet Relief
Cardiac Angina (Anginal Equivalent)YES (classic)Possible (physiological stress)YES (if nitrate)
Hunger Headache + Neck TensionLess likelyYES (classic)YES (painkiller/sugar)
GERD / Acid RefluxYES (increased pressure)YES (empty stomach = more acid)YES (if antacid)
Cervical Disc / Muscle StrainYESNoYES (painkiller)

What To Do

Do NOT ignore this if:
  • The person feels tightness, heaviness, or pressure anywhere (chest, neck, jaw)
  • They feel breathless, sweaty, or dizzy during episodes
  • The episodes are getting more frequent or severe
Recommended steps:
  1. Note what tablet helps - is it a painkiller, antacid, or something else? This is a critical clue
  2. See a doctor promptly - they should get an ECG, blood sugar check, and possibly an endoscopy to rule out GERD
  3. Avoid lifting heavy objects until evaluated
  4. Don't skip meals - eat regularly, small meals
Important disclaimer: This is informational only. Neck pain triggered by exertion that is relieved by medication should be evaluated by a doctor, especially to rule out a cardiac cause, which can be life-threatening if missed.

Generate a medical symptom diary template to track triggers

Asking for Preferences

What format would you like the symptom diary in?

Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not found"

Running Command

mkdir -p /home/daytona/workspace/symptom-diary && python3 << 'EOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm, mm from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, HRFlowable from reportlab.platypus import KeepTogether from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.pdfgen import canvas from reportlab.platypus.flowables import Flowable # Color palette DARK_BLUE = colors.HexColor('#1a3a5c') MED_BLUE = colors.HexColor('#2e6da4') LIGHT_BLUE = colors.HexColor('#d6e8f7') ACCENT_TEAL = colors.HexColor('#1a8c8c') ACCENT_LIGHT = colors.HexColor('#e0f4f4') ROW_ALT = colors.HexColor('#f5f9ff') WHITE = colors.white BORDER = colors.HexColor('#b0c8e0') WARN_RED = colors.HexColor('#c0392b') WARN_LIGHT = colors.HexColor('#fdecea') GRAY_TEXT = colors.HexColor('#555555') LIGHT_GRAY = colors.HexColor('#f0f0f0') path = "/home/daytona/workspace/symptom-diary/Medical_Symptom_Diary.pdf" doc = SimpleDocTemplate( path, pagesize=A4, rightMargin=1.5*cm, leftMargin=1.5*cm, topMargin=1.8*cm, bottomMargin=1.8*cm, title="Medical Symptom Diary", author="Orris Health Assistant" ) styles = getSampleStyleSheet() def h1(text): return Paragraph(text, ParagraphStyle('h1', fontSize=18, textColor=WHITE, fontName='Helvetica-Bold', alignment=TA_CENTER, spaceAfter=4)) def h2(text): return Paragraph(text, ParagraphStyle('h2', fontSize=11, textColor=DARK_BLUE, fontName='Helvetica-Bold', spaceBefore=8, spaceAfter=4)) def h3(text, color=DARK_BLUE): return Paragraph(text, ParagraphStyle('h3', fontSize=9, textColor=color, fontName='Helvetica-Bold', spaceBefore=4, spaceAfter=2)) def body(text, size=8.5): return Paragraph(text, ParagraphStyle('body', fontSize=size, textColor=GRAY_TEXT, fontName='Helvetica', leading=13)) def small(text, color=GRAY_TEXT): return Paragraph(text, ParagraphStyle('small', fontSize=7.5, textColor=color, fontName='Helvetica', leading=11)) def label(text): return Paragraph(text, ParagraphStyle('label', fontSize=8, textColor=DARK_BLUE, fontName='Helvetica-Bold')) def cell(text, size=8, color=colors.black, bold=False): fn = 'Helvetica-Bold' if bold else 'Helvetica' return Paragraph(text, ParagraphStyle('cell', fontSize=size, textColor=color, fontName=fn, leading=11)) story = [] # ─── HEADER BANNER ─────────────────────────────────────────────────────────── header_data = [[h1("🩺 MEDICAL SYMPTOM DIARY"), h1("Neck Pain & Trigger Tracker")]] header_table = Table(header_data, colWidths=[9.5*cm, 9.5*cm]) header_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), DARK_BLUE), ('ROWBACKGROUNDS', (0,0), (-1,-1), [DARK_BLUE]), ('TOPPADDING', (0,0), (-1,-1), 10), ('BOTTOMPADDING', (0,0), (-1,-1), 10), ('LEFTPADDING', (0,0), (-1,-1), 10), ('RIGHTPADDING', (0,0), (-1,-1), 10), ('ROUNDEDCORNERS', [6, 6, 6, 6]), ])) story.append(header_table) story.append(Spacer(1, 0.3*cm)) # ─── PATIENT INFO ───────────────────────────────────────────────────────────── info_data = [ [label("Patient Name:"), cell("_"*38), label("Age:"), cell("_"*10), label("Doctor:"), cell("_"*20)], [label("Diagnosis (if known):"), cell("_"*38), label("Phone:"), cell("_"*10), label("Start Date:"), cell("_"*20)], ] info_table = Table(info_data, colWidths=[3.2*cm, 5.5*cm, 1.5*cm, 2*cm, 1.8*cm, 4*cm]) info_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), LIGHT_BLUE), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ('RIGHTPADDING', (0,0), (-1,-1), 4), ('BOX', (0,0), (-1,-1), 0.8, MED_BLUE), ('LINEBELOW', (0,0), (-1,0), 0.5, BORDER), ])) story.append(info_table) story.append(Spacer(1, 0.35*cm)) # ─── HOW TO USE ─────────────────────────────────────────────────────────────── tip_data = [[ small("📋 <b>HOW TO USE:</b> Fill in one row each time you experience a symptom episode. " "Rate pain 0 (none) - 10 (worst). Bring this diary to every doctor's appointment. " "Note the exact tablet name and how long before relief.", color=DARK_BLUE) ]] tip_table = Table(tip_data, colWidths=[19*cm]) tip_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), ACCENT_LIGHT), ('BOX', (0,0), (-1,-1), 0.8, ACCENT_TEAL), ('TOPPADDING', (0,0), (-1,-1), 6), ('BOTTOMPADDING', (0,0), (-1,-1), 6), ('LEFTPADDING', (0,0), (-1,-1), 8), ('RIGHTPADDING', (0,0), (-1,-1), 8), ])) story.append(tip_table) story.append(Spacer(1, 0.4*cm)) # ─── DAILY LOG TABLE HEADER ─────────────────────────────────────────────────── story.append(h2("📅 Daily Symptom Log")) col_headers = [ cell("Date &\nTime", bold=True, color=WHITE), cell("Pain\nSite", bold=True, color=WHITE), cell("Pain\nScore\n(0-10)", bold=True, color=WHITE), cell("Duration\n(mins)", bold=True, color=WHITE), cell("Trigger\n✓ all that apply", bold=True, color=WHITE), cell("Last Meal\n(hours ago)", bold=True, color=WHITE), cell("Activity\nBefore", bold=True, color=WHITE), cell("Tablet /\nMedicine", bold=True, color=WHITE), cell("Relief?\n(Y/N/Part)", bold=True, color=WHITE), cell("Other\nSymptoms", bold=True, color=WHITE), ] log_rows = [col_headers] trigger_options = small("☐ Lifting\n☐ Hunger/Fasting\n☐ Stress\n☐ Exertion\n☐ Cold\n☐ Posture\n☐ Other:___") # 8 data rows for i in range(8): bg = WHITE if i % 2 == 0 else ROW_ALT row = [ cell("\n\n"), cell("\n\n"), cell("\n\n"), cell("\n\n"), trigger_options, cell("\n\n"), cell("\n\n"), cell("\n\n"), cell("\n\n"), cell("\n\n"), ] log_rows.append(row) col_widths = [2.3*cm, 1.6*cm, 1.4*cm, 1.5*cm, 3.2*cm, 1.6*cm, 2*cm, 2.2*cm, 1.5*cm, 2.7*cm] log_table = Table(log_rows, colWidths=col_widths, rowHeights=[1.1*cm] + [1.8*cm]*8) log_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), DARK_BLUE), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, ROW_ALT]), ('GRID', (0,0), (-1,-1), 0.5, BORDER), ('BOX', (0,0), (-1,-1), 1, MED_BLUE), ('TOPPADDING', (0,0), (-1,-1), 4), ('BOTTOMPADDING', (0,0), (-1,-1), 4), ('LEFTPADDING', (0,0), (-1,-1), 4), ('RIGHTPADDING', (0,0), (-1,-1), 4), ('VALIGN', (0,0), (-1,-1), 'TOP'), ('ALIGN', (2,0), (3,-1), 'CENTER'), ])) story.append(log_table) story.append(Spacer(1, 0.5*cm)) # ─── TRIGGER CHECKLIST ──────────────────────────────────────────────────────── story.append(h2("⚡ Known Triggers Checklist (circle or highlight)")) triggers = [ ["Physical / Exertion", "Dietary / Metabolic", "Environmental", "Emotional / Lifestyle"], [ small("• Heavy lifting\n• Exercise / running\n• Climbing stairs\n• Carrying bags\n• Sudden movement\n• Bending over"), small("• Skipping meals\n• Fasting / empty stomach\n• Dehydration\n• Caffeine\n• Alcohol\n• High-fat meal"), small("• Cold weather\n• Heat / humidity\n• Strong odors\n• Bright lights\n• Noise / crowds\n• Travel"), small("• Stress / anxiety\n• Poor sleep\n• Fatigue\n• Screen time\n• Sitting long hours\n• Posture issues"), ] ] trig_table = Table(triggers, colWidths=[4.75*cm]*4) trig_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), MED_BLUE), ('TEXTCOLOR', (0,0), (-1,0), WHITE), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,0), 8.5), ('BACKGROUND', (0,1), (0,1), LIGHT_BLUE), ('BACKGROUND', (1,1), (1,1), ACCENT_LIGHT), ('BACKGROUND', (2,1), (2,1), colors.HexColor('#fff8e1')), ('BACKGROUND', (3,1), (3,1), colors.HexColor('#fce4ec')), ('GRID', (0,0), (-1,-1), 0.5, BORDER), ('BOX', (0,0), (-1,-1), 1, MED_BLUE), ('TOPPADDING', (0,0), (-1,-1), 6), ('BOTTOMPADDING', (0,0), (-1,-1), 6), ('LEFTPADDING', (0,0), (-1,-1), 8), ('RIGHTPADDING', (0,0), (-1,-1), 6), ('VALIGN', (0,0), (-1,-1), 'TOP'), ('ALIGN', (0,0), (-1,0), 'CENTER'), ])) story.append(trig_table) story.append(Spacer(1, 0.5*cm)) # ─── MEDICATION LOG ─────────────────────────────────────────────────────────── story.append(h2("💊 Medication & Relief Log")) med_header = [ cell("Date", bold=True, color=WHITE), cell("Tablet / Medicine Name", bold=True, color=WHITE), cell("Dose", bold=True, color=WHITE), cell("Time Taken", bold=True, color=WHITE), cell("Time to Relief\n(minutes)", bold=True, color=WHITE), cell("Complete Relief?", bold=True, color=WHITE), cell("Side Effects\n(if any)", bold=True, color=WHITE), cell("Notes", bold=True, color=WHITE), ] med_rows = [med_header] for i in range(6): med_rows.append([cell(""), cell(""), cell(""), cell(""), cell(""), cell(""), cell(""), cell("")]) med_table = Table(med_rows, colWidths=[2*cm, 3.5*cm, 1.5*cm, 1.8*cm, 2.2*cm, 2.2*cm, 2.4*cm, 3.4*cm], rowHeights=[1*cm] + [0.85*cm]*6) med_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), ACCENT_TEAL), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, ACCENT_LIGHT]), ('GRID', (0,0), (-1,-1), 0.5, BORDER), ('BOX', (0,0), (-1,-1), 1, ACCENT_TEAL), ('TOPPADDING', (0,0), (-1,-1), 4), ('BOTTOMPADDING', (0,0), (-1,-1), 4), ('LEFTPADDING', (0,0), (-1,-1), 5), ('RIGHTPADDING', (0,0), (-1,-1), 4), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('ALIGN', (4,0), (5,-1), 'CENTER'), ])) story.append(med_table) story.append(Spacer(1, 0.5*cm)) # ─── RED FLAGS WARNING ──────────────────────────────────────────────────────── warn_data = [[ Paragraph("<b>🚨 SEEK EMERGENCY CARE IMMEDIATELY IF YOU EXPERIENCE:</b>", ParagraphStyle('warn_h', fontSize=9, textColor=WARN_RED, fontName='Helvetica-Bold')), small("Chest pain or pressure • Jaw or left arm pain • Sudden severe headache • " "Breathlessness at rest • Sweating + neck pain • Dizziness or fainting • " "Numbness or weakness in arm • Pain lasting >20 minutes not relieved by tablet", color=WARN_RED) ]] warn_table = Table(warn_data, colWidths=[5.5*cm, 13.5*cm]) warn_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), WARN_LIGHT), ('BOX', (0,0), (-1,-1), 1.2, WARN_RED), ('TOPPADDING', (0,0), (-1,-1), 7), ('BOTTOMPADDING', (0,0), (-1,-1), 7), ('LEFTPADDING', (0,0), (-1,-1), 8), ('RIGHTPADDING', (0,0), (-1,-1), 8), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ])) story.append(warn_table) story.append(Spacer(1, 0.4*cm)) # ─── NOTES SECTION ──────────────────────────────────────────────────────────── story.append(h2("📝 Doctor / Notes Section")) notes_lines = [] for _ in range(5): notes_lines.append([small(""), small("")]) notes_area = Table( [[small("Additional observations, doctor's comments, upcoming tests or investigations:\n\n" "___________________________________________________________________________________________\n\n" "___________________________________________________________________________________________\n\n" "___________________________________________________________________________________________\n\n" "___________________________________________________________________________________________\n\n" "___________________________________________________________________________________________")]], colWidths=[19*cm] ) notes_area.setStyle(TableStyle([ ('BOX', (0,0), (-1,-1), 0.8, BORDER), ('BACKGROUND', (0,0), (-1,-1), LIGHT_GRAY), ('TOPPADDING', (0,0), (-1,-1), 8), ('BOTTOMPADDING', (0,0), (-1,-1), 8), ('LEFTPADDING', (0,0), (-1,-1), 10), ('RIGHTPADDING', (0,0), (-1,-1), 10), ])) story.append(notes_area) story.append(Spacer(1, 0.3*cm)) # ─── FOOTER ─────────────────────────────────────────────────────────────────── footer_data = [[ small("Generated by Orris Health Assistant • For personal medical tracking only • " "This diary does not replace professional medical advice • Always consult your doctor", color=MED_BLUE), small("Page 1 of 1", color=MED_BLUE), ]] footer_table = Table(footer_data, colWidths=[15*cm, 4*cm]) footer_table.setStyle(TableStyle([ ('TOPPADDING', (0,0), (-1,-1), 3), ('ALIGN', (1,0), (1,0), 'RIGHT'), ('LINEABOVE', (0,0), (-1,0), 0.5, BORDER), ])) story.append(footer_table) doc.build(story) print("PDF created successfully at:", path) EOF

Your symptom diary is ready! Download it here:

Medical Symptom Diary

PDF Document · PDF


Here's what's included in the diary:
Patient Info Header - Name, age, doctor, diagnosis, start date
Daily Symptom Log (8 entries) - Each row captures:
  • Date & time of episode
  • Pain site and score (0-10 scale)
  • Duration in minutes
  • Triggers with pre-ticked checkboxes (Lifting, Hunger/Fasting, Stress, Exertion, Cold, Posture, Other)
  • Hours since last meal
  • Activity before episode
  • Tablet taken and whether it gave relief
Trigger Checklist - Color-coded reference grid with 24 common triggers across 4 categories: Physical, Dietary, Environmental, and Emotional
Medication & Relief Log (6 entries) - Tracks tablet name, dose, time taken, minutes to relief, and side effects
Red Flags Warning Box - Highlighted emergency warning signs (chest pain + neck pain, jaw pain, breathlessness, etc.) to watch for
Doctor Notes Section - Free space for doctor's comments and test results
Print it out and fill in one row after every episode. Bring it to your doctor's appointment - it will help them spot the trigger pattern much faster.

Can you make me a ppt presentation on ligaments and tensions present in out body

Reading File
Finding Sources
Reading File
Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Reading File
Finding Sources
Good - I have enough content. Now let me build the presentation.
Running Command

mkdir -p /home/daytona/workspace/ligaments-ppt && cat > /home/daytona/workspace/ligaments-ppt/build.js << 'JSEOF' const pptxgen = require("pptxgenjs"); const pres = new pptxgen(); pres.layout = 'LAYOUT_WIDE'; pres.title = 'Ligaments & Tendons of the Human Body'; pres.author = 'Orris Health Assistant'; // ── COLOR PALETTE ────────────────────────────────────────────── const C = { darkBg: "0D1B2A", // very dark navy midBg: "1B3A5C", // deep blue accent: "2196F3", // vivid blue accentAlt: "00BCD4", // teal lightBlue: "E3F2FD", // light blue bg white: "FFFFFF", offWhite: "F0F7FF", yellow: "FFD600", orange: "FF7043", green: "43A047", red: "E53935", gray: "90A4AE", darkGray: "37474F", cardBg: "162B40", // card dark bg teal: "00838F", }; // ══════════════════════════════════════════════════════════════ // SLIDE 1 - TITLE // ══════════════════════════════════════════════════════════════ { const s = pres.addSlide(); // Full dark background s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:"100%", fill:{color: C.darkBg} }); // Left accent bar s.addShape(pres.ShapeType.rect, { x:0, y:0, w:0.08, h:"100%", fill:{color: C.accent} }); // Blue glow circle behind title s.addShape(pres.ShapeType.ellipse, { x:1.5, y:0.3, w:6, h:6, fill:{color: C.midBg}, line:{color: C.midBg} }); s.addShape(pres.ShapeType.ellipse, { x:2.2, y:0.6, w:4.5, h:4.5, fill:{color: "163050"}, line:{color: "163050"} }); // Right image panel s.addShape(pres.ShapeType.rect, { x:8.5, y:0, w:4.8, h:"100%", fill:{color: C.cardBg} }); // Decorative bone icon panel s.addText("🦴 🦵 💪", { x:8.6, y:2.2, w:4.5, h:1.5, fontSize:38, align:"center", color: C.accent }); s.addText("Musculoskeletal System", { x:8.5, y:3.9, w:4.8, h:0.5, fontSize:11, align:"center", color: C.accentAlt, italic:true }); // Main title s.addText("LIGAMENTS &\nTENDONS", { x:0.3, y:1.1, w:7.9, h:2.4, fontSize:54, bold:true, color:C.white, align:"center", fontFace:"Calibri", charSpacing:2 }); // Subtitle bar s.addShape(pres.ShapeType.rect, { x:1.8, y:3.65, w:5.2, h:0.06, fill:{color: C.accent} }); s.addText("Structure, Function & Clinical Significance in the Human Body", { x:0.3, y:3.8, w:7.9, h:0.7, fontSize:15, color:C.accentAlt, align:"center", italic:true }); // Footer tags const tags = ["Anatomy","Orthopaedics","Biomechanics","Clinical"]; tags.forEach((t,i)=>{ s.addShape(pres.ShapeType.roundRect, { x:0.4+i*1.95, y:5.1, w:1.7, h:0.38, fill:{color: C.midBg}, line:{color:C.accent,pt:1}, rectRadius:0.06 }); s.addText(t, { x:0.4+i*1.95, y:5.1, w:1.7, h:0.38, fontSize:10, color:C.accent, align:"center", bold:true }); }); } // ══════════════════════════════════════════════════════════════ // SLIDE 2 - OVERVIEW / WHAT ARE THEY // ══════════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:"100%", fill:{color: C.offWhite} }); // Slide title bar s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:1.0, fill:{color: C.midBg} }); s.addShape(pres.ShapeType.rect, { x:0, y:1.0, w:"100%", h:0.06, fill:{color: C.accent} }); s.addText("Overview: What Are Ligaments & Tendons?", { x:0.3, y:0.1, w:12.5, h:0.8, fontSize:26, bold:true, color:C.white, valign:"middle" }); s.addText("Slide 2", { x:12.6, y:0.1, w:0.7, h:0.8, fontSize:9, color:C.gray, align:"right", valign:"middle" }); // Left card - Ligaments s.addShape(pres.ShapeType.roundRect, { x:0.3, y:1.25, w:6.1, h:4.6, fill:{color: C.midBg}, line:{color:C.accent,pt:1.5}, rectRadius:0.12 }); s.addShape(pres.ShapeType.rect, { x:0.3, y:1.25, w:6.1, h:0.65, fill:{color: C.accent} }); s.addText("🔗 LIGAMENTS", { x:0.35, y:1.27, w:5.95, h:0.6, fontSize:16, bold:true, color:C.white, align:"center" }); const ligFacts = [ "Connect bone to bone", "Made of dense fibrous connective tissue", "Predominantly Type I collagen fibers", "Limit excessive joint movement", "Provide passive joint stability", "Contain mechanoreceptors for proprioception", "Poor blood supply → slow healing", ]; ligFacts.forEach((f,i)=>{ s.addText("▸ "+f, { x:0.5, y:2.05+i*0.52, w:5.7, h:0.48, fontSize:11, color:C.white }); }); // Right card - Tendons s.addShape(pres.ShapeType.roundRect, { x:6.9, y:1.25, w:6.1, h:4.6, fill:{color: "1A3A1A"}, line:{color:C.green,pt:1.5}, rectRadius:0.12 }); s.addShape(pres.ShapeType.rect, { x:6.9, y:1.25, w:6.1, h:0.65, fill:{color: C.green} }); s.addText("💪 TENDONS", { x:6.95, y:1.27, w:5.95, h:0.6, fontSize:16, bold:true, color:C.white, align:"center" }); const tenFacts = [ "Connect muscle to bone", "Made of dense fibrous connective tissue", "Predominantly Type I collagen fibers", "Transmit muscle force to skeleton", "Produce joint movement", "Surrounded by a tendon sheath (synovial)", "Better blood supply than ligaments", ]; tenFacts.forEach((f,i)=>{ s.addText("▸ "+f, { x:7.1, y:2.05+i*0.52, w:5.7, h:0.48, fontSize:11, color:C.white }); }); } // ══════════════════════════════════════════════════════════════ // SLIDE 3 - MICROSTRUCTURE // ══════════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:"100%", fill:{color: C.darkBg} }); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:1.0, fill:{color: C.teal} }); s.addShape(pres.ShapeType.rect, { x:0, y:1.0, w:"100%", h:0.06, fill:{color: C.accentAlt} }); s.addText("Microstructure of Ligaments & Tendons", { x:0.3, y:0.1, w:12.5, h:0.8, fontSize:26, bold:true, color:C.white, valign:"middle" }); s.addText("Slide 3", { x:12.6, y:0.1, w:0.7, h:0.8, fontSize:9, color:C.offWhite, align:"right", valign:"middle" }); // Hierarchy boxes const levels = [ { label:"FIBRIL", desc:"Smallest unit\nCollagen triple helix", icon:"🧬", color:"2A4A7A" }, { label:"FIBER", desc:"Bundle of fibrils\nCrimped waviness for stretch", icon:"〰️", color:"1E5F74" }, { label:"FASCICLE", desc:"Bundle of fibers\nSurrounded by endotenon", icon:"🔗", color:"0D6EFD" }, { label:"TENDON/\nLIGAMENT", desc:"Bundles of fascicles\nEpitenon sheath covering", icon:"💪", color:"007BFF" }, ]; levels.forEach((l,i)=>{ const x = 0.4 + i*3.15; s.addShape(pres.ShapeType.roundRect, { x:x, y:1.2, w:2.9, h:4.6, fill:{color:l.color}, line:{color:C.accentAlt,pt:1}, rectRadius:0.1 }); s.addText(l.icon, { x:x, y:1.3, w:2.9, h:0.8, fontSize:28, align:"center" }); s.addShape(pres.ShapeType.rect, { x:x, y:2.15, w:2.9, h:0.06, fill:{color: C.accentAlt} }); s.addText(l.label, { x:x, y:2.3, w:2.9, h:0.7, fontSize:14, bold:true, color:C.yellow, align:"center" }); s.addText(l.desc, { x:x+0.1, y:3.1, w:2.7, h:1.2, fontSize:10.5, color:C.white, align:"center" }); // Arrow between boxes if(i<3) s.addShape(pres.ShapeType.rightArrow, { x:x+2.95, y:3.1, w:0.15, h:0.4, fill:{color:C.accentAlt} }); }); // Bottom info bar s.addShape(pres.ShapeType.roundRect, { x:0.4, y:5.95, w:12.6, h:0.8, fill:{color: "0A2A4A"}, line:{color:C.accent,pt:1}, rectRadius:0.08 }); s.addText("Key Cells: Fibroblasts (tenocytes in tendons) — responsible for synthesizing collagen and maintaining matrix integrity", { x:0.5, y:6.0, w:12.4, h:0.7, fontSize:11, color:C.accentAlt, align:"center" }); } // ══════════════════════════════════════════════════════════════ // SLIDE 4 - LIGAMENTS OF THE KNEE // ══════════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:"100%", fill:{color: C.offWhite} }); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:1.0, fill:{color: C.midBg} }); s.addShape(pres.ShapeType.rect, { x:0, y:1.0, w:"100%", h:0.06, fill:{color: C.yellow} }); s.addText("🦵 Ligaments of the Knee", { x:0.3, y:0.1, w:12.5, h:0.8, fontSize:26, bold:true, color:C.white, valign:"middle" }); s.addText("Slide 4", { x:12.6, y:0.1, w:0.7, h:0.8, fontSize:9, color:C.gray, align:"right", valign:"middle" }); const knee = [ { abbr:"ACL", name:"Anterior Cruciate Ligament", color:"E53935", icon:"⚔️", func:"Resists anterior tibial translation & internal rotation. Most commonly injured knee ligament.", injury:"Torn in sudden pivoting, sports contact. MOI: valgus + external rotation force." }, { abbr:"PCL", name:"Posterior Cruciate Ligament", color:"1565C0", icon:"🛡️", func:"Resists posterior tibial translation. Strongest ligament in the knee.", injury:"Dashboard injury (posterior force). Less common than ACL injury." }, { abbr:"MCL", name:"Medial Collateral Ligament", color:"2E7D32", icon:"🔰", func:"Resists valgus (outward) force. Checks external rotation of tibia.", injury:"Most common knee ligament injury. Valgus stress — lateral blow to knee." }, { abbr:"LCL", name:"Lateral Collateral Ligament", color:"F57F17", icon:"🔱", func:"Resists varus (inward) force. Part of the posterolateral corner complex.", injury:"Varus stress injury. Often part of multi-ligament knee dislocation." }, ]; knee.forEach((k,i)=>{ const y = 1.2 + i*1.35; s.addShape(pres.ShapeType.roundRect, { x:0.3, y:y, w:12.7, h:1.25, fill:{color:"F7FBFF"}, line:{color:k.color,pt:2}, rectRadius:0.09 }); s.addShape(pres.ShapeType.roundRect, { x:0.3, y:y, w:1.1, h:1.25, fill:{color:k.color}, rectRadius:0.09 }); s.addText(k.abbr, { x:0.3, y:y, w:1.1, h:1.25, fontSize:16, bold:true, color:C.white, align:"center", valign:"middle" }); s.addText(k.icon+" "+k.name, { x:1.55, y:y+0.05, w:7, h:0.45, fontSize:13, bold:true, color:k.color }); s.addText("Function: "+k.func, { x:1.55, y:y+0.47, w:11.3, h:0.38, fontSize:9.5, color:C.darkGray }); s.addText("Injury: "+k.injury, { x:1.55, y:y+0.82, w:11.3, h:0.38, fontSize:9.5, color:"555555", italic:true }); }); } // ══════════════════════════════════════════════════════════════ // SLIDE 5 - SHOULDER LIGAMENTS // ══════════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:"100%", fill:{color: C.darkBg} }); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:1.0, fill:{color:"4A148C"} }); s.addShape(pres.ShapeType.rect, { x:0, y:1.0, w:"100%", h:0.06, fill:{color:"CE93D8"} }); s.addText("💪 Ligaments of the Shoulder & Elbow", { x:0.3, y:0.1, w:12.5, h:0.8, fontSize:26, bold:true, color:C.white, valign:"middle" }); s.addText("Slide 5", { x:12.6, y:0.1, w:0.7, h:0.8, fontSize:9, color:C.gray, align:"right", valign:"middle" }); // Shoulder section s.addText("SHOULDER (Glenohumeral Joint)", { x:0.3, y:1.15, w:6.2, h:0.45, fontSize:13, bold:true, color:"CE93D8" }); const shoulder = [ { name:"Glenohumeral Ligaments (Superior/Middle/Inferior)", desc:"Primary static stabilizers of the shoulder. Inferior GHL (IGHL) is most important — prevents anterior dislocation." }, { name:"Coracohumeral Ligament", desc:"Reinforces rotator cuff interval. Limits external rotation and inferior translation." }, { name:"Coracoacromial Ligament", desc:"Forms the coracoacromial arch. Protects the rotator cuff tendons above." }, { name:"Acromioclavicular (AC) Ligaments", desc:"Maintain horizontal stability of the AC joint. Torn in AC joint sprains (Grades I–VI)." }, { name:"Coracoclavicular Ligaments (Conoid+Trapezoid)", desc:"Maintain vertical AC stability. Disrupted in Grade III+ AC injuries." }, ]; shoulder.forEach((it,i)=>{ s.addShape(pres.ShapeType.roundRect, { x:0.3, y:1.7+i*0.89, w:6.2, h:0.82, fill:{color:"2A1040"}, line:{color:"9C27B0",pt:1}, rectRadius:0.07 }); s.addText("• "+it.name, { x:0.45, y:1.73+i*0.89, w:5.9, h:0.32, fontSize:10, bold:true, color:"CE93D8" }); s.addText(it.desc, { x:0.45, y:2.01+i*0.89, w:5.9, h:0.38, fontSize:9, color:C.white }); }); // Elbow section s.addText("ELBOW", { x:7.0, y:1.15, w:6.0, h:0.45, fontSize:13, bold:true, color:"80DEEA" }); const elbow = [ { name:"Ulnar Collateral Ligament (UCL)", desc:"3 bands: Anterior (strongest), Posterior, Transverse. Key for valgus stability. 'Tommy John' injury in throwers." }, { name:"Radial Collateral Ligament (RCL)", desc:"Resists varus stress. Provides lateral stability of the elbow joint." }, { name:"Annular Ligament", desc:"Encircles the radial head, holds it against the ulna. Torn in 'nursemaid's elbow' (radial head subluxation in children)." }, { name:"Lateral Ulnar Collateral Ligament (LUCL)", desc:"Prevents posterolateral rotatory instability (PLRI) of the elbow." }, ]; elbow.forEach((it,i)=>{ s.addShape(pres.ShapeType.roundRect, { x:7.0, y:1.7+i*1.1, w:6.2, h:1.0, fill:{color:"0A2A30"}, line:{color:"0097A7",pt:1}, rectRadius:0.07 }); s.addText("• "+it.name, { x:7.15, y:1.73+i*1.1, w:5.9, h:0.35, fontSize:10, bold:true, color:"80DEEA" }); s.addText(it.desc, { x:7.15, y:2.04+i*1.1, w:5.9, h:0.52, fontSize:9, color:C.white }); }); } // ══════════════════════════════════════════════════════════════ // SLIDE 6 - SPINE & HIP LIGAMENTS // ══════════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:"100%", fill:{color: C.offWhite} }); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:1.0, fill:{color:"004D40"} }); s.addShape(pres.ShapeType.rect, { x:0, y:1.0, w:"100%", h:0.06, fill:{color:"1DE9B6"} }); s.addText("🦴 Ligaments of the Spine & Hip", { x:0.3, y:0.1, w:12.5, h:0.8, fontSize:26, bold:true, color:C.white, valign:"middle" }); s.addText("Slide 6", { x:12.6, y:0.1, w:0.7, h:0.8, fontSize:9, color:C.gray, align:"right", valign:"middle" }); // Spine table s.addText("SPINAL LIGAMENTS", { x:0.3, y:1.15, w:6.5, h:0.45, fontSize:13, bold:true, color:"004D40" }); const spinalLigs = [ ["Anterior Longitudinal Ligament (ALL)", "Runs along anterior vertebral bodies. Resists hyperextension. Injured in extension injuries."], ["Posterior Longitudinal Ligament (PLL)", "Runs along posterior vertebral bodies inside canal. Resists hyperflexion."], ["Ligamentum Flavum", "Between adjacent laminae. High elastin content — allows extension. Can hypertrophy → spinal stenosis."], ["Interspinous / Supraspinous", "Connect spinous processes. Resist flexion. Supraspinous palpable as 'interspinous ligament.'"], ["Ligamentum Nuchae", "Strong ligament in cervical spine (nuchal ligament). Cervical spine equivalent of supraspinous."], ["Iliolumbar Ligament", "L4-L5 transverse process to iliac crest. Stabilizes lumbosacral junction."], ]; spinalLigs.forEach((row,i)=>{ const rowBg = i%2===0 ? "E8F5E9" : "F1F8F1"; s.addShape(pres.ShapeType.rect, { x:0.3, y:1.65+i*0.73, w:6.5, h:0.7, fill:{color:rowBg}, line:{color:"A5D6A7",pt:0.5} }); s.addText(row[0], { x:0.4, y:1.68+i*0.73, w:6.2, h:0.28, fontSize:9.5, bold:true, color:"00695C" }); s.addText(row[1], { x:0.4, y:1.94+i*0.73, w:6.2, h:0.3, fontSize:8.5, color:C.darkGray }); }); // Hip section s.addText("HIP (Coxofemoral Joint)", { x:7.1, y:1.15, w:6.0, h:0.45, fontSize:13, bold:true, color:"004D40" }); const hip = [ { name:"Iliofemoral Ligament\n(Y-Ligament of Bigelow)", desc:"Strongest ligament in the body. Inverted Y shape. Resists hip extension and external rotation. Prevents hip from hyperextending when standing.", color:"1B5E20" }, { name:"Pubofemoral Ligament", desc:"Anterior-inferior capsule. Resists abduction and external rotation. Triangular shape. Thinner than iliofemoral.", color:"2E7D32" }, { name:"Ischiofemoral Ligament", desc:"Posterior capsule. Resists medial rotation and adduction. Spirals superiorly to the greater trochanter.", color:"388E3C" }, { name:"Ligamentum Teres\n(Round Ligament of Femur)", desc:"Intra-articular. Carries artery to femoral head (in children especially). Its role in hip stability is secondary.", color:"43A047" }, ]; hip.forEach((h,i)=>{ s.addShape(pres.ShapeType.roundRect, { x:7.1, y:1.7+i*1.1, w:6.2, h:1.0, fill:{color: i%2===0?"E8F5E9":"F1F8F1"}, line:{color:h.color,pt:1.5}, rectRadius:0.07 }); s.addText("• "+h.name, { x:7.25, y:1.73+i*1.1, w:5.9, h:0.38, fontSize:10, bold:true, color:h.color }); s.addText(h.desc, { x:7.25, y:2.06+i*1.1, w:5.9, h:0.52, fontSize:9, color:C.darkGray }); }); } // ══════════════════════════════════════════════════════════════ // SLIDE 7 - ANKLE & FOOT LIGAMENTS // ══════════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:"100%", fill:{color: C.darkBg} }); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:1.0, fill:{color:"BF360C"} }); s.addShape(pres.ShapeType.rect, { x:0, y:1.0, w:"100%", h:0.06, fill:{color:"FF7043"} }); s.addText("🦶 Ligaments of the Ankle & Foot", { x:0.3, y:0.1, w:12.5, h:0.8, fontSize:26, bold:true, color:C.white, valign:"middle" }); s.addText("Slide 7", { x:12.6, y:0.1, w:0.7, h:0.8, fontSize:9, color:C.gray, align:"right", valign:"middle" }); // Lateral ankle s.addText("LATERAL ANKLE (Most commonly sprained)", { x:0.3, y:1.15, w:6.2, h:0.45, fontSize:12, bold:true, color:"FF7043" }); const lateral = [ { name:"ATFL — Anterior Talofibular Ligament", desc:"Weakest lateral ligament. FIRST to tear in inversion sprain (most common ankle injury). Resist anterior talar displacement." }, { name:"CFL — Calcaneofibular Ligament", desc:"Second most injured. Crosses two joints. Resist inversion. Torn in more severe sprains." }, { name:"PTFL — Posterior Talofibular Ligament", desc:"Strongest lateral ligament. Rarely torn. Only injured in complete dislocation." }, ]; lateral.forEach((l,i)=>{ s.addShape(pres.ShapeType.roundRect, { x:0.3, y:1.7+i*1.1, w:6.2, h:1.0, fill:{color:"2A1008"}, line:{color:"FF7043",pt:1.5}, rectRadius:0.07 }); s.addText(l.name, { x:0.45, y:1.73+i*1.1, w:5.9, h:0.35, fontSize:10, bold:true, color:"FF7043" }); s.addText(l.desc, { x:0.45, y:2.04+i*1.1, w:5.9, h:0.54, fontSize:9.5, color:C.white }); }); // Medial ankle s.addText("MEDIAL ANKLE (Deltoid Ligament)", { x:7.0, y:1.15, w:6.2, h:0.45, fontSize:12, bold:true, color:"64B5F6" }); const medAnkle = [ { name:"Superficial Deltoid", desc:"Tibionavicular, tibiocalcaneal, superficial tibiotalar fibers. Broad fan-shaped band. Resists eversion." }, { name:"Deep Deltoid (Tibiotalar)", desc:"Strongest part. Resists lateral talar shift. Torn in severe eversion sprains or ankle fractures (e.g., bimalleolar)." }, { name:"Plantar Fascia (Plantar Aponeurosis)", desc:"Not a true ligament but a strong fibrous band. Spans heel to toes. Inflammation = plantar fasciitis (most common cause of heel pain)." }, { name:"Spring Ligament\n(Plantar Calcaneonavicular)", desc:"Supports the head of the talus. Critical for maintaining the medial longitudinal arch. Failure leads to flatfoot deformity." }, ]; medAnkle.forEach((m,i)=>{ s.addShape(pres.ShapeType.roundRect, { x:7.0, y:1.7+i*1.1, w:6.2, h:1.0, fill:{color:"0A1A2A"}, line:{color:"1565C0",pt:1}, rectRadius:0.07 }); s.addText(m.name, { x:7.15, y:1.73+i*1.1, w:5.9, h:0.35, fontSize:10, bold:true, color:"64B5F6" }); s.addText(m.desc, { x:7.15, y:2.04+i*1.1, w:5.9, h:0.54, fontSize:9.5, color:C.white }); }); } // ══════════════════════════════════════════════════════════════ // SLIDE 8 - MAJOR TENDONS // ══════════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:"100%", fill:{color: C.offWhite} }); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:1.0, fill:{color:"1A237E"} }); s.addShape(pres.ShapeType.rect, { x:0, y:1.0, w:"100%", h:0.06, fill:{color:"7986CB"} }); s.addText("🏃 Major Tendons of the Human Body", { x:0.3, y:0.1, w:12.5, h:0.8, fontSize:26, bold:true, color:C.white, valign:"middle" }); s.addText("Slide 8", { x:12.6, y:0.1, w:0.7, h:0.8, fontSize:9, color:C.gray, align:"right", valign:"middle" }); const tendons = [ { name:"Achilles Tendon\n(Calcaneal Tendon)", region:"Ankle", muscles:"Gastrocnemius + Soleus → Calcaneus", func:"Plantarflexion of ankle. Thickest, strongest tendon in the body. Rupture at 2–6 cm above insertion (watershed zone).", color:"E53935", emoji:"🦶" }, { name:"Patellar Tendon\n(Patellar Ligament)", region:"Knee", muscles:"Quadriceps → Tibial Tuberosity", func:"Extends the knee. Connects patella to tibia. Rupture causes loss of knee extension; palpable defect below patella.", color:"1565C0", emoji:"🦵" }, { name:"Rotator Cuff Tendons\n(SITS)", region:"Shoulder", muscles:"Supraspinatus, Infraspinatus, Teres Minor, Subscapularis", func:"Supraspinatus: initiates abduction. Others: rotators + depression. Most common: supraspinatus tear in overhead athletes.", color:"6A1B9A", emoji:"💪" }, { name:"Biceps Tendon\n(Long Head)", region:"Shoulder", muscles:"Biceps Brachii → Supraglenoid tubercle", func:"Long head passes through bicipital groove. Common site of tendinopathy and rupture (Popeye sign on rupture).", color:"00695C", emoji:"💪" }, { name:"Flexor/Extensor\nTendons of Hand", region:"Hand/Wrist", muscles:"Forearm muscles → Fingers via carpal tunnel", func:"FDP, FDS (flexors) + EDC (extensor). Run in sheaths. Jersey finger = FDP avulsion. Mallet finger = EDC avulsion at DIP.", color:"E65100", emoji:"✋" }, { name:"Quadriceps Tendon", region:"Knee", muscles:"Quadriceps group → Patella", func:"Merges into patellar tendon. Rupture in older patients (>40y). Complete rupture = inability to extend knee, palpable gap above patella.", color:"2E7D32", emoji:"🦵" }, ]; tendons.forEach((t,i)=>{ const col = i%2, row = Math.floor(i/2); const x = 0.3 + col*6.55; const y = 1.2 + row*1.8; s.addShape(pres.ShapeType.roundRect, { x:x, y:y, w:6.3, h:1.7, fill:{color:"FAFEFF"}, line:{color:t.color,pt:1.5}, rectRadius:0.09 }); s.addShape(pres.ShapeType.rect, { x:x, y:y, w:6.3, h:0.52, fill:{color:t.color} }); s.addText(t.emoji+" "+t.name, { x:x+0.1, y:y+0.06, w:4.5, h:0.4, fontSize:11, bold:true, color:C.white }); s.addText(t.region, { x:x+4.6, y:y+0.06, w:1.6, h:0.4, fontSize:9, color:C.white, align:"right", italic:true }); s.addText("Muscles: "+t.muscles, { x:x+0.1, y:y+0.57, w:6.1, h:0.32, fontSize:8.5, color:t.color, bold:true }); s.addText(t.func, { x:x+0.1, y:y+0.87, w:6.1, h:0.75, fontSize:8.5, color:C.darkGray }); }); } // ══════════════════════════════════════════════════════════════ // SLIDE 9 - TENDINOPATHY & INJURIES // ══════════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:"100%", fill:{color: C.darkBg} }); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:1.0, fill:{color:"880E4F"} }); s.addShape(pres.ShapeType.rect, { x:0, y:1.0, w:"100%", h:0.06, fill:{color:"F48FB1"} }); s.addText("⚠️ Common Injuries: Sprains, Strains & Ruptures", { x:0.3, y:0.1, w:12.5, h:0.8, fontSize:24, bold:true, color:C.white, valign:"middle" }); s.addText("Slide 9", { x:12.6, y:0.1, w:0.7, h:0.8, fontSize:9, color:C.gray, align:"right", valign:"middle" }); // Sprain grades s.addText("LIGAMENT SPRAIN — Grades", { x:0.3, y:1.12, w:6.2, h:0.45, fontSize:13, bold:true, color:"F48FB1" }); const grades = [ { g:"Grade I", col:"F57F17", desc:"Microscopic tears. Mild swelling. No laxity. Full weight bearing. RICE treatment." }, { g:"Grade II", col:"E65100", desc:"Partial tear. Moderate swelling/bruising. Some laxity. Partial weight bearing. Immobilisation." }, { g:"Grade III", col:"B71C1C", desc:"Complete rupture. Severe swelling. Marked laxity. Non-weight bearing. May need surgery." }, ]; grades.forEach((g,i)=>{ s.addShape(pres.ShapeType.roundRect, { x:0.3, y:1.65+i*1.35, w:6.2, h:1.25, fill:{color:"2A0A15"}, line:{color:g.col,pt:2}, rectRadius:0.09 }); s.addShape(pres.ShapeType.roundRect, { x:0.3, y:1.65+i*1.35, w:1.5, h:1.25, fill:{color:g.col}, rectRadius:0.09 }); s.addText(g.g, { x:0.3, y:1.65+i*1.35, w:1.5, h:1.25, fontSize:14, bold:true, color:C.white, align:"center", valign:"middle" }); s.addText(g.desc, { x:1.95, y:1.78+i*1.35, w:4.4, h:1.0, fontSize:10.5, color:C.white }); }); // Tendon injuries s.addText("TENDON INJURIES", { x:7.0, y:1.12, w:6.2, h:0.45, fontSize:13, bold:true, color:"80DEEA" }); const tinj = [ { name:"Tendinopathy / Tendinosis", desc:"Chronic degenerative change in tendon without true inflammation. Overuse. Disorganised collagen. Pain + thickening.", col:"0097A7" }, { name:"Tenosynovitis", desc:"Inflammation of tendon sheath. De Quervain's tenosynovitis (thumb extensors). Finkelstein's test positive.", col:"00838F" }, { name:"Partial Tear", desc:"Incomplete disruption. Persistent pain with activity. MRI shows high signal in tendon. Conservative or PRP.", col:"006064" }, { name:"Complete Rupture", desc:"Full disruption. Immediate pain + loss of function. Achilles (Thompson test), patellar (cannot extend knee). Surgery often required.", col:"004D40" }, ]; tinj.forEach((t,i)=>{ s.addShape(pres.ShapeType.roundRect, { x:7.0, y:1.65+i*1.1, w:6.2, h:1.0, fill:{color:"0A1A2A"}, line:{color:t.col,pt:1.5}, rectRadius:0.07 }); s.addText("▸ "+t.name, { x:7.15, y:1.68+i*1.1, w:5.9, h:0.35, fontSize:10.5, bold:true, color:"80DEEA" }); s.addText(t.desc, { x:7.15, y:1.99+i*1.1, w:5.9, h:0.52, fontSize:9.5, color:C.white }); }); } // ══════════════════════════════════════════════════════════════ // SLIDE 10 - HEALING & CLINICAL NOTES // ══════════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:"100%", fill:{color: C.offWhite} }); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:1.0, fill:{color:"33691E"} }); s.addShape(pres.ShapeType.rect, { x:0, y:1.0, w:"100%", h:0.06, fill:{color:"AED581"} }); s.addText("🔬 Healing, Treatment & Clinical Pearls", { x:0.3, y:0.1, w:12.5, h:0.8, fontSize:26, bold:true, color:C.white, valign:"middle" }); s.addText("Slide 10", { x:12.5, y:0.1, w:0.8, h:0.8, fontSize:9, color:C.gray, align:"right", valign:"middle" }); // Healing phases s.addText("HEALING PHASES OF LIGAMENTS/TENDONS", { x:0.3, y:1.12, w:6.3, h:0.45, fontSize:12, bold:true, color:"33691E" }); const phases = [ { phase:"Phase 1\nInflammatory", time:"0–72 hrs", desc:"Hematoma, inflammatory cells. Cytokines released. Fibroblast recruitment begins.", col:"E53935" }, { phase:"Phase 2\nProliferative", time:"Days 3–21", desc:"Type III collagen laid down (weaker). Neo-vascularisation. Granulation tissue formation.", col:"F57F17" }, { phase:"Phase 3\nRemodelling", time:"Weeks–Years", desc:"Type III → Type I collagen. Fibers align along stress lines. Full strength may take 12–24 months.", col:"43A047" }, ]; phases.forEach((p,i)=>{ s.addShape(pres.ShapeType.roundRect, { x:0.3, y:1.7+i*1.45, w:6.2, h:1.35, fill:{ color: i===0?"FFF8F8": i===1?"FFF8F0":"F1F8F1"}, line:{color:p.col,pt:1.5}, rectRadius:0.09 }); s.addShape(pres.ShapeType.roundRect, { x:0.3, y:1.7+i*1.45, w:1.7, h:1.35, fill:{color:p.col}, rectRadius:0.09 }); s.addText(p.phase, { x:0.3, y:1.7+i*1.45, w:1.7, h:0.75, fontSize:11, bold:true, color:C.white, align:"center", valign:"middle" }); s.addText(p.time, { x:0.3, y:2.35+i*1.45, w:1.7, h:0.55, fontSize:9.5, color:C.white, align:"center", italic:true }); s.addText(p.desc, { x:2.1, y:1.85+i*1.45, w:4.3, h:1.05, fontSize:9.5, color:C.darkGray }); }); // Clinical pearls s.addText("CLINICAL PEARLS", { x:7.0, y:1.12, w:6.2, h:0.45, fontSize:12, bold:true, color:"33691E" }); const pearls = [ { icon:"💡", text:"Thompson Test — squeezing calf should plantarflex foot. Negative test (no movement) = complete Achilles rupture." }, { icon:"💡", text:"Lachman Test — most sensitive test for ACL rupture (90% sensitivity vs. 62% for anterior drawer test)." }, { icon:"💡", text:"Valgus Stress Test — detects MCL injury; done at 0° and 30° of knee flexion." }, { icon:"💡", text:"Ottawa Ankle Rules — clinical decision tool to decide if X-ray needed in ankle sprain (bone tenderness at malleolus or inability to weight bear)." }, { icon:"💡", text:"RICE Protocol — Rest, Ice, Compression, Elevation for acute ligament/tendon injuries." }, { icon:"💡", text:"PRP (Platelet-Rich Plasma) — emerging treatment for chronic tendinopathy and partial tears. Growth factors promote healing." }, { icon:"💡", text:"Proprioception retraining is essential in rehab — ligaments contain mechanoreceptors that are disrupted in injury." }, ]; pearls.forEach((p,i)=>{ s.addShape(pres.ShapeType.roundRect, { x:7.0, y:1.65+i*0.77, w:6.2, h:0.71, fill:{color: i%2===0?"E8F5E9":"F1F8F1"}, line:{color:"A5D6A7",pt:0.5}, rectRadius:0.06 }); s.addText(p.icon+" "+p.text, { x:7.1, y:1.68+i*0.77, w:5.95, h:0.62, fontSize:8.8, color:C.darkGray }); }); } // ══════════════════════════════════════════════════════════════ // SLIDE 11 - SUMMARY / CLOSING // ══════════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.ShapeType.rect, { x:0, y:0, w:"100%", h:"100%", fill:{color: C.darkBg} }); // Diagonal accent s.addShape(pres.ShapeType.rect, { x:0, y:0, w:0.12, h:"100%", fill:{color: C.accent} }); s.addShape(pres.ShapeType.rect, { x:0.18, y:0, w:0.05, h:"100%", fill:{color: C.accentAlt} }); s.addText("Key Takeaways", { x:0.5, y:0.3, w:12.3, h:0.75, fontSize:30, bold:true, color:C.white, charSpacing:1 }); s.addShape(pres.ShapeType.rect, { x:0.5, y:1.1, w:4, h:0.05, fill:{color: C.accent} }); const takeaways = [ { emoji:"🔗", title:"Ligaments = Bone to Bone", text:"Passive stabilizers — resist excessive movement and provide joint integrity." }, { emoji:"💪", title:"Tendons = Muscle to Bone", text:"Active force transmitters — convert muscle contraction into joint movement." }, { emoji:"🧬", title:"Collagen is Key", text:"Type I collagen provides tensile strength; organized hierarchically from fibril to fascicle." }, { emoji:"⚡", title:"Injuries are Graded", text:"Sprains (ligaments) I–III; Strains (muscles/tendons) I–III; Complete ruptures need surgery." }, { emoji:"🔄", title:"Healing Takes Time", text:"3 phases: Inflammation → Proliferation → Remodelling. Full strength: 12–24 months." }, { emoji:"🏥", title:"Proprioception Matters", text:"Mechanoreceptors in ligaments are disrupted in injury. Rehab must include balance training." }, ]; takeaways.forEach((t,i)=>{ const col = i%2, row = Math.floor(i/2); const x = 0.5 + col*6.6; const y = 1.3 + row*1.6; s.addShape(pres.ShapeType.roundRect, { x:x, y:y, w:6.2, h:1.5, fill:{color:C.cardBg}, line:{color:C.accent,pt:1}, rectRadius:0.1 }); s.addText(t.emoji+" "+t.title, { x:x+0.15, y:y+0.1, w:5.8, h:0.45, fontSize:13, bold:true, color:C.accentAlt }); s.addText(t.text, { x:x+0.15, y:y+0.6, w:5.8, h:0.75, fontSize:10.5, color:C.white }); }); s.addText("Source: Gray's Anatomy for Students • Miller's Orthopaedics • Fuster & Hurst's The Heart • Campbell's Operative Orthopaedics", { x:0.5, y:6.85, w:12.3, h:0.4, fontSize:8, color:C.gray, align:"center", italic:true }); } // ── WRITE FILE ───────────────────────────────────────────────── const outPath = "/home/daytona/workspace/ligaments-ppt/Ligaments_and_Tendons.pptx"; pres.writeFile({ fileName: outPath }).then(()=>{ console.log("PPT created:", outPath); }).catch(e=>{ console.error(e); process.exit(1); }); JSEOF node /home/daytona/workspace/ligaments-ppt/build.js

Your presentation is ready! Download it here:

Ligaments and Tendons

Presentation · PPTX


Here's what's inside the 11-slide deck:
SlideTopic
1Title Slide - dark navy theme
2Overview - Ligaments vs Tendons (side-by-side comparison)
3Microstructure - Fibril → Fiber → Fascicle → Tendon hierarchy
4Knee Ligaments - ACL, PCL, MCL, LCL with functions & injuries
5Shoulder & Elbow Ligaments - Glenohumeral, AC, UCL, Annular
6Spine & Hip Ligaments - ALL, PLL, Ligamentum Flavum, Iliofemoral
7Ankle & Foot Ligaments - ATFL, CFL, Deltoid, Plantar Fascia
8Major Tendons - Achilles, Patellar, Rotator Cuff, Biceps, Hand tendons
9Injuries - Sprain Grades I/II/III, Tendinopathy, Ruptures
10Healing Phases + Clinical Pearls (Thompson test, Lachman, Ottawa Rules)
11Key Takeaways summary slide
Content is sourced from Gray's Anatomy for Students, Miller's Review of Orthopaedics, and Campbell's Operative Orthopaedics.
This is a shared conversation. Sign in to Orris to start your own chat.