feat: Add empty scan data corrupted process.
This commit is contained in:
@@ -182,6 +182,7 @@ void DeviceManager::initDevice()
|
|||||||
reconConnectionTimer->start(CHECK_RECON_CONNECTION_TIME);
|
reconConnectionTimer->start(CHECK_RECON_CONNECTION_TIME);
|
||||||
ReconManager::getInstance()->moveToThread(mReconHttpThread);
|
ReconManager::getInstance()->moveToThread(mReconHttpThread);
|
||||||
connect(ReconManager::getInstance(), &ReconManager::reconStateResponsed, UsctStateManager::getInstance(), &UsctStateManager::updateReconState);
|
connect(ReconManager::getInstance(), &ReconManager::reconStateResponsed, UsctStateManager::getInstance(), &UsctStateManager::updateReconState);
|
||||||
|
connect(EventCenter::Default(), &EventCenter::LoginSuccess, ReconManager::getInstance(), &ReconManager::checkReconConnection);
|
||||||
connect(this, &DeviceManager::checkReconConnection, ReconManager::getInstance(), &ReconManager::checkReconConnection);
|
connect(this, &DeviceManager::checkReconConnection, ReconManager::getInstance(), &ReconManager::checkReconConnection);
|
||||||
connect(reconConnectionTimer, &QTimer::timeout, this, &DeviceManager::prepareCheckReconConnection);
|
connect(reconConnectionTimer, &QTimer::timeout, this, &DeviceManager::prepareCheckReconConnection);
|
||||||
connect(this, &DeviceManager::createEmptyScanToRecon, ReconManager::getInstance(), &ReconManager::createEmptyScan);
|
connect(this, &DeviceManager::createEmptyScanToRecon, ReconManager::getInstance(), &ReconManager::createEmptyScan);
|
||||||
@@ -196,7 +197,6 @@ void DeviceManager::initDevice()
|
|||||||
mTemperatureTimer = startTimer(GET_TEMPERATURE_TIME);
|
mTemperatureTimer = startTimer(GET_TEMPERATURE_TIME);
|
||||||
|
|
||||||
//init dms status--------------------make a function future
|
//init dms status--------------------make a function future
|
||||||
QMetaObject::invokeMethod(ReconManager::getInstance(), "checkReconConnection", Qt::QueuedConnection);
|
|
||||||
if(JsonObject::Instance()->isDmsSimulator())
|
if(JsonObject::Instance()->isDmsSimulator())
|
||||||
{
|
{
|
||||||
//set simulator
|
//set simulator
|
||||||
@@ -346,7 +346,7 @@ void DeviceManager::processScanProgress(const QString& aProgress)
|
|||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
ScanProcessSequence::getInstance()->fullScanDataExport();
|
ScanProcessSequence::getInstance()->fullScanDataExport();
|
||||||
QVariant var( (mIsEmptyScan ? QString("") : tr("Patient can leave.\nprogress:%1%")).arg(msg));
|
QVariant var( (mIsEmptyScan ? tr("progress:%1%") : tr("Patient can leave.\nprogress:%1%")).arg(msg));
|
||||||
TRIGGER_EVENT(InvokeOperationProgress, nullptr, (QObject *) &var);
|
TRIGGER_EVENT(InvokeOperationProgress, nullptr, (QObject *) &var);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -385,7 +385,10 @@ void DeviceManager::prepareFinishScan(bool isNormalFinish, const QString& aReaso
|
|||||||
if(!isNormalFinish)
|
if(!isNormalFinish)
|
||||||
{
|
{
|
||||||
TRIGGER_EVENT(InvokeOperationEnd, nullptr, var);
|
TRIGGER_EVENT(InvokeOperationEnd, nullptr, var);
|
||||||
|
if(!mIsEmptyScan)
|
||||||
|
{
|
||||||
TRIGGER_EVENT(StopScanProcess, nullptr, nullptr);
|
TRIGGER_EVENT(StopScanProcess, nullptr, nullptr);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1071,6 +1074,7 @@ void DeviceManager::processReconCreateEmptyScan(bool aResult, const QString& aSc
|
|||||||
{
|
{
|
||||||
if(aResult)
|
if(aResult)
|
||||||
{
|
{
|
||||||
|
UsctStateManager::getInstance()->setEmptyScanUpdateFlag(false);
|
||||||
QString sql = QString("UPDATE EScan set State = 300 where ScanID = '%1'").arg(aScanID);
|
QString sql = QString("UPDATE EScan set State = 300 where ScanID = '%1'").arg(aScanID);
|
||||||
if(!SQLHelper::exec(sql))
|
if(!SQLHelper::exec(sql))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -86,9 +86,15 @@ void UsctStateManager::updateReconState(bool aIsConnected,int aState)
|
|||||||
{
|
{
|
||||||
case ReconState: setState(ReconState, result); break;
|
case ReconState: setState(ReconState, result); break;
|
||||||
case ReconDBState: setState(ReconDBState, result); break;
|
case ReconDBState: setState(ReconDBState, result); break;
|
||||||
case ReconEmptyScanState: setState(ReconEmptyScanState, result); break;
|
|
||||||
case ReconPacsState: setState(ReconPacsState, result); break;
|
case ReconPacsState: setState(ReconPacsState, result); break;
|
||||||
case ReconMppsState: setState(ReconMppsState, result); break;
|
case ReconMppsState: setState(ReconMppsState, result); break;
|
||||||
|
case ReconEmptyScanState: setState(ReconEmptyScanState, result);
|
||||||
|
if(!mIsEmptyScanUpdateing && !result)
|
||||||
|
{
|
||||||
|
mIsEmptyScanUpdateing = true;
|
||||||
|
EventCenter::Default()->triggerEvent(EmptyScanDataCorrupted, nullptr, nullptr);
|
||||||
|
}
|
||||||
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,4 +105,9 @@ bool UsctStateManager::getState(UsctState aStateCode)
|
|||||||
return mState[aStateCode];
|
return mState[aStateCode];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UsctStateManager::setEmptyScanUpdateFlag(bool aIsUpdating)
|
||||||
|
{
|
||||||
|
mIsEmptyScanUpdateing = aIsUpdating;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ public:
|
|||||||
void setState(int aStateCode, bool aState);
|
void setState(int aStateCode, bool aState);
|
||||||
void updateReconState(bool aIsConnected,int aState);
|
void updateReconState(bool aIsConnected,int aState);
|
||||||
bool getState(UsctState aStateCode);
|
bool getState(UsctState aStateCode);
|
||||||
|
void setEmptyScanUpdateFlag(bool aIsUpdating);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString getStateErrorMessage(int aStateCode);
|
QString getStateErrorMessage(int aStateCode);
|
||||||
@@ -37,6 +38,7 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QMap<int, bool> mState;
|
QMap<int, bool> mState;
|
||||||
|
bool mIsEmptyScanUpdateing = false;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ ADD_EVENT_VALUE(StartScanProcess)\
|
|||||||
ADD_EVENT_VALUE(StopScanProcess)\
|
ADD_EVENT_VALUE(StopScanProcess)\
|
||||||
ADD_EVENT_VALUE(CurrentUserNameChanged)\
|
ADD_EVENT_VALUE(CurrentUserNameChanged)\
|
||||||
ADD_EVENT_VALUE(EmptyScanFinished)\
|
ADD_EVENT_VALUE(EmptyScanFinished)\
|
||||||
|
ADD_EVENT_VALUE(EmptyScanDataCorrupted)\
|
||||||
ADD_EVENT_VALUE(UserVerificationSuccess)\
|
ADD_EVENT_VALUE(UserVerificationSuccess)\
|
||||||
ADD_EVENT_VALUE(UsctStateUpdated)\
|
ADD_EVENT_VALUE(UsctStateUpdated)\
|
||||||
ADD_EVENT_VALUE(SetSelectedPatient)\
|
ADD_EVENT_VALUE(SetSelectedPatient)\
|
||||||
|
|||||||
@@ -179,7 +179,6 @@ void ScanFormWidget::initCommandWidget(QHBoxLayout *layout)
|
|||||||
mScanProcessLabel->setText(getAutoLocateMessage());
|
mScanProcessLabel->setText(getAutoLocateMessage());
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(EventCenter::Default(), &EventCenter::RequestFullScanStop, EventCenter::Default(), &EventCenter::StopScanProcess);
|
|
||||||
connect(EventCenter::Default(), &EventCenter::StopScanProcess, [this]()
|
connect(EventCenter::Default(), &EventCenter::StopScanProcess, [this]()
|
||||||
{
|
{
|
||||||
mWorklistButton->setEnabled(true);
|
mWorklistButton->setEnabled(true);
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ReconManager::setReconIpAndPort(const QString& aIp, const QString& aPort)
|
|||||||
|
|
||||||
void ReconManager::createEmptyScan(const QString& aScanID, const QString& aPath)
|
void ReconManager::createEmptyScan(const QString& aScanID, const QString& aPath)
|
||||||
{
|
{
|
||||||
Scan empty{aScanID.toStdString(), "", "", aPath.toStdString(),0};
|
Scan empty{aScanID.toStdString(), "", "", "", aPath.toStdString(),0};
|
||||||
auto result = mReconClient->Create(empty);
|
auto result = mReconClient->Create(empty);
|
||||||
if(result.good())
|
if(result.good())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ MainWindow::MainWindow(QWidget* aParent)
|
|||||||
|
|
||||||
connect(EventCenter::Default(), &EventCenter::LoginSuccess, this,&MainWindow::checkEmptyScanValidity);
|
connect(EventCenter::Default(), &EventCenter::LoginSuccess, this,&MainWindow::checkEmptyScanValidity);
|
||||||
connect(EventCenter::Default(), &EventCenter::EmptyScanFinished, this,&MainWindow::enableAllTabWidget);
|
connect(EventCenter::Default(), &EventCenter::EmptyScanFinished, this,&MainWindow::enableAllTabWidget);
|
||||||
|
connect(EventCenter::Default(), &EventCenter::EmptyScanDataCorrupted, this, &MainWindow::handleEmptyScanDataCorrupted);
|
||||||
|
|
||||||
connect(mTabWidget, &QTabWidget::currentChanged, this, [this](int aIndex)
|
connect(mTabWidget, &QTabWidget::currentChanged, this, [this](int aIndex)
|
||||||
{
|
{
|
||||||
@@ -372,3 +373,12 @@ void MainWindow::enableAllTabWidget()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::handleEmptyScanDataCorrupted()
|
||||||
|
{
|
||||||
|
mTabWidget->setTabEnabled(0, false);
|
||||||
|
mTabWidget->setTabEnabled(1, false);
|
||||||
|
mTabWidget->setTabEnabled(2, false);
|
||||||
|
mTabWidget->setCurrentIndex(3);
|
||||||
|
|
||||||
|
DialogManager::Default()->requestAlertMessage(tr("Due to empty scan data corruption on the server, needs to be execute the empty scan. No other operations can be conducted until the scan is complete."), OkOnly, tr("Warning"));
|
||||||
|
}
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ private:
|
|||||||
void processShutdownDmsFailed();
|
void processShutdownDmsFailed();
|
||||||
void checkEmptyScanValidity();
|
void checkEmptyScanValidity();
|
||||||
void enableAllTabWidget();
|
void enableAllTabWidget();
|
||||||
|
void handleEmptyScanDataCorrupted();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow* mUI;
|
Ui::MainWindow* mUI;
|
||||||
|
|||||||
Reference in New Issue
Block a user