Tooltip
.tooltip {
position: relative;
cursor: pointer;
text-decoration: none;
border-bottom: 1px dashed rgba(0, 0, 0, 0.6);
}
.tooltip::before {
content: attr(data-tooltip);
position: absolute;
top: -40px; /* Trochę niżej nad słowem */
left: 50%; /* Wyśrodkowanie */
transform: translateX(-50%);
background-color: rgba(255, 255, 255, 0.9);
color: #333;
padding: 6px 12px;
border-radius: 8px;
white-space: nowrap;
opacity: 0;
visibility: hidden;
transition: opacity 0.3s ease, visibility 0.3s ease;
font-family: ‘Arial’, sans-serif;
font-size: 14px;
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
z-index: 10;
}
.tooltip:hover::before {
opacity: 1;
visibility: visible;
}
document.addEventListener(‘DOMContentLoaded’, function () {
const wordsToTooltip = {
“Inspection”: “Oględziny”,
“Observation”: “Obserwacja”,
“Musculoskeletal examination”: “Badanie układu mięśniowo-szkieletowego”,
“Posture”: “Postawa ciała”,
“Muscle bulk”: “Masa mięśniowa”,
“Symmetry”: “Symetria”,
“Joint alignment”: “Ustawienie stawów”,
“Skin Conditions”: “Choroby skóry”,
“Erythema”: “Rumień”,
“Cellulitis”: “Zapalenie tkanki podskórnej (cellulitis)”,
“Bursitis”: “Zapalenie kaletki maziowej”,
“Autoimmune diseases”: “Choroby autoimmunologiczne”,
“Lupus”: “Toczeń”,
“Ecchymosis”: “Wybroczyny”,
“Bruising”: “Siniaki”,
“Anterior cruciate ligament (ACL) tear”: “Uszkodzenie więzadła krzyżowego przedniego (ACL)”,
“Ulceration”: “Owrzodzenie”,
“Rash”: “Wysypka”,
“Dermatomyositis”: “Zapalenie skórno-mięśniowe”,
“Skin atrophy”: “Zanik skóry”,
“Sclerosis”: “Stwardnienie”,
“Scleroderma”: “Twardzina”,
“Connective tissue disorders”: “Choroby tkanki łącznej”,
“Joint Deformities”: “Deformacje stawów”,
“Subluxation”: “Podwichnięcie”,
“Dislocation”: “Zwichnięcie”,
“Ehlers-Danlos syndrome”: “Zespół Ehlersa-Danlosa”,
“Swelling”: “Obrzęk”,
“Effusion”: “Wysięk”,
“Osteoarthritis”: “Choroba zwyrodnieniowa stawów (OA)”,
“Rheumatoid arthritis”: “Reumatoidalne zapalenie stawów (RZS)”,
“Gout”: “Dna moczanowa”,
“Genu valgum (knock knees)”: “Koślawość kolan”,
“Genu varum (bow legs)”: “Szpotawość kolan”,
“Hip dysplasia”: “Dysplazja stawu biodrowego”,
“Scoliosis”: “Skolioza”,
“Kyphosis”: “Kifoza”,
“Muscle Abnormalities”: “Nieprawidłowości mięśniowe”,
“Atrophy”: “Zanik mięśni”,
“Hypertrophy”: “Przerost mięśni”,
“Pseudohypertrophy”: “Rzekomy przerost mięśni”,
“Fibrotic tissue”: “Tkanka włóknista”,
“Duchenne muscular dystrophy”: “Dystrofia mięśniowa Duchenne’a”,
“Fasciculations”: “Drżenia pęczkowe (fascykulacje)”,
“Lower motor neuron pathology”: “Patologia dolnych neuronów ruchowych”,
“Amyotrophic lateral sclerosis (ALS)”: “Stwardnienie zanikowe boczne (SLA)”,
“Peripheral neuropathies”: “Neuropatie obwodowe”,
“Involuntary movements”: “Ruchy mimowolne”,
“Tremors”: “Drżenia”,
“Chorea”: “Pląsawica”,
“Myoclonus”: “Mioklonie”,
“Parkinson’s disease”: “Choroba Parkinsona”,
“Huntington’s disease”: “Choroba Huntingtona”,
“Epilepsy”: “Padaczka”,
“Postural Abnormalities”: “Nieprawidłowości postawy”,
“Lordosis”: “Lordoza”,
“Degenerative disc disease”: “Choroba zwyrodnieniowa krążków międzykręgowych”,
“Palpation”: “Palpacja”,
“Tenderness”: “Tkliwość”,
“Tendinitis”: “Zapalenie ścięgien”,
“Lateral epicondylitis (tennis elbow)”: “Zapalenie nadkłykcia bocznego (łokieć tenisisty)”,
“Polymyalgia rheumatica”: “Polimialgia reumatyczna”,
“Fibromyalgia”: “Fibromialgia”,
“Edema”: “Obrzęk”,
“Pitting edema”: “Obrzęk z pozostawieniem dołka”,
“Non-pitting edema”: “Obrzęk bez pozostawienia dołka”,
“Lymphatic blockage”: “Blokada limfatyczna”,
“Trigger points”: “Punkty spustowe”,
“Myofascial pain syndrome”: “Zespół bólu mięśniowo-powięziowego”,
“Crepitus”: “Trzeszczenie”,
“Cartilage degeneration”: “Zwyrodnienie chrząstki”,
“Septic arthritis”: “Septyczne zapalenie stawów”,
“Hemarthrosis”: “Krwawienie do stawu (hemartroza)”,
“Crystal-induced arthropathy”: “Artropatia wywołana kryształami”,
“Osteophytes (bone spurs)”: “Wyrośla kostne (osteofity)”,
“Fractures”: “Złamania”,
“Range of Motion (ROM) Testing”: “Testowanie zakresu ruchu (ROM)”,
“Active ROM”: “Aktywny zakres ruchu”,
“Passive ROM”: “Pasywny zakres ruchu”,
“Rotator cuff pathology”: “Patologie stożka rotatorów”,
“Adhesive capsulitis (frozen shoulder)”: “Zamrożony bark (zapalenie torebki stawowej)”,
“Ligamentous laxity”: “Wiotkość więzadłowa”,
“Hyperflexibility”: “Hiperelastyczność”,
“Hypomobility”: “Ograniczona ruchomość”,
“Muscle Strength Testing”: “Testowanie siły mięśniowej”,
“Lovett scale”: “Skala Lovetta”,
“Grade 0”: “Stopień 0 (brak skurczu)”,
“Grade 1”: “Stopień 1 (śladowy skurcz)”,
“Grade 2”: “Stopień 2 (ruch w odciążeniu)”,
“Grade 3”: “Stopień 3 (ruch przeciwko grawitacji)”,
“Grade 4”: “Stopień 4 (ruch z niewielkim oporem)”,
“Grade 5”: “Stopień 5 (pełna siła mięśniowa)”,
“Shoulder Abduction”: “Odwodzenie ramienia”,
“Rotator cuff injury”: “Uraz stożka rotatorów”,
“Brachial plexus injury”: “Uraz splotu ramiennego”,
“Elbow Flexion and Extension”: “Zgięcie i wyprost łokcia”,
“Radial nerve”: “Nerw promieniowy”,
“Musculocutaneous nerve”: “Nerw mięśniowo-skórny”,
“Carpal tunnel syndrome”: “Zespół cieśni nadgarstka”,
“Median nerve compression”: “Ucisk nerwu pośrodkowego”,
“Hip Flexion and Extension”: “Zgięcie i wyprost stawu biodrowego”,
“Iliopsoas”: “Mięsień biodrowo-lędźwiowy”,
“Lumbar radiculopathy”: “Rwa kulszowa (radikulopatia lędźwiowa)”,
“Knee Extension and Flexion”: “Wyprost i zgięcie kolana”,
“Femoral nerve”: “Nerw udowy”,
“Sciatic nerve”: “Nerw kulszowy”,
“Ankle Dorsiflexion and Plantarflexion”: “Grzbietowe i podeszwowe zgięcie stawu skokowego”,
“Tibialis anterior”: “Mięsień piszczelowy przedni”,
“Gastrocnemius”: “Mięsień brzuchaty łydki”,
“Soleus complex”: “Mięsień płaszczkowaty”,
“Compartment syndrome”: “Zespół ciasnoty przedziałów powięziowych”
};
// Normalize keys in the dictionary
const normalizedWordsToTooltip = {};
for (const [key, value] of Object.entries(wordsToTooltip)) {
const cleanedKey = key.replace(/(.*?)/g, ”).trim(); // Remove anything in parentheses
normalizedWordsToTooltip[cleanedKey.toLowerCase()] = value;
}
function processNode(node) {
if (node.nodeType === Node.TEXT_NODE && node.nodeValue.trim()) {
let content = node.nodeValue;
// Regex to match only the main words (ignores parentheses)
const regex = new RegExp(
`b(${Object.keys(normalizedWordsToTooltip).join(‘|’)})b`,
‘gi’
);
if (regex.test(content)) {
const wrapper = document.createElement(‘span’);
wrapper.innerHTML = content.replace(regex, (match) => {
const tooltip = normalizedWordsToTooltip[match.toLowerCase().trim()];
return `
${match}`;
});
node.replaceWith(wrapper);
}
} else if (node.nodeType === Node.ELEMENT_NODE) {
Array.from(node.childNodes).forEach(processNode);
}
}
document.querySelectorAll(‘body *:not(script):not(style)’).forEach((element) => {
Array.from(element.childNodes).forEach(processNode);
});
});
Podświetlanie tekstu z notatkami
body {
margin: 0;
padding: 0;
font-family: Arial, sans-serif;
}
.highlight {
background-color: #cce7ff; /* Highlight color without notes */
position: relative;
display: inline;
}
.highlight.with-note {
background-color: #ffeb3b; /* Highlight color with notes */
}
.note-box {
position: absolute;
background-color: #f9f9f9;
color: #333;
font-size: 14px;
line-height: 1.6;
padding: 10px 15px;
border: 1px solid #ddd;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
max-width: 250px;
z-index: 1000;
white-space: normal;
text-align: left;
display: none; /* Hidden by default */
}
.note-controls {
position: absolute;
top: -30px;
right: -30px;
display: flex;
gap: 10px;
z-index: 10;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s;
}
.note-controls.visible {
opacity: 1;
pointer-events: all;
}
.note-controls span {
cursor: pointer;
background-color: gray;
color: white;
padding: 5px 10px;
border-radius: 5px;
font-size: 16px;
font-weight: bold;
}
.note-controls span:hover {
background-color: darkgray;
}
document.addEventListener(“DOMContentLoaded”, () => {
/**
* Checks if an element is a header.
*/
const isHeaderElement = (node) => {
while (node) {
if (node.nodeType === 1 && node.tagName.match(/^H[1-5]$/)) {
return true;
}
node = node.parentNode;
}
return false;
};
/**
* Checks if an element is inside a table cell.
*/
const isInsideTable = (node) => {
while (node) {
if (node.tagName === “TD” || node.tagName === “TH”) {
return node;
}
node = node.parentNode;
}
return null;
};
/**
* Checks if an element belongs to the same list item.
*/
const isWithinSameListItem = (selection) => {
if (selection.rangeCount === 0) return false;
const range = selection.getRangeAt(0);
const startContainer = range.startContainer;
const endContainer = range.endContainer;
const getClosestListItem = (node) => {
while (node) {
if (node.nodeType === 1 && node.tagName === “LI”) {
return node;
}
node = node.parentNode;
}
return null;
};
const startListItem = getClosestListItem(startContainer);
const endListItem = getClosestListItem(endContainer);
// Ensure selection is within the same list item
return startListItem === endListItem;
};
/**
* Validates the selection.
* Ensures the selection is within a single header, table cell, or list item.
*/
const isSelectionValid = (selection) => {
if (selection.rangeCount === 0) return false;
const range = selection.getRangeAt(0);
const startContainer = range.startContainer;
const endContainer = range.endContainer;
const startInHeader = isHeaderElement(startContainer);
const endInHeader = isHeaderElement(endContainer);
// Block selection spanning headers
if (startInHeader !== endInHeader) {
return false;
}
const startCell = isInsideTable(startContainer);
const endCell = isInsideTable(endContainer);
// Block selection spanning table cells
if (startCell && endCell && startCell !== endCell) {
return false;
}
// Block selection spanning multiple list items
if (!isWithinSameListItem(selection)) {
return false;
}
return true;
};
/**
* Highlights the selected text.
*/
const wrapTextWithHighlight = (range) => {
const fragment = range.extractContents();
const highlight = document.createElement(“span”);
highlight.className = “highlight”;
highlight.appendChild(fragment);
range.insertNode(highlight);
const noteControls = document.createElement(“div”);
noteControls.className = “note-controls visible”;
const editNote = document.createElement(“span”);
editNote.textContent = “✎”;
editNote.title = “Edit note”;
noteControls.appendChild(editNote);
const removeHighlight = document.createElement(“span”);
removeHighlight.textContent = “x”;
removeHighlight.title = “Remove highlight”;
noteControls.appendChild(removeHighlight);
highlight.style.position = “relative”;
highlight.appendChild(noteControls);
let noteBox = null;
const updateNotePosition = () => {
const rect = highlight.getBoundingClientRect();
if (noteBox) {
noteBox.style.top = `${rect.height}px`;
noteBox.style.left = `${rect.width / 2}px`;
}
};
const hideControlsAndNoteAfterDelay = () => {
setTimeout(() => {
noteControls.classList.remove(“visible”);
if (noteBox) noteBox.style.display = “none”;
}, 3000);
};
// Show controls for 3 seconds after highlighting
hideControlsAndNoteAfterDelay();
highlight.addEventListener(“click”, () => {
noteControls.classList.add(“visible”);
if (noteBox) noteBox.style.display = “block”;
hideControlsAndNoteAfterDelay();
});
editNote.addEventListener(“click”, () => {
const noteText = prompt(“Add or edit a note:”, noteBox?.textContent || “”);
if (noteText) {
if (!noteBox) {
noteBox = document.createElement(“div”);
noteBox.className = “note-box”;
highlight.appendChild(noteBox);
}
noteBox.textContent = noteText;
noteBox.style.display = “block”;
highlight.classList.add(“with-note”);
updateNotePosition();
hideControlsAndNoteAfterDelay();
}
});
removeHighlight.addEventListener(“click”, () => {
const parent = highlight.parentNode;
while (highlight.firstChild) {
parent.insertBefore(highlight.firstChild, highlight);
}
parent.removeChild(highlight);
if (noteBox) noteBox.remove();
});
};
/**
* Handles the mouseup event to validate and apply highlighting.
*/
document.body.addEventListener(“mouseup”, () => {
const selection = window.getSelection();
if (selection.rangeCount > 0 && selection.toString().trim()) {
if (!isSelectionValid(selection)) {
alert(“Zaznaczenie musi być w obrębie jednego akapitu, komórki tabeli lub punktu listy!”);
selection.removeAllRanges();
return;
}
const range = selection.getRangeAt(0);
wrapTextWithHighlight(range);
selection.removeAllRanges();
}
});
});
Szacowany czas lekcji:
7 minut
.lesson-duration-container {
background-color: #f0f4f8; /* Szarawe tło dopasowane do reszty strony */
padding: 8px 15px; /* Wewnętrzny odstęp */
border-radius: 8px; /* Zaokrąglone rogi */
font-family: ‘Roboto’, Arial, sans-serif; /* Czcionka Roboto, jeśli dostępna */
font-size: 16px; /* Rozmiar tekstu */
color: #6c757d; /* Ciemny szary kolor tekstu */
display: inline-block; /* Wyświetlanie jako element blokowy */
margin-bottom: 20px; /* Odstęp na dole */
border: none; /* Bez obramowania */
}
.lesson-duration-label {
font-weight: 700; /* Pogrubienie dla etykiety */
color: #6c757d; /* Ciemny szary kolor dla etykiety */
margin-right: 5px; /* Odstęp od wartości */
}
.lesson-duration-value {
color: #6c757d; /* Ciemny szary kolor dla wartości */
font-weight: 700; /* Pogrubienie dla wartości */
}
Observation
Observation is a crucial initial step in a musculoskeletal examination. It offers immediate visual information about the patient’s condition, guiding the subsequent steps of the physical exam. Through observation, clinicians can identify abnormalities in posture, muscle bulk, symmetry, and joint alignment.
Skin Conditions
Observing the condition of the skin overlying the musculoskeletal structures is essential because skin changes can reflect underlying systemic diseases, local trauma, or infections.
- Erythema: This may suggest inflammation of underlying tissues, such as in the case of arthritis, cellulitis, or bursitis. In autoimmune diseases like lupus, erythema can be widespread, especially over sun-exposed areas.
- Ecchymosis: Bruising may indicate recent trauma or bleeding disorders. For example, a large bruise around the knee might suggest ligamentous injury, such as in an anterior cruciate ligament (ACL) tear.
- Ulceration and Rash: Open sores or persistent rashes may suggest systemic diseases like diabetes or vasculitis, which can impair circulation and lead to delayed wound healing. Rashes in specific patterns can also suggest dermatomyositis, a condition involving both muscle inflammation and skin involvement.
- Skin Atrophy and Sclerosis: Thinning of the skin can indicate chronic disuse or vascular insufficiency, while thickening and hardening (sclerosis) may suggest conditions like scleroderma, which involves the skin, connective tissues, and often the musculoskeletal system.
Joint Deformities
Assessing joint alignment and structure provides insight into the integrity of the skeletal system. Common deformities to look for include:
- Subluxation or Dislocation: Subluxation refers to partial dislocation, while dislocation means complete loss of joint alignment. These findings are common in traumatic injuries, rheumatoid arthritis, or connective tissue disorders like Ehlers-Danlos syndrome.
- Swelling and Effusion: Swelling in the joint may be caused by fluid accumulation (effusion), which can be seen in conditions such as osteoarthritis, rheumatoid arthritis, or gout. Observation of unilateral or bilateral swelling should raise suspicion of systemic inflammatory conditions or localized joint pathology.
- Misalignment: Deformities like genu valgum (knock knees) or genu varum (bow legs) suggest congenital or acquired bone deformities. Observation of hip dysplasia, scoliosis (lateral curvature of the spine), or kyphosis (hunched posture) can indicate structural abnormalities that require further evaluation.
Muscle Abnormalities
Abnormalities in muscle size, contour, and symmetry are essential diagnostic clues.
- Atrophy: Muscle wasting is a key indicator of disuse, nerve damage, or systemic muscle disease. It may be localized, such as in quadriceps atrophy following knee injury, or generalized, as seen in conditions like muscular dystrophy.
- Hypertrophy: Increased muscle size, which may be compensatory due to overuse or pseudohypertrophy, where muscle is replaced by fibrotic tissue or fat, is observed in conditions like Duchenne muscular dystrophy.
- Fasciculations: Involuntary muscle twitches, often seen in the hands, arms, or legs, can be a sign of lower motor neuron pathology, such as in amyotrophic lateral sclerosis (ALS) or peripheral neuropathies.
- Involuntary Movements: Tremors (rhythmic shaking), chorea (jerky, involuntary movements), and myoclonus (shock-like contractions) may indicate neurological disorders such as Parkinson’s disease, Huntington’s disease, or epilepsy.
Postural Abnormalities
The overall posture of the patient is critical in evaluating musculoskeletal health.
- Scoliosis: The presence of an abnormal lateral curvature of the spine can suggest scoliosis, which may be congenital or idiopathic.
- Kyphosis: A hunched upper back can indicate thoracic vertebral collapse, often associated with osteoporosis or degenerative disc disease.
- Lordosis: Exaggerated lumbar curvature is common in individuals with weak core muscles, obesity, or conditions like pregnancy.
Palpation
Palpation involves using the hands to feel specific musculoskeletal structures, allowing for the detection of tenderness, warmth, swelling, and abnormalities in texture.
Tenderness
Palpation of muscles, bones, and joints for tenderness can localize pain and help differentiate between musculoskeletal and systemic causes of discomfort.
- Localized tenderness may suggest tendinitis, muscle strain, or localized trauma. For instance, tenderness over the lateral epicondyle of the elbow is characteristic of lateral epicondylitis (tennis elbow).
- Diffuse tenderness could indicate systemic inflammatory conditions, such as polymyalgia rheumatica or fibromyalgia.
Swelling
- Edema or effusion around joints is often a sign of inflammation or trauma. Palpation helps determine whether swelling is caused by fluid within the joint (joint effusion), a soft tissue injury (sprain), or inflammatory disease (rheumatoid arthritis).
- Pitting edema indicates fluid retention, often due to systemic conditions like heart failure or venous insufficiency, while non-pitting edema may indicate lymphatic blockage or infection.
Trigger Points
- Trigger points are focal areas of muscle spasm or hyperirritability, typically found in patients with myofascial pain syndrome. Applying pressure to these points often reproduces pain in a specific pattern or referred area.
Joint Abnormalities
- Crepitus: A palpable grating sensation during joint movement may indicate cartilage degeneration or damage, such as in osteoarthritis.
- Effusion: Fluid in the joint, detected as a spongy or fluctuating sensation, is often due to inflammatory conditions like septic arthritis, hemarthrosis, or crystal-induced arthropathy (e.g., gout).
- Bony prominences: Enlargement of bony structures may indicate osteophytes (bone spurs) commonly found in osteoarthritis, or fractures in trauma cases.
Range of Motion (ROM) Testing
Evaluating both active and passive range of motion is essential in determining joint functionality, muscle flexibility, and the integrity of soft tissues like tendons and ligaments.
Active ROM
This involves the patient voluntarily moving their joints. It assesses muscle strength, joint mobility, and the patient’s willingness or ability to move the joint through its normal range.
- Clinical significance: Reduced active ROM may indicate muscle weakness, pain, mechanical restriction due to joint pathology, or neurological impairment.
- Example: Limited active shoulder abduction may indicate rotator cuff pathology, adhesive capsulitis (frozen shoulder), or nerve impingement.
Passive ROM
Here, the clinician moves the joint without patient effort, providing an indication of the full potential range of movement, independent of muscle strength.
- Clinical significance: If passive ROM is preserved but active ROM is restricted, it often suggests muscle weakness or a mechanical issue, such as tendon pathology. Conversely, reduced passive ROM may indicate joint stiffness due to arthritis, capsulitis, or ligamentous contracture.
- Example: A discrepancy between active and passive ROM in the hip joint may suggest conditions like hip osteoarthritis or ligamentous injury.
Abnormal Findings in ROM
- Hyperflexibility or hypermobility: Excessive movement beyond the normal range, often due to ligamentous laxity or connective tissue disorders like Marfan syndrome or Ehlers-Danlos syndrome.
- Hypomobility: Restricted movement due to conditions such as osteoarthritis, rheumatoid arthritis, or joint contracture following injury.
Muscle Strength Testing
Muscle strength testing helps assess the integrity of the muscles, nerves, and tendons responsible for movement. The Lovett scale is commonly used to evaluate muscle strength:
- Grade 0: No muscle contraction observed.
- Grade 1: Flicker of muscle contraction, but no movement.
- Grade 2: Full ROM without gravity (gravity eliminated).
- Grade 3: Full ROM against gravity, but without resistance.
- Grade 4: Full ROM against some resistance, but weaker than normal.
- Grade 5: Full ROM against full resistance (normal strength).
Common Muscle Strength Tests
Upper Extremities
- Shoulder Abduction: Test the deltoid muscles by having the patient raise their arms out to the sides against resistance. Weakness may indicate a rotator cuff injury, nerve impingement, or brachial plexus injury.
- Elbow Flexion and Extension: The biceps and triceps are tested by having the patient flex (bend) and extend (straighten) the elbow against resistance. Weakness here could indicate nerve injury, such as damage to the radial or musculocutaneous nerves, or localized muscle injury.
- Wrist Flexion and Extension: Test wrist flexor and extensor muscles by asking the patient to bend and straighten the wrist against resistance. Weakness can point to tendon or nerve injuries, such as carpal tunnel syndrome (median nerve compression).
Lower Extremities
- Hip Flexion and Extension: Assess the iliopsoas (hip flexors) and gluteus maximus (hip extensors) by having the patient lift and extend their leg while supine, respectively. Weakness may indicate lumbar radiculopathy or hip pathology.
- Knee Extension and Flexion: The quadriceps are tested by resisting knee extension, while hamstring strength is tested by resisting knee flexion. Weakness in these muscles can suggest injury to the femoral or sciatic nerves or direct muscle pathology.
- Ankle Dorsiflexion and Plantarflexion: The tibialis anterior (dorsiflexion) and gastrocnemius/soleus complex (plantarflexion) are tested by resisting upward or downward foot movement. Weakness here might indicate sciatic nerve involvement or compartment syndrome