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 = {
“Diagnostic tests and procedures”: “Testy i procedury diagnostyczne”,
“Clinical evaluations”: “Oceny kliniczne”,
“Muscle function”: “Funkcja mięśni”,
“Structural abnormalities”: “Nieprawidłowości strukturalne”,
“Neuromuscular disorders”: “Choroby nerwowo-mięśniowe”,
“Refer the patient”: “Skierować pacjenta”,
“Electromyography (EMG)”: “Elektromiografia (EMG)”,
“Electrical activity of muscles”: “Aktywność elektryczna mięśni”,
“Nerve dysfunction”: “Dysfunkcja nerwów”,
“Primary muscle disease”: “Pierwotna choroba mięśni”,
“Needle electrode”: “Elektroda igłowa”,
“Nerve conduction studies”: “Badania przewodnictwa nerwowego”,
“Peripheral neuropathy”: “Neuropatia obwodowa”,
“Muscular dystrophy”: “Dystrofia mięśniowa”,
“Amyotrophic lateral sclerosis (ALS)”: “Stwardnienie zanikowe boczne (SLA)”,
“Carpal tunnel syndrome”: “Zespół cieśni nadgarstka”,
“Radiculopathy”: “Radikulopatia (zespół korzeniowy)”,
“Nerve conduction study (NCS)”: “Badanie przewodnictwa nerwowego (NCS)”,
“Electrical impulses”: “Impulsy elektryczne”,
“Myasthenia gravis”: “Miastenia rzekomoporaźna”,
“Guillain-Barré syndrome”: “Zespół Guillaina-Barrégo”,
“Muscle biopsy”: “Biopsja mięśni”,
“Microscopic analysis”: “Analiza mikroskopowa”,
“Local anesthesia”: “Znieczulenie miejscowe”,
“Metabolic muscle disorders”: “Metaboliczne choroby mięśni”,
“Genetic muscle disorders”: “Genetyczne choroby mięśni”,
“Polymyositis”: “Zapalenie wielomięśniowe”,
“Dermatomyositis”: “Zapalenie skórno-mięśniowe”,
“Mitochondrial myopathies”: “Miopatie mitochondrialne”,
“Inclusion body myositis”: “Zapalenie mięśni z wtrętami”,
“Creatine kinase (CK) blood test”: “Badanie poziomu kinazy kreatynowej (CK) we krwi”,
“Enzyme levels”: “Poziomy enzymów”,
“Rhabdomyolysis”: “Rabdomioliza”,
“Muscle injury”: “Uszkodzenie mięśni”,
“Trauma”: “Uraz”,
“Magnetic Resonance Imaging (MRI)”: “Rezonans magnetyczny (MRI)”,
“Soft tissue tumors”: “Guzy tkanek miękkich”,
“Benign tumors”: “Guzy łagodne”,
“Malignant tumors”: “Guzy złośliwe”,
“Inflammatory changes”: “Zmiany zapalne”,
“Muscle tears”: “Naderwania mięśni”,
“Tendinitis”: “Zapalenie ścięgien”,
“Inflammatory myopathies”: “Zapalenia mięśni”,
“Ultrasound of the muscles”: “USG mięśni”,
“Sound waves”: “Fale dźwiękowe”,
“Muscle strains”: “Naciągnięcia mięśni”,
“Tendon injuries”: “Uszkodzenia ścięgien”,
“Hematomas”: “Krwiaki”,
“Soft tissue masses”: “Guzki tkanek miękkich”,
“Genetic testing”: “Testy genetyczne”,
“Hereditary muscle disorders”: “Dziedziczne choroby mięśni”,
“Genetic mutations”: “Mutacje genetyczne”,
“Duchenne muscular dystrophy”: “Dystrofia mięśniowa Duchenne’a”,
“Becker muscular dystrophy”: “Dystrofia mięśniowa Beckera”,
“Limb-girdle muscular dystrophy”: “Dystrofia mięśniowa obręczowo-kończynowa”,
“Myotonic dystrophy”: “Dystrofia miotoniczna”,
“Facioscapulohumeral muscular dystrophy”: “Dystrofia mięśniowa twarzowo-łopatkowo-ramienna”,
“Exercise stress test”: “Test wysiłkowy”,
“Cardiovascular response”: “Reakcja układu sercowo-naczyniowego”,
“Exercise-induced muscle weakness”: “Osłabienie mięśni wywołane wysiłkiem”,
“Lactate and ammonia blood test”: “Badanie poziomu mleczanu i amoniaku we krwi”,
“Muscle energy metabolism”: “Metabolizm energetyczny mięśni”,
“McArdle disease”: “Choroba McArdle’a (glikogenoza typu V)”,
“Mitochondrial disorders”: “Zaburzenia mitochondrialne”,
“Muscle weakness”: “Osłabienie mięśni”,
“Contracts”: “Kurczy się”,
“Nerve pathway”: “Droga nerwowa”,
“Biopsy needle”: “Igła biopsyjna”,
“Creatine kinase”: “Kinaza kreatynowa”,
“Elevated”: “Podwyższony”,
“Inflammation”: “Zapalenie”,
“Heart attack”: “Zawał serca”,
“Non-invasive imaging technique”: “Nieinwazyjna technika obrazowania”,
“Soft tissues”: “Tkanki miękkie”,
“Magnetic fields”: “Pola magnetyczne”,
“Radio waves”: “Fale radiowe”,
“Aligns hydrogen protons”: “Ustawia protony wodoru”,
“Radiofrequency pulses”: “Pulsacje radiowe”,
“Muscle fibers”: “Włókna mięśniowe”,
“Tendons”: “Ścięgna”,
“Inflammation”: “Zapalenie”,
“Injuries”: “Urazy”,
“Tumors”: “Guzy”,
“Contrast agents”: “Środki kontrastowe”,
“Gadolinium-based compounds”: “Związki gadolinowe”,
“Administered intravenously”: “Podawane dożylnie”,
“Enhance image clarity”: “Poprawiają jakość obrazu”,
“Differentiate”: “Różnicować”,
“Transducer”: “Głowica ultrasonograficzna”,
“Acute injuries”: “Ostre urazy”,
“Absence of radiation exposure”: “Brak ekspozycji na promieniowanie”,
“Muscle degeneration”: “Zwyrodnienie mięśni”,
“Saliva sample”: “Próbka śliny”,
“Inherited muscle disorders”: “Dziedziczne choroby mięśni”,
“Muscle weakness”: “Osłabienie mięśni”,
“Fatigue”: “Zmęczenie”,
“Treadmill”: “Bieżnia”,
“Lactate”: “Mleczan”,
“Ammonia”: “Amoniak”,
“Blood samples”: “Próbki krwi”
};
// 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:
17 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 */
}
Diagnostic Tests and Procedures
Diagnosing muscular system diseases involves clinical evaluations and tests to assess muscle function, detect structural abnormalities, and identify neuromuscular disorders. These tests are essential for understanding conditions affecting muscle strength, tone, and integrity. After an initial examination, physicians may refer the patient for specialized diagnostic procedures to ensure a comprehensive assessment. Common diagnostic tests and procedures include:
Electromyography (EMG)
Electromyography (EMG) is used to evaluate the electrical activity of muscles and diagnose conditions affecting muscle and nerve function. It helps determine whether muscle weakness is due to nerve dysfunction or a primary muscle disease. The test involves inserting a thin needle electrode into the muscle while the patient contracts the muscle. The electrical activity is recorded and analyzed. EMG is often performed alongside nerve conduction studies for a comprehensive assessment of neuromuscular function.
Common Conditions Assessed with EMG:
- Peripheral neuropathy
- Muscular dystrophy
- Amyotrophic lateral sclerosis (ALS)
- Carpal tunnel syndrome
- Radiculopathy
Nerve Conduction Study (NCS)
Nerve conduction studies measure the speed of electrical impulses traveling through a nerve to evaluate nerve function. Electrodes are placed on the skin along the nerve pathway, and mild electrical pulses are delivered to stimulate the nerve. The test assesses nerve communication with muscles and is often performed alongside EMG.
Common Conditions Assessed with NCS:
- Carpal tunnel syndrome
- Peripheral neuropathy
- Myasthenia gravis
- Guillain-Barré syndrome
- Radiculopathy
Muscle Biopsy
A muscle biopsy involves removing a small sample of muscle tissue for microscopic analysis to diagnose muscle diseases. The procedure is performed under local anesthesia, and the sample is collected using a biopsy needle or scalpel. It is then sent to a lab for detailed examination. This procedure is also useful for identifying metabolic or genetic muscle disorders.
Common Conditions Assessed with Muscle Biopsy:
- Muscular dystrophy
- Polymyositis
- Dermatomyositis
- Mitochondrial myopathies
- Inclusion body myositis
Creatine Kinase (CK) Blood Test
A creatine kinase (CK) blood test measures CK levels, an enzyme released when muscle tissue is damaged. Elevated CK levels indicate muscle injury or inflammation. A blood sample is collected and analyzed in a lab. Intense physical activity can also lead to temporary increases in CK levels, which should be considered when interpreting results.
Common Conditions Assessed with CK Blood Test:
- Rhabdomyolysis
- Muscular dystrophy
- Polymyositis
- Heart attack
- Muscle injury from trauma
Magnetic Resonance Imaging (MRI) of the Muscles
An MRI (Magnetic Resonance Imaging) scan is a non-invasive imaging technique that uses strong magnetic fields and radio waves to produce detailed images of muscles, soft tissues, and other internal structures. The patient lies on a table that slides into the MRI machine, where the magnetic field aligns hydrogen protons in muscle tissues. Radiofrequency pulses disturb this alignment, and as the protons return to their original state, they emit signals that are processed into detailed images of muscle fibers, tendons, and surrounding structures.
To improve the visualization of muscle abnormalities, such as inflammation, injuries, or tumors, contrast agents, like gadolinium-based compounds, may be administered intravenously. These agents enhance image clarity, helping to differentiate between healthy and damaged muscle tissue.
Common Conditions Assessed with Muscle MRI:
- Muscle tears
- Tendinitis
- Muscular dystrophy
- Soft tissue tumors
- Inflammatory myopathies
Ultrasound of the Muscles
Muscle ultrasound uses sound waves to create real-time images of muscles, tendons, and surrounding soft tissues. A handheld transducer is placed over the skin to capture images, useful for diagnosing and monitoring muscle injuries. Ultrasound is preferred for the assessment of acute injuries due to its accessibility and absence of radiation exposure
Common Conditions Assessed with Muscle Ultrasound:
- Muscle strains
- Tendon injuries
- Hematomas
- Muscle degeneration
- Soft tissue masses
Genetic Testing
Genetic testing identifies mutations causing hereditary muscle disorders. A blood or saliva sample is analyzed to detect specific genetic mutations related to muscle conditions. Genetic tests are often part of comprehensive genetic evaluations, especially for inherited muscle disorders.
Common Conditions Assessed with Genetic Testing:
- Duchenne muscular dystrophy
- Becker muscular dystrophy
- Limb-girdle muscular dystrophy
- Myotonic dystrophy
- Facioscapulohumeral muscular dystrophy
Exercise Stress Test
The exercise stress test evaluates muscle and cardiovascular response to physical activity, diagnosing conditions that cause muscle weakness or fatigue during exercise. The patient exercises on a treadmill while heart rate, blood pressure, and oxygen levels are monitored. In some cases, stationary bicycles are used instead of treadmills, particularly for patients with orthopedic issues.
Common Conditions Assessed with Exercise Stress Test:
- Exercise-induced muscle weakness
- Myasthenia gravis
- Mitochondrial myopathies
- Metabolic muscle disorders
Lactate and Ammonia Blood Test
This blood test measures lactate and ammonia levels, which can indicate metabolic muscle disorders affecting energy production. Blood samples are collected at rest and sometimes after exercise to evaluate muscle energy metabolism.
Common Conditions Assessed with Lactate and Ammonia Blood Test:
- Mitochondrial myopathies
- McArdle disease
- Metabolic muscle disorders