Print Management SCU

The DICOM standard defines the Print Management Service Class to facilitate the printing of images and image related data. The functionality of L_DicomPrintSCUXXX simplifies the process of building a Print Management Service Class User (Print SCU).

The functionality of L_DicomPrintSCUXXX 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 function L_DicomPrintSCUAssociate. The SOP/Meta SOP Classes supported by the Print SCU itself are specified when calling this function. The following functions are also related to Association handling:

L_DicomPrintSCUGetAssociateRejectInfo

L_DicomPrintSCUIsClassSupported

L_DicomPrintSCURelease

L_DicomPrintSCUGetAbortInfo

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 function L_DicomPrintSCUCreateFilmSession. The following functions are related to Film Session handling:

L_DicomPrintSCUGetFilmSessionInstanceUID

L_DicomPrintSCUUpdateFilmSession

L_DicomPrintSCUPrintFilmSession

L_DicomPrintSCUDeleteFilmSession

L_DicomPrintSCUGetDefaultFilmSessionParameters

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 function L_DicomPrintSCUCreateFilmBox. The following functions are related to Film Box handling:

L_DicomPrintSCUGetFilmBoxInstanceUID

L_DicomPrintSCUUpdateFilmBox

L_DicomPrintSCUPrintFilmBox

L_DicomPrintSCUDeleteFilmBox

L_DicomPrintSCUGetDefaultFilmBoxParameters

When the Print SCP is requested to create a Film Box, it will also create one or more Image Boxes. The function L_DicomPrintSCUGetImageBoxesCount returns the count of these Image Boxes, which can be handled using the following functions:

L_DicomPrintSCUGetImageBoxInstanceUID

L_DicomPrintSCUUpdateImageBox

L_DicomPrintSCUGetDefaultImageBoxParameters

L_DicomPrintSCUFreeImageBoxesInstanceUIDs

Similarly, when the Print SCP is requested to create a Film Box, it might also create one or more Annotation Boxes. The function L_DicomPrintSCUGetAnnotationBoxesCount returns the count of these Annotation Boxes, which can be handled using the following functions:

L_DicomPrintSCUGetAnnotationBoxInstanceUID

L_DicomPrintSCUUpdateAnnotationBox

L_DicomPrintSCUFreeAnnotationBoxesInstanceUIDs

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 functions handle Presentation LUTs:

L_DicomPrintSCUCreatePresentationLUT

L_DicomPrintSCUGetPresentationLUTInstanceUID

L_DicomPrintSCUDeletePresentationLUT

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 functions handle Image Overlay Boxes:

L_DicomPrintSCUCreateOverlayBox

L_DicomPrintSCUGetOverlayBoxInstanceUID

L_DicomPrintSCUUpdateOverlayBox

L_DicomPrintSCUDeleteOverlayBox

L_DicomPrintSCUGetDefaultOverlayBoxParameters

Pull Stored Print Management

Having the Association established, the Pull Stored Print Management can be started by using the function L_DicomPrintSCUCreatePullPrintRequest to request the Print SCP to create a Pull Print Request SOP Instance. The following functions handle Pull Stored Print Management sessions:

L_DicomPrintSCUGetPullPrintRequestInstanceUID

L_DicomPrintSCUPrintPullPrintRequestSession

L_DicomPrintSCUDeletePullPrintRequest

L_DicomPrintSCUGetDefaultPullPrintRequestParameters

Printer

The function L_DicomPrintSCUGetPrinterInfo 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 function PRINTSCUPRINTERREPORTCALLBACK will be called whenever a printer status report is received from the Print SCP.

The function L_DicomPrintSCUGetPrinterConfiguration 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 function L_DicomPrintSCUGetPrintJobInstanceUID. This SOP Instance UID can then be passed to the function L_DicomPrintSCUGetPrintJobInfo to query the Print SCP for information about the Print Job. The callback function PRINTSCUPRINTJOBREPORT will be called whenever a Print Job status report is received from the Print SCP.

In addition to the functions mentioned above:

The following sample illustrates the simplicity of using the L_DicomPrintSCUXXX functionality to print a single DICOM image:

L_VOID PrintImage(L_CHAR* pszImageFilename) 
{ 
   LDicomPrintSCU PrintSCU; 
   // Startup the network 
   LDicomNet::StartUp(); 
   // Establish the Association 
   PrintSCU.Associate ("10.0.2.20", 7104, "PrintSCP", "PrintSCU", 
   PRINTSCU_BASIC_GRAYSCALE_PM_META_SOP_CLASS); 
   // Create the Film Session 
   PrintSCU.CreateFilmSession (NULL); 
   // Create the Film Box 
   FILMBOXPARAMETERS FBParams; 
   PrintSCU.GetDefaultFilmBoxParameters (&FBParams, sizeof(FILMBOXPARAMETERS)); 
   PrintSCU.CreateFilmBox (&FBParams); 
   // Update the Image Box 
   IMAGEBOXPARAMETERS IBParams; 
   PrintSCU.GetDefaultImageBoxParameters (&IBParams, sizeof(IMAGEBOXPARAMETERS)); 
   LDicomDS Image; 
   Image.LoadDS(pszImageFilename, DS_LOAD_CLOSE); 
   PrintSCU.UpdateImageBox (PrintSCU.GetImageBoxInstanceUID(0), &Image, 
   &IBParams); 
   // Print the Film Box 
   PrintSCU.PrintFilmBox (); 
   // Delete the Film Session 
   PrintSCU.DeleteFilmSession (); 
   // Release the Association 
   PrintSCU.Release (); 
} 

Help Version 20.0.2019.3.12
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2019 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS DICOM C API Help