Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 public Task <DicomSendResponse> Transmit(DicomSend dicomRoute, DicomFile dFile)
 {
     return(SendRequestForCommitment(dicomRoute, dFile));
 }