refactor: Modify the display and interaction related to worklist.

This commit is contained in:
sunwen
2024-09-06 17:29:25 +08:00
parent c6c3d81ecf
commit b60c4a8be9
60 changed files with 3336 additions and 1512 deletions

View File

@@ -23,11 +23,11 @@
namespace
{
const int ENDLINE_SPACE = 3;
int queryValue(QSqlTableModel* model, int aColIDIndex, const QVariant& aPatId, int aColAccessionNumberIndex, const QVariant& aAccessionNumber)
int queryValue(QSqlTableModel* model, int aColIDIndex, const QVariant& aPatId)
{
for (int i = 0; i < model->rowCount(); ++i)
{
if (model->data(model->index(i, aColIDIndex)) == aPatId && model->data(model->index(i, aColAccessionNumberIndex)) == aAccessionNumber) return i;
if (model->data(model->index(i, aColIDIndex)) == aPatId) return i;
}
return -1;
}
@@ -57,19 +57,6 @@ EditPatientDialog::EditPatientDialog(QWidget* parent, Qt::WindowFlags f) : GUIFo
lbl_endline1->setObjectName("endline");
layout->addWidget(lbl_endline1);
QLabel* lbl_AccessionNumber = new QLabel(this);
lbl_AccessionNumber->setText(tr("Accession Number"));
mAccessionNumber = new ULineEdit(this);
mAccessionNumber->setMaxLength(30);
mAccessionNumber->setValidator(new QRegExpValidator(QRegExp("[a-zA-z0-9]+$"), mAccessionNumber));
layout->addWidget(lbl_AccessionNumber);
layout->addWidget(mAccessionNumber);
QLabel* accessionNumber_endline1 = new QLabel(this);
accessionNumber_endline1->setObjectName("endline");
accessionNumber_endline1->setFixedHeight(ENDLINE_SPACE);
layout->addWidget(accessionNumber_endline1);
QLabel* lbl_name = new QLabel(this);
lbl_name->setText(tr("Name") + QString("<font color='#930000'>*</font>"));
le_name = new ULineEdit(this);
@@ -151,10 +138,9 @@ void EditPatientDialog::setPatientInformation(PatientInformation* information)
btnDate->setText(information->BirthDate);
currentPatientUID = information->PatientUID;
AddDate = information->AddDate;
mAccessionNumber->setText(information->AccessionNumber);
le_id->setEnabled(false);
mAccessionNumber->setEnabled(false);
}
}
void EditPatientDialog::clearPatientInformation()
@@ -162,7 +148,6 @@ void EditPatientDialog::clearPatientInformation()
le_id->setText("");
// le_date->setText("");
le_name->setText("");
mAccessionNumber->setText("");
}
void EditPatientDialog::showErrorMessage(const QString& aMessage)
@@ -181,6 +166,7 @@ void EditPatientDialog::showErrorMessage(const QString& aMessage)
bool EditPatientDialog::updateReferenceData()
{
PatientInformation* inf = getPatientInformation();
if (le_id->text().isEmpty())
{
showErrorMessage(tr("ID can't be empty!"));
@@ -192,16 +178,15 @@ bool EditPatientDialog::updateReferenceData()
showErrorMessage(tr("Patient Name can't be empty!"));
return false;
}
inf->AccessionNumber = mAccessionNumber->text().trimmed();
inf->Name = le_name->text().trimmed();
int selectedRow = 0;
bool isAdd = currentPatientUID.isEmpty();
if (isAdd)
{
int ref_rowid = queryValue(model, 1, inf->ID, 2, inf->AccessionNumber);
int ref_rowid = queryValue(model, 1, inf->ID);
if (ref_rowid >= 0)
{
showErrorMessage(tr("The ID and Accession number is already existed!"));
showErrorMessage(tr("The ID is already existed!"));
return false;
}
inf->PatientUID = QUuid::createUuid().toString();
@@ -211,14 +196,14 @@ bool EditPatientDialog::updateReferenceData()
else
{
inf->PatientUID = currentPatientUID;
selectedRow = queryValue(model, 1, inf->ID, 2, inf->AccessionNumber);
selectedRow = queryValue(model, 1, inf->ID);
inf->AddDate = AddDate;
}
inf->Sex = btnSex->text() == tr("Female") ? "F" : (tr("Male") == btnSex->text() ? "M" : "O");
inf->BirthDate = btnDate->text();
#define ADD_PATIENT_PROPERTY(val)\
model->setData(model->index(selectedRow,PatientInformationEnum:: val),inf-> val);
model->setData(model->index(selectedRow,PatientInformationEnum:: val),inf->val);
EDIT_PATIENT()
#undef ADD_PATIENT_PROPERTY
if (model->submitAll())