Change recon page can refresh transfer progress automaticly.

This commit is contained in:
sunwen
2023-08-25 14:35:41 +08:00
parent 92ee79a3f7
commit abf576444c
4 changed files with 41 additions and 7 deletions

View File

@@ -702,7 +702,10 @@ void DeviceManager::startTransfer()
QString msg = "DB Error. Code:G501"; QString msg = "DB Error. Code:G501";
emitInfoCallback(msg, MessageLevel::Error); emitInfoCallback(msg, MessageLevel::Error);
} }
else
{
emit transferStatusUpdated();
}
} }
void DeviceManager::processTransferProgress(const QString& aProgress) void DeviceManager::processTransferProgress(const QString& aProgress)
@@ -727,6 +730,7 @@ void DeviceManager::processTransferProgress(const QString& aProgress)
.arg(mIsTransferEmptyScan ? "EScan" : "Scan") .arg(mIsTransferEmptyScan ? "EScan" : "Scan")
.arg(mCurrentTransferMeasurementID); .arg(mCurrentTransferMeasurementID);
mIsTransfering = false; mIsTransfering = false;
mTransferProgress = 0;
mCurrentTransferMeasurementID.clear(); mCurrentTransferMeasurementID.clear();
if(!SQLHelper::exec(sql)) if(!SQLHelper::exec(sql))
{ {
@@ -735,6 +739,7 @@ void DeviceManager::processTransferProgress(const QString& aProgress)
break; break;
} }
emitInfoCallback("Scan data transfer Succeeded!", MessageLevel::Sucess); emitInfoCallback("Scan data transfer Succeeded!", MessageLevel::Sucess);
emit transferStatusUpdated();
startCreateReconRecord(); startCreateReconRecord();
startTransfer(); startTransfer();
break; break;
@@ -744,6 +749,7 @@ void DeviceManager::processTransferProgress(const QString& aProgress)
.arg(mIsTransferEmptyScan ? "EScan" : "Scan") .arg(mIsTransferEmptyScan ? "EScan" : "Scan")
.arg(mCurrentTransferMeasurementID); .arg(mCurrentTransferMeasurementID);
mIsTransfering = false; mIsTransfering = false;
mTransferProgress = 0;
mCurrentTransferMeasurementID.clear(); mCurrentTransferMeasurementID.clear();
if(!SQLHelper::exec(sql)) if(!SQLHelper::exec(sql))
{ {
@@ -852,7 +858,6 @@ void DeviceManager::initEmptyScanMeasurementID()
void DeviceManager::updateReconState() void DeviceManager::updateReconState()
{ {
updateTransferProgress();
QString sql = "SELECT ScanID FROM Scan WHERE State < 999 And State >= 300"; QString sql = "SELECT ScanID FROM Scan WHERE State < 999 And State >= 300";
auto result = SQLHelper::queryValues(sql); auto result = SQLHelper::queryValues(sql);
QStringList scanIDs; QStringList scanIDs;
@@ -869,19 +874,22 @@ void DeviceManager::updateReconState()
emit queryScanStatusToRecon(scanIDs); emit queryScanStatusToRecon(scanIDs);
} }
void DeviceManager::updateTransferProgress() bool DeviceManager::updateTransferProgress()
{ {
if(!mIsTransfering) if(!mIsTransfering)
{ {
return; return false;
} }
mTransferProgress = 0; mTransferProgress = 0;
auto result = mGetTransferProgressAction->execute(); auto result = mGetTransferProgressAction->execute();
QJsonObject jsonObj = toJsonObject(result.mData); QJsonObject jsonObj = toJsonObject(result.mData);
if(jsonObj["code"].toInt() == 0 ) if(jsonObj["code"].toInt() == 1 )
{ {
mTransferProgress = jsonObj["info"].toInt(); mTransferProgress = jsonObj["info"].toString().toInt();
return true;
} }
return false;
} }
int DeviceManager::getTransferProgress() int DeviceManager::getTransferProgress()

View File

@@ -69,7 +69,7 @@ public:
void emitErrorCallback(const char *msg); void emitErrorCallback(const char *msg);
void emitInfoCallback(const QString& aMessage,const unsigned int aInfoType); void emitInfoCallback(const QString& aMessage,const unsigned int aInfoType);
bool hasValidEmptyScan(); bool hasValidEmptyScan();
void updateTransferProgress(); bool updateTransferProgress();
int getTransferProgress(); int getTransferProgress();
public slots: public slots:
@@ -142,6 +142,9 @@ signals:
void createScanToRecon(const QString& aScanID, const QString& aPatientID, const QString& aReferenceID, const QString& aPath); void createScanToRecon(const QString& aScanID, const QString& aPatientID, const QString& aReferenceID, const QString& aPath);
void queryScanStatusToRecon(const QStringList& aScanIDs); void queryScanStatusToRecon(const QStringList& aScanIDs);
void updateReconStateFinished(); void updateReconStateFinished();
//GUI
void initializeFinished();
void transferStatusUpdated();
private: private:

View File

@@ -6,6 +6,7 @@
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QHeaderView> #include <QHeaderView>
#include <QSqlRecord> #include <QSqlRecord>
#include <QTimer>
#include "components/SlideTableView.h" #include "components/SlideTableView.h"
#include "db/SQLHelper.h" #include "db/SQLHelper.h"
@@ -23,6 +24,7 @@ ReconFormWidget::ReconFormWidget(QWidget *parent)
, mScanTable(new SlideTableView(this)) , mScanTable(new SlideTableView(this))
, mSearchWidget(new ScanSearchCriteriaForm(this)) , mSearchWidget(new ScanSearchCriteriaForm(this))
, mModel(nullptr) , mModel(nullptr)
, mRefreshTimer(new QTimer(this))
{ {
auto layout = new QHBoxLayout(ui->commandWidget); auto layout = new QHBoxLayout(ui->commandWidget);
layout->setAlignment(Qt::AlignmentFlag::AlignLeft); layout->setAlignment(Qt::AlignmentFlag::AlignLeft);
@@ -51,8 +53,10 @@ ReconFormWidget::ReconFormWidget(QWidget *parent)
connect(mBtnRefresh, &QToolButton::clicked, DeviceManager::Default(), &DeviceManager::updateReconState); connect(mBtnRefresh, &QToolButton::clicked, DeviceManager::Default(), &DeviceManager::updateReconState);
connect(DeviceManager::Default(), &DeviceManager::updateReconStateFinished, mModel, &QSqlTableModel::select); connect(DeviceManager::Default(), &DeviceManager::updateReconStateFinished, mModel, &QSqlTableModel::select);
connect(DeviceManager::Default(), &DeviceManager::transferStatusUpdated, mModel, &QSqlTableModel::select);
connect(mSearchWidget, &ScanSearchCriteriaForm::searchFilterUpdated, this, &ReconFormWidget::updateSearchFilter); connect(mSearchWidget, &ScanSearchCriteriaForm::searchFilterUpdated, this, &ReconFormWidget::updateSearchFilter);
connect(mBtnDelete, &QToolButton::clicked, this, &ReconFormWidget::deleteReconRecord); connect(mBtnDelete, &QToolButton::clicked, this, &ReconFormWidget::deleteReconRecord);
connect(mRefreshTimer, &QTimer::timeout, this, &ReconFormWidget::refreshTransferprogress);
} }
@@ -116,6 +120,13 @@ void ReconFormWidget::showEvent(QShowEvent *aEvent)
{ {
TabFormWidget::showEvent(aEvent); TabFormWidget::showEvent(aEvent);
DeviceManager::Default()->updateReconState(); DeviceManager::Default()->updateReconState();
mRefreshTimer->start(1000);
}
void ReconFormWidget::hideEvent(QHideEvent *aEvent)
{
mRefreshTimer->stop();
TabFormWidget::hideEvent(aEvent);
} }
void ReconFormWidget::deleteReconRecord() void ReconFormWidget::deleteReconRecord()
@@ -159,3 +170,11 @@ int ReconFormWidget::getTableColumnIndex(const QString& aColumnName)
{ {
return mModel->record().indexOf(aColumnName); return mModel->record().indexOf(aColumnName);
} }
void ReconFormWidget::refreshTransferprogress()
{
if(DeviceManager::Default()->updateTransferProgress())
{
mScanTable->viewport()->update();
}
}

View File

@@ -8,6 +8,7 @@ class QToolButton;
class SlideTableView; class SlideTableView;
class QSqlTableModel; class QSqlTableModel;
class ScanSearchCriteriaForm; class ScanSearchCriteriaForm;
class QTimer;
class ReconFormWidget: public TabFormWidget class ReconFormWidget: public TabFormWidget
{ {
@@ -19,10 +20,12 @@ public:
protected: protected:
void showEvent(QShowEvent *aEvent) override; void showEvent(QShowEvent *aEvent) override;
void hideEvent(QHideEvent *aEvent) override;
private slots: private slots:
void updateSearchFilter(); void updateSearchFilter();
void deleteReconRecord(); void deleteReconRecord();
void refreshTransferprogress();
private: private:
int getTableColumnIndex(const QString& aColumnName); int getTableColumnIndex(const QString& aColumnName);
@@ -34,6 +37,7 @@ private:
SlideTableView* mScanTable; SlideTableView* mScanTable;
ScanSearchCriteriaForm* mSearchWidget; ScanSearchCriteriaForm* mSearchWidget;
QSqlTableModel *mModel; QSqlTableModel *mModel;
QTimer* mRefreshTimer;
void initTableView(QHBoxLayout *contentLayout); void initTableView(QHBoxLayout *contentLayout);