DicomPrinter.hpp 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /***************************************************************************
  2. * E-Com Technology Ltd.
  3. *
  4. * ECOMPACS DICOM Utility Libraries
  5. ***************************************************************************/
  6. #ifndef _INCLUDE_DICOMPRINTER
  7. #define _INCLUDE_DICOMPRINTER
  8. class SCUGrayscalePrintManagement;
  9. class PrintConnection;
  10. typedef BOOL (*PrinterCallBack) (void * Param, UINT16 Status, DICOMDataSet * DDS);
  11. class DICOM_API DICOMPrinter
  12. {
  13. private:
  14. SCUGrayscalePrintManagement * PrinterSession;
  15. PrintConnection * PrintPDU;
  16. ArrayOfPtr <DICOMDataSet *> * PADDS;
  17. void * Param;
  18. PrinterCallBack PrinterStatusCallBack;
  19. PrinterCallBack PrintJobCallBack;
  20. DICOMDataSet PrinterStatus;
  21. DICOMDataSet PrintJobDDS;
  22. static BOOL DummyPrintCallBack (void * para, UINT16 Status, DICOMDataSet * DDS);
  23. public:
  24. UINT16 m_ImagesOnASheet ;
  25. UINT16 m_NumberOfCopies ;
  26. DString m_ImageDisplayFormat;
  27. DString m_FilmOrientation ;
  28. DString m_FilmSizeID ;
  29. DString m_MagnificationType ;
  30. DString m_SmoothingType ;
  31. DString m_BorderDensity ;
  32. DString m_EmptyImageDensity ;
  33. DString m_PrintPriority ;
  34. DString m_Trim ;
  35. DString m_MediumType ;
  36. DString m_FilmDestination ;
  37. DString m_FilmSessionLabel ;
  38. UINT16 m_MinDensity ;
  39. UINT16 m_MaxDensity ;
  40. DString m_AnnotationText ;
  41. DString m_AnnotationDisplayFormatID;
  42. DDateTime m_QueueScheduleStartTime;
  43. DDateTime m_QueueScheduleEndTime;
  44. DDateTimeSpan m_QueueRescheduleDelay;
  45. public:
  46. DICOMPrinter ();
  47. ~DICOMPrinter ();
  48. void Reset (void);
  49. BOOL SetDestination (const char * Node, const char * Port, const char * CallingAE, const char * CalledAE);
  50. BOOL PrintImages (const Array <DICOMImage *> * ImageArray);
  51. // BOOL SubmitPrintQueue (const Array <DICOMImage *> * ImageArray);
  52. BOOL GetPrinterStatus ();
  53. BOOL SetPrinterStatusCallBack(PrinterCallBack CallBack, void * Arg);
  54. BOOL SetPrintJobCallBack (PrinterCallBack CallBack, void * Arg);
  55. private:
  56. BOOL Connect ();
  57. BOOL BuildSession ();
  58. BOOL BuildFilmBox (UINT & ImageIndex);
  59. BOOL CreatePrintDDS (const Array <DICOMImage *> * ImageArray);
  60. BOOL PrintFilm (UINT FilmBoxIndex);
  61. BOOL PrintSession (void);
  62. BOOL PrintOut (void);
  63. };
  64. #endif