Using the Events OnStatus, OnPrinterReport, and OnPrintJobReport Example for C#

private LTDICPRNSCULib.LEADDicomPrintSCU objPrintSCU;
private void objPrintSCU_OnStatus(LTDICPRNSCULib.PrintScuStatusEnum Status, int OperationStatus)
{
   string sStatusCodeType = null;
   string sOpStatus = null;
   switch (Status)
   {
      case LTDICPRNSCULib.PrintScuStatusEnum.PRNSCU_STATUS_RECEIVE_ABORT:
         MessageBox.Show("Source = " + objPrintSCU.AbortSource + ", " + "Reason = " + objPrintSCU.AbortReason, "Print SCP Aborted the Association");
         break;
      case LTDICPRNSCULib.PrintScuStatusEnum.PRNSCU_STATUS_RECEIVE_PRINT_FILM_SESSION_RSP:
      {
         if (OperationStatus == (int)LTDNCLib.DicomCommandStatusConstants.COMMAND_STATUS_SUCCESS)
         {
            if (objPrintSCU.LastOperationStatus == (int)LTDNCLib.DicomCommandStatusConstants.COMMAND_STATUS_SUCCESS)
               sStatusCodeType = "Success";
            else
               sStatusCodeType = "Warning";
         }
         else sStatusCodeType = "Failure";
            sOpStatus = System.Convert.ToString(objPrintSCU.LastOperationStatus, 16).ToUpper();
         while (sOpStatus.Length < 4)
         {
            sOpStatus = "0" + sOpStatus;
         }
         sOpStatus = "0x" + sOpStatus;
         MessageBox.Show("Status: " + sOpStatus + " (" + sStatusCodeType + ")", "Received N-ACTION-RSP (Basic Film Session SOP Class)");
      }
      break;
   }
}

private void objPrintSCU_OnPrinterReport(short EventTypeID, string PrinterStatusInfo, string FilmDestination, string PrinterName)
{
   string sEventTypeName = null;
   sEventTypeName = "Normal";
   switch (EventTypeID)
   {
      case 2:
         sEventTypeName = "Warning";
         break;
      case 3:
         sEventTypeName = "Failure";
         break;
   }
   string sMsg = null;
   sMsg = "Event Type Name: " + sEventTypeName;
   if (EventTypeID != 1)
      sMsg = sMsg + System.Environment.NewLine + "Printer Status Info: " + PrinterStatusInfo + System.Environment.NewLine + "Film Destination: " + FilmDestination + System.Environment.NewLine + "Printer Name: " + PrinterName;
   MessageBox.Show(sMsg, "Printer Status Report");
}

private void objPrintSCU_OnPrintJobReport(string PrintJobSOPInstanceUID, short EventTypeID, string ExecutionStatusInfo, string PrintJobID, string FilmSessionLabel, string PrinterName)
{
   string sEventTypeName = null;
   sEventTypeName = "Pending";
   switch (EventTypeID)
   {
      case 2:
         sEventTypeName = "Printing";
         break;
      case 3:
         sEventTypeName = "Done";
         break;
      case 4:
         sEventTypeName = "Failure";
         break;
   }
   MessageBox.Show("Print Job SOP Instance UID: " + PrintJobSOPInstanceUID + System.Environment.NewLine + "Event Type Name: " + sEventTypeName + System.Environment.NewLine + "Execution Status Info: " + ExecutionStatusInfo + System.Environment.NewLine + "Film Session Label: " + FilmSessionLabel + System.Environment.NewLine + "Printer Name: " + PrinterName, "Print Job Status Report");
}