1

有点奇怪的问题,但是当无法读取 dicom 文件的标签时,我正在做一些测试来处理错误。

不幸的是,我没有可用的损坏的 dicom。

具体来说,任何人都可以建议如何将某种错误编码的文本标签或一些无效的数字数据标签应用到文件上,以使 python 的 pydicom 包无法读取它?

4

1 回答 1

2

您可以查看 DCMTK 中的 dcmodify 工具。它可用于插入、修改和删除属性。我怀疑是否可以通过命令行指定无效的属性值,但您当然可以修改源代码来实现这一点(除非您绝对可以根据值表示编写超过最大长度的属性值)。

我的方法是创建一个字符缓冲区并将二进制数据写入其中。然后将其传递给将值写入属性的方法。

例子:

  • 编写不是有效 unicode 字符的 unicode (UTF-8) 序列
  • 编写 (0008,0005) 指定的字符集未涵盖的 ascii 字符 - 不确定 pydicom 是否会遇到问题,但从 DICOM 的角度来看这是错误的
  • 将非数字字符写入具有值表示“十进制字符串”或“整数字符串”的属性。
  • VR“日期”的 YYYYMMDD 以外的格式
  • VR“时间”的 HHMMSS.FFFFFF 以外的格式
  • ['0'-'9'], '.' 以外的其他字符 VR“唯一标识符”

[编辑]:DCMTK,dcmodify:http ://dicom.offis.de/dcmtk.php.en

于 2017-12-20T08:46:16.140 回答