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 = {
“sensory nervous system diseases”: “choroby układu nerwowego sensorycznego”,
“diagnostic tests”: “testy diagnostyczne”,
“clinical evaluations”: “oceny kliniczne”,
“sensory organ function”: “funkcja narządów zmysłów”,
“vision”: “wzrok”,
“hearing”: “słuch”,
“smell”: “węch”,
“taste”: “smak”,
“touch”: “dotyk”,
“sensory abnormalities”: “nieprawidłowości sensoryczne”,
“nerve damage”: “uszkodzenie nerwów”,
“perception”: “percepcja”,
“specialized imaging”: “obrazowanie specjalistyczne”,
“electrophysiological tests”: “testy elektrofizjologiczne”,
“laboratory analyses”: “analizy laboratoryjne”,
“sensory evaluations”: “oceny sensoryczne”,
“visual field testing”: “badanie pola widzenia”,
“peripheral vision”: “widzenie peryferyjne”,
“central vision”: “widzenie centralne”,
“visual pathways”: “szlaki wzrokowe”,
“optic nerve damage”: “uszkodzenie nerwu wzrokowego”,
“visual field deficits”: “ubytki pola widzenia”,
“glaucoma”: “jaskra”,
“optic neuritis”: “zapalenie nerwu wzrokowego”,
“retinal disease”: “choroba siatkówki”,
“stroke-related vision loss”: “utrata wzroku związana z udarem”,
“brain tumors”: “guzy mózgu”,
“audiometry”: “audiometria”,
“hearing sensitivity”: “wrażliwość słuchu”,
“frequencies”: “częstotliwości”,
“hearing loss”: “utrata słuchu”,
“auditory nerve disorders”: “zaburzenia nerwu słuchowego”,
“pure-tone audiometry”: “audiometria tonalna”,
“speech audiometry”: “audiometria mowy”,
“tympanometry”: “tympanometria”,
“sensorineural hearing loss”: “odbiorcze uszkodzenie słuchu”,
“conductive hearing loss”: “przewodzeniowe uszkodzenie słuchu”,
“tinnitus”: “szumy uszne”,
“acoustic neuroma”: “nerwiak akustyczny”,
“otosclerosis”: “otoskleroza”,
“olfactory testing”: “badanie węchu”,
“olfactory nerve”: “nerw węchowy”,
“nasal passages”: “drogi nosowe”,
“odors”: “zapachy”,
“olfactory dysfunction”: “dysfunkcja węchowa”,
“anosmia”: “anosmia”,
“Parkinson’s disease”: “choroba Parkinsona”,
“COVID-19 related smell loss”: “utrata węchu związana z COVID-19”,
“head trauma”: “uraz głowy”,
“sinus infections”: “infekcje zatok”,
“gustatory testing”: “badanie smaku”,
“taste receptors”: “receptory smakowe”,
“taste sensation”: “odczucie smaku”,
“taste stimuli”: “bodźce smakowe”,
“ageusia”: “ageuzja”,
“nutritional deficiencies”: “niedobory żywieniowe”,
“diabetes-related taste loss”: “utrata smaku związana z cukrzycą”,
“neurological conditions”: “stany neurologiczne”,
“Bell’s palsy”: “porażenie Bella”,
“head and neck injuries”: “urazy głowy i szyi”,
“optical coherence tomography (OCT)”: “optyczna tomografia koherentna”,
“non-invasive imaging technique”: “nieinwazyjna technika obrazowania”,
“retina”: “siatkówka”,
“optic nerve”: “nerw wzrokowy”,
“retinal diseases”: “choroby siatkówki”,
“optic nerve damage”: “uszkodzenie nerwu wzrokowego”,
“macular degeneration”: “zwyrodnienie plamki żółtej”,
“diabetic retinopathy”: “retinopatia cukrzycowa”,
“retinal detachment”: “odwarstwienie siatkówki”,
“optic neuropathy”: “neuropatia nerwu wzrokowego”,
“vestibular testing”: “badanie przedsionkowe”,
“balance”: “równowaga”,
“inner ear function”: “funkcja ucha wewnętrznego”,
“caloric test”: “test kaloryczny”,
“vestibular evoked myogenic potentials (VEMP)”: “przedsionkowe potencjały wywołane mięśniowe “,
“balance disorders”: “zaburzenia równowagi”,
“inner ear dysfunctions”: “dysfunkcje ucha wewnętrznego”,
“vertigo”: “zawroty głowy”,
“Meniere’s disease”: “choroba Meniere’a”,
“vestibular neuritis”: “zapalenie nerwu przedsionkowego”,
“benign paroxysmal positional vertigo (BPPV)”: “łagodne napadowe położeniowe zawroty głowy”,
“labyrinthitis”: “zapalenie błędnika”,
“skin sensitivity testing”: “badanie wrażliwości skóry”,
“skin sensation”: “odczucie skórne”,
“touch”: “dotyk”,
“temperature”: “temperatura”,
“pain”: “ból”,
“monofilaments”: “monowłókna”,
“thermal probes”: “sondy termiczne”,
“sensory nerve damage”: “uszkodzenie nerwów sensorycznych”,
“neuropathy”: “neuropatia”,
“diabetic neuropathy”: “neuropatia cukrzycowa”,
“peripheral neuropathy”: “neuropatia obwodowa”,
“spinal cord injuries”: “urazy rdzenia kręgowego”,
“stroke-related sensory loss”: “utrata czucia związana z udarem”,
“multiple sclerosis”: “stwardnienie rozsiane”,
“brainstem auditory evoked potentials (BAEP)”: “słuchowe potencjały wywołane pnia mózgu “,
“auditory nerve”: “nerw słuchowy”,
“brainstem response”: “odpowiedź pnia mózgu”,
“hearing pathways”: “szlaki słuchowe”,
“brainstem lesions”: “zmiany w pniu mózgu”,
“genetic testing”: “badania genetyczne”,
“hereditary sensory disorders”: “dziedziczne zaburzenia sensoryczne”,
“congenital sensory conditions”: “wrodzone zaburzenia sensoryczne”,
“Usher syndrome”: “zespół Ushera”,
“retinitis pigmentosa”: “barwnikowe zwyrodnienie siatkówki”,
“congenital deafness”: “wrodzona głuchota”,
“hereditary optic neuropathy”: “dziedziczna neuropatia nerwu wzrokowego”
};
// 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:
3 minuty
.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 sensory nervous system diseases involves clinical evaluations and diagnostic tests to assess sensory organ function, including vision, hearing, smell, taste, and touch. These tests are essential for detecting sensory abnormalities, nerve damage, and conditions affecting perception. Physicians may refer patients for specialized imaging, electrophysiological tests, or laboratory analyses, along with specific sensory evaluations to ensure a comprehensive assessment. Common diagnostic tests and procedures include:
Visual Field Testing
Visual field testing assesses a patient’s peripheral and central vision, helping to detect abnormalities in visual pathways or optic nerve damage. This test is critical for diagnosing visual field deficits and conditions affecting vision.
Common Conditions Assessed with Visual Field Testing:
- Glaucoma
- Optic neuritis
- Retinal disease
- Stroke-related vision loss
- Brain tumors
Audiometry and Hearing Tests
Audiometry measures hearing sensitivity across various frequencies and is essential for diagnosing hearing loss and auditory nerve disorders. These tests include pure-tone audiometry, speech audiometry, and tympanometry.
Common Conditions Assessed with Audiometry:
- Sensorineural hearing loss
- Conductive hearing loss
- Tinnitus
- Acoustic neuroma
- Otosclerosis
Olfactory Testing (Smell Tests)
Olfactory tests assess the sense of smell and can help identify conditions affecting the olfactory nerve or nasal passages. Patients are asked to identify specific odors or scents, which can reveal olfactory dysfunction.
Common Conditions Assessed with Olfactory Testing:
- Anosmia (loss of smell)
- Parkinson’s disease
- COVID-19 related smell loss
- Head trauma
- Sinus infections
Gustatory Testing (Taste Tests)
Gustatory tests evaluate the sense of taste, which can be affected by damage to taste receptors or nerves responsible for taste sensation. This is typically assessed by exposing patients to different taste stimuli.
Common Conditions Assessed with Gustatory Testing:
- Ageusia (loss of taste)
- Nutritional deficiencies
- Diabetes-related taste loss
- Neurological conditions (e.g., Bell’s palsy)
- Head and neck injuries
Optical Coherence Tomography (OCT)
OCT is a non-invasive imaging technique used to obtain detailed images of the retina, optic nerve, and other structures of the eye. This test is valuable for diagnosing retinal diseases and optic nerve damage.
Common Conditions Assessed with OCT:
- Glaucoma
- Macular degeneration
- Diabetic retinopathy
- Retinal detachment
- Optic neuropathy
Vestibular Testing (Balance Tests)
Vestibular tests assess balance and inner ear function, including tests like the caloric test and vestibular evoked myogenic potentials (VEMP). These tests are crucial for diagnosing balance disorders and inner ear dysfunctions.
Common Conditions Assessed with Vestibular Testing:
- Vertigo
- Meniere’s disease
- Vestibular neuritis
- Benign paroxysmal positional vertigo (BPPV)
- Labyrinthitis
Skin Sensitivity Testing
Skin sensitivity tests evaluate the sense of touch, temperature, and pain, often using monofilaments or thermal probes. These tests help identify sensory nerve damage or neuropathy affecting skin sensation.
Common Conditions Assessed with Skin Sensitivity Testing:
- Diabetic neuropathy
- Peripheral neuropathy
- Spinal cord injuries
- Stroke-related sensory loss
- Multiple sclerosis
Brainstem Auditory Evoked Potentials (BAEP)
BAEP is an electrophysiological test that measures auditory nerve and brainstem response to sound stimuli, providing insights into hearing pathways and detecting brainstem or auditory nerve disorders.
Common Conditions Assessed with BAEP:
- Acoustic neuroma
- Multiple sclerosis
- Brainstem lesions
- Sensorineural hearing loss
Genetic Testing for Sensory Disorders
Genetic testing identifies hereditary sensory disorders by analyzing specific genes linked to sensory dysfunction. This testing is essential for diagnosing congenital or inherited sensory conditions.
Common Conditions Assessed with Genetic Testing:
- Usher syndrome
- Retinitis pigmentosa
- Congenital deafness
- Hereditary optic neuropath