当我们使用不同的传输语法从 CharruaSoft sendscu 工具发送 DICOM 时,为什么 dcm4che 会创建巨大的文件?
Why dcm4che creates huge files when we send DICOM from CharruaSoft sendscu tool using different transfer syntax?
我有几个 16 位和 8 位 DICOM 文件,我正在使用 CharruaSoft sendscu 工具传输到 dcm4che StoreSCP。
它对 16 位文件工作正常,但对于 8 位简单的 2 MB 文件,它会生成一个巨大的 90 MB 文件。
我尝试从 dcm4che 本身使用 StoreSCU 发送,它工作正常。
但是从 CharruaSoft SendSCU 中它创建了巨大的文件。
重现步骤:
- 下载CharruaSoft SendSCU。
- 设置dcm4che工具SCP maven项目。
- 运行 java 的主要方法使用
--help
. 中给出的正确参数
- 使用CharruaSoft SendSCU发送16位DICOM,效果很好
- 现在发送一个 8 位 DICOM,它可以工作但是创建了一个巨大的文件,在我的例子中 2 MB 变成了 90 MB。
首先,我认为这可能是 CharruaSoft SendSCU 的问题,但 CharruaSoft SendSCU 能够正确发送到其他 SCP,例如:mymedicalimages.com。
有没有人遇到过类似的问题?
编辑:
如果我 select 来自 CharruaSoft sendscu 的 JPEG 有损 8 位压缩,它可以工作并且不会创建一个巨大的 90 mb 文件。
但是我无法控制 CharruaSoft sendSCU 工具。我希望 java dcm4che SCP 来处理。
编辑 2:
如果我只是用正确的语法覆盖传输语法也很好,这样它将 dicom 文件保存为精确大小的文件。
我用 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是auto-detecting要发送的图像的原始TS。
for 8 bit simple 2 MB file it generates a huge 90 MB file.
这是因为您的 SCP 正在接受第一个传输语法并将 ASSOCIATE-ACCEPT
发送回 SendSCU。然后 SendSCU(如预期的那样)即时解压缩图像,从而增加尺寸。
I tried to send using StoreSCU from dcm4che itself and it works fine.
我确定 StoreSCU 一定会提议:
- 只有一个 TS - 有损的 OR
- 多个 TS,每个都在单独的 PC 中。 SCP 接受每个 PC。 StoreSCU 使用最好的一个 - 有损 OR
- 顶部有损 TS 的多个 TS
以上任何一种情况,StoreSCU都不会解压图片,也不会有大小问题。也许你应该得到与上面类似的日志。
CharruaSoft SendSCU is able to send to other SCPs for eg: mymedicalimages.com properly.
如果在一台PC中提出多个TS,则由SCP决定接受哪个TS。由于您提到的 SCP 托管在互联网上,它很可能优先接受 Lossy TS(以提高性能和节省带宽),因此生成的文件大小很小。您应该检查他们的一致性声明。如果你上传到这里,我可能会有点帮助。
If I select JPEG lossy 8 bit compression from CharruaSoft sendscu, it works and doesn't create a huge 90 mb file.
以下是这种情况下的关联日志:
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 接受它并且一切正常。
But I have no control over CharruaSoft sendSCU tool. I want java dcm4che SCP to handle that.
我从未使用过dcm4che工具;我帮不上忙。您可以查看 dcm4che 文档以了解如何配置接受 PC 中建议的 TS。希望有一个 setting/switch 来处理这种行为。如果你想用 SCP 即时处理这个问题,这是你唯一的方法。
其他替代方法是使用 -t
开关进行离线 TS 转换,如 here 所述。
-t,--transfer-syntax <uid>
transcode sources to specified Transfer Syntax. At default use Explicit VR Little Endian
我有几个 16 位和 8 位 DICOM 文件,我正在使用 CharruaSoft sendscu 工具传输到 dcm4che StoreSCP。
它对 16 位文件工作正常,但对于 8 位简单的 2 MB 文件,它会生成一个巨大的 90 MB 文件。
我尝试从 dcm4che 本身使用 StoreSCU 发送,它工作正常。 但是从 CharruaSoft SendSCU 中它创建了巨大的文件。
重现步骤:
- 下载CharruaSoft SendSCU。
- 设置dcm4che工具SCP maven项目。
- 运行 java 的主要方法使用
--help
. 中给出的正确参数
- 使用CharruaSoft SendSCU发送16位DICOM,效果很好
- 现在发送一个 8 位 DICOM,它可以工作但是创建了一个巨大的文件,在我的例子中 2 MB 变成了 90 MB。
首先,我认为这可能是 CharruaSoft SendSCU 的问题,但 CharruaSoft SendSCU 能够正确发送到其他 SCP,例如:mymedicalimages.com。
有没有人遇到过类似的问题?
编辑:
如果我 select 来自 CharruaSoft sendscu 的 JPEG 有损 8 位压缩,它可以工作并且不会创建一个巨大的 90 mb 文件。
但是我无法控制 CharruaSoft sendSCU 工具。我希望 java dcm4che SCP 来处理。
编辑 2: 如果我只是用正确的语法覆盖传输语法也很好,这样它将 dicom 文件保存为精确大小的文件。
我用 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是auto-detecting要发送的图像的原始TS。
for 8 bit simple 2 MB file it generates a huge 90 MB file.
这是因为您的 SCP 正在接受第一个传输语法并将 ASSOCIATE-ACCEPT
发送回 SendSCU。然后 SendSCU(如预期的那样)即时解压缩图像,从而增加尺寸。
I tried to send using StoreSCU from dcm4che itself and it works fine.
我确定 StoreSCU 一定会提议:
- 只有一个 TS - 有损的 OR
- 多个 TS,每个都在单独的 PC 中。 SCP 接受每个 PC。 StoreSCU 使用最好的一个 - 有损 OR
- 顶部有损 TS 的多个 TS
以上任何一种情况,StoreSCU都不会解压图片,也不会有大小问题。也许你应该得到与上面类似的日志。
CharruaSoft SendSCU is able to send to other SCPs for eg: mymedicalimages.com properly.
如果在一台PC中提出多个TS,则由SCP决定接受哪个TS。由于您提到的 SCP 托管在互联网上,它很可能优先接受 Lossy TS(以提高性能和节省带宽),因此生成的文件大小很小。您应该检查他们的一致性声明。如果你上传到这里,我可能会有点帮助。
If I select JPEG lossy 8 bit compression from CharruaSoft sendscu, it works and doesn't create a huge 90 mb file.
以下是这种情况下的关联日志:
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 接受它并且一切正常。
But I have no control over CharruaSoft sendSCU tool. I want java dcm4che SCP to handle that.
我从未使用过dcm4che工具;我帮不上忙。您可以查看 dcm4che 文档以了解如何配置接受 PC 中建议的 TS。希望有一个 setting/switch 来处理这种行为。如果你想用 SCP 即时处理这个问题,这是你唯一的方法。
其他替代方法是使用 -t
开关进行离线 TS 转换,如 here 所述。
-t,--transfer-syntax <uid>
transcode sources to specified Transfer Syntax. At default use Explicit VR Little Endian