HHH.7 Uses for Server Options Services
Prev | HHH Evolution of WADO to Web and Rest Services (Informative) | Next

## HHH.7 Uses for Server Options Services

Clients would like to be able to discover a list of devices that support DICOM RESTful services and query a DICOM RESTful service to determine which options are supported, such as:

- Supported services and transactions

- Supported Transfer Syntaxes and Media Types

- Supported Accept header values

- Supported query parameters

### HHH.7.1 WADL Example (XML)

The following WADL XML example contains all the required elements for an origin-server that supports WADO-RS, QIDO-RS and STOW-RS with all required services and parameters.

    <application xsi:schemaLocation="http://wadl.dev.java.net/2009/02 wadl.xsd"
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                 xmlns="http://wadl.dev.java.net/2009/02">
     <resources base="http://medical.examplehospital.org/dicomweb">
      <resource path="studies">
       <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="StudyDate" style="query" />
         <param name="00080020" style="query" />
         <param name="StudyTime" style="query" />
         <param name="00080030" style="query" />
         <param name="AccessionNumber" style="query" />
         <param name="00080050" style="query" />
         <param name="ModalitiesInStudy" style="query" />
         <param name="00080061" style="query" />
         <param name="ReferringPhysicianName" style="query" />
         <param name="00080090" style="query" />
         <param name="PatientName" style="query" />
         <param name="00100010" style="query" />
         <param name="PatientID" style="query" />
         <param name="00100020" style="query" />
         <param name="StudyInstanceUID" style="query" repeating="true" />
         <param name="0020000D" style="query" repeating="true" />
         <param name="StudyID" style="query" />
         <param name="00200010" style="query" />
         <param name="includefield" style="query" repeating="true">
          <option value="all" />
         </param>
        </request>
        <response status="200">
         <param name="Warning" style="header"
                fixed="299 {SERVICE}: The fuzzymatching parameter is not supported.
                Only literal matching has been performed." />
         <representation mediaType="multipart/related; type=application/dicom+xml" />
         <representation mediaType="application/json" />
        </response>
        <response status="400 401 403 413 503" />
       </method>
       <method name="POST" 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.1" />
         <representation mediaType="multipart/related; type=application/dicom+xml" />
        </request>
        <response status="202 409">
         <representation mediaType="application/dicom+xml" />
        </response>
        <response status="400 401 403 503" />
       </method>
       <resource path="{StudyInstanceUID}">
        <method name="GET" id="RetrieveStudy">
         <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.1" />
           <option value="multipart/related; type=application/octet-stream" />
          </param>
         </request>
         <response status="200 206">
          <representation mediaType="multipart/related; type=application/dicom" />
          <representation mediaType="multipart/related; type=application/dicom;
                                              transfer-syntax=1.2.840.10008.1.2.1" />
          <representation mediaType="multipart/related; type=application/octet-stream" />
         </response>
         <response status="400 404 406 410 503"></response>
        </method>
        <method name="POST" id="StoreStudyInstances">
         <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.1" />
          <representation mediaType="multipart/related; type=application/dicom+xml" />
         </request>
         <response status="202 409">
          <representation mediaType="application/dicom+xml" />
         </response>
         <response status="400 401 403 503" />
        </method>
        <resource path="series">
         <method name="GET" id="SearchForStudySeries">
          <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="Modality" style="query" />
           <param name="00080060" style="query" />
           <param name="SeriesInstanceUID" style="query" repeating="true" />
           <param name="0020000E" style="query" repeating="true" />
           <param name="SeriesNumber" style="query" />
           <param name="00200011" style="query" />
           <param name="PerformedProcedureStepStartDate" style="query" />
           <param name="00400244" style="query" />
           <param name="PerformedProcedureStepStartTime" style="query" />
           <param name="00400245" style="query" />
           <param name="RequestAttributeSequence" style="query" />
           <param name="00400275" style="query" />
           <param name="RequestAttributeSequence.ScheduledProcedureStepID" style="query" />
           <param name="00400275.00400009" style="query" />
           <param name="RequestAttributeSequence.RequestedProcedureID" style="query" />
           <param name="00400275.00401001" style="query" />
           <param name="includefield" style="query" repeating="true">
            <option value="all" />
           </param>
          </request>
          <response status="200">
           <param name="Warning" style="header"
                  fixed="299 {SERVICE}: The fuzzymatching parameter is not supported.
                  Only literal matching has been performed." />
           <representation mediaType="multipart/related; type=application/dicom+xml" />
           <representation mediaType="application/json" />
          </response>
          <response status="400 401 403 413 503" />
         </method>
         <resource path="{SeriesInstanceUID}">
          <method name="GET" id="RetrieveSeries">
           <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.1" />
             <option value="multipart/related; type=application/octet-stream" />
            </param>
           </request>
           <response status="200 206">
            <representation mediaType="multipart/related; type=application/dicom" />
            <representation mediaType="multipart/related; type=application/dicom;
                                              transfer-syntax=1.2.840.10008.1.2.1" />
            <representation mediaType="multipart/related; type=application/octet-stream" />
           </response>
           <response status="400 404 406 410 503"></response>
          </method>
          <resource path="instances">
           <method name="GET" id="SearchForStudySeriesInstances">
            <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="SOPClassUID" style="query" repeating="true" />
             <param name="00080016" style="query" repeating="true" />
             <param name="SOPInstanceUID" style="query" repeating="true" />
             <param name="00080018" style="query" repeating="true" />
             <param name="InstanceNumber" style="query" />
             <param name="00200013" style="query" />
             <param name="includefield" style="query" repeating="true">
              <option value="all" />
             </param>
            </request>
            <response status="200">
             <param name="Warning" style="header"
                    fixed="299 {SERVICE}: The fuzzymatching parameter is not supported.
                    Only literal matching has been performed." />
             <representation mediaType="multipart/related; type=application/dicom+xml" />
             <representation mediaType="application/json" />
            </response>
            <response status="400 401 403 413 503" />
           </method>
           <resource path="{SOPInstanceUID}">
            <method name="GET" id="RetrieveInstance">
             <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.1" />
               <option value="multipart/related; type=application/octet-stream" />
              </param>
             </request>
             <response status="200 206">
              <representation mediaType="multipart/related; type=application/dicom" />
              <representation mediaType="multipart/related; type=application/dicom;
                                              transfer-syntax=1.2.840.10008.1.2.1" />
              <representation mediaType="multipart/related; type=application/octet-stream" />
             </response>
             <response status="400 404 406 410 503"></response>
            </method>
            <resource path="frames">
             <resource path="{framelist}">
              <method name="GET" id="RetrieveFrames">
               <request>
                <param name="Accept" style="header"
                       default="multipart/related; type=application/octet-stream">
                 <option value="multipart/related; type=application/octet-stream" />
                </param>
               </request>
               <response status="200">
                <representation mediaType="multipart/related; type=application/octet-stream" />
               </response>
               <response status="400 404 406 410 503"></response>
              </method>
             </resource>
            </resource>
            <resource path="metadata">
             <method name="GET" id="RetrieveInstanceMetadata">
              <request>
               <param name="Accept" style="header"
                      default="multipart/related; type=application/dicom+xml">
                <option value="multipart/related; type=application/dicom+xm;" />
                <option value="application/json" />
               </param>
              </request>
              <response status="200">
               <representation mediaType=" multipart/related; type=application/dicom+xml" />
              </response>
              <response status="400 404 406 410 503"></response>
             </method>
            </resource>
           </resource>
          </resource>
          <resource path="metadata">
           <method name="GET" id="RetrieveSeriesMetadata">
            <request>
             <param name="Accept" style="header"
                      default="multipart/related; type=application/dicom+xml">
              <option value="multipart/related; type=application/dicom+xm;" />
              <option value="application/json" />
             </param>
            </request>
            <response status="200">
             <representation mediaType="multipart/related; type=application/dicom+xml" />
            </response>
            <response status="400 404 406 410 503"></response>
           </method>
          </resource>
         </resource>
        </resource>
        <resource path="instances">
         <method name="GET" id="SearchForStudyInstances">
          <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="SOPClassUID" style="query" />
           <param name="00080016" style="query" />
           <param name="SOPInstanceUID" style="query" repeating="true" />
           <param name="00080018" style="query" repeating="true" />
           <param name="Modality" style="query" />
           <param name="00080060" style="query" />
           <param name="SeriesInstanceUID" style="query" repeating="true" />
           <param name="0020000E" style="query" repeating="true" />
           <param name="SeriesNumber" style="query" />
           <param name="00200011" style="query" />
           <param name="InstanceNumber" style="query" />
           <param name="00200013" style="query" />
           <param name="PerformedProcedureStepStartDate" style="query" />
           <param name="00400244" style="query" />
           <param name="PerformedProcedureStepStartTime" style="query" />
           <param name="00400245" style="query" />
           <param name="RequestAttributeSequence" style="query" />
           <param name="00400275" style="query" />
           <param name="RequestAttributeSequence.ScheduledProcedureStepID" style="query" />
           <param name="00400275.00400009" style="query" />
           <param name="RequestAttributeSequence.RequestedProcedureID" style="query" />
           <param name="00400275.00401001" style="query" />
           <param name="includefield" style="query" repeating="true">
            <option value="all" />
           </param>
          </request>
          <response status="200">
           <param name="Warning" style="header"
                  fixed="299 {SERVICE}: The fuzzymatching parameter is not supported.
                  Only literal matching has been performed." />
           <representation mediaType="multipart/related; type=application/dicom+xml" />
           <representation mediaType="application/json" />
          </response>
          <response status="400 401 403 413 503" />
         </method>
        </resource>
        <resource path="metadata">
         <method name="GET" id="RetrieveStudyMetadata">
          <request>
           <param name="Accept" style="header"
                      default="multipart/related; type=application/dicom+xml">
            <option value="multipart/related; type=application/dicom+xm;" />
            <option value="application/json" />
           </param>
          </request>
          <response status="200">
           <representation mediaType="multipart/related; type=application/dicom+xml" />
          </response>
          <response status="400 404 406 410 503"></response>
         </method>
        </resource>
       </resource>
      </resource>
      <resource path="series">
       <method name="GET" id="SearchForSeries">
        <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="StudyDate" style="query" />
         <param name="00080020" style="query" />
         <param name="StudyTime" style="query" />
         <param name="00080030" style="query" />
         <param name="AccessionNumber" style="query" />
         <param name="00080050" style="query" />
         <param name="Modality" style="query" />
         <param name="00080060" style="query" />
         <param name="ModalitiesInStudy" style="query" />
         <param name="00080061" style="query" />
         <param name="ReferringPhysicianName" style="query" />
         <param name="00080090" style="query" />
         <param name="PatientName" style="query" />
         <param name="00100010" style="query" />
         <param name="PatientID" style="query" />
         <param name="00100020" style="query" />
         <param name="StudyInstanceUID" style="query" repeating="true" />
         <param name="0020000D" style="query" repeating="true" />
         <param name="SeriesInstanceUID" style="query" />
         <param name="0020000E" style="query" />
         <param name="StudyID" style="query" />
         <param name="00200010" style="query" />
         <param name="SeriesNumber" style="query" />
         <param name="00200011" style="query" />
         <param name="PerformedProcedureStepStartDate" style="query" />
         <param name="00400244" style="query" />
         <param name="PerformedProcedureStepStartTime" style="query" />
         <param name="00400245" style="query" />
         <param name="RequestAttributeSequence" style="query" />
         <param name="00400275" style="query" />
         <param name="RequestAttributeSequence.ScheduledProcedureStepID" style="query" />
         <param name="00400275.00400009" style="query" />
         <param name="RequestAttributeSequence.RequestedProcedureID" style="query" />
         <param name="00400275.00401001" style="query" />
         <param name="includefield" style="query" repeating="true">
          <option value="all" />
         </param>
        </request>
        <response status="200">
         <param name="Warning" style="header"
                fixed="299 {SERVICE}: The fuzzymatching parameter is not supported.
                Only literal matching has been performed." />
         <representation mediaType="multipart/related; type=application/dicom+xml" />
         <representation mediaType="application/json" />
        </response>
        <response status="400 401 403 413 503" />
       </method>
       <resource path="{SeriesInstanceUID}">
        <resource path="instances">
         <method name="GET" id="SearchForSeriesInstances">
          <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="SOPClassUID" style="query" repeating="true" />
           <param name="00080016" style="query" repeating="true" />
           <param name="SOPInstanceUID" style="query" repeating="true" />
           <param name="00080018" style="query" repeating="true" />
           <param name="InstanceNumber" style="query" />
           <param name="00200013" style="query" />
           <param name="includefield" style="query" repeating="true">
            <option value="all" />
           </param>
          </request>
          <response status="200">
           <param name="Warning" style="header"
                  fixed="299 {SERVICE}: The fuzzymatching parameter is not supported.
                  Only literal matching has been performed." />
           <representation mediaType="application/json" />
           <representation mediaType="multipart/related; type=application/dicom+xml" />
          </response>
          <response status="400 401 403 413 503" />
         </method>
        </resource>
       </resource>
      </resource>
      <resource path="instances">
       <method name="GET" id="SearchForInstances">
        <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="SOPClassUID" style="query" repeating="true" />
         <param name="00080016" style="query" repeating="true" />
         <param name="SOPInstanceUID" style="query" repeating="true" />
         <param name="00080018" style="query" repeating="true" />
         <param name="StudyDate" style="query" />
         <param name="00080020" style="query" />
         <param name="StudyTime" style="query" />
         <param name="00080030" style="query" />
         <param name="AccessionNumber" style="query" />
         <param name="00080050" style="query" />
         <param name="Modality" style="query" />
         <param name="00080060" style="query" />
         <param name="ModalitiesInStudy" style="query" />
         <param name="00080061" style="query" />
         <param name="ReferringPhysicianName" style="query" />
         <param name="00080090" style="query" />
         <param name="PatientName" style="query" />
         <param name="00100010" style="query" />
         <param name="PatientID" style="query" />
         <param name="00100020" style="query" />
         <param name="StudyInstanceUID" style="query" repeating="true" />
         <param name="0020000D" style="query" repeating="true" />
         <param name="SeriesInstanceUID" style="query" repeating="true" />
         <param name="0020000E" style="query" repeating="true" />
         <param name="SeriesNumber" style="query" />
         <param name="00200011" style="query" />
         <param name="InstanceNumber" style="query" />
         <param name="00200013" style="query" />
         <param name="PerformedProcedureStepStartDate" style="query" />
         <param name="00400244" style="query" />
         <param name="PerformedProcedureStepStartTime" style="query" />
         <param name="00400245" style="query" />
         <param name="RequestAttributeSequence" style="query" />
         <param name="00400275" style="query" />
         <param name="RequestAttributeSequence.ScheduledProcedureStepID" style="query" />
         <param name="00400275.00400009" style="query" />
         <param name="RequestAttributeSequence.RequestedProcedureID" style="query" />
         <param name="00400275.00401001" style="query" />
         <param name="includefield" style="query" repeating="true">
          <option value="all" />
         </param>
        </request>
        <response status="200">
         <param name="Warning" style="header"
                fixed="299 {SERVICE}: The fuzzymatching parameter is not supported.
                Only literal matching has been performed." />
         <representation mediaType="multipart/related; type=application/dicom+xml" />
         <representation mediaType="application/json" />
        </response>
        <response status="400 401 403 413 503" />
       </method>
      </resource>
      <resource path="{BulkDataURL}">
       <method name="GET" id="RetrieveBulkData">
        <request>
         <param name="Accept" style="header"
                default="multipart/related; type=application/octet-stream">
          <option value="multipart/related; type=application/octet-stream" />
         </param>
        </request>
        <response status="200">
         <representation mediaType="multipart/related; type=application/octet-stream" />
        </response>
        <response status="400 404 406 410 503"></response>
       </method>
      </resource>
     </resources>
    </application>

Prev | Up | Next
HHH.6 Proxy Agent For Non-WS DICOM Archive | Home | III Ophthalmic Thickness Map Use Cases (Informative)