// StrSCU.h: interface for the LStoreScu class. #if !defined(__STRSCU_H__) #define __STRSCU_H__ // Compression types #define STR_DONT_RECOMPRESS 0 // Leave image compression (Don't re-compress) #define STR_J2K_LOSSY 1 // J2K Lossy #define STR_J2KLOSSLESS 2 // J2K Lossless #define STR_JPEG_LOSSY 3 // JPEG Lossy #define STR_JPEG_LOSSLESS 4 // JPEG Lossless // Status #define STR_CONNECT_FAILED 1 // Connect operation failed #define STR_CONNECT_SUCCEEDED 2 // Connect operation succeeded #define STR_SEND_ASSOCIATION_REQUEST 3 // Sending assocaition request #define STR_RECEIVE_ASSOCIATE_ACCEPT 4 // Receiving association accept #define STR_RECEIVE_ASSOCIATE_REJECT 5 // Receiving association reject #define STR_ABSTRACT_SYNTAX_NOT_SUPPORTED 6 // Abstract Syntax not supported #define STR_SEND_CSTORE_REQUEST 7 // Sending C-STORE request #define STR_RECEIVE_CSTORE_RESPONSE 8 // Receiving C-STORE response #define STR_CONNECTION_CLOSED 9 // Closing connection #define STR_PROCESS_TERMINATED 10 // Storage has been terminated #define STR_SEND_RELEASE_REQUEST 11 // Sending release request #define STR_RECEIVE_RELEASE_RESPONSE 12 // Receiving release response #define STR_DICOM_ERROR 13 // General DICOM Error // The implementation Class #define IMPLEMENTATION_CLASS_UID "1.2.840.114257.1123456" // The implementation Version #define IMPLEMENTATION_VERSION_NAME "1" typedef struct CURFILE { L_CHAR szFilename[MAX_PATH]; CURFILE* pNextFile; } CURFILE, * pCURFILE; class LStoreScu : public LDicomNet { public: LStoreScu (L_CHAR* pszPath = NULL, L_UINT32 uMode = DICOM_SECURE_NONE); ~LStoreScu(); L_INT DoStore(L_CHAR* pszServerName, L_CHAR* pszClientName, L_CHAR* pszServerIP, L_UINT uCompression, L_UINT nServerPort = 104); virtual L_VOID OnStatus(L_UINT uStatus, L_INT nErrorCode); virtual L_VOID OnProgressFiles(L_CHAR* pszFilename); L_INT AddFile(L_CHAR* pszFilename); L_VOID RemoveAllFiles(); L_VOID TerminateStorage(); private: L_CHAR* m_pszClientName; L_CHAR* m_pszServerName; L_UINT m_uCompression; L_CHAR m_szStorageClass[128]; L_CHAR m_szStorageInstance[128]; LDicomDS m_DicomDS; pCURFILE m_pFiles; pCURFILE m_pPosFile; L_VOID CloseConnection(); L_VOID OnConnect(L_INT nError); L_VOID OnReceiveAssociateAccept(LDicomAssociate *pPDU); L_VOID OnReceiveAssociateReject(L_UCHAR nResult, L_UCHAR nSource, L_UCHAR nReason); L_VOID OnReceiveReleaseResponse(); L_VOID OnReceiveCStoreResponse(L_UCHAR nPresentationID, L_UINT16 nMessageID, L_CHAR *pszClass, L_CHAR *pszInstance, L_UINT16 nStatus); L_VOID BuildAssociation(); }; #endif // #if !defined(__STRSCU_H__)