Files
GUI/src/forms/select/editpatientform.h
2022-04-06 09:16:26 +08:00

86 lines
1.8 KiB
C++

#ifndef EDITPATIENTFORM_H
#define EDITPATIENTFORM_H
#include <QWidget>
namespace Ui {
class EditPatientForm;
}
#define ADD_PATIENT()\
ADD_PATIENT_PROPERTY(ID)\
ADD_PATIENT_PROPERTY(Name)\
ADD_PATIENT_PROPERTY(BirthDate)\
ADD_PATIENT_PROPERTY(Sex)\
ADD_PATIENT_PROPERTY(AddDate)\
ADD_PATIENT_PROPERTY(Comment)\
ADD_PATIENT_PROPERTY(Flag)
#define EDIT_PATIENT()\
ADD_PATIENT_PROPERTY(PatientUID)\
ADD_PATIENT()
enum PatientInformationEnum{
#define ADD_PATIENT_PROPERTY(val) val,
EDIT_PATIENT()
#undef ADD_PATIENT_PROPERTY
};
/**
* @brief this class was designed to be a edit form,
* but now has been change to a detail display class.
*/
class PatientInformation:public QObject{
Q_OBJECT
public:
#define ADD_PATIENT_PROPERTY(val) QString val;
EDIT_PATIENT();
#undef ADD_PATIENT_PROPERTY
PatientInformation(){
this->Flag = QString("0");
}
PatientInformation* Copy()
{
PatientInformation* n=new PatientInformation;
n->PatientUID = this->PatientUID;
n->ID = this->ID;
n->Name = this->Name;
n->BirthDate = this->BirthDate;
n->Sex = this->Sex;
n->Comment = this->Comment;
return n;
}
};
class QToolButton;
class EditPatientForm : public QWidget
{
Q_OBJECT
public:
explicit EditPatientForm(QWidget *parent = nullptr);
~EditPatientForm();
void setPatientInformation(PatientInformation * information);
PatientInformation * getPatientInformation(){
return &store;
}
void clearPatientInformation();
void storePatientInformation();
signals:
void editAccept(PatientInformation * detail,bool & accept);
void editCancel();
signals:
void hideBtnClicked();
private:
Ui::EditPatientForm *ui;
QString currentPatientUID;
QString AddDate;
PatientInformation store;
};
#endif // EDITPATIENTFORM_H