阅读本文大概需要6分钟

'DICOM’数据是医疗影像的关键,一个.dcm 文件保存了单次诊断的全部信息(病人信息+图像数据),通过读取解析.dcm文件可以获取所有信息。

DICOM文件结构

打开任意一个.dcm文件,使用16进制打开,可以看到如下结构:

  • 导言

导言部分128字节,可以直接跳过。

  • 前缀

前缀标识的一个dicm文件,总共4个字节。

  • 数据元素

在前缀后面就是真正的数据元素来。

从数据元素开始,均是以key,value的形式提供,每个tag就是dicom里面定义好的字典,我们在解析时根据需要只需关注特定的tag即可,dicom全部的tag至少有 2000个。

好了,Dicom基本数据结构就这样,刚开始学习时可以自己动手解析下,体验下上面说的几个步骤。实际工作或者软件开发中都是使用第三方开源库进行操作,比如比较著名的 C++ 系的DCMTKJAVA系的 dcm4che, python系的 pyDicom等等,本文乃至以后的文章主要以 DCMTK为主.

DICOM-Tag说明

1 患者信息(整个SERIES一样)

Tag 描述 例子
0010 0010 patient’s name(患者名字) zhangsan
0010 0020 patient ID(患者ID) 100034251
0010 0030 patient’s birth date(患者生日) 19390506
0010 0040 patient’s sex(患者性别) F
0010 1010 patient’s age(患者年龄) 075Y
0018 0015 body part examined(扫描部位) Head

2 设备医院相关信息(整个SERIES一样)

Tag 描述 例子
0008 0060 Modality CT
0008 0070 Manufacture(生产厂家) SIMENS
0008 0080 Institution name(机构名称) SH PULMONARY HOSPITAL
0008 0080 Institution address(机构地址) NO.507zheng min road/shsh/71f6e4/yang puCN
0008 1010 Station name CTAWP65018
0008 1070 Operator’s name 5411

3 study信息(整个SERIES一样)

Tag 描述 例子
0008 0020 Study date 20141103
0008 0021 Series date 20141103
0008 0030 Study time 175733(时分秒)
0008 1030 Study description Head^headRoutineSeq
0008 103E Series description HeadSeq
0020 000D Study Instance UID 1.2.840.113820.862123.26.20141103173532
0020 000E Series Instance UID 1.3.12.2.1107.5.1.4.65018.30000014103107533800000272234
0020 0010 Study ID

4 图像信息(除注明的,整个SERIES相同)

Tag 描述 例子
0008 0008 Image type ORIGINAL\PRIMARY\AXIAL\CT_SOM5 SEQ
0008 0023 Image data 20141103(每张分开列)
0008 0033 Image time 175812(每张分开列)
0018 0050 Slice thickness(层厚) 2.4(每张分开列)
0018 0093 Percent sampling 100
0018 0094 Percent phase field of view 100
0018 5100 Patient position(患者姿态) HFS
0020 0013 Image number 3(每张分开列)
0020 0032 Image position(patient) -113.2783-291.2783\63.8(每张分开列)
0020 0037 Image Orientation(patient) 1\0\0\0\1\0(每张分开列)
0020 1041 Slice location(图像位置) 63.8(每张分开列)
0028 0002 Samples per pixel 1
0028 0004 Photometric Interpretation MONOCHROME2
0028 0010 Rows(图像列数) 512
0028 0011 Columns(图像行数) 512
0028 0030 Pixel spacing(像素间距) 0.443359375\0.443359375
0028 1050 Window center(窗位) 35\700(每张分开列)
0028 1051 Window wide(窗宽) 80\3200(每张分开列)

5 CT 设备信息(整个SERIES相同)

Tag 描述 例子
0018 0060 KVP(球管电压) 120
0018 0090 Data collection diameter(数据采集直径) 500
0018 1000 Device serial number(设备序列号) 65018
0018 1030 Protocol name(扫描序列名) 01_ThoraxRoutine
0018 1100 Reconstruction diameter(重建直径) 382
0018 1110 Distance source to detector(射线源与探测器间距) 1085.6
0018 1120 Gantry/detector tilt(机架倾斜角) 0
0018 1130 Table height(床高) 150
0018 1140 Rotation direction(旋转方向) CW
0018 1150 Exposure time(曝光时间) 500
0018 1151 X-ray tube current(球管电流) 446
0018 1152 Exposure(mA*s) 185
0018 1160 Filter type(滤波类型) FLAT
0018 1170 Generator power 34
0018 1190 Focal spot(焦点长度) 1.2
0018 1200 Date of last calibration(上次测量日期) 20140517
0018 1201 Time of last calibration(上次测量时间) 081655
0018 1210 Convolution kernel(卷积核) B50f
0018 9306 Single collimation width(可重建最小厚度) 0.60000
0018 9307 Total collimation width(准直宽度) 98.40000
0018 9309 Table speed(床速度) 92.00000
0018 9310 Table feed per rotation(床旋进比) 46.00000
0018 9311 Spiral pitch factor(步进) 1.200000
0018 9313 Data collection center(patient)(数据采集中心) 0.373047-149.626953-92.5000
0018 9318 Reconstruction target center(patient)(重建目标中心) 0.373047-149.626953-92.5000
0018 9323 Exposure modulation type(曝光模式类型) XYZ_EC
0018 9324 Estimated Dose Saving(辐射剂量) 64.125000
0018 9345 CTDIvol 9.445693

6 MR设备相关tag(整个SERIES相同)

Tag 描述 例子
0018 0020 Scanning sequence(序列类型) SE
0018 0021 Sequence variant sp
0018 0022 Scan options(扫描选项) PFP
0018 0023 Mr acquisition type(采集类型) 2D
0018 0024 Sequence name(序列名) *se2d1
0018 0025 Angio flag N
0018 0080 Repetition time(重复时间) 495
0018 0081 Echo time(回波时间) 7.8
0018 0083 Number of averages(重复次数) 1
0018 0084 Imageing frequency(成像频率) 63.666472
0018 0085 Imaged Nucleus(成像核) 1H
0018 0086 Echo number(回波数) 1
0018 0087 Magnetic field strength(磁场强度) 1.5
0018 0088 Spacing between slices(层间距) 3
0018 0089 Number of Phase Encoding steps(相位编码步数) 224
0018 0091 Echo train length(回波链长度) 1
0018 0095 Pixel bandwidth(像素带宽) 130
0018 1000 Device series number(设备序列号) 25788
0018 1030 Protocol name(扫描序列名) T1_se_tra
0018 1251 Transmitting coil(发射线圈) body
0018 1310 Acquisition matrix(采集矩阵) 0\256\256\0
0018 1312 Phase encoding direction(相位编码方向) ROW
0018 1314 Flip angle(翻转角) 90
0018 1315 Variable flip angle flag N
0018 1316 SAR 0.83983357382971
0018 1318 db/dt 0

DICOM-VR数据类型说明

VR 含义 允许的字符 数据长度
CS - Code String
代码字符串 开头结尾可以有没有意义的空格的字符串,比如“CD123_4” 大写字母,0-9,空格以及下划线字符 最多16 个字符
SH- Short String 短字符串 短字符串 最多16
LO - Long String 长字符串 一个字符串,可能在开头、结尾填有空 格。比如“Introduction to DICOM” 最多 64 个字符
ST - Short Text 短文本 可能包含一个或多个段落的字符串 最多 1024 个字符
LT - Long Text 短文本 可能包含一个或多个锻炼的字符串,与LO相同,但可以更长 最多 10240 个字符
UT - Unlimited Text 无限制文本 包含一个或多个段落的字符串,与 LT 类似 最多(2的32次方–2)个字符
AE - Application Entity应用实体 标识一个设备的名称的字符串,开头和 结尾可以有无意义的字符。比如 “MyPC01” 最多 16 个字符
PN - Person Name 病人姓名 有插入符号()作为姓名分隔符的病人姓名。比如“SMITHJOHN” “Morrison- JonesSusan^^Ph.D, Chief Executive Officer” 最多 64 个字符
UI - Unique Identifier (UID) 唯一标识符 一个用作唯一标识各类项目的包含 UID 的字符串。比如“1.2.840.10008.1.1” 0-9 和半角句号(.) 最多64 个字符
DA - Date 日期 格式为 YYYYMMDD 的字符串;YYYY 代表年;MM 代表月;DD 代表日。比 如“20050822”表示 2005 年 8 月 22 日 0-9 8个字符
TM - Time 时间 格式为 HHMMSS 的字符串。FRAC; HH 表示小时(范围“00”-“23”); MM 表示分钟(范围“00”-“59”); 而 FRAC 包含秒的小数部分,即百万分 之一秒。比如“183200.00” 表示下午 6:32 0-9 和半角句号(.) 最多 16 个字符
DT - Date Time 日期时间 格式为 YYYYMMDDHHMMSS. FFFFFF,串联的日期时间字符串。字符串的各部分从左至右是:年 YYYY;月 MM;日 DD;小时 HH;分钟 MM;秒 SS;秒的小数 FFFFFF。比如 20050812183000.00”表示 2005 年 8 月 12 日下午 18 点 30 分 00 秒 0-9,加号,减号和半角句号 最多 26 个字符
AS - Age String 年龄字符串 符合以下格式的字符串:nnnD, nnnW, nnnM, nnnY;其中 nnn 对于 D 来说表示天数,对于W来说表示周数,对于M 来说表示月数,对于 Y 来说表示岁数。 比如“018M”表示他的年龄是 18 个月 0–9, D, W,M, Y 4 个字符
IS - Integer String 整型字符串 表示一个整型数字的字符 串。比如“-1234567” 0-9,加号(+),减号(-) 最多 12 个字符
DS - Decimal String 小数字符串 表示定点小数和浮点小数。 比如“12345.67”,“-5.0e3” 0-9,加号(+),减号(-), 最多 16 个字符 E,e 和半角句号(.) 最多 16 个字符
SS - Signed Short 有符号短型 符号型二进制整数,长度 16 比特 2 个字符
US - Unsigned Short 无符号短型 无符号二进制整数,长度 16 比特 2 个字符
SL - Signed Long 有符号长型 有符号二进制整数 4 个字符
UL - Unsigned Long 无符号长型 无符号二进制整数,长度 32 比特 4 个字符
AT - Attribute Tag 属性标签 16 比特无符号整数的有序对,数据元素的标签 4 个字符
FL - Floating Single 单精度浮点 单精度二进制浮点数字 4 个字符
FD - Floating Point Double 双精度二进制浮点数字 双精度二进制浮点数字 8 个字符
OB - Other Byte String 其他字节字符串
OW - Other Word String 其他单词字符串 6 比特(2 字节)单词字符串
OF - Other Float String 其他浮点字符串 32 比特(4 个字节)浮点单词字符串
SQ - Sequence Items 条目序列 条目的序列
UN – Unknown 未知 字节的字符串,其中内容的编码方式是未知的

DICOM 标准支持的数据集

Character Set Description Defined Term
Latin alphabet No. 1 ISO_IR 100
Latin alphabet No. 2 ISO_IR 101
Latin alphabet No. 3 ISO_IR 109
Latin alphabet No. 4 ISO_IR 110
Cyrillic ISO_IR 144
Arabic ISO_IR 127
Greek ISO_IR 126
Hebrew ISO_IR 138
Latin alphabet No. 5 ISO_IR 148
Japanese ISO_IR 13
Thai ISO_IR 166
Default repertoire ISO 2022 IR 6
Latin alphabet No. 1 ISO 2022 IR 100
Latin alphabet No. 2 ISO 2022 IR 101
Latin alphabet No. 3 ISO 2022 IR 109
Latin alphabet No. 4 ISO 2022 IR 110
Cyrillic ISO 2022 IR 144
Arabic ISO 2022 IR 127
Greek ISO 2022 IR 126
Hebrew ISO 2022 IR 138
Latin alphabet No. 5 ISO 2022 IR 148
Japanese ISO 2022 IR 13
Thai ISO 2022 IR 166
Japanese ISO 2022 IR 87
Japanese ISO 2022 IR 159
Korean ISO 2022 IR 149

Dicom 基本知识-数据结构篇相关推荐

  1. python的类程序的结构_Python程序员学习路径之数据结构篇

    原标题:Python程序员学习路径之数据结构篇 点击标题下「异步图书」可快速关注 在计算机科学中,数据结构是一门进阶性课程,概念抽象,难度较大.Python语言的语法简单,交互性强.用Python来讲 ...

  2. JNI学习开始篇 基础知识 数据映射及学习资料收集

    JNI学习开始篇 基础知识 数据映射及学习资料收集 JNI介绍 JNI(Java Native Interface) ,Java本地接口. 用Java去调用其他语言编写的程序,比如C或C++. JNI ...

  3. 新秀nginx源代码分析数据结构篇(四)红黑树ngx_rbtree_t

    新秀nginx源代码分析数据结构篇(四)红黑树ngx_rbtree_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csd ...

  4. 看得见的数据结构Android版之数组表(数据结构篇)

    零.前言: 一讲到装东西的容器,你可能习惯于使用ArrayList和数组,你有想过ArrayList和数组的区别吗? Java的类起名字都不是随便乱起的,一般前面是辅助,后面是实质:ArrayList ...

  5. 线性表的顺序存储结构(数据结构篇)

    笔记:数据结构篇 线性表 顺序表 知识点 1:线性表(linear list)是具有相同特征的数据元素的一个有限序列. 2:线性表用二元组(D,R) D={ai|1<=i<=n,ai为El ...

  6. Java入门算法(数据结构篇)丨蓄力计划

    本专栏已参加蓄力计划,感谢读者支持 往期文章 一. Java入门算法(贪心篇)丨蓄力计划 二. Java入门算法(暴力篇)丨蓄力计划 三. Java入门算法(排序篇)丨蓄力计划 四. Java入门算法 ...

  7. 【转】DICOM通信 - PDU数据包(2)

    转自:DICOM通信 - PDU数据包(2)_翼遥君的博客-CSDN博客 DICOM通信-PDU数据包(1)博客中主要分析了DICOM通信协议的连接协商请求和连接协商应答. 在7个PDU数据包中还有5 ...

  8. 【转】DICOM通信 - PDU数据包(1)

    转自:DICOM通信 - PDU数据包(1)_翼遥君的博客-CSDN博客 DICOM上层协议为DIMSE提供透明的网络数据传输服务,即以上层协议规定的协议数据单元传送接收DIMSE的命令流与数据流.上 ...

  9. 北京大学肖臻老师《区块链技术与应用》ETH笔记 - 3.0 ETH数据结构篇

    3.0 ETH数据结构篇 在以太坊中,有三棵树的说法,分别是状态树.收据树和交易树.了解了这三棵树,就弄清楚了以太坊的基础数据结构设计. 而以太坊实现的是一个"平台性"的应用,其复 ...

最新文章

  1. linux 定时任务crond
  2. matplotlib全图
  3. Linux下安装JDK,Tomcat,Mysql详细教程
  4. 服务器工具个人免费版下载使用,xshell个人免费版,xftp个人免费版
  5. HALCON示例程序vessel.hdev血管的分割与测量
  6. git创建tag标签
  7. 2016年4月 TIOBE 编程语言排行榜
  8. Java之intern方法
  9. 使用CSS创建Digg样式风格的导航栏或菜单
  10. 鸿蒙系统下载地址_华为鸿蒙代码全开源
  11. 混沌:Logistic模型
  12. 计算机书籍圣经还没写完就出版,他花了54年编写一套书,直到现在还没写完,却已经被奉为编程圣经...
  13. 第二章--第二节:注释
  14. 花呗接入央行征信系统!会影响贷款吗?
  15. python花猫_涨见识了,在终端执行 Python 代码的 6 种方式!
  16. vue项目使用iconfont(本地下载、彩色icon)
  17. 推荐系统深度学习篇-NFM 模型介绍(1)
  18. __name__的基本用法
  19. TCP的三次握手和四次握手详解
  20. java uri 是什么_java的URI和URL到底是什么

热门文章

  1. 安全加速SCDN产品调研
  2. 【MFC】使用MFC框架(10)
  3. 如何在Excel中使用COUNTIF,COUNTIFS和SUMPRODUCT工作表功能
  4. Windows下的二进制文件工具
  5. 远程桌面连接出错解决方案
  6. 抖音 xlog 算法 bqq 字段
  7. 2.Latex安装和TeXworks Editor基础
  8. Django部署uwsgi
  9. python航拍无人机视角下多车型车流量检测车流量多车型计数无人机车流检测yolov5
  10. word编辑的公式,输入编号后字体变小【解决方案】