DICOM PS3.17 2025b - Explanatory Information

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:

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="type=application/dicom+json">
      <option value="multipart/related; type=application/dicom+xml" />
      <option value="application/dicom+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/dicom+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="type=application/dicom+json">
        <option value="multipart/related; type=application/dicom+xml" />
        <option value="application/dicom+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/dicom+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="type=application/dicom+json">
          <option value="multipart/related; type=application/dicom+xml" />
          <option value="application/dicom+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/dicom+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="type=application/dicom+json">
            <option value="multipart/related; type=application/dicom+xml" />
            <option value="application/dicom+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="type=application/dicom+json">
          <option value="multipart/related; type=application/dicom+xml" />
          <option value="application/dicom+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="type=application/dicom+json">
        <option value="multipart/related; type=application/dicom+xml" />
        <option value="application/dicom+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/dicom+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="type=application/dicom+json">
        <option value="multipart/related; type=application/dicom+xml" />
        <option value="application/dicom+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="type=application/dicom+json">
      <option value="multipart/related; type=application/dicom+xml" />
      <option value="application/dicom+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/dicom+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="type=application/dicom+json">
        <option value="multipart/related; type=application/dicom+xml" />
        <option value="application/dicom+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/dicom+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"
                  application/dicom+json">
      <option value="multipart/related; type=application/dicom+xml" />
      <option value="application/dicom+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/dicom+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>
DICOM PS3.17 2025b - Explanatory Information