private IDisplaySet CreateDisplaySet(Study study, IEnumerable<Series> modalitySeries) { var first = modalitySeries.FirstOrDefault(); if (first == null) return null; var modality = first.Modality; if (String.IsNullOrEmpty(modality)) return null; var displaySet = new DisplaySet(new ModalityDisplaySetDescriptor(study.GetIdentifier(), modality, PresentationImageFactory)); int seriesCount = 0; foreach (var series in modalitySeries) { bool added = false; foreach (var imageSop in series.Sops) //We don't want key images, references etc. { foreach (var image in PresentationImageFactory.CreateImages(imageSop)) { displaySet.PresentationImages.Add(image); added = true; } } if (added) ++seriesCount; } // Degenerate case is one series, in which case we don't create this display set. if (seriesCount > 1) return displaySet; displaySet.Dispose(); return null; }
protected virtual DicomImageSetDescriptor CreateImageSetDescriptor(Study study) { return new DicomImageSetDescriptor(study.GetIdentifier()); }