|
| DcmStorageSCU () |
| default constructor
|
|
virtual | ~DcmStorageSCU () |
| destructor
|
|
virtual void | clear () |
| clear the internal member variables
|
|
unsigned long | getAssociationCounter () const |
| get value of the association counter. More...
|
|
size_t | getNumberOfSOPInstances () const |
| get number of SOP instances stored in the transfer list More...
|
|
size_t | getNumberOfSOPInstancesToBeSent () const |
| get number of SOP instances that are to be sent (i.e. that are not yet sent). More...
|
|
E_DecompressionMode | getDecompressionMode () const |
| get mode that specifies whether or not compressed datasets are decompressed if needed, i.e. whether the transfer syntax of the dataset is changed for network transmission. More...
|
|
OFBool | getHaltOnInvalidFileMode () const |
| get mode that specifies whether to halt if an invalid file is encountered during batch processing (e.g. when adding SOP instances from a DICOMDIR) or whether to continue with the next SOP instance. More...
|
|
OFBool | getHaltOnUnsuccessfulStoreMode () const |
| get mode that specifies whether to halt if unsuccessful store encountered or whether to continue with the next SOP instance. More...
|
|
OFBool | getAllowIllegalProposalMode () const |
| get mode that specifies whether to propose presentation contexts that do not contain the default transfer syntax although it is needed, which might result in a violation of the DICOM standard. More...
|
|
OFBool | getReadFromDICOMDIRMode () const |
| get mode that specifies whether to read information on SOP instances to be sent from the DICOMDIR files that are added to the transfer list. More...
|
|
OFBool | getMOVEOriginatorInfo (OFString &aeTitle, Uint16 &messageID) const |
| get C-MOVE originator information (if set) More...
|
|
void | setDecompressionMode (const E_DecompressionMode decompressionMode) |
| set mode that specifies whether or not compressed datasets are decompressed if needed, i.e. whether the transfer syntax of the dataset is changed for network transmission. More...
|
|
void | setHaltOnInvalidFileMode (const OFBool haltMode) |
| set mode that specifies whether to halt if an invalid file is encountered during batch processing (e.g. when adding SOP instances from a DICOMDIR) or whether to continue with the next SOP instance. More...
|
|
void | setHaltOnUnsuccessfulStoreMode (const OFBool haltMode) |
| set mode that specifies whether to halt if unsuccessful store encountered or whether to continue with the next SOP instance. More...
|
|
void | setAllowIllegalProposalMode (const OFBool allowMode) |
| set mode that specifies whether to propose presentation contexts that do not contain the default transfer syntax, although it is needed, which might result in a violation of the DICOM standard. More...
|
|
void | setReadFromDICOMDIRMode (const OFBool readMode) |
| set mode that specifies whether to read information on SOP instances to be sent from the DICOMDIR files that are added to the transfer list. More...
|
|
void | setMOVEOriginatorInfo (const OFString &aeTitle="", const Uint16 messageID=0) |
| set C-MOVE originator information. More...
|
|
void | resetSentStatus (const OFBool sameAssociation=OFFalse) |
| reset the sent status for all SOP instances in the transfer list. More...
|
|
void | removeAllSOPInstances () |
| remove all SOP instances from the transfer list. More...
|
|
OFCondition | removeSOPInstance (const OFString &sopClassUID, const OFString &sopInstanceUID, const OFBool allOccurrences=OFTrue) |
| remove a particular SOP instance from the transfer list. More...
|
|
OFCondition | addDicomFile (const OFFilename &filename, const E_FileReadMode readMode=ERM_fileOnly, const OFBool checkValues=OFTrue) |
| add a SOP instance stored as a DICOM file or a number of SOP instances referenced from a DICOMDIR to the list of instances to be transferred. More...
|
|
OFCondition | addDataset (DcmDataset *dataset, const E_TransferSyntax datasetXfer=EXS_Unknown, const E_HandlingMode handlingMode=HM_compactAfterSend, const OFBool checkValues=OFTrue) |
| add a SOP instance from a given DICOM dataset to the list of instances to be transferred. More...
|
|
OFCondition | addPresentationContexts () |
| add presentation contexts for all SOP instances in the transfer list, which were not yet sent (either successfully or unsuccessfully). More...
|
|
virtual OFCondition | negotiateAssociation () |
| negotiate association by using presentation contexts and parameters as defined by earlier method calls. More...
|
|
OFCondition | sendSOPInstances () |
| send SOP instances to be transferred to the specified peer. More...
|
|
void | getStatusSummary (OFString &summary) const |
| get some status information on the overall sending process. More...
|
|
OFCondition | createReportFile (const OFString &filename) const |
| create a text file with a detailed report on the transfer of DICOM SOP instances. 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...
|
|
virtual OFCondition | initNetwork () |
| Initialize network, i.e. prepare 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 | handleSessionResponseDefault (const Uint16 dimseStatus, const OFString &message, OFBool &waitForNextResponse) |
| Function handling a single C-GET, C-FIND or C-MOVE Response, used by handleCGETResponse(), handleFINDResponse() and handleMOVEResponse(). More...
|
|
virtual void | closeAssociation (const DcmCloseAssociationType closeType) |
| Closes the association created by this SCU. 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 | addDicomFilesFromDICOMDIR (const OFFilename &filename, const E_FileReadMode readMode, const OFBool checkValues) |
| add SOP instances referenced from a given DICOMDIR to the list of instances to be transferred. More...
|
|
virtual OFCondition | checkSOPInstance (const OFString &sopClassUID, const OFString &sopInstanceUID, const OFString &transferSyntaxUID, const OFBool checkValues) |
| check given SOP Class UID, SOP Instance UID and Transfer Syntax UID for validity and conformance to the DICOM standard. More...
|
|
virtual void | notifySOPInstanceToBeSent (const TransferEntry &transferEntry) |
| this method is called each time before a SOP instance is sent to a peer. More...
|
|
virtual void | notifySOPInstanceSent (const TransferEntry &transferEntry) |
| this method is called each time after a SOP instance has been sent to a peer. More...
|
|
virtual OFBool | shouldStopAfterCurrentSOPInstance () |
| this method is called each time after a SOP instance is sent to a peer. More...
|
|
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...
|
|
Interface class for a Storage Service Class User (SCU).
This class supports C-STORE messages as an SCU. In a first step, the SOP instances to be sent are added to a transfer list. In a second step, the association negotiation takes place where the required presentation contexts are proposed, i.e. it is checked which SOP classes and transfer syntaxes are needed for transferring the SOP instances. Finally, the SOP instances are sent to the SCP (if possible).
- Note
- The current implementation does not sort the transfer list according to the SOP Class UID and Transfer Syntax UID of the SOP instances and, therefore, might propose more presentation contexts than required for the transfer of all SOP instances. A simple optimization that is performed internally is to check whether the current SOP instance can be sent using a presentation context that has previously been added for another SOP instance (of the same kind). This approach also makes sure that studies and series are not mixed up, assuming that they have been added to the transfer list in the "correct" order.
- Another limitation of the current implementation is the handling of the "Default
Transfer Syntax" in case of compression. According to the DICOM standard, the default transfer syntax for "Lossless JPEG Compression", "Lossy JPEG Compression" and so on has to be proposed in at least one presentation context for the particular SOP class. This is not (yet) implemented since the re-encoding of compressed datasets is not supported. Nevertheless, depending on the options used, the default transfer syntax for the uncompressed case is always proposed (if possible).