Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ShUp, dcm4che3: c-move issue with GE pacs #1945

Closed
michaelkain opened this issue Nov 13, 2023 · 1 comment
Closed

ShUp, dcm4che3: c-move issue with GE pacs #1945

michaelkain opened this issue Nov 13, 2023 · 1 comment

Comments

@michaelkain
Copy link
Contributor

michaelkain commented Nov 13, 2023

The PACS Centricity from GE sends a strange and proprietary transfer syntax UID

processing 30018:C-STORE-RQ[pcid=1, prior=0

orig=GHE_N_SHANOIR3 >> 1:C-MOVE-RQ

cuid=1.2.840.10008.5.1.4.1.1.4 - MR Image Storage

iuid=1.3.46.670589.11.65003.5.0.6572.2023110314500305175 - ?

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:139)

    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:459)

    at org.dcm4che3.net.Association.onDimseRQ(Association.java:702)

    at org.dcm4che3.net.PDUDecoder.decodeDIMSE(PDUDecoder.java:459)

    at org.dcm4che3.net.Association.handlePDataTF(Association.java:685)

    at org.dcm4che3.net.State$4.onPDataTF(State.java:103)

    at org.dcm4che3.net.Association.onPDataTF(Association.java:681)

    at org.dcm4che3.net.PDUDecoder.nextPDU(PDUDecoder.java:177)

    at org.dcm4che3.net.Association$2.run(Association.java:520)

    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)

    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)

    at java.base/java.lang.Thread.run(Thread.java:842)

Caused by: java.io.EOFException

    at org.dcm4che3.util.StreamUtils.readFully(StreamUtils.java:69)

    at org.dcm4che3.io.DicomInputStream.readFully(DicomInputStream.java:498)

    at org.dcm4che3.io.DicomInputStream.readValue(DicomInputStream.java:970)

    at org.dcm4che3.io.DicomInputStream.readValue(DicomInputStream.java:735)

    at org.dcm4che3.io.DicomInputStream.readAttributes(DicomInputStream.java:703)

    at org.dcm4che3.io.DicomInputStream.readDataset(DicomInputStream.java:629)

    at org.dcm4che3.io.DicomInputStream.readDataset(DicomInputStream.java:608)

    at org.dcm4che3.tool.storescp.StoreSCP.parse(StoreSCP.java:196)

    at org.dcm4che3.tool.storescp.StoreSCP.access$700(StoreSCP.java:80)

    at org.dcm4che3.tool.storescp.StoreSCP$1.store(StoreSCP.java:129)

    ... 13 more

[pool-7-thread-2] INFO org.dcm4che3.net.Dimse - GHE_N_SHANOIR3<-GEPACS(4) << 30018:C-STORE-RSP[pcid=1, status=110H, errorComment=java.io.EOFException

tsuid=2.16.840.1.113709.1.2.2 - ?

[pool-7-thread-2] INFO org.dcm4che3.net.Association - GHE_N_SHANOIR3<-GEPACS(4) >> A-RELEASE-RQ

[pool-7-thread-2] INFO org.dcm4che3.net.Association - GHE_N_SHANOIR3<-GEPACS(4) << A-RELEASE-RP

[pool-8-thread-1] INFO org.dcm4che3.net.Association - GHE_N_SHANOIR3<-GEPACS(4): close Socket[addr=/10.9.60.73,port=52786,localport=104]

https://groups.google.com/g/dcm4che/c/UWT6BNkiF9A

@michaelkain
Copy link
Contributor Author

michaelkain commented Nov 30, 2023

I solved the above issue in my pull request #1930
When ShUp (as SCU) sends the c-move command to the PACS (as SCP), they switch roles afterwards.
The PACS (as SCU) wants to send images to ShUp (as SCP), and they exchange a DICOM "ASSOCIATE"
request - response, that the SCU and the SCP know what they are capable. By default, for all SOP classes
dcm4che3 returns * as supported transfer capability. The GE PACS interprets this as there is no restriction
and falls back to his proprietary encoding, that is not usable by ShUp (dcm4che3). On using the sop-classes.properties and injecting them into StoreSCP, the SCP restricts his supported encodings and the GE PACS uses one of the possible transfer capabilities and now the images become readable by ShUp, as the proprietary tsuid becomes e.g. explicit vr little endian.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant