• Nem Talált Eredményt

2.5 A DICOM-szabvány .1 Összefoglalás (DICOM) .1 Összefoglalás (DICOM)

2.5.4 A DICOM-fájlformátum elemei

2.5.4.1 Érték-reprezentáció

2.5.4 A DICOM-fájlformátum elemei

2.5.4.1 Érték-reprezentáció

Néhány szó a valódi DICOM formátumról

Adattípusok

Amikor játék-DICOM formátumunkat definiáltuk, bájtokat használtunk, hogy az adattípusok között különbséget tegyünk, majd szimbolikus formát vezettünk be a típus meghatározására.

Emellett voltak "hivatalos" adattípus-neveink is. A valódi DICOM esetén a fő különbség a

"hivatalos" formátumoknál az, hogy itt az adatfolyamban dupla bájttal jelezzük.

LittleEndians és BigEndians

Ahogy már elmagyaráztuk, még akkor is, ha tudjuk, hogy egy szó, vagy egy még hosszabb bájtszakasz egy számot ír le, tudnunk kell, hogy melyik irányban növekednek a helyiértékek.

Két lehetőség van:

1. A helyiértékek jobbról balra növekszenek. A DICOM szabvány ezt LittleEndian

-nak hívja, utalva arra, hogy a bájtsor végén találhatóak a kisebb értékek 2. A helyiértékek balról jobbra növekszenek. A DICOM szabvány ezt

BigEndian

-nak hívja, utalva arra, hogy a bájtsor végén találhatóak a nagyobb értékek.

A DICOM fájl az "Endian"-ra vonatkozó információt a headerben tárolja. A Header információiról még később részletesen szó lesz.

70

Érték-reprezentáció (VR) a DICOM-ban

Amikor a játék-DICOM formátumunkat ismertettük, világossá vált, hogy akár a számítógép, akár a humán befogadó próbálja értelmezni az adathalmazokat, a különböző adattípusokat precízen definiálni kell. Két fontos elemét emeltük ki: a bevezető jel, ami megmondja, hogy pontosan milyen fajta adat van kódolva a következő bájtokon, és annak a leírása, ahogyan ez az adat kódolva van. A bevezető jelek, az ún. Dicom tagek a témája a következő szakasznak.

Ezzel szemben a jelen fejezet a DICOM érték-reprezentációval foglalkozik. A következő táblázat az összes lehetséges 27 adatformátumot felsorolja.

VR név definíció Karakterkészlet érték hossza

DS Decimal String

Egy karaktersztring, mely egy fixpontos vagy lebegőpontos számot tartalmaz. A fixpontos szám csa a 0-9 karaktereket és egy opcionális nyitó + vagy - jelből illetve egy opcionális decimális törtrészt jelző "."-ból állhat. A lebegőpontos szám az ANSI 3.9 szerinti definíció szerint áll, "E" vagy "e" jelüli az exponens kezdetét. A Decimal String kiegészíthető nyitó vagy záró

szóközökkel, karakterek közötti szóközök nem megengedettek. Fontos:

az adatelemek melyek ezt a VR-t használják, nem megfelelően kódoltak, ha az explicit VR transzfer szintaxist használjuk, és ennek az attribútumnak az értéke meghaladja a 65534 bájtot.

“0”-”9”, “+”, (000000-999999). A &ZZXX utótag opcionális, az Egyezményes Koordinált Világidő (Coordinated Universal Time, UTC), ahol a & értéke + vagy -, ZZ óra, XX percben mért offszet. Az év, hónap, nap a Gergely-naptár szerint értendő. 24 órás jelölés használatos. Az éjfél

reprezentációja "0000" hiszen a "2400"

kilógna az értékkészletből. A másodperc törtrésze, ha jelen van csak 1 és 6

közötti számokból állhat. Ha a másodperc törtrésze nincs jelezve, a megelőző "."-ot nem kell kiírni. Az

“0”-”9”, “+”,

71 offszet előtag, ha van, csak 4

számjegyből állhat. A sztring kiegészíthető szóközökkel de csak végpozícióban, előtte és szó közben nem megengedett. Azt a komponenst, melyet kihagyunk, nullkomponensnek

nevezzük. A végpozícióban lévő nullkomponensek azt jelzik, hogy az érték nem pontos az adott komponensek pontossági szintjéig. A YYYY

komponens sohasem lehet nulla.

Nullkomponens középső pozícióban nem állhat. Az opcionális előtag nem számít komponensnek. Az opcionális előtag nélkül a DT az adatelemet létrehozó alkalmazás helyi időzónáját jelenti, hacsak az időzóna-offszettel explicit nincsen megadva. Az UTC (0008, 0201) offszet a helyi idő mínusz az UTC. Az offszet érték a DT UTC-ben +0000. Megjegyzések: 1) az offszet tartománya -1200-től +1400. Az USA keletiparti idejére (EST) az offszet -0500. A japán középidőre +0900. 2) az RFC 2822 által használt -0000 az offszetre helyi idő használatának tiltását jelenti 3) a DT 195308 jelentése 1953 augusztus, a napot nem jelzi. A 19530827111300.0 DT érték 1956 augusztus 27 d.e. 11:13 -at jelöl, tizedmásodperc pontosságig. 4) a másodperc komponens csak

szökőmásodperc esetén veheti fel a 60-as értéket 5) az offszet beírható

nullkomponensként is, azaz a szám a IEEE 754:1985 szerinti 32-bites lebegőpontos számformátum a IEEE 754:1985 szerinti 64-bites lebegőpontos számformátum számot tartalmaz, csak a 0-9 számokat tartalmazhat és egy opcionális nyitó + vagy - jelből állhat. Kiegészíthető kezdő- vagy végpozícióban álló

72

szóközökkel. Karakterek között a szóköz nem megengedett. Az n, egész szám a következő tartományba eshet: -231 <= n <= (-231 - 1).

LO Long String

karaktersztring, mely kiegészíthető kezdő- vagy végpozícióban álló

szóközökkel. Az 5CH karakterkód (a "\"

per-jel az ISO-IR 6 szerint) nem

használható, mert elválasztókarakterként használjuk többértékű adatelemeknél. A sztring nem tartalmazhat kontroll-karaktert kivéve az ESC-t

alap

Karaktersztring, mely egy vagy több bekezdést tartalmazhat. Alkalmazható a grafikus karakterkészlet, és a következő kontroll-karakterek: LF, FF és ESC.

Kiegészíthető végpozícióban lévő szóközökkel, kezdőpozícióban lévő szóközök viszont jelentéssel bírnak.

Adatelemek ebben a VR-ben nem lehetnek többértékűek, így a 5CH karakterkód (a "\" per-jel az ISO-IR 6 szerint) használható

Bájtsztring, melynek tartalma a Transfer Syntax. OB olyan VR, ami nem

érzékeny a Little/Big Endian bájt sorrendre. A bájtsztring egyetlen végpozícióban lévő null bájtot (00H) tartalmazhat, hogy azonos hosszt adjon

nem jön szóba lásd Transfer Syntax szó. Az OF olyan VR, ami bájtcserét igényel minden Little Endian és Big Endian váltásokor bájtcserét igényel minden Little Endian és Big Endian váltásokor

nem jön szóba lásd Transfer Syntax definíció

PN Person Name

A karaktersztring az 5 komponens konvenció szerint van kódolva. A 5CH karakterkód (a "\" per-jel az ISO-IR 6 szerint) nem használható, mert

elválasztó-karakterként használjuk többértékű adatelemeknél. Emberi használatra az öt komponens a következő: családnév, keresztnév,

73 végpozícióban is, és figyelmen kívül

hagyja. Az 5 komponens bármelyike lehet üres, a komponenseket elválasztó karakter a "^" (5EH). Elválasztó karakterek szükségesek a belső null-komponensek esetén. Több bejegyzés minden komponensben megengedett, és mint szöveges sztringek jelennek meg az adott személy által kívánt formában.

Állatorvosi használatban az első két komponens sorrendben: felelős személy családi név vagy felelős szervezet neve, páciens neve, például "Léda". A többi komponenst nem használjuk, és nem is jelenhetnek meg. Ez az öt elemes csoportra, mint Person Name (PN) komponenscsoportra hivatkozhatunk.

Hogy a neveket fonetikus vagy betű szerinti formában lehessen írni, 3 komponenscsoport használható (lásd H melléklet, 1 és 2). A komponenscsoport elválasztó karaktere a "=" (3DH). A három komponenscsoport előfordulásuk

beleértve az első komponenscsoportot, a személy neve kezdődhet egy vagy több elválasztó "=" -vel. Végpozícióban lévő nullkomponensek és elválasztók nem kötelezőek. Pontos szemantika határoz meg minden komponenscsoportot.

Példák: Rev. John Robert Quincy Adams, B.A. M.Div.“Adams^John RobertQuincy^^Rev.^B.A. M.Div.”

[egy családnév; három keresztnév;nincs középső név; egy előtag; két utótag];

Susan Morrison-Jones, Ph.D., Chief Executive Officer

“Morrison-Jones^Susan^^^Ph.D., Chief Executive Officer” [két családnév; egy keresztnév;

nincs középső név; nincs előtag; egy utótag]; John Doe “Doe^John” [egy családi név; egy keresztnév; nincs középső név, nincs előtag,nincs utótag.

az utolsó három komponens elválasztóit lehagytuk]; Smith^Cirmos [macska, nem ember, ahol a felelős személy

74

családneve Smith, és saját neve

Cirmos]; ABC Farm^Kesely Üstök [Ló, ahol a felelős intézmény neve ABC Farm, saját neve pedig “Kesely Üstök”];

Megjegyzés 1. A hasonló

többkomponensű konvenciója szintén használatban van a HL7 v2 XPN adattípusban. Az XPN viszont az utótagot teszi az előtag elé, és van egy hatodik komponensi "fok", amint a DICOM a név utótagba olvaszt. Szintén vannak különbségek abban, hogy hogyan azonosítjuk a név elemeit. 2) A tipikus amerikai és európai használati mód az, hogy az első "utónév" jelenti a keresztnevet, a keresztnév második és a többi megjelenése a középső névbe kerül át. A középső név a visszafelé való kompatibilitás illetve más

szabványokkal való összhang érdekében maradt meg. 3) az implementáció készítőjének tudatában kell lennie, hogy a korábban "utónevek" a keresztnevek és a középeső nevek helyére kerültek be.

4) a visszafelé kompatibilitás miatt a szabvány a V3.0 előtti állapotában a személynevek egészében

A 05HC karakterkód (the per-jel “\” az ISO-IR 6 szerint) nem használható, mert elválasztó-karakter különböző

adatelemek között. Kontrolkarakterek szintén nem használhatóak az ESC kivételével.

előjeles bináris egész szám, 32 bit hosszú kettes komplemens formában.

előjeles bináris egész szám, 16 bit hosszú kettes komplemens formában.

Egy n egész szám a következő

tartományban: - 215 <= n <= (215 - 1).

nem jön szóba 2 bájt, fix ST Short Karaktersztring, mely egy vagy több Alap betűkészlet 1024 karakter

75 Text bekezdést tartalmazhat. Lehet része

grafikus karakter és kontroll karakter CR, LF, FF és ESC. Kitölthető

végpozícióban lévő szóközökkel, melyet nem vesznek figyelembe,

kezdőpozícióban álló szóközöket viszont igen. Adatelemek ebben a VR-ben nem lehetnek többértékűek ezért a 05HC karakterkód (the per-jel “\” az ISO-IR 6 szerint) használható.

és/vagy

reprezentációja "0000" hiszen a "2400"

kilógna az értékkészletből. A sztring kiegészíthető szóközökkel de csak végpozícióban, előtte és szó közben nem megengedett. Kevesebb, vagy több komponens a MM, SS, FFFFFF közül maradhat üresen, amíg egy

1."070907.070" jelentése 7 óra 9 perc 7.0705 másodperc. 2. “1010” jelentése 10 óra 10 perc 3. “021 ” érvénytelen érték. Megjegyzések: az ACR-NEMA szabvány 300 (a DICOM elődje)

támogatta a HH:MM:SS.tört értéket erre a VR-re. Ez a formátum nem

kompatibilis. 2. Lásd még a DT VR-t. 3.

Az SS komponens csak szökőmásodperc esetén lehet 60. UID olyan numerikus elemek sorozata, melyeket a ""."" karakter választ el. Ha az értékmező, mely az UID.eket

tartalmazza páratlan számú bájt hosszú, egy végpozícióban álló NULL (00H) karakterrel kell lezárni, hogy páros szám legyen a bájtban mért hossz.

0-9 és . az alap karakterkészletbő l

64 bájt max

76 UL Unsigne d Long

előjel nélküli bináris 32 bit hosszú egész szám. Olyan n egész, mely értékkészlete 0 <= n < 232

nem jön szóba 4 bájt fix UN

unknown

olyan bájtsztring, melynél a tartalom

kódolása ismeretlen nem jön szóba bármely más VR hosszával megegyező US

Unsigne d Short

előjel nélküli bináris egész szám, 16 bit hosszú. Egy n egész szám a következő tartományban: 0<= n <= 216

nem jön szóba 2 bájt fix

UT Unlimite d Text

karaktersztring, mely egy vagy több bekezdést tartalmaz. Tartalmazhat grafikus karaktert és kontroll karaktert CR, LF, FF és ESC. Végpozícióban állhatnak szóközök, melyeket figyelmen kívül hagyunk, kezdőpozícióban viszont jelentőséggel bír. Az adatelemek ebben a VR-ben nem lehetnek többértékűek, ezért a 05HC karakterkód (the per-jel

“\” az ISO-IR 6 szerint) használható.

alap

DiCOM azonosítók és a DICOM vizsgálat fogalma

A DICOM szabvány lefontosabb fogalamai a következők:

a vizsgálat azonosító

és más, a sorozathoz tartozó azonosítók

képek

azonosítók, melyek más, eddig fel nem sorolt DICOM objektumokhoz tartoznak

Gondoljunk egy régimódi röntgen-osztályra. A filmalapú felvételek egy bizonyos páciens vizsgálatához tartoznak, ezeket egy borítékba raknánk, illetve minden felvételen lenne valamilyen betegadat, vagy más információ, mint például a felvétel orientációja. A vizsgálatot az teszi vizsgálattá, hogy az összetartozó felvételek ugyanabban a borítékban vannak, és a borítékon elég információ van ahhoz, hogy azonosítsuk a felvételeket és a pácienst. Ha véletlenül néhány felvétel kiesik a borítéból, a felvételeken található páciensadatok alapján újra összerendezhetjük őket.

Tehát egy vizsgálat jól azonosítható felvételekből áll, melyek egy jól definiálható borítékba tartoznak: minden felvétel információt tartalmaz a borítékra nézve és a boríték a felvételekre nézve. A diagnosztikai osztály szemszögéből az az egyszerű tény, hogy szegény beteg szintén