当前位置: 首页 > news >正文

dcmtk的自动输入数据纠错模式对DICOMDIR读取的影响

软件版本

dcmtk 3.6.7

自动纠错的全局变量

输入数据的自动纠错是一个全局变量,定义在dcmtk/dcmdata/dcobject.h中,如下所示:

/** This flags defines whether automatic correction should be applied to input*  data (e.g.\ stripping of padding blanks, removal of blanks in UIDs, etc).*  Default is enabled.*/
extern DCMTK_DCMDATA_EXPORT OFGlobal<OFBool> dcmEnableAutomaticInputDataCorrection; /* default OFTrue */

可以看出,它的默认值是true

识别DCM树形结构

识别dicomdir树形结构的方法,一般是进行遍历,按着PATIENT->STUDY->SERIES->IMAGE顺序进行的。
每当读起来一个记录节点的时候,首先判断记录类型,然后就更方便读取下去。

发生错误的地方

当我将dcmEnableAutomaticInputDataCorrection设置成false的情况下。发现原本应该读取类型为ERT_Patient的记录类型识别成了ERT_Private,导致不能正确进行下去。
注意:在默认值的情况下(自动纠错模式),这里是能够读取正确的。

分析

将数据打印出来进行分析。

使用自动纠错模式

自动纠错模式数据
看图上文字标记处,识别出来类型为“PATIENT”。

使用严格模式(不进行自动纠错)

严格模式数据
看图上标记的文字,没能将类型识别出来,当成了一个私有类型。
记录类型为**[PATIENT ],而开启自动纠错模式的为[PATIENT]**,两者相差一个空格,细节如下所示:
细节对比

结论

由于dcmtk自身的原因,使用非自动纠错模式会对于DICOMDIR识别产生错误的识别,需要使用默认的自动输入数据纠错模式。


http://www.mrgr.cn/news/29444.html

相关文章:

  • Python并发编程入门:使用concurrent.futures与asyncio
  • iOS 18.1,未公开的新功能
  • 深入理解接口测试:实用指南与最佳实践5.0(一)
  • 深度学习:tensor的定义与维度
  • 【go从零单排】迭代器(Iterators)
  • Docker使用docker-compose一键部署nacos、Mysql、redis
  • golang面试
  • 被复线远传设备ACC1800J-2W/4W2F1E16P
  • 2024年Apple Search Ads(简称:苹果ASA):开展有效活动的秘诀
  • 为什么宠物空气净化器价格差别那么大?好用的宠物空气净化器推荐
  • [ABC330E] Mex and Update
  • 超详细一文到底!软件测试基本流程
  • 如何对企业源代码进行加密?10个保护企业源代码防泄密方法
  • 非常实用的桌面日历 你桌面上的备忘录和提醒工具
  • 巨坑!!华为大数据平台sparksql,连接gauss200数据库
  • ESXI主机证书报错
  • Java技术体系:深入理解JDK与JRE及其产品线
  • 十款加密软件加密公司图纸!2024要如何对CAD图纸进行加密?
  • AI预测福彩3D采取888=3策略+和值012路或胆码测试9月18日新模型预测第91弹
  • linux驱动开发-设备树
  • python-简单的数据结构
  • 发布Java项目到Maven中央仓库
  • vimrc nnoremap配置
  • centos bash脚本一键运行安装go环境
  • 智算筑基,九章云极DataCanvas公司闪耀2024年服贸会
  • i++volatile