在本節(jié)將講一下Dicom中非常重要也最常用到的一個(gè)概念:Data Dictionary. 對(duì)這個(gè)詞如果你還不是很熟悉的話坟漱,那換一個(gè)詞你一定是知道的: Tag
. Tag可以說(shuō)充斥了Dicom的方方面面圣蝎,因?yàn)閺某绦虻慕嵌葋?lái)說(shuō)测暗,算法與數(shù)據(jù)結(jié)構(gòu)就是應(yīng)用程序,而在醫(yī)學(xué)影像軟件開(kāi)發(fā)中,Data Dictionary就是Dicom中最重要、最基本的一種數(shù)據(jù)結(jié)構(gòu)施敢。Dicom協(xié)議的PS3.6節(jié)中包括了一個(gè)用來(lái)編碼標(biāo)準(zhǔn)Dicom屬性的、完整的Dicom Data Dictionary狭莱,這一部分俗稱共有Tag僵娃, 而作為醫(yī)療影像的硬件廠商,也可以遵循Dicom規(guī)則擴(kuò)展屬于自己公司內(nèi)部的Data Dictionary贩毕, 俗稱私有tag悯许。
標(biāo)準(zhǔn)Dicom Data Dictionary
Dicom Data Dictionary 本質(zhì)上是對(duì)所有標(biāo)準(zhǔn)醫(yī)療數(shù)字?jǐn)?shù)據(jù)的一種注冊(cè),或者說(shuō)是標(biāo)記辉阶,在字典中的每一條數(shù)據(jù)都屬于上一節(jié)所講的27中VR(Value Representation.)類型之一。作為這么多年的發(fā)展累積瘩扼,Dicom Data Dictionary 中索要表示的數(shù)據(jù)條目多達(dá)2000多個(gè)谆甜,那么為了能夠更加有效地管理這么多的Item, Dicom對(duì)其進(jìn)行了分組(Group)集绰,而數(shù)據(jù)條目Item作為一個(gè)element存在规辱,這樣通過(guò)group 號(hào)和element號(hào)就可以確定一個(gè)item具體是哪一個(gè)內(nèi)容了,通常表示為(group, element), 如 (0008栽燕, 0080)罕袋, 就是我們常說(shuō)的tag號(hào), 也被稱之為"attributes"或 “Data elements”. 需要注意的是碍岔,所有的Dicom設(shè)備和軟件中浴讯,都是通過(guò)tag來(lái)識(shí)別屬性的,tag類似于id蔼啦,軟件中靠tag來(lái)找值榆纽,而不是屬性名稱來(lái)找值,屬性名稱只是方便人來(lái)讀取和理解的。
所有的group id和element id都是通過(guò)十六進(jìn)制進(jìn)行編碼的奈籽, Tag號(hào)與屬性名一一對(duì)應(yīng)饥侵。如下圖即為數(shù)據(jù)字典的一部分,其中第一列為tag號(hào)衣屏,通過(guò)它可以找到屬性名躏升,VR表示了該屬性的數(shù)據(jù)類型,VM表示這個(gè)屬性可以有幾個(gè)值狼忱,一般情況下一個(gè)屬性有一個(gè)值就可以了煮甥,但是有些情況是不行的,比如(0010, 1001)這個(gè)屬性藕赞,表示患者別名成肘,有的患者可能有多個(gè)別名,這時(shí)候就需要該屬性有多個(gè)值斧蜕。另外双霍,當(dāng)屬性具有多個(gè)值的時(shí)候,如果數(shù)據(jù)類型為二進(jìn)制類型批销,那么只需要將其簡(jiǎn)單的拼接起來(lái)就可以洒闸,按照數(shù)據(jù)長(zhǎng)度即可區(qū)分,而如果數(shù)據(jù)類型為文本類型均芽,那么多個(gè)值就需要通過(guò)反斜杠進(jìn)行連接丘逸,所以在Dicom當(dāng)中,應(yīng)該十分謹(jǐn)慎的使用反斜杠
掀宋。
在前面的圖片中深纲,通過(guò)斜體表示的屬性為早期版本的DICOM數(shù)據(jù),在將來(lái)可能不再支持劲妙。這些屬性不會(huì)再被重新定義湃鹊,也有可能被其他字段替代,但作為一個(gè)好的dicom應(yīng)用镣奋,應(yīng)該考慮到向前兼容性币呵,對(duì)斜體部分屬性作出適當(dāng)?shù)募嫒荨?/p>
私有DICOM Data Dictionary
正如前面所說(shuō), Dicom除了標(biāo)準(zhǔn)的Dicom屬性侨颈,廠商還可以自己擴(kuò)展屬于自己的私有屬性余赢,一般的,Dicom中偶數(shù)group號(hào)表示標(biāo)準(zhǔn)的Dicom屬性哈垢, 奇數(shù)的表示自定義私有的屬性(tag)妻柒。所以雖然我們自己定義的tag號(hào)在標(biāo)準(zhǔn)中不會(huì)描述,但是其他廠商通過(guò)group號(hào)可以輕松地判斷這個(gè)屬性是我們自己擴(kuò)展出來(lái)的温赔。私有tag另一個(gè)問(wèn)題就是蛤奢,不同廠家可能用同一個(gè)tag定義了不同的屬性鬼癣,導(dǎo)致在讀取其他家數(shù)據(jù)的時(shí)候回曲解tag的意思,雖然dicom協(xié)議作出了很大的努力避免這種問(wèn)題啤贩,但并未完全排除這種問(wèn)題待秃,而筆者目前的開(kāi)發(fā)經(jīng)驗(yàn)來(lái)看,比較實(shí)用的方法還是先判斷數(shù)據(jù)來(lái)源痹屹,再對(duì)私有tag進(jìn)行讀取章郁,可以避免誤讀。
標(biāo)準(zhǔn)Dicom Command Dictionary
前邊所講的內(nèi)容嗾使關(guān)于數(shù)據(jù)屬性的志衍, 那么你可能會(huì)問(wèn)暖庄,像打印、存儲(chǔ)楼肪、移動(dòng)這種指令是怎么進(jìn)行編碼的呢培廓?其實(shí)也很簡(jiǎn)單,Dicom 在Group 號(hào)為0000中對(duì)命令進(jìn)行編碼春叫,該組中只包含DIcom指令肩钠,如 (0000, 0100)表示指令類型暂殖,(0000价匠, 0110)表示指令消息ID。這里需要注意的是呛每,Dicom中并不提供擴(kuò)展私有Command Dictionary踩窖。這也許會(huì)在未來(lái)Dicom標(biāo)準(zhǔn)中被支持,但目前來(lái)看晨横,還是不可以的洋腮。
以上為數(shù)據(jù)字典的全部?jī)?nèi)容,如有疑問(wèn)或建議颓遏,歡迎留言徐矩。