PantelisGeorgiadis / dcmjs-dimse

DICOM DIMSE implementation for Node.js using the dcmjs library
MIT License
74 stars 14 forks source link

Do you have any plans to support BigEndianExplicit transfer syntax? #56

Closed suoc closed 9 months ago

suoc commented 10 months ago

Is there a plan for this?

suoc commented 10 months ago

My mistake. I test this using the IQ-DICOMTEST tool.

PantelisGeorgiadis commented 10 months ago

Hello @suoc! Thank you for your question! Although the Explicit VR Big Endian transfer syntax (1.2.840.10008.1.2.2) has been officially retired since 2006, dcmjs is supporting it and, therefore inherently, it is supported in dcmjs-dimse. It is not one of the syntaxes that are proposed by default, however, you can easily add it to your proposed contexts through the addAdditionalPresentationContext Client function.

suoc commented 10 months ago

When I use dcm.js to test the local DICOM file parsing, everything functions normally. However, receiving through DIMSE leads to data content issues.

PantelisGeorgiadis commented 9 months ago

Hey @suoc, do you have any sample code that I can use to test this?

suoc commented 9 months ago

I use your C-Store sample code for the testing. The client used the IQ-DICOMTEST testing tool.

suoc commented 9 months ago

iQ-DICOMTEST 4.0.0.zip

PantelisGeorgiadis commented 9 months ago

Hello @suoc! Your observation was correct! Although dcmjs is able to handle Explicit VR Big Endian datasets, the Dataset class wasn't providing the information required to the library, so it can properly parse them. This is now fixed in version 0.1.25. Please test and let me know.

suoc commented 9 months ago

Excellent! The test was successful. Your test cases may need to be updated. The dcmjs v0.29.x contains several incompatible changes.

PantelisGeorgiadis commented 9 months ago

Thank you for verifying this @suoc! Yes, I'm aware that there are breaking changes introduced in dcmjs after version 0.29.10 and that's the reason for sticking to this, for now.

suoc commented 9 months ago

In the package.json file, the dcmjs dependency should be specified as 0.29.10 rather than ^0.29.10. Furthermore, the package-lock.json file needs to be regenerated.

PantelisGeorgiadis commented 9 months ago

Once again, thank you @suoc! In the latest release (0.1.26), the library is targeting specifically dcmjs version 0.29.10. Until the tests are updated to work with the latest dcmjs version, we can stick to this one.