【转】DICOM简述!!!!
轉(zhuǎn)自:DICOM簡述 - 簡書
視頻教程:https://www.bilibili.com/video/av66144772
- DICOM(Digital Imaging and Communications in Medicine)即醫(yī)學(xué)數(shù)字成像和通信,是醫(yī)學(xué)圖像和相關(guān)信息的國際標(biāo)準(zhǔn)(ISO 12052)。它定義了質(zhì)量能滿足臨床需要的可用于數(shù)據(jù)交換的醫(yī)學(xué)圖像格式。
- https://www.dicomstandard.org/
一.Dicom文件的主要結(jié)構(gòu)
-
主要包括文件頭和像素?cái)?shù)據(jù)兩部分,文件頭包括文件引言(Meta Information)和數(shù)據(jù)集(Data set)
?
1.數(shù)據(jù)元素的組成規(guī)則
- Tag:信息的唯一性編碼,兩個(gè)十六進(jìn)制的數(shù)的組合(Group, Element)
* group的數(shù)值是偶數(shù),代表是標(biāo)準(zhǔn)數(shù)據(jù)字典
* group的數(shù)值是奇數(shù),代表是自定義的私有數(shù)據(jù)字典 - VR(Value Representations):DICOM定義得的數(shù)據(jù)類型
- Value Length(數(shù)據(jù)長度):所有的數(shù)據(jù)元素都應(yīng)該為偶數(shù)長度,若為奇數(shù),需要加空格或空。
* 奇數(shù)長度的字符串加空格
* 奇數(shù)長度的數(shù)字加空NULL - Value Field:數(shù)據(jù)值,長度必須是偶數(shù)
2.文件引言MetaInfo:標(biāo)識一些常用信息,存儲在0x0002Group里
| 0002 | 0000 | File Meta Information Group Length | Meta Info的長度 | UL | 1 | 180 |
| 0002 | 0001 | File Meta Information Version | Meta Info的版本 | OB | 1 | |
| 0002 | 0002 | Media Storage SOP Class UID | SOP Class UID 同Data Set里的SOP class UID | UI | 1 | |
| 0002 | 0003 | Media Storage SOP Instance UID | SOP Instance UID 同Data Set里的SOP Instance UID | UI | 1 | 算出 |
| 0002 | 0010 | Transfer Syntax UID | DataSet的編碼方式 | UI | 1 | |
| 0002 | 0012 | Implementation Class UID | Implementation Class UID | UI | 1 | 實(shí)現(xiàn)類庫決定 |
| 0002 | 0013 | Implementation Version Name | Implementation版本名 | SH | 1 | |
| 0002 | 0016 | Source Application Entity? Title? | 最后一個(gè)編輯該文件的實(shí)體 | AE | 1 | |
| 0002 | 0017 | Sending Application? Entity Title | 網(wǎng)絡(luò)上發(fā)送該文件的實(shí)體 | AE | 1 | |
| 0002 | 0018 | Receiving Application? Entity Title? | 網(wǎng)絡(luò)上接收該文件的實(shí)體 | AE | 1 | |
| 0002 | 0100 | Private Information? Creator UID | 私有信息的Creator的UID | UI | 1 | |
| 0002 | 0102 | Private Information | Meta里面的私有信息 | OB | 1 |
?
3.數(shù)據(jù)集DataSet:醫(yī)學(xué)圖像的相關(guān)的信息
Patient:病人信息,鍵值為Patient ID(0010, 0020)
| 0010 | 0010 | Patient’s Name | 患者姓名 | PN |
| 0010 | 0020 | Patient ID | 患者ID | LO |
| 0010 | 0030 | Patient’s Birth Date | 患者出生日期 | DA |
| 0010 | 0032 | Patient’s Birth Time | 患者出生時(shí)間 | TM |
| 0010 | 0040 | Patient’s Sex | 患者性別 | CS |
| 0010 | 1001 | OtherPatientNames | 患者其他姓名 | PN |
| 0010 | 1030 | Patient’s Weight | 患者體重 | DS |
| 0010 | 21C0 | Pregnancy Status | 懷孕狀態(tài) | US |
| 0010 | 4000 | Patient’s Comments | 患者注解 | LT |
Study:檢查信息,鍵值為Study Instance UID(0020, 000D)
| 0008 | 0050 | Accession Number:A RIS generated number that identifies the order for the Study. | 檢查號: RIS的生成序號,用以標(biāo)識做檢查的次序. | SH |
| 0020 | 0010 | Study ID | 檢查ID. | SH |
| 0020 | 000D | Study Instance UID:Unique identifier for the Study. | 檢查實(shí)例號: 唯一標(biāo)記不同檢查的號碼. | UI |
| 0008 | 0020 | Study Date:Date the Study started. | 檢查日期: 檢查開始的日期. | DA |
| 0008 | 0030 | Study Time:Time the Study started. | 檢查時(shí)間: 檢查開始的時(shí)間. | TM |
| 0008 | 0061 | Modalities in Study | 一個(gè)檢查中含有的不同檢查類型. | CS |
| 0008 | 0015 | Body Part Examined | 檢查的部位. | CS |
| 0008 | 1030 | Study Description | 檢查的描述. | LO |
| 0008 | 0090 | Referring Physician's Name? | 醫(yī)師名稱 | PN? |
| 0010 | 1010 | Patient’s Age | 做檢查時(shí)刻的患者年齡,而不是此刻患者的真實(shí)年齡. | AS |
Series:序列信息,鍵值為Series Instance UID(0020, 000E)
| 0020 | 0011 | Series Number:A number that identifies this Series. | 序列號: 識別不同檢查的號碼. | IS |
| 0020 | 000E | Series Instance UID:Unique identifier for the Series. | 序列實(shí)例號: 唯一標(biāo)記不同序列的號碼. | UI |
| 0008 | 0060 | Modality | 檢查模態(tài)(MRI/CT/CR/DR) | CS |
| 0008 | 103E | Series Description | 檢查描述和說明 | LO |
| 0008 | 0021 | Series Date | 檢查日期 | DA |
| 0008 | 0031 | Series Time | 檢查時(shí)間 | TM |
| 0020 | 0032 | Image Position (Patient):The x, y and z coordinates of the upper left hand corner of the image, in mm. | 圖像位置: 圖像的左上角在空間坐標(biāo)系中的x,y,z坐標(biāo),單位是毫米.如果在檢查中,則指該序列中第一張影像左上角的坐標(biāo). | DS |
| 0020 | 0037 | Image Orientation (Patient):The direction cosines of the first row and the first column with respect to the patient. | 圖像方位: | DS |
| 0018 | 0050 | Slice Thickness:Nominal slice thickness, in mm. | 層厚. | DS |
| 0018 | 0088 | Spacing Between Slices | 層與層之間的間距,單位為mm | DS |
| 0020 | 1041 | Slice Location:Relative position of exposure expressed in mm. | 實(shí)際的相對位置,單位為mm. | DS |
| 0018 | 0023 | MR Acquisition | CS | |
| 0018 | 0015 | Body Part Examined | 身體部位. | CS |
Image:SOP影像信息,鍵值為SOP Instance UID(0008, 0018)
| 0008 | 0008 | Image Type:Image identification characteristics. | CS | |
| 0008 | 0018 | SOP Instance UID | SOP實(shí)例UID. | |
| 0008 | 0023 | Content Date:The date the image pixel data creation started. | 影像拍攝的日期. | DA |
| 0008 | 0033 | Content Time | 影像拍攝的時(shí)間. | TM |
| 0020 | 0013 | Image/Instance Number:A number that identifies this image. | 圖像碼: 辨識圖像的號碼. | IS |
| 0028 | 0002 | Samples Per Pixel:Number of samples (planes) in this image. | 圖像上的采樣率. | US |
| 0028 | 0004 | Photometric Interpretation:Specifies the intended interpretation of the pixel data. | 光度計(jì)的解釋,對于CT圖像,用兩個(gè)枚舉值 MONOCHROME1,MONOCHROME2. 用來判斷圖像是否是彩色的, MONOCHROME1/2是灰度圖, RGB則是真彩色圖,還有其他. | CS |
| 0028 | 0010 | Rows: Number of rows in the image. | 圖像的總行數(shù),行分辨率. | US |
| 0028 | 0011 | Columns: Number of columns in the image. | 圖像的總列數(shù),列分辨率. | US |
| 0028 | 0030 | Pixel Spacing:Physical distance in the patient between the center of each pixel. | 像素間距. 像素中心之間的物理間距. | DS |
| 0028 | 0100 | Bits Allocated:Number of bits allocated for each pixel sample. Each sample shall have the same number of bits allocated. | 分配的位數(shù): 存儲每一個(gè)像素值時(shí)分配的位數(shù),每一個(gè)樣本應(yīng)該擁有相同的這個(gè)值. | US |
| 0028 | 0101 | Bits Stored:Number of bits stored for each pixel sample. Each sample shall have the same number of bits stored. | 存儲的位數(shù):有12到16列舉值. 存儲每一個(gè)像素用的位數(shù).每一個(gè)樣本應(yīng)該有相同值. | US |
| 0028 | 0102 | High Bit:Most significant bit for pixel sample data. Each sample shall have the same high bit. | 高位. | US |
| 0028 | 0103 | Pixel Representation:Data representation of the pixel samples. Each sample shall have the same pixel representation.Enum: 0000H=unsigned integer,0001H=2’s complement. | 像素?cái)?shù)據(jù)的表現(xiàn)類型: 這是一個(gè)枚舉值,分別為十六進(jìn)制數(shù)0000和0001. 0000H = 無符號整數(shù), 0001H = 2的補(bǔ)碼. | US |
| 0028 | 1050 | Window Center | 窗位. | DS |
| 0028 | 1051 | Window Width | 窗寬. | DS |
| 0028 | 1052 | Rescale Intercept:The value b in relationship between stored values (SV) and the output units.Output units = m*SV + b.Required if Modality LUT Sequence (0028, 0030) is not present. | 截距: 如果表明不同模態(tài)的LUT顏色對應(yīng)表不存在時(shí),則使用方程 Units = m*SV + b,計(jì)算真實(shí)的像素值到呈現(xiàn)像素值。 其中這個(gè)值為表達(dá)式中的b。 | DS |
| 0028 | 1053 | Rescale Slope:m in the equation specified by Rescale Intercept (0028,1052).Required if Rescale Intercept is present. | 斜率. 這個(gè)值為表達(dá)式中的m。 | DS |
| 0028 | 1054 | Rescale Type:Specifies the output units of Rescale Slope (0028,1053) and Rescale Intercept (0028,1052).Enum: US=Unspecified Requried if Photometric Interpretation is MONOCHROME2, and Bits Stored is greater than 1.This specifies an identity Modality LUT transformation. | 輸出值的單位. 這是一個(gè)枚舉值, | LO |
?
4.UID的分類和三級層級關(guān)系
| 第一級:StudyInstanceUID | 標(biāo)識同一患者的一次檢查 |
| 第二級:SeriesInstanceUID | 標(biāo)識一次檢查下的一次序列 |
| 第三級:SOPInstanceUID | 標(biāo)識一次序列下的產(chǎn)生的其中一個(gè)圖像 |
- UID的生成可自行寫方法生成,也可使用第三庫生成(DCMTK有相應(yīng)的函數(shù))
5.Dicom文件的解讀步驟
?
二.Dicom標(biāo)準(zhǔn)定義的數(shù)據(jù)字典
1.標(biāo)準(zhǔn)數(shù)據(jù)字典(Stardard Data Dictionary)
?
2.私有數(shù)據(jù)字典(Private Data Dictionary)
?
?
3.數(shù)據(jù)字典格式
- Tag:屬性標(biāo)識,為兩個(gè)十六進(jìn)制的數(shù)的組合(0x0002, 0x0003),分別是Group和Element
- Tag是按照Group和Element標(biāo)簽編號來排序的
- Attribute:屬性名稱,和Tag是一一對應(yīng)的
- VR(Value Representation):數(shù)據(jù)類型,總共有27個(gè)值
- VM(Value Multiplicity):規(guī)定了這個(gè)屬性可以包含一個(gè)或多個(gè)數(shù)據(jù)值
- 如果是二進(jìn)制的多個(gè)值,直接拼接就好,可以根據(jù)字節(jié)數(shù)來獲取
- 如果是字符串的多個(gè)值,則用‘''來分隔
4.標(biāo)準(zhǔn)命令字典(Standard Command Dictionary)
- Group為0x0000,表示的都是操作命令,例如"打印","存儲","Get請求"等
- 例如(0x0000,0100)為command type,(0x0000,0110)為command message id
三.VR定義表
| **CS **- Code String 代碼字符串 | 開頭結(jié)尾可以有沒有意義的空格的字符串,比如“CD123_4” | 大寫字母,0-9,空格以及下劃線字符 | 最多 16 個(gè)字符 |
| SH - Short String 短字符串 | 短字符串,比如:電話號碼,ID等 | 最多 16 個(gè)字符 | |
| LO - Long String 長字符串 | 一個(gè)字符串,可能在開頭、結(jié)尾填有空 格。比如“Introduction to DICOM” | 最多 64 個(gè)字符 | |
| ST - Short Text 短文本 | 可能包含一個(gè)或多個(gè)段落的字符串 | 最多 1024 個(gè)字符 | |
| LT - Long Text 短文本 | 可能包含一個(gè)或多個(gè)鍛煉的字符串,與LO相同,但可以更長 | 最多 10240 個(gè)字符 | |
| UT - Unlimited Text 無限制文本 | 包含一個(gè)或多個(gè)段落的字符串,與LT 類似 | 最多(2的32次方–2)個(gè)字符 | |
| AE- Application Entity 應(yīng)用實(shí)體 | 標(biāo)識一個(gè)設(shè)備的名稱的字符串,開頭和 結(jié)尾可以有無意義的字符。比如“MyPC01” | 最多 16 個(gè)字符 | |
| PN - Person Name 病人姓名 | 有插入符號()作為姓名分隔符的病人姓名。比如“SMITHJOHN” “Morrison- JonesSusan^^Ph.D, Chief Executive Officer” | 最多 64 個(gè)字符 | |
| UI- Unique Identifier (UID) 唯一標(biāo)識符 | 一個(gè)用作唯一標(biāo)識各類項(xiàng)目的包含UID 的字符串。比如“1.2.840.10008.1.1” | 0-9 和半角句號(.) | 最多64 個(gè)字符 |
| DA - Date 日期 | 格式為 YYYYMMDD 的字符串;YYYY 代表年;MM 代表月;DD 代表日。比 如“20050822”表示2005 年 8 月 22 日 | 0-9 | 8個(gè)字符 |
| TM - Time 時(shí)間 | 格式為 HHMMSS 的字符串。FRAC; HH 表示小時(shí)(范圍“00”-“23”); MM 表示分鐘(范圍“00”-“59”); 而 FRAC 包含秒的小數(shù)部分,即百萬分 之一秒。比如“183200.00” 表示下午 6:32 就是微秒(microsecond) | 0-9 和半角句號(.) | 最多 16 個(gè)字符 |
| DT - Date Time 日期時(shí)間 | 格式為 YYYYMMDDHHMMSS. FFFFFF,串聯(lián)的日期時(shí)間字符串。字符串的各部分從左至右是:年YYYY;月 MM;日 DD;小時(shí)HH;分鐘 MM;秒 SS;秒的小數(shù)FFFFFF。比如20050812183000.00”表示 2005年 8 月 12 日下午 18 點(diǎn) 30 分 00秒 | 0-9,加號,減號和半角句號 | 最多 26 個(gè)字符 |
| AS - Age String 年齡字符串 | 符合以下格式的字符串:nnnD,nnnW, nnnM, nnnY;其中nnn 對于 D 來說表示天數(shù),對于W來說表示周數(shù),對于M 來說表示月數(shù),對于 Y 來說表示歲數(shù)。 比如“018M”表示他的年齡是 18 個(gè)月 | 0–9, D,W,M, Y | 4 個(gè)字符 |
| IS- Integer String 整型字符串 | 表示一個(gè)整型數(shù)字的字符串。比如“-1234567” | 0-9,加號(+),減號(-) | 最多 12 個(gè)字符 |
| DS - Decimal String 小數(shù)字符串 | 表示定點(diǎn)小數(shù)和浮點(diǎn)小數(shù)。 比如“12345.67”,“-5.0e3” | 0-9,加號(+),減號(-), 最多 16個(gè)字符 E,e和半角句號(.) | 最多 16 個(gè)字符 |
| SS - Signed Short 有符號短型 | 符號型二進(jìn)制整數(shù),長度 16 比特 | 2 個(gè)字符 | |
| US - Unsigned Short 無符號短型 | 無符號二進(jìn)制整數(shù),長度 16 比特 | 2 個(gè)字符 | |
| SL - Signed Long 有符號長型 | 有符號二進(jìn)制整數(shù) | 4 個(gè)字符 | |
| UL - Unsigned Long 無符號長型 | 無符號二進(jìn)制整數(shù),長度 32 比特 | 4 個(gè)字符 | |
| AT - Attribute Tag 屬性標(biāo)簽 | 16 比特?zé)o符號整數(shù)的有序?qū)?#xff0c;數(shù)據(jù)元素的標(biāo)簽 | 4 個(gè)字符 | |
| FL - Floating Single 單精度浮點(diǎn) | 單精度二進(jìn)制浮點(diǎn)數(shù)字 | 4 個(gè)字符 | |
| FD - Floating Point Double 雙精度二進(jìn)制浮點(diǎn)數(shù)字 | 雙精度二進(jìn)制浮點(diǎn)數(shù)字 | 8 個(gè)字符 | |
| OB - Other Byte String 其他字節(jié)字符串 | 字節(jié)的字符串(“其他”表示沒有在VR中定義的內(nèi)容) | ||
| OW- Other Word String 其他單詞字符串 | 16 比特(2 字節(jié))單詞字符串 | ||
| OF- Other Float String 其他浮點(diǎn)字符串 | 32 比特(4 個(gè)字節(jié))浮點(diǎn)單詞字符串 | ||
| SQ - Sequence Items 條目序列 | 條目的序列 | ||
| UN – Unknown 未知 | 字節(jié)的字符串,其中內(nèi)容的編碼方式是未知的 |
四.Dicom編碼方式(即傳輸語法)
1.VR隱式和顯示編碼
- VR隱式編碼(implicit VR encoding)
?
?
- VR顯式編碼(explicit VR encoding)
VR = OB,OW,OF,SQ,UT,UN,VR固定2個(gè)字節(jié),其后固定兩個(gè)字節(jié)(0x0000)
?
?
VR != OB,OW,OF,SQ,UT,UN,VR固定2個(gè)字節(jié),Value Length變成2個(gè)字節(jié)
?
?
2.BIG/LITTLE Endian(大端模式/小端模式)
- 大端模式(Big-Endian)就是高位字節(jié)排放在內(nèi)存的低地址端,低位字節(jié)排放在內(nèi)存的高地址端。
- 小端模式(Little-Endian)就是低位字節(jié)排放在內(nèi)存的低地址端,高位字節(jié)排放在內(nèi)存的高地址端。
- 影響多字節(jié)類型數(shù)據(jù)的編碼
- 2-byte US, SS, OW,AT
- 4-byte OF, UL, SL, FL
- 8 byte FD
- DCMTK下保存數(shù)據(jù)是可以使用枚舉值來指定編碼類型
3.分組長度編碼
group的第一個(gè)元素可以記錄該group的總長度,但該屬性值是不是必須要寫的,一個(gè)組的第一個(gè)元素(gggg,0000)可以記錄改組的總長度,因?yàn)槊總€(gè)元素的長度是偶數(shù),所以這個(gè)總長度的值也是偶數(shù)
?
好處:
* 如果不需要讀某個(gè)Group時(shí),可以直接根據(jù)字節(jié)數(shù)跳過;這樣就可以加快DICOM文件的處理過程。它在處理奇數(shù)Group的數(shù)據(jù)時(shí)候尤其明顯。因?yàn)槠鏀?shù)的Group數(shù)值自己不能讀,可以很快地跳過。
* 它也可以作為校驗(yàn)數(shù)據(jù)長度。
壞處:
* 在寫(gggg,0000)這個(gè)元素的時(shí)候,意味著這個(gè)group中的所有元素必須首先獲取到,并且在(gggg,0000)之前已經(jīng)編碼好。對于DICOM開發(fā)者來說,這意味著兩件事:
(1)所有的元素都必須編碼完成,才能編碼object
(2)修改了DICOM對象中一個(gè)元素時(shí),就不可避免地修改了它的數(shù)值長度,就需要相應(yīng)的修改它的值。這樣就會帶來額來的負(fù)擔(dān)。
4.SQ Data Element的層數(shù)和編碼規(guī)則
- SQ Data Element最多3層,編碼時(shí)要從下往上
?
?
SQ序列中的DICOM對象數(shù)據(jù)值以(FFFE,?E000)開頭,但數(shù)據(jù)長度可以不明確
1.DICOM對象數(shù)據(jù)值有明確的長度;如例1中的第一個(gè)和第二個(gè)數(shù)據(jù)對象;
?
?
整個(gè)SQ序列數(shù)據(jù)長度也可以不明確
1.有明確的長度
?
2.沒有明確的長度,標(biāo)記為FFFFFFFF,需要使用(FFFE,E0DD)來識別結(jié)尾,這一項(xiàng)的值長度為0
作者:JasonLiThirty
鏈接:https://www.jianshu.com/p/758fa8c22474
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
總結(jié)
以上是生活随笔為你收集整理的【转】DICOM简述!!!!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】dicom网络通讯入门(1)
- 下一篇: 【转】17.Qt界面布局管理详解