【转】DICOM入门(一)——语法
转自:https://www.jianshu.com/p/5db8933a25a4
作者:我住的城市没有福合埕
1.什么是DICOM
DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和传输协议,是用医疗影像(CT 核磁共振 DR CR 超声等)数据传输,存储,查询和显示的协议总和。
2.数据内容
DICOM数据由图像和病人、影像设备等相关数据组成的,比如病人姓名、年龄、生日性别等等。
3.VR
一个DICOM文件类似一个类,会有很多属性,属性可能是一个字段,数组或者包含了另外一个类。编程语言会定义基础数据类型,类似的DICOM定义很多基础类型叫做VR(Value Representations)值表现。
文本.jpeg
设备 人 实例 日期和时间.jpeg
文本格式 二进制格式.jpeg
PN 病人姓名
DICOM 规定了如下的姓名顺序:
姓^教名^中名^名前缀^名后缀
UIDs 唯一标识
UID是像“1.2.840.10008.1.2”那样由数字组成并由逗号分隔的字符串;UID字符串具有全球唯一性,能够保证在多 个国家、地点、厂商和设备间区分病人。
SQ 序列化数据集
SQ VR是对数据集序列的编码,每个数据集可能包含多个数据属性。用面向对象语言的说法,这个属性是一个类。
4.数据字典
DICOM的数据字典代表DICOM的属性名称,数据字典 由四个字节组成,前面两个字节表示项目组 后两个表示元素。
DICOM 数据字典中的一些行.jpeg
栗子
用DICOM语法记录一条信息
病人 Tom Smith,男性,生日 2000 年 8 月 8 日
(0010,0010)Smith^Tom (0010,0030)20000808 (0010,0040)M
5.简单的二进制编码
DICOM文件存储都是采用二进制的形式,所以上面栗子。在用DICOM编码如下:
二进制结构.jpeg
二进制值.jpeg
6.SQ编码
一个复杂的DICOM对象.jpeg
- 在 SQ 序列中的 DICOM 对象是以序列项目的形式进行编码的。
- 每个在 SQ 序列中的对象项目(object-item)前面都会有个(FFFE, E000)的标签(作为项
目分隔符项)。这个项目后面还会跟着以下之一:
a) DICOM 项目的显式长度(比如,表 11 的例子 1 中的第一个和第二个项目)。这个
长度是用来定义为了获得后面的对象所要读取的字节数。
b) 隐式(未定义)长度,设置为十六进制数字 FFFFFFFF(表 11 的例子 3 中的第二个
项目)。那么,我们需要用项目分隔符项(FFFE,E00D)来标记 DICOM 对象项目的结尾。 这个分隔符项是零长度的,因为他只是用来标记 DICOM 对象的结尾并且自己不含 有任何数据。 - 与项目相似,整个 SQ 序列能够显式长度或未定义长度:
a) 如果使用显式长度(例子 2,长度 00000A00),那么这个长度等于所有编码的 DICOM
对象序列(后面马上跟上长度标签)的总长度。在例子 2(见表 11)中,我们读取
00000A00 字节并且根据(FFFE,E000)标签将他们分割成 DICOM 对象。
b) 我们也可以使用隐式(未定义)长度,在 DICOM 中会标记为 FFFFFFFF。因为长度 是未知的,所以我们不得不用零长度的序列分隔符项(FFFE,E0DD)来标记 SQ 序列的
结尾。
1.jpeg
2.jpeg
3.jpeg
以上粗略的介绍了一下DICOM的语法,下一次将讲讲DICOM图像相关内容
作者:我住的城市没有福合埕
链接:https://www.jianshu.com/p/5db8933a25a4
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【转】DICOM入门(一)——语法相关推荐
- python编程语法大全-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...
- python编程语法-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...
- python编程if语法-Python编程入门基础语法详解经典
原标题:Python编程入门基础语法详解经典 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_number = ...
- python编程语法-Python编程入门——基础语法详解(经典)
今天小编给大家带来Python编程入门--基础语法详解.温馨提示: 亮点在最后! 在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Python开发的,如果你正在学习P ...
- [入门]C#语法里面,如何使用 VB的常用函数?(using Microsoft.VisualBasic)
这里是我的文章备份 原文请看: http://www.dotblogs.com.tw/mis2000lab/archive/2011/10/24/46162.aspx [入门]C#语法里面,如何使用 ...
- python 判断列表所有元素是否为某个值_这应该是最详细的Python入门基础语法总结!...
这应该是最详细的Python入门基础语法总结! 这应该是最详细的Python入门基础语法总结! 定义变量,使用变量 input 用户自己输入值 print 打印值 可以输出多个变量 %d|%s 用于输 ...
- python基础编程语法-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...
- python基础编程语法-Python编程入门——基础语法详解(经典)
今天小编给大家带来Python编程入门--基础语法详解.温馨提示: 亮点在最后! 在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Python开发的,如果你正在学习P ...
- Go 语言快速开发入门(基础语法详解,第一节)
Go 语言快速开发入门(基础语法详解,第一节) 一.基础语法详解,第一节 1.HelloWorld 1.1.代码编写和解释 1.2.go语言注意事项 2.Go 语言的转义字符&&Go ...
最新文章
- 《高效程序员的45个习惯》读后感
- APP专项测试方法有哪些?
- python3.9.0_Python 3.9.0 alpha 1 发布了,3.9 系列首个迭代版本
- 微信小程序 html modal,微信小程序参考微信设计规范做的modal模态框
- 微服务go还是java,Java微服务 vs Go微服务,究竟谁更强!?
- Spring AOP 的日志管理实现
- 整个行业都缺Web前端工程师,你还在问Web前端工作好找吗?
- 物联卡与SIM卡相比优势在哪
- java filechannel 并发_java.nio中的Channel系列(2)-FileChannel与零拷贝原理
- T3及报税软件报表使用无线打印机打印凭证没反应
- PCROP_RDP重新恢复为uncheck
- 计组_指令周期/机器周期(cpu周期)/时钟周期(节拍T) 主频超频/cpu频率发热
- oracle中replace怎么用,oraclereplace函数怎么用
- 8700k能装服务器系统吗6,i7 8700k能装win7吗?搭配b365主板装win7操作步骤
- @RunWith注解的作用
- 使用mac电脑生成 icns图标
- html5研究背景及意义,基于HTML5的统计图表系统的研究与设计
- MagicBook荣耀锐龙版笔记本BLOS开启VT
- 2022最新酒桌小游戏喝酒小程序源码_带流量主
- Systemd日志管理:使用Journalctl查看和处理系统日志