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.
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.
This AE complies with Section 6.7 in PS3.18 , specification for QIDO-RS.
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.
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 ).
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”.
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”.
All standard RS connection policies apply. There are no extensions for RS options.
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) |
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. |
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)
EXAMPLE-QIDO-SERVICE uses the network interface from the hosting EXAMPLE-PACS-ARCHIVE. See its conformance claim for details.
EXAMPLE-QIDO-SERVICE uses the network services from the hosting EXAMPLE-PACS-ARCHIVE. See its conformance claim for details.