Beispiel #1
0
        public IEnumerable <T> GetImageUids <T>(IEnumerable <CFindSeriesIOD> series) where T : CFindImageIOD
        {
            List <T> results = new List <T>();

            foreach (var ser in series)
            {
                var req        = CFind.CreateImageQuery(ser.SeriesInstanceUID);
                var imagesUids = _scu.GetResponse(req, _scp)
                                 .Where(r => r.Status == (ushort)Status.PENDING)
                                 .Where(r => r.HasData)
                                 .Select(r => r.GetIOD <T>())
                                 .ToList();
                results.AddRange(imagesUids);
            }
            return(results);
        }
Beispiel #2
0
        public IEnumerable <CFindImageIOD> FindImages(IEnumerable <CFindSeriesIOD> series)
        {
            var    results = new List <CFindImageIOD>();
            ushort msgId   = 1;

            foreach (var ser in series)
            {
                var req        = CFind.CreateImageQuery(ser.SeriesInstanceUID);
                var imagesUids = _scu.GetResponses <CFindResponse, CFindRequest>(req, _scp, ref msgId)
                                 .Where(r => r.Status == (ushort)Status.PENDING)
                                 .Where(r => r.HasData)
                                 .Select(r => r.GetIOD <CFindImageIOD>())
                                 .ToList();
                results.AddRange(imagesUids);
            }
            return(results);
        }
Beispiel #3
0
        public IEnumerable <T> FindImages <T>(IEnumerable <CFindSeriesIOD> series) where T : CFindInstanceIOD
        {
            var    results = new List <T>();
            ushort msgId   = 1;

            foreach (var ser in series)
            {
                Tryer.Try(() =>
                {
                    var req        = CFind.CreateImageQuery(ser);
                    var imagesUids = _scu.GetResponses <CFindResponse, CFindRequest>(req, _scp, ref msgId)
                                     .Where(r => r.Status == (ushort)Status.PENDING)
                                     .Where(r => r.HasData)
                                     .Select(r => r.GetIOD <T>())
                                     .ToList();
                    results.AddRange(imagesUids);
                }, $"Adding series {ser.Modality} : {ser.SeriesInstanceUID}");
            }
            return(results);
        }