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 setLog (OFConsole *stream, OFBool verbMode, OFBool dbgMode, OFBool dmpMode)
 sets a new log stream and mode.
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
OFConsolelogstream
 output stream for error messages, never NULL
OFBool verboseMode
 flag indicating whether we're operating in verbose mode
OFBool debugMode
 flag indicating whether we're operating in debug mode
OFBool dumpMode
 flag indicating whether we're operating in DIMSE dump mode


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 56 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

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.

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.

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::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::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::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::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::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::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::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)

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::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.

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::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

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)

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::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::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::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)

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.

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.

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.

void DVPSPrintSCP::setLog OFConsole stream,
OFBool  verbMode,
OFBool  dbgMode,
OFBool  dmpMode
 

sets a new log stream and mode.

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

Parameters:
stream new log stream, NULL for default logstream
verbMode verbose mode flag
dbgMode debug mode flag
dmpMode DIMSE dump mode flag


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


Generated on 20 Dec 2005 for OFFIS DCMTK Version 3.5.4 by Doxygen 1.4.5