-
Notifications
You must be signed in to change notification settings - Fork 38
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
HTTP Error: 406 Client Error: Not Acceptable for url #46
Comments
Do you have a way to replicate this on a public instance with anonymized data? |
@athanell Thanks for the PM with more detail. Is it correct that no studies can be pulled from Microsoft's dicomweb server using Slicer's dicomweb browser? (i.e. it's not specific to this data). I haven't used their server before. It looks like the underlying issue is the I can reproduce this with curl:
but
Gives me a stream of data that looks valid (this is the header accept string that ohif uses). Compare their conformance statements: https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances @hackermd do you have experience with this? MDN indicates that 406 codes are rarely helpful and maybe Microsoft should be more flexible, but it's also possible that a workaround in the client is preferred. @lassoan might also have ideas. |
@pieper yes I can verify that in order to pull data from Microsoft's dicomweb either with python or curl one needs to use the header "accept: multipart/related". The same error came up with different datasets so I think that it is not a data-specific issue. |
Thanks @athanell for reporting the issue and @pieper for looking into it. I am not sure I understand what the problem is and whether it is a problem with the library or the Slicer application. Do you have or could you create a debug log, i.e., configure the |
The downloading in Slicer is fairly straightforward:
Do you see anything suspicious in this? |
Thanks @lassoan!
No, looks good to me. |
@pieper @lassoan what version of dicomweb-client is used by this Slicer version? The Microsoft dicom-server has an issue with the media type for the retrieve transaction. We updated the dicomweb-client after #41 (included in release 0.51.0. |
Latest DICOMWebBrowser extension installs 0.52.0: @athanell Please check the version in your Slicer version by opening the Python console (Ctrl+3) and typing these:
|
@lassoan yes I can verify that my version is the '0.52.0' |
Hi! I'm just seeing this for the first time. Apologies for missing it earlier. I'm working on the Azure DICOM implementation. Let me run this error to ground. Thanks for all the context in the posts above. Although @hackermd let us know about the problem early on. |
Thanks @StevenBorg! We updated the dicomweb-client in version 0.51.0 such that it tolerates a response with content-type |
Hello @pieper . I can replicate this error using Slicer's sample head CT on the server http://dicomweb.azurewebsites.net/ found in https://github.com/DICOMcloud/DICOMcloud |
Thanks for performing the additional tests @athanell! As @pieper pointed out, we are generally reluctant to support non-standard behavior. However, I've also come to painfully realize that sometimes there is not much one can do but work around a compliance issue. We should thus find a way to unblock users while working with the server implementer on resolving compliance issues. @agharwal recently introduced a |
From an application perspective (e.g. to a user of Slicer's DICOMwebBrowser extension) we would be looking for ways to make the code "just work" as often as possible without needing to know in advance that we wanted to be permissive or not. So I might expect the default behavior to be permissive. Unfortunately the end user often doesn't control the server, or even if they administer the server they don't have the ability to fix non-compliance. So they are relying on the application to handle as much as possible, meaning that the application developer wants to rely on the library developer to handle as much as possible. Unless it impacts performance or some other important thing the user probably doesn't care that the server is not compliant. Perhaps the library could provide a way to audit servers for compliance (something like |
I have the same issue. I pinpointed the issue arising going from 0.55.0 to 0.55.1 (and all following versions). My solution is to use 0.55.0 for now. Here's my code: from dicomweb_client.api import DICOMwebClient
client = DICOMwebClient(url=url)
pydicom_dataset = client.retrieve_instance(
study_instance_uid=study_uid,
series_instance_uid=series_uid,
sop_instance_uid=object_uid,
) The error is: 406 Client Error: Not Acceptable for url: http://......../studies/........../series/............../instances/............. Note I'm running into this when trying to pull from an MGB VNA. I can provide more details on a private channel if desired. My email is delton at mgh . harvard |
In version 0.55.1, changes were made related to the handling of media types (see #63). These changes were not intended to be break anything, but the following change may lead to a change in server behavior (although it shouldn't from the perspective of the standard): @delton137 could please try setting the |
@hackermd using |
@delton137 That is an indication that the archive has standard compliance issues. It appears it does not understand/handle the |
Hello,
I get a client error when connecting to an azure dicom webserver. I can see normally all the records and I can as well remove a selected series from the DICOMweb server through Slicer's extension. But when I try to "download and index" it I get:
What could possibly go wrong?
OS: Win 10
Slicer version: 4.13.0-2021-03-03 r29745 / fca084e
Regards
Antonios
The text was updated successfully, but these errors were encountered: