dicom入門資料

DICOM協議目錄

DICOM(Digitalimaging and Communications in Medicine)數字影像和通信標準

DICOM3.0.2004在2004年11月發佈。
DICOM 3.0標準共有18個部分,其各部分的內容概要如下:
第一部分:引言與概述,簡要介紹了DICOM的概念及其組成。
第二部分:DICOM兼容性聲明。聲明DICOM要求製造商精確地描述其產品的DICOM兼容性,即構造一個該產品的DICOM兼容性聲明。
第三部分: DICOM信息對象定義。介紹了lOD和SOP類。
第四部分:服務類,說明了14個服務類,服務類詳細介紹了功能與信息對象上的命令及其產生的結果。
第五部分:數據結構及語意,描述了怎樣對信息對象類和服務類進行構造和編碼。
第六部分:數據字典,描述了所有信息對象是由數據元素組成的,數據元素是對屬性值的編碼。
第七部分:消息交換,定義了進行消息交換時相互通訊的醫學圖像應用實體所用到的服務和協議。
第八部分:消息交換的網絡通訊支持,說明了在網絡環境下的通訊服務和支持DICOM應用實體進行消息交換的必要的上層協議。
第九部分:消息交換的點對點通訊支持。由於目前在實際中很少使用點對點通信,該部分在DICOM 2003版中已經被刪除。
第十部分:介質存儲與文件格式。
第十一部分:介質存儲應用描述。
第十二部分:存儲功能和用於數據交換的介質格式。
第十三部分:打印管理的點對點通訊支持。該部分在DICOM 2003中也已被刪除。
第十四部分:灰度圖的標準顯示(顯示和打印)功能。
第十五部分:安全特性描述。
第十六部分:內容資源映射。
第十七部分:說明信息。這部分包含標準化表格和信息附件中的說明信息。
第十八部分:WEB訪問DICOM持久對象。定義基於WEB的服務,用於訪問DICOM持久對象。提供從HTML頁面或者XML文檔訪問DICOM持久對象的簡單機制。


DICOM簡介

一 dicom是什麼?
二 dicom文件結構
三 如何編寫dicom程序
四 利用開發包開發dicom程序
五 dcmtk使用介紹

一 dicom是什麼?
dicom全名是醫學數字影像和通訊。它是個編碼和數據傳輸協議。醫院裏的ct機出來的x光膠片就是遵從這個協議編碼的。當然其他儀器比如核磁共振等等也是如此。平時看到的膠片只是打印出來的dicom文件的部分數據。ct機所有的操作包括打印、生成文件、傳輸都要遵從dicom協議。


二 dicom文件結構 如圖就是dicom文件的結構。
圖中所用軟件是“jdicom”這是一個用java編寫的免費軟件,這個軟件是我作dicom開發不可缺少的參考。
它的網址是 http://www.tiani.com 進入網站在菜單research裏面有“jdicom”一項。由於是java軟件需要下載一個“j2re-1_3_1_14-windows-i586-i.exe”網址在這裏 http://java.sun.com/products/archive/index.html 當然“www.tiani.com”也會有相關聯接。
下面引用pacs論壇上總版主JB的一片帖子忘記了。來簡要介紹dicom文件結構。相信有了上面軟件“jdicom”直接對dicom的觀察和這篇pacs上的帖子再加對dicom協議的閱讀後相信對dicom文件的結構會有一個清晰的瞭解。
以下是帖子內容:

DICOM 文件格式 DICOM 文件內容在 Part 3 DICOM IOD 裏定義。CT, MR, CR, DR, US, NM, PET, XA 等各有自己的內容定義,由共同的專有的部分 (IE 和 Modules) 組成。
DICOM 文件內容由兩個部分組成:存參數的 header 和圖點數據 (pixel data)。
header 只描述圖像的基本參數:如病人基本資料、檢驗基本資料、系列資料、位置資料等等。
DICOM 的 4 個內容層次: 1. Patient (病人) 2. Study (檢驗) 3. Series (系列) 4. Image (圖像) 儘管頭幾層的內容在很多圖像裏是相同的,它們在每個圖像文件裏都要有。每一層叫一個 Information Entity,或 IE (從 relational database schema 設計引用而來)。每一層又細分成 Module。每個 Module 裏面的最小單元叫做一個 attribute 或 element。

現在舉個例子:

CR 圖像 (DICOM Part 3, A.2.3, Table A.2-1 1. Patient IE: a. Patient Module (參考 C.7.1.1)
2. Study IE: a. Study Module (參考 C.7.2.1) b. Patient Study Module (參考 C.7.2.2)
3. Series IE: a. General Series (參考 C.7.3.1) b. CR Series (參考 C.8.1..1) c. General Equipment (參考 C.7.5.1)
4. Image IE: a. Genrral Image (C.7.6.1) b. Image Pixel (C.7.6.3) c. Contrast/bolus (C.7.6.4) d. CR Image (C.8.1.2) ... i. SOP Common (C.12.1) 將這些 modules (tables) 裏的所有 elements 都找出來就做成了一個 CR 圖像的架構。要注意的是這些 module 有些是一定要的 (modatory) 有些是用戶選用的 (user)。到了每個 module 裏 attribute/element 表又有分五類 Type 1, 1C, 2, 2C 和 3。 Type 1 是一定要的,2 也是一定要的但是內容可以是空的。Type 3 則可要可不要。所以濃縮一下,一個 CR 圖像裏的元素 (elements) 也不是太多。把這些表格展開後,這些 elements 組成一個 dataset。

那麼寫到一個文件裏或通過網路傳送又是個什麼格式呢?這就要看 Part 5。

一個元素 (element) 的結構是:

1. group tag: 16-bit
2. element tag: 16-bit
3. length (or VR/length): 32-bit
4. data (bytes of length) 對應每一個用到的 element DICOM 標準 Part 6 都定義了一個 group tag 和 element tag。比如說: patient name: 0x0010, 0x0010 patient ID: 0x0010, 0x0020 ... VR 說的是 element 格式,比如說 patinet name 的 VR 是 PN。格式是 last_name^first_name^middle_name^prefix^surfix。那麼我的英文名字就是: Wang^JB^^Dr.^

往外寫時要做幾個事情:

1. 要把所有元素按 group tage 和 element tag 理一遍 (sort)。從小排到大。
2. 如果是寫 DICOM 介質的 DICOM file 還先寫 128 bytes preamble (一般是空白),加 "DICM", 加 group 2 Meta header。(講到 Part 10 時再細說)
3. 如果 dataset 裏面含有 Sequence elements, sequence 裏面每一個 Item 又是一個 dataset。 [注意]:dicom協議共有15章,其中第三章是“信息對象定義”,第五章是“數據結構和編碼”,第六章是“數據字典”這幾張比較重要。


三如何編寫dicom程序自己編寫dicom很困難,編出來的程序經常會有兼容性的問題。本人提倡用開發包進行dicom程序編寫,但是爲了加深對dicom協議的瞭解還是應該嘗試一下至少看一看別人的代碼。這裏提供兩個程序。這兩個程序都存在兼容性的問題,有的dicom文件會讀不出來。但是作爲初學者的參考還是值得一看的。

第一個程序是pacs論壇上的總版主JB所寫(對!還是那個人),“DcmBmp轉換程序.rar”主要是把dicom文件中的像素信息轉換成bmp文件。

第二個程序是一個pacs論壇上的一個網友wakyrei所寫(由於服務器數據庫文件以外遭到破壞這個人在pacs論壇上的所有信息都已經消失的無影無蹤了),“dcm”此程序相當粗燥讀起來需要一定耐心,作者好像根本不懂怎樣使用mfc,不過其中的dicom類還是值得推敲的。

 

 

看完幾個解惑的問題,那就直接找一個dcm格式圖像看數據吧,但是有一些標識符是什麼意思呢?

DICOM圖像格式
多幀圖像的文件數據流格式(以JPG格式爲例):

(7FE0, 0010) + ‘OB’+ (0000) + (FFFF, FFFF) //最後4個字節全是F,表明是未知長度

(FFFE, E000) + (xxxx, xxxx) + (FrameNum*4)

(FFFE, E000) + (xxxx, xxxx) //(xxxx,xxxx)是第一幀圖像大小

…………

………… 第一幀圖像數據區

…………

(FFFE, E000) + (xxxx, xxxx) //(xxxx,xxxx)是第二幀圖像大小

…………

………… 第二幀圖像數據區

…………

(FFFE, E000) + (xxxx, xxxx) //(xxxx,xxxx)是第三幀圖像大小

…………

………… 第三幀圖像數據區

…………

以此類推……

(FFFE, E000) + (xxxx, xxxx) //(xxxx,xxxx)是最後一幀圖像大小

…………

………… 最後一幀圖像數據區

…………

(FFFE, E0DD) + (0000, 0000) //圖像結束

個人筆記整理,如有不足或錯誤,不吝賜教

0002組:

(0002,0000):0002組的總長度,但不包含(0002,0000)tag的長度。

(0002,0001):寫文件時,通常,bVersion[2] = {0,1},這個值是2字節。

(0002,0002):SOP Class UID

舉例說明:

例如取值“1.2.840.10008.5.1.4.1.1.7”

則指明該圖像是Secondary Capture Image即“SC”

相關標籤:(0008,0016)與(0002,0002)取相同值

(0008,0060)取值“SC” 。

如果取值是1.2.840.10008.5.1.4.1.1.77.1.1.1是指:

(0002,0003):SOP Instance UID

用來唯一標示這個圖像文件,常由產生這個圖像的設備生成;同

一設備產生的圖像具有的實例UID是不一樣的。可自定義。

相關標籤:(0008,0018)與該標籤取相同值。

(0002,0010):Transfer Syntax UID.

例如:取值“1.2.840.10008.1.2.4.50”

代表:JPEG Baseline(Process 1)

Default Transfer Syntax for Lossy JPEG 8 Bit Image

Compression.

(0002,0012):Implementation SOP Class UID,用來標示產生該圖像的機構,對

所有圖像來說,它都是同樣的一個值。

0008組:

(0008,0000):0008組的總長度,但不包含(0008,0000)tag的長度。

(0008,0005):在DICOM(2004)中給出了中文的編碼字符集—

ISO_IR 192 (繁體)

GB18030 (簡體)

具體使用以及和GB2312的區分,有待更進一步的討論。

(0008,0008):詳細參考PART3 C7.6.1.1.2

(0008,0016):SOP Class UID 取值與(0002,0002)相同。

(0008,0018):SOP Instance UID,取值與(0002,0003)相同。

(0008,0020):study date,檢查開始日期

(0008,0021):serial date,序列開始日期

(0008,0022):acquisition date,每個序列都不一樣,同一個序列一樣。

(0008,0030):study time,檢查開始時間

就是生成當前圖像時間

(0008,0031):serial time,序列開始時間

(0008,0032):acquisition time,每個序列都不一樣,同一個序列一樣。

(0008,0033):content time,圖像時間,每幅圖都不一樣

(0008,0054):Title of the DICOM Application Entity where the

Image(s) may be retrieved on the network.

(0008,0060):圖像類型,如:“SC”指Secondary Capture Image。

相關標籤:(0002,0002)。

(0008,0064):Discribes the kind of image conversion.

Defined Terms:

DV = Digitized Video

DI = Digital interface

DF = Difitized Film

WSD = Workstation

SD = Scanned Document

SI = Scanned Image

DRW = Drawing

SYN = Synthetic Image

(0008,0070):Menufacture. eg: GOLDWAY

(0008,0080):Institution Name. eg: Hoog Hospital(醫院名稱)

(0008,0090):Refering physician’s name(檢查醫生)

(0008,0081):(0008,0080)的通信地址

(0008,1010):Station Name. eg: Hoog Hospital

(0008,1030):study description

(0008,1080):Description of the admitting diagnosis(diagnoses診斷)

(0008,1084):A sequence that conveys the admitting

diagnosis (diagnoses). One or more Items

may be included in this Sequence.

 

DICOM標籤

Meta Element Group Length (0002,0000)   1     UL
File Meta Information Version (0002,0001)   1     OB
   Media Storage SOP Class UID (0002,0002)   1     UI
Media Storage SOP Instance UID (0002,0003)   1     UI
        Transfer Syntax UID (0002,0010)   1     UI
       Implementation Class UID (0002,0012)   1     UI
   Implementation Version Name (0002,0013)   1     SH
Source Applica... Entity Title (0002,0016)   1     AE


       Identifying Group Length (0008,0000)   1     UL
         Specific Character Set(0008,0005)   1   CS
                     特殊字符集                  
                     Image Type (0008,0008)   1-n   CS
圖像類型 AXIAL = 確定一個CT軸圖像
           LOCALIZER   = 確定一個CT定位器圖像
                 SOP Class UID (0008,0016)   1     UI
                       SOP類UID
               SOP Instance UID (0008,0018)   1     UI
                     SOP實例UID
                     Study Date (0008,0020)   1     DA
         研究信息獲得開始的日期
                   Series Date (0008,0021)   1     DA
                 序列開始的日期
               Acquisition Date (0008,0022)   1     DA
產生這個圖象的數據獲得開始的日期
                     Image Date (0008,0023)   1     DA
         圖象數據開始創建的日期
                     Study Time (0008,0030)   1     TM
         研究信息獲得開始的時間
                   Series Time (0008,0031)   1     TM
                 序列開始的時間
               Acquisition Time (0008,0032)   1     TM
產生這個圖象的數據獲得開始的日期
                     Image Time (0008,0033)   1     TM
         圖象數據開始創建的時間
               Accession Number (0008,0050)   1     SH 
     RIS產生的標識研究順序的號碼
                       Modality (0008,0060)   1     CS
最初獲得數據來創建這個序列中的圖象的設備的類型
                   Manufacturer (0008,0070)   1     LO
     產生數字圖象的設備的製造商
               Institution Name (0008,0080)   1     LO
                 設備位於的機構        
     Referring Physician's Name (0008,0090)   1     PN
     這次就診病人的主要負責醫師
                   Station Name (0008,1010)   1     SH
用戶定義的名字,標識產生數字圖象的機器
             Study Description (0008,1030)   1     LO
機構產生的描述或已執行的研究(組件)的分類
Institutional Department Name (0008,1040)   1     LO
產生數字圖象的設備定位的機構內的部門
   Performing Physician's Name (0008,1050)   1-n   PN
                 執行研究的醫師
Name of Physic...Reading Study (0008,1060)   1-n   PN
                 閱讀研究的醫師
               Operator's Name (0008,1070)   1-n   PN
             序列的技術支持人員
     Manufacturer's Model Name (0008,1090)   1     LO
產生數字圖象的設備的製造商模型號

 

           Patient Group Length (0010,0000)   1     UL
                 Patient's Name (0010,0010)   1     PN
             病人的完整合法姓名
                     Patient ID (0010,0020)   1     LO
       主要醫院標識號或病人代碼
           Patient's Birth Date (0010,0030)   1     DA
       指定名字的病人的出生日期
                 Patient's Sex (0010,0040)   1     CS
                       病人性別
                 Patient's Age (0010,1010)   1     AS
                       病人年齡

 

Acquisition Group Length (0018,0000)   1     UL
             Body Part Examined (0018,0015)   1     CS
           檢查的身體部位的描述
               Slice Thickness (0018,0050)   1     DS
   名義上的切片厚度,以毫米爲單位
                           KVP (0018,0060)   1     DS
       Data Collection Diameter (0018,0090)   1     DS
                 直徑數據的採集
           Device Serial Number (0018,1000)   1     LO
產生數字圖象的設備的製造商序列號
           Software Version(s) (0018,1020)   1-n   LO
產生數字圖象的設備的製造商模型號
             Spatial Resolution (0018,1050)   1     DS
設備的固有毫米限制分辨率,是對於高對比物體所選擇的數據
採集和重建技術。如果可變的交叉序列的圖象,這個值在圖象的中心
       Reconstruction Diameter (0018,1100)   1     DS
直徑的改變   在毫米範圍之內的直徑數據被用於生成影像的改變。
數據可能存在於這種範圍之外,而且部分病人也在範圍之外
   Distance Source to Detector (0018,1110)   1     DS
             源頭到探測器的距離
     Distance Source to Patient (0018,1111)   1     DS
               源頭到病人的距離
           Gantry/Detector Tilt (0018,1120)   1     DS
               支架/探測器的傾斜
                   Table Height (0018,1130)   1     DS
                           表高
             Rotation Direction (0018,1140)   1     CS
   旋轉方向 當相關聯時,源頭的旋轉方向大約最
接近設備的主要軸。計算標準:CW = 順時針CC = 逆時針
                 Exposure Time (0018,1150)   1     IS
                       曝光時間
             X-ray Tube Current (0018,1151)   1     IS
                 X射線管的電流
               Generator Power (0018,1170)   1     IS
                     發電機功率
                 Focal Spot(s) (0018,1190)   1-n   DS
                         病竈點
             Convolution Kernel (0018,1210)   1-n   SH
迴旋中心 描述迴旋中心或者算法的標籤用於改變數據
               Patient Position (0018,5100)   1     CS
                       病人位置

 

     Relationship Group Length (0020,0000)   1     UL
             Study Instance UID (0020,000D)   1     UI
               研究的唯一標識符
           Series Instance UID (0020,000E)   1     UI
               序列的唯一標識符
                       Study ID (0020,0010)   1     SH
     產生研究標識符的用戶或設備
                 Series Number (0020,0011)   1     IS
             標識這個序列的號碼
             Acquisition Number (0020,0012)   1     IS
                     獲得的數字
Instance (form...Image) Number (0020,0013)   1     IS
                 標識圖象的號碼 
           Patient Orientation   (0020,0020)   2     CS
                     病人方位
       Image Position (Patient) (0020,0032)   3     DS
               圖像位置(病人)
   Image Orientation (Patient) (0020,0037)   6     DS
               圖像方向(病人)
         Frame of Reference UID (0020,0052)   1     UI
     爲一個序列唯一地標識參考幀
   Position Reference Indicator (0020,1040)   1     LO
     病人解剖學部分用作一個參考
                 Slice Location (0020,1041)   1     DS
   實際的相對位置,以毫米爲單位。
                 Image Comments (0020,4000)   1     LT
       用戶定義的關於圖象的註解

 

Image Presenta... Group Length (0028,0000)   1     UL
             Samples per Pixel (0028,0002)   1     US
     每個象素實例每個象素的樣本 對於單色(灰度)和
調色板顏色圖像,位面的數字是1。對於RGB和其它三矢量
顏色模型,這個屬性值是3。對於ARGB和其它四矢量顏色
模型,這個屬性值是4。對於CT圖像,每個象素實例
有一個1列舉值。
     Photometric Interpretation (0028,0004)   1     CS
     光度計的解釋 對於CT圖像,有下面列舉值之一:
MONOCHROME1 MONOCHROME2
                           Rows (0028,0010)   1     US
                 圖像中行的數字
                       Columns (0028,0011)   1     US
                 圖像中列的數字
                 Pixel Spacing (0028,0030)   2     DS
象素空間 病人中各個象素中心點之間的物理距離,
由一個雙行的數字值(定界符)列值值以毫米來確定。
                 Bits Allocated (0028,0100)   1     US
位分配對於CT圖像,位分配有16的列舉值。
                   Bits Stored (0028,0101)   1     US
位存儲對於CT圖像,位存儲有12到16的列舉值。
                       High Bit (0028,0102)   1     US
高位對於CT圖像,高位只有小於發送到位存儲值的列舉值。
           Pixel Representation (0028,0103)   1     US
象素表示   象素樣本的數據表示。每個樣本有相同的象素表示。
列出的值:0000H=無符號整數0001H=2的補碼。
           Pixel Padding Value (0028,0120)   1     SS
添加到非矩形圖象來填充到矩形格式的象素值
                 Window Center (0028,1050)   1-n   DS
                           窗位
                   Window Width (0028,1051)   1-n   DS
                           窗寬
             Rescale Intercept (0028,1052)   1     DS
                   Rescale 截取
                 Rescale Slope (0028,1053)   1     DS
                   Rescale 斜面

 

       Pixel Data Group Length (7FE0,0000)   1     UL
                     Pixel Data (7FE0,0010)   1     OB
                       象素數據

 


1 判斷圖像是單色的還是彩色的
根據0028,0004(Photometric   Interpretation)決定,如果是MONOCHROME1或MONOCHROME2就是灰度的,如果是RGB則是RGB,還有其他可能。
還應該參考
  0028,0100   BitsAllocated  
  0028,0002   SamplePerPixel  
等決定位數

2 如何獲取圖像的像素數據
從7FE0,0010(Pixel   Data)得到像素數據就可以了。

3 DICOM文件頭

DICOM文件頭(DICOM File Meta Information)包含了標識數據集合的相關信息。每個DICOM文件都必須包括該文件頭。文件頭的最開始是文件前言,它由128個00H字節組成,接下來是DICOM前綴,它是一個長度爲4字節的字符串“DICM”,可以根據該值來判斷一個文件是不是DICOM文件。文件頭中還包括其它一些非常有用的信息,如文件的傳輸格式、生成該文件的應用程序等等,關於文件頭詳細的說明請參閱DICOM標準PS 3.10的13~14頁表7.1-1。

說明:

(1) 除了128字節的文件前言和4字節的DICOM前綴外,所有其它的文件頭元素都必須採用上面介紹的顯示格式編碼,各個數據元素排列的順序按照標籤數值從小到大的傳輸格式(Little Endian)編碼。

(2) 每個文件頭元素的長度必須爲偶數,否則應該按照規定補充一個字節。

(3) 所有(0002,****)類的標籤都爲DICOM所保留。爲了兼容後續版本,如果發現文件中有目前尚未規定的(0002,****)類標籤,則應該忽略它。

4 DICOM數據集合

DICOM文件主要組成部分就是數據集合。這不僅包括醫學圖像,還包括許多和醫學圖像有關的信息,如病人姓名、圖像大小等。

DICOM數據集合是由DICOM數據元素按照指定的順序依次排列組成的。對於DICOM文件,一般採用顯式傳輸,數據元素按標籤從小到大順序排列,即DICOM PS 3.5規定的Explicit VR Little En-dian Transfer Syntax。

在DIOCM標準的PS 3.3部分(Information Object Defini-tions)中,定義了各種類型的圖像文件必須包括和可選的DICOM數據元素,在制定自己的DICOM文件結構時,必須嚴格遵照該部分規定。例如,制定核磁共振醫學圖像的DICOM文件,可以查閱DICOM標準PS 3.3中的A.4節。其中定義瞭如下的核磁共振醫學圖像信息實體(Information Entity,IE)的內容(表4)。

表中“使用”列爲“M”時表示該模塊必須存在,“U”表示可選,“C”表示在特定的情況下必須存在。

要構造信息實體,按照表中指定的模塊參考相應的DICOM標準章節即可。例如,在制定Patient模塊時,查閱DICOM標準PS 3.3部分的C.7.1.1小節,可以查到如表5所示的病人模塊屬性表。

這樣按照表5中所列出的元素,選出自己需要的元素(表中類型爲1和2的元素是必須包括的,3可選)即可。按照表4中指出的所有模塊,查閱DICOM標準中相應的章節,選出合適的DICOM元素,這樣DICOM文件的格式就確定下來了。
轉自: HC3i

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章