From Mirek Socha zapraszam!

DICOM: Binarna zawartość pliku DICOM

<< Dane CT zapisane na nośniku fizycznym | DICOM | Zawartość DICOMDIR >>

Przykład zawartości pliku DICOM

Tabela 1 prezentuje binarną budowę przykładowego pliku w standardzie DICOM. Prezentowany fragment jest początkiem pliku DICOMDIR.


Tabela 1. Przykład binarnej budowy pliku DICOM.

W przedstawionym fragmencie można wyróżnić: 128 bajtową pustą preambułę pliku, identyfikator w postaci czterech liter w kodzie ASCII „DICM”, po którym następuje ciąg danych (strumień informacji – ang. Data Set) w postaci tzw. atrybutów – elementów danych (ang. Data Element). Na rysunku XX przedstawiono schematyczną budowę strumienia danych, prezentowaną wcześniej we wstępie teoretycznym pracy.


Rysunek 8. Budowa strumienia danych DICOM.

Każdy element danych (ang. Data Elements) zawiera czterobajtowy identyfikator elementu danych, tzw. Tag, (wyróżniony kolorem żółtym), składający się z: identyfikatora grupy (dwa bajty) oraz z identyfikatora elementu grupy (dwa bajty). Następnie można wyróżnić, zaznaczony zielonym kolorem tła, dwubajtowy kod typu danych (VR – ang. Value Representation). W zależności od wartości VR występuje od dwóch do dziesięciu bajtów przeznaczonych na długość danych (niebieski kolor tła). Na końcu Data Element znajduje się obszar z danymi, zaznaczony pogrubieniem czcionki. Powyższą strukturę mają wszystkie pliki DICOM zapisane na płycie CD-R.

Kody Value Representation

Standard DICOM wyróżnia następujące kody VR oraz odpowiadające im typy danych:

VRrozwinięcie symboluopis
ASAge Stringwiek wyrażony w dniach (nnnD), tygodniach (nnnW), miesiącach (nnnM) lub latach (nnnY), np. 018D oznacza osiemnaście miesięcy.
ATAttribute Tagpara 16bitowych liczb całkowitych bez znaku, kodujących identyfikator elementu danych: numer grupy oraz numer elementu grupy
CSCode Stringciąg maksymalnie 16 znaków w kodzie ASCII
DADatadata w formacie rrrrmmdd (rok, miesiąc, dzień) w kodzie ASCII
DSDecimal Stringciąg znaków ASCII reprezentujący liczbę zmiennoprzecinkową
DTDate Timeciąg znaków ASCII zawierający datę oraz czas w formacie: rrrrmmddggmmss.ffffff&hhmm, gdzie ffffff to ułamkowe części sekundy, & jest znakiem „+” lub „­­–”, zaś hhmm jest offsetem godzin i minut
FLFloating Point Single32bitowa binarna liczba zmiennoprzecinkowa pojedynczej precyzji, zdefiniowana w dokumencie IEEE 754:1985
FDFloating Point Double64bitowa binarna liczba zmiennoprzecinkowa podwójnej precyzji, zdefiniowana w dokumencie IEEE 754:1985
ISInteger Stringciąg znaków ASCII reprezentujący liczbę całkowitą ze znakiem
LOLong Stringciąg maksymalnie 64 znaków, bez znaków kontrolnych
LTLong Textciąg maksymalnie 10240 znaków ze znakami kontrolnymi
OBOther Byte Stringciąg bajtów zakończony znakiem NULL
OFOther Float Stringciąg 32bitowych binarnych liczb zmiennoprzecinkowych pojedynczej precyzji
OWOther Word Stringciag 16bitowych słów binarnych
PNPerson Nameciąg znaków zawierający dane personalne pacjenta. Sposób kodowania znaków opisany jest w elemencie danych (0008,0005)
SHShort Stringciąg maksymalnie 16 znaków
SLSigned Long32bitowa liczba całkowita ze znakiem
SQSequence of Itemssekwencja grup elementów danych (ang. Items)
SSSigned Short16bitowa liczba całkowita ze znakiem
STShort Textciąg znaków, zawierający znaki sterujące, o maksymalnej długości 1024. Sposób kodowania znaków opisany jest w elemencie danych (0008,0005)
TMTimeciąg znaków ASCII reprezentujący godzinę w formacie: ggmmss.ffffff, gdzie fffff to milionowe części sekundy
UIUnique Identifier (UID)ciąg znaków zawierający unikatowy identyfikator UID, identyfikujący obiekty DICOM
ULUnsigned Long32bitowa liczba całkowita bez znaku
UNUnknownciąg bajtów o nieznanym sposobie kodowania
USUnsigned Short16bitowa liczba całkowita bez znaku
UTUnlimited textciąg znaków, zawierający znaki sterujące, przechowujący jeden lub wiele akapitów takstu. Sposób kodowania znaków opisany jest w elemencie danych (0008,0005).

<< Dane CT zapisane na nośniku fizycznym | DICOM | Zawartość DICOMDIR >>

Retrieved from http://home.agh.edu.pl/~socha/pmwiki/pmwiki.php/DICOM/Binarnie
Data ostatniej modyfikacji: 02.02.2009, 22:42