Patient table change, add order by add date
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include <QHBoxLayout>
|
||||
#include <QToolButton>
|
||||
#include <QTableWidget>
|
||||
#include "components/SlideableTableView.h"
|
||||
#include <QHeaderView>
|
||||
#include <QUuid>
|
||||
#include <QDate>
|
||||
@@ -22,6 +23,15 @@
|
||||
item->setTextAlignment(Qt::AlignmentFlag::AlignCenter);\
|
||||
table->setItem(row,col,item);
|
||||
|
||||
|
||||
int queryValue(QSqlTableModel* model, int colID, QVariant var)
|
||||
{
|
||||
for (int i = 0; i < model->rowCount(); ++i) {
|
||||
if (model->data(model->index(i,colID))==var) return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
SelectFormWidget::SelectFormWidget(QWidget *parent) :
|
||||
TabFormWidget(parent)
|
||||
{
|
||||
@@ -60,33 +70,38 @@ SelectFormWidget::SelectFormWidget(QWidget *parent) :
|
||||
QHBoxLayout* contentLayout =new QHBoxLayout();
|
||||
this->ui->contentWidget->setLayout(contentLayout);
|
||||
// TableView for patient
|
||||
QTableView* table= new QTableView(this);
|
||||
QTableView* table= new SlideableTableView(this);
|
||||
table->setAlternatingRowColors(true);
|
||||
table->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
table->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||
table->verticalHeader()->setDefaultSectionSize(38);
|
||||
table->horizontalHeader()->setStretchLastSection(true);
|
||||
//dat from SQLITE
|
||||
//data from SQLITE
|
||||
|
||||
auto model = SQLHelper::getTable("Patient");
|
||||
model->setFilter("Flag=0");
|
||||
model->sort(5,Qt::DescendingOrder);
|
||||
model->select();
|
||||
|
||||
model->setHeaderData(1,Qt::Horizontal,"ID");
|
||||
model->setHeaderData(2,Qt::Horizontal,"Name");
|
||||
model->setHeaderData(3,Qt::Horizontal,"Birth Date");
|
||||
|
||||
model->setHeaderData(5,Qt::Horizontal,"Add Date");
|
||||
table->setModel((QAbstractItemModel*)model);
|
||||
table->hideColumn(0);
|
||||
table->hideColumn(6);
|
||||
table->hideColumn(7);
|
||||
|
||||
|
||||
table->show();
|
||||
|
||||
// table->setSortingEnabled(true);
|
||||
table->setColumnWidth(1,250);
|
||||
table->setColumnWidth(2,250);
|
||||
table->setColumnWidth(3,120);
|
||||
table->setColumnWidth(4,60);
|
||||
|
||||
table->setColumnWidth(5,250);
|
||||
// table->sortByColumn(5);
|
||||
// table->setSortingEnabled(true);
|
||||
contentLayout->addWidget(table);
|
||||
QWidget* spacerLine2= new QWidget(this);
|
||||
spacerLine2->setFixedWidth(2);
|
||||
@@ -136,15 +151,28 @@ SelectFormWidget::SelectFormWidget(QWidget *parent) :
|
||||
connect(edit_patient, &EditPatientForm::editCancel,[=](){
|
||||
btnSelect->setEnabled(true);
|
||||
});
|
||||
connect(edit_patient, &EditPatientForm::editAccept,[=](PatientInformation* inf){
|
||||
connect(edit_patient, &EditPatientForm::editAccept,[=](PatientInformation* inf, bool& result){
|
||||
int selectedRow = currentRow;
|
||||
bool isAdd = inf->PatientUID.isEmpty();
|
||||
if (isAdd) {
|
||||
int ref_rowid = queryValue(model, 1, inf->ID);
|
||||
if(ref_rowid>=0)
|
||||
{
|
||||
//非触屏时,如果被选中的行在选中区域外,以下代码可能会出错
|
||||
//但是触屏时一般没问题
|
||||
qDebug()<<ref_rowid;
|
||||
table->scrollTo(model->index(ref_rowid,3));
|
||||
table->selectRow(ref_rowid);
|
||||
result = false;
|
||||
return;
|
||||
}
|
||||
selectedRow = model->rowCount();
|
||||
inf->PatientUID = QUuid::createUuid().toString();
|
||||
printf(inf->PatientUID.toStdString().data());
|
||||
model->insertRow(selectedRow);
|
||||
inf->AddDate = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss");
|
||||
model->insertRow(0);
|
||||
selectedRow = 0;
|
||||
}
|
||||
qDebug()<<inf->PatientUID<<inf->AddDate;
|
||||
#define ADD_PATIENT_PROPERTY(val)\
|
||||
model->setData(model->index(selectedRow,PatientInformationEnum:: val),inf-> val);
|
||||
EDIT_PATIENT()
|
||||
@@ -221,6 +249,7 @@ SelectFormWidget::SelectFormWidget(QWidget *parent) :
|
||||
|
||||
}
|
||||
|
||||
|
||||
SelectFormWidget::~SelectFormWidget()
|
||||
{
|
||||
}
|
||||
Reference in New Issue
Block a user