nroduit / weasis-dicom-tools

Basic dicom API
Other
34 stars 33 forks source link

CStore returned success code despite failing #4

Closed richardwhitehead closed 7 years ago

richardwhitehead commented 7 years ago

Calling the CStore method, it failed because the PACS refused the dicom file. An error was printed to the console, but the DicomState object returned by CStore contained status SUCCESS.

The error on the console was: ERROR: Received C-STORE-RSP with Status A900H for /tmp/7186333108425645099.tmp

nroduit commented 7 years ago

Could you check if the current master branch fixes this issue.

The problem is that the DicomState returns the last DICOM status. To have the progression of all the sent files, you need to add a DicomProgress :

        DicomProgress progress = new DicomProgress();
        progress.addProgressListener(new ProgressListener() {

            @Override
            public void handleProgression(DicomProgress progress) {
                System.out.println("DICOM Status:" + progress.getStatus());
                if (progress.isLastFailed()) {
                    System.out.println("Last file has failed:" + progress.getProcessedFile());
                }
            }
        });
richardwhitehead commented 7 years ago

Nicolas,

Thanks very much for the detail.

I will try to answer your question, as soon as I can get my code to work again having broken the build!

Note that I was only sending one file, but I don’t know if when you refer to “all the sent files”, the system might be sending some “files” itself?

Many thanks,

Richard

From: Nicolas Roduit [mailto:notifications@github.com] Sent: 13 November 2016 21:27 To: nroduit/weasis-dicom-tools weasis-dicom-tools@noreply.github.com Cc: richardwhitehead richard.whitehead@ieee.org; Author author@noreply.github.com Subject: Re: [nroduit/weasis-dicom-tools] CStore returned success code despite failing (#4)

Could you check if the current master branch fixes this issue.

The problem is that the DicomState returns the last DICOM status. To have the progression of all the sent files, you need to add a DicomProgress :

    DicomProgress progress = new DicomProgress();
    progress.addProgressListener(new ProgressListener() {

        @Override
        public void handleProgression(DicomProgress progress) {
            System.out.println("DICOM Status:" + progress.getStatus());
            if (progress.isLastFailed()) {
                System.out.println("Last file has failed:" + progress.getProcessedFile());
            }
        }
    });

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nroduit/weasis-dicom-tools/issues/4#issuecomment-260214105 , or mute the thread https://github.com/notifications/unsubscribe-auth/AV5UrWzUhBBIpH3cRP1rmHmbT-KdeaF4ks5q94CKgaJpZM4KthRM . https://github.com/notifications/beacon/AV5UrS7z_fzk3Yabn4oOtj7MpTHG9Gjaks5q94CKgaJpZM4KthRM.gif

nroduit commented 7 years ago

No, but generally you send more than one DICOM file. So if you send only one file, the status should not be success.

richardwhitehead commented 7 years ago

Nicolas,

I am new to the world of PACS and DICOM so apologies if this is really basic stuff.

What we are pushing to the PACS is a report, which is a PDF wrapped in DICOM. We push this to a new series within the original study that we processed (it seems the PACS doesn’t like it being in the original series).

So far I have not been able to view the report using the Weasis viewer that forms part of the MRIdb PACS, even though I can query for it, so something is not happy somewhere, could this be connected with what you are saying?

I don’t understand what I should do if I am sending a report file, why would I send multiple files?

Also, when pushing data into our PACS we are looping over our sample DCM files, each of which contains a single slice. This seems to work. We are using dcm4che for this.

If you have time to explain it would be very helpful.

Many thanks,

Richard

From: Nicolas Roduit [mailto:notifications@github.com] Sent: 15 November 2016 16:45 To: nroduit/weasis-dicom-tools weasis-dicom-tools@noreply.github.com Cc: richardwhitehead richard.whitehead@ieee.org; Author author@noreply.github.com Subject: Re: [nroduit/weasis-dicom-tools] CStore returned success code despite failing (#4)

No, but generally you send more than one DICOM file. So if you send only one file, the status should not be success.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nroduit/weasis-dicom-tools/issues/4#issuecomment-260695627 , or mute the thread https://github.com/notifications/unsubscribe-auth/AV5UrWk2QzT8BnBTnwmUPG1uCe3tjBRkks5q-eGDgaJpZM4KthRM . https://github.com/notifications/beacon/AV5Urdukl2wIi-sS81NZMSyVcg_q62RFks5q-eGDgaJpZM4KthRM.gif

richardwhitehead commented 7 years ago

Nicolas,

I tried version 1.0.2 and that didn’t fix it, do you want me to try the nightly build?

I still don’t understand what I’m supposed to do to send a single report file.

Many thanks,

Richard

From: Nicolas Roduit [mailto:notifications@github.com] Sent: 13 November 2016 21:27 To: nroduit/weasis-dicom-tools weasis-dicom-tools@noreply.github.com Cc: richardwhitehead richard.whitehead@ieee.org; Author author@noreply.github.com Subject: Re: [nroduit/weasis-dicom-tools] CStore returned success code despite failing (#4)

Could you check if the current master branch fixes this issue.

The problem is that the DicomState returns the last DICOM status. To have the progression of all the sent files, you need to add a DicomProgress :

    DicomProgress progress = new DicomProgress();
    progress.addProgressListener(new ProgressListener() {

        @Override
        public void handleProgression(DicomProgress progress) {
            System.out.println("DICOM Status:" + progress.getStatus());
            if (progress.isLastFailed()) {
                System.out.println("Last file has failed:" + progress.getProcessedFile());
            }
        }
    });

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nroduit/weasis-dicom-tools/issues/4#issuecomment-260214105 , or mute the thread https://github.com/notifications/unsubscribe-auth/AV5UrWzUhBBIpH3cRP1rmHmbT-KdeaF4ks5q94CKgaJpZM4KthRM . https://github.com/notifications/beacon/AV5UrS7z_fzk3Yabn4oOtj7MpTHG9Gjaks5q94CKgaJpZM4KthRM.gif

nroduit commented 7 years ago

I don't have time now to analyse your issue but I'm surprised that you have a success status because the error message above appears only when the current status is not success. I was talking about the number of files because the status can change for each file that is sent to the archive. So in your situation I don't understand how this result is possible.

2016-11-16 18:08 GMT+01:00 richardwhitehead notifications@github.com:

Nicolas,

I tried version 1.0.2 and that didn’t fix it, do you want me to try the nightly build?

I still don’t understand what I’m supposed to do to send a single report file.

Many thanks,

Richard

From: Nicolas Roduit [mailto:notifications@github.com] Sent: 13 November 2016 21:27 To: nroduit/weasis-dicom-tools weasis-dicom-tools@noreply.github.com Cc: richardwhitehead richard.whitehead@ieee.org; Author < author@noreply.github.com> Subject: Re: [nroduit/weasis-dicom-tools] CStore returned success code despite failing (#4)

Could you check if the current master branch fixes this issue.

The problem is that the DicomState returns the last DICOM status. To have the progression of all the sent files, you need to add a DicomProgress :

DicomProgress progress = new DicomProgress(); progress.addProgressListener(new ProgressListener() {

@Override public void handleProgression(DicomProgress progress) { System.out.println("DICOM Status:" + progress.getStatus()); if (progress.isLastFailed()) { System.out.println("Last file has failed:" + progress.getProcessedFile()); } } });

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub < https://github.com/nroduit/weasis-dicom-tools/issues/4# issuecomment-260214105> , or mute the thread https://github.com/ notifications/unsubscribe-auth/AV5UrWzUhBBIpH3cRP1rmHmbT- KdeaF4ks5q94CKgaJpZM4KthRM . https://github.com/ notifications/beacon/AV5UrS7z_fzk3Yabn4oOtj7MpTHG9Gjaks5q94C KgaJpZM4KthRM.gif

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/nroduit/weasis-dicom-tools/issues/4#issuecomment-261007290, or mute the thread https://github.com/notifications/unsubscribe-auth/AA8qt57jg41JNnEfnAAhGEnJOpVXxlKqks5q-ziegaJpZM4KthRM .

richardwhitehead commented 7 years ago

Nicolas,

Thanks for the reply, I can tell you are busy too.

To reproduce this error you can try to push a file with an empty patient name to the DCM4CHEE PACS, which will reject it. It is completely reproducible.

I can’t see how it could be wrong but here is the code I use:

DicomState state = CStore.process(weasisCallingNode, weasisCalledNode, files);

if (state.getStatus() != Status.Success) {

… error...

I notice that you use integers rather than an enum for the status but I can’t see how it could be going wrong (the status is definitely zero even though the error is printed to the console and the file is not present in the PACS).

Many thanks,

Richard

From: Nicolas Roduit [mailto:notifications@github.com] Sent: 17 November 2016 07:11 To: nroduit/weasis-dicom-tools weasis-dicom-tools@noreply.github.com Cc: richardwhitehead richard.whitehead@ieee.org; Author author@noreply.github.com Subject: Re: [nroduit/weasis-dicom-tools] CStore returned success code despite failing (#4)

I don't have time now to analyse your issue but I'm surprised that you have a success status because the error message above appears only when the current status is not success. I was talking about the number of files because the status can change for each file that is sent to the archive. So in your situation I don't understand how this result is possible.

2016-11-16 18:08 GMT+01:00 richardwhitehead <notifications@github.com mailto:notifications@github.com >:

Nicolas,

I tried version 1.0.2 and that didn’t fix it, do you want me to try the nightly build?

I still don’t understand what I’m supposed to do to send a single report file.

Many thanks,

Richard

From: Nicolas Roduit [mailto:notifications@github.com] Sent: 13 November 2016 21:27 To: nroduit/weasis-dicom-tools <weasis-dicom-tools@noreply.github.com mailto:weasis-dicom-tools@noreply.github.com > Cc: richardwhitehead <richard.whitehead@ieee.org mailto:richard.whitehead@ieee.org >; Author < author@noreply.github.com mailto:author@noreply.github.com > Subject: Re: [nroduit/weasis-dicom-tools] CStore returned success code despite failing (#4)

Could you check if the current master branch fixes this issue.

The problem is that the DicomState returns the last DICOM status. To have the progression of all the sent files, you need to add a DicomProgress :

DicomProgress progress = new DicomProgress(); progress.addProgressListener(new ProgressListener() {

@Override public void handleProgression(DicomProgress progress) { System.out.println("DICOM Status:" + progress.getStatus()); if (progress.isLastFailed()) { System.out.println("Last file has failed:" + progress.getProcessedFile()); } } });

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub < https://github.com/nroduit/weasis-dicom-tools/issues/4# issuecomment-260214105> , or mute the thread <https://github.com/ https://github.com/%0b notifications/unsubscribe-auth/AV5UrWzUhBBIpH3cRP1rmHmbT- KdeaF4ks5q94CKgaJpZM4KthRM> . <https://github.com/ https://github.com/%0b notifications/beacon/AV5UrS7z_fzk3Yabn4oOtj7MpTHG9Gjaks5q94C KgaJpZM4KthRM.gif>

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/nroduit/weasis-dicom-tools/issues/4#issuecomment-261007290, or mute the thread https://github.com/notifications/unsubscribe-auth/AA8qt57jg41JNnEfnAAhGEnJOpVXxlKqks5q-ziegaJpZM4KthRM .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nroduit/weasis-dicom-tools/issues/4#issuecomment-261172414 , or mute the thread https://github.com/notifications/unsubscribe-auth/AV5UrcrjqCarJM-FZGj2yQ6AX8bK2AmNks5q-_4KgaJpZM4KthRM . https://github.com/notifications/beacon/AV5UrZItSogpvzLYHADHokLUs_0Tz0j5ks5q-_4KgaJpZM4KthRM.gif

nroduit commented 7 years ago

I manage to reproduce the issue. It appears only when there is no DicomProgress.

I published the fix.

richardwhitehead commented 7 years ago

Thanks a lot Nicolas.

Richard

From: Nicolas Roduit Sent: Saturday, November 19, 2016 4:01 PM To: nroduit/weasis-dicom-tools Cc: richardwhitehead ; Author Subject: Re: [nroduit/weasis-dicom-tools] CStore returned success code despite failing (#4)

I manage to reproduce the issue. It appears only when there is no DicomProgress.

I published the fix.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

richardwhitehead commented 7 years ago

Nicolas,

Please can you advise about a problem we are having with Weasis?

We are setting up the CMove protocol. We have set up PACS and listener (storescu), and exercised the system using the movescu command in the dcm4che 3 toolkit. Everything works as we expect; if the PACS recognises the destination AET then it sends data to it, otherwise we get an error.

However when we use Weasis things seem more complicated. Sometimes it seems to work when we would expect it to fail, for example if we send it a nonsense destination AET it sends data to us; we think that if the PACS does not recognise the destination AET then Weasis is telling it to send the data to the originator, does it do that?

More worryingly, it often seems to fail when we think it should succeed. We get an error in the log like:

12:41:01,959 [main] ERROR org.weasis.dicom.op.CMove - A-ASSOCIATE-RJ[result: 1 - rejected-permanent, source: 2 - service-provider (ACSE related function), reason: 1 - no-reason-given]

Does this ring any bells? Would you like us to raise a bug with descriptions on how to reproduce it?

Many thanks,

Richard

From: Nicolas Roduit Sent: Saturday, November 19, 2016 4:01 PM To: nroduit/weasis-dicom-tools Cc: richardwhitehead ; Author Subject: Re: [nroduit/weasis-dicom-tools] CStore returned success code despite failing (#4)

I manage to reproduce the issue. It appears only when there is no DicomProgress.

I published the fix.

- You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/nroduit/weasis-dicom-tools/issues/4#issuecomment-261722153, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AV5UrY8EPC_0I4mdfUwP9Pf-mcJzNLPJks5q_x1mgaJpZM4KthRM.