Example STOW Service
The STOW-RS Service Application receives STOW requests from a remote AE. These requests are HTTP/1.1 POST requests. It is associated with the local real-world activity "Store Instances". It converts these requests into internal functions to store the given SOP Instances. It returns a summary HTTP status line, including a status code and an associated textual phase, followed by an XML message indicating success, warning, or failure for each instance to the requesting remote AE.
The reception of a STOW-RS POST request will activate the STOW-RS Service. The storage request is based upon the accept headers in the STOW-RS POST request. The response includes an HTTP/1.1 status line, including a status-code and its associated textual phrase, followed by an XML message indicating success, warning, or failure for each instance stored by the STOW-RS service.
This AE complies with Section 6.6 “STOW-RS Request/Response” in PS3.18 , specification for STOW-RS storage.
Table J.4.2-1. STOW-RS Store Instances Specification
|
Category |
Restrictions |
|---|---|
|
Media Types Supported (Accept header) |
Restricted to application/dicom or application/dicom+xml |
|
Transfer Syntaxes Supported (Media Type parameter) |
Any Transfer Syntax supported by the hosting EXAMPLE-PACS-ARCHIVE |
|
SOP Class Restrictions |
Restricted to SOP classes supported by the hosting EXAMPLE-PACS-ARCHIVE |
|
Size restriction |
Restricted to size supported by the hosting EXAMPLE-PACS-ARCHIVE |
All standard RS connection policies apply. There are no extensions for RS options.
EXAMPLE-STOW-SERVICE limits the number of simultaneous RS requests. Additional requests will be queued after the HTTP/1.1 connection is accepted. When an earlier request completes, a pending request will proceed.
Table J.4.2-4. Number of HTTP Requests Supported
|
Maximum number of simultaneous RS requests |
100 (configurable) |
The EXAMPLE-STOW-SERVICE response message header contains status codes indicating success, warning, or failure as shown in the "HTTP/1.1 Standard Response Codes" below. No additional status codes are used.
Table J.4.2.2.4.4-1. HTTP/1.1 Standard Response Codes
|
Service Status |
HTTP/1.1 Status Code |
STOW-RS Description |
|---|---|---|
|
Failure |
400 - Bad Request |
This indicates that the STOW-RS Service was unable to store any instances due to bad syntax. |
|
401 - Unauthorized |
This indicates that the STOW-RS Service refused to create or append any instances because the client is not authenticated. |
|
|
403 - Forbidden |
This indicates that the STOW-RS Service understood the request, but is refusing to fulfill it (e.g., an authenticated user with insufficient privileges). |
|
|
409 - Conflict |
This indicates that the STOW-RS Service request was formed correctly but the service was unable to store any instances due to a conflict in the request (e.g., unsupported SOP Class or Study Instance UID mismatch). This may also be used to indicate that a STOW-RS Service was unable to store any instances for a mixture of reasons. Additional information regarding the instance errors can be found in the XML response message body. |
|
|
503 - Busy |
This indicates that the STOW-RS Service was unable to store any instances because it was out of resources. |
|
|
Warning |
202 - Accepted |
This indicates that the STOW-RS Service stored some of the instances but warnings or failures exist for others. Additional information regarding this error can be found in the XML response message body. |
|
Success |
200 - OK |
This indicates that the STOW-RS Service successfully stored all the instances. |
The EXAMPLE-STOW-SERVICE response message body (PS3.18 XML Store Instances Response Module) contains the DICOM status codes for individual SOP Instances indicating success, warning, or failure as defined below. No additional status codes are used.
For the following semantics the associated value are used for the Warning Reason (0008,1196):
Coercion of Data Elements
The STOW-RS Service modified one or more data elements during storage of the instance.
Elements Discarded
The STOW-RS Service discarded some data elements during storage of the instance.
Data Set does not match SOP Class
The STOW-RS Service stored the instance despite the Data Set not matching the constraints of the SOP Class.
Additional codes may be used for the Warning Reason (0008,1196) to address the semantics of other issues.
In the event that multiple codes may apply, the single most appropriate code is used.
For the following semantics the associated value are used for the Failure Reason (0008,1197).
Refused out of Resources
The STOW-RS Service did not store the instance because it was out of memory.
Refused out of Resources
The STOW-RS Service did not store the instance because it was out of storage space.
Error: Data Set does not match SOP Class
The STOW-RS Service did not store the instance because the SOP Class of an element in the Referenced SOP Instance Sequence did not correspond to the SOP class registered for this SOP Instance at the STOW-RS Service.
Error: Cannot understand
The STOW-RS Service did not store the instance because it cannot understand certain Data Elements.
Referenced Transfer Syntax not supported
The STOW-RS Service did not store the instance because it does not support the requested Transfer Syntax for the instance.
Processing failure
The STOW-RS Service did not store the instance because of a general failure in processing the operation.
Referenced SOP Class not supported
The STOW-RS Service did not store the instance because it does not support the requested SOP Class.
Additional codes may be used for the Failure Reason (0008,1197) to address the semantics of other errors.
In the event that multiple codes may apply, the single most appropriate code shall be used.
EXAMPLE-STOW-SERVICE uses the network interface from the hosting EXAMPLE-PACS-ARCHIVE. See its conformance claim for details.
EXAMPLE-STOW-SERVICE uses the network services from the hosting EXAMPLE-PACS-ARCHIVE. See its conformance claim for details.