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

news/2024/9/19 3:23:53 标签: dcmtk, DICOMDIR, 自动纠错模式, DICOM, cpp

软件版本

dcmtk 3.6.7

自动纠错的全局变量

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

cpp">/** 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,导致不能正确进行下去。
注意:在默认值的情况下(自动纠错模式),这里是能够读取正确的。

分析

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

使用自动纠错模式

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

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

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

结论

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


http://www.niftyadmin.cn/n/5664903.html

相关文章

【C语言】带你手把手拿捏指针(3)(含转移表)

文章目录 一、字符指针变量二、数组指针变量1.数组指针变量是什么2.数组指针变量的初始化 三、二维数组传参的本质四、函数指针变量1. 函数指针变量的创建2.函数指针的使用3.案例解析&#xff1a; 五、typedof关键字六、函数指针数组和转移表1.函数指针数组2.转移表 一、字符指…

TypeScript 枚举

枚举: 使用枚举我们可以定义一些带名字的常量。 使用枚举可以清晰地表达意图或创建一组有区别的用例。 TypeScript支持数字的和基于字符串的枚举。 例子&#xff1a; function a(sex: string) {console.log(张三的性别是:${sex});} a(男); a(狗); 用枚举&#xff1a; 1.en…

【大数据方案】智慧大数据平台总体建设方案书(word原件)

第1章 总体说明 1.1 建设背景 1.2 建设目标 1.3 项目建设主要内容 1.4 设计原则 第2章 对项目的理解 2.1 现状分析 2.2 业务需求分析 2.3 功能需求分析 第3章 大数据平台建设方案 3.1 大数据平台总体设计 3.2 大数据平台功能设计 3.3 平台应用 第4章 政策标准保障体系 4.1 政策…

交流电力控制电路之交流调功电路、交流电力电子开关

目录 一、交流调功电路 二、交流电力电子开关 交流调压电路可看&#xff1a;交流调压电路 交流调压电路、交流调功电路和交流电力开关的异同点&#xff1a; 一、交流调功电路 交流调功电路用于调节电力设备的功率输出&#xff0c;通过改变电路中电压、电流的有效值&#xff…

数据治理实施步骤

数据治理的实施步骤是一个系统性的过程&#xff0c;旨在确保数据的有效管理、使用和保护。以下是数据治理的一般实施步骤&#xff1a; 一、明确目标和策略 确定需求与目标&#xff1a;明确数据治理的需求和目标&#xff0c;如提高数据质量、保障数据安全、提升数据处理效率等。…

Linux配置静态IP详细步骤及联网问题,以及更改主机名问题

一&#xff0c;Linux配置静态IP详细步骤及联网问题 我的Linux操作系统版本是是CentOS7/CentOS8 1.网络适配器&#xff1a;NAT模式点击设置-网络适配器-网络连接 &#xff08;选择NAT模式&#xff09;-点击确定 2.查看网关相关配置点击 编辑-虚拟网络编辑器-选择VMnet8-点击更…

OJ题-合并K个已排序的链表

描述 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围&#xff1a;节点总数 0≤n≤50000≤n≤5000&#xff0c;每个节点的val满足 ∣val∣<1000∣val∣<1000 要求&#xff1a;时间复杂度 O(nlogn)O(nlogn) 下面给出C代码的两种方法&#xff1…

机器学习中求解模型参数的方法

机器学习中用于求解模型参数的方法主要包括以下几种&#xff1a; 极大似然估计&#xff08;Maximum Likelihood Estimation, MLE&#xff09;&#xff1a;这是一种最常见的参数估计方法。目标是找到一组参数&#xff0c;使得在这组参数下&#xff0c;观察到当前样本数据的概率最…