/// <summary>
        /// Begins the print asynchronously.
        /// </summary>
        /// <param name="clientAETitle">The client AE title.</param>
        /// <param name="remoteAE">The remote AE.</param>
        /// <param name="remoteHost">The remote host.</param>
        /// <param name="remotePort">The remote port.</param>
        /// <param name="basicFilmSessionModuleIod">The basic film session module iod.</param>
        /// <param name="basicFilmBoxModuleIod">The basic film box module iod.</param>
        /// <param name="imageBoxPixelModuleIods">The image box pixel module iods.</param>
        /// <param name="callback">The callback.</param>
        /// <param name="asyncState">State of the async.</param>
        /// <returns></returns>
        public IAsyncResult BeginPrint(string clientAETitle, string remoteAE, string remoteHost, int remotePort, BasicFilmSessionModuleIod basicFilmSessionModuleIod, BasicFilmBoxModuleIod basicFilmBoxModuleIod, IList<ImageBoxPixelModuleIod> imageBoxPixelModuleIods, AsyncCallback callback, object asyncState)
        {
            PrintDelegate printDelegate = new PrintDelegate(this.Print);

            return printDelegate.BeginInvoke(clientAETitle, remoteAE, remoteHost, remotePort, basicFilmSessionModuleIod, basicFilmBoxModuleIod, imageBoxPixelModuleIods, callback, asyncState);
        }
 /// <summary>
 /// Prints with the specified parameters.
 /// </summary>
 /// <param name="clientAETitle">The client AE title.</param>
 /// <param name="remoteAE">The remote AE.</param>
 /// <param name="remoteHost">The remote host.</param>
 /// <param name="remotePort">The remote port.</param>
 /// <param name="basicFilmSessionModuleIod">The basic film session module iod.</param>
 /// <param name="basicFilmBoxModuleIod">The basic film box module iod.</param>
 /// <param name="imageBoxPixelModuleIods">The image box pixel module iods.</param>
 public DicomState Print(string clientAETitle, string remoteAE, string remoteHost, int remotePort, BasicFilmSessionModuleIod basicFilmSessionModuleIod, BasicFilmBoxModuleIod basicFilmBoxModuleIod, IList<ImageBoxPixelModuleIod> imageBoxPixelModuleIods)
 {
     _results = null;
     _filmSessionUid = null;
     _basicFilmSessionModuleIod = basicFilmSessionModuleIod;
     _basicFilmBoxModuleIod = basicFilmBoxModuleIod;
     _imageBoxPixelModuleIods = imageBoxPixelModuleIods;
     _filmBoxResponseMessages.Clear();
     _currentImageBoxIndex = 0;
     _filmBoxUids.Clear();
     Connect(clientAETitle, remoteAE, remoteHost, remotePort);
     if (Status == ScuOperationStatus.AssociationRejected || Status == ScuOperationStatus.Failed || Status == ScuOperationStatus.ConnectFailed ||
         Status == ScuOperationStatus.NetworkError || Status == ScuOperationStatus.TimeoutExpired)
         return DicomState.Failure;
     return ResultStatus;
 }