DICOM RS Capabilities Service defines a single transaction type which shall be supported by all implementations
RetrieveCapabilities
This transaction retrieves the parameters for services supported by the server.
The Retrieve Server Options transaction can be requested for the following resources:
{+SERVICE}/{InformationEntity*}
where {+SERVICE} is the base URL for the service. This may be a combination of protocol (either http or https), host, port, and application.
where {InformationEntity} is the path to a defined DICOM RESTful service resource, such as:
The Retrieve Server Options Service request messages use the OPTIONS method.
All responses are http single part messages. A successful response will return a Web Application Description Language (WADL) document encoded in a Media Type consistent with the Accept header of the request.
The WADL document shall contain one top-level "application" element.
The "application" element shall contain one "resources" element whose "base" attribute value is {SERVICE}, where {SERVICE} is the base URL for the service. This may be a combination of protocol (either http or https), host, port, and application.
Additionally, the WADL content shall include a "resource" element for the resource specified in the request (see 6.8.1.1) describing all methods (see 6.8.1.2.2.2 for description and examples) and child resources (see 6.8.1.2.2.1 for description and examples) for the specified resource and each of its children.
The full WADL resource tree follows directly and unambiguously from the RESTful resource endpoints defined in 6.5, 6.6, 6.7 and 6.9.
For informative purposes, the full resource tree and the methods defined for each resource are described in Table 6.8-1.
Table 6.8-1. Resources and Methods
|
Resource |
Methods supported (excluding RetrieveCapabilities) |
Reference |
|---|---|---|
|
{+SERVICE} |
N/A |
N/A |
|
SearchForStudies StoreInstances |
|
|
RetrieveStudy StoreStudyInstances |
|
|
RetrieveStudyMetadata |
|
|
SearchForStudySeries |
|
|
RetrieveSeries |
|
|
RetrieveSeriesMetadata |
|
|
SearchForStudySeriesInstances |
|
|
RetrieveInstance |
|
|
RetrieveInstanceMetadata |
|
|
N/A |
N/A |
|
RetrieveFrames |
|
|
SearchForStudyInstances |
|
|
SearchForSeries |
|
|
N/A |
N/A |
|
SearchForInstances |
|
|
SearchForInstances |
|
|
RetrieveBulkData |
|
|
workitems |
SearchForUPS CreateUPS |
|
|
RetrieveUPS UpdateUPS |
|
|
ChangeUPSState |
|
|
RequestUPSCancel |
|
|
N/A |
N/A |
|
CreateSubscription DeleteSubscription |
|
|
N/A |
N/A |
|
N/A |
N/A |
|
CreateSubscription DeleteSubscription |
|
|
SuspendGlobalSubscription |
|
|
N/A |
N/A |
|
N/A |
N/A |
|
CreateSubscription DeleteSubscription |
|
|
SuspendGlobalSubscription |
The Retrieve methods define the capabilities of a WADO-RS resource (see 6.5) or a RetrieveUPS resource (see 6.9.4).
The Retrieve methods shall contain the following attributes:
A "name" attribute with a value of "GET"
An "id" attribute with a value of "RetrieveStudy", "RetrieveSeries", "RetrieveInstance", "RetrieveBulkData", "RetrieveFrames", "RetrieveStudyMetadata", "RetrieveSeriesMetadata", "RetrieveInstanceMetadata" or "RetrieveUPS"
The Retrieve methods shall contain a "request" element with "param" elements documenting the following:
supported Accept header values
if the same Media Type is supported with multiple Transfer Syntaxes there should be one entry for each combination of Media Type and Transfer Syntax
The Retrieve methods shall contain one or more "response" elements documenting the following:
supported Status Codes
Media Types returned for each Status Code (if applicable)
if the same Media Type is supported with multiple Transfer Syntaxes there should be one entry for each combination of Media Type and Transfer Syntax
More than one Status Code can be described by a single "response" element.
Example:
<method name="GET" id="RetrieveStudies"> <request> <param name="Accept" style="header" default="multipart/related; type=application/dicom"> <option value="multipart/related; type=application/dicom" /> <option value="multipart/related; type=application/dicom"; transfer-syntax=1.2.840.10008.1.2 /> <option value="multipart/related; type=application/dicom"; transfer-syntax=1.2.840.10008.1.2.1 /> <option value="multipart/related; type=application/octet-stream" /> <option value="multipart/related; type=image/dicom+jpx" /> <option value="multipart/related; type=image/dicom+jpx; transfer-syntax=1.2.840.10008.1.2.4.92" /> <option value="multipart/related; type= video/mpeg; transfer-syntax=1.2.840.10008.1.2.4.100" /> </param> </request> <response status="200,206"> <representation mediaType="multipart/related; type=application/dicom"; transfer-syntax=1.2.840.10008.1.2 /> <representation mediaType="multipart/related; type=application/dicom"; transfer-syntax=1.2.840.10008.1.2.1 /> <representation mediaType="multipart/related; type=application/octet-stream" /> <representation mediaType="multipart/related; type= image/dicom+jpx" /> <representation mediaType="multipart/related; type= image/dicom+jpx; transfer-syntax=1.2.840.10008.1.2.4.92" /> <representation mediaType="multipart/related; type= video/mpeg; transfer-syntax=1.2.840.10008.1.2.4.100" /> </response> <response status="400 404 406 410 503" /> </method>
The Store methods define the capabilities of a STOW-RS resource (see 6.6) or a CreateUPS resource (see 6.9.1).
The Store methods shall contain the following attributes:
A "name" attribute with a value of "POST"
An "id" attribute with a value of "StoreInstances", "StoreStudyInstances" or "CreateUPS"
The Store methods shall contain a "request" element with "param" elements documenting the following:
supported Accept header values
supported Representations
if the same Media Type is supported with multiple Transfer Syntaxes there should be one entry for each combination of Media Type and Transfer Syntax
The Store methods shall contain one or more "response" elements documenting the following:
supported Status Codes
Media Types returned for each Status Code (if applicable)
Headers returned for each Status Code
More than one Status Code can be described by a single "response" element.
Example:
<method name="GET" id="StoreInstances"> <request> <param name="Accept" style="header" default="application/dicom+xml"> <option value="application/dicom+xml" /> </param> <representation mediaType="multipart/related; type=application/dicom" /> <representation mediaType="multipart/related; type=application/dicom; transfer-syntax=1.2.840.10008.1.2" /> <representation mediaType="multipart/related; type=application/dicom; transfer-syntax=1.2.840.10008.1.2.1" /> <representation mediaType="multipart/related; type=application/dicom+xml" /> <representation mediaType="multipart/related; type=application/dicom+xml; transfer-syntax=1.2.840.10008.1.2" /> <representation mediaType="multipart/related; type=application/dicom+xml; transfer-syntax=1.2.840.10008.1.2.1" /> <representation mediaType="multipart/related; type=application/dicom+xml; transfer-syntax=1.2.840.10008.1.2.4.92" /> <representation mediaType="multipart/related; type=application/dicom+xml; transfer-syntax=1.2.840.10008.1.2.4.100" /> </request> <response status="200" /> <response status="202,409"> <representation mediaType="application/dicom+xml" /> </response> <response status="400,401,403,503" /> </method>
The Search methods define the capabilities of a QIDO-RS resource (see 6.7) or a SearchForUPS resource (see 6.9.3).
The Search methods shall contain the following attributes:
A "name" attribute with a value of "GET"
An "id" attribute with a value of "SearchForStudies", "SearchForStudySeries", "SearchForSeries", "SearchForStudySeriesInstances", "SearchForStudyInstances", "SearchForSeriesInstances", "SearchForInstances" or "SearchForUPS"
The Search methods shall contain a "request" element with "param" elements documenting the following:
supported Accept header values
support for the Cache-control header
support of "limit", "offset" and "fuzzymatching" query parameters
supported search parameters (both tag and keyword variants shall be listed)
supported options for the "includefield" parameter (both tag and keyword variants shall be listed)
The Search methods shall contain one or more "response" elements documenting the following:
supported Status Codes
returned "header" parameters, including use of "warning headers"
Media Types returned for each Status Code (if applicable)
More than one Status Code can be described by a single "response" element.
Example:
<method name="GET" id="SearchForStudies"> <request> <param name="Accept" style="header" default="multipart/related; type=application/dicom+xml"> <option value="multipart/related; type=application/dicom+xml" /> <option value="application/json" /> </param> <param name="Cache-control" style="header"> <option value="no-cache" /> </param> <param name="limit" style="query" /> <param name="offset" style="query" /> <param name="fuzzymatching" style="query" /> <param name="StudyDate" style="query" /> <param name="00080020" style="query" /> <param name="StudyTime" style="query" /> <param name="00080030" style="query" /> … <param name="includefield" style="query" repeating="true" /> <option value="all" /> <option value="00081049" /> <option value="PhysiciansOfRecordIdentificationSequence" /> <option value="00081060" /> <option value="NameOfPhysiciansReadingStudy" /> … </param> </request> <response status="200"> <representation mediaType="multipart/related; type=application/dicom+xml" /> <representation mediaType="application/json" /> </response> <response status="400 401 403 413 503" /> </method>
The Update methods define the capabilities of an UpdateUPS, a ChangeUPSState or a RequestUPSCancellation resource (see 6.9.2).
The Update methods shall contain the following attributes:
A "name" attribute with a value of "POST" for UpdateUPS and RequestUPSCancel
A "name" attribute with a value of "PUT" for ChangeUPSState
An "id" attribute with a value of "UpdateUPS", "ChangeUPSState" or "RequestUPSCancellation"
The Update methods shall contain a "request" element with "param" elements documenting the following:
supported Representations
The Update methods shall contain one or more "response" elements documenting the following:
supported Status Codes
Headers returned for each Status Code
More than one Status Code can be described by a single "response" element.
Example:
<method name="POST" id="UpdateUPS">
<request>
<representation mediaType="application/dicom+xml" />
<representation mediaType="application/json" />
</request>
<response status="200">
<param name="Warning" style="header" fixed="299 {+SERVICE}: The UPS was created with modifications." />
<param name="Warning" style="header" fixed="299 {+SERVICE}: Requested optional Attributes are not supported." />
</response>
<response status="409">
<param name="Warning" style="header" fixed="299 {+SERVICE}: The Transaction UID is missing." />
<param name="Warning" style="header" fixed="299 {+SERVICE}: The Transaction UID is incorrect." />
<param name="Warning" style="header" fixed="299 {+SERVICE}: The submitted request is inconsistent
with the current state of the UPS Instance." />
</response>
<response status="400 401 403 404 503" />
</method>
The Subscribe methods define the capabilities of a CreateSubscription, a SuspendGlobalSubscription or a DeleteSubscription resource (see 6.9.7, 6.9.8 and 6.9.9).
The Subscribe methods shall contain the following attributes:
A "name" attribute with a value of "POST" for CreateSubscription and SuspendGlobalSubscription
A "name" attribute with a value of "DELETE" for DeleteSubscription
An "id" attribute with a value of "CreateSubscription", "SuspendGlobalSubscription" or "DeleteSubscription"
The Subscribe methods shall contain a "request" element with "param" elements documenting the following:
supported Representations
The Subscribe methods shall contain one or more "response" elements documenting the following:
supported Status Codes
Headers returned for each Status Code
More than one Status Code can be described by a single "response" element.
Example:
<method name="POST" id="CreateSubscription">
<request>
<param name="deletionlock" style="query" default="false">
<option value="true" />
<option value="false" />
</param>
</request>
<response status="201">
<param name="Warning" style="header" fixed="299 {+SERVICE}: Deletion Lock not granted." />
</response>
<response status="403">
<param name="Warning" style="header" fixed="299 {+SERVICE}: The Origin-Server does not support
Global Subscription Filtering." />
</response>
<response status="400 401 404 409 503" />
</method>
Table 6.8-2 lists the HTTP/1.1 status codes that shall be used to report any of the associated error and warning situations. Other error codes may be present for other error and warning situations.
Table 6.8-2. Server Options HTTP/1.1 Status Codes
|
Code |
Name |
Description |
|---|---|---|
|
Success |
||
|
200 |
OK |
The query completed and any matching results are returned in the message body. |
|
Failure |
||
|
400 |
Bad Request |
The Server Options Provider was unable to perform the query because the Service Provider cannot understand the query component. |
|
401 |
Unauthorized |
The Server Options Provider refused to perform the query because the client is not authenticated. |
|
403 |
Forbidden |
The Server Options Provider understood the request, but is refusing to perform the query (e.g., an authenticated user with insufficient privileges). |
|
503 |
Busy |
Service is unavailable. |