We are using storescp and movescu (dcmtk 3.5.3) to retrieve images from a PACS system (major vendor).
The problem is the following:
When using the default storescp.cfg file (as included in etc/storescp.cfg), we are not able to retrieve MRImageStorage objects, but we are able to retrieve SecondaryCaptureImageStorage objects.
When I change the transfer syntax configuration for MRImageStorage to UncompressedOrZlib, retrieval of MR images works as well.
My expectation would have been that even when the SCU negotiates a compressed transfer syntax, I would at least receive the object, but it seems that the association is just closed after the initial communication.
Here's the output of storescp -d when sending an MR image.
Code: Select all
D:\test>storescp.exe -d -xf storescp.cfg Default 1602
PDU Type: Associate Request PDU Length: 5919
Only dumping 512 bytes
01 00 00 00 17 19 00 01 00 00 6d 69 64 63 30 30
31 20 20 20 20 20 20 20 20 20 47 45 50 41 43 53
20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 10 00 00 15 31 2e
32 2e 38 34 30 2e 31 30 30 30 38 2e 33 2e 31 2e
31 2e 31 20 00 00 7a 01 00 00 00 30 00 00 14 31
2e 32 2e 38 34 30 2e 31 30 30 30 38 2e 31 2e 32
30 2e 31 40 00 00 13 31 2e 32 2e 38 34 30 2e 31
30 30 30 38 2e 31 2e 32 2e 32 40 00 00 13 31 2e
32 2e 38 34 30 2e 31 30 30 30 38 2e 31 2e 32 2e
31 40 00 00 11 31 2e 32 2e 38 34 30 2e 31 30 30
30 38 2e 31 2e 32 40 00 00 17 32 2e 31 36 2e 38
34 30 2e 31 2e 31 31 33 37 30 39 2e 31 2e 32 2e
31 20 00 00 7d 03 00 00 00 30 00 00 17 31 2e 32
2e 38 34 30 2e 31 30 30 30 38 2e 33 2e 31 2e 32
2e 33 2e 33 40 00 00 13 31 2e 32 2e 38 34 30 2e
31 30 30 30 38 2e 31 2e 32 2e 32 40 00 00 13 31
2e 32 2e 38 34 30 2e 31 30 30 30 38 2e 31 2e 32
2e 31 40 00 00 11 31 2e 32 2e 38 34 30 2e 31 30
30 30 38 2e 31 2e 32 40 00 00 17 32 2e 31 36 2e
38 34 30 2e 31 2e 31 31 33 37 30 39 2e 31 2e 32
2e 31 20 00 00 77 05 00 00 00 30 00 00 11 31 2e
32 2e 38 34 30 2e 31 30 30 30 38 2e 31 2e 31 40
00 00 13 31 2e 32 2e 38 34 30 2e 31 30 30 30 38
2e 31 2e 32 2e 32 40 00 00 13 31 2e 32 2e 38 34
30 2e 31 30 30 30 38 2e 31 2e 32 2e 31 40 00 00
11 31 2e 32 2e 38 34 30 2e 31 30 30 30 38 2e 31
2e 32 40 00 00 17 32 2e 31 36 2e 38 34 30 2e 31
2e 31 31 33 37 30 39 2e 31 2e 32 2e 31 20 00 00
99 07 00 00 00 30 00 00 19 31 2e 32 2e 38 34 30
2e 31 30 30 30 38 2e 35 2e 31 2e 34 2e 31 2e 31
Parameters:
Our Implementation Class UID: 1.2.276.0.7230010.3.0.3.5.3
Our Implementation Version Name: OFFIS_DCMTK_353
Their Implementation Class UID: 1.2.840.113619.6.94
Their Implementation Version Name: CENTRICITY_2.1
Application Context Name: 1.2.840.10008.3.1.1.1
Calling Application Name: GEPACS
Called Application Name: midc001
Responding Application Name:
Our Max PDU Receive Size: 16384
Their Max PDU Receive Size: 28672
Presentation Contexts:
Context ID: 1 (Proposed)
Abstract Syntax: =StorageCommitmentPushModelSOPClass
Proposed SCP/SCU Role: SCP
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
2.16.840.1.113709.1.2.1
Context ID: 3 (Proposed)
Abstract Syntax: =ModalityPerformedProcedureStepSOPClass
Proposed SCP/SCU Role: SCP
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
2.16.840.1.113709.1.2.1
Context ID: 5 (Proposed)
Abstract Syntax: =VerificationSOPClass
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
2.16.840.1.113709.1.2.1
Context ID: 7 (Proposed)
Abstract Syntax: =MRImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 9 (Proposed)
Abstract Syntax: =ComputedRadiographyImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 11 (Proposed)
Abstract Syntax: =CTImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 13 (Proposed)
Abstract Syntax: =SecondaryCaptureImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 15 (Proposed)
Abstract Syntax: =UltrasoundImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 17 (Proposed)
Abstract Syntax: =UltrasoundMultiframeImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=JPEGBaseline
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
Context ID: 19 (Proposed)
Abstract Syntax: =RETIRED_UltrasoundImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=JPEGBaseline
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
Context ID: 21 (Proposed)
Abstract Syntax: =RETIRED_UltrasoundMultiframeImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=JPEGBaseline
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
Context ID: 23 (Proposed)
Abstract Syntax: =NuclearMedicineImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 25 (Proposed)
Abstract Syntax: =XRayAngiographicImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 27 (Proposed)
Abstract Syntax: =RETIRED_XRayAngiographicBiPlaneImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 29 (Proposed)
Abstract Syntax: =XRayFluoroscopyImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 31 (Proposed)
Abstract Syntax: =DigitalXRayImageStorageForPresentation
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 33 (Proposed)
Abstract Syntax: =DigitalXRayImageStorageForProcessing
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 35 (Proposed)
Abstract Syntax: =DigitalMammographyXRayImageStorageForPresentation
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 37 (Proposed)
Abstract Syntax: =DigitalMammographyXRayImageStorageForProcessing
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 39 (Proposed)
Abstract Syntax: =RTImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 41 (Proposed)
Abstract Syntax: =VLEndoscopicImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 43 (Proposed)
Abstract Syntax: =VLMicroscopicImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 45 (Proposed)
Abstract Syntax: =VLPhotographicImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 47 (Proposed)
Abstract Syntax: =VLSlideCoordinatesMicroscopicImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 49 (Proposed)
Abstract Syntax: =PETImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 51 (Proposed)
Abstract Syntax: 1.2.840.113619.4.26
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 53 (Proposed)
Abstract Syntax: 1.2.840.113619.4.30
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 55 (Proposed)
Abstract Syntax: =RETIRED_NuclearMedicineImageStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
2.16.840.1.113709.1.2.2
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
=JPEGBaseline
Context ID: 57 (Proposed)
Abstract Syntax: =FINDPatientRootQueryRetrieveInformationModel
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
2.16.840.1.113709.1.2.1
Context ID: 59 (Proposed)
Abstract Syntax: =MOVEPatientRootQueryRetrieveInformationModel
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
2.16.840.1.113709.1.2.1
Context ID: 61 (Proposed)
Abstract Syntax: =FINDPatientStudyOnlyQueryRetrieveInformationModel
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
2.16.840.1.113709.1.2.1
Context ID: 63 (Proposed)
Abstract Syntax: =MOVEPatientStudyOnlyQueryRetrieveInformationModel
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
2.16.840.1.113709.1.2.1
Context ID: 65 (Proposed)
Abstract Syntax: =FINDStudyRootQueryRetrieveInformationModel
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
2.16.840.1.113709.1.2.1
Context ID: 67 (Proposed)
Abstract Syntax: =MOVEStudyRootQueryRetrieveInformationModel
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
2.16.840.1.113709.1.2.1
Context ID: 69 (Proposed)
Abstract Syntax: =RTPlanStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
Context ID: 71 (Proposed)
Abstract Syntax: =RTStructureSetStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
Context ID: 73 (Proposed)
Abstract Syntax: =RTBeamsTreatmentRecordStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
Context ID: 75 (Proposed)
Abstract Syntax: =RTBrachyTreatmentRecordStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
Context ID: 77 (Proposed)
Abstract Syntax: =RTDoseStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
Context ID: 79 (Proposed)
Abstract Syntax: =RTTreatmentSummaryRecordStorage
Proposed SCP/SCU Role: Default
Accepted SCP/SCU Role: Default
Proposed Transfer Syntax(es):
=BigEndianExplicit
=LittleEndianExplicit
=LittleEndianImplicit
Requested Extended Negotiation: none
Accepted Extended Negotiation: none
Constructing Associate AC PDU
DIMSE receiveCommand
Note that the SCU also tries to negotiate a private transfer syntax.
What is also puzzling is that both MRImageStorage and SecondaryCaptureImageStorage are configured as AnyTransferSyntax, but nonetheless one of them works and one of them doesn't.
Any idea what is happening here?
Thanks for any help
Bernd