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

@@ -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);
}