#ifndef STHREADIMAGESAVE_H #define STHREADIMAGESAVE_H #include #include #include #include #include "qsthread.h" #include "common.h" #include "sdcmworklist.h" #ifdef _SYOLOV5 #include "syolov5.h" #endif #include #include #include "sdatabase.h" using namespace SUTIL; #include "scurl.h" class SThreadImageSave : public QSThread { Q_OBJECT public: explicit SThreadImageSave(); virtual ~SThreadImageSave(); virtual void InnerRun(); virtual void Init(); virtual void OpenDatabase(); CAPTURE_IMAGE* SetImageCapture(uint8_t* pImage, int nWidth, int nHeight); CAPTURE_IMAGE* SetVideoCapture(uint8_t* pImage, int nWidth, int nHeight); void SendImage(vector listFile); void LoadHistoryImage(); //vector* GetWorklistData(); vector* GetWorklistDump(); void MissCapture(); void ClearMissCapture(); void SaveCaptureImage(); void SaveCaptureImageToFile(); void ExitCapture(); void StopLoadImage(); void AddCaptureSaveToFile(CAPTURE_IMAGE* pCaptureImage); void ClearCaptureSaveToFile(); void SetImageDetect(uint8_t* pImage, int nWidth, int nHeight); void ExportUSB(); void ExportUSB_mp4(); void ExportNetworkDirectory(); void CleanStorage(); void CheckAndCreateDir(QString strDir); void CancelLoad(); void LoadAcquisitionFromHistory(); QString GetFindImageWithMovieFile(const QString strMovieFile); void SetListImageWithStudy(const QList list); void SetListImageWithStudyASC(const QList list); void SetSchduledDeleteStudyDateList(const QStringList& list); void USBBackup(); bool IsExecuteBackup(); void SetExecuteBackup(bool bBackup); void SetExecuteDetect(bool bDetect); void MountUSBBackup(); void UmountUSBBackup(); void USBBackupInner(); signals: void ViewDialogMissCapture(); void UpdateSendFailed(); void captureImage(CAPTURE_IMAGE* pCaptureImage); void captureVideo(CAPTURE_IMAGE* pCaptureImage); void SetSendProgress(int nProgress, int nTotal); void SetImageLoadInfo(int nLoad, int nTotal, ImageSelect* pImageSelect); void SetProgressExportFile(int nProgress, int nTotal); void SetProgressExportPercent(quint64 nProgress, quint64 nTotal); void SetProgressSync(bool bComplete); void ImageLoadComplete(); void CompleteAcquisitionFromHistory(); void LoadInfoAcquisitionFromHistory(int nCurrent, int nTotal); void SetExportComplete(); void SetExportInit(); void CompleteCleanStorage(); public slots: void StartExport(int nType); void StopExport(); void MissCaptureBeep(); void SetProgressExportPercentSlot(quint64 nCurrent, quint64 nTotal); protected: bool m_bDeferredInitMainWidget; SCURL* m_pCURL; bool m_bErrorSamba; QMutex m_LockSendList; QTimer m_TimerMissBeep; QMutex m_LockImageSaveToFile; QMutex m_LockExport; int m_nMissCount; bool m_bMissCapture; bool m_bCancelLoad; bool m_bExport; int m_nExportType; vector m_ListSendFile; vector m_ListSendFileWait; int m_nDetectOffsetX; int m_nDetectOffsetY; int m_nDetectWidth; int m_nDetectHeight; bool m_bDetectReady; uint8_t* m_pImageDetect; uint8_t* m_pImageDetectSrc; QMutex m_LockDetect; QImage* m_pImageTest; #ifdef _SYOLOV5 SYolov5* m_pDetectObject; #endif bool m_bLoadImage; vector* m_pWorklistData; vector* m_pDCMDumpList; WorklistResponseData* m_pCurrentWorklist; vector m_ListCaptureSaveToFile; bool m_bSaveImage; //SDatabase* m_pDatabase; QList m_ListImageWithStudy; QList m_ListScheduledDeleteStudyDateList; bool m_bExecuteUSBBackup; }; #endif // STHREADIMAGESAVE_H