#ifndef EDITPATIENTFORM_H #define EDITPATIENTFORM_H #include 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(Comment)\ #define EDIT_PATIENT()\ ADD_PATIENT_PROPERTY(PatientUID)\ ADD_PATIENT() enum PatientInformationEnum{ #define ADD_PATIENT_PROPERTY(val) val, EDIT_PATIENT() #undef ADD_PATIENT_PROPERTY }; class PatientInformation{ public: #define ADD_PATIENT_PROPERTY(val) QString val; EDIT_PATIENT(); #undef ADD_PATIENT_PROPERTY }; 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(); void restorePatientInformation(); void setEditEnable(bool enable); signals: void editAccept(PatientInformation * detail); private: Ui::EditPatientForm *ui; QString currentPatientUID; PatientInformation store; bool editEnable=false; QToolButton* btnEditAccept; QToolButton* btnEditCancel; }; #endif // EDITPATIENTFORM_H