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()); }
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()); }
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]); } }
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()); }
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]); } }
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()); }
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); } }
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); } }