Fix when dms disconnect, preview button and dranage button is checkable.

This commit is contained in:
sunwen
2023-09-05 14:27:30 +08:00
parent 7600f573f0
commit c988dfe394
3 changed files with 51 additions and 10 deletions

View File

@@ -210,9 +210,12 @@ void DeviceManager::processInitializeProgress(const QString& aProgress)
switch (code)
{
case 1:
emit initializeProgress(msg);
//emit initializeProgress(msg);
break;
case 2:
emit initializeProgress(msg);
break;
case 3:
prepareFinishInitialize();
emit initializeFinished();
break;
@@ -286,6 +289,12 @@ void DeviceManager::processScanProgress(const QString& aProgress)
break;
}
case 2:
{
QVariant var(tr("Patient can leave.\n") + QString("progress:%1%").arg(msg));
TRIGGER_EVENT(InvokeOperationProgress, nullptr, (QObject *) &var);
break;
}
case 3:
prepareFinishScan(true);
break;
default:
@@ -427,11 +436,13 @@ void DeviceManager::startPreview()
DeviceStatus status = getDeviceStatus();
if(status == DeviceStatus::Unkonw)
{
emit startPreviewScanResult(false);
return;
}
if (status != DeviceStatus::Rready)
{
emit startPreviewScanResult(false);
QString msg(status != DeviceStatus::Rready ? "Can't start preview,Device is not ready!" : "Start preview operation fail!");
THROW_ERROR(msg);
return;
@@ -440,12 +451,14 @@ void DeviceManager::startPreview()
DmsSyncActionResult result = mPreviewScanAction->execute();
if(!result.mIsSucessful)
{
emit startPreviewScanResult(false);
THROW_ERROR(result.mData);
return;
}
QJsonObject jsonObj = toJsonObject(result.mData);
if(!jsonObj.contains("code") || jsonObj["code"].toInt() !=0)
{
emit startPreviewScanResult(false);
QString msg = jsonObj.contains("info") ? jsonObj["info"].toString() : DEFAULT_DMS_START_FAILED;
THROW_ERROR(msg);
return;
@@ -453,6 +466,7 @@ void DeviceManager::startPreview()
AppGlobalValues::setInProcessing(true);
mIsPreviewing = true;
emit startPreviewScanResult(true);
TRIGGER_EVENT(ResponsePreview, nullptr, nullptr);
}
@@ -1026,9 +1040,11 @@ void DeviceManager::controlDrainage(const QString& aCode)
QJsonObject jsonObj = toJsonObject(result.mData);
if(jsonObj["code"].toInt() == 0 )
{
emit startPumpControlResult(true);
return;
}
}
emit startPumpControlResult(false);
QString msg = tr("Open pump failed.");
THROW_ERROR(msg);
}

View File

@@ -155,6 +155,8 @@ signals:
void initializeFinished();
void initializeProgress(const QString& aProgress);
void transferStatusUpdated();
void startPreviewScanResult(bool aIsSucessful);
void startPumpControlResult(bool aIsSucessful);
private:

View File

@@ -148,16 +148,40 @@ void ScanFormWidget::initScanControlBar(QHBoxLayout *layout){
connect(mBtnRefresh, &QToolButton::clicked, [=]() {
QString patientInf(mPatInf->getCurrentPatientJsonString(true));
LOG_USER_OPERATION(StartRefresh)
LOG_USER_OPERATION("Start Empty Scan")
EventCenter::Default()->triggerEvent(RequestEmptyScan, nullptr, (QObject*)(&patientInf));
});
connect(mBtnPreview, &QToolButton::clicked, [=]() {
LOG_USER_OPERATION(StartPreview)
LOG_USER_OPERATION(QString("Start Preview, ID: %1").arg(mPatInf->getPatientID()))
EventCenter::Default()->triggerEvent(RequestPreviewScan, nullptr, nullptr);
});
connect(DeviceManager::Default(), &DeviceManager::startPreviewScanResult, [this](bool aIsSucessful)
{
if(!aIsSucessful)
{
setPreviewing(false);
}
});
connect(DeviceManager::Default(), &DeviceManager::startPumpControlResult, [this](bool aIsSucessful)
{
if(!aIsSucessful)
{
bool isChecked = mBtnDrainage->isChecked();
mBtnDrainage->setChecked(!isChecked);
if(isChecked)
{
mBtnDrainage->setText(tr("Drainage"));
}
else
{
mBtnDrainage->setText(tr("Drainaging"));
}
}
});
connect(mBtnScan, &QToolButton::clicked, [=]() {
QString patientInf(mPatInf->getCurrentPatientJsonString(false));
LOG_USER_OPERATION(StartScan)
LOG_USER_OPERATION(QString("Start Scan, ID: %1").arg(mPatInf->getPatientID()))
if (!DeviceManager::Default()->hasValidEmptyScan()){
QString msg(tr("No refresh data exists, please do Refresh operation first."));
EventCenter::Default()->triggerEvent(DeviceErrorRaise, nullptr, (QObject*)(&msg));
@@ -166,7 +190,7 @@ void ScanFormWidget::initScanControlBar(QHBoxLayout *layout){
EventCenter::Default()->triggerEvent(RequestPatientScan, nullptr, (QObject*)(&patientInf));
});
connect(mBtnStop, &QToolButton::clicked, [=]() {
LOG_USER_OPERATION(Stop)
LOG_USER_OPERATION("Stop Preview")
EventCenter::Default()->triggerEvent(RequestPreviewStop, nullptr, nullptr);
});
connect(mBtnDrainage, &QToolButton::clicked, [=](bool aSatus) {
@@ -176,19 +200,21 @@ void ScanFormWidget::initScanControlBar(QHBoxLayout *layout){
QString code = "1";
mBtnDrainage->setText(tr("Drainaging"));
EventCenter::Default()->triggerEvent(RequestDrainage, nullptr, (QObject*)(&code));
LOG_USER_OPERATION("Perform Drainage");
}
else
{
QString code = "0";
mBtnDrainage->setText(tr("Drainage"));
EventCenter::Default()->triggerEvent(RequestDrainage, nullptr, (QObject*)(&code));
LOG_USER_OPERATION("Stop Drainage");
}
});
}
void ScanFormWidget::protocolChanged(int type) {
printf("%d\r\n", type);
mPatInf->setProtocol(type);
LOG_USER_OPERATION(QString("Select Laterality %1").arg(type == 0 ? "Left" : "Right"));
}
void ScanFormWidget::setPreviewing(bool val) {
@@ -284,9 +310,6 @@ void ScanFormWidget::initEvents() {//Events-------------------------------------
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, this, &ScanFormWidget::reloadLanguage);
connect(EventCenter::Default(), &EventCenter::DeviceErrorRaise, [=](QObject* parent, QObject* msg){
printf("signal:%d\r\n",senderSignalIndex());
setPreviewing(false);
mBtnDrainage->setChecked(false);
mBtnDrainage->setText(tr("Drainage"));
});
}