Base class for implementing DICOM TLS-enabled Service Class User functionality.
More...
|
| DcmTLSSCU () |
| Constructor, just initializes internal class members.
|
|
| DcmTLSSCU (const OFString &peerHost, const OFString &peerAETitle, const Uint16 portNum) |
| Initialize SCU with connection peer information. More...
|
|
virtual | ~DcmTLSSCU () |
| Virtual destructor.
|
|
virtual OFCondition | initNetwork () |
| Initialize network, i.e. prepare for association negotiation. More...
|
|
virtual OFCondition | negotiateAssociation () |
| Negotiates association by using presentation contexts and parameters as defined by earlier function calls. More...
|
|
virtual void | closeAssociation (const DcmCloseAssociationType closeType) |
| Closes the association of this SCU. More...
|
|
virtual void | addTrustedCertFile (const OFString &str) |
| Add file with trusted certificate (used if authentication is enabled) More...
|
|
virtual void | addTrustedCertDir (const OFString &certDir) |
| Add directory to list of directories containing trusted certificates (used if authentication is enabled) More...
|
|
virtual void | enableAuthentication (const OFString &privateKey, const OFString &certFile, const char *passphrase=NULL, const DcmKeyFileFormat privKeyFormat=DCF_Filetype_PEM, const DcmKeyFileFormat certFormat=DCF_Filetype_PEM) |
| Turn on authentication for TLS. More...
|
|
virtual void | disableAuthentication () |
| Disables authentication. More...
|
|
virtual DcmTransportLayerStatus | setTLSProfile (DcmTLSSecurityProfile profile) |
| replace the current list of ciphersuites by the list of ciphersuites for the given profile. More...
|
|
virtual DcmTransportLayerStatus | addCipherSuite (const OFString &suite) |
| adds a ciphersuite to the list of ciphersuites for TLS negotiation. More...
|
|
virtual void | setReadSeedFile (const OFString &seedFile) |
| Set file to be used as random seed for initializing the Pseudo Random Number Generator (PRNG) More...
|
|
virtual void | setWriteSeedFile (const OFString &seedFile) |
| Set file to be use to store the updated random seed to store the updated random seed from the Pseudo Random Number Generator (PRNG). More...
|
|
virtual void | setPeerCertVerification (const DcmCertificateVerification cert) |
| Set whether peer's certificate must be there, only is checked if there or is ignored. More...
|
|
virtual void | setDHParam (const OFString &dhParam) |
| Set Diffie-Hellman parameters from file. More...
|
|
virtual OFBool | getAuthenticationParams (OFString &privKeyFile, OFString &certFile, const char *&passphrase, int &privKeyFormat, int &certFormat) const |
| Returns OFTrue if authentication is enabled. More...
|
|
virtual void | getTrustedCertFiles (OFList< OFString > &files) const |
| Get files considered for trusted certificates. More...
|
|
virtual void | getTrustedCertDirs (OFList< OFString > &trustedDirs) const |
| Get directories containing considered to contain trusted certificates. More...
|
|
virtual OFString | getReadSeedFile () const |
| Get random seed file used for initializing Pseudo Random Number Generator (PRNG) More...
|
|
virtual OFString | getWriteSeedFile () const |
| Get random seed file the PRNG should use to store back updated random seed information. More...
|
|
| DcmSCU () |
| Constructor, just initializes internal class members.
|
|
virtual | ~DcmSCU () |
| Virtual destructor.
|
|
OFCondition | addPresentationContext (const OFString &abstractSyntax, const OFList< OFString > &xferSyntaxes, const T_ASC_SC_ROLE role=ASC_SC_ROLE_DEFAULT) |
| Add presentation context to be used for association negotiation. More...
|
|
T_ASC_PresentationContextID | findPresentationContextID (const OFString &abstractSyntax, const OFString &transferSyntax, const T_ASC_SC_ROLE requestorRole=ASC_SC_ROLE_DEFAULT) |
| After negotiation association, this call returns the first usable presentation context given the desired abstract syntax and transfer syntax. More...
|
|
T_ASC_PresentationContextID | findAnyPresentationContextID (const OFString &abstractSyntax, const OFString &transferSyntax) |
| After a successful association negotiation, this function is called to return the presentation context ID that best matches the desired abstract syntax and transfer syntax (TS). More...
|
|
virtual OFCondition | sendECHORequest (const T_ASC_PresentationContextID presID) |
| This function sends a C-ECHO command via network to another DICOM application. More...
|
|
virtual OFCondition | sendSTORERequest (const T_ASC_PresentationContextID presID, const OFFilename &dicomFile, DcmDataset *dataset, Uint16 &rspStatusCode, const OFString &moveOriginatorAETitle="", const Uint16 moveOriginatorMsgID=0) |
| This function sends a C-STORE request on the currently opened association and receives the corresponding response then. More...
|
|
virtual OFCondition | sendMOVERequest (const T_ASC_PresentationContextID presID, const OFString &moveDestinationAETitle, DcmDataset *dataset, OFList< RetrieveResponse *> *responses) |
| Sends a C-MOVE Request on given presentation context and receives list of responses. More...
|
|
virtual OFCondition | handleMOVEResponse (const T_ASC_PresentationContextID presID, RetrieveResponse *response, OFBool &waitForNextResponse) |
| This is the standard handler for C-MOVE message responses: It just adds up all responses it receives and prints a DEBUG message. More...
|
|
virtual OFCondition | sendCGETRequest (const T_ASC_PresentationContextID presID, DcmDataset *dataset, OFList< RetrieveResponse *> *responses) |
| Sends a C-GET Request on given presentation context and receives list of responses. More...
|
|
virtual OFCondition | handleCGETSession (const T_ASC_PresentationContextID presID, DcmDataset *dataset, OFList< RetrieveResponse *> *responses) |
| Does the logic for switching between C-GET Response and C-STORE Requests. More...
|
|
virtual OFCondition | handleCGETResponse (const T_ASC_PresentationContextID presID, RetrieveResponse *response, OFBool &continueCGETSession) |
| Function handling a single C-GET Response. More...
|
|
virtual OFCondition | handleSTORERequest (const T_ASC_PresentationContextID presID, DcmDataset *incomingObject, OFBool &continueCGETSession, Uint16 &cStoreReturnStatus) |
| Function handling a single C-STORE Request. More...
|
|
virtual OFCondition | handleSTORERequestFile (T_ASC_PresentationContextID *presID, const OFString &filename, T_DIMSE_C_StoreRQ *request) |
| Function handling a single C-STORE Request. More...
|
|
virtual OFCondition | sendFINDRequest (const T_ASC_PresentationContextID presID, DcmDataset *queryKeys, OFList< QRResponse *> *responses) |
| Sends a C-FIND Request on given presentation context and receives list of responses. More...
|
|
virtual OFCondition | handleFINDResponse (const T_ASC_PresentationContextID presID, QRResponse *response, OFBool &waitForNextResponse) |
| This is the standard handler for C-FIND message responses: It just adds up all responses it receives and prints a DEBUG message. More...
|
|
virtual OFCondition | sendCANCELRequest (const T_ASC_PresentationContextID presID) |
| Send C-CANCEL and, therefore, ends the C-FIND -GET or -MOVE session, i.e. no further responses will be handled. More...
|
|
virtual OFCondition | sendACTIONRequest (const T_ASC_PresentationContextID presID, const OFString &sopInstanceUID, const Uint16 actionTypeID, DcmDataset *reqDataset, Uint16 &rspStatusCode) |
| This function sends a N-ACTION request on the currently opened association and receives the corresponding response then. More...
|
|
virtual OFCondition | sendEVENTREPORTRequest (const T_ASC_PresentationContextID presID, const OFString &sopInstanceUID, const Uint16 eventTypeID, DcmDataset *reqDataset, Uint16 &rspStatusCode) |
| This function sends N-EVENT-REPORT request and receives the corresponding response. More...
|
|
virtual OFCondition | handleEVENTREPORTRequest (DcmDataset *&reqDataset, Uint16 &eventTypeID, const int timeout=0) |
| Receives N-EVENT-REPORT request on the currently opened association and sends a corresponding response. More...
|
|
virtual OFCondition | releaseAssociation () |
| Releases the current association by sending an A-RELEASE request to the SCP. More...
|
|
virtual OFCondition | abortAssociation () |
| Aborts the current association by sending an A-ABORT request to the SCP. More...
|
|
void | setMaxReceivePDULength (const Uint32 maxRecPDU) |
| Set maximum PDU length (to be received by SCU) More...
|
|
void | setDIMSEBlockingMode (const T_DIMSE_BlockingMode blockingMode) |
| Set whether to send in DIMSE blocking or non-blocking mode. More...
|
|
void | setAETitle (const OFString &myAETtitle) |
| Set SCU's AE title to be used in association negotiation. More...
|
|
void | setPeerHostName (const OFString &peerHostName) |
| Set SCP's host (host name or IP address) to talk to in association negotiation. More...
|
|
void | setPeerAETitle (const OFString &peerAETitle) |
| Set SCP's AE title to talk to in association negotiation. More...
|
|
void | setPeerPort (const Uint16 peerPort) |
| Set SCP's port number to connect to for association negotiation. More...
|
|
void | setDIMSETimeout (const Uint32 dimseTimeout) |
| Set timeout for receiving DIMSE messages. More...
|
|
void | setACSETimeout (const Uint32 acseTimeout) |
| Set timeout for receiving ACSE messages. More...
|
|
void | setConnectionTimeout (const Sint32 connectionTimeout) |
| Set global timeout for connecting to the SCP. More...
|
|
void | setAssocConfigFileAndProfile (const OFString &filename, const OFString &profile) |
| Set an association configuration file and profile to be used. More...
|
|
void | setStorageDir (const OFString &storeDir) |
| Set the directory that should be used by the standard C-GET handler to store objects that come in with the corresponding C-STORE requests. More...
|
|
void | setStorageMode (const DcmStorageMode storageMode) |
| Set the storage mode to be used. More...
|
|
void | setVerbosePCMode (const OFBool mode) |
| Set whether to show presentation contexts in verbose or debug mode. More...
|
|
void | setDatasetConversionMode (const OFBool mode) |
| Set the mode that specifies whether the transfer syntax of the dataset can be changed for network transmission. More...
|
|
void | setProgressNotificationMode (const OFBool mode) |
| Set the mode that specifies whether the progress of sending and receiving DIMSE messages is notified by calling notifySENDProgress() and notifyRECEIVEProgress(), respectively. More...
|
|
OFBool | isConnected () const |
| Get current connection status. More...
|
|
Uint32 | getMaxReceivePDULength () const |
| Returns maximum PDU length configured to be received by SCU. More...
|
|
T_DIMSE_BlockingMode | getDIMSEBlockingMode () const |
| Returns whether DIMSE messaging is configured to be blocking or unblocking. More...
|
|
const OFString & | getAETitle () const |
| Returns the SCU's own configured AE title. More...
|
|
const OFString & | getPeerHostName () const |
| Returns the SCP's (peer's) host configured. More...
|
|
const OFString & | getPeerAETitle () const |
| Returns the SCP's (peer's) AE title configured. More...
|
|
Uint16 | getPeerPort () const |
| Returns the SCP's (peer's) TCP/IP port configured. More...
|
|
Uint32 | getDIMSETimeout () const |
| Returns DIMSE timeout in seconds for receiving data. More...
|
|
Uint32 | getACSETimeout () const |
| Returns ACSE timeout in seconds used by timer for message timeouts during association negotiation. More...
|
|
Sint32 | getConnectionTimeout () const |
| Returns the timeout configured defining how long SCU will wait for the SCP when requesting an association. More...
|
|
OFString | getStorageDir () const |
| Returns the storage directory used for storing objects received with C-STORE requests in the context of C-GET sessions. More...
|
|
DcmStorageMode | getStorageMode () const |
| Returns the storage mode enabled. More...
|
|
OFBool | getVerbosePCMode () const |
| Returns the verbose presentation context mode configured specifying whether details on the presentation contexts (negotiated during association setup) should be shown in verbose or debug mode. More...
|
|
OFBool | getDatasetConversionMode () const |
| Returns the mode that specifies whether the transfer syntax of the dataset can be changed for network transmission. More...
|
|
OFBool | getProgressNotificationMode () const |
| Returns the mode that specifies whether the progress of sending and receiving DIMSE messages is notified by calling notifySENDProgress() and notifyRECEIVEProgress(), respectively. More...
|
|
OFBool | getTLSEnabled () const |
| Returns whether SCU is configured to create a TLS connection with the SCP. More...
|
|
void | freeNetwork () |
| Deletes internal networking structures from memory.
|
|
|
OFCondition | sendDIMSEMessage (const T_ASC_PresentationContextID presID, T_DIMSE_Message *msg, DcmDataset *dataObject, DcmDataset **commandSet=NULL) |
| Sends a DIMSE command and possibly also a dataset from a data object via network to another DICOM application. More...
|
|
OFCondition | getDatasetInfo (DcmDataset *dataset, OFString &sopClassUID, OFString &sopInstanceUID, E_TransferSyntax &transferSyntax) |
| Returns SOP Class UID, SOP Instance UID and original transfer syntax for a given dataset. More...
|
|
OFCondition | useSecureConnection (DcmTransportLayer *tlayer) |
| Tells DcmSCU to use a secure TLS connection described by the given TLS layer. More...
|
|
OFCondition | receiveDIMSECommand (T_ASC_PresentationContextID *presID, T_DIMSE_Message *msg, DcmDataset **statusDetail, DcmDataset **commandSet=NULL, const Uint32 timeout=0) |
| Receive DIMSE command (excluding dataset!) over the currently open association. More...
|
|
OFCondition | receiveDIMSEDataset (T_ASC_PresentationContextID *presID, DcmDataset **dataObject) |
| Receives one dataset (of instance data) via network from another DICOM application. More...
|
|
void | clearPresentationContexts () |
| clear list of presentation contexts. More...
|
|
void | findPresentationContext (const T_ASC_PresentationContextID presID, OFString &abstractSyntax, OFString &transferSyntax) |
| After negotiation association, this call returns the presentation context belonging to the given presentation context ID. More...
|
|
virtual void | notifyInstanceStored (const OFString &filename, const OFString &sopClassUID, const OFString &sopInstanceUID) const |
| This function is called if an object was received due to a C-GET request and can be overwritten by a user in order to be informed about such an event. More...
|
|
virtual void | notifySENDProgress (const unsigned long byteCount) |
| This function is called while sending DIMSE messages, i.e. on each PDV of a dataset. More...
|
|
virtual void | notifyRECEIVEProgress (const unsigned long byteCount) |
| This function is called while receiving DIMSE messages, i.e. on each PDV of a dataset. More...
|
|
virtual Uint16 | checkEVENTREPORTRequest (T_DIMSE_N_EventReportRQ &request, DcmDataset *reqDataset) |
| Check given N-EVENT-REPORT request and dataset for validity. More...
|
|
virtual OFCondition | sendSTOREResponse (T_ASC_PresentationContextID presID, Uint16 status, const T_DIMSE_C_StoreRQ &request) |
| Sends back a C-STORE response on the given presentation context, with the designated status, fitting the corresponding C-STORE request. More...
|
|
virtual OFString | createStorageFilename (DcmDataset *dataset) |
| Helper function that generates a storage filename by extracting SOP Class and SOP Instance UID from a dataset and combining that with the configured storage directory. More...
|
|
virtual OFCondition | ignoreSTORERequest (T_ASC_PresentationContextID presID, const T_DIMSE_C_StoreRQ &request) |
| Receives a DICOM dataset on a given presentation context ID but does not store it in memory or disk, thus ignoring it. More...
|
|
static void | callbackSENDProgress (void *callbackContext, unsigned long byteCount) |
| Callback function used for sending DIMSE messages. More...
|
|
static void | callbackRECEIVEProgress (void *callbackContext, unsigned long byteCount) |
| Callback function used for receiving DIMSE messages. More...
|
|
Base class for implementing DICOM TLS-enabled Service Class User functionality.
This class is derived from the general DcmSCU class and just adds the corresponding TLS capabilities.
- Warning
- This class is EXPERIMENTAL. Be careful to use it in production environment. API changes in the future are possible and likely to happen.