SVG5/commondata.h
2025-10-12 13:55:56 +09:00

376 lines
9.6 KiB
C++

#ifndef COMMONDATA_H
#define COMMONDATA_H
#include "common.h"
#include "sdcmworklist.h"
#include "sdcmfindscudatacallback.h"
#include "qrtspthread.h"
#include "sthreadimagesave.h"
#include "sthreadsenddicom.h"
#include "sthreadworklistsearch.h"
#include "stableheader.h"
#include "sdatabase.h"
using namespace SUTIL;
#include "sambaclient.h"
#include "acquisition_info.h"
#include <QMutex>
#include <QDateTime>
#define WRITE_FUNCTION_LOG() { QString strLog; strLog = QString("[%1] %2:%3,%4\n").arg(QTime::currentTime().toString("HH:mm:ss")).arg(__FILE__).arg(__LINE__).arg(__FUNCTION__); MainWindow::GetCommonData()->WriteLog(strLog);}
#define WRITE_FUNCTION_LOG_PARAM(X) { QString strLog; strLog = QString("[%1] %2:%3,%4(%5)\n").arg(QTime::currentTime().toString("HH:mm:ss")).arg(__FILE__).arg(__LINE__).arg(__FUNCTION__).arg(X); MainWindow::GetCommonData()->WriteLog(strLog);}
class CommonData
{
public:
CommonData();
virtual ~CommonData();
QString GetNewFilename(int nType);
static void RestartNetworkManager();
bool IsActiveDetect();
void SetActiveDetect(bool bActive);
void Exit();
void SetSearchItemHistory(SEARCH_ITEM si);
void SetHistorySearchStudyIndex(int nStudyIndex);
SEARCH_ITEM* GetSearchItemHistory();
int GetHistorySearchStudyIndex();
void ClearHistorySearchItem();
void ClearHistorySearchStudyIndex();
//void ReOpenDatabase();
//SDatabase* GetDatabase();
//void ReleaseDatabase();
ACQUISITION_INFO* GetAcquisitionInfo();
void ReleaseAcquisitionInfo();
QDate GetDateSearchWorklistStart();
QDate GetDateSearchWorklistEnd();
void SetDateSearchWorklistStart(QDate date);
void SetDateSearchWorklistEnd(QDate date);
QString GetStorageDirectory();
QDate GetDateSearchHistoryStart();
QDate GetDateSearchHistoryEnd();
void SetDateSearchHistoryStart(QDate date);
void SetDateSearchHistoryEnd(QDate date);
SEARCH_ITEM* GetSearchItemWorklist();
SDCMFindSCUDataCallback* GetFindSCUDataCallback();
vector<WorklistResponseData>* GetWorklistData();
void ReleaseWorklistData();
vector<CSDCM*>* GetWorklistDump();
void SetRTSPThread(QRTSPThread* pThread);
QRTSPThread* GetThreadRTSP();
void SetThreadCaptureImage(SThreadImageSave* pThread);
void SetThreadSendDICOM(SThreadSendDICOM* pThread);
void SetThreadWorklistSearch(SThreadWorklistSearch* pThread);
SThreadImageSave* GetThreadCaptureImage();
SThreadSendDICOM* GetThreadSendDICOM();
SThreadWorklistSearch* GetThreadWorklistSearch();
vector<ImageSelect*>* GetListHistoryImage();
void ReleaseListHistoryImage();
void ClearHistoryImage();
vector<CAPTURE_IMAGE*>* GetListCaptureImage();
void ReleaseListCaptureImage();
void ClearCaptureImage();
CAPTURE_IMAGE* AddCaptureImage(uint8_t* pData, int nWidth, int nHeight, int nCaptureType);
bool ConvertCaptureImage(CAPTURE_IMAGE* pCaptureImage, int nWidth, int nHeight);
void ConvertCaptureImageRGBA(CAPTURE_IMAGE* pCaptureImage, int nWidth, int nHeight);
uint8_t* ConvertColor(uint8_t* pData, int nWidth, int nHeight);
void ConvertColor2(uint8_t* pSrcData, uint8_t* pDestData, int nOffsetX, int nOffsetY, int nWidth, int nHeight);
void AddCaptureImageWithHistory();
void AddCaptureImageWithHistory_v1();
vector<HISTORY_STUDY*>* GetHistorySearchResult();
void ClearHistorySearchResult();
HISTORY_STUDY* GetCurrentHistoryStudy();
void ReleaseCurrentHistoryStudy();
void SetCurrentHistoryStudy(int nIndex);
void InitWorklistIndex();
void UpdateWorklistIndex();
void InitHistoryIndex();
void UpdateHistoryIndex();
bool IsEncodingVideo();
void SetEncodingVideo(bool bEncoding);
STableHeader* GetWorklistTableHeader();
STableHeader* GetHistoryTableHeader();
int GetDisplayType();
void SetDisplayType(int nType);
SDCMWorklist* GetWorklistClass();
SDCM_SERVER_INFO* GetServerWorklistInfo();
void ReleaseServerWorklistInfo();
SDCM_SERVER_INFO* GetServerStorageInfo();
void ReleaseServerStorageInfo();
void UpdateSetting();
void UpdateAdvancedSetting();
void InitSetting();
QString GetModality();
QString GetInstitutionName();
QString GetStationName();
int GetTransferSyntax();
void SetModality(QString strModality);
void SetInstitutionName(QString strInstitutionName);
void SetStationName(QString strStationName);
void SetTransferSyntax(int nTransferSyntax);
bool GetEnableLog();
QString GetLocalImageFolder();
QString GetLogFolder();
QString GetLocalHistoryFolder();
void SetEnableLog(int bEnable);
void SetLocalImageFolder(QString strLocalImageFolder);
void SetLogFolder(QString strLogFolder);
void SetLocalHistoryFolder(QString strLocalHistoryFolder);
void Beep(bool bSound);
WorklistResponseData GetCurrentHistoryWorklistData();
WorklistResponseData GetCurrentWorklistData();
void ReleaseCurrentWorklistData();
qint64 ComputeStorageSize();
int GetStorageSize();
int GetStorageFreeSize();
vector<QString>* GetExportList();
QString* GetExternalDiskPath();
QString* GetImageExtension();
bool IsCapturing();
int GetHandSwitchValue();
bool IsAutoCloseSendFinish();
void SetAutoCloseSendComplete(bool bEnable);
QString GetBeepGPIONumber();
QString GetHandswitchGPIONumber();
void SetUseNetworkBackupVideo(bool bUse);
bool IsUseNetworkBackupVideo();
NetworkShareInfo* GetNetworkShareInfo();
bool IsAutoExitCaptureSendDICOM();
bool IsAutoCaptureSendDICOM();
bool IsAutoVideoCapture();
bool IsAutoLogin();
void SetAutoExitCaptureSendDICOM(bool bEnable);
void SetAutoCaptureSendDICOM(bool bEnable);
void SetAutoVideoCapture(bool bEnable);
void SetAutoLogin(bool bEnable);
SambaClient* GetSambaClient();
void CreateSambaClient();
QString GetDICOMCharacterSet();
void SetDICOMCharacterSet(QString strCharacterSet);
void WriteLog(QString strLog);
QStringList* GetListLog();
void ReleaseListLog();
void WriteLogFile(QString strLog);
void SetVideoMode(int nMode);
int GetVideoMode();
void SetCropMode(int bCropMode);
int GetCropMode();
void SetUseFixWidthLevel(int bFixWidthLevel);
int GetUseFixWidthLevel();
void SetScreenSaverTime(int nMinutes);
int GetScreenSaverTime();
void SetLogLevel(int nLevel);
int GetLogLevel();
void SetUseUSBBackup(int nUSBBackup);
int IsUseUSBBackup();
int GetVideoWidth();
int GetVideoHeight();
void MakeBitmapHeader(int nWidth, int nHeight);
bool WriteBitmapFile(QString strFile, QImage* pImage);
bool WriteBitmapFile(QString strFile, uint8_t* pData, int nWidth, int nHeight);
bool WriteJPEG(QString strFile, uint8_t* pData, int nWidth, int nHeight, int nQualilty);
void SetConnectHDMI(bool bConnect);
bool IsConnectHDMI();
void GetSearchDateStartEnd(int nSearchDurationType, QDate& nDateStart, QDate& nDateEnd);
void SetUseWebDisplay(bool bUse);
bool IsUseWebDisplay();
protected:
QStringList m_ListLog;
bool m_bConnectHDMI;
int m_nScreenSaverTime;
uint8_t* m_pBitmapData;
BITMAPFILEHADER m_bf;
BITMAPINFOHEADER m_bi;
int m_nVideoWidth;
int m_nVideoHeight;
QFile* m_pLogFile;
QString m_strDICOMCharacterSet;
SambaClient* m_pSambaClient;
NetworkShareInfo m_NetworkShareInfo;
bool m_bActiveDetect;
QString m_strGPIOBeep;
QString m_strGPIOHandSwitch;
bool m_bIsCapturing;
QString m_strImageExtension;
QString m_strExternalDiskPath;
int m_nGPIO_Buzzer;
int m_nGPIO_HandSwitch;
bool m_bAutoExitCaptureSendDICOM;
bool m_bAutoCaptureSendDICOM;
bool m_bAutoVideoCapture;
bool m_bAutoLogin;
int m_nVideoMode;
int m_nCropMode;
int m_nUseFixWidthLevel;
int m_nUseLogLevel;
bool m_bAutoCloseSendFinish;
bool m_bEnableLog;
int m_nUseUSBBackup;
QString m_strLocalImageFolder;
QString m_strLogFolder;
QString m_strLocalHistoryFolder;
QString m_strModality;
QString m_strInstitutionName;
QString m_strStationName;
int m_nTransferSyntax;
SDCM_SERVER_INFO m_ServerWorklistInfo;
SDCM_SERVER_INFO m_ServerStorageInfo;
int m_nDisplayType;
STableHeader* m_pWorklistTableHeader;
STableHeader* m_pHistoryTableHeader;
//SDatabase* m_pDatabase;
ACQUISITION_INFO m_AcquisitionInfo;
SThreadImageSave* m_pThreadCaptureImage;
SThreadSendDICOM* m_pThreadSendDICOM;
SThreadWorklistSearch* m_pThreadWorklistSearch;
QRTSPThread* m_pRTSPThread;
QString m_strStorageDirectory;
SearchDate m_SearchDateWorklist;
SearchDate m_SearchDateHistory;
SEARCH_ITEM m_SearchItemWorklist;
SEARCH_ITEM m_SearchItemHistory;
int m_nSearchItemHistoryStudyIndex;
SDCMWorklist* m_pDCMWorklist;
SDCMFindSCUDataCallback* m_pFindSCUDataCallback;
vector<WorklistResponseData>* m_pWorklistData;
vector<CSDCM*>* m_pDCMDumpList;
WorklistResponseData* m_pCurrentWorklist;
vector<CAPTURE_IMAGE*>* m_pListCaptureImage;
RGB_Data* m_pImageCapture;
vector<ImageSelect*>* m_pListHistoryImage;
vector<HISTORY_STUDY*>* m_pListHistorySearch;
HISTORY_STUDY* m_pCurrentHistoryStudy;
bool m_bVideoEncoding;
bool m_bUseWebDisplay;
qint64 m_nStorageSize;
qint64 m_nStorageFreeSize;
vector<QString> m_ListExport;
QMutex m_LockAddCapture;
QMutex m_LockAddHistory;
QMutex m_LockLog;
QMutex m_LockAcquisitionInfo;
QMutex m_LockCurrentHistoryStudy;
QMutex m_LockWorklistData;
QMutex m_LockDatabase;
QMutex m_LockServerWorklistInfo;
QMutex m_LockServerStorageInfo;
};
#endif // COMMONDATA_H