dicomdcm4che

dcm4che 5.22.0 dcmqrscp IncompatibleSpecificCharaterSetException


I am trying to use the new dcm4che release 5.22.0 and more specifically the dcmqrscp tool: https://github.com/dcm4che/dcm4che/blob/master/dcm4che-tool/dcm4che-tool-dcmqrscp/README.md

I am starting an instance:

dcmqrscp -b DCMROUTER:435 --dicomdir /media/cdrom/DICOMDIR

But i am getting the following exception during the association request (no matter the study i am trying to send):

11:12:29,896 INFO  - Accept connection Socket[addr=/127.0.0.1,port=52127,localport=4006]
11:12:29,917 DEBUG - /127.0.0.1:4006<-/127.0.0.1:52127(1): enter state: Sta2 - Transport connection open
11:12:29,937 INFO  - DCMROUTER<-MAYAM(1) >> A-ASSOCIATE-RQ
11:12:29,942 DEBUG - A-ASSOCIATE-RQ[
  calledAET: DCMROUTER
  callingAET: MAYAM
  applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
  implClassUID: 1.2.40.0.13.1.1
  implVersionName: dcm4che-2.0
  maxPDULength: 16384
  maxOpsInvoked/maxOpsPerformed: 0/0
  PresentationContext[id: 1
    as: 1.2.840.10008.5.1.4.1.1.4 - MR Image Storage
    ts: 1.2.840.10008.1.2 - Implicit VR Little Endian
  ]
  PresentationContext[id: 3
    as: 1.2.840.10008.5.1.4.1.1.4 - MR Image Storage
    ts: 1.2.840.10008.1.2.1 - Explicit VR Little Endian
  ]
]
11:12:29,942 DEBUG - DCMROUTER<-MAYAM(1): enter state: Sta3 - Awaiting local A-ASSOCIATE response primitive
11:12:29,942 INFO  - DCMROUTER<-MAYAM(1) << A-ASSOCIATE-AC
11:12:29,942 DEBUG - A-ASSOCIATE-AC[
  calledAET: DCMROUTER
  callingAET: MAYAM
  applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
  implClassUID: 1.2.40.0.13.1.3
  implVersionName: dcm4che-5.22.0
  maxPDULength: 16378
  maxOpsInvoked/maxOpsPerformed: 0/0
  PresentationContext[id: 1
    result: 0 - acceptance
    ts: 1.2.840.10008.1.2 - Implicit VR Little Endian
  ]
  PresentationContext[id: 3
    result: 0 - acceptance
    ts: 1.2.840.10008.1.2.1 - Explicit VR Little Endian
  ]
]
11:12:29,943 DEBUG - DCMROUTER<-MAYAM(1): enter state: Sta6 - Association established and ready for data transfer
11:12:29,947 INFO  - DCMROUTER<-MAYAM(1) >> 1:C-STORE-RQ[pcid=3, prior=0
  cuid=1.2.840.10008.5.1.4.1.1.4 - MR Image Storage
  iuid=2.25.236888348187743071893701493905889154404.2 - ?
  tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian]
11:12:29,968 DEBUG - DCMROUTER<-MAYAM(1) >> 1:C-STORE-RQ Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.1.4] AffectedSOPClassUID
(0000,0100) US [1] CommandField
(0000,0110) US [1] MessageID
(0000,0700) US [0] Priority
(0000,0800) US [0] CommandDataSetType
(0000,1000) UI [2.25.236888348187743071893701493905889154404.2] AffectedSOPIns

11:12:29,969 DEBUG - DCMROUTER<-MAYAM(1) >> 1:C-STORE-RQ Dataset receiving...
11:12:29,969 INFO  - DCMROUTER<-MAYAM(1): M-WRITE \media\cdrom\2.25.236888348187743071893701493905889154404.2
11:12:29,988 INFO  - DCMROUTER<-MAYAM(1): M-RENAME \media\cdrom\2.25.236888348187743071893701493905889154404.2
11:12:30,072 INFO  - M-UPDATE \media\cdrom\DICOMDIR: add STUDY Record
11:12:30,074 INFO  - DCMROUTER<-MAYAM(1): M-DELETE \media\cdrom\DICOM\67EEF683\3AA0D620\7E6BFF30
11:12:30,075 INFO  - DCMROUTER<-MAYAM(1): processing 1:C-STORE-RQ[pcid=3, prior=0
  cuid=1.2.840.10008.5.1.4.1.1.4 - MR Image Storage
  iuid=2.25.236888348187743071893701493905889154404.2 - ?
  tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian] failed. Caused by:
  org.dcm4che3.net.service.DicomServiceException: org.dcm4che3.data.IncompatibleSpecificCharaterSetException: Specific Character Sets [] and [ISO_IR 100] not compatible
        at org.dcm4che3.tool.dcmqrscp.DcmQRSCP$CStoreSCPImpl.store(DcmQRSCP.java:176)
        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:474)
        at org.dcm4che3.net.Association.onDimseRQ(Association.java:746)
        at org.dcm4che3.net.PDUDecoder.decodeDIMSE(PDUDecoder.java:467)
        at org.dcm4che3.net.Association.handlePDataTF(Association.java:729)
        at org.dcm4che3.net.State$4.onPDataTF(State.java:103)
        at org.dcm4che3.net.Association.onPDataTF(Association.java:725)
        at org.dcm4che3.net.PDUDecoder.nextPDU(PDUDecoder.java:177)
        at org.dcm4che3.net.Association$2.run(Association.java:562)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.dcm4che3.data.IncompatibleSpecificCharaterSetException: Specific Character Sets [] and [ISO_IR 100] not compatible
        at org.dcm4che3.data.Attributes.add(Attributes.java:2103)
        at org.dcm4che3.data.Attributes.addSelected(Attributes.java:2060)
        at org.dcm4che3.media.RecordFactory.createRecord(RecordFactory.java:255)
        at org.dcm4che3.tool.dcmqrscp.DcmQRSCP.addDicomDirRecords(DcmQRSCP.java:1087)
        at org.dcm4che3.tool.dcmqrscp.DcmQRSCP$CStoreSCPImpl.store(DcmQRSCP.java:167)
        ... 13 more
11:12:30,083 INFO  - DCMROUTER<-MAYAM(1) << 1:C-STORE-RSP[pcid=3, status=110H, errorComment=org.dcm4che3.data.IncompatibleSpecificCharaterSetException: Spec
  tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian]
11:12:30,083 DEBUG - DCMROUTER<-MAYAM(1) << 1:C-STORE-RSP Command:
(0000,0100) US [32769] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [257] CommandDataSetType
(0000,0900) US [272] Status
(0000,0902) LO [org.dcm4che3.data.IncompatibleSpecificCharaterSetException: Sp

11:12:30,088 INFO  - DCMROUTER<-MAYAM(1) >> A-RELEASE-RQ
11:12:30,088 DEBUG - DCMROUTER<-MAYAM(1): enter state: Sta8 - Awaiting local A-RELEASE response primitive
11:12:30,088 INFO  - DCMROUTER<-MAYAM(1) << A-RELEASE-RP
11:12:30,089 DEBUG - DCMROUTER<-MAYAM(1): enter state: Sta13 - Awaiting Transport Connection Close Indication
11:12:30,093 DEBUG - DCMROUTER<-MAYAM(1): closing Socket[addr=/127.0.0.1,port=52127,localport=4006] in 50 ms
11:12:30,142 INFO  - DCMROUTER<-MAYAM(1): close Socket[addr=/127.0.0.1,port=52127,localport=4006]
11:12:30,142 DEBUG - DCMROUTER<-MAYAM(1): enter state: Sta1 - Idle

Any ideas what has changed in 5.22.0 and might cause this error?


Solution

  • As commented by @thanili:

    It was a bug, fixed hopefully now. Please refer to github source code for more details.