当我们使用不同的传输语法从CharruaSoft sendcu工具发送DICOM时,为什么dcm4che创建巨大的文件?

时间:2019-05-07 07:05:45

标签: dicom dcm4che

我只有几个16位和8位DICOM文件,我正在使用CharruaSoft sendcu工具将其传输到dcm4che StoreSCP。

对于16位文件,它工作正常,但对于8位简单的2 MB文件,它会生成一个巨大的90 MB文件。

我尝试使用dcm4che本身的StoreSCU发送,并且工作正常。 但是从CharruaSoft SendSCU可以创建巨大的文件。

复制步骤:

  1. 下载CharruaSoft SendSCU
  2. 设置dcm4che工具SCP maven项目。
  3. 使用--help中给出的适当参数运行Java的main方法。
  4. 使用CharruaSoft SendSCU发送16位DICOM,效果很好。
  5. 现在发送一个8位的DICOM,它可以工作,但是会创建一个巨大的文件,在我的情况下,2 MB变成了90 MB。

首先,我认为这可能是CharruaSoft SendSCU问题,但是CharruaSoft SendSCU能够正确地将其发送到其他SCP,例如:mymedicalimages.com。

有人遇到过类似的问题吗?

编辑:

如果我从CharruaSoft sendcu中选择JPEG有损8位压缩,它可以工作并且不会创建90 mb的巨大文件。
但是我无法控制CharruaSoft sendSCU工具。我想要java dcm4che SCP来处理。

修改2: 如果我只是使用正确的语法覆盖传输语法,那也可以,它将dicom文件保存为精确大小的文件。

1 个答案:

答案 0 :(得分:2)

我用SendSCU调试了您的问题。

我得到了具有JPEG 2000有损压缩的图像。我与此建立了与SCP的连接,并推送了图像。

以下是关联日志:

Implementation Version:  CharruaSoft
Maximum PDU Size:        16384
Called AE Title:         remote
Calling AE Title:        local
Presentation Contexts:   1
  Presentation Context:  1 [Proposed]
      Abstract:  CT Image Storage
      Transfer:  Explicit VR Little Endian
      Transfer:  JPEG 2000 Image Compression
      Transfer:  Implicit VR Little Endian: Default Transfer Syntax for DICOM

请注意,SendSCU仅提议一个具有三种传输语法的表示上下文(PC)。现在由SCP接受哪个TS。这里的好处是,SCU正在自动检测要发送的图像的原始TS。

  

对于8位简单的2 MB文件,它会生成一个90 MB的巨大文件。

这是因为您的SCP接受第一传输语法并将ASSOCIATE-ACCEPT发送回SendSCU。然后,SendSCU(如预期的那样)会即时解压缩图像,从而增加大小。

  

我尝试使用dcm4che本身的StoreSCU发送,并且运行正常。

我确定StoreSCU必须提出建议:

  • 只有一个TS-有损的一个OR
  • 每个TS在单独的PC中。 SCP接受每台PC。 StoreSCU使用最好的一种-有损OR
  • 多个TS,顶部有损TS

在上述任何一种情况下,StoreSCU都不会解压缩映像,并且不会出现大小问题。也许您应该获得与上面类似的日志。

  

CharruaSoft SendSCU能够正确发送到其他SCP,例如:mymedicalimages.com。

如果在一台PC中提议多个TS,则由SCP决定接受哪个TS。由于您提到的SCP托管在互联网上,因此它很可能优先接受有损TS(以提高性能并节省带宽),因此文件大小很小。您应该检查其一致性声明。如果您将其上传到这里,我可能会帮上忙。

  

如果我从CharruaSoft sendcu中选择JPEG有损8位压缩,它可以工作并且不会创建90 mb的巨大文件。

在这种情况下,以下是关联日志:

Implementation Version:  CharruaSoft
Maximum PDU Size:        16384
Called AE Title:         remote
Calling AE Title:        local
Presentation Contexts:   1
  Presentation Context:  1 [Proposed]
      Abstract:  CT Image Storage
      Transfer:  JPEG 2000 Image Compression
      Transfer:  Implicit VR Little Endian: Default Transfer Syntax for DICOM

请注意,JPEG 2000是此处提出的第一个TS。 SCP接受了它,一切正常。

  

但是我无法控制CharruaSoft sendSCU工具。我想要java dcm4che SCP来处理。

我从未使用过dcm4che工具;在这里我无能为力。您可以查看dcm4che文档,以了解如何配置PC可以接受哪个TS。希望有一个设置/开关可以处理该行为。如果您想通过SCP即时处理此问题,这是您唯一的方法。

其他选择是使用-t开关进行离线TS转换,如here所述。

-t,--transfer-syntax <uid>
     

将源代码转换为指定的传输语法。默认情况下,使用Explicit VR Little Endian