fix: Fix auto drainage logic.

This commit is contained in:
sunwen
2025-07-08 15:58:22 +08:00
parent 37cd84ae82
commit 9979b7941c
4 changed files with 20 additions and 26 deletions

View File

@@ -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);
}

View File

@@ -53,6 +53,7 @@ private:
WaterProcessMode mWaterProcessMode;
WaterCleanStep mWaterCleanStep;
bool mIsWaterProcessing;
bool mIsAutoDrainage;
void initCommandWidget(QHBoxLayout *layout);
void initScanContent();