Rak tarczycy - raport synoptyczny
Published
January 13, 2026
function typ_histo_opis(typ_histo, typ_histo_komentarz) {
var opis = "Typ histologiczny: ";
if(typ_histo)
{
opis += ` ${typ_histo.type}` ;
opis += typ_histo.subtype ? `, ${typ_histo.subtype}` : ""
opis += typ_histo.ICD_O ? `, ICD-O ${typ_histo.ICD_O}` : ""
} else {
opis += fraza_nie_okreslono
}
if(typ_histo_komentarz)
{
opis += "\nTyp histologiczny - komentarz: " + typ_histo_komentarz;
}
return opis;
}function lokalizacja_opis(lokalizacja) {
let opis = "Lokalizacja: ";
opis += lokalizacja.status.length
? lokalizacja.status.length > 1
? lokalizacja.status.join(", ") + ". "
: lokalizacja.status + ". "
: fraza_nie_okreslono;
opis += lokalizacja.komentarz
? "\nLokalizacja - komentarz: " + lokalizacja.komentarz
: fraza_pusta;
return opis;
}function aktywnosc_mitotyczna_opis(aktywnosc_mitotyczna) {
let opis = "Aktywność mitotyczna: ";
opis += aktywnosc_mitotyczna.status
? aktywnosc_mitotyczna.status + ". "
: fraza_nie_okreslono;
opis += aktywnosc_mitotyczna.komentarz
? "\nAktywność mitotyczna - komentarz: " + aktywnosc_mitotyczna.komentarz
: fraza_pusta;
return opis;
}function naciekanie_torebki_opis(naciekanie_torebki) {
let opis = "Naciekanie torebki guza: ";
opis += naciekanie_torebki.status
? naciekanie_torebki.status + ". "
: fraza_nie_okreslono;
opis += naciekanie_torebki.komentarz
? "\nNaciekanie torebki guza - komentarz: " + naciekanie_torebki.komentarz
: fraza_pusta;
return opis;
}function naciekanie_naczyn_opis(naciekanie_naczyn) {
let opis = "Naciekanie naczyń limfatycznych: ";
opis += naciekanie_naczyn.status_l
? naciekanie_naczyn.status_l + ". "
: fraza_nie_okreslono;
opis += "\nNaciekanie naczyń krwionośnych: ";
opis += naciekanie_naczyn.status_v
? naciekanie_naczyn.status_v + ". "
: fraza_nie_okreslono;
opis += "\nNaciekanie naczyń - liczba ognisk: ";
opis += naciekanie_naczyn.ile_ognisk
? naciekanie_naczyn.ile_ognisk + ". "
: fraza_nie_okreslono;
opis += naciekanie_naczyn.komentarz
? "\nNaciekanie naczyń - komentarz: " + naciekanie_naczyn.komentarz
: fraza_pusta;
return opis;
}function naciekanie_pozatarczycowe_opis(naciekanie_pozatarczycowe) {
let opis = "Naciekanie pozatarczycowe: ";
if (
naciekanie_pozatarczycowe.nie_stwierdzono == null &&
naciekanie_pozatarczycowe.stwierdzono.length === 0
)
opis += fraza_nie_okreslono;
else {
opis +=
naciekanie_pozatarczycowe.stwierdzono.length > 0
? [].concat(...naciekanie_pozatarczycowe.stwierdzono) + ". "
: naciekanie_pozatarczycowe.nie_stwierdzono
? naciekanie_pozatarczycowe.nie_stwierdzono + ". "
: fraza_pusta;
}
opis += naciekanie_pozatarczycowe.komentarz
? "\nNaciekanie pozatarczycowe - komentarz: " +
naciekanie_pozatarczycowe.komentarz
: fraza_pusta;
return opis;
}function marginesy_opis(marginesy) {
let opis = "Powierzchnia operacyjna: ";
opis += marginesy.status ? marginesy.status + ". " : fraza_nie_okreslono;
opis += marginesy.odleglosc
? "\nSzerokość najwęższego marginesu: " +
marginesy.odleglosc +
" (mm). "
: fraza_pusta;
opis += marginesy.komentarz
? "\nPowierzchnia operacyjna - komentarz: " + marginesy.komentarz
: fraza_pusta;
return opis;
}function wezly_chlonne_opis(wezly_chlonne) {
let opis = "Ilość zidentyfikowanych węzłów chłonnych: "
if ( wezly_chlonne.ilosc_wezlow != "" )
{
opis += wezly_chlonne.ilosc_wezlow + ". "
if ( wezly_chlonne.ilosc_wezlow != "0")
{
opis += "\nIlość przerzutowych węzłów chłonnych: "
opis += wezly_chlonne.ilosc_przerzutowych === "" ?
"Nie określono. "
: wezly_chlonne.ilosc_przerzutowych + ". "
opis += "\nLokalizacja przerzutowych węzłów chłonnych (grupy węzłowe): "
opis += wezly_chlonne.lokalizacja_przerzutowych === "" ?
"Nie określono. "
: wezly_chlonne.lokalizacja_przerzutowych + ". "
opis += "\nWielkość największego przerzutowego węzła (mm): "
opis += wezly_chlonne.najw_wymiar_najw_wezla === "" ?
"Nie określono. "
: wezly_chlonne.najw_wymiar_najw_wezla + ". "
opis += "\nWielkość największego ogniska przerzutowego (mm): "
opis += wezly_chlonne.najw_wymiar_ogniska_przerzutowego === "" ?
"Nie określono. "
: wezly_chlonne.najw_wymiar_ogniska_przerzutowego + ". "
opis += "\nPrzekraczanie torebki węzła przez przerzuty: "
opis += wezly_chlonne.naciekanie_pozawezlowe === null ?
"Nie określono. "
: wezly_chlonne.naciekanie_pozawezlowe + ". "
}
}
else opis += fraza_nie_okreslono
return opis
}function dodatkowe_opis(dodatkowe) {
let opis = "Dodatkowe rozpoznania: "
if ( dodatkowe.rozpoznanie.length > 0 || dodatkowe.opis_slowny != "" )
{
opis += [].concat(...dodatkowe.rozpoznanie)
opis += dodatkowe.rozpoznanie.length > 0 ? ". " : ""
opis += dodatkowe.opis_slowny
}
else if (dodatkowe.status)
opis += dodatkowe.status + ". "
else
opis += fraza_nie_okreslono
return opis
}function tnm_kod(str) {
return str ? str.split(" -")[0] : "";
}
function tnm_opis(tnm) {
let opis = "Zaawansowanie wg klasyfikacji TNM-8: ";
if (tnm.pT || tnm.pN) {
opis += "p" + tnm_kod(tnm.pT);
opis +=
tnm.descriptors.length > 0
? "(" + tnm.descriptors.map(tnm_kod) + ")"
: "";
opis += tnm_kod(tnm.pN);
} else opis += fraza_nie_okreslono;
if (tnm.opis_slowny != "")
opis += "\nZaawansowanie wg klasyfikacji TNM-8 - komentarz: " + tnm.opis_slowny;
return opis;
}function immunohistochemia_opis(immunohistochemia) {
let opis = "Immunohistochemia i histochemia: ";
opis += immunohistochemia.status ? immunohistochemia.status + ". " : fraza_nie_okreslono;
opis += immunohistochemia.opis
? "\nImmunohistochemia i histochemia - opis: " + immunohistochemia.opis
: fraza_pusta;
return opis;
}function generuj_caly_opis() {
let caly_opis = "";
caly_opis += typ_histo_opis(typ_histo, typ_histo_komentarz) + "\n";
caly_opis += ilosc_ognisk_opis(ilosc_ognisk) + "\n";
caly_opis += lokalizacja_opis(lokalizacja) + "\n";
caly_opis += wielkosc_opis(wielkosc) + "\n";
caly_opis += aktywnosc_mitotyczna_opis(aktywnosc_mitotyczna) + "\n";
caly_opis += typ_wzrostu_opis(typ_wzrostu) + "\n";
caly_opis += naciekanie_torebki_opis(naciekanie_torebki) + "\n";
caly_opis += naciekanie_naczyn_opis(naciekanie_naczyn) + "\n";
caly_opis += martwica_opis(martwica) + "\n";
caly_opis += naciekanie_pozatarczycowe_opis(naciekanie_pozatarczycowe) + "\n";
caly_opis += marginesy_opis(marginesy) + "\n";
caly_opis += wezly_chlonne_opis(wezly_chlonne) + "\n";
caly_opis += przytarczyce_opis(przytarczyce) + "\n";
caly_opis += dodatkowe_opis(dodatkowe) + "\n";
caly_opis += immunohistochemia_opis(immunohistochemia) + "\n";
caly_opis += tnm_opis(tnm) + "\n";
return caly_opis;
}Opis mikroskopowy
Typ histologiczny wg WHO 2022
Liczba ognisk
Lokalizacja
Wymiary
Aktywność mitotyczna
Typ wzrostu
Naciekanie torebki guza
Naciekanie naczyń
viewof naciekanie_naczyn = Inputs.form({
status_l: Inputs.radio(["Nie stwierdzono", "Obecne", "Nie można ocenić"], {
label: "Naciekanie nacz. limfatycznych:",
}),
status_v: Inputs.radio(["Nie stwierdzono", "Obecne", "Nie można ocenić"], {
label: "Naciekanie nacz. krwionośnych:",
}),
ile_ognisk: Inputs.radio(
["Nie dotyczy", "< 4 ogniska", "4 lub więcej ognisk"],
{
label: "j/w, liczba ognisk, jeśli guz otorebkowany",
}
),
komentarz: Inputs.textarea({
label: "Komentarz",
placeholder: "opcjonalny",
}),
});Martwica
Naciekanie pozatarczycowe
viewof naciekanie_pozatarczycowe = Inputs.form({
nie_stwierdzono: Inputs.radio(["Nie stwierdzono", "Nie można ocenić"], {
label: "Naciekanie pozatarczycowe",
}),
stwierdzono: Inputs.checkbox(
[
"naciekanie okołotarczycowej tkanki włóknistotłuszczowej",
"naciekanie mięśni szkieletowych",
"naciekanie tkanki podskórnej, krtani, tchawicy, przełyku lub nerwu krtaniowego wstecznego",
"naciekanie powięzi przedkręgowej lub otaczający tętnicę szyjną lub naczynia śródpiersiowe",
],
{
label: "Wybierz, jeśli obecne",
}
),
komentarz: Inputs.textarea({
label: "Komentarz",
placeholder: "opcjonalny",
}),
});Powierzchnia operacyjna
viewof marginesy = Inputs.form({
status: Inputs.radio(["Nie zajęta (R0)", "Zajęta w bad. mikroskopowym (R1)", "Zajęta w bad. makroskopowym (R2)", "Nie można ocenić"], {
label: "Powierzchnia operacyjna:",
}),
odleglosc: Inputs.text({
label: "Szerokość najwęższego marginesu (mm)",
placeholder: "mm",
}),
komentarz: Inputs.textarea({
label: "Komentarz",
placeholder: "opcjonalny, np. która powierzchnia jest zajęta przez nowotwór, inne",
}),
});Węzły chłonne
viewof wezly_chlonne = Inputs.form({
ilosc_wezlow: Inputs.text({
label: "Ilość zidentyfikowanych węzłów chłonnych:",
placeholder: "wpisz 0, jeśli nie stwierdzono",
}),
ilosc_przerzutowych: Inputs.text({
label: "Ilość przerzutowych węzłów chłonnych:",
placeholder: "wpisz 0, jeśli nie stwierdzono",
}),
lokalizacja_przerzutowych: Inputs.textarea({
label: "Lokalizacja przerzutowych węzłów chłonnych (grupy węzłowe)",
placeholder: "opisz",
}),
najw_wymiar_najw_wezla: Inputs.text({
label: "Wielkość największego przerzutowego węzła (mm):",
placeholder: "mm",
}),
najw_wymiar_ogniska_przerzutowego: Inputs.text({
label: "Wielkość największego ogniska przerzutowego (mm):",
placeholder: "mm",
}),
naciekanie_pozawezlowe: Inputs.radio(
["Nie stwierdzono", "Obecne", "Nie można ocenić"],
{ label: "Przekraczanie torebki węzła przez przerzuty" }
),
});Przytarczyce
Dodatkowe rozpoznania
viewof dodatkowe = Inputs.form({
status: Inputs.radio(["Nie stwierdzono"], { label: "Dodatkowe patologie" }),
rozpoznanie: Inputs.checkbox(
[
"Guzek hiperplastyczny",
"Guzkowa choroba pęcherzykowa tarczycy (thyroid follicular nodular disease)",
"Zapalenie limfocytowe",
"Gruczolak pęcherzykowy",
"Gruczolak onkocytowy"
],
{ label: "Wybierz, jeśli obecne" }
),
opis_slowny: Inputs.textarea({
label: "Inne",
placeholder: "",
}),
});Immunohistochemia
Zaawansowanie wg klasyfikacji TNM
viewof tnm = Inputs.form({
descriptors: Inputs.checkbox(
["s - solitary tumour", "m - multifocal tumor"],
{ label: "Liczba ognisk" }
),
pT: Inputs.radio(
[
"TX - Primary tumour cannot be assessed",
"T0 - No evidence of primary tumour",
"T1a - Tumour ≤1 cm in greatest dimension limited to the thyroid",
"T1b - Tumour >1 cm but ≤2 cm in greatest dimension, limited to the thyroid",
"T2 - Tumour >2 cm but ≤4 cm in greatest dimension limited to the thyroid",
"T3a - Tumour >4 cm limited to the thyroid",
"T3b - Gross extrathyroidal extension invading only strap muscles (sternohyoid, sternothyroid, thyrohyoid, or omohyoid muscles) from a tumour of any size",
"T4a - Gross extrathyroidal extension invading subcutaneous soft tissues, larynx, trachea, oesophagus, or recurrent laryngeal nerve from a tumour of any size",
"T4b - Gross extrathyroidal extension invading prevertebral fascia or encasing the carotid artery or mediastinal vessels from a tumour of any size",
],
{ label: "Primary tumor" }
),
pN: Inputs.radio(
[
"NX - Regional lymph nodes cannot be assessed",
"N0 - No evidence of regional lymph node metastasis",
"N0a - One or more cytological or histologically confirmed benign lymph node",
"N0b - No radiologic or clinical evidence of locoregional lymph node metastasis",
"N1a - Metastasis to level VI or VII (pretracheal, paratracheal, or prelaryngeal/Delphian or upper mediastinal) lymph nodes. This can be unilateral or bilateral disease.",
"N1b - Metastasis to unilateral, bilateral or contralateral lateral neck lymph nodes (levels I, II, III, IV or V) or retropharyngeal lymph nodes",
],
{ label: "Regional lymph nodes (pN)" }
),
opis_slowny: Inputs.textarea({
label: "komentarz",
placeholder: "opcjonalne",
}),
});