diff --git a/src/device/DeviceManager.cpp b/src/device/DeviceManager.cpp index 98d26ca..49a7ac7 100644 --- a/src/device/DeviceManager.cpp +++ b/src/device/DeviceManager.cpp @@ -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,9 +289,15 @@ 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: + default: prepareFinishScan(false, msg); break; } @@ -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); } diff --git a/src/device/DeviceManager.h b/src/device/DeviceManager.h index 6ad078c..57b1adb 100644 --- a/src/device/DeviceManager.h +++ b/src/device/DeviceManager.h @@ -155,6 +155,8 @@ signals: void initializeFinished(); void initializeProgress(const QString& aProgress); void transferStatusUpdated(); + void startPreviewScanResult(bool aIsSucessful); + void startPumpControlResult(bool aIsSucessful); private: diff --git a/src/forms/scan/ScanFormWidget.cpp b/src/forms/scan/ScanFormWidget.cpp index a9901aa..10bf5ef 100644 --- a/src/forms/scan/ScanFormWidget.cpp +++ b/src/forms/scan/ScanFormWidget.cpp @@ -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")); }); }