eRAD PACS Kiszolgáló
Az általános kódoló szabályok a kényszerítésre a következők: PDF letöltése
Típus | Leírás |
gTag | A DICOM címke első része, amely a csoport tulajdonságot mutatja. Négy hex számjegyként van kifejezve. |
eTag | A DICOM címke második része, amely az elem tulajdonságot mutatja. Négy hex számjegyként van kifejezve. |
Integer | Számmal megadott érték, melyet bizonyos kifejezési funkciók, többek között aritmetikai funkciók használnak és jeleznek ki. |
String | ASCII számbeli és vezérlőkarakterek csoportja. Ha nem folytonosak, a stringeket idézőjelek közé kell helyezni (""). A vezérlőkaraktereket fordított perjelnek kell megelőznie, pl. „\n”, „\\” és „\”. |
Változó | Leírás |
@PROCESS | Vizsgálja, hogy zajlik-e az objektum feldolgozása vagy sem. Vagyis az objektumot az adott kontextusnak megfelelő mentése, továbbítása stb. Ha az ellenőrző változó NULLA() értéket vesz fel, akkor az objektum feldolgozása leállt. Ha az ellenőrző változó értéke igaz (ami nem NULLA()), akkor az objektum feldolgozása (mentés, továbbítás stb.) a megszokott módon folyik. Példa: $(@PROCESS)=if(equals((0008,0016),"1.2.840.10008.5.1.4.1.1.1.2.1"),NULL(),$(@PROCESS)) Magyarázat:ha az sop osztály Digitális mammográfiai röntgenkép mentése - feldolgozásra, akkor a feldolgozás jelzőt hamisra kell állítani, máskülönben megtartja a korábbi értékét (ami alapértelmezésben igaz). |
I értékek | Leírás |
(gTag,eTag) | DICOM tulajdonságcímke. A zárójelek szükségesek. Miután a kifejezés értékelt, az eredmények hozzá lesznek rendelve ehhez a tulajdonsághoz. |
SEQ(gTag1,eTag1, INo1,gTag2,eTag2 [,INo2,gTag3,eTag3...]) | Egy DICOM sorozattulajdonság. Tag2 határozza meg az INo elemen belül a Tag1 által meghatározott sorozatban, ahol 0 jelöli a sorozat legelső elemét. Ha a Tag1 sorozat nem létezik az objektumban, a teljes kifejezés mellőzésre kerül. |
USER(fieldName) | Testreszabott adatbázis mezők a USER(fieldName) formátumban, ahol a fieldName az adatbázis konfigurációs fájljában (dcfields.conf) meghatározott mező neve. A testre szabott mezők a hozzárendelések jobb és bal oldalán érvényesek. |
$(varName) | Az ideiglenes variáns a $(varName) formában jelenik meg, ahol a varName egy egyedi karakterlánc, amivel felismerhető az érték. |
Érték | Leírás |
(gTag,eTag) | Ez a DICOM címke értékével tér vissza. Ha a DICOM címke nem létezik, a NULL() tér vissza. A zárójelek szükségesek. |
Idézőjeles karakterlánc | Ez a „<string>” formában van. A <string> karaktersorozattal tér vissza. A karakterlánc tartalmazhat szabad karaktereket, pl. “\n”, “\\” és ‘\”’. |
SEQ(gTag1,eTag1, INo1,gTag2,eTag2 [,INo2,gTag3,eTag3...]) | A DICOM attribútum Tag2 által meghatározott tartalmát adja, a Tag1 által meghatározott sorozaton belül. INo jelöli a sorozat elemeinek példányait, ahol 0 jelöli a sorozat első elemét. NULL() értéket ad, ha az attribútum nem létezik a sorozat INo elemében. |
Nem idézőjeles karakterlánc | A nem idézőjeles karakterláncok akkor használhatók, ha azok csak folyamatos, alfanumerikus karaktereket tartalmaznak. |
USER(fieldName) | A testre szabott adatbázis mezők a USER(fieldName) formátumban, ahol a fieldName az adatbázis konfigurációs fájljában (dcfields.conf) meghatározott mező neve. |
$(varName) | Az ideiglenes variáns a $(varName) formában jelenik meg, ahol a varName egy egyedi karakterlánc, amivel felismerhető az érték. A nem inicializált ideiglenes értékek NULLÁ-val térnek vissza. |
(gTag,eTag),„d”,n | (Elavult) Ez a DICOM címke n-edik mezőjének értékét adja vissza (gggg,eeee), elválasztva a d-vel. |
Funkció | Leírás |
add(n1,n2[,n3…]) | Az egész számok összegével tér vissza. |
and(a,b) | „Igaz” értéket ad vissza, ha az a és b értéke nem nulla. |
between(n,min,max) | Igaz értéket ad vissza, ha az n string nagyobb vagy egyenlő, mint a min. érték és kisebb, mint a max. érték. Egyébként NULL-t ad vissza. |
codenumber(n) | Kódolt numerikus stringet ad vissza az n alapján. Az n és az eredmény ascii numerikus stringek >=0. Az eredmény ugyanannyi számjegyet tartalmaz, mint az n. |
codestring(s[,x]) | Kódolt srtringet ad vissza az s alapján. Az x stringben lévő karakterek, ha vannak, nincsenek benne az eredményben. |
concat(a,b[,c…]) | Láncolja az a és b (és c stb.) értékek NULL értékeit, amelyeket "" üres stringként vannak kezelve. |
contains(a,b) | A b-t adja vissza, ha a b string az a stringben létezik. Ellenkező esetben NULL értéket ad. |
dicomAge(d1,d2) | A d1 - d2 értéket naptári évben, hónapban vagy napban, a DICOM-kompatibilis nnnÉ, nnnH vagy nnnN formátumban adja vissza. Ha a d1 vagy a d2 érvénytelen dátumérték, vagy a d2 megelőzi a d1-et, NULL értékkel tér vissza. |
<üres string> | Ez az "" üres string. |
equals(a,b) | „Igaz”, ha a és b azonos, NULL, ha nem azonos. |
if(cond,a,b) | a-t ad vissza, ha a cond nem NULL, b-t ha a cond NULL. |
indexof(a, p) | Az a stringben lévő p minta kezdő pozíciójával tér vissza. Az első pozíció az a stringben 0. -1 értéket ad vissza, ha p nem található a-ban. NULL értéket ad vissza, ha p vagy a NULL. |
not(a) | „igaz” értéket ad vissza, ha a NULL, NULL-t, ha a nem NULL. |
NULL() | Törli a cél Ivalue értéket. |
or(a,b[,c...]) | Az első nem NULL értékkel tér vissza. |
rnd(n[,seed]) | Egy véletlenszerű szám stringet ad a seed alapján, ha van, 0 és n-1 között. |
split(a,d,n) | Az n-edik mezővel tér vissza az a-ból, d-t használva mezőelválasztóként. |
strlen(a) | Az a-ban lévő karakterek számával tér vissza, vagy NULL értékkel, ha az a string NULL. |
sub(n1,n2) | Az n1 - n2 összegét adja vissza. |
div(n1,n2) | Elosztja az operandusokat egész számokkal történő osztással, n1/n2. Az operandusok csak szám típusúak lehetnek. A nullával való osztás ellenőrizve van, de a nullával egyenlő nevezők hibát fognak eredményezni. |
mul(n1,n2[,n3...]) | Az összes operandus szorzása. Az operandusok csak szám típusúak lehetnek. |
substr(a,from[,len]) | Az len karaktereket adja vissza az a-ból, a from pozíciótól kezdve. Az első pozíció 0. Ha a from túlterjed a string végén, a NULL stringgel tér vissza. A len kihagyása esetén a maradék stringet adja vissza. |
translate(a,d,i1,o1 [,i2,o2...]) | Az oN kimeneti értéket adja vissza, ha az iN bemenő string megegyezik az a forrás stringgel. Ha a forrás string nem egyezik meg egyik bemenő stringgel sem, a rendszer az alapértelmezett d értéket adja. Az a forrás stringnek és iN bemenő stringnek String típusúaknak, vagy NULL()-nak kell lenniük. A d alapértelmezett érték és az oN kimeneti érték bármilyen típusú lehet, de ugyanolyan típusúaknak kell lenniük. |
mod(n1,n2) | Az egész szám osztásának maradékát adja vissza, n1/n2. Az operandusok csak szám típusúak lehetnek. A nullával való osztás ellenőrizve van, de a nullával egyenlő nevezők hibát fognak eredményezni. |
toLower(a) | Visszaállítja az a stringet, az összes karakterét kisbetűre konvertálva. |
toUpper(a) | Visszaállítja az a stringet, az összes karakterét nagybetűre konvertálva. |
Megjegyzés: A kifejezések kiértékelésében a NULL nem ugyanaz, mint az „” üres string. Ha egy DICOM tulajdonság nem létezik, akkor NULL. Ha létezik, de egy 0-hosszúságú értéket tartalmaz, akkor üres string, "".
Egy példa kényszerítési szabályra:
Meghatározott értékek sorát számozott értékekké konvertálásának példája megszokás vagy helytakarékosság miatt, például mammográfia megtekintési pozícióknál, a következőképp nézhet ki. A „cranio-caudalist” „CC”-vé, a „medio-laterális ferdét” (oblique) „MLO”-vá alakítja át, és beviszi a rövidített értéket a Sorozat leírás attribútumba. Ebben a példában a nézet kódérték a Nézet kód sorozat (0054,0220) első soreleméből ered.
(0008,103e)=translate( SEQ(0054,0220,0,0008,0104), SEQ(0054,0220,0,0008,0104), "cranio-caudal", "CC", "medio-lateral oblique", "MLO" )
Megjegyzés: A példákban a sortörések csak az olvashatóság kedvéért szerepelnek. Ahhoz, hogy működjenek, ezeket a parancsokat egy sorba kell írni.
Két érték felcseréléséhez határozzon meg egy háromlépéses folyamatot: