DCMTK
Version 3.6.7
OFFIS DICOM Toolkit
|
This class encapsulates data structures and operations for basic worklist management service class providers. More...
Public Member Functions | |
WlmActivityManager (WlmDataSource *dataSourcev, 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. More... | |
~WlmActivityManager () | |
destructor | |
OFCondition | StartProvidingService () |
Starts providing the implemented service for calling SCUs. More... | |
OFBool | setRequestFilePath (const OFString &path="", const OFString &format="#t.dump") |
Set directory to store request files to. More... | |
Protected Member Functions | |
OFCondition | WaitForAssociation (T_ASC_Network *net) |
This function takes care of receiving, negotiating and accepting/refusing an association request. More... | |
void | CleanChildren () |
This function takes care of removing items referring to (terminated) subprocess from the table which stores all subprocess information. More... | |
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. More... | |
void | AddProcessToTable (int pid, T_ASC_Association *assoc) |
This function adds a process to the table that stores process information. More... | |
void | RemoveProcessFromTable (int pid) |
This function removes one particular item from the table which stores all subprocess information. More... | |
void | RefuseAssociation (T_ASC_Association **assoc, WlmRefuseReasonType reason) |
This function takes care of refusing an association request. More... | |
void | HandleAssociation (T_ASC_Association *assoc) |
This function takes care of handling the other DICOM application's request. More... | |
OFCondition | ReceiveAndHandleCommands (T_ASC_Association *assoc) |
This function takes care of handling the other DICOM application's request. More... | |
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. More... | |
OFCondition | HandleFindSCP (T_ASC_Association *assoc, T_DIMSE_C_FindRQ *request, T_ASC_PresentationContextID presID) |
This function processes a DIMSE C-FIND-RQ commmand that was received over the network connection. More... | |
WlmActivityManager (const WlmActivityManager &Src) | |
Protected undefined copy-constructor. More... | |
WlmActivityManager & | operator= (const WlmActivityManager &Src) |
Protected undefined operator=. More... | |
Protected Attributes | |
WlmDataSource * | dataSource |
data source connection object | |
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. More... | |
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. |
WlmActivityManager::WlmActivityManager | ( | WlmDataSource * | dataSourcev, |
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_forkedChild | 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 commmand 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. |
|
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. |
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 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