feat: Add filter usage warning in water process mode.

This commit is contained in:
sunwen
2025-03-20 15:41:02 +08:00
parent a2008c6f58
commit 014a7abdca
9 changed files with 296 additions and 144 deletions

View File

@@ -22,6 +22,7 @@
#include "components/WaveWidget.h"
#include "components/ZFlashWidget.h"
#include "utilities/ScanProcessSequence.h"
#include "utilities/FilterUsageCalculator.h"
#include "dicom/MPPSManager.h"
#ifdef WIN32
@@ -127,7 +128,9 @@ void ScanFormWidget::initCommandWidget(QHBoxLayout *layout)
connect(mWaterfloodButton, &QToolButton::clicked, [this](bool aStatus)
{
if(aStatus && DialogManager::Default()->requestAlertMessage(tr("Please confirm if water injection is required ?"), DialogButtonMode::OkAndCancel, tr("Confirm Water Injection")) == QDialog::Rejected)
QString filterMessage = FilterUsageCalculator::getCurrentFilterUsage() > FilterUsageCalculator::getMaximumFilterUsage() ?
tr("\n(The filter element has expired, please pay attention to replacing the filter element)"):"";
if(aStatus && DialogManager::Default()->requestAlertMessage(tr("Please confirm if water injection is required ?") + filterMessage, DialogButtonMode::OkAndCancel, tr("Confirm Water Injection")) == QDialog::Rejected)
{
mWaterfloodButton->setChecked(!aStatus);
return;
@@ -169,7 +172,9 @@ void ScanFormWidget::initCommandWidget(QHBoxLayout *layout)
connect(mCleanButton, &QToolButton::clicked, [this](bool aStatus)
{
if(aStatus && DialogManager::Default()->requestAlertMessage(tr("Please confirm if cleaning and disinfection are required. ?"), DialogButtonMode::OkAndCancel, tr("Confirm cleaning")) == QDialog::Rejected)
QString filterMessage = FilterUsageCalculator::getCurrentFilterUsage() > FilterUsageCalculator::getMaximumFilterUsage() ?
tr("\n(The filter element has expired, please pay attention to replacing the filter element)"):"";
if(aStatus && DialogManager::Default()->requestAlertMessage(tr("Please confirm if cleaning and disinfection are required ?") + filterMessage, DialogButtonMode::OkAndCancel, tr("Confirm cleaning")) == QDialog::Rejected)
{
mCleanButton->setChecked(!aStatus);
return;
@@ -279,6 +284,7 @@ void ScanFormWidget::initCommandWidget(QHBoxLayout *layout)
switch (mWaterProcessMode)
{
case WaterFloodMode:
FilterUsageCalculator::addFilterUsageByWaterFloodMode();
message = tr("Waterflood finished.");
DialogManager::Default()->requestAlertMessage(message, DialogButtonMode::OkOnly, tr("Confirm Water Injection"));
break;
@@ -392,6 +398,7 @@ void ScanFormWidget::processWaterCleanResult()
switch (mWaterCleanStep)
{
case FirstWaterClean:
FilterUsageCalculator::addFilterUsageByCleanMode();
message = tr("Please click the confirm button for cleaning after disinfection.");
if(DialogManager::Default()->requestAlertMessage(message, DialogButtonMode::OkAndCancel, tr("Confirm cleaning")) == QDialog::Accepted)
{
@@ -399,6 +406,7 @@ void ScanFormWidget::processWaterCleanResult()
}
break;
case SecondWaterClean:
FilterUsageCalculator::addFilterUsageByCleanMode();
message = tr("cleanning finished.");
DialogManager::Default()->requestAlertMessage(message, DialogButtonMode::OkOnly, tr("Confirm cleaning"));
break;

View File

@@ -23,6 +23,7 @@
#include "utilities/GetLockScreenTimeHelper.h"
#include "utilities/GetProtocalHelper.h"
#include "utilities/WorklistFilterHelper.h"
#include "utilities/FilterUsageCalculator.h"
GeneralForm::GeneralForm(QWidget* aParent)
: QWidget(aParent)
@@ -119,6 +120,19 @@ GeneralForm::GeneralForm(QWidget* aParent)
worklistFilterDateHeaderLayout->addWidget(worklistFilterDateButton);
worklistFilterDateHeaderLayout->addSpacerItem(new QSpacerItem(1000, 20, QSizePolicy::Fixed));
//Filter Usage Reset
QWidget* filterUsageHeader = new QWidget(this);
mLayout->addWidget(filterUsageHeader);
QHBoxLayout* filterUsageLayout = new QHBoxLayout(filterUsageHeader);
QLabel* filterUsageLabel = new QLabel(tr("Filter Usage Reset"), this);
filterUsageLayout->addWidget(filterUsageLabel);
filterUsageLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
QPushButton* filterUsageResetButton = new QPushButton(filterUsageHeader);
filterUsageResetButton->setFixedWidth(180);
filterUsageResetButton->setText(tr("Reset"));
filterUsageLayout->addWidget(filterUsageResetButton);
filterUsageLayout->addSpacerItem(new QSpacerItem(1000, 20, QSizePolicy::Fixed));
//Complete Notify
QWidget* scanCompleteHeader = new QWidget(this);
mLayout->addWidget(scanCompleteHeader);
@@ -304,6 +318,14 @@ GeneralForm::GeneralForm(QWidget* aParent)
}
});
connect(filterUsageResetButton, &QPushButton::clicked, []()
{
if (DialogManager::Default()->requestAlertMessage(tr("Please confirm if the filter usage reset is required?"),DialogButtonMode::OkAndCancel) == QDialog::Accepted)
{
FilterUsageCalculator::clearFilterUsage();
}
});
connect(scanCompleteButton, &ImageSwitch::clicked, [=]()
{
bool isOpen = scanCompleteButton->getChecked();