热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

你了解DCM的AETitle的长度限制吗?

本文由Markdown语法编辑器编辑完成.1.背景:DCM是医学图像的通用标准格式,无论是CT,MRI,还是超声,乳腺,DR等设备拍摄的图像,最终都会以DICOM的格式,存储在

本文由Markdown语法编辑器编辑完成.


1.背景:

DCM是医学图像的通用标准格式, 无论是CT, MRI, 还是超声, 乳腺, DR等设备拍摄的图像, 最终都会以DICOM的格式, 存储在医院的PACS系统中.

在和医院的PACS/CT机进行对接服务时, 一般是通过主动/被动的方式, 接收患者的检查数据, 然后传到后台服务器对数据进行一定的分析和计算. 有时候需要区分这些数据是从哪台CT机过来的.

通过访问以下链接, 可以查询DICOM标准中, 每个tag的含义, 值的类型, 属于第几类标签等信息.
https://dicom.innolitics.com/ciods/ct-image

DCM的tag中, 是有两个相关的tag来记录这个信息的.

在这里插入图片描述
另外一个是: SourceApplicationEntityTitle.


TagTypeVR
StationNameOptional(3)三类标签Short String(SH)
SourceApplicationEntityTitleAE

从以上表格中, 可以看出StationName是三类标签, 有可能不存在, 且假如是同一个型号的设备, 有可能StationName是相同的.
但是SourceApplicationEntityTitle, 则是医院设备的AE_TITLE.

对于AE_TITLE来说, 一般医院都会给每台设备一个特有的标识, 就跟每个人都有一个独一无二的身份证号码一样. 只有拥有独立的名称, 才可以很方便地定位到这台设备和位置.


2. 如何获取SourceApplicationEntityTitle

既然SourceApplicationEntityTitle能够反映出影像的拍摄设备的名称, 那么我们如何从一张dicom图像中获取到这个信息呢?
由于医疗设备一般只有医院才有, 那么在公司做研发时, 如何来模拟CT机发送dicom图像呢.

dcmtk是一个集成了很多医学图像处理的工具. 当在电脑上安装了dcmtk后, 便可以使用它内置的很多工具包, 来模拟实现很多医院设备间的数据传递.

dcmdump是一个用于读取dcm图像中的tag信息的工具。
storescu则是用于模拟CT机发送图像的工具。
storescp则是用于模拟接收图像的工具。
……

我们比较常用的是storescu.
storescu的介绍wiki如下:

storescu最常用的命令行如下:

storescu -aet CT_Title -aec PACS_Title +sd +r -v -d PACS_IP PACS_PORT ./
# CT_Title: 表示模拟某一台CT机的AE_TITLE, 它是图像的发起者.
# PACS_Title: 表示接收图像的PACS的AE_TITLE, 它是图像的接收者.
# PACS_IP: PACS的IP
# PACS_PORT: PACS的Port
# ./: 表示将运行该指令的当前目录下的文件夹, 发送到上述的PACS服务器.

用这个指令, 将图像发送完毕后, 通过用dcmdump查看图像的tag信息, 可以发现, 图像的某一个TAG值发现了变化.
这个TAG值就是: SourceApplicationEntityTitle.

使用dcmdump, 或者gdcmdump, 或者DicomViewer软件,都可以查看到经过storescu发送后的图像的这个TAG值,就是当时发送指令中的-aet后面跟着的CT_Title的值。

于是,我们就可以根据这个TAG值,知道这个图像是来自哪台CT机器的。


3. 忽略VR的长度限制带来的问题

虽然这个TAG可以记录CT机器的Title. 但是,正如每一种数据类型都有长度限制一样。
这个TAG的VR(Value Representation)是AE, 而AE类型的值,最长就是16个字符。

因此,当前面的指令中,如果CT_Title的长度大于16位,那么超过16位的字符会被无情地截掉。

这次正是因为没有注意到这个限制,导致业务的后面,在根据CT_Title的内容来判断是哪台CT机器时,总是无法判断出来。通过增加日志的方式,才看到实际记录的Title是不完整的,才恍然大悟。


推荐阅读
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • Maven Web项目创建时JSP文件常见错误及解决方案
    Maven Web项目创建时JSP文件常见错误及解决方案 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 解决针织难题:R语言编程技巧与常见错误分析 ... [详细]
  • 在CICS应用环境中,众多客户端通过网络与CICS服务器进行连接。系统管理员可以通过CICS系统交易CEMT查询当前连接的客户端信息。然而,在非客户端模式下,识别用户连接并解决信息获取错误的问题变得更为复杂。本文将探讨如何在CICS服务器端准确识别非客户端模式的用户连接,并提供有效的解决方案,以确保系统的稳定性和数据的准确性。此外,还将介绍一些常用的诊断工具和技术,帮助管理员快速定位和解决问题。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 通过FRP技术实现树莓派的内网穿透及远程桌面启动,适用于经常出差且需要访问高性能设备的用户。对于初创公司或小型团队,此方案能有效降低初期投入成本。将服务器部署在偏远地区如家中,可享受较低的运维费用。具体操作包括设置目标电脑的主板,例如华硕主板可通过按F2或Del键进入BIOS进行高级设置。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • PyCharm 作为 JetBrains 出品的知名集成开发环境(IDE),提供了丰富的功能和强大的工具支持,包括项目视图、代码结构视图、代码导航、语法高亮、自动补全和错误检测等。本文详细介绍了 PyCharm 的高级使用技巧和程序调试方法,旨在帮助开发者提高编码效率和调试能力。此外,还探讨了如何利用 PyCharm 的插件系统扩展其功能,以满足不同开发场景的需求。 ... [详细]
author-avatar
亿达口香糖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有