Converting from DicomQuery to DicomConnection for Q/R
Note: This page applies only to the COM version of DicomObjects - the threading model of the equivalent DicomAssociation object in the .NET version is very different
All the DicomQuery-based operations can also be performed using a DicomConnection object, and doing so has several benefits:
It allows finer control over the exact presentation contexts offered Multiple operations can occur on one association Perhaps most importantly, if the DicomConnection is asynchronous, then it provides the best solution to using C-MOVE in DicomObjects, avoiding the problems of deadlocking or lack of return status which affect some of the alternatives.
Counting Studies, Series and Instances
There are many times when users need to know how many objects there of a given type, without needing to enumerate each one. The good news is:
DICOM does allow such queries Such queries are possible using DicomObjects The less good news is:
The feature is optional (though strongly recommended) so many PACS do not support it It is not a default feature of DicomObjects queries (due to the load placed on the server), so a little work is required to enable it.
Dicom Query Date/Time range
Formats allowed when specifying the Date/Time range in a Query:
“YYYYMMDD-YYYYMMDD” “YYYYMMDD-” ”-YYYYMMDD” “HHMMSS-HHMMSS” “HHMMSS-” ”-HHMMSS “ Combinations of date and time ranges:
Date Range: “20111001-20111002”
Time Range: “090000-100000”
For DICOM Modality Worklist query, the above date time range gives you a time span from 9AM 01/10/2011 to 10AM 02/10/2011, a range of 25 hours For standard, non-MWL query, it gives you 2 slots: 9AM-10AM on 01/10/2011 and 9AM-10AM on 02/10/2011 Note, if you are using the .
Filtering on and Retrieving the "Modality" in a C-FIND
Many people wish to obtain a list of studies of a particular type (modality) - CR, MR etc. and try to filter/retrieve this in a standard STUDY level request by adding element 0008,0060 to a query (using DoRawQuery in DicomObjects, and are disappointed to discover that either the whole query is then rejected, or that this attribute is ignored. This is because modality is technically a SERIES level attribute in DICOM, as a DICOM study is allowed to contain multiple series, each with perhaps different modalities.
A “normal” DICOM Query, as part of the Query/Retrieve service, is used to ask about the patients, studies, series or images known to a Q/R SCP (normally a PACS). It uses the C-FIND operation (and was originally the only service using that operation, so this query service is often called just C-FIND, despite that fact that the C-FIND operation is also used for other services such as Modality Worklist).
Querying Patient Information by Modality
It is possible to query for Patient Information using a DICOM C-FIND operation with Modality as a filter, in order to find all patients who have ever had a series with a particular modality. This can be done by a STUDY root STUDY level C-FIND query. A DoRawQuery(QueryDataSet) method in COM version of DicomObjects or Find(QueryDataSet) method in .NET version is required with ModatiesInStudy field (0008,0061) being explicitly added as a modality to search for.
Relational Queries have been in the DICOM standard since the start, but are supported by only about half the PACS in the world. They are negotiated using Extended Negotiation and if requested by the SCU and accepted by the SCP then they remove several of the normal C-FIND rules, namely:
It is no longer necessary to quote the unique identifiers for every level above the current query level It is possible to use matching attributes at different levels of the hierarchy e.
Root & Level
The ROOT is the overall data model, and there are two main roots in DICOM, STUDY and PATIENT. A third root model also exists called PATIENTSTUDY but it was very rarely used in DICOM and is now officially retired.
Within each root structure, operations (find or GET or MOVE) are done at a particular LEVEL. The allowed combinations are:
PATIENT Root Allows operations at these levels:
PATIENT STUDY SERIES IMAGE STUDY Root Allows these levels: