Przejdź do głównej zawartości

CT i DICOM — materiały referencyjne

Materiały referencyjne · Zwarty materiał do sprawdzania informacji. Wróć tutaj później; nie zaczynaj nauki od tej strony. Wersje dydaktyczne znajdują się w rozdziale.

Identyfikatory — tabela podręczna

Tag Nazwa Zakres Dlaczego ma znaczenie
(0010,0020) PatientID Pacjent Klucz deidentyfikacyjny lub lokalny klucz ośrodka; służy do grupowania. Ma znaczenie wyłącznie w ramach jednostki nadającej identyfikator. Między ośrodkami należy łączyć z IssuerOfPatientID (0010,0021).
(0020,000D) StudyInstanceUID Badanie „To badanie”
(0020,000E) SeriesInstanceUID Seria „Ta akwizycja lub rekonstrukcja” — jednostka pracy przy budowaniu wolumenu
(0008,0018) SOPInstanceUID Instancja „Ta warstwa” — klucz łączenia używany przez SEG do wskazania obrazów źródłowych
(0020,0052) FrameOfReferenceUID Układ przestrzenny Identyfikuje układ współrzędnych pacjenta. Ta sama wartość tego identyfikatora pozwala porównać geometrię, ale nie dowodzi identyczności siatek.
(0008,0016) SOPClassUID Typ obiektu Określa rodzaj obiektu przed rozpoczęciem jego analizy
(0008,0060) Modality Typ obiektu CT, SEG, MR, OT, … — filtr oparty na jednym tagu

Tagi intensywności i pikseli

Tag Nazwa Zastosowanie
(0028,1052) RescaleIntercept Wyraz wolny Modality LUT; HU = stored × slope + intercept
(0028,1053) RescaleSlope Współczynnik nachylenia Modality LUT, często 1
(0028,0100) BitsAllocated zazwyczaj 16
(0028,0103) PixelRepresentation 0 = bez znaku, 1 = ze znakiem
(7FE0,0010) PixelData surowy bufor pikseli, dane masowe OW/OB
(0018,1210) ConvolutionKernel kernel rekonstrukcji, zmienna wpływająca na teksturę

Tagi geometrii — pełne omówienie w rozdziale 4

Tag Nazwa Zastosowanie
(0020,0032) ImagePositionPatient współrzędne (x,y,z) środka lewego górnego woksela, mm w układzie LPS
(0020,0037) ImageOrientationPatient cosinusy kierunkowe wiersza i kolumny
(0028,0030) PixelSpacing [row spacing, column spacing]
(0018,0050) SliceThickness grubość skolimowanej lub obrazowanej warstwy
(0018,0088) SpacingBetweenSlices odległość między środkami warstw

Klasy SOP, z którymi będziesz pracować

  • 1.2.840.10008.5.1.4.1.1.2 — CT Image Storage (pojedyncza warstwa CT).
  • 1.2.840.10008.5.1.4.1.1.66.4 — Segmentation Storage (DICOM SEG).
  • 1.2.840.10008.5.1.4.1.1.481.3 — RT Structure Set Storage (RTSTRUCT).

Value Representation (VR) — zakres potrzebny w praktyce

Każdy element danych ma dwuliterowy kod typu. Nie musisz znać całej tabeli; wystarczą trzy fakty:

  • Wartości liczbowe są często zapisywane jako tekst (DS, decimal string), dlatego zapis "0.78125\0.78125" jest normalnym sposobem przechowywania odstępów między pikselami.
  • UID (UI) są łańcuchami znaków rozdzielonymi kropkami. Porównuj je jako łańcuchy znaków.
  • Pixel Data to dane masowe (OW/OB) zapisane w (7FE0,0010).

Typowe VR: PN (person name), DA (date), UI (UID), US (unsigned short), DS (decimal string), OB/OW (other byte/word).

Transfer Syntax

TransferSyntaxUID (0002,0010) określa kodowanie Pixel Data na poziomie bajtów: bez kompresji (np. Explicit VR Little Endian 1.2.840.10008.1.2.1), stratne JPEG, JPEG-2000 itd. pydicom dekoduje większość z tych formatów. Jeśli kiedykolwiek odczytasz surowe bajty PixelData, najpierw musisz znać składnię transferową.

Klasyczny CT a Enhanced CT

Model „jedna instancja = jedna warstwa” dotyczy klasycznego jednoklatkowego obiektu CT Image Storage. Enhanced CT jest obiektem wieloklatkowym, w którym jedna SOP Instance zawiera wiele klatek, a każdą z nich opisują odrębne makra grup funkcjonalnych. Ten sam mechanizm wykorzystuje DICOM SEG. Pojęcia geometryczne są identyczne, zmienia się tylko sposób zapakowania danych.

Co zwykle idzie źle

  • Traktowanie zapisanych pikseli jak HU bez zastosowania współczynnika nachylenia i wyrazu wolnego: najczęstszy cichy błąd.
  • Zakładanie, że wszędzie występuje uint16: odczytuj PixelRepresentation i BitsAllocated.
  • Ufanie InstanceNumber lub kolejności nazw plików przy ustalaniu porządku anatomicznego w osi z. Ustalaj kolejność na podstawie geometrii opisanej w rozdziale 4.
  • Łączenie rekonstrukcji: badanie zawiera kilka serii, takich jak cienkie i grube warstwy osiowe, reformaty koronalne oraz obraz lokalizacyjny. Obraz lokalizacyjny (localizer/scout) jest dwuwymiarowym obrazem do planowania, a nie warstwą osiową; włączenie go do stosu prowadzi do utworzenia niepoprawnego wolumenu. Filtruj według ImageType / ConvolutionKernel / SliceThickness.
  • Ignorowanie składni transferowej podczas odczytu surowych bajtów: wynikiem są bezwartościowe dane lub błąd dekompresji. Pozwól, aby obsłużył ją pydicom; przy skompresowanych składniach sprawdź, czy nie brakuje pakietu.

Praktyczna kolejność lektury — wybrane źródła zewnętrzne

Nie czytaj całego standardu DICOM. Zapoznaj się z poniższymi źródłami w podanej kolejności i zakończ, gdy opisany wyżej model nabierze konkretnego znaczenia:

  1. “DICOM is Easy” (Ronnie) — dicomiseasy.blogspot.com. Kanoniczne, przystępne wprowadzenie, które buduje intuicję hierarchii Patient→Study→Series→Instance na podstawie rzeczywistej instancji CT, tag po tagu. Pomiń wpisy o komunikacji sieciowej, której dotyczy rozdział 10.
  2. Dokumentacja pydicom — pydicom.github.io. Sekcje “Dataset basics” i “elements” oraz samouczek Pixel Data obejmują około 90% potrzebnej wiedzy: dcmread, ds.pixel_array, RescaleSlope/Intercept. Pomiń tworzenie nowych instancji SOP.
  3. Innolitics DICOM Standard Browser — dicom.innolitics.com. Używaj jako materiału referencyjnego, a nie podręcznika; miej go zawsze pod ręką.
  4. The DICOM standard (źródło normatywne) — dicom.nema.org/standard.html. Czytaj w miarę potrzeb: PS3.3 Image Plane Module / Image Pixel Module / Modality LUT. Pomiń PS3.4/5/7/8 (usługi, kodowanie i komunikacja sieciowa) aż do materiału o informatyce obrazowej.

Powiązanie z TRACE-CT

Każde pojęcie z tego rozdziału jest stosowane w rzeczywistym kodzie TRACE-CT. Czytaj go, ale nie kopiuj tutaj: przeliczanie na HU, grupowanie serii i metadane, wybór rekonstrukcji, ograniczanie HU przed obliczaniem cech oraz filtrowanie obrazów lokalizacyjnych z walidacją geometrii. Konkretne skrypty i funkcje są zinwentaryzowane w mapie nauki TRACE-CT.

Dalsze zgłębianie tematu

  • Hasła Innolitics dotyczące Rescale Slope/Intercept, Image Plane Module i Image Pixel Module.
  • Moduły DICOM PS3.3 Image Plane / Image Pixel / Modality LUT: normatywne źródło semantyki geometrii oraz współczynnika nachylenia i wyrazu wolnego.
  • Dokumentacja PyRadiomics dotycząca typu obrazu i binWidth: dlaczego przed ekstrakcją cech trzeba pracować w HU, a nie na pikselach zapisanych w pliku (rozdział 5).
  • Bushberg, Essential Physics of Medical Imaging: pogłębione informacje o rekonstrukcji CT i dawce, gdy sposób rekonstrukcji lub dawka staną się aktywną zmienną w TRACE-CT.

Co zapamiętać — podsumowanie rozdziału

  1. CT mierzy projekcje i rekonstruuje warstwy. Zapisany piksel jest wynikiem działania algorytmu, a nie surowym pomiarem fizycznym.
  2. HU = stored_pixel × RescaleSlope + RescaleIntercept. Nigdy nie używaj zapisanych pikseli bezpośrednio jako HU.
  3. Patient → Study → Series → Instance; geometria i rekonstrukcja należą do poziomu Series.
  4. Hierarchia organizuje dane, ale nie definiuje geometrii wolumenu. Do tego potrzebne są IOP/IPP i odstępy dla każdej instancji, co omawia rozdział 4.
  5. Kernel rekonstrukcji i grubość warstwy są zmiennymi ilościowymi: dwie rekonstrukcje jednego skanu to różne obrazy, które mogą dawać różne cechy.

© 2026 Adrian Tkacz · BioMedical-IT
Oryginalne teksty i ilustracje są udostępniane na licencji Creative Commons Uznanie autorstwa–Użycie niekomercyjne 4.0 Międzynarodowe (CC BY-NC 4.0), o ile nie zaznaczono inaczej. Przy ponownym wykorzystaniu proszę podać Adrian Tkacz / BioMedical-IT jako autora i zamieścić odnośnik do oryginalnego źródła. Materiały osób trzecich zachowują własne prawa i warunki licencyjne.