dcm4che3 storescp - can't choose preferred Transfer Syntax

1,048 views
Skip to first unread message

Burninator03

unread,
Aug 31, 2016, 9:42:11 AM8/31/16
to dcm4che
I'm trying to setup a script using storescp as a listener to temporarily store files and grab info from DICOM metadata.

dcm4chepath='/opt/dcm4chetools/bin'
storage
='/opt/dcm4chee/server/default/archive/preroute/working/AE_ARGATE'
logfile
='/opt/scripts/preroute/log/server.log'


sh $dcm4chepath
/storescp --filepath '{00080050}/{0020000D}/{00080018}.dcm' --directory $storage -b AE_ARGATE:11131 >> $logfile

Normally this works well, but when GE's Centricity PACS does a C-Store, I receive the following:

15:51:58,867 INFO  - Accept connection Socket[addr=/123.123.123.123,port=35958,localport=11131]
15:51:58,868 DEBUG - /
123.123.123.123:11131<-/123.123.123.123:35958(2): enter state: Sta2 - Transport connection open
15:51:58,871 INFO  - AE_ARGATE<-GEPACS(2) >> A-ASSOCIATE-RQ
15:51:58,879 DEBUG - A-ASSOCIATE-RQ[
  calledAET
: AE_ARGATE
  callingAET
: GEPACS
  applicationContext
: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
  implClassUID
: 1.2.840.113619.6.94
  implVersionName
: CENTRICITY_3.0
  maxPDULength
: 28672
  maxOpsInvoked
/maxOpsPerformed: 1/1


 
PresentationContext[id: 25
   
as: 1.2.840.10008.5.1.4.1.1.1.1 - Digital X-Ray Image Storage - For Presentation
    ts
: 2.16.840.1.113709.1.2.2 - ?
    ts
: 1.2.840.10008.1.2.2 - Explicit VR Big Endian (Retired)
    ts
: 1.2.840.10008.1.2.1 - Explicit VR Little Endian
    ts
: 1.2.840.10008.1.2 - Implicit VR Little Endian
 
]


 RoleSelection[
    sopClass
: 1.2.840.10008.1.20.1 - Storage Commitment Push Model SOP Class
    scu
: false
    scp
: true
 
]
 
RoleSelection[
    sopClass
: 1.2.840.10008.3.1.2.3.3 - Modality Performed Procedure Step SOP Class
    scu
: true
    scp
: false
 
]
 
RoleSelection[
    sopClass
: 1.2.840.10008.5.1.4.33 - Instance Availability Notification SOP Class
    scu
: true
    scp
: false
 
]
 
RoleSelection[
    sopClass
: 1.2.528.1.1001.3.1.2.3.1 - ?
    scu
: true
    scp
: false
 
]


15:51:58,879 DEBUG - AE_ARGATE<-GEPACS(2): enter state: Sta3 - Awaiting local A-ASSOCIATE response primitive
15:51:58,881 INFO  - AE_ARGATE<-GEPACS(2) << A-ASSOCIATE-AC
15:51:58,883 DEBUG - A-ASSOCIATE-AC[
  calledAET
: AE_ARGATE
  callingAET
: GEPACS
  applicationContext
: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
  implClassUID
: 1.2.40.0.13.1.1
  implVersionName
: dcm4che-3.3.6
  maxPDULength
: 16378
  maxOpsInvoked
/maxOpsPerformed: 1/1

PresentationContext[id: 25
    result
: 0 - acceptance
   
ts: 2.16.840.1.113709.1.2.2 - ?
 
]

15:51:58,883 DEBUG - AE_ARGATE<-GEPACS(2): enter state: Sta6 - Association established and ready for data transfer
15:51:59,082 INFO  - AE_ARGATE<-GEPACS(2) >> 11637:C-STORE-RQ[pcid=25, prior=0
  cuid
=1.2.840.10008.5.1.4.1.1.1.1 - Digital X-Ray Image Storage - For Presentation
  iuid
=1.2.528.1.1001.100.4.4837.3609.2074542476.20160829204042558 - ?
  tsuid
=2.16.840.1.113709.1.2.2 - ?
15:51:59,109 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.1.1.1] AffectedSOPClassUID
(0000,0100) US [1] CommandField
(0000,0110) US [11637] MessageID
(0000,0700) US [0] Priority
(0000,0800) US [0] CommandDataSetType
(0000,1000) UI [1.2.528.1.1001.100.4.4837.3609.2074542476.20160829204042558] A


15:51:58,883 DEBUG - AE_ARGATE<-GEPACS(2): enter state: Sta6 - Association established and ready for data transfer
15:51:59,082 INFO  - AE_ARGATE<-GEPACS(2) >> 11637:C-STORE-RQ[pcid=25, prior=0
  cuid
=1.2.840.10008.5.1.4.1.1.1.1 - Digital X-Ray Image Storage - For Presentation
  iuid
=1.2.528.1.1001.100.4.4837.3609.2074542476.20160829204042558 - ?
  tsuid
=2.16.840.1.113709.1.2.2 - ?
15:51:59,109 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.1.1.1] AffectedSOPClassUID
(0000,0100) US [1] CommandField
(0000,0110) US [11637] MessageID
(0000,0700) US [0] Priority
(0000,0800) US [0] CommandDataSetType
(0000,1000) UI [1.2.528.1.1001.100.4.4837.3609.2074542476.20160829204042558] A


15:51:59,111 INFO  - AE_ARGATE<-GEPACS(2): M-WRITE /opt/dcm4chee/server/default/archive/preroute/working/AE_ARGATE/1.2.528.1.1001.100.4.4837.3609.2074542476.20160829204042558.part
15:51:59,153 WARN  - Unrecogniced VR code: {0}H - treat as UN
15:51:59,252 WARN  - IOException during read of (2D74,616C) #1951620204 @ 2926
java
.io.EOFException
        at org
.dcm4che3.util.StreamUtils.readFully(StreamUtils.java:63)
        at org
.dcm4che3.io.DicomInputStream.readFully(DicomInputStream.java:383)
        at org
.dcm4che3.io.DicomInputStream.readValue(DicomInputStream.java:711)
        at org
.dcm4che3.io.DicomInputStream.readValue(DicomInputStream.java:536)
        at org
.dcm4che3.io.DicomInputStream.readAttributes(DicomInputStream.java:497)
        at org
.dcm4che3.io.DicomInputStream.readDataset(DicomInputStream.java:425)
        at org
.dcm4che3.tool.storescp.StoreSCP.parse(StoreSCP.java:157)
        at org
.dcm4che3.tool.storescp.StoreSCP.access$400(StoreSCP.java:81)
        at org
.dcm4che3.tool.storescp.StoreSCP$1.store(StoreSCP.java:112)
        at org
.dcm4che3.net.service.BasicCStoreSCP.onDimseRQ(BasicCStoreSCP.java:72)
        at org
.dcm4che3.net.service.DicomServiceRegistry.onDimseRQ(DicomServiceRegistry.java:86)
        at org
.dcm4che3.net.ApplicationEntity.onDimseRQ(ApplicationEntity.java:461)
        at org
.dcm4che3.net.Association.onDimseRQ(Association.java:648)
        at org
.dcm4che3.net.PDUDecoder.decodeDIMSE(PDUDecoder.java:459)
        at org
.dcm4che3.net.Association.handlePDataTF(Association.java:632)
        at org
.dcm4che3.net.State$4.onPDataTF(State.java:103)
        at org
.dcm4che3.net.Association.onPDataTF(Association.java:628)
        at org
.dcm4che3.net.PDUDecoder.nextPDU(PDUDecoder.java:177)
        at org
.dcm4che3.net.Association$2.run(Association.java:478)
        at java
.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java
.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java
.lang.Thread.run(Thread.java:745)
15:51:59,273 INFO  - AE_ARGATE<-GEPACS(2): M-DELETE /opt/dcm4chee/server/default/archive/preroute/working/AE_ARGATE/1.2.528.1.1001.100.4.4837.3609.2074542476.20160829204042558.part
15:51:59,273 INFO  - AE_ARGATE<-GEPACS(2): processing 11637:C-STORE-RQ[pcid=25, prior=0
  cuid
=1.2.840.10008.5.1.4.1.1.1.1 - Digital X-Ray Image Storage - For Presentation
  iuid
=1.2.528.1.1001.100.4.4837.3609.2074542476.20160829204042558 - ?
  tsuid
=2.16.840.1.113709.1.2.2 - ? failed. Caused by:
org
.dcm4che3.net.service.DicomServiceException: java.io.EOFException
        at org
.dcm4che3.tool.storescp.StoreSCP$1.store(StoreSCP.java:118)
        at org
.dcm4che3.net.service.BasicCStoreSCP.onDimseRQ(BasicCStoreSCP.java:72)
        at org
.dcm4che3.net.service.DicomServiceRegistry.onDimseRQ(DicomServiceRegistry.java:86)
        at org
.dcm4che3.net.ApplicationEntity.onDimseRQ(ApplicationEntity.java:461)
        at org
.dcm4che3.net.Association.onDimseRQ(Association.java:648)
        at org
.dcm4che3.net.PDUDecoder.decodeDIMSE(PDUDecoder.java:459)
        at org
.dcm4che3.net.Association.handlePDataTF(Association.java:632)
        at org
.dcm4che3.net.State$4.onPDataTF(State.java:103)
        at org
.dcm4che3.net.Association.onPDataTF(Association.java:628)
        at org
.dcm4che3.net.PDUDecoder.nextPDU(PDUDecoder.java:177)
        at org
.dcm4che3.net.Association$2.run(Association.java:478)
        at java
.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java
.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java
.lang.Thread.run(Thread.java:745)


What I can't figure out is why does it choose "2.16.840.1.113709.1.2.2" as the transfer syntax instead of the others offered in Presentation Context 25?  It looks like this transfer syntax is a private one used by GE to transfer images between their proprietary systems?

Is there anything I can do to "Prefer Implicit VR Little Endian" or something similar?

Javier Storni

unread,
Jan 11, 2018, 5:31:29 PM1/11/18
to dcm4che
Hi.

Did you find a solution for this?

Regards

Lutrero

unread,
Mar 29, 2018, 3:32:02 AM3/29/18
to dcm4che
Hi

You could try to edit sop-classes.properties, there you can tell for each sop class which TS are allowed.

Luis
Reply all
Reply to author
Forward
0 new messages