/// <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(); }
/// <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(); }
public void OnResampleDone(ImageVolumeResampleResponse response) { ResponseContext responseContext = OperationContext.Current.IncomingMessageHeaders.GetHeader <ResponseContext>("ResponseContext", "ServiceModelEx"); string methodID = responseContext.MethodId; ResampleDoneEvent(methodID, response); }
public void OnResampleDone(ImageVolumeResampleResponse response) { Channel.OnResampleDone(response); }