private IEnumerable <Series> GetSeries(SeriesEntry criteria) { try { string studyInstanceUid = null; if (criteria != null && criteria.Series != null) { studyInstanceUid = criteria.Series.StudyInstanceUid; } //This will throw when Uid parameter is empty. IStudy study = GetStudy(studyInstanceUid); if (study == null) { return(new List <Series>()); } //TODO (Marmot): make extended data queryable, too. var dicomCriteria = criteria.Series.ToDicomAttributeCollection(); var filters = new SeriesPropertyFilters(dicomCriteria); var results = filters.FilterResults(study.GetSeries().Cast <Series>()); return(results); } catch (Exception e) { throw new Exception("An error occurred while performing the series query.", e); } }
private List <DicomAttributeCollection> SeriesQuery(DicomAttributeCollection queryCriteria) { var study = GetStudy(queryCriteria[DicomTags.StudyInstanceUid]); if (study == null) { return(new List <DicomAttributeCollection>()); } try { var filters = new SeriesPropertyFilters(queryCriteria); var results = filters.FilterResults(study.GetSeries().Cast <Series>()); return(filters.ConvertResultsToDataSets(results)); } catch (Exception e) { throw new Exception("An error occurred while performing the series query.", e); } }