/*************************************************************************** * E-Com Technology Ltd. * * ECOMPACS DICOM Utility Libraries ***************************************************************************/ #ifndef _INCLUDE_DICOMPRINTER #define _INCLUDE_DICOMPRINTER class SCUGrayscalePrintManagement; class PrintConnection; typedef BOOL (*PrinterCallBack) (void * Param, UINT16 Status, DICOMDataSet * DDS); class DICOM_API DICOMPrinter { private: SCUGrayscalePrintManagement * PrinterSession; PrintConnection * PrintPDU; ArrayOfPtr * PADDS; void * Param; PrinterCallBack PrinterStatusCallBack; PrinterCallBack PrintJobCallBack; DICOMDataSet PrinterStatus; DICOMDataSet PrintJobDDS; static BOOL DummyPrintCallBack (void * para, UINT16 Status, DICOMDataSet * DDS); public: UINT16 m_ImagesOnASheet ; UINT16 m_NumberOfCopies ; DString m_ImageDisplayFormat; DString m_FilmOrientation ; DString m_FilmSizeID ; DString m_MagnificationType ; DString m_SmoothingType ; DString m_BorderDensity ; DString m_EmptyImageDensity ; DString m_PrintPriority ; DString m_Trim ; DString m_MediumType ; DString m_FilmDestination ; DString m_FilmSessionLabel ; UINT16 m_MinDensity ; UINT16 m_MaxDensity ; DString m_AnnotationText ; DString m_AnnotationDisplayFormatID; DDateTime m_QueueScheduleStartTime; DDateTime m_QueueScheduleEndTime; DDateTimeSpan m_QueueRescheduleDelay; public: DICOMPrinter (); ~DICOMPrinter (); void Reset (void); BOOL SetDestination (const char * Node, const char * Port, const char * CallingAE, const char * CalledAE); BOOL PrintImages (const Array * ImageArray); // BOOL SubmitPrintQueue (const Array * ImageArray); BOOL GetPrinterStatus (); BOOL SetPrinterStatusCallBack(PrinterCallBack CallBack, void * Arg); BOOL SetPrintJobCallBack (PrinterCallBack CallBack, void * Arg); private: BOOL Connect (); BOOL BuildSession (); BOOL BuildFilmBox (UINT & ImageIndex); BOOL CreatePrintDDS (const Array * ImageArray); BOOL PrintFilm (UINT FilmBoxIndex); BOOL PrintSession (void); BOOL PrintOut (void); }; #endif