diff --git a/cfgs/usct-product.json b/cfgs/usct-product.json new file mode 100644 index 0000000..d61d001 --- /dev/null +++ b/cfgs/usct-product.json @@ -0,0 +1,69 @@ +{ + "deviceparam": { + "aeTitle": "ACME1", + "hospitalAddr": "北京", + "hospitalName": "医院", + "localHost": "192.168.1.194", + "physicians": "zys;wang;zhang;li", + "port": "12345", + "stationName": "工作站" + }, + "donelist": { + "donelistDefaultDate": "1900-01-01" + }, + "general": { + "dateformat": "yyyy-MM-dd hh:mm:ss", + "defaultlanguage": "zh_CN", + "language": "zh_CN;en_US", + "institutionName": "浙江大学附属第二医院", + "institutionAddr": "杭州市滨江区", + "lockscreen": "30" + }, + "pacsservers": [{ + "ae": "HELLO", + "ip": "127.0.0.1", + "isdefault": "1", + "name": "test", + "port": "104" + }, { + "ae": "KISS", + "ip": "127.0.0.1", + "isdefault": "0", + "name": "nihao", + "port": "106" + }], + "protocol": { + "default": "LSTAND", + "lists": "LSTAND;RSTAND;LONE;RONE" + }, + "storagepolicy": { + "alarm": "false", + "dataexpired": "NoneExpired", + "threshold": "70" + }, + "waitinglist": { + "waitinglistDefaultDate": "1900-01-01" + }, + "lastlogin": { + "password": "", + "remember": "false", + "usercode": "" + }, + "wklistservers": [{ + "ae": "OFFIS", + "ip": "127.0.0.1", + "isdefault": "1", + "name": "wklist sever", + "port": "104" + }, { + "ae": "ACME1", + "ip": "127.0.0.1", + "isdefault": "0", + "name": "wklist1", + "port": "104" + }], + "worklistfilter": { + "default": "Today", + "lists": "Today;Recent3Days;ThisWeek;ThisMonth" + } +} \ No newline at end of file diff --git a/src/AdminSettingForm.cpp b/src/AdminSettingForm.cpp index 305efa9..6fbcbf9 100644 --- a/src/AdminSettingForm.cpp +++ b/src/AdminSettingForm.cpp @@ -12,52 +12,62 @@ #include "ui_tabformwidget.h" #include #include "UserOperationLogForm.h" +#include "generalform.h" +#include +#include "systemsettingform.h" -AdminSettingForm::AdminSettingForm(QWidget *parent, Qt::WindowFlags f) : TabFormWidget(parent) { +AdminSettingForm::AdminSettingForm(QWidget* parent, Qt::WindowFlags f) : TabFormWidget(parent) { - QHBoxLayout* layout = new QHBoxLayout(this); - this->ui->contentWidget->setLayout(layout); - QListWidget* widget = new QListWidget(this); - widget->setFixedWidth(250); - QStringList menus; - menus<addItems(menus); - widget->setSpacing(3); - for (int i = 0; i < menus.count(); ++i) { - widget->item(i)->setTextAlignment(Qt::AlignCenter); - } - layout->addWidget(widget); - QStackedWidget* stackedWidget = new QStackedWidget(this); + QHBoxLayout* layout = new QHBoxLayout(this); + this->ui->contentWidget->setLayout(layout); + QListWidget* widget = new QListWidget(this); + widget->setFixedWidth(250); + QStringList menus; + menus << tr("General") << tr("Account Manage") << tr("System Setting") << tr("System Information") << tr("Operation Log") << tr("About"); + widget->addItems(menus); + widget->setSpacing(3); + for (int i = 0; i < menus.count(); ++i) { + widget->item(i)->setTextAlignment(Qt::AlignCenter); + } + layout->addWidget(widget); + QStackedWidget* stackedWidget = new QStackedWidget(this); - QWidget* spacerLine2= new QWidget(this); - spacerLine2->setFixedWidth(2); - spacerLine2->setObjectName("verSpaceLine"); - layout->addWidget(spacerLine2); - layout->addWidget(stackedWidget); - this->ui->commandWidget->hide(); - QLabel* acc = new QLabel(this); - acc->setText("Account Manage"); - stackedWidget->addWidget(acc); + QWidget* spacerLine2 = new QWidget(this); + spacerLine2->setFixedWidth(2); + spacerLine2->setObjectName("verSpaceLine"); + layout->addWidget(spacerLine2); + layout->addWidget(stackedWidget); + this->ui->commandWidget->hide(); - QLabel* systemSetting = new QLabel(this); - systemSetting->setText("systemSetting"); - stackedWidget->addWidget(systemSetting); + GeneralForm* generalForm = new GeneralForm(this); + stackedWidget->addWidget(generalForm); - QLabel* Info = new QLabel(this); - Info->setText("info"); - stackedWidget->addWidget(Info); + QLabel* acc = new QLabel(this); + acc->setText("Account Manage"); + stackedWidget->addWidget(acc); - UserOperationLogForm* operationLogForm = new UserOperationLogForm(this); + systemSettingForm* systemSetting = new systemSettingForm(this); + stackedWidget->addWidget(systemSetting); - stackedWidget->addWidget(operationLogForm); + //QLabel* systemSetting = new QLabel(this); + //systemSetting->setText("systemSetting"); + //stackedWidget->addWidget(systemSetting); - QLabel* about = new QLabel(this); - about->setText("About"); - stackedWidget->addWidget(about); - widget->setCurrentRow(0); - connect(widget,&QListWidget::currentRowChanged,[=](int rowindex){ - stackedWidget->setCurrentIndex(rowindex); - }); + QLabel* Info = new QLabel(this); + Info->setText("info"); + stackedWidget->addWidget(Info); + + UserOperationLogForm* operationLogForm = new UserOperationLogForm(this); + + stackedWidget->addWidget(operationLogForm); + + QLabel* about = new QLabel(this); + about->setText("About"); + stackedWidget->addWidget(about); + widget->setCurrentRow(0); + connect(widget, &QListWidget::currentRowChanged, [=](int rowindex) { + stackedWidget->setCurrentIndex(rowindex); + }); } AdminSettingForm::~AdminSettingForm() { diff --git a/src/systemsettingform.cpp b/src/systemsettingform.cpp new file mode 100644 index 0000000..98e6c12 --- /dev/null +++ b/src/systemsettingform.cpp @@ -0,0 +1,76 @@ +#include "systemsettingform.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "json/jsonobject.h" +#include "SelectDialog.h" + +systemSettingForm::systemSettingForm(QWidget* parent) : QWidget(parent) +{ + + layout = new QVBoxLayout(this); + + QWidget* protocalHeader = new QWidget(this); + layout->addWidget(protocalHeader); + QHBoxLayout* protocalHeaderLayout = new QHBoxLayout(protocalHeader); + protocalHeaderLayout->addWidget(new QLabel(tr("Default Protocal"))); + QPushButton* btnPro = new QPushButton(protocalHeader); + protocalHeaderLayout->addWidget(btnPro); + protocalHeaderLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding)); + + QWidget* filterHeader = new QWidget(this); + layout->addWidget(filterHeader); + QHBoxLayout* filterHeaderLayout = new QHBoxLayout(filterHeader); + filterHeaderLayout->addWidget(new QLabel(tr("Default Worklist Filter"))); + QPushButton* btnFlt = new QPushButton(filterHeader); + filterHeaderLayout->addWidget(btnFlt); + filterHeaderLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding)); + + + layout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Expanding)); + + //init + btnPro->setText(JsonObject::Instance()->defaultProtocal()); + btnFlt->setText(JsonObject::Instance()->defaultFilter()); + + + connect(btnPro, &QPushButton::clicked, [=]() { + if (!protocal) { + protocal = new SelectDialog(this); + protocal->setWindowModality(Qt::WindowModal); + } + protocal->setAvailableDates(JsonObject::Instance()->protocals()); + protocal->setSelectedValue(JsonObject::Instance()->defaultProtocal()); + if (protocal->exec() == QDialog::Accepted) + { + QString pro = protocal->getSelectedValue(); + //take effect + JsonObject::Instance()->setDefaultProtocal(pro); + btnPro->setText(JsonObject::Instance()->defaultProtocal()); + } + }); + + connect(btnFlt, &QPushButton::clicked, [=]() { + if (!protocal) { + filter = new SelectDialog(this); + filter->setWindowModality(Qt::WindowModal); + } + filter->setAvailableDates(JsonObject::Instance()->worklistFilters()); + filter->setSelectedValue(JsonObject::Instance()->defaultFilter()); + if (filter->exec() == QDialog::Accepted) + { + QString pro = filter->getSelectedValue(); + //take effect + JsonObject::Instance()->setDefaultFilter(pro); + btnFlt->setText(JsonObject::Instance()->defaultFilter()); + } + }); +} + + diff --git a/src/systemsettingform.h b/src/systemsettingform.h new file mode 100644 index 0000000..d825e5b --- /dev/null +++ b/src/systemsettingform.h @@ -0,0 +1,25 @@ +#ifndef SYSTEMSETTINGFORM_H +#define SYSTEMSETTINGFORM_H + +#include +class QPushButton; +class QVBoxLayout; +class SelectDialog; + +class systemSettingForm : public QWidget +{ + Q_OBJECT +public: + explicit systemSettingForm(QWidget* parent = nullptr); + +signals: + +public slots: + +private: + QVBoxLayout* layout = nullptr; + SelectDialog* protocal = nullptr; + SelectDialog* filter = nullptr; +}; + +#endif // SYSTEMSETTINGFORM_H \ No newline at end of file