Add Anonymous mode

This commit is contained in:
kradchen
2023-09-15 11:42:40 +08:00
parent 6c5734396a
commit 3799130487
20 changed files with 467 additions and 116 deletions

View File

@@ -48,6 +48,7 @@ mUI(new Ui::PatientDetailForm)
connect(mBtnDelete, &QToolButton::clicked, [=](){
emit deleteClicked();
});
setBtnEnable(false);
}
void PatientDetailForm::reloadLanguage() {
@@ -72,6 +73,8 @@ void PatientDetailForm::setPatientInformation(PatientInformation* information) {
mUI->lblAccno->setText(tr("AccNo: ")+information->AccessionNumber);
mStore = *information;
setBtnEnable(true);
}
}
@@ -94,6 +97,12 @@ void PatientDetailForm::confirmModeOn(int protocol)
}
void PatientDetailForm::setBtnEnable(bool enable)
{
mBtnDelete->setEnabled(enable);
mBtnEdit->setEnabled(enable);
}
void PatientDetailForm::storePatientInformation() {
}

View File

@@ -20,6 +20,7 @@ public:
}
void clearPatientInformation();
void confirmModeOn(int protocol);
void setBtnEnable(bool enable);
signals:
void hideBtnClicked();
void editClicked();

View File

@@ -14,6 +14,7 @@
#include <QDebug>
#include "components/SlideTableView.h"
#include "json/jsonobject.h"
#include "db/SQLHelper.h"
#include "event/EventCenter.h"
#include "dialogs/DialogManager.h"
@@ -62,16 +63,23 @@ SelectFormWidget::SelectFormWidget(QWidget* parent)
});
// event ReloadLanguage slot;
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, this, &SelectFormWidget::reloadLanguage);
connect(EventCenter::Default(), &EventCenter::AnonymousModeChanged, this, &SelectFormWidget::updateDataByAnonymousMode);
//first prepare buttons!
prepareButtons(false);
}
void SelectFormWidget::prepareButtons(bool disableALL) {
bool anonymousMode = JsonObject::Instance()->getAnonymousMode();
bool stateFlag = (mPatTable->currentIndex().row() >= 0);
mBtnAdd->setEnabled(!anonymousMode && !disableALL);
mBtnWorklist->setEnabled(!anonymousMode && !disableALL);
patientDetailForm->setBtnEnable(!anonymousMode && stateFlag && !disableALL);
// if (mBtnAdd)mBtnEdit->setEnabled(!anonymousMode && stateFlag && !disableALL);
// if (mBtnAdd)mBtnDelete->setEnabled(!anonymousMode&& stateFlag && !disableALL);
mBtnSelect->setEnabled(stateFlag && !disableALL);
// mBtnDelete->setEnabled(stateFlag && !disableALL);
// mBtnEdit->setEnabled(stateFlag && !disableALL);
mBtnAdd->setEnabled(!disableALL);
}
void SelectFormWidget::initGeneralButtons(QHBoxLayout *layout) {
@@ -231,7 +239,26 @@ void SelectFormWidget::initTableView(QHBoxLayout *contentLayout) {// TableView f
void SelectFormWidget::initDataModel() {//TODO:单独初始化预防SQL错误
mModel = SQLHelper::getTable("Patient");
mModel->sort(mModel->record().indexOf("AddDate"), Qt::DescendingOrder);
mModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
bool anonymousMode = JsonObject::Instance()->getAnonymousMode();
if (anonymousMode)
{
mModel->setFilter("1=2");
}
mModel->select();
if (anonymousMode)
{
mModel->insertRow(0);
mModel->setData(mModel->index(0,0),"000000001");
mModel->setData(mModel->index(0,1),"AnonymousPatient");
mModel->setData(mModel->index(0,2),"");
mModel->setData(mModel->index(0,3),"AnonymousPatient");
mModel->setData(mModel->index(0,4),"2000-01-01");
mModel->setData(mModel->index(0,5),"M");
mModel->setData(mModel->index(0,6),"2000-01-01");
mModel->setData(mModel->index(0,7),"");
}
mModel->setHeaderData(1, Qt::Horizontal, "ID");
mModel->setHeaderData(2, Qt::Horizontal, tr("AccessionNumber"));
mModel->setHeaderData(3, Qt::Horizontal, tr("Name"));
@@ -264,8 +291,37 @@ void SelectFormWidget::reloadLanguage(){
//mBtnWorklist->setText(tr("Worklist"));
mBtnAdd->setText(tr("Add"));
mBtnEdit->setText(tr("Edit"));
mBtnDelete->setText(tr("Delete"));
mBtnSelect->setText(tr("Select"));
}
void SelectFormWidget::updateDataByAnonymousMode(){
bool anonymousMode = JsonObject::Instance()->getAnonymousMode();
EventCenter::Default()->triggerEvent(GUIEvents::PatientSelected,this,nullptr);
if (anonymousMode)
{
mModel->setFilter("1=2");
mModel->select();
mModel->insertRow(0);
mModel->setData(mModel->index(0,0),"000000001");
mModel->setData(mModel->index(0,1),"AnonymousPatient");
mModel->setData(mModel->index(0,2),"");
mModel->setData(mModel->index(0,3),"AnonymousPatient");
mModel->setData(mModel->index(0,4),"2000-01-01");
mModel->setData(mModel->index(0,5),"M");
mModel->setData(mModel->index(0,6),"2000-01-01");
mModel->setData(mModel->index(0,7),"");
mPatTable->selectRow(0);
mModel->selectRow(0);
}
else{
mModel->revertAll();
mModel->setFilter("");
mModel->select();
if (mModel->rowCount()>0){
mPatTable->selectRow(0);
mModel->selectRow(0);
}
}
prepareButtons(false);
}

View File

@@ -20,13 +20,14 @@ Q_OBJECT
public:
explicit SelectFormWidget(QWidget *parent = nullptr);
~SelectFormWidget() override = default;;
~SelectFormWidget() override = default;
public slots:
void updateDataByAnonymousMode();
private:
QString selectedPatientUID;
void
setPatientDetail(const SlideTableView *table, const QSqlTableModel *model, PatientDetailForm *edit_patient) const;
void setPatientDetail(const SlideTableView *table, const QSqlTableModel *model, PatientDetailForm *edit_patient) const;
QToolButton *mBtnAccount;
QToolButton *mBtnWorklist;