DICOM PS3.18 2019a - Web Services

A URI Query Component Syntax (Normative)

This Standard uses the URI syntax as defined in [RFC3986] Uniform Resource Identifier (URI): Generic Syntax and extends it by specifying the syntax of the query component of DICOM URIs. The grammar for the query component is defined using [RFC5234] Augmented BNF for Syntax Specifications: ABNF.

DICOM URIs may use the query component of the URI to specify request parameters. The following grammar defines the general syntax of parameters contained in the query component of the URI. Specific HTTP transactions defined elsewhere in this Standard may further refine the legal <name> and/or <value> rules.

    query-component = parameter [ *("&" parameter) ]
    parameter       = name "="" value
    name            = *qchar
    value           = *qchar
    qchar           = unreserved / pct-encoded / qspecial
    qspecial        = "/" / "?" / ":" / "@" / "!" / "$" / "'" 
                    / "(" / ")" / "*" / "+" / "," / ";"

The following rules are defined in [RFC3986] (Normative). They are reproduced here for convenience.

    unreserved     = ALPHA / DIGIT / "-" / "." / "_" / "~"
    pct-encoded    = "%" HEXDIG HEXDIG


  1. This grammar allows the query component to contain any of the legal characters as defined by [RFC3986].

  2. No whitespace is permitted in URIs. Whitespace around line breaks and the line breaks themselves should be stripped before parsing the URI (See [RFC3986] Appendix C).

  3. [RFC3986] does not permit an empty query component, i.e., if the "?" appears in the URI then there must be some legal query parameters in the URI.

  4. The <qchar> rule defined above is the <pchar> rule of [RFC3986], which defines the legal character for the query component, minus the characters "="" and "&".

DICOM PS3.18 2019a - Web Services