K.4 Networking

K.4.1 Implementation Model

K.4.1.1 Application Data Flow

Application Data Flow Diagram

Figure K.4.1-1. Application Data Flow Diagram


The QIDO-RS Provider Application receives QIDO requests from a remote AE. These requests are HTTP/1.1 GET requests. It is associated with the local real-world activity "Query Remote Device". It uses the request to select matching Studies, Series or Instances. It then returns a set of matching Studies, Series or Instances or a response code indicating warning or failure back to the requesting device.

K.4.1.2 Functional Definition of AEs

K.4.1.2.1 Functional Definition of QIDO Service Application

The reception of a QIDO-RS GET request will activate the QIDO-RS Provider. An internal query request is sent to the search capabilities of the associated PACS or Vendor Neutral Archive (VNA). The search result is based upon the URL of the QIDO-RS GET request. The response is a status code indicating the success, warning, or failure of the search along with any matching results stored in the Remote PACS or VNA.

K.4.2 AE Specifications

This AE complies with Section 6.7 in PS3.18 , specification for QIDO-RS.

K.4.2.1 QIDO-RS Specifications

K.4.2.1.1 QIDO-RS Search for Studies

Table K.4.2-1. QIDO-RS Search for Studies Specification

Parameter

Restrictions

Media Types

Restricted to "multipart/related; type=application/dicom+xml" or "application/json"

Matching Attributes

See Table K.4.2-1a

Return Attributes

See Table K.4.2-1a

Limit and Offset supported

Yes

Person Name Matching

Literal, case insensitive. Section Section K.4.2.2 “Extended Negotiation”.


Table K.4.2-1a. QIDO-RS Study Attribute Matching

Key Word

Tag

Types of Matching

STUDY Level

StudyDate

00080020

S,*,U,R

StudyTime

00080030

S,*,U,R

AccessionNumber

00080050

S,*,U

ModalitiesInStudy

00080061

S,*,U

ReferringPhysiciansName

00080090

S,*,U

StudyDescription

00081030

S,*,U

PhysicianOfRecord

00081048

U

PatientsName

00100010

S,*,U

PatientID

00100020

S,*,U

PatientBirthDate

00100030

NONE

PatientSex

00100040

NONE

StudyInstanceUID

0020000D

UNIQUE

StudyID

00200010

S,*,U

NumberOfStudyRelatedSeries

00201206

NONE

NumberOfStudyRelatedInstances

00201208

NONE

RetrieveURL

00081190

NONE

Common to all query levels

InstanceAvailability

00080056

S,*,U

SpecificCharacterSet

00080005

NONE

RetrieveURL

00081190

NONE


Types of Matching (see Section C.2.2.2 “Attribute Matching” in PS3.4 ) :

"S" indicates the identifier attribute uses Single Value Matching

"L" indicates UID List Matching

"U" indicates Universal Matching.

Note

If only Universal Matching is supported for an attribute then that attribute can only be passed as an "includefield" query key

"*" indicates wild card matching

"R" indicates Range Matching

"SEQUENCE" indicates Sequence Matching

"NONE" indicates that no matching is supported, but that values for this Element requested will be returned with all requests

"UNIQUE" indicates that this is the Unique Key for that query level, in which case Universal Matching or Single Value Matching is used depending on the query level (see Section C.2.2.1.1 “Unique Keys” in PS3.4 ).

K.4.2.1.2 QIDO-RS Search for Series

Table K.4.2-2. QIDO-RS Search for Series Specification

Parameter

Restrictions

Media Types

Restricted to "multipart/related; type=application/dicom+xml" or "application/json"

Matching Attributes

See Table K.4.2-2a

Return Attributes

See Table K.4.2-2a

Limit and Offset supported

Yes

Relational Queries Supported

No


Table K.4.2-2a. QIDO-RS Series Attribute Matching

Key Word

Tag

Types of Matching

SERIES Level

Modality

00080060

S,*,U

SeriesDescription

0008103E

NONE

SeriesInstanceUID

0020000E

UNIQUE

SeriesNumber

00200011

S,*,U

NumberOfSeriesRelatedInstances

00201209

NONE

PerformedProcedureStepStartDate

00400244

S,*,U,R

PerformedProcedureStepStartTime

00400245

S,*,U,R

RequestAttributeSequence

00400275

SEQUENCE

>ScheduledProcedureStepID

00400009

S,*,U

>RequestedProcedureID

00401001

S,*,U

Common to all query levels

InstanceAvailability

00080056

S,*,U

SpecificCharacterSet

00080005

NONE

RetrieveURL

00081190

NONE


Types of matching: Section Section K.4.2.1.1 “QIDO-RS Search for Studies”.

K.4.2.1.3 QIDO-RS Search for Instances

Table K.4.2-3. QIDO-RS Search for Instances Specification

Parameter

Restrictions

Media Types

Restricted to "multipart/related; type=application/dicom+xml" or "application/json"

Matching Attributes

See Table K.4.2-3a

Return Attributes

See Table K.4.2-3a

Limit and Offset supported

Yes

Relational Queries Supported

Series-level, only


Table K.4.2-3a. QIDO-RS Instance Attribute Matching

Key Word

Tag

Types of Matching

SERIES Level

Modality

00080060

S,*,U

SeriesDescription

0008103E

NONE

SeriesInstanceUID

0020000E

UNIQUE

SeriesNumber

00200011

S,*,U

NumberOfSeriesRelatedInstances

00201209

NONE

PerformedProcedureStepStartDate

00400244

S,*,U,R

PerformedProcedureStepStartTime

00400245

S,*,U,R

RequestAttributeSequence

00400275

SEQUENCE

>ScheduledProcedureStepID

00400009

S,*,U

>RequestedProcedureID

00401001

S,*,U

COMPOSITE INSTANCE Level

SOPClassUID

00080016

L

SOPInstanceUID

00080018

UNIQUE

InstanceNumber

00200013

S,*,U

Rows

00280010

NONE

Columns

00280011

NONE

BitsAllocated

00280100

NONE

NumberOfFrames

00280008

NONE

Common to all query levels

InstanceAvailability

00080056

S,*,U

SpecificCharacterSet

00080005

NONE

RetrieveURL

00081190

NONE


Types of matching: Section Section K.4.2.1.1 “QIDO-RS Search for Studies”.

K.4.2.1.4 Connection Policies
K.4.2.1.4.1 General

All standard RS connection policies apply. There are no extensions for RS options.

K.4.2.1.4.2 Number of Connections

EXAMPLE-QIDO-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 K.4.2-4. Number of HTTP/1.1 Requests Supported

Maximum number of simultaneous RS requests

100 (configurable)


K.4.2.1.4.3 Asynchronous Nature

EXAMPLE-QIDO-SERVICE does not support RS asynchronous response.

K.4.2.1.4.4 Response Status

The EXAMPLE-QIDO-SERVICE shall provide a response message header containing the appropriate status code indicating success, warning, or failure as shown in Table K.4.2-5.

Table K.4.2-5. HTTP/1.1 Standard Response Codes

Code

Name

Description

Success

200

OK

The query completed and any matching results are returned in the message body.

Failure

400

Bad Request

This indicates that the QIDO-RS Provider was unable to fulfill it because it cannot understand the query component.

401

Unauthorized

This indicates that the QIDO-RS Provider refused to fulfill it because the client is not authorized.

403

Forbidden

This indicates that the QIDO-RS Provider understood the request, but is refusing to fulfill it (e.g., no single patient specified, an authorized user with insufficient privileges, etc.).

413

Request entity too large

This indicates that the query was too broad and a narrower query or paging should be requested. This code will be returned for queries that do not specify PatientID.

503

Busy

Service is unavailable.


K.4.2.2 Extended Negotiation

EXAMPLE-QIDO-SERVICE does not support the "fuzzymatching" query key.

EXAMPLE-QIDO-SERVICE will perform case insensitive matching for PN VR attributes but will not perform other forms of fuzzy matching. This applies to the following attributes:

  • Referring Physician's Name (0008,0090)

  • Physician(s) of Record (0008,1048)

  • Patient's Name (0010,0010)

K.4.3 Network Interfaces

K.4.3.1 Physical Network Interface

EXAMPLE-QIDO-SERVICE uses the network interface from the hosting EXAMPLE-PACS-ARCHIVE. See its conformance claim for details.

K.4.3.2 Additional Protocols

EXAMPLE-QIDO-SERVICE uses the network services from the hosting EXAMPLE-PACS-ARCHIVE. See its conformance claim for details.

K.4.3.3 IPv4 and IPv6 Support

This product supports both IPv4 and IPv6 connections.

K.4.4 Configuration

K.4.4.1 QIDO-RS Interface

The EXAMPLE-QIDO-SERVICE can be configured to respond on one port for TLS protected traffic. The TLS port will refuse any connection from a system that is not recognized as authenticated by a known authority.