DCMTK Version 3.7.0 OFFIS DICOM Toolkit

Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
DVPSPrintSCP Class Reference

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

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

## Private Member Functions
DVPSPrintSCP & | operator= (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. More...
OFCondition | refuseAssociation (OFBool isBadContext)
| sends A-ASSOCIATION-RQ as the result of an unsuccessful association negotiation. More...
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. More...
OFCondition | handleNSet (T_DIMSE_Message &rq, T_ASC_PresentationContextID presID)
| handles any incoming N-SET-RQ message and sends back N-SET-RSP. More...
OFCondition | handleNAction (T_DIMSE_Message &rq, T_ASC_PresentationContextID presID)
| handles any incoming N-ACTION-RQ message and sends back N-ACTION-RSP. More...
OFCondition | handleNCreate (T_DIMSE_Message &rq, T_ASC_PresentationContextID presID)
| handles any incoming N-CREATE-RQ message and sends back N-CREATE-RSP. More...
OFCondition | handleNDelete (T_DIMSE_Message &rq, T_ASC_PresentationContextID presID)
| handles any incoming N-DELETE-RQ message and sends back N-DELETE-RSP. More...
OFCondition | handleCEcho (T_DIMSE_Message &rq, T_ASC_PresentationContextID presID)
| handles any incoming C-ECHO-RQ message and sends back C-ECHO-RSP. More...
void | printerNGet (T_DIMSE_Message &rq, T_DIMSE_Message &rsp, DcmDataset *&rspDataset)
| implements the N-GET operation for the Printer SOP Class. More...
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. More...
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. More...
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. More...
void | filmSessionNAction (T_DIMSE_Message &rq, T_DIMSE_Message &rsp)
| implements the N-ACTION operation for the Basic Film Session SOP Class. More...
void | filmBoxNAction (T_DIMSE_Message &rq, T_DIMSE_Message &rsp)
| implements the N-ACTION operation for the Basic Film Box SOP Class. More...
void | filmSessionNCreate (DcmDataset *rqDataset, T_DIMSE_Message &rsp, DcmDataset *&rspDataset)
| implements the N-CREATE operation for the Basic Film Session SOP Class. More...
void | filmBoxNCreate (DcmDataset *rqDataset, T_DIMSE_Message &rsp, DcmDataset *&rspDataset)
| implements the N-CREATE operation for the Basic Film Box SOP Class. More...
void | presentationLUTNCreate (DcmDataset *rqDataset, T_DIMSE_Message &rsp, DcmDataset *&rspDataset)
| implements the N-CREATE operation for the Presentation LUT SOP Class. More...
void | filmSessionNDelete (T_DIMSE_Message &rq, T_DIMSE_Message &rsp)
| implements the N-DELETE operation for the Basic Film Session SOP Class. More...
void | filmBoxNDelete (T_DIMSE_Message &rq, T_DIMSE_Message &rsp)
| implements the N-DELETE operation for the Basic Film Box SOP Class. More...
void | presentationLUTNDelete (T_DIMSE_Message &rq, T_DIMSE_Message &rsp)
| implements the N-DELETE operation for the Presentation LUT SOP Class. More...
void | saveDimseLog ()
| stores the binary log of the DIMSE communication in a DICOM file in the log directory. More...
void | dumpNMessage (T_DIMSE_Message &msg, DcmItem *dataset, OFBool outgoing)
| prints a dump of the given DIMSE message to the log stream. More...

## 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. More...

## Private Attributes
T_DIMSE_BlockingMode | blockMode
| blocking mode for receive
int | timeout
| timeout for receive
DVPSFilmSession * | filmSession
| basic film session instance
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
DcmSequenceOfItems * | logSequence
| DIMSE communication logged in this object if present.
DcmSequenceOfItems * | acseSequence
| 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.

## Constructor & Destructor Documentation

## ◆ DVPSPrintSCP()

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

## ◆ addLogEntry()

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

## ◆ dumpNMessage()

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.

## ◆ errorCond()

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.

## ◆ filmBoxNAction()

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

## ◆ filmBoxNCreate()

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)

## ◆ filmBoxNDelete()

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

## ◆ filmBoxNSet()

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)

## ◆ filmSessionNAction()

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

## ◆ filmSessionNCreate()

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)

## ◆ filmSessionNDelete()

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

## ◆ filmSessionNSet()

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)

## ◆ handleCEcho()

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

## ◆ handleClient()

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.

## ◆ handleNAction()

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

## ◆ handleNCreate()

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

## ◆ handleNDelete()

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

## ◆ handleNGet()

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

## ◆ handleNSet()

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

## ◆ imageBoxNSet()

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)

## ◆ negotiateAssociation()

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.

## ◆ presentationLUTNCreate()

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)

## ◆ presentationLUTNDelete()

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

## ◆ printerNGet()

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)

## ◆ refuseAssociation()

OFCondition DVPSPrintSCP::refuseAssociation | ( | OFBool | isBadContext | ) |
| private

sends A-ASSOCIATION-RQ as the result of an unsuccessful 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.

## ◆ saveDimseLog()

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.

## ◆ setDimseLogPath()

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.

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

- dcmpstat/include/dcmtk/dcmpstat/dvpsprt.h

Generated on Mon Dec 15 2025 for DCMTK Version 3.7.0 by Doxygen 1.9.1