|
DCMTK Version 3.7.1
OFFIS DICOM Toolkit
|
This class encapsulates data structures and operations for basic worklist management service class providers. More...
Public Member Functions | |
| WlmActivityManager (WlmDataSource *dataSourcev, DcmTransportLayer *transportLayerv, OFCmdUnsignedInt opt_portv, OFBool opt_refuseAssociationv, OFBool opt_rejectWithoutImplementationUIDv, OFCmdUnsignedInt opt_sleepBeforeFindReqv, OFCmdUnsignedInt opt_sleepAfterFindv, OFCmdUnsignedInt opt_sleepDuringFindv, OFCmdUnsignedInt opt_maxPDUv, E_TransferSyntax opt_networkTransferSyntaxv, OFBool opt_failInvalidQueryv, OFBool opt_singleProcessv, int opt_maxAssociationsv, T_DIMSE_BlockingMode opt_blockModev, int opt_dimse_timeoutv, int opt_acse_timeoutv, OFBool opt_forkedChildv=OFFalse, int argcv=0, char *argvv[]=NULL) | |
| constructor. | |
| virtual | ~WlmActivityManager () |
| destructor | |
| OFCondition | StartProvidingService () |
| Starts providing the implemented service for calling SCUs. | |
| OFBool | setRequestFilePath (const OFString &path="", const OFString &format="#t.dump") |
| Set directory to store request files to. | |
| virtual void | SetConnectionTimeout (int seconds) |
| Set connection timeout in seconds. | |
| virtual void | RequestStop () |
| Request stopping the service, i.e. | |
Protected Member Functions | |
| OFCondition | WaitForAssociation (T_ASC_Network *net) |
| This function takes care of receiving, negotiating and accepting/refusing an association request. | |
| void | CleanChildren () |
| This function takes care of removing items referring to (terminated) subprocess from the table which stores all subprocess information. | |
| OFCondition | NegotiateAssociation (T_ASC_Association *assoc) |
| This function negotiates a presentation context which will be used by this application and the other DICOM application that requests an association. | |
| void | AddProcessToTable (int pid, T_ASC_Association *assoc) |
| This function adds a process to the table that stores process information. | |
| void | RemoveProcessFromTable (int pid) |
| This function removes one particular item from the table which stores all subprocess information. | |
| void | RefuseAssociation (T_ASC_Association **assoc, WlmRefuseReasonType reason) |
| This function takes care of refusing an association request. | |
| void | HandleAssociation (T_ASC_Association *assoc) |
| This function takes care of handling the other DICOM application's request. | |
| OFCondition | ReceiveAndHandleCommands (T_ASC_Association *assoc) |
| This function takes care of handling the other DICOM application's request. | |
| OFCondition | HandleEchoSCP (T_ASC_Association *assoc, T_DIMSE_C_EchoRQ *req, T_ASC_PresentationContextID presId) |
| Having received a DIMSE C-ECHO-RQ message, this function takes care of sending a DIMSE C-ECHO-RSP message over the network connection. | |
| OFCondition | HandleFindSCP (T_ASC_Association *assoc, T_DIMSE_C_FindRQ *request, T_ASC_PresentationContextID presID) |
| This function processes a DIMSE C-FIND-RQ command that was received over the network connection. | |
| WlmActivityManager (const WlmActivityManager &Src) | |
| Protected undefined copy-constructor. | |
| WlmActivityManager & | operator= (const WlmActivityManager &Src) |
| Protected undefined operator=. | |
Protected Attributes | |
| WlmDataSource * | dataSource |
| data source connection object | |
| DcmTransportLayer * | transportLayer |
| TLS layer responsible for all encryption/authentication stuff. | |
| OFCmdUnsignedInt | opt_port |
| port on which the application is listening | |
| OFBool | opt_refuseAssociation |
| indicates if the application shall refuse any association | |
| OFBool | opt_rejectWithoutImplementationUID |
| indicates if the application shall reject associations without implementation class UIDs | |
| OFCmdUnsignedInt | opt_sleepBeforeFindReq |
| indicates how many seconds the application is supposed to sleep before handling a find request | |
| OFCmdUnsignedInt | opt_sleepAfterFind |
| indicates how long the application shall sleep after a find | |
| OFCmdUnsignedInt | opt_sleepDuringFind |
| indicates how long the application shall sleep during a find | |
| OFCmdUnsignedInt | opt_maxPDU |
| max PDU size | |
| E_TransferSyntax | opt_networkTransferSyntax |
| preferred network transfer syntax | |
| OFBool | opt_failInvalidQuery |
| indicates if the application shall fail on an invalid C-Find RQ message | |
| OFBool | opt_singleProcess |
| indicates if the application is run in single process mode or not | |
| OFBool | opt_forkedChild |
| indicates, that this process was spawn as child from a parent process needed for multiprocess mode on WIN32 | |
| int | cmd_argc |
| number of arguments in commandline, needed for multiprocess mode on WIN32 | |
| char ** | cmd_argv |
| complete command line, needed for multiprocess mode on WIN32 | |
| int | opt_maxAssociations |
| maximum number of association for non-single process mode | |
| T_DIMSE_BlockingMode | opt_blockMode |
| blocking mode for DIMSE operations | |
| int | opt_dimse_timeout |
| timeout for DIMSE operations | |
| int | opt_acse_timeout |
| timeout for ACSE operations | |
| char ** | supportedAbstractSyntaxes |
| array of supported abstract syntaxes | |
| int | numberOfSupportedAbstractSyntaxes |
| number of array fields | |
| OFList< WlmProcessSlotType * > | processTable |
| table of processes for non-single process mode | |
| OFString | opt_requestFilePath |
| the directory where to store request files to | |
| OFString | opt_requestFileFormat |
| the format used for the request file names. | |
| OFBool | stopRequested |
| Denotes whether a stop of the application was requested. | |
| OFMutex | stopRequestedMutex |
| Mutex for synchronizing access to the stopRequested variable. | |
| int | connectionTimeout |
| The connection timeout in seconds. | |
This class encapsulates data structures and operations for basic worklist management service class providers.
|
protected |
Protected undefined copy-constructor.
Shall never be called.
| Src | Source object. |
References WlmActivityManager().
Referenced by WlmActivityManager(), and operator=().
| WlmActivityManager::WlmActivityManager | ( | WlmDataSource * | dataSourcev, |
| DcmTransportLayer * | transportLayerv, | ||
| OFCmdUnsignedInt | opt_portv, | ||
| OFBool | opt_refuseAssociationv, | ||
| OFBool | opt_rejectWithoutImplementationUIDv, | ||
| OFCmdUnsignedInt | opt_sleepBeforeFindReqv, | ||
| OFCmdUnsignedInt | opt_sleepAfterFindv, | ||
| OFCmdUnsignedInt | opt_sleepDuringFindv, | ||
| OFCmdUnsignedInt | opt_maxPDUv, | ||
| E_TransferSyntax | opt_networkTransferSyntaxv, | ||
| OFBool | opt_failInvalidQueryv, | ||
| OFBool | opt_singleProcessv, | ||
| int | opt_maxAssociationsv, | ||
| T_DIMSE_BlockingMode | opt_blockModev, | ||
| int | opt_dimse_timeoutv, | ||
| int | opt_acse_timeoutv, | ||
| OFBool | opt_forkedChildv = OFFalse, | ||
| int | argcv = 0, | ||
| char * | argvv[] = NULL ) |
constructor.
| dataSourcev | Pointer to the data source which shall be used. |
| opt_portv | The port on which the application is supposed to listen. |
| opt_refuseAssociationv | Specifies if an association shall always be refused by the SCP. |
| opt_rejectWithoutImplementationUIDv | Specifies if the application shall reject an association if no implementation class UID is provided by the calling SCU. |
| opt_sleepBeforeFindReqv | Specifies how many seconds the application is supposed to sleep before handling a C-FIND-Req. |
| opt_sleepAfterFindv | Specifies how many seconds the application is supposed to sleep after having handled a C-FIND-Rsp. |
| opt_sleepDuringFindv | Specifies how many seconds the application is supposed to sleep during the handling of a C-FIND-Rsp. |
| opt_maxPDUv | Maximum length of a PDU that can be received in bytes. |
| opt_networkTransferSyntaxv | Specifies the preferred network transfer syntaxes. |
| opt_failInvalidQueryv | Specifies if the application shall fail on an invalid query. |
| opt_singleProcessv | Specifies if the application shall run in a single process. |
| opt_maxAssociationsv | Specifies many concurrent associations the application shall be able to handle. |
| opt_blockModev | Specifies the blocking mode for DIMSE operations |
| opt_dimse_timeoutv | Specifies the timeout for DIMSE operations |
| opt_acse_timeoutv | Specifies the timeout for ACSE operations |
| opt_forkedChildv | Indicates, whether this process was "forked" from a parent process, default: false |
| argcv | Number of commandline arguments given |
| argvv | Complete command line |
|
protected |
This function adds a process to the table that stores process information.
| pid | the process id of the sub-process which was just started. |
| assoc | The association (network connection to another DICOM application). |
|
protected |
This function takes care of removing items referring to (terminated) subprocess from the table which stores all subprocess information.
Three different versions for three different platforms are implemented.
|
protected |
This function takes care of handling the other DICOM application's request.
After having accomplished all necessary steps, the association will be dropped and destroyed.
| assoc | The association (network connection to another DICOM application). |
|
protected |
Having received a DIMSE C-ECHO-RQ message, this function takes care of sending a DIMSE C-ECHO-RSP message over the network connection.
| assoc | The association (network connection to another DICOM application). |
| req | The DIMSE C-ECHO-RQ message that was received. |
| presId | The ID of the presentation context which was specified in the PDV which contained the DIMSE command. |
|
protected |
This function processes a DIMSE C-FIND-RQ command that was received over the network connection.
| assoc | The association (network connection to another DICOM application). |
| request | The DIMSE C-FIND-RQ message that was received. |
| presID | The ID of the presentation context which was specified in the PDV which contained the DIMSE command. |
|
protected |
This function negotiates a presentation context which will be used by this application and the other DICOM application that requests an association.
| assoc | The association (network connection to another DICOM application). |
|
protected |
Protected undefined operator=.
Shall never be called.
| Src | Source object. |
References WlmActivityManager().
|
protected |
This function takes care of handling the other DICOM application's request.
| assoc | The association (network connection to another DICOM application). |
|
protected |
This function takes care of refusing an association request.
| assoc | The association (network connection to another DICOM application). |
| reason | The reason why the association request will be refused. |
|
protected |
This function removes one particular item from the table which stores all subprocess information.
The item which shall be deleted will be identified by its process id.
| pid | process id. |
|
virtual |
Request stopping the service, i.e.
makes sure that StartProvidingService() returns after the current client connection has been handled (or the connection timeout has been reached, see SetConnectionTimeout()). This function is thread safe and can be called from a different thread than the one running StartProvidingService().
|
virtual |
Set connection timeout in seconds.
If this timeout is > 0, the application will stop waiting for a client connection after the specified time has elapsed and check whether a stop was requested (see RequestStop()). If the timeout is 0, the application will wait indefinitely for a client connection.
| seconds | The connection timeout in seconds. If set to 0, the application will wait indefinitely for a client connection. The default value is 60 seconds. |
| OFBool WlmActivityManager::setRequestFilePath | ( | const OFString & | path = "", |
| const OFString & | format = "#t.dump" ) |
Set directory to store request files to.
If set to empty path (default), request files are not stored.
| path | Path to directory where request files should be stored to. Must exist and be writable for worklist application. |
| format | The format used for the request file names. Several placeholders can be used by (denoted by #): #a: calling application entity title of the peer SCU #c: called application entity title (AE title of worklist SCP application) #i: process id of the worklist SCP application process handling the request #p: patient ID if present, otherwise empty string #t: timestamp in the format YYYYMMDDhhmmssffffff Default is #t.dump. |
| OFCondition WlmActivityManager::StartProvidingService | ( | ) |
Starts providing the implemented service for calling SCUs.
After having created an instance of this class, this function shall be called from main.
|
protected |
This function takes care of receiving, negotiating and accepting/refusing an association request.
Additionally, it handles the request the association requesting application transmits after a connection is established.
| net | Contains network parameters. |
|
protected |
The connection timeout in seconds.
If this timeout is > 0, the application will stop waiting for a client connection after the specified time has elapsed and check whether a stop was requested (see RequestStop()). If the timeout is 0, the application will wait indefinitely for a client connection. The default value is 60 seconds.
|
protected |
the format used for the request file names.
Several placeholders can be used by(denoted by #) : #a: calling application entity title of the peer SCU #c: called application entity title (AE title of worklist SCP application) #i process id of the worklist SCP application process handling the request #p: patient ID if present, otherwise empty string \ #t: timestamp in the format YYYYMMDDhhmmssffffff