如何渲染dicom文件的标题是不可读的

时间:2017-12-20 02:02:00

标签: error-handling dicom pydicom

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

不幸的是,我没有受损的dicom。

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

1 个答案:

答案 0 :(得分:2)

您可以查看DCMTK中的dcmodify工具。它可用于插入,修改和删除属性。我怀疑是否可以通过命令行指定无效的属性值,但您可以确定地修改源代码以实现该目标(除了您可以根据值表示法编写超过最大长度的属性值)。

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

示例:

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

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