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);
|
||||
ReconManager::getInstance()->moveToThread(mReconHttpThread);
|
||||
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(reconConnectionTimer, &QTimer::timeout, this, &DeviceManager::prepareCheckReconConnection);
|
||||
connect(this, &DeviceManager::createEmptyScanToRecon, ReconManager::getInstance(), &ReconManager::createEmptyScan);
|
||||
@@ -196,7 +197,6 @@ void DeviceManager::initDevice()
|
||||
mTemperatureTimer = startTimer(GET_TEMPERATURE_TIME);
|
||||
|
||||
//init dms status--------------------make a function future
|
||||
QMetaObject::invokeMethod(ReconManager::getInstance(), "checkReconConnection", Qt::QueuedConnection);
|
||||
if(JsonObject::Instance()->isDmsSimulator())
|
||||
{
|
||||
//set simulator
|
||||
@@ -346,7 +346,7 @@ void DeviceManager::processScanProgress(const QString& aProgress)
|
||||
case 2:
|
||||
{
|
||||
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);
|
||||
break;
|
||||
}
|
||||
@@ -385,7 +385,10 @@ void DeviceManager::prepareFinishScan(bool isNormalFinish, const QString& aReaso
|
||||
if(!isNormalFinish)
|
||||
{
|
||||
TRIGGER_EVENT(InvokeOperationEnd, nullptr, var);
|
||||
TRIGGER_EVENT(StopScanProcess, nullptr, nullptr);
|
||||
if(!mIsEmptyScan)
|
||||
{
|
||||
TRIGGER_EVENT(StopScanProcess, nullptr, nullptr);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1071,6 +1074,7 @@ void DeviceManager::processReconCreateEmptyScan(bool aResult, const QString& aSc
|
||||
{
|
||||
if(aResult)
|
||||
{
|
||||
UsctStateManager::getInstance()->setEmptyScanUpdateFlag(false);
|
||||
QString sql = QString("UPDATE EScan set State = 300 where ScanID = '%1'").arg(aScanID);
|
||||
if(!SQLHelper::exec(sql))
|
||||
{
|
||||
@@ -1150,7 +1154,7 @@ void DeviceManager::startCreateReconRecord()
|
||||
QString scanID = record[0].toString();
|
||||
QString referenceID = record[1].toString();
|
||||
// QString patientID = record[2].toString();;
|
||||
//TODO:need StudyUID & MPPS Uid
|
||||
//TODO:need StudyUID & MPPS Uid
|
||||
QString studyUID;
|
||||
QString mppsUID;
|
||||
emit createScanToRecon(scanID, studyUID,mppsUID, referenceID, RECON_TRANSFER_PATH + "/" + scanID);
|
||||
|
||||
@@ -86,9 +86,15 @@ void UsctStateManager::updateReconState(bool aIsConnected,int aState)
|
||||
{
|
||||
case ReconState: setState(ReconState, result); break;
|
||||
case ReconDBState: setState(ReconDBState, result); break;
|
||||
case ReconEmptyScanState: setState(ReconEmptyScanState, result); break;
|
||||
case ReconPacsState: setState(ReconPacsState, 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;
|
||||
}
|
||||
}
|
||||
@@ -99,4 +105,9 @@ bool UsctStateManager::getState(UsctState aStateCode)
|
||||
return mState[aStateCode];
|
||||
}
|
||||
|
||||
void UsctStateManager::setEmptyScanUpdateFlag(bool aIsUpdating)
|
||||
{
|
||||
mIsEmptyScanUpdateing = aIsUpdating;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ public:
|
||||
void setState(int aStateCode, bool aState);
|
||||
void updateReconState(bool aIsConnected,int aState);
|
||||
bool getState(UsctState aStateCode);
|
||||
void setEmptyScanUpdateFlag(bool aIsUpdating);
|
||||
|
||||
private:
|
||||
QString getStateErrorMessage(int aStateCode);
|
||||
@@ -37,6 +38,7 @@ private:
|
||||
|
||||
private:
|
||||
QMap<int, bool> mState;
|
||||
bool mIsEmptyScanUpdateing = false;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ ADD_EVENT_VALUE(StartScanProcess)\
|
||||
ADD_EVENT_VALUE(StopScanProcess)\
|
||||
ADD_EVENT_VALUE(CurrentUserNameChanged)\
|
||||
ADD_EVENT_VALUE(EmptyScanFinished)\
|
||||
ADD_EVENT_VALUE(EmptyScanDataCorrupted)\
|
||||
ADD_EVENT_VALUE(UserVerificationSuccess)\
|
||||
ADD_EVENT_VALUE(UsctStateUpdated)\
|
||||
ADD_EVENT_VALUE(SetSelectedPatient)\
|
||||
|
||||
@@ -179,7 +179,6 @@ void ScanFormWidget::initCommandWidget(QHBoxLayout *layout)
|
||||
mScanProcessLabel->setText(getAutoLocateMessage());
|
||||
});
|
||||
|
||||
connect(EventCenter::Default(), &EventCenter::RequestFullScanStop, EventCenter::Default(), &EventCenter::StopScanProcess);
|
||||
connect(EventCenter::Default(), &EventCenter::StopScanProcess, [this]()
|
||||
{
|
||||
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)
|
||||
{
|
||||
Scan empty{aScanID.toStdString(), "", "", aPath.toStdString(),0};
|
||||
Scan empty{aScanID.toStdString(), "", "", "", aPath.toStdString(),0};
|
||||
auto result = mReconClient->Create(empty);
|
||||
if(result.good())
|
||||
{
|
||||
|
||||
@@ -75,6 +75,7 @@ MainWindow::MainWindow(QWidget* aParent)
|
||||
|
||||
connect(EventCenter::Default(), &EventCenter::LoginSuccess, this,&MainWindow::checkEmptyScanValidity);
|
||||
connect(EventCenter::Default(), &EventCenter::EmptyScanFinished, this,&MainWindow::enableAllTabWidget);
|
||||
connect(EventCenter::Default(), &EventCenter::EmptyScanDataCorrupted, this, &MainWindow::handleEmptyScanDataCorrupted);
|
||||
|
||||
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 checkEmptyScanValidity();
|
||||
void enableAllTabWidget();
|
||||
void handleEmptyScanDataCorrupted();
|
||||
|
||||
private:
|
||||
Ui::MainWindow* mUI;
|
||||
|
||||
Reference in New Issue
Block a user