public Task <DicomSendResponse> SendRequestForCommitment(DicomSend dicomRoute, DicomFile dFile) { var res = new DicomSendResponse(); var client = new DicomClient(); //var nAction = new DicomNActionRequest(dSet); var tcs = new TaskCompletionSource <DicomSendResponse>(); /* * nAction.OnResponseReceived += (DicomNActionRequest request, DicomNActionResponse response) => * { * if (response.Status.State == DicomState.Pending) * { * Console.WriteLine("Sending is in progress. please wait"); * } * else if (response.Status.State == DicomState.Success) * { * res.isSuccess = true; * tcs.SetResult(res); * } * else if (response.Status.State == DicomState.Failure) * { * res.isSuccess = false; * res.Error = response.Status.Description; * tcs.SetResult(res); * Console.WriteLine("Error sending datasets: " + response.Status.Description); * } * Console.WriteLine(response.Status); * };*/ /* * var cMoveRequest = CreateCMoveBySeriesUID(dSet); * cMoveRequest.OnResponseReceived += (DicomCMoveRequest requ, DicomCMoveResponse response) => * { * if (response.Status.State == DicomState.Pending) * { * Console.WriteLine("Sending is in progress. please wait"); * } * else if (response.Status.State == DicomState.Success) * { * res.isSuccess = true; * tcs.SetResult(res); * Console.WriteLine("Sending successfully finished"); * } * else if (response.Status.State == DicomState.Failure) * { * res.isSuccess = false; * res.Error = response.Status.Description; * tcs.SetResult(res); * Console.WriteLine("Error sending datasets: " + response.Status.Description); * } * Console.WriteLine(response.Status); * }; */ var cStoreRequest = CreateCStoreBySeriesUID(dFile); cStoreRequest.OnResponseReceived += (DicomCStoreRequest requ, DicomCStoreResponse response) => { if (response.Status.State == DicomState.Pending) { Console.WriteLine("Sending is in progress. please wait"); } else if (response.Status.State == DicomState.Success) { res.isSuccess = true; tcs.SetResult(res); Console.WriteLine("Sending successfully finished"); } else if (response.Status.State == DicomState.Failure) { res.isSuccess = false; res.Error = response.Status.Description; tcs.SetResult(res); Console.WriteLine("Error sending datasets: " + response.Status.Description); } Console.WriteLine(response.Status); }; client.AddRequest(cStoreRequest); client.Send(dicomRoute.RemoteHost, Int32.Parse(dicomRoute.Port), false, dicomRoute.AETitle, dicomRoute.CallingAETitle); return(tcs.Task); }
public Task <DicomSendResponse> Transmit(DicomSend dicomRoute, DicomFile dFile) { return(SendRequestForCommitment(dicomRoute, dFile)); }