public IDisplaySet FindDisplaySet(HangingProtocol hangingProtocol, IImageSet imageSet, ImageBoxLayout imageBox)
 {
     if (null == imageSet)
     {
         return(null);
     }
     foreach (var displaySet in imageSet.DisplaySets)
     {
         foreach (var presentationImage in displaySet.PresentationImages)
         {
             var filter = hangingProtocol.GetImageFilter(imageBox.FilterName);
             if (null == filter ||
                 filter.Test(presentationImage).Success)
             {
                 return(displaySet);
             }
         }
     }
     return(null);
 }
        public IEnumerable <IImageSet> GetImageSets(ILogicalWorkspace logicalWorkspace, HangingProtocol hangingProtocol)
        {
            string        primaryStudyInstanceUid = logicalWorkspace.ImageViewer.StudyTree.Studies.First().StudyInstanceUid;
            List <string> allStudyInstanceUids    = logicalWorkspace.ImageViewer.StudyTree.Studies
                                                    .Where(s => hangingProtocol.StudyFilter.Test(s).Success)
                                                    .Select(s => s.StudyInstanceUid).ToList();

            return(logicalWorkspace.ImageSets
                   .SkipWhile(i => i.Descriptor.Uid != primaryStudyInstanceUid)
                   .Where(i => allStudyInstanceUids.Contains(i.Descriptor.Uid)));
        }