Esempio n. 1
0
        private IEnumerable <SopInstance> GetSopInstances(ImageEntry criteria)
        {
            try
            {
                string studyInstanceUid = null, seriesInstanceUid = null;
                if (criteria != null && criteria.Image != null)
                {
                    studyInstanceUid  = criteria.Image.StudyInstanceUid;
                    seriesInstanceUid = criteria.Image.SeriesInstanceUid;
                }

                //This will throw when either Uid parameter is empty.
                var series = GetSeries(studyInstanceUid, seriesInstanceUid);
                if (series == null)
                {
                    return(new List <SopInstance>());
                }

                //TODO (Marmot): make extended data queryable, too.
                var dicomCriteria = criteria.Image.ToDicomAttributeCollection();
                var filters       = new SopInstancePropertyFilters(dicomCriteria);
                var results       = filters.FilterResults(series.GetSopInstances().Cast <SopInstance>());
                return(results);
            }
            catch (Exception e)
            {
                throw new Exception("An error occurred while performing the image query.", e);
            }
        }
Esempio n. 2
0
        private List <DicomAttributeCollection> ImageQuery(DicomAttributeCollection queryCriteria)
        {
            var series = GetSeries(queryCriteria[DicomTags.StudyInstanceUid], queryCriteria[DicomTags.SeriesInstanceUid]);

            if (series == null)
            {
                return(new List <DicomAttributeCollection>());
            }

            try
            {
                var filters = new SopInstancePropertyFilters(queryCriteria);
                var results = filters.FilterResults(series.GetSopInstances().Cast <SopInstance>());
                return(filters.ConvertResultsToDataSets(results));
            }
            catch (Exception e)
            {
                throw new Exception("An error occurred while performing the image query.", e);
            }
        }