Add recon page can search by patient info.
This commit is contained in:
@@ -5,12 +5,15 @@
|
||||
#include <QToolButton>
|
||||
#include <QVBoxLayout>
|
||||
#include <QHeaderView>
|
||||
#include <QSqlRecord>
|
||||
|
||||
#include "components/SlideTableView.h"
|
||||
#include "db/SQLHelper.h"
|
||||
#include "device/DeviceManager.h"
|
||||
#include "ScanSearchCriteriaForm.h"
|
||||
#include "ReconStateDelegate.h"
|
||||
#include "dialogs/DialogManager.h"
|
||||
#include "log/UserOperationLog.h"
|
||||
|
||||
ReconFormWidget::ReconFormWidget(QWidget *parent)
|
||||
: TabFormWidget(parent)
|
||||
@@ -49,6 +52,7 @@ ReconFormWidget::ReconFormWidget(QWidget *parent)
|
||||
connect(mBtnRefresh, &QToolButton::clicked, DeviceManager::Default(), &DeviceManager::updateReconState);
|
||||
connect(DeviceManager::Default(), &DeviceManager::updateReconStateFinished, mModel, &QSqlTableModel::select);
|
||||
connect(mSearchWidget, &ScanSearchCriteriaForm::searchFilterUpdated, this, &ReconFormWidget::updateSearchFilter);
|
||||
connect(mBtnDelete, &QToolButton::clicked, this, &ReconFormWidget::deleteReconRecord);
|
||||
|
||||
}
|
||||
|
||||
@@ -56,7 +60,7 @@ void ReconFormWidget::initTableView(QHBoxLayout *contentLayout)
|
||||
{
|
||||
// TableView for Scan
|
||||
ReconStateDelegate* delegate = new ReconStateDelegate(this);
|
||||
mScanTable->setItemDelegateForColumn(9, delegate);
|
||||
mScanTable->setItemDelegateForColumn(getTableColumnIndex("State"), delegate);
|
||||
mScanTable->setAlternatingRowColors(true);
|
||||
mScanTable->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
mScanTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
@@ -70,16 +74,16 @@ void ReconFormWidget::initTableView(QHBoxLayout *contentLayout)
|
||||
|
||||
mScanTable->setSortingEnabled(true); // enable sortingEnabled
|
||||
mScanTable->setModel(mModel);
|
||||
mScanTable->hideColumn(0);
|
||||
mScanTable->hideColumn(1);
|
||||
mScanTable->hideColumn(5);
|
||||
mScanTable->hideColumn(getTableColumnIndex("ScanID"));
|
||||
mScanTable->hideColumn(getTableColumnIndex("ReferenceID"));
|
||||
mScanTable->hideColumn(getTableColumnIndex("UpdateTime"));
|
||||
|
||||
mScanTable->setColumnWidth(2, 200);
|
||||
mScanTable->setColumnWidth(3, 200);
|
||||
mScanTable->setColumnWidth(4, 300);
|
||||
mScanTable->setColumnWidth(6, 200);
|
||||
mScanTable->setColumnWidth(7, 100);
|
||||
mScanTable->setColumnWidth(8, 200);
|
||||
mScanTable->setColumnWidth(getTableColumnIndex("PatientID"), 200);
|
||||
mScanTable->setColumnWidth(getTableColumnIndex("AccessionNumber"), 200);
|
||||
mScanTable->setColumnWidth(getTableColumnIndex("ScanDateTime"), 300);
|
||||
mScanTable->setColumnWidth(getTableColumnIndex("PatientName"), 200);
|
||||
mScanTable->setColumnWidth(getTableColumnIndex("Laterality"), 100);
|
||||
mScanTable->setColumnWidth(getTableColumnIndex("OperatorName"), 200);
|
||||
contentLayout->addWidget(mScanTable);
|
||||
//table current row selection changing event
|
||||
|
||||
@@ -90,16 +94,16 @@ void ReconFormWidget::initDataModel()
|
||||
{
|
||||
//TODO:单独初始化预防SQL错误
|
||||
mModel = SQLHelper::getTable("Scan");
|
||||
mModel->sort(4, Qt::DescendingOrder);
|
||||
mModel->sort(getTableColumnIndex("ScanDateTime"), Qt::DescendingOrder);
|
||||
updateSearchFilter();
|
||||
|
||||
mModel->setHeaderData(2, Qt::Horizontal, tr("Patient ID"));
|
||||
mModel->setHeaderData(3, Qt::Horizontal, tr("Accession Number"));
|
||||
mModel->setHeaderData(6, Qt::Horizontal, tr("Patient Name"));
|
||||
mModel->setHeaderData(4, Qt::Horizontal, tr("Scan Time"));
|
||||
mModel->setHeaderData(7, Qt::Horizontal, tr("Laterality"));
|
||||
mModel->setHeaderData(8, Qt::Horizontal, tr("Operator Name"));
|
||||
mModel->setHeaderData(9, Qt::Horizontal, tr("State"));
|
||||
mModel->setHeaderData(getTableColumnIndex("PatientID"), Qt::Horizontal, tr("Patient ID"));
|
||||
mModel->setHeaderData(getTableColumnIndex("AccessionNumber"), Qt::Horizontal, tr("Accession Number"));
|
||||
mModel->setHeaderData(getTableColumnIndex("PatientName"), Qt::Horizontal, tr("Patient Name"));
|
||||
mModel->setHeaderData(getTableColumnIndex("ScanDateTime"), Qt::Horizontal, tr("Scan Time"));
|
||||
mModel->setHeaderData(getTableColumnIndex("Laterality"), Qt::Horizontal, tr("Laterality"));
|
||||
mModel->setHeaderData(getTableColumnIndex("OperatorName"), Qt::Horizontal, tr("Operator Name"));
|
||||
mModel->setHeaderData(getTableColumnIndex("State"), Qt::Horizontal, tr("State"));
|
||||
}
|
||||
|
||||
void ReconFormWidget::updateSearchFilter()
|
||||
@@ -107,3 +111,51 @@ void ReconFormWidget::updateSearchFilter()
|
||||
mModel->setFilter(mSearchWidget->getSearchFilter());
|
||||
mModel->select();
|
||||
}
|
||||
|
||||
void ReconFormWidget::showEvent(QShowEvent *aEvent)
|
||||
{
|
||||
TabFormWidget::showEvent(aEvent);
|
||||
DeviceManager::Default()->updateReconState();
|
||||
}
|
||||
|
||||
void ReconFormWidget::deleteReconRecord()
|
||||
{
|
||||
if(mScanTable->currentIndex().row() < 0)
|
||||
{
|
||||
DialogManager::Default()->requestAlertMessage(tr("No data selected."), DialogButtonMode::OkOnly, tr("Alert"));
|
||||
return;
|
||||
}
|
||||
|
||||
int currentRowIndex = mScanTable->currentIndex().row();
|
||||
int state = mModel->index(currentRowIndex, getTableColumnIndex("State")).data().toInt();
|
||||
if(state != 999)
|
||||
{
|
||||
DialogManager::Default()->requestAlertMessage(tr("Can not delete this record before pacs succeed."), DialogButtonMode::OkOnly, tr("Alert"));
|
||||
return;
|
||||
}
|
||||
QString patientName = mModel->index(currentRowIndex, getTableColumnIndex("PatientName")).data().toString();
|
||||
if (DialogManager::Default()->requestAlertMessage(QString(tr("Delete recon record with patient \"%1\" ?")).arg(patientName),DialogButtonMode::OkAndCancel,tr("Confirm")) != QDialog::Accepted)
|
||||
{
|
||||
return;
|
||||
}
|
||||
mModel->removeRow(currentRowIndex);
|
||||
if (mModel->submitAll())
|
||||
{
|
||||
mModel->select();
|
||||
if (mModel->rowCount() > 0)
|
||||
{
|
||||
mScanTable->selectRow(0);
|
||||
mModel->selectRow(0);
|
||||
LOG_USER_OPERATION(DeletePatient)
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DialogManager::Default()->requestAlertMessage(tr("Can't delete selected record , db error!"), DialogButtonMode::OkOnly, tr("Alert"));
|
||||
}
|
||||
}
|
||||
|
||||
int ReconFormWidget::getTableColumnIndex(const QString& aColumnName)
|
||||
{
|
||||
return mModel->record().indexOf(aColumnName);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user