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 = {
“immune system examination”: “badanie układu odpornościowego”,
“general inspection”: “ogólna ocena”,
“general appearance”: “ogólny wygląd”,
“fatigue”: “zmęczenie”,
“pallor”: “bladość”,
“cachexia”: “wyniszczenie”,
“chronic infection”: “przewlekła infekcja”,
“malignancy”: “nowotwór złośliwy”,
“immunosuppressive conditions”: “stany immunosupresyjne”,
“malnutrition”: “niedożywienie”,
“fever”: “gorączka”,
“flushed skin”: “zaczerwieniona skóra”,
“sweating”: “pocenie się”,
“lymphadenopathy”: “limfadenopatia”,
“muscle wasting”: “zanik mięśni”,
“systemic inflammation”: “ogólnoustrojowe zapalenie”,
“immune activation”: “aktywacja układu odpornościowego”,
“skin changes”: “zmiany skórne”,
“rashes”: “wysypki”,
“bruising”: “siniaki”,
“ulcerations”: “owrzodzenia”,
“autoimmune diseases”: “choroby autoimmunologiczne”,
“hypersensitivity reactions”: “reakcje nadwrażliwości”,
“butterfly rash”: “rumień motylkowaty”,
“systemic lupus erythematosus”: “toczeń rumieniowaty układowy”,
“urticaria”: “pokrzywka”,
“vasculitic lesions”: “zmiany naczyniowe”,
“petechiae”: “wybroczyny”,
“ecchymoses”: “sińce”,
“platelet abnormalities”: “zaburzenia płytek krwi”,
“immune thrombocytopenia”: “małopłytkowość immunologiczna”,
“dermatitis herpetiformis”: “opryszczkowe zapalenie skóry”,
“celiac disease”: “celiakia”,
“immune-mediated response”: “odpowiedź immunologiczna”,
“lymph node examination”: “badanie węzłów chłonnych”,
“palpation”: “palpacja”,
“cervical lymph nodes”: “węzły chłonne szyjne”,
“axillary lymph nodes”: “węzły chłonne pachowe”,
“inguinal lymph nodes”: “węzły chłonne pachwinowe”,
“supraclavicular lymph nodes”: “węzły chłonne nadobojczykowe”,
“lymphadenopathy”: “limfadenopatia”,
“tender nodes”: “tkliwe węzły chłonne”,
“hard, fixed nodes”: “twarde, nieruchome węzły chłonne”,
“generalized lymphadenopathy”: “uogólniona limfadenopatia”,
“systemic illnesses”: “choroby ogólnoustrojowe”,
“lymphoma”: “chłoniak”,
“HIV”: “HIV”,
“sarcoidosis”: “sarkoidoza”,
“asymmetrical enlargement”: “asymetryczne powiększenie”,
“spleen examination”: “badanie śledziony”,
“splenomegaly”: “powiększenie śledziony”,
“infectious mononucleosis”: “mononukleoza zakaźna”,
“chronic myeloid leukemia”: “przewlekła białaczka szpikowa”,
“Traube’s space”: “przestrzeń Traubego”,
“chronic hemolytic anemias”: “przewlekłe niedokrwistości hemolityczne”,
“autoimmune component”: “składnik autoimmunologiczny”,
“storage diseases”: “choroby spichrzeniowe”,
“joint examination”: “badanie stawów”,
“swelling”: “obrzęk”,
“redness”: “zaczerwienienie”,
“deformities”: “deformacje”,
“rheumatoid arthritis”: “reumatoidalne zapalenie stawów”,
“symmetrical joint swelling”: “symetryczny obrzęk stawów”,
“psoriatic arthritis”: “łuszczycowe zapalenie stawów”,
“dactylitis”: “zapalenie palców”,
“effusion”: “wysięk”,
“range of motion limitations”: “ograniczenia zakresu ruchu”,
“swan neck deformity”: “deformacja łabędziej szyi”,
“boutonnière deformity”: “deformacja guzika”,
“advanced rheumatoid arthritis”: “zaawansowane reumatoidalne zapalenie stawów”,
“skin and nail examination”: “badanie skóry i paznokci”,
“eczema”: “wyprysk”,
“atopic conditions”: “stany atopowe”,
“livedo reticularis”: “livedo siateczkowate”,
“vasculitis”: “zapalenie naczyń”,
“antiphospholipid syndrome”: “zespół antyfosfolipidowy”,
“cutaneous nodules”: “guzki skórne”,
“telangiectasia”: “teleangiektazje”,
“scleroderma”: “twardzina”,
“alopecia areata”: “łysienie plackowate”,
“thyroiditis”: “zapalenie tarczycy”,
“nail pitting”: “dziurkowanie paznokci”,
“clubbing”: “pałeczkowatość palców”,
“chronic hypoxia”: “przewlekła hipoksja”,
“interstitial lung disease”: “śródmiąższowa choroba płuc”,
“splinter hemorrhages”: “wylewy podpaznokciowe”,
“systemic vasculitis”: “ogólnoustrojowe zapalenie naczyń”,
“infective endocarditis”: “zakaźne zapalenie wsierdzia”,
“Beau’s lines”: “linie Beau”,
“systemic illness”: “choroba ogólnoustrojowa”,
“immune stress”: “stres immunologiczny”,
“abdominal examination”: “badanie jamy brzusznej”,
“hepatomegaly”: “powiększenie wątroby”,
“primary biliary cirrhosis”: “pierwotna marskość żółciowa”,
“autoimmune hepatitis”: “autoimmunologiczne zapalenie wątroby”,
“systemic infection”: “infekcja ogólnoustrojowa”,
“hepatosplenomegaly”: “powiększenie wątroby i śledziony”,
“hemophagocytic lymphohistiocytosis”: “hemofagocytarna limfohistiocytoza”,
“Achilles reflex”: “odruch Achillesa”,
“progressive disease”: “postępująca choroba”,
“immune response”: “odpowiedź immunologiczna”,
“cervical”: “szyjne”,
“axillary”: “pachowe”,
“inguinal”: “pachwinowe”,
“supraclavicular”: “nadobojczykowe”,
“size”: “rozmiar”,
“consistency”: “konsystencja”,
“mobility”: “ruchomość”,
“tenderness”: “tkliwość”,
“percussion”: “opukiwanie”,
“dullness”: “stłumienie”,
“lupus”: “toczeń”,
“ulcer”: “owrzodzenie”,
“crackles”: “trzeszczenia”,
“wheezes”: “świsty”,
“eosinophilic pneumonia”: “eozynofilowe zapalenie płuc”,
“pleural friction rub”: “tarcie opłucnowe”,
“pleuritis”: “zapalenie opłucnej”,
“bronchiectasis”: “rozstrzenie oskrzeli”,
“common variable immunodeficiency”: “pospolity zmienny niedobór odporności”,
“Takayasu arteritis”: “zapalenie tętnic Takayasu”,
“pulse rate”: “częstość tętna”,
“tachycardia”: “tachykardia”,
“bradycardia”: “bradykardia”,
“blood pressure”: “ciśnienie krwi”,
“murmurs”: “szmery”,
“Libman-Sacks endocarditis”: “zapalenie wsierdzia Libmana-Sacksa”,
“pulsus paradoxus”: “tętno paradoksalne”,
“pericarditis”: “zapalenie osierdzia”,
“cranial nerves”: “nerwy czaszkowe”,
“neuropathy”: “neuropatia”,
“neuritis”: “zapalenie nerwów”,
“Bell’s palsy”: “porażenie Bella”,
“Guillain-Barré syndrome”: “zespół Guillaina-Barrégo”,
“extraocular movements”: “ruchy gałek ocznych”,
“multiple sclerosis”: “stwardnienie rozsiane”,
“peripheral nerves”: “nerwy obwodowe”,
“peripheral neuropathy”: “neuropatia obwodowa”,
“decreased sensation”: “zmniejszone czucie”,
“altered reflexes”: “zmienione odruchy”,
“muscle weakness”: “osłabienie mięśni”,
“vasculitic neuropathy”: “neuropatia zapalna naczyń”,
“chronic inflammatory demyelinating polyneuropathy”: “przewlekła zapalna polineuropatia demielinizacyjna”,
“lower extremities”: “kończyny dolne”,
“ulcers”: “owrzodzenia”,
“Behçet’s disease”: “choroba Behçeta”,
“thrush”: “pleśniawki”,
“xerostomia”: “kserostomia”,
“Sjögren’s syndrome”: “zespół Sjögrena”,
“gingival hypertrophy”: “przerost dziąseł”,
“cognitive assessment”: “ocena funkcji poznawczych”,
“memory deficits”: “deficyty pamięci”,
“concentration difficulties”: “trudności z koncentracją”,
“mental fatigue”: “zmęczenie psychiczne”,
“confusion”: “dezorientacja”,
“anxiety”: “lęk”,
“depression”: “depresja”
};
// 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:
8 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; /* 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();
}
});
});
Observation
- General Appearance: Begin by evaluating the patient’s general appearance. Look for signs of fatigue, pallor, or cachexia, which may suggest chronic infection, malignancy, or immunosuppressive conditions. Note any obvious signs of malnutrition, as immune deficiencies often coincide with nutritional deficits. Assess for fever, indicated by flushed skin or sweating, which may be a sign of an ongoing infectious or inflammatory process. Also, observe for signs of lymphadenopathy in visible regions like the neck or axillae, and assess for muscle wasting that could indicate prolonged systemic inflammation or immune activation.
- Skin Changes: Inspect the skin carefully for rashes, bruising, or ulcerations. Skin manifestations can be indicative of autoimmune diseases or hypersensitivity reactions. Look for butterfly rash across the cheeks and bridge of the nose, which is typical of systemic lupus erythematosus (SLE). Check for urticaria (hives), which may suggest an allergic response, or vasculitic lesions that present as small red or purple spots and may indicate underlying autoimmune vasculitis. Petechiae or ecchymoses may suggest platelet abnormalities, which could be associated with immune thrombocytopenia. Additionally, dermatitis herpetiformis may be present in celiac disease, indicating an immune-mediated response to gluten.
Lymph Node Examination
- Palpation: Palpate the cervical, axillary, inguinal, and supraclavicular lymph nodes. Assess for size, consistency, mobility, and tenderness. Enlarged lymph nodes (lymphadenopathy) can be a sign of infection, immune response, or malignancy. Tender nodes typically indicate inflammation or infection, whereas hard, fixed nodes may suggest malignancy. Note any generalized lymphadenopathy, which could point to systemic illnesses such as lymphoma, HIV, or sarcoidosis. Also, evaluate for asymmetrical enlargement, which may help localize the site of immune system activation or malignancy.
Spleen Examination
- Palpation and Percussion: The spleen is a critical organ in the immune system, and its examination can reveal a lot about immune function. Begin by palpating the left upper quadrant to assess for splenomegaly. The spleen is normally not palpable; however, in conditions such as infectious mononucleosis, lymphoma, or chronic myeloid leukemia, the spleen may be significantly enlarged. Percuss along the Traube’s space to help identify splenomegaly, noting any dullness which may indicate enlargement. Splenomegaly can also present in chronic hemolytic anemias, which have an autoimmune component, or in storage diseases that involve immune dysfunction.
Joint Examination
- Inspection and Palpation: Assess the joints for swelling, redness, and deformities. Autoimmune conditions like rheumatoid arthritis often present with symmetrical joint swelling and tenderness, particularly in the small joints of the hands and feet. Psoriatic arthritis may present with dactylitis (sausage-like swelling of the fingers or toes). Palpate the joints for warmth and effusion, which can suggest inflammation. Assess for range of motionlimitations that could indicate chronic joint damage due to immune-mediated inflammation. Observe for joint deformities, such as swan neck or boutonnière deformities, which are indicative of advanced rheumatoid arthritis.
Skin and Nail Examination
- Skin Lesions: Inspect the skin for eczema, which may be associated with atopic conditions, or livedo reticularis, a mottled, lace-like discoloration that could be indicative of vasculitis or antiphospholipid syndrome. Look for cutaneous nodules or ulcers that could indicate granulomatous diseases such as sarcoidosis. Examine for telangiectasia, which can occur in scleroderma and other autoimmune conditions. Alopecia areata, a form of patchy hair loss, may be associated with autoimmune diseases like lupus or thyroiditis.
- Nails: Examine the nails for nail pitting, often seen in psoriatic arthritis, or clubbing, which can be associated with chronic hypoxia or interstitial lung disease, sometimes secondary to immune disorders. Splinter hemorrhagesmay indicate systemic vasculitis or infective endocarditis. Additionally, look for Beau’s lines (horizontal depressions in the nail plate), which may suggest periods of systemic illness or immune stress.
Abdominal Examination
- Liver and Spleen: Palpate the right upper quadrant for hepatomegaly, which can occur in immune disorders like primary biliary cirrhosis or autoimmune hepatitis. An enlarged liver may also be a sign of systemic infection or chronic inflammation. As noted earlier, the spleen should also be carefully assessed, as splenomegaly is common in various immune-related conditions. Hepatosplenomegaly, when both the liver and spleen are enlarged, can provide clues to systemic immune activation, such as in infectious mononucleosis or hemophagocytic lymphohistiocytosis.
Respiratory Examination
- Auscultation: Listen to the lungs for any crackles or wheezes. Conditions such as sarcoidosis or eosinophilic pneumonia may present with abnormal lung sounds. Pleural friction rub may indicate pleuritis, commonly associated with systemic lupus erythematosus or other autoimmune disorders. Assess for signs of interstitial lung disease, which can occur in scleroderma or rheumatoid arthritis. Also, evaluate for bronchiectasis, which can be a manifestation of immune deficiencies like common variable immunodeficiency (CVID).
Cardiovascular Examination
- Pulse and Blood Pressure: Measure pulse rate and rhythm. Tachycardia might indicate systemic inflammation or fever, while bradycardia could suggest autonomic dysfunction, which may occur in autoimmune autonomic ganglionopathy. Check blood pressure bilaterally, as differences could suggest large vessel vasculitis, such as Takayasu arteritis. Also, auscultate for murmurs, which might be associated with Libman-Sacks endocarditis in lupus. Additionally, assess for pulsus paradoxus, which can be seen in conditions like pericarditis, sometimes related to autoimmune diseases.
Neurological Examination
- Cranial Nerves: Assess cranial nerve function to evaluate for signs of neuropathy or neuritis that can be seen in autoimmune conditions such as Guillain-Barré syndrome or sarcoidosis. Test for facial asymmetry, which may be present in conditions like Bell’s palsy, sometimes linked to immune dysregulation. Assess extraocular movements for any abnormalities, which could indicate cranial nerve involvement in diseases like multiple sclerosis.
- Peripheral Nerves: Examine for signs of peripheral neuropathy, such as decreased sensation, altered reflexes, or muscle weakness. Conditions like vasculitic neuropathy or chronic inflammatory demyelinating polyneuropathy (CIDP) are examples where peripheral nerve involvement is prominent. Assess the Achilles reflex, which can be diminished in autoimmune neuropathies. Test vibration sense and proprioception, particularly in the lower extremities, to assess for sensory neuropathies that are common in autoimmune diseases.
Oral Examination
- Mucosal Changes: Inspect the oral cavity for ulcers, which are common in Behçet’s disease and systemic lupus erythematosus. Look for thrush, which may suggest immunodeficiency, particularly in patients with HIV/AIDS or those on immunosuppressive therapy. Xerostomia (dry mouth) may be noted in Sjögren’s syndrome, an autoimmune disorder that affects the salivary glands. Additionally, inspect for gingival hypertrophy, which could be related to medications like cyclosporine or underlying inflammatory conditions.
Mental Status and Cognitive Function
- Cognitive Assessment: Evaluate the patient’s mental status, as cognitive dysfunction can occur in chronic immune conditions like systemic lupus erythematosus (often referred to as “lupus fog”) or multiple sclerosis. Assess for memory deficits, concentration difficulties, and mental fatigue. Cognitive impairments may also occur as a result of chronic inflammation or as a side effect of immunosuppressive medications. Be vigilant for signs of confusion, anxiety, or depression, which are often present in patients coping with long-term immune-related illnesses.