From 236e1e84a2db71a15fcb2ed88e280a0130175097 Mon Sep 17 00:00:00 2001 From: sunwen Date: Thu, 24 Aug 2023 15:11:18 +0800 Subject: [PATCH] Add set pacs settings. --- src/forms/settings/SystemSettingForm.cpp | 114 +++++++++++++---------- src/forms/settings/SystemSettingForm.h | 6 ++ src/recon/ReconManager.cpp | 15 +++ src/recon/ReconManager.h | 2 + 4 files changed, 87 insertions(+), 50 deletions(-) diff --git a/src/forms/settings/SystemSettingForm.cpp b/src/forms/settings/SystemSettingForm.cpp index 17234c9..76acf55 100644 --- a/src/forms/settings/SystemSettingForm.cpp +++ b/src/forms/settings/SystemSettingForm.cpp @@ -4,11 +4,13 @@ #include #include #include +#include #include "dialogs/DialogManager.h" +#include "dialogs/MultyMessageDialogManager.h" #include "json/jsonobject.h" #include "event/EventCenter.h" -#include "device/DeviceManager.h" +#include "recon/ReconManager.h" #include "json/cmdhelper.h" #include "components/ListBox.h" @@ -62,21 +64,21 @@ SystemSettingForm::SystemSettingForm(QWidget* parent) gridLayout->addWidget(line6, 7, 0); mDiskInfoCaller = QThread::create([=]() + { + double disksize = 0; + mDiskSizeFlag = cmdHelper::Instance()->getDiskSize(disksize); + mDiskSize = disksize; + updateStorageSize(); + while (true) { - double disksize = 0; - mDiskSizeFlag = cmdHelper::Instance()->getDiskSize(disksize); - mDiskSize = disksize; - updateStorageSize(); - while (true) - { - double duse = 0; - mDiskUsedSizeFlag = cmdHelper::Instance()->getDiskUsed(duse); - mDiskUsedSize = duse; - updateStorageUsed(); - QMetaObject::invokeMethod(mUI->batIcon, "startAnimation", Qt::QueuedConnection); - QThread::msleep(30000); - } - }); + double duse = 0; + mDiskUsedSizeFlag = cmdHelper::Instance()->getDiskUsed(duse); + mDiskUsedSize = duse; + updateStorageUsed(); + QMetaObject::invokeMethod(mUI->batIcon, "startAnimation", Qt::QueuedConnection); + QThread::msleep(30000); + } + }); mDiskInfoCaller->start(); //connection @@ -85,66 +87,72 @@ SystemSettingForm::SystemSettingForm(QWidget* parent) { //// } - }); + }); connect(scanConfirmButton, &ImageSwitch::clicked, [=]() { JsonObject::Instance()->setScanConfirm(scanConfirmButton->getChecked()); - }); + }); connect(scanCompleteButton, &ImageSwitch::clicked, [=]() { JsonObject::Instance()->setCompleteNotify(scanCompleteButton->getChecked()); - }); + }); connect(mUI->btnNetwork, &QToolButton::clicked, [=]() { if (DialogManager::Default()->requestInputAdminPasswd() == QDialog::Accepted) { //JsonObject::Instance()->setPassword(dialog.getPsw()); DialogManager::Default()->requestEditNetworkConfig(); } - }); + }); - connect(mUI->btnDICOM, &QToolButton::clicked, [=]() { - DialogManager::Default()->requestEditDicomConfig(); - }); + connect(mUI->btnDICOM, &QToolButton::clicked, [&]() { + if(DialogManager::Default()->requestEditDicomConfig() == QDialog::Accepted) + { + auto server = JsonObject::Instance()->getServer(JsonObject::PACS); + emit pacsSettingsSaved(server.name, server.ae, server.ip, server.port.toInt()); + } + }); connect(mUI->btnPro, &QPushButton::clicked, [=]() + { + DialogResult result = DialogManager::Default()->requestSelectProtocal(); + if (result.ResultCode == QDialog::Accepted) { - DialogResult result = DialogManager::Default()->requestSelectProtocal(); - if (result.ResultCode == QDialog::Accepted) - { - QString pro = result.ResultData.toString(); - //take effect - JsonObject::Instance()->setDefaultProtocal(pro); - mUI->btnPro->setText(JsonObject::Instance()->defaultProtocal()); - } - }); + QString pro = result.ResultData.toString(); + //take effect + JsonObject::Instance()->setDefaultProtocal(pro); + mUI->btnPro->setText(JsonObject::Instance()->defaultProtocal()); + } + }); connect(mUI->btnFlt, &QPushButton::clicked, [=]() + { + DialogResult result = DialogManager::Default()->requestSelectFilter(); + if (result.ResultCode == QDialog::Accepted) { - DialogResult result = DialogManager::Default()->requestSelectFilter(); - if (result.ResultCode == QDialog::Accepted) - { - QString flt = result.ResultData.toString(); - //take effect - JsonObject::Instance()->setDefaultFilter(flt); - mUI->btnFlt->setText(JsonObject::Instance()->defaultFilter()); - } - }); + QString flt = result.ResultData.toString(); + //take effect + JsonObject::Instance()->setDefaultFilter(flt); + mUI->btnFlt->setText(JsonObject::Instance()->defaultFilter()); + } + }); connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]() - { - mUI->retranslateUi(this); - mUI->btnPro->setText(JsonObject::Instance()->defaultProtocal()); - mUI->btnFlt->setText(JsonObject::Instance()->defaultFilter()); - mUI->swt_verify->setChecked(true); - updateStorageSize(); - updateStorageUsed(); - }); -} + { + mUI->retranslateUi(this); + mUI->btnPro->setText(JsonObject::Instance()->defaultProtocal()); + mUI->btnFlt->setText(JsonObject::Instance()->defaultFilter()); + mUI->swt_verify->setChecked(true); + updateStorageSize(); + updateStorageUsed(); + }); + connect(ReconManager::getInstance(), &ReconManager::setPacsSettingsResponsed, this, &SystemSettingForm::processPacsSettingsResponsed); + connect(this, &SystemSettingForm::pacsSettingsSaved, ReconManager::getInstance(), &ReconManager::setPacsSettings, Qt::QueuedConnection); + +} SystemSettingForm::~SystemSettingForm() { - mDiskInfoCaller->terminate(); delete mDiskInfoCaller; } @@ -160,6 +168,7 @@ void SystemSettingForm::updateStorageUsed() mUI->lbl_used->setText(tr("Get disk used size fail!")); } } + void SystemSettingForm::updateStorageSize() { //bool flag = AppGlobalValues::StorageFlag(); @@ -176,3 +185,8 @@ void SystemSettingForm::updateStorageSize() mUI->lbl_size->setText(tr("Get disk total size fail!")); } } + +void SystemSettingForm::processPacsSettingsResponsed(bool aResult, const QVariant& aMessage) +{ + MultyMessageDialogManager::getInstance()->raiseDialog(aMessage.toString(), aResult ? MessageLevel::Sucess : MessageLevel::Error); +} diff --git a/src/forms/settings/SystemSettingForm.h b/src/forms/settings/SystemSettingForm.h index 3bb934d..cbfe3a9 100644 --- a/src/forms/settings/SystemSettingForm.h +++ b/src/forms/settings/SystemSettingForm.h @@ -16,6 +16,12 @@ public: explicit SystemSettingForm(QWidget* aParent = nullptr); ~SystemSettingForm(); +signals: + void pacsSettingsSaved(const QString& aClientAETitle, const QString& aServerAETitle, const QString& aServerIP, int aServerPort); + +private slots: + void processPacsSettingsResponsed(bool aResult, const QVariant& aMessage); + private: void updateStorageSize(); void updateStorageUsed(); diff --git a/src/recon/ReconManager.cpp b/src/recon/ReconManager.cpp index c5ae83c..36173e1 100644 --- a/src/recon/ReconManager.cpp +++ b/src/recon/ReconManager.cpp @@ -94,3 +94,18 @@ void ReconManager::queryReconStatus(const QStringList& aScanIDs) } emit queryReconStateResponsed(true, QVariant::fromValue(result)); } + +void ReconManager::setPacsSettings(const QString& aClientAETitle, const QString& aServerAETitle, const QString& aServerIP, int aServerPort) +{ + PACSSetting settings = {aClientAETitle.toStdString(), aServerAETitle.toStdString(), aServerIP.toStdString(), aServerPort}; + auto response = mReconClient->SetPACSSetting(settings); + if(response.bad()) + { + QString msg = QString("Set PACS settings failed : ") + response.error().data(); + qDebug()<< msg; + emit setPacsSettingsResponsed(false, QVariant::fromValue(msg)); + return; + } + + emit setPacsSettingsResponsed(true, QVariant::fromValue(QString("Set PACS settings succeed."))); +} diff --git a/src/recon/ReconManager.h b/src/recon/ReconManager.h index 830ba08..1d541fe 100644 --- a/src/recon/ReconManager.h +++ b/src/recon/ReconManager.h @@ -23,6 +23,7 @@ public slots: void createEmptyScan(const QString& aScanID, const QString& aPath); void createScan(const QString& aScanID, const QString& aPatientID, const QString& aReferenceID, const QString& aPath); void queryReconStatus(const QStringList& aScanIDs); + void setPacsSettings(const QString& aClientAETitle, const QString& aServerAETitle, const QString& aServerIP, int aServerPort); private: void init(); @@ -31,6 +32,7 @@ signals: void createEmptyScanResponsed(bool aResult, const QString& aScanID, const QString& aMessage = ""); void createScanResponsed(bool aResult, const QString& aScanID, const QString& aMessage = ""); void queryReconStateResponsed(bool aResult, const QVariant& aData); + void setPacsSettingsResponsed(bool aResult, const QVariant& aMessage); private: Recon::ReconClient* mReconClient;