Exemplo n.º 1
0
        /// <summary>
        /// one-way call to resample an image volume
        /// </summary>
        /// <param name="seriesInstanceUID"></param>
        public void ResampleImageVolume(ImageVolumeResampleRequest request)
        {
            Console.WriteLine(string.Format("Resampling volume {0}", request.SeriesInstanceUID));

            _responseContext =
                OperationContext.Current.IncomingMessageHeaders.GetHeader <ResponseContext>(
                    "ResponseContext", "ServiceModelEx");
            _responseAddress =
                new EndpointAddress(_responseContext.ResponseAddress);

            ResampleEngineClient re = new ResampleEngineClient();

            ImageVolumeResampleResponse response = re.ResampleImageVolume(request);

            System.Diagnostics.Trace.Assert(response.ResampledImageVolumeGuid.CompareTo(Guid.Empty) != 0);

            MessageHeader <ResponseContext> responseHeader = new MessageHeader <ResponseContext>(_responseContext);
            NetMsmqBinding        binding = new NetMsmqBinding("NoMsmqSecurity");
            ResampleResponseProxy proxy   = new ResampleResponseProxy(binding, _responseAddress);

            using (OperationContextScope scope = new OperationContextScope(proxy.InnerChannel))
            {
                OperationContext.Current.OutgoingMessageHeaders.Add(
                    responseHeader.GetUntypedHeader("ResponseContext", "ServiceModelEx"));

                proxy.OnResampleDone(response);
            }

            proxy.Close();
        }
Exemplo n.º 2
0
        /// <summary>
        /// upone resample, update the vms for the image series
        /// </summary>
        /// <param name="methodID">the resample method invoke</param>
        /// <param name="response">response structure</param>
        void ResampleDoneResponse_ResampleDoneEvent(string methodID, ImageVolumeResampleResponse response)
        {
            var lirm = new LocalImageResourceManagerClient();

            _dispatcher.Invoke(() =>
            {
                // now delete the images
                var guids = lirm.GetImageIdsBySeries(response.SeriesInstanceUID);
                foreach (var guid in guids)
                {
                    lirm.RemoveImage(guid);
                }

                if (_series.Any(s => s.SeriesInstanceUID.CompareTo(response.SeriesInstanceUID) == 0))
                {
                    var svm = from vm in _series
                              where vm.SeriesInstanceUID.CompareTo(response.SeriesInstanceUID) == 0
                              select vm;
                    svm.First().ResampleStatus =
                        string.Format("Resampled ({0} slices)", (int)guids.Count);
                }
            });

            lirm.Close();
        }
Exemplo n.º 3
0
    public void OnResampleDone(ImageVolumeResampleResponse response)
    {
        ResponseContext responseContext =
            OperationContext.Current.IncomingMessageHeaders.GetHeader <ResponseContext>("ResponseContext", "ServiceModelEx");
        string methodID = responseContext.MethodId;

        ResampleDoneEvent(methodID, response);
    }
Exemplo n.º 4
0
 public void OnResampleDone(ImageVolumeResampleResponse response)
 {
     Channel.OnResampleDone(response);
 }