【转】DICOM命令集和数据集解析!!
轉(zhuǎn)自:DICOM命令集和數(shù)據(jù)集解析 - 微笑的艾米 - 博客園
摘?? 要:本文通過(guò)分析一個(gè)典型的DICOM消息,詳細(xì)地解析了DICOM命令集和數(shù)據(jù)集的構(gòu)成方式和其含義。并在此基礎(chǔ)上,提出了一種實(shí)現(xiàn)DICOM命令集和數(shù)據(jù)集解析的實(shí)施方案,并對(duì)該種方案的設(shè)計(jì)思路和具體實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的闡述。
關(guān)鍵詞:醫(yī)學(xué)數(shù)字成像及通信標(biāo)準(zhǔn),信息對(duì)象定義,服務(wù)對(duì)象對(duì)
1.???????前言
DICOM(Digital Imaging and Communications in Medicine)是醫(yī)療設(shè)備的國(guó)際標(biāo)準(zhǔn)通信協(xié)議,它為在不同醫(yī)療設(shè)備之間對(duì)醫(yī)學(xué)圖像等數(shù)字信息進(jìn)行各種命令操作定義了統(tǒng)一的規(guī)范。現(xiàn)在,越來(lái)越多的醫(yī)療設(shè)備生產(chǎn)廠家開(kāi)始施行并支持DICOM標(biāo)準(zhǔn)。現(xiàn)在廣泛使用的版本是DICOM3.0。
在本文中,利用一個(gè)實(shí)例來(lái)分析DICOM協(xié)議是如何利用DICOM命令集和數(shù)據(jù)集在不同醫(yī)療設(shè)備之間進(jìn)行圖像存儲(chǔ)操作的,并在此基礎(chǔ)上,提出了一個(gè)解析DICOM命令集和數(shù)據(jù)集的實(shí)現(xiàn)方案。
2.????信息對(duì)象定義
DICOM是一個(gè)數(shù)字醫(yī)學(xué)圖像的網(wǎng)絡(luò)通訊接口標(biāo)準(zhǔn)。基于此,將現(xiàn)實(shí)世界中的實(shí)體進(jìn)行抽象數(shù)據(jù)化是制定標(biāo)準(zhǔn)的一個(gè)重要步驟。DICOM標(biāo)準(zhǔn)描述了許多信息對(duì)象類(Information Object Class,簡(jiǎn)稱IOC)。這些信息對(duì)象類為現(xiàn)實(shí)世界中能夠以數(shù)字醫(yī)學(xué)圖像這種方式通訊的實(shí)體提供了一個(gè)面向?qū)ο蟮某橄蠖x,這個(gè)定義稱作信息對(duì)象定義(Information Object Definition,簡(jiǎn)稱IOD)。一個(gè)信息對(duì)象定義(IOD)是由若干包含相關(guān)信息的信息實(shí)體組成。每一個(gè)信息實(shí)體對(duì)應(yīng)著DICOM應(yīng)用模型中的現(xiàn)實(shí)世界實(shí)體(如患者、圖像等)的一個(gè)數(shù)據(jù)抽象。每個(gè)信息實(shí)體是由若干屬性組成的,屬性是現(xiàn)實(shí)世界實(shí)體性質(zhì)(如患者的姓名、年齡、圖像的成像日期等)的抽象。在DICOM標(biāo)準(zhǔn)中,每個(gè)屬性用一個(gè)數(shù)據(jù)元素來(lái)描述,而一個(gè)信息實(shí)體的相關(guān)屬性的集合則用數(shù)據(jù)集來(lái)描述。
3.?服務(wù)對(duì)象對(duì)
面向?qū)ο蟮脑O(shè)計(jì)不僅描述了對(duì)象本身的屬性,同時(shí)還說(shuō)明了怎樣處理這些對(duì)象的方法。DICOM標(biāo)準(zhǔn)就是利用這個(gè)概念,定義了諸如存儲(chǔ)圖像、獲取病人信息之類的服務(wù)。由于是面向?qū)ο蟮脑O(shè)計(jì),故服務(wù)又被稱作服務(wù)類。一個(gè)服務(wù)類由若干個(gè)相關(guān)的服務(wù)對(duì)象類(Service Object Pair Class,簡(jiǎn)稱SOP Class)組成。SOP類是DICOM標(biāo)準(zhǔn)中定義的基本功能單位。對(duì)于一個(gè)特定的SOP類來(lái)說(shuō),一臺(tái)裝置可能扮演以下兩個(gè)角色:一:服務(wù)類提供者(Service Class Provider,簡(jiǎn)稱SCP),扮演這個(gè)角色的機(jī)器提供SOP類的服務(wù),它相當(dāng)于客戶/服務(wù)器模型中的服務(wù)器(Server);二:服務(wù)類使用者(Service Class User,簡(jiǎn)稱SCU),扮演這個(gè)角色的裝置使用SOP類的服務(wù),它相當(dāng)于客戶/服務(wù)器模型中的客戶。例如一臺(tái)成像裝置要打印一幅圖像,在這種情況下,該成像裝置為與打印相關(guān)的SOP類的SCU,打印機(jī)為SCP。一個(gè)SOP類的一次具體實(shí)現(xiàn)稱作服務(wù)對(duì)象對(duì)實(shí)例,存儲(chǔ)圖像、獲取病人信息等操作就是通過(guò)SOP實(shí)例實(shí)現(xiàn)的。
圖1形象地描述了SOP類及其實(shí)例的關(guān)系。
????
?????????動(dòng)詞:Store ??服務(wù)(DIMSE)
????????????名詞:MRI?Image ??信息對(duì)象定義IOD
一般句子:Store?a?MRI?image ??SOP類
特指句子:Store?this?MRI?image ??SOP實(shí)例
?????????????
圖1 SOP類與實(shí)例
4.???????DICOM消息
一個(gè)SOP類被定義為一組特定的服務(wù)與一個(gè)相關(guān)的信息對(duì)象(IOD)的結(jié)合,一個(gè)SOP類的具體實(shí)現(xiàn)是通過(guò)DICOM消息的交互完成的。
在DICOM標(biāo)準(zhǔn)中,DICOM消息由命令集和數(shù)據(jù)集組成,其中數(shù)據(jù)集描述現(xiàn)實(shí)世界信息對(duì)象的一個(gè)實(shí)例,而命令集則描述對(duì)這個(gè)信息對(duì)象實(shí)例做何種操作。命令集由若干個(gè)命令元素組成,每個(gè)命令元素由標(biāo)簽域、值長(zhǎng)度域和值域組成。而數(shù)據(jù)集由若干個(gè)數(shù)據(jù)元素組成,每個(gè)數(shù)據(jù)元素由標(biāo)簽域、數(shù)據(jù)表示類型域(可選域)、值長(zhǎng)度域和值域組成。
無(wú)論是在命令集還是數(shù)據(jù)集中,標(biāo)簽都唯一的標(biāo)識(shí)一個(gè)命令或者數(shù)據(jù)元素,元素必須按標(biāo)簽的升序依次排列,且每個(gè)元素一般最多只能出現(xiàn)一次(嵌套除外),元素標(biāo)簽由一對(duì)組號(hào)和元素號(hào)組成,兩者均為16位無(wú)符號(hào)整數(shù);值長(zhǎng)度域是以字節(jié)數(shù)表明值域的長(zhǎng)度,其值必須為偶數(shù);值域包含了有關(guān)操作命令的屬性值(針對(duì)命令元素而言)或者現(xiàn)實(shí)世界信息對(duì)象實(shí)例的屬性的具體值(針對(duì)數(shù)據(jù)元素而言),其長(zhǎng)度是可變的,但是不能超過(guò)值長(zhǎng)度域所規(guī)定的長(zhǎng)度。
在數(shù)據(jù)集中,數(shù)據(jù)表示類型域是一個(gè)可選項(xiàng),說(shuō)明值域的類型。當(dāng)元素中包含該域時(shí),稱作顯式VR(Value Representation),否則稱作隱式VR。
下面的表格描述了一個(gè)典型DICOM消息,其中數(shù)據(jù)集描述了一個(gè)圖像的具體實(shí)例,而命令集的含義則是請(qǐng)求對(duì)該圖像實(shí)例做存儲(chǔ)(C-STORE)服務(wù),很顯然,這是一個(gè)從SCU發(fā)往SCP的存儲(chǔ)(C-STORE)請(qǐng)求(REQUEST)消息。其中組號(hào)為0000的元素為命令元素,其它為數(shù)據(jù)元素。如表1所示。
表1 C-Store服務(wù)的DICOM請(qǐng)求消息
| 組 | 元素 | 長(zhǎng)度 | 值 | 意義 | 說(shuō)明 |
| 0000 | 0000 | 0004 0000 | 0056 0000 | 從本字段的結(jié)束至下一組開(kāi)始的偶數(shù)字節(jié) | |
| 0000 | 0001 | 0004 0000 | 01A0 0010 | 從本字段的結(jié)束至報(bào)文結(jié)束的偶數(shù)字節(jié) | |
| 0000 | 0010 | 000C 0000 | 4341 2D52 454E 414D 3120 302E | “ACR-NEMA 1.0” | 識(shí)別碼 |
| 0000 | 0100 | 0002 0000 | 0001 | 0001H | 命令字段=C-Store-Request |
| 0000 | 0110 | 0002 0000 | 123A | 123A | 由成像裝置生成的報(bào)文識(shí)別號(hào) |
| 0000 | 0200 | 0004 0000 | 4344 3148 | “DCH1” | 發(fā)送者邏輯地址 |
| 0000 | 0300 | 0004 0000 | 4341 3148 | “ACH1” | 接收者邏輯地址 |
| 0000 | 0800 | 0002 0000 | 0000 | 0000H | 數(shù)據(jù)類型=圖像 |
| 0008 | 0000 | 0004 0000 | 0080 0000 | ||
| 0008 | 0001 | 0004 0000 | 013E 0100 | ||
| 0008 | 0010 | 000C 0000 | 4341 2D52 454E 414D 3120 302E | “ACR-NEMA 1.0” | 識(shí)別碼 |
| 0008 | 0020 | 000A 0000 | 3032 3230 312E 2E31 3532 | “2002.11.25” | 分項(xiàng)檢查日期 |
| 0008 | 0030 | 0008 0000 | 3231 303A 3A35 | “12:05:59” | 分項(xiàng)檢查時(shí)間 |
| 0008 | 0040 | 0002 0000 | 0000 | 0000H | 數(shù)據(jù)集類型=圖像 |
| 0008 | 0060 | 0002 0000 | 5254 | “DR” | 成像模式 |
| 0008 | 0070 | 0004 0000 | 4241 4443 | “ABCD” | 制造商 |
| 0008 | 0080 | 000E 0000 | 454D 4352 2059 4F48 5053 5449 4C41 | “Mercy Hospital” | 醫(yī)院識(shí)別號(hào) |
| 0008 | 0090 | 0000 0000 | 檢查醫(yī)師未知 | ||
| 0010 | 0000 | 0004 0000 | 0042 0000 | 組長(zhǎng)度 | |
| 0010 | 0010 | 000E 0000 | 4F4A 454E 2C53 4A20 4D49 4320 202E | “JONES, Jim C. “ | 患者姓名 |
| 0010 | 0020 | 0008 0000 | 3031 2D32 3033 2034 | “102-304 “ | 患者識(shí)別號(hào) |
| 0010 | 0030 | 000A 0000 | 3931 3632 312E 2E31 3532 | “1926.11.25” | 患者出生日期 |
| 0010 | 0040 | 0002 0000 | 204D | “M “ | 患者性別=男 |
| 0018 | 0000 | 0004 0000 | 0000 0000 | 組長(zhǎng)度為零—無(wú)其它元素傳送 | |
| 0020 | 0000 | 0004 0000 | 0018 0000 | 組長(zhǎng)度 | |
| 0020 | 0010 | 0004 0000 | 3932 3330 | “2903” | 分項(xiàng)檢查號(hào) |
| 0020 | 0020 | 0004 0000 | 5C52 2046 | “R/F” | 患者取向 |
| 0028 | 0000 | 0004 0000 | 002C 0000 | 組長(zhǎng)度 | |
| 0028 | 0010 | 0002 0000??? | 0400 | 0400H | 行數(shù)=1024 |
| 0028 | 0011 | 0002 0000 | 0400 | 0400H | 列數(shù)=1024 |
| 0028 | 0030 | 0006 0000 | 2E20 5C33 332E | “ .3\.3” | 像素的實(shí)際尺寸=0.3*0.3像素 |
| 0028 | 0100 | 0002 0000 | 0008 | 008H | 每個(gè)像素指定的位數(shù)=8 |
| 7FE0 | 0000 | 0004 0010 | 0008 0010 | 組長(zhǎng)度 | |
| 7FE0 | 0010 | 0000 0000 | *******…***** | 像素?cái)?shù)據(jù)(524,288字節(jié)) |
5.???????編碼
在實(shí)際應(yīng)用中,利用兩個(gè)基類CElement和CElementSet分別表示數(shù)據(jù)元素(或者命令元素)以及這些元素集合的抽象,并且描述各自的基本特征屬性。利用這兩個(gè)基本類可以派生出其它類。例如,我們利用類CElementSet的一個(gè)派生類DcmFile來(lái)描述一個(gè)DICOM圖像文件,在這個(gè)類中,我們實(shí)現(xiàn)了兩個(gè)主要方法loadDcmFile()和writeToDcmFile(),它們的含義分別是從指定的路徑下讀取DICOM圖像文件和把數(shù)據(jù)集中的所有數(shù)據(jù)元素還原成指定路徑下的DICOM圖像文件;同樣,我們利用類CElementSet的另外一個(gè)派生類CommandSet來(lái)描述一個(gè)命令集,它包含兩個(gè)主要方法getCmdValue()和getDataType(),其含義分別是獲取此命令集描述的服務(wù)和消息類型以及獲取此命令集的操作對(duì)象(數(shù)據(jù)集)所描述的信息實(shí)體類型。
在解析一個(gè)命令集(或者數(shù)據(jù)集,例如一個(gè)DICOM圖像文件)時(shí),可以以標(biāo)簽為標(biāo)識(shí),讀出感興趣的命令元素(或者數(shù)據(jù)元素),并將該命令元素(數(shù)據(jù)元素)作為類CCommandElement(或者類CDataElement,均為類 CElement的派生類)的一個(gè)實(shí)例來(lái)處理。
例如在解析表1的DICOM消息時(shí),首先應(yīng)該讀取它的命令集,即組號(hào)為0000的元素。讀取的每個(gè)命令元素作為類CCommandElement (類CElement的派生類)的一個(gè)實(shí)例存在,而讀取的所有命令元素的集合作為類CommandSet的一個(gè)實(shí)例存在。然后,再利用CommandSet提供的方法getCmdValue()和getDataType()獲取此命令集描述的服務(wù)和消息類型以及此命令集的操作對(duì)象(即數(shù)據(jù)集)所描述的信息實(shí)體類型。在本例中,根據(jù)DICOM標(biāo)準(zhǔn),由于命令集中標(biāo)簽為[0000,0010]的值域的具體值是0001H,所以,該命令集所描述的是C-STORE服務(wù)請(qǐng)求,而標(biāo)簽為[0000,0080]的值域的具體值是0000H,因此,該命令集的操作對(duì)象(即數(shù)據(jù)集)的類型是圖像。綜合起來(lái),這個(gè)DICOM消息的含義就是存儲(chǔ)封裝在數(shù)據(jù)集中的圖像文件。
解析完命令集后,根據(jù)解析結(jié)果,再讀取同一個(gè)DICOM消息中的數(shù)據(jù)集,即組號(hào)不是0000的元素,這里,將每個(gè)讀取的數(shù)據(jù)元素作為類CDataElement(類CElement的派生類)的一個(gè)實(shí)例存在,而讀取的所有數(shù)據(jù)元素的集合作為類DcmFile的一個(gè)實(shí)例存在。然后,調(diào)用類DcmFile所提供的writeToDcmFile()方法,將這些數(shù)據(jù)元素還原成圖像文件的形式并加以存儲(chǔ)。最后,根據(jù)命令執(zhí)行的成功與失敗,構(gòu)造一個(gè)響應(yīng)信息,返回給服務(wù)請(qǐng)求端。
6.結(jié)束語(yǔ)
DICOM標(biāo)準(zhǔn)是第一個(gè)廣為接受的醫(yī)療設(shè)備間通訊的國(guó)際標(biāo)準(zhǔn),它作為一個(gè)計(jì)算機(jī)和醫(yī)學(xué)相關(guān)聯(lián)的紐帶起著非常重要的作用。
本文通過(guò)分析一個(gè)典型的DICOM消息,詳細(xì)地解析了DICOM命令集和數(shù)據(jù)集的構(gòu)成方式和其含義。并在此基礎(chǔ)上,提出了一種實(shí)現(xiàn)DICOM命令集和數(shù)據(jù)集解析的實(shí)施方案,并對(duì)該種方案的設(shè)計(jì)思路和具體實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的闡述。實(shí)現(xiàn)DICOM命令集和數(shù)據(jù)集的解析為遠(yuǎn)程醫(yī)療應(yīng)用提供了基礎(chǔ)。
參考文獻(xiàn)
1.?????? National Electrical Manufacturer Association. Digital Imaging and Communication in Medicine(DICOM)[S],1999
2.?????? 賈克斌,沈波. 實(shí)現(xiàn)醫(yī)學(xué)影像存檔和傳輸系統(tǒng)中的若干關(guān)鍵技術(shù)[J]. 中國(guó)圖像圖形學(xué)報(bào),2000,5(A)(7):539-544
總結(jié)
以上是生活随笔為你收集整理的【转】DICOM命令集和数据集解析!!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 兴业虚拟信用卡可以办分期吗
- 下一篇: 【转】彻底理解cookie,sessio