fix: Fix auto drainage logic.
This commit is contained in:
@@ -115,7 +115,6 @@ void DeviceManager::initDevice()
|
||||
connect(EventCenter::Default(), &EventCenter::RequestShutdown, this, &DeviceManager::shutdownDms);
|
||||
//Drainage
|
||||
connect(EventCenter::Default(), &EventCenter::RequestDrainage, this, &DeviceManager::startDrainage);
|
||||
connect(EventCenter::Default(), &EventCenter::RequestAutoDrainage, this, &DeviceManager::startAutoDrainage);
|
||||
connect(EventCenter::Default(), &EventCenter::RequestWaterflood, this, &DeviceManager::startWaterflood);
|
||||
connect(EventCenter::Default(), &EventCenter::RequestWaterClean, this, &DeviceManager::startWaterClean);
|
||||
connect(EventCenter::Default(), &EventCenter::RequestWaterModeExit, this, &DeviceManager::exitWaterProcess);
|
||||
@@ -1184,31 +1183,15 @@ bool DeviceManager::getCEStatus()
|
||||
|
||||
void DeviceManager::startDrainage()
|
||||
{
|
||||
mIsAutoDrainage = false;
|
||||
if(!mDrainageControlAction->execute())
|
||||
{
|
||||
emit startDrainageControlResult(false);
|
||||
QString msg = tr("Open drain vavle failed.");
|
||||
THROW_ERROR(msg);
|
||||
emit startDrainageControlResult(false, msg);
|
||||
}
|
||||
}
|
||||
|
||||
void DeviceManager::startAutoDrainage()
|
||||
{
|
||||
if(!JsonObject::Instance()->getAutoDrainage())
|
||||
{
|
||||
return;
|
||||
}
|
||||
mIsAutoDrainage = true;
|
||||
mDrainageControlAction->execute();
|
||||
}
|
||||
|
||||
void DeviceManager::processDrainageResult(const QString& aResponse)
|
||||
{
|
||||
if(mIsAutoDrainage)
|
||||
{
|
||||
return;
|
||||
}
|
||||
QJsonObject jsonObj = toJsonObject(aResponse);
|
||||
if(jsonObj["code"].toInt() == 0 )
|
||||
{
|
||||
@@ -1216,9 +1199,8 @@ void DeviceManager::processDrainageResult(const QString& aResponse)
|
||||
return;
|
||||
}
|
||||
|
||||
emit startDrainageControlResult(false);
|
||||
QString msg = tr("Open drain vavle failed.") + tr("\nError: ") + jsonObj["info"].toString();
|
||||
THROW_ERROR(msg);
|
||||
emit startDrainageControlResult(false, msg);
|
||||
}
|
||||
|
||||
void DeviceManager::startWaterflood()
|
||||
|
||||
@@ -105,7 +105,6 @@ private:
|
||||
bool startCEScan();
|
||||
void initEmptyScanMeasurementID();
|
||||
void startDrainage();
|
||||
void startAutoDrainage();
|
||||
void startWaterflood();
|
||||
void startWaterClean();
|
||||
void exitWaterProcess();
|
||||
@@ -185,7 +184,7 @@ signals:
|
||||
void initializeFinished();
|
||||
void initializeProgress(const QString& aProgress);
|
||||
void startPreviewScanResult(bool aIsSucessful);
|
||||
void startDrainageControlResult(bool aIsSucessful);
|
||||
void startDrainageControlResult(bool aIsSucessful, const QString& aMessage = "");
|
||||
void startWaterfloodResult(bool aIsSucessful);
|
||||
void startWaterCleanResult(bool aIsSucessful);
|
||||
void exitWaterProcessResult(bool aIsSucessful);
|
||||
@@ -211,7 +210,6 @@ private:
|
||||
bool mIsInitializing = false;
|
||||
bool mIsAutoLocating = false;
|
||||
bool mIsFirstInTransferPorgress = false;
|
||||
bool mIsAutoDrainage = false;
|
||||
|
||||
QString mCurrentScanMeasurementID = "";
|
||||
QString mCurrentEmptyMeasurementID = "";
|
||||
|
||||
@@ -149,9 +149,10 @@ void ScanFormWidget::initCommandWidget(QHBoxLayout *layout)
|
||||
}
|
||||
});
|
||||
|
||||
connect(EventCenter::Default(), &EventCenter::RequestAutoDrainage, mDrainageButton, &QToolButton::click);
|
||||
connect(mDrainageButton, &QToolButton::clicked, [=](bool aStatus)
|
||||
{
|
||||
if(aStatus && DialogManager::Default()->requestAlertMessage(tr("Please confirm if drainage is required ?"), DialogButtonMode::OkAndCancel, tr("Confirm Drainage")) == QDialog::Rejected)
|
||||
if(!mIsAutoDrainage &&aStatus && DialogManager::Default()->requestAlertMessage(tr("Please confirm if drainage is required ?"), DialogButtonMode::OkAndCancel, tr("Confirm Drainage")) == QDialog::Rejected)
|
||||
{
|
||||
mDrainageButton->setChecked(!aStatus);
|
||||
return;
|
||||
@@ -194,13 +195,17 @@ void ScanFormWidget::initCommandWidget(QHBoxLayout *layout)
|
||||
}
|
||||
});
|
||||
|
||||
connect(DeviceManager::Default(), &DeviceManager::startDrainageControlResult, [this](bool aIsSucessful)
|
||||
connect(DeviceManager::Default(), &DeviceManager::startDrainageControlResult, [this](bool aIsSucessful, const QString& aMessage)
|
||||
{
|
||||
if(!aIsSucessful)
|
||||
{
|
||||
setWaterProcessModeEnable(true);
|
||||
mDrainageButton->setChecked(false);
|
||||
mDrainageButton->setText(tr("Drain"));
|
||||
if(!mIsAutoDrainage)
|
||||
{
|
||||
EventCenter::Default()->triggerEvent(GUIEvents::GUIErrorRaise, nullptr, (QObject*)&aMessage);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -277,7 +282,13 @@ void ScanFormWidget::initCommandWidget(QHBoxLayout *layout)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
finishWaterPorcess(mWaterProcessMode);
|
||||
|
||||
if(mIsAutoDrainage)
|
||||
{
|
||||
return;
|
||||
}
|
||||
QString message;
|
||||
if(aIsSucessful)
|
||||
{
|
||||
@@ -379,8 +390,10 @@ void ScanFormWidget::initCommandWidget(QHBoxLayout *layout)
|
||||
connect(ScanProcessSequence::getInstance(), &ScanProcessSequence::fullScanDataExport, [this]()
|
||||
{
|
||||
mScanProcessLabel->setText(tr("Data exporting, patient can leave the holder"));
|
||||
if(ScanProcessSequence::getInstance()->getScanPositionSize() == 1)
|
||||
mIsAutoDrainage = false;
|
||||
if(ScanProcessSequence::getInstance()->getScanPositionSize() == 1 && JsonObject::Instance()->getAutoDrainage() == true)
|
||||
{
|
||||
mIsAutoDrainage = true;
|
||||
mScanProcessLabel->setText(tr("Data exporting, patient can leave the holder, drainage in progress."));
|
||||
EventCenter::Default()->triggerEvent(GUIEvents::RequestAutoDrainage, nullptr, nullptr);
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ private:
|
||||
WaterProcessMode mWaterProcessMode;
|
||||
WaterCleanStep mWaterCleanStep;
|
||||
bool mIsWaterProcessing;
|
||||
bool mIsAutoDrainage;
|
||||
|
||||
void initCommandWidget(QHBoxLayout *layout);
|
||||
void initScanContent();
|
||||
|
||||
Reference in New Issue
Block a user