diff --git a/src/SelectFormWidget.cpp b/src/SelectFormWidget.cpp index 0ff570f..360a266 100644 --- a/src/SelectFormWidget.cpp +++ b/src/SelectFormWidget.cpp @@ -7,6 +7,8 @@ #include #include #include +#include +#include #include "db/SQLHelper.h" #include "editpatientform.h" #include "guimacros.h" @@ -104,6 +106,40 @@ SelectFormWidget::SelectFormWidget(QWidget *parent) : table->clicked(table->currentIndex()); edit_patient->setEditEnable(true); }); + connect(edit_patient, &EditPatientForm::editAccept,[=](PatientInformation* inf){ + +// QSqlRecord record = inf->PatientUID.isEmpty()?model->record():model->record(currentRow); + int rowCount = model->rowCount(); + + bool isAdd = false; + if (inf->PatientUID.isEmpty()) { + isAdd = true; + inf->PatientUID = QUuid::createUuid().toString(); + printf(inf->PatientUID.toStdString().data()); + model->insertRow(rowCount); + } + #define ADD_PATIENT_PROPERTY(val)\ + model->setData(model->index(rowCount,PatientInformationEnum:: val),inf-> val); +// record.setValue(PatientInformationEnum:: val, inf-> val); + EDIT_PATIENT() + #undef ADD_PATIENT_PROPERTY +// model->setData(model->index(rowCount,PatientInformationEnum::BirthDate), QDate::fromString(inf->BirthDate,"yyyy/MM/dd")); +// record.setValue(PatientInformationEnum::BirthDate, QDate::fromString(inf->BirthDate,"yyyy/MM/dd")); +// if (isAdd) +// { +// model->insertRecord(1,record); +// } else{ +// model->setRecord(currentRow,record); +// } +// model->database().transaction(); + if (model->submitAll()) + { +// model->database().commit(); + } +// else{ +// model->database().rollback(); +// } + }); } SelectFormWidget::~SelectFormWidget() diff --git a/src/editpatientform.cpp b/src/editpatientform.cpp index 0432145..382c6df 100644 --- a/src/editpatientform.cpp +++ b/src/editpatientform.cpp @@ -4,6 +4,7 @@ #include #include #include "guimacros.h" +#include EditPatientForm::EditPatientForm(QWidget *parent) : QWidget(parent), ui(new Ui::EditPatientForm) @@ -46,7 +47,9 @@ void EditPatientForm::setPatientInformation(PatientInformation *information) { { ui->tbx_ID->setText(information->ID); ui->tbx_Dob->setDate(QDate::fromString(information->BirthDate,"yyyy-MM-dd")); - ui->tbx_Name->setText(information->Name=="F"?"Female":(information->Name=="M"?"Male":"Other")); + ui->tbx_Name->setText(information->Name); + ui->rtbx_Comment->setText(information->Comment); + ui->cb_Sex->setCurrentIndex(information->Sex=="F"?1:(information->Name=="M"?0:2)); currentPatientUID = information->PatientUID; storePatientInformation(); } @@ -56,6 +59,7 @@ void EditPatientForm::clearPatientInformation() { ui->tbx_ID->setText(""); ui->tbx_Dob->setDate(QDate::currentDate()); ui->tbx_Name->setText(""); + ui->rtbx_Comment->setText(""); currentPatientUID = ""; } @@ -78,6 +82,9 @@ void EditPatientForm::storePatientInformation() { store.ID = ui->tbx_ID->text(); store.BirthDate = ui->tbx_Dob->date().toString("yyyy-MM-dd"); store.Name = ui->tbx_Name->text(); + store.Sex = ui->cb_Sex->currentText().left(1); + store.Comment = ui->rtbx_Comment->toPlainText(); + qDebug()<tbx_ID->setText(store.ID); ui->tbx_Dob->setDate(QDate::fromString(store.BirthDate,"yyyy-MM-dd")); ui->tbx_Name->setText(store.Name); + ui->rtbx_Comment->setText(store.Comment); + ui->cb_Sex->setCurrentText(store.Sex=="F"?"Female":(store.Name=="M"?"Male":"Other")); + } diff --git a/src/editpatientform.h b/src/editpatientform.h index 44252b8..0dd21eb 100644 --- a/src/editpatientform.h +++ b/src/editpatientform.h @@ -6,14 +6,18 @@ namespace Ui { class EditPatientForm; } -#define EDIT_PATIENT()\ -ADD_PATIENT_PROPERTY(PatientUID)\ + +#define ADD_PATIENT()\ ADD_PATIENT_PROPERTY(ID)\ ADD_PATIENT_PROPERTY(Name)\ ADD_PATIENT_PROPERTY(BirthDate)\ ADD_PATIENT_PROPERTY(Sex)\ ADD_PATIENT_PROPERTY(Comment)\ +#define EDIT_PATIENT()\ +ADD_PATIENT_PROPERTY(PatientUID)\ +ADD_PATIENT() +