DVPSPrintSCP Class Reference

the representation of a Print Management SCP. More...

List of all members.

Public Member Functions

 DVPSPrintSCP (DVInterface &iface, const char *cfname)
 constructor
virtual ~DVPSPrintSCP ()
 destructor
void setDimseLogPath (const char *fname)
 activates or deactivates dumping of the DIMSE communication in DICOM file format.
DVPSAssociationNegotiationResult negotiateAssociation (T_ASC_Network &net)
 performs association negotiation for the Print SCP.
void handleClient ()
 confirms an association negotiated with negotiateAssociation() and handles all DIMSE communication for the Print SCP.

Private Member Functions

DVPSPrintSCPoperator= (const DVPSPrintSCP &)
 private undefined assignment operator
 DVPSPrintSCP (const DVPSPrintSCP &copy)
 private undefined copy constructor
int errorCond (OFCondition cond, const char *message)
 if the given condition indicates an error, prints the given string to the error log and returns true (nonzero), otherwise returns false.
OFCondition refuseAssociation (OFBool isBadContext)
 sends A-ASSOCIATION-RQ as the result of an unsuccesful association negotiation.
void dropAssociation ()
 destroys the association managed by this object.
OFCondition handleNGet (T_DIMSE_Message &rq, T_ASC_PresentationContextID presID)
 handles any incoming N-GET-RQ message and sends back N-GET-RSP.
OFCondition handleNSet (T_DIMSE_Message &rq, T_ASC_PresentationContextID presID)
 handles any incoming N-SET-RQ message and sends back N-SET-RSP.
OFCondition handleNAction (T_DIMSE_Message &rq, T_ASC_PresentationContextID presID)
 handles any incoming N-ACTION-RQ message and sends back N-ACTION-RSP.
OFCondition handleNCreate (T_DIMSE_Message &rq, T_ASC_PresentationContextID presID)
 handles any incoming N-CREATE-RQ message and sends back N-CREATE-RSP.
OFCondition handleNDelete (T_DIMSE_Message &rq, T_ASC_PresentationContextID presID)
 handles any incoming N-DELETE-RQ message and sends back N-DELETE-RSP.
OFCondition handleCEcho (T_DIMSE_Message &rq, T_ASC_PresentationContextID presID)
 handles any incoming C-ECHO-RQ message and sends back C-ECHO-RSP.
void printerNGet (T_DIMSE_Message &rq, T_DIMSE_Message &rsp, DcmDataset *&rspDataset)
 implements the N-GET operation for the Printer SOP Class.
void filmSessionNSet (T_DIMSE_Message &rq, DcmDataset *rqDataset, T_DIMSE_Message &rsp, DcmDataset *&rspDataset)
 implements the N-SET operation for the Basic Film Session SOP Class.
void filmBoxNSet (T_DIMSE_Message &rq, DcmDataset *rqDataset, T_DIMSE_Message &rsp, DcmDataset *&rspDataset)
 implements the N-SET operation for the Basic Film Box SOP Class.
void imageBoxNSet (T_DIMSE_Message &rq, DcmDataset *rqDataset, T_DIMSE_Message &rsp, DcmDataset *&rspDataset)
 implements the N-SET operation for the Basic Grayscale Image Box SOP Class.
void filmSessionNAction (T_DIMSE_Message &rq, T_DIMSE_Message &rsp)
 implements the N-ACTION operation for the Basic Film Session SOP Class.
void filmBoxNAction (T_DIMSE_Message &rq, T_DIMSE_Message &rsp)
 implements the N-ACTION operation for the Basic Film Box SOP Class.
void filmSessionNCreate (DcmDataset *rqDataset, T_DIMSE_Message &rsp, DcmDataset *&rspDataset)
 implements the N-CREATE operation for the Basic Film Session SOP Class.
void filmBoxNCreate (DcmDataset *rqDataset, T_DIMSE_Message &rsp, DcmDataset *&rspDataset)
 implements the N-CREATE operation for the Basic Film Box SOP Class.
void presentationLUTNCreate (DcmDataset *rqDataset, T_DIMSE_Message &rsp, DcmDataset *&rspDataset)
 implements the N-CREATE operation for the Presentation LUT SOP Class.
void filmSessionNDelete (T_DIMSE_Message &rq, T_DIMSE_Message &rsp)
 implements the N-DELETE operation for the Basic Film Session SOP Class.
void filmBoxNDelete (T_DIMSE_Message &rq, T_DIMSE_Message &rsp)
 implements the N-DELETE operation for the Basic Film Box SOP Class.
void presentationLUTNDelete (T_DIMSE_Message &rq, T_DIMSE_Message &rsp)
 implements the N-DELETE operation for the Presentation LUT SOP Class.
void saveDimseLog ()
 stores the binary log of the DIMSE communication in a DICOM file in the log directory.
void dumpNMessage (T_DIMSE_Message &msg, DcmItem *dataset, OFBool outgoing)
 prints a dump of the given DIMSE message to the log stream.

Static Private Member Functions

static void addLogEntry (DcmSequenceOfItems *seq, const char *text)
 adds an item to the given sequence containing the current date, time and the given text.

Private Attributes

DVInterfacedviface
const char * cfgname
T_DIMSE_BlockingMode blockMode
 blocking mode for receive
int timeout
 timeout for receive
DVPSFilmSessionfilmSession
 basic film session instance
DVPSPresentationLUT_PList presentationLUTList
DVPSStoredPrint_PList storedPrintList
T_ASC_Associationassoc
DcmUniqueIdentifier studyInstanceUID
 study UID for stored print and hardcopy images of one print session
DcmUniqueIdentifier psSeriesInstanceUID
 series UID for presentation state objects
DcmUniqueIdentifier imageSeriesInstanceUID
 series UID for hardcopy image objects
DcmSequenceOfItemslogSequence
 DIMSE communication logged in this object if present.
DcmSequenceOfItemsacseSequence
 ACSE communication logged in this object if present.
OFString logPath
 full path of the file into which the DIMSE log is written


Detailed Description

the representation of a Print Management SCP.

This class implements most of the DIMSE behaviour of a DICOM Print SCP and uses Stored Print and Hardcopy Grayscale objects to store received print jobs in the local database.

Definition at line 51 of file dvpsprt.h.


Constructor & Destructor Documentation

DVPSPrintSCP::DVPSPrintSCP ( DVInterface iface,
const char *  cfname 
)

constructor

Parameters:
iface Interface to database and config file
cfname symbolic name of print SCP in config file


Member Function Documentation

void DVPSPrintSCP::setDimseLogPath ( const char *  fname  ) 

activates or deactivates dumping of the DIMSE communication in DICOM file format.

This method should be called prior to association negotiation with negotiateAssociation().

Parameters:
fname full path name of the file into which a log of the DIMSE communication is written after association release. NULL disables the DICOM DIMSE dump completely.

DVPSAssociationNegotiationResult DVPSPrintSCP::negotiateAssociation ( T_ASC_Network net  ) 

performs association negotiation for the Print SCP.

Depending on the configuration file settings, Basic Grayscale Print and Presentation LUT are accepted with all uncompressed transfer syntaxes. If association negotiation is unsuccessful, an A-ASSOCIATE-RQ is sent and the association is dropped. If successful, an A-ASSOCIATE-AC is prepared but not (yet) sent.

Parameters:
net DIMSE network over which to receive the association request
Returns:
result indicating whether association negotiation was successful, unsuccessful or whether termination of the server was requested.

void DVPSPrintSCP::handleClient (  ) 

confirms an association negotiated with negotiateAssociation() and handles all DIMSE communication for the Print SCP.

Returns after the association has been released or aborted.

int DVPSPrintSCP::errorCond ( OFCondition  cond,
const char *  message 
) [private]

if the given condition indicates an error, prints the given string to the error log and returns true (nonzero), otherwise returns false.

Parameters:
cond condition to be checked
message to be printed, must not be NULL
Returns:
nonzero if cond indicates error, zero otherwise.

OFCondition DVPSPrintSCP::refuseAssociation ( OFBool  isBadContext  )  [private]

sends A-ASSOCIATION-RQ as the result of an unsuccesful association negotiation.

Parameters:
isBadContext defines the reason for the A-ASSOCIATE-RQ. true indicates an incorrect application context, false sends back an unspecified reject with no reason and is used when termination of the server application has been initiated.
Returns:
ASC_NORMAL if successful, an error code otherwise.

OFCondition DVPSPrintSCP::handleNGet ( T_DIMSE_Message rq,
T_ASC_PresentationContextID  presID 
) [private]

handles any incoming N-GET-RQ message and sends back N-GET-RSP.

Parameters:
rq request message
presID presentation context over which the message was received
Returns:
DIMSE_NORMAL if successful, an error code otherwise

OFCondition DVPSPrintSCP::handleNSet ( T_DIMSE_Message rq,
T_ASC_PresentationContextID  presID 
) [private]

handles any incoming N-SET-RQ message and sends back N-SET-RSP.

Parameters:
rq request message
presID presentation context over which the message was received
Returns:
DIMSE_NORMAL if successful, an error code otherwise

OFCondition DVPSPrintSCP::handleNAction ( T_DIMSE_Message rq,
T_ASC_PresentationContextID  presID 
) [private]

handles any incoming N-ACTION-RQ message and sends back N-ACTION-RSP.

Parameters:
rq request message
presID presentation context over which the message was received
Returns:
DIMSE_NORMAL if successful, an error code otherwise

OFCondition DVPSPrintSCP::handleNCreate ( T_DIMSE_Message rq,
T_ASC_PresentationContextID  presID 
) [private]

handles any incoming N-CREATE-RQ message and sends back N-CREATE-RSP.

Parameters:
rq request message
presID presentation context over which the message was received
Returns:
DIMSE_NORMAL if successful, an error code otherwise

OFCondition DVPSPrintSCP::handleNDelete ( T_DIMSE_Message rq,
T_ASC_PresentationContextID  presID 
) [private]

handles any incoming N-DELETE-RQ message and sends back N-DELETE-RSP.

Parameters:
rq request message
presID presentation context over which the message was received
Returns:
DIMSE_NORMAL if successful, an error code otherwise

OFCondition DVPSPrintSCP::handleCEcho ( T_DIMSE_Message rq,
T_ASC_PresentationContextID  presID 
) [private]

handles any incoming C-ECHO-RQ message and sends back C-ECHO-RSP.

Parameters:
rq request message
presID presentation context over which the message was received
Returns:
DIMSE_NORMAL if successful, an error code otherwise

void DVPSPrintSCP::printerNGet ( T_DIMSE_Message rq,
T_DIMSE_Message rsp,
DcmDataset *&  rspDataset 
) [private]

implements the N-GET operation for the Printer SOP Class.

Parameters:
rq request message
rsp response message, already initialized
rspDataset response dataset passed back in this parameter (if any)

void DVPSPrintSCP::filmSessionNSet ( T_DIMSE_Message rq,
DcmDataset rqDataset,
T_DIMSE_Message rsp,
DcmDataset *&  rspDataset 
) [private]

implements the N-SET operation for the Basic Film Session SOP Class.

Parameters:
rq request message
rqDataset request dataset, may be NULL
rsp response message, already initialized
rspDataset response dataset passed back in this parameter (if any)

void DVPSPrintSCP::filmBoxNSet ( T_DIMSE_Message rq,
DcmDataset rqDataset,
T_DIMSE_Message rsp,
DcmDataset *&  rspDataset 
) [private]

implements the N-SET operation for the Basic Film Box SOP Class.

Parameters:
rq request message
rqDataset request dataset, may be NULL
rsp response message, already initialized
rspDataset response dataset passed back in this parameter (if any)

void DVPSPrintSCP::imageBoxNSet ( T_DIMSE_Message rq,
DcmDataset rqDataset,
T_DIMSE_Message rsp,
DcmDataset *&  rspDataset 
) [private]

implements the N-SET operation for the Basic Grayscale Image Box SOP Class.

Parameters:
rq request message
rqDataset request dataset, may be NULL
rsp response message, already initialized
rspDataset response dataset passed back in this parameter (if any)

void DVPSPrintSCP::filmSessionNAction ( T_DIMSE_Message rq,
T_DIMSE_Message rsp 
) [private]

implements the N-ACTION operation for the Basic Film Session SOP Class.

Parameters:
rq request message
rsp response message, already initialized

void DVPSPrintSCP::filmBoxNAction ( T_DIMSE_Message rq,
T_DIMSE_Message rsp 
) [private]

implements the N-ACTION operation for the Basic Film Box SOP Class.

Parameters:
rq request message
rsp response message, already initialized

void DVPSPrintSCP::filmSessionNCreate ( DcmDataset rqDataset,
T_DIMSE_Message rsp,
DcmDataset *&  rspDataset 
) [private]

implements the N-CREATE operation for the Basic Film Session SOP Class.

Parameters:
rqDataset request dataset, may be NULL
rsp response message, already initialized
rspDataset response dataset passed back in this parameter (if any)

void DVPSPrintSCP::filmBoxNCreate ( DcmDataset rqDataset,
T_DIMSE_Message rsp,
DcmDataset *&  rspDataset 
) [private]

implements the N-CREATE operation for the Basic Film Box SOP Class.

Parameters:
rqDataset request dataset, may be NULL
rsp response message, already initialized
rspDataset response dataset passed back in this parameter (if any)

void DVPSPrintSCP::presentationLUTNCreate ( DcmDataset rqDataset,
T_DIMSE_Message rsp,
DcmDataset *&  rspDataset 
) [private]

implements the N-CREATE operation for the Presentation LUT SOP Class.

Parameters:
rqDataset request dataset, may be NULL
rsp response message, already initialized
rspDataset response dataset passed back in this parameter (if any)

void DVPSPrintSCP::filmSessionNDelete ( T_DIMSE_Message rq,
T_DIMSE_Message rsp 
) [private]

implements the N-DELETE operation for the Basic Film Session SOP Class.

Parameters:
rq request message
rsp response message, already initialized

void DVPSPrintSCP::filmBoxNDelete ( T_DIMSE_Message rq,
T_DIMSE_Message rsp 
) [private]

implements the N-DELETE operation for the Basic Film Box SOP Class.

Parameters:
rq request message
rsp response message, already initialized

void DVPSPrintSCP::presentationLUTNDelete ( T_DIMSE_Message rq,
T_DIMSE_Message rsp 
) [private]

implements the N-DELETE operation for the Presentation LUT SOP Class.

Parameters:
rq request message
rsp response message, already initialized

void DVPSPrintSCP::saveDimseLog (  )  [private]

stores the binary log of the DIMSE communication in a DICOM file in the log directory.

Called upon association release or abort.

static void DVPSPrintSCP::addLogEntry ( DcmSequenceOfItems seq,
const char *  text 
) [static, private]

adds an item to the given sequence containing the current date, time and the given text.

Parameters:
seq sequence to which the item is added
text text to be added, must not be NULL

void DVPSPrintSCP::dumpNMessage ( T_DIMSE_Message msg,
DcmItem dataset,
OFBool  outgoing 
) [private]

prints a dump of the given DIMSE message to the log stream.

Parameters:
msg DIMSE message to be dumped
dataset dataset to be dumped, may be NULL
outgoing flag defining whether we are dumping an outgoing or an incoming message.


The documentation for this class was generated from the following file:


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1