Example #1
0
        public void SelectAllSops()
        {
            Study study = CreateTestStudy1();
            var sops = study.GetSeries().First().GetSopInstances().Cast<SopInstance>().ToList();

            var criteria = new DicomAttributeCollection();
            var filters = new SopInstancePropertyFilters(criteria);
            var results = filters.FilterResults(sops);
            Assert.AreEqual(5, results.Count());
        }
Example #2
0
        public void SelectAllSops()
        {
            Study study = CreateTestStudy1();
            var   sops  = study.GetSeries().First().GetSopInstances().Cast <SopInstance>().ToList();

            var criteria = new DicomAttributeCollection();
            var filters  = new SopInstancePropertyFilters(criteria);
            var results  = filters.FilterResults(sops);

            Assert.AreEqual(5, results.Count());
        }
Example #3
0
        public void AssertUniqueKeys()
        {
            Study study = CreateTestStudy1();
            var sops = study.GetSeries().First().GetSopInstances().Cast<SopInstance>().ToList();

            var criteria = new DicomAttributeCollection();
            var filters = new SopInstancePropertyFilters(criteria);
            var results = filters.FilterResults(sops);
            var converted = filters.ConvertResultsToDataSets(results);
            foreach (var result in converted)
            {
                //It's 6 because of InstanceAvailability, RetrieveAE, SpecificCharacterSet.
                Assert.AreEqual(6, result.Count);
                Assert.IsNotEmpty(result[DicomTags.StudyInstanceUid]);
                Assert.IsNotEmpty(result[DicomTags.SeriesInstanceUid]);
                Assert.IsNotEmpty(result[DicomTags.SopInstanceUid]);
            }
        }
Example #4
0
        public void SelectByInstanceNumber()
        {
            Study study = CreateTestStudy1();
            var sops = study.GetSeries().First().GetSopInstances().Cast<SopInstance>().ToList();

            var criteria = new DicomAttributeCollection();
            criteria[DicomTags.InstanceNumber].SetInt32(0, 102);

            var filters = new SopInstancePropertyFilters(criteria);
            var results = filters.FilterResults(sops);
            Assert.AreEqual(1, results.Count());

            criteria[DicomTags.InstanceNumber].SetInt32(0, 106);
            filters = new SopInstancePropertyFilters(criteria);

            results = filters.FilterResults(sops);
            Assert.AreEqual(0, results.Count());
        }
Example #5
0
        public void AssertUniqueKeys()
        {
            Study study = CreateTestStudy1();
            var   sops  = study.GetSeries().First().GetSopInstances().Cast <SopInstance>().ToList();

            var criteria  = new DicomAttributeCollection();
            var filters   = new SopInstancePropertyFilters(criteria);
            var results   = filters.FilterResults(sops);
            var converted = filters.ConvertResultsToDataSets(results);

            foreach (var result in converted)
            {
                //It's 6 because of InstanceAvailability, RetrieveAE, SpecificCharacterSet.
                Assert.AreEqual(6, result.Count);
                Assert.IsNotEmpty(result[DicomTags.StudyInstanceUid]);
                Assert.IsNotEmpty(result[DicomTags.SeriesInstanceUid]);
                Assert.IsNotEmpty(result[DicomTags.SopInstanceUid]);
            }
        }
Example #6
0
        public void SelectByInstanceNumber()
        {
            Study study = CreateTestStudy1();
            var   sops  = study.GetSeries().First().GetSopInstances().Cast <SopInstance>().ToList();

            var criteria = new DicomAttributeCollection();

            criteria[DicomTags.InstanceNumber].SetInt32(0, 102);

            var filters = new SopInstancePropertyFilters(criteria);
            var results = filters.FilterResults(sops);

            Assert.AreEqual(1, results.Count());

            criteria[DicomTags.InstanceNumber].SetInt32(0, 106);
            filters = new SopInstancePropertyFilters(criteria);

            results = filters.FilterResults(sops);
            Assert.AreEqual(0, results.Count());
        }
Example #7
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);
            }
        }
Example #8
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);
            }
        }