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”,
“Skin Biopsy”: “Biopsja skóry”,
“Excisional Biopsy”: “Biopsja wycięciowa”,
“Incisional Biopsy”: “Biopsja nacięciowa”,
“Punch Biopsy”: “Biopsja śródskórna”,
“Histopathological Analysis”: “Analiza histopatologiczna”,
“Skin Cancer”: “Rak skóry”,
“Melanoma”: “Czerniak”,
“Basal Cell Carcinoma”: “Rak podstawnokomórkowy”,
“Squamous Cell Carcinoma”: “Rak płaskonabłonkowy”,
“Psoriasis”: “Łuszczyca”,
“Dermatitis”: “Zapalenie skóry”,
“Fungal Infections”: “Infekcje grzybicze”,
“Dermatophytes”: “Dermatofity”,
“Tinea”: “Grzybica”,
“Ringworm”: “Grzybica”,
“Candidiasis”: “Kandydoza (drożdżyca)”,
“Autoimmune Skin Diseases”: “Autoimmunologiczne choroby skóry”,
“Lupus”: “Toczeń”,
“Patch Testing”: “Testy płatkowe”,
“Allergic Contact Dermatitis”: “Alergiczne kontaktowe zapalenie skóry”,
“Sensitivities”: “Nadwrażliwość”,
“Wood’s Lamp Examination”: “Badanie lampą Wooda”,
“Ultraviolet Light”: “Światło ultrafioletowe (UV)”,
“Vitiligo”: “Bielactwo”,
“Bacterial Infections”: “Infekcje bakteryjne”,
“Erythrasma”: “Łupież rumieniowy”,
“Dermoscopy”: “Dermatoskopia”,
“Melanoma and Other Skin Cancers”: “Czerniak i inne nowotwory skóry”,
“Benign Moles”: “Łagodne znamiona barwnikowe”,
“Nevi”: “Znamiona barwnikowe”,
“Seborrheic Keratosis”: “Rogowacenie łojotokowe”,
“Vascular Lesions”: “Zmiany naczyniowe”,
“Skin Culture”: “Posiew skóry”,
“Cellulitis”: “Zapalenie tkanki łącznej”,
“Impetigo”: “Liszajec zakaźny”,
“Direct Immunofluorescence”: “Bezpośrednia immunofluorescencja”,
“Indirect Immunofluorescence”: “Pośrednia immunofluorescencja”,
“Pemphigus Vulgaris”: “Pęcherzyca zwykła”,
“Bullous Pemphigoid”: “Pemfigoid pęcherzowy”,
“Lupus Erythematosus”: “Toczeń rumieniowaty”,
“Dermatitis herpetiformis”: “Opryszczkowate zapalenie skóry”,
“Nail and Hair Biopsy”: “Biopsja paznokci i włosów”,
“Onychomycosis”: “Grzybica paznokci”,
“Alopecia Areata”: “Łysienie plackowate”,
“Nail Psoriasis”: “Łuszczyca paznokci”,
“Nail Tumors”: “Guzy paznokci”,
“Herpes Simplex”: “Opryszczka pospolita (HSV)”,
“Sample”: “Próbka”,
“Refer the patient”: “Skieruj pacjenta”,
“Skin tissue”: “Tkanka skórna”,
“Examination”: “Badanie”,
“Local anesthesia”: “Znieczulenie miejscowe”,
“Administered”: “Podane”,
“Lesion”: “Zmiana skórna”,
“Excised”: “Wycięta”,
“Patches”: “Plamy”,
“Fragrances”: “Substancje zapachowe”,
“Fluoresce”: “Fluoryzować”,
“Magnified level”: “Poziom powiększenia”,
“Skin cancers”: “Nowotwory skóry”,
“Bacterial”: “Bakteryjne”,
“Fungal”: “Grzybicze”,
“Viral”: “Wirusowe”,
“Sterile swab”: “Jałowy wymaz”,
“Scraping method”: “Metoda zeskrobin”,
“Viral infections”: “Zakażenia wirusowe”,
“Antibodies”: “Przeciwciała”,
“Fluorescent dyes”: “Barwniki fluorescencyjne”,
“Lupus erythematosus”: “Toczeń rumieniowaty”,
“Dermatitis herpetiformis”: “Opryszczkowate zapalenie skóry”,
“Infections”: “Infekcje”,
“Tumors”: “Guzy”,
“Inflammatory diseases”: “Choroby zapalne”
};
// 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);
});
});
Szacowany czas lekcji:
5 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 */
}
Podświetlanie tekstu z notatkami
body {
margin: 0;
padding: 0;
font-family: Arial, sans-serif;
}
.highlight {
background-color: #cce7ff; /* Kolor podświetlenia bez notatki */
position: relative;
display: inline;
}
.highlight.with-note {
background-color: #ffeb3b; /* Kolor podświetlenia z notatką */
}
.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; /* Domyślnie ukryta */
}
.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”, () => {
/**
* Funkcja do sprawdzania, czy element jest nagłówkiem.
*/
const isHeaderElement = (node) => {
while (node) {
if (node.nodeType === 1 && node.tagName.match(/^H[1-5]$/)) {
return true;
}
node = node.parentNode;
}
return false;
};
/**
* Funkcja do sprawdzania, czy element należy do tabeli.
*/
const isInsideTable = (node) => {
while (node) {
if (node.tagName === “TD” || node.tagName === “TH”) {
return node;
}
node = node.parentNode;
}
return null;
};
/**
* Funkcja do walidacji zaznaczenia.
* Blokuje zaznaczenie tekstu z różnych komórek tabeli oraz nagłówków z tekstem.
*/
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);
// Blokowanie zaznaczenia nagłówków z tekstem
if (startInHeader !== endInHeader) {
return false;
}
const startCell = isInsideTable(startContainer);
const endCell = isInsideTable(endContainer);
// Blokuj zaznaczenie, jeśli obejmuje różne komórki tabeli
if (startCell && endCell && startCell !== endCell) {
return false;
}
return true;
};
/**
* Funkcja do podświetlania zaznaczonego tekstu.
*/
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 = “Edytuj notatkę”;
noteControls.appendChild(editNote);
const removeHighlight = document.createElement(“span”);
removeHighlight.textContent = “x”;
removeHighlight.title = “Usuń podświetlenie”;
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);
};
// Wyświetl przyciski na 3 sekundy po podświetleniu
hideControlsAndNoteAfterDelay();
highlight.addEventListener(“click”, () => {
noteControls.classList.add(“visible”);
if (noteBox) noteBox.style.display = “block”;
hideControlsAndNoteAfterDelay();
});
editNote.addEventListener(“click”, () => {
const noteText = prompt(“Dodaj lub edytuj notatkę:”, 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();
});
};
/**
* Obsługa zdarzenia `mouseup` – walidacja zaznaczenia.
*/
document.body.addEventListener(“mouseup”, () => {
const selection = window.getSelection();
if (selection.rangeCount > 0 && selection.toString().trim()) {
if (!isSelectionValid(selection)) {
alert(“Nie można zaznaczać tekstu z różnych komórek tabeli lub nagłówków z tekstem!”);
selection.removeAllRanges();
return;
}
const range = selection.getRangeAt(0);
wrapTextWithHighlight(range);
selection.removeAllRanges();
}
});
});
Diagnostic Tests and Procedures
Diagnosing integumentary system diseases involves clinical evaluations and tests to assess skin, hair, and nail health. These tests are essential for identifying infections, inflammatory conditions, autoimmune disorders, and skin cancers. After the initial examination, the physician may refer the patient for further diagnostic procedures to ensure a thorough assessment. Common diagnostic tests and procedures include:
Skin Biopsy
A skin biopsy is a medical procedure that involves removing a small sample of skin tissue for examination under a microscope. This procedure is essential for diagnosing various skin conditions, including cancers, infections, and inflammatory diseases. The biopsy is typically performed after local anesthesia is administered to minimize discomfort. There are different methods for obtaining a skin biopsy, including excisional biopsy (removing an entire lesion), incisional biopsy (removing a portion of the lesion), and punch biopsy (using a circular blade to remove a small cylindrical sample). The excised sample is then sent to a laboratory for histopathological analysis, where it is examined for abnormal cellular structures and characteristics.
Common Conditions Assessed with Skin Biopsy:
- Skin cancer (melanoma, basal cell carcinoma, squamous cell carcinoma)
- Psoriasis
- Dermatitis
- Fungal infections (e.g., dermatophytes)
- Autoimmune skin diseases (e.g., lupus)
Patch Testing
Patch testing is an important diagnostic tool used to identify allergic contact dermatitis by determining specific substances that trigger skin reactions. Small patches containing potential allergens are applied to the patient’s skin, typically on the back, and remain in place for 48 hours. After this period, the skin is assessed for any reactions, which helps pinpoint the allergens responsible for allergic responses.
Common Conditions Assessed with Patch Testing:
- Allergic contact dermatitis
- Sensitivities to metals, fragrances, latex, and chemicals
Wood’s Lamp Examination
The Wood’s lamp examination is a non-invasive diagnostic technique that utilizes ultraviolet light to identify certain skin conditions. In a darkened room, a Wood’s lamp is used to illuminate the skin, causing specific infections or pigment disorders to fluoresce. This examination is useful for detecting conditions that may not be visible under normal lighting conditions.
Common Conditions Assessed with Wood’s Lamp Examination
- Fungal infections (e.g.,ringworm, tinea)
- Vitiligo
- Bacterial infections (e.g., erythrasma)
Dermoscopy
Dermoscopy is a valuable, non-invasive imaging technique that allows for the detailed examination of skin lesions, particularly pigmented ones, at a magnified level. By using a dermatoscope—a magnifying tool with a light—healthcare professionals can obtain a clearer view of the skin’s surface structures. This technique aids in the early detection and diagnosis of skin cancers and other dermatological disorders.
Common Lesions Assessed with Dermoscopy:
- Melanoma and other skin cancers
- Benign moles (nevi)
- Seborrheic keratosis
- Vascular lesions
Skin Culture
A skin culture is used to detect bacterial, fungal, or viral infections. During this procedure, samples are taken from the affected area of the skin using a sterile swab or scraping method. The sample is then cultured in a laboratory to identify the specific organism responsible for the infection, which is crucial for determining appropriate treatment.
Common Conditions Assessed with Skin Culture:
- Bacterial infections (e.g., cellulitis, impetigo)
- Fungal infections (e.g., ringworm, candidiasis)
- Viral infections (e.g., herpes simplex)
Direct and Indirect Immunofluorescence
Immunofluorescence testing is utilized to diagnose autoimmune skin diseases by detecting antibodies that target skin cells. This method includes two approaches: direct immunofluorescence, where a skin biopsy is taken and treated with fluorescent dyes to visualize antibodies deposited in the skin; and indirect immunofluorescence, which involves testing a blood sample for circulating antibodies that react against skin proteins.
Common Conditions Assessed with Immunofluorescence Testing:
- Pemphigus vulgaris
- Bullous pemphigoid
- Lupus erythematosus
- Dermatitis herpetiformis
Nail and Hair Biopsy
Nail and hair biopsies are diagnostic procedures used to assess disorders affecting these parts of the integumentary system, including infections, tumors, and inflammatory diseases. A small portion of the affected nail or hair is removed for microscopic examination, typically using a punch biopsy tool.
Common Conditions Assessed with Nail and Hair Biopsy:
- Onychomycosis (fungal infection of the nails)
- Alopecia areata
- Nail psoriasis
- Nail tumors