The DICOM standard defines the Print Management Service Class to facilitate the printing of images and image related data. The functionality provided by the DicomPrintScu class simplifies the process of building a Print Management Service Class User (Print SCU). The DicomPrintScu class provides members to handle all the SOP and Meta SOP Classes defined by the Print Management Service Class.
The functionality of the DicomPrintScu class can be divided into the following categories:
Association
The Association with the Print Management Service Class Provider (Print SCP) can be simply established by calling the method DicomPrintScu.Associate. The SOP/Meta SOP Classes supported by the Print SCU itself are specified when calling this method. The following methods are also related to Association handling:
DicomPrintScu.GetAssociateRejectInformation
DicomPrintScu.IsClassSupported
DicomPrintScu.GetAbortInformation
Basic Print Management
Having the Association established, the Basic Print Management can be started by requesting the Print SCP to create a Film Session. This is done using the method DicomPrintScu.CreateFilmSession. The following methods are related to Film Session handling:
DicomPrintScu.GetFilmSessionInstanceUid
DicomPrintScu.UpdateFilmSession
DicomPrintScu.PrintFilmSession
DicomPrintScu.DeleteFilmSession
DicomPrintScu.GetDefaultFilmSessionParameters
Once the Film Session is created, the Print SCP can be requested to create one or more Film Boxes. A Film Box can be created using the method DicomPrintScu.CreateFilmBox. The following methods are related to Film Box handling:
DicomPrintScu.GetFilmBoxInstanceUid
DicomPrintScu.GetDefaultFilmBoxParameters
When the Print SCP is requested to create a Film Box, it will also create one or more Image Boxes. The method DicomPrintScu.GetImageBoxesCount returns the count of these Image Boxes, which can be handled using the following methods:
DicomPrintScu.GetImageBoxInstanceUid
DicomPrintScu.GetDefaultImageBoxParameters
DicomPrintScu.FreeImageBoxesInstanceUids
Similarly, when the Print SCP is requested to create a Film Box, it might also create one or more Annotation Boxes. The method DicomPrintScu.GetAnnotationBoxesCount returns the count of these Annotation Boxes, which can be handled using the following methods:
DicomPrintScu.GetAnnotationBoxInstanceUid
DicomPrintScu.UpdateAnnotationBox
DicomPrintScu.FreeAnnotationBoxesInstanceUids
If the Presentation LUT SOP Class is supported on the Association, the Print SCP can be requested to create a Presentation LUT. Once a Presentation LUT is created, it can be referenced by the Film Boxes and Grayscale Image Boxes. The following methods handle Presentation LUTs:
DicomPrintScu.CreatePresentationLut
DicomPrintScu.GetPresentationLutInstanceUid
DicomPrintScu.DeletePresentationLut
If the Basic Print Image Overlay Box SOP Class is supported on the Association, the Print SCP can be requested to create an Image Overlay Box, which can then be referenced by the Image Boxes. The following methods handle Image Overlay Boxes:
DicomPrintScu.CreateOverlayBox
DicomPrintScu.GetOverlayBoxInstanceUid
DicomPrintScu.UpdateOverlayBox
DicomPrintScu.DeleteOverlayBox
DicomPrintScu.GetDefaultOverlayBoxParameters
Printer
The method DicomPrintScu.GetPrinterInformation can be used to query the Print SCP for information about the printer. Information that can be retrieved includes Printer Name, Printer Manufacturer, Printer Status, etc. The callback method DicomPrintScu.OnPrinterReport will be called whenever a printer status report is received from the Print SCP.
The method DicomPrintScu.GetPrinterConfiguration can be used to query the Print SCP for the printer configuration information.
Print Jobs
When a printing request is sent to the Print SCP, and if the Print Job SOP Class is supported on the Association, the Print SCP will create a Print Job SOP Instance for the new Print Job. The SOP Instance UID of that Instance is returned by the method DicomPrintScu.GetPrintJobInstanceUid. This SOP Instance UID can then be passed to the method DicomPrintScu.GetPrintJobInformation to query the Print SCP for information about the Print Job. The callback method DicomPrintScu.OnPrintJobReport will be called whenever a Print Job status report is received from the Print SCP.
In addition to the methods mentioned above:
- The callback method DicomPrintScu.OnStatus can be used to monitor the status of the Print SCU itself.
- The method DicomPrintScu.GetLastOperationStatus returns the status code specified in the response of the Print SCP.
- The method DicomPrintScu.SetTimeout sets the timeout value for communicating with the Print SCP.