Bug 182 - route /studies doesn't implement POST to create new dicom
Summary: route /studies doesn't implement POST to create new dicom
Status: RESOLVED FIXED
Alias: None
Product: Orthanc
Classification: Unclassified
Component: Orthanc Core (show other bugs)
Version: unspecified
Hardware: All All
: --- enhancement
Assignee: Sébastien Jodogne
URL:
Depends on:
Blocks:
 
Reported: 2020-06-29 15:16 CEST by Sébastien Jodogne
Modified: 2020-06-29 15:28 CEST (History)
0 users

See Also:


Attachments
2640582871-Insomnia2.JPG (43.07 KB, image/jpeg)
2020-06-29 15:28 CEST, Sébastien Jodogne
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sébastien Jodogne 2020-06-29 15:16:58 CEST
[BitBucket user: Luis Mejía]
[BitBucket date: 2020-06-18.15:20:58]

As per the DicomWeb [spec](https://www.dicomstandard.org/dicomweb/store-stow-rs/), the route /studies should implement POST request to upload new dicom file.

I get a 405 method not allowed when trying to do that, and also looked at the rest api [spreadsheet ](https://docs.google.com/spreadsheets/u/1/d/e/2PACX-1vSBEymDKGZgskFEFF6yzge5JovGHPK_FIbEnW5a6SWUbPkX06tkoObUHh6T1XQhgj-HqFd0AWSnVFOv/pubhtml?gid=1683367243&single=true)and it says it does only support Get for that one.

I saw it works with /instances but that is not under /dicom-web/instances but directly /instances after the host.

is that the one I should be using?
Comment 1 Sébastien Jodogne 2020-06-29 15:28:14 CEST
[BitBucket user: Sébastien Jodogne]
[BitBucket date: 2020-06-19.05:33:42]

You are mixing the Orthanc REST API and the DICOMweb plugin.

The DICOMweb API is by default accessible at the URI "/dicom-web/". But, you are using "/studies" that is outside of the scope of DICOMweb. As a consequence, to access the STOW-RS API, you must refer to "/dicom-web/studies" instead of "/studies".
Comment 2 Sébastien Jodogne 2020-06-29 15:28:15 CEST
[BitBucket user: Luis Mejía]
[BitBucket date: 2020-06-19.12:16:07]

No sr, I'm not using studies outside of DicomWeb

May be I misstated my question... I'm using /dicom-web/studies wich gives me method not allowed when posting.

The only reason I started using /instances outside of the dicom-web is because /dicom-web/studies doesn't let me post.

See attached screenshot. \(content-type header is application/dicom\)

![](2640582871-Insomnia2.JPG)


Same requests work just fine in other DICOMWeb implementations like Google Healthcare.
Comment 3 Sébastien Jodogne 2020-06-29 15:28:18 CEST
Created attachment 113 [details]
2640582871-Insomnia2.JPG
Comment 4 Sébastien Jodogne 2020-06-29 15:28:19 CEST
[BitBucket user: Sébastien Jodogne]
[BitBucket date: 2020-06-26.07:22:40]

Please check out the logs of Orthanc. I’m pretty sure you’ll find the following error message:

`Unsupported media type: The STOW-RS server expects a multipart body in its request`

This error indicates the fact that you don’t provide your DICOM file in a multipart body, which is not compliant with STOW-RS in DICOMweb \(this is proprietary extension\). 

I however agree that receiving the 405 HTTP status is an issue. This is fixed by the following changeset: https://hg.orthanc-server.com/orthanc/rev/4cd94ed75a5b

With this changeset, here is the result of an invalid query on “/dicom-web/studies”:

```
$ curl -u orthanc:orthanc http://localhost:8042/dicom-web/studies -X POST -d ''
{
   "HttpError" : "Unsupported Media Type",
   "HttpStatus" : 415,
   "Message" : "Unsupported media type",
   "Method" : "POST",
   "OrthancError" : "Unsupported media type",
   "OrthancStatus" : 3000,
   "Uri" : "/dicom-web/studies"
}
```