Fix when dms disconnect, preview button and dranage button is checkable.
This commit is contained in:
@@ -210,9 +210,12 @@ void DeviceManager::processInitializeProgress(const QString& aProgress)
|
|||||||
switch (code)
|
switch (code)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
emit initializeProgress(msg);
|
//emit initializeProgress(msg);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
emit initializeProgress(msg);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
prepareFinishInitialize();
|
prepareFinishInitialize();
|
||||||
emit initializeFinished();
|
emit initializeFinished();
|
||||||
break;
|
break;
|
||||||
@@ -286,9 +289,15 @@ void DeviceManager::processScanProgress(const QString& aProgress)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 2:
|
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);
|
prepareFinishScan(true);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
prepareFinishScan(false, msg);
|
prepareFinishScan(false, msg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -427,11 +436,13 @@ void DeviceManager::startPreview()
|
|||||||
DeviceStatus status = getDeviceStatus();
|
DeviceStatus status = getDeviceStatus();
|
||||||
if(status == DeviceStatus::Unkonw)
|
if(status == DeviceStatus::Unkonw)
|
||||||
{
|
{
|
||||||
|
emit startPreviewScanResult(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status != DeviceStatus::Rready)
|
if (status != DeviceStatus::Rready)
|
||||||
{
|
{
|
||||||
|
emit startPreviewScanResult(false);
|
||||||
QString msg(status != DeviceStatus::Rready ? "Can't start preview,Device is not ready!" : "Start preview operation fail!");
|
QString msg(status != DeviceStatus::Rready ? "Can't start preview,Device is not ready!" : "Start preview operation fail!");
|
||||||
THROW_ERROR(msg);
|
THROW_ERROR(msg);
|
||||||
return;
|
return;
|
||||||
@@ -440,12 +451,14 @@ void DeviceManager::startPreview()
|
|||||||
DmsSyncActionResult result = mPreviewScanAction->execute();
|
DmsSyncActionResult result = mPreviewScanAction->execute();
|
||||||
if(!result.mIsSucessful)
|
if(!result.mIsSucessful)
|
||||||
{
|
{
|
||||||
|
emit startPreviewScanResult(false);
|
||||||
THROW_ERROR(result.mData);
|
THROW_ERROR(result.mData);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QJsonObject jsonObj = toJsonObject(result.mData);
|
QJsonObject jsonObj = toJsonObject(result.mData);
|
||||||
if(!jsonObj.contains("code") || jsonObj["code"].toInt() !=0)
|
if(!jsonObj.contains("code") || jsonObj["code"].toInt() !=0)
|
||||||
{
|
{
|
||||||
|
emit startPreviewScanResult(false);
|
||||||
QString msg = jsonObj.contains("info") ? jsonObj["info"].toString() : DEFAULT_DMS_START_FAILED;
|
QString msg = jsonObj.contains("info") ? jsonObj["info"].toString() : DEFAULT_DMS_START_FAILED;
|
||||||
THROW_ERROR(msg);
|
THROW_ERROR(msg);
|
||||||
return;
|
return;
|
||||||
@@ -453,6 +466,7 @@ void DeviceManager::startPreview()
|
|||||||
|
|
||||||
AppGlobalValues::setInProcessing(true);
|
AppGlobalValues::setInProcessing(true);
|
||||||
mIsPreviewing = true;
|
mIsPreviewing = true;
|
||||||
|
emit startPreviewScanResult(true);
|
||||||
TRIGGER_EVENT(ResponsePreview, nullptr, nullptr);
|
TRIGGER_EVENT(ResponsePreview, nullptr, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1026,9 +1040,11 @@ void DeviceManager::controlDrainage(const QString& aCode)
|
|||||||
QJsonObject jsonObj = toJsonObject(result.mData);
|
QJsonObject jsonObj = toJsonObject(result.mData);
|
||||||
if(jsonObj["code"].toInt() == 0 )
|
if(jsonObj["code"].toInt() == 0 )
|
||||||
{
|
{
|
||||||
|
emit startPumpControlResult(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
emit startPumpControlResult(false);
|
||||||
QString msg = tr("Open pump failed.");
|
QString msg = tr("Open pump failed.");
|
||||||
THROW_ERROR(msg);
|
THROW_ERROR(msg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -155,6 +155,8 @@ signals:
|
|||||||
void initializeFinished();
|
void initializeFinished();
|
||||||
void initializeProgress(const QString& aProgress);
|
void initializeProgress(const QString& aProgress);
|
||||||
void transferStatusUpdated();
|
void transferStatusUpdated();
|
||||||
|
void startPreviewScanResult(bool aIsSucessful);
|
||||||
|
void startPumpControlResult(bool aIsSucessful);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -148,16 +148,40 @@ void ScanFormWidget::initScanControlBar(QHBoxLayout *layout){
|
|||||||
|
|
||||||
connect(mBtnRefresh, &QToolButton::clicked, [=]() {
|
connect(mBtnRefresh, &QToolButton::clicked, [=]() {
|
||||||
QString patientInf(mPatInf->getCurrentPatientJsonString(true));
|
QString patientInf(mPatInf->getCurrentPatientJsonString(true));
|
||||||
LOG_USER_OPERATION(StartRefresh)
|
LOG_USER_OPERATION("Start Empty Scan")
|
||||||
EventCenter::Default()->triggerEvent(RequestEmptyScan, nullptr, (QObject*)(&patientInf));
|
EventCenter::Default()->triggerEvent(RequestEmptyScan, nullptr, (QObject*)(&patientInf));
|
||||||
});
|
});
|
||||||
connect(mBtnPreview, &QToolButton::clicked, [=]() {
|
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);
|
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, [=]() {
|
connect(mBtnScan, &QToolButton::clicked, [=]() {
|
||||||
QString patientInf(mPatInf->getCurrentPatientJsonString(false));
|
QString patientInf(mPatInf->getCurrentPatientJsonString(false));
|
||||||
LOG_USER_OPERATION(StartScan)
|
LOG_USER_OPERATION(QString("Start Scan, ID: %1").arg(mPatInf->getPatientID()))
|
||||||
if (!DeviceManager::Default()->hasValidEmptyScan()){
|
if (!DeviceManager::Default()->hasValidEmptyScan()){
|
||||||
QString msg(tr("No refresh data exists, please do Refresh operation first."));
|
QString msg(tr("No refresh data exists, please do Refresh operation first."));
|
||||||
EventCenter::Default()->triggerEvent(DeviceErrorRaise, nullptr, (QObject*)(&msg));
|
EventCenter::Default()->triggerEvent(DeviceErrorRaise, nullptr, (QObject*)(&msg));
|
||||||
@@ -166,7 +190,7 @@ void ScanFormWidget::initScanControlBar(QHBoxLayout *layout){
|
|||||||
EventCenter::Default()->triggerEvent(RequestPatientScan, nullptr, (QObject*)(&patientInf));
|
EventCenter::Default()->triggerEvent(RequestPatientScan, nullptr, (QObject*)(&patientInf));
|
||||||
});
|
});
|
||||||
connect(mBtnStop, &QToolButton::clicked, [=]() {
|
connect(mBtnStop, &QToolButton::clicked, [=]() {
|
||||||
LOG_USER_OPERATION(Stop)
|
LOG_USER_OPERATION("Stop Preview")
|
||||||
EventCenter::Default()->triggerEvent(RequestPreviewStop, nullptr, nullptr);
|
EventCenter::Default()->triggerEvent(RequestPreviewStop, nullptr, nullptr);
|
||||||
});
|
});
|
||||||
connect(mBtnDrainage, &QToolButton::clicked, [=](bool aSatus) {
|
connect(mBtnDrainage, &QToolButton::clicked, [=](bool aSatus) {
|
||||||
@@ -176,19 +200,21 @@ void ScanFormWidget::initScanControlBar(QHBoxLayout *layout){
|
|||||||
QString code = "1";
|
QString code = "1";
|
||||||
mBtnDrainage->setText(tr("Drainaging"));
|
mBtnDrainage->setText(tr("Drainaging"));
|
||||||
EventCenter::Default()->triggerEvent(RequestDrainage, nullptr, (QObject*)(&code));
|
EventCenter::Default()->triggerEvent(RequestDrainage, nullptr, (QObject*)(&code));
|
||||||
|
LOG_USER_OPERATION("Perform Drainage");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QString code = "0";
|
QString code = "0";
|
||||||
mBtnDrainage->setText(tr("Drainage"));
|
mBtnDrainage->setText(tr("Drainage"));
|
||||||
EventCenter::Default()->triggerEvent(RequestDrainage, nullptr, (QObject*)(&code));
|
EventCenter::Default()->triggerEvent(RequestDrainage, nullptr, (QObject*)(&code));
|
||||||
|
LOG_USER_OPERATION("Stop Drainage");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScanFormWidget::protocolChanged(int type) {
|
void ScanFormWidget::protocolChanged(int type) {
|
||||||
printf("%d\r\n", type);
|
|
||||||
mPatInf->setProtocol(type);
|
mPatInf->setProtocol(type);
|
||||||
|
LOG_USER_OPERATION(QString("Select Laterality %1").arg(type == 0 ? "Left" : "Right"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScanFormWidget::setPreviewing(bool val) {
|
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::ReloadLanguage, this, &ScanFormWidget::reloadLanguage);
|
||||||
connect(EventCenter::Default(), &EventCenter::DeviceErrorRaise, [=](QObject* parent, QObject* msg){
|
connect(EventCenter::Default(), &EventCenter::DeviceErrorRaise, [=](QObject* parent, QObject* msg){
|
||||||
printf("signal:%d\r\n",senderSignalIndex());
|
printf("signal:%d\r\n",senderSignalIndex());
|
||||||
setPreviewing(false);
|
|
||||||
mBtnDrainage->setChecked(false);
|
|
||||||
mBtnDrainage->setText(tr("Drainage"));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user