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. Therefore, the only valid place for the 0008,0060 attribute is in a SERIES level query.
The solution (where supported) is to use the alternative STUDY Level Attribute 0008,0061 called “Modalities in Study” which returns a list of Modality values used in the study. This is however an optional field, so the following options exist for a server:
- Not support this at all
- Return the entire list but not filter on any supplied value in the query
- Filter using supplied single value and return studies which contain one or more series with that modality
Note: DICOM (in general) does not allow multiple value matching for anything except UIDs, so it is not valid for a query to contain multiple values in the 0008,0061 field, in the hope that the server will interpret them as a request for a study which contains “one of these modalities”. If such a query is required, then the SCU should issue multiple C-FIND requests, and combine the results (possibly eliminating duplicates).