/////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////// ACTION HANDLER /////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////// // Actions : // Toggle search patient view // Search method ? // Limit database usage ? // View patients information // Patient selection history PatientActionHandler::PatientActionHandler(QObject *parent) : QObject(parent), m_RecentPatients(0), aSearchName(0), aSearchFirstname(0), aSearchNameFirstname(0), aSearchDob(0), aViewPatientInformation(0), aPrintPatientInformation(0), aShowPatientDatabaseInformation(0), aViewCurrentPatientData(0), aExportPatientFile(0), gSearchMethod(0) { setObjectName("PatientActionHandler"); m_RecentPatients = new Core::FileManager(this); Core::ITheme *th = Core::ICore::instance()->theme(); QAction *a = 0; Core::Command *cmd = 0; Core::Context ctx(Patients::Constants::C_PATIENTS); Core::Context searchcontext(Patients::Constants::C_PATIENTS_SEARCH, Core::Constants::C_GLOBAL); Core::Context globalcontext(Core::Constants::C_GLOBAL); Core::ActionContainer *menu = actionManager()->actionContainer(Core::Id(Core::Constants::M_PATIENTS)); if (!menu) { Utils::warningMessageBox(tr("Fatal Error"), tr("%1: Unable to retrieve patients menu.").arg(objectName())); return; } Q_ASSERT(menu); if (!menu) return; menu->appendGroup(Core::Id(Constants::G_PATIENTS)); menu->appendGroup(Core::Id(Constants::G_PATIENTS_NEW)); menu->appendGroup(Core::Id(Constants::G_PATIENTS_SEARCH)); menu->appendGroup(Core::Id(Constants::G_PATIENTS_HISTORY)); menu->appendGroup(Core::Id(Constants::G_PATIENTS_INFORMATION)); // actionManager()->actionContainer(Core::Constants::M_PATIENTS)->addMenu(menu, Core::Constants::G_PATIENTS); connect(actionManager()->command(Core::Constants::A_PATIENT_REMOVE)->action(), SIGNAL(triggered()), this, SLOT(removePatient())); // Search method menu Core::ActionContainer *searchmenu = actionManager()->actionContainer(Core::Id(Constants::M_PATIENTS_SEARCH)); if (!searchmenu) { searchmenu = actionManager()->createMenu(Constants::M_PATIENTS_SEARCH); searchmenu->appendGroup(Core::Id(Constants::G_PATIENTS_SEARCH)); searchmenu->setTranslations(Trans::Constants::SEARCHMENU_TEXT); menu->addMenu(searchmenu, Core::Id(Constants::G_PATIENTS_SEARCH)); } Q_ASSERT(searchmenu); // TODO: create search icons gSearchMethod = new QActionGroup(this); a = aSearchName = new QAction(this); a->setObjectName("aSearchName"); a->setCheckable(true); a->setChecked(false); a->setIcon(th->icon(Core::Constants::ICONSEARCH)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_SEARCH_PATIENTS_BY_NAME), searchcontext); cmd->setTranslations(Constants::SEARCHBYNAME_TEXT, Constants::SEARCHBYNAME_TOOLTIP, Constants::TRANS_CONTEXT); searchmenu->addAction(cmd, Core::Id(Constants::G_PATIENTS_SEARCH)); gSearchMethod->addAction(a); a = aSearchFirstname = new QAction(this); a->setObjectName("aSearchFirstname"); a->setCheckable(true); a->setChecked(false); a->setIcon(th->icon(Core::Constants::ICONSEARCH)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_SEARCH_PATIENTS_BY_FIRSTNAME), searchcontext); cmd->setTranslations(Constants::SEARCHBYFIRSTNAME_TEXT, Constants::SEARCHBYFIRSTNAME_TOOLTIP, Constants::TRANS_CONTEXT); searchmenu->addAction(cmd, Core::Id(Constants::G_PATIENTS_SEARCH)); gSearchMethod->addAction(a); a = aSearchNameFirstname = new QAction(this); a->setObjectName("aSearchNameFirstname"); a->setCheckable(true); a->setChecked(false); a->setIcon(th->icon(Core::Constants::ICONSEARCH)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_SEARCH_PATIENTS_BY_NAMEFIRSTNAME), searchcontext); cmd->setTranslations(Constants::SEARCHBYNAMEFIRSTNAME_TEXT, Constants::SEARCHBYNAMEFIRSTNAME_TOOLTIP, Constants::TRANS_CONTEXT); searchmenu->addAction(cmd, Core::Id(Constants::G_PATIENTS_SEARCH)); gSearchMethod->addAction(a); a = aSearchDob = new QAction(this); a->setObjectName("aSearchDob"); a->setCheckable(true); a->setChecked(false); a->setIcon(th->icon(Core::Constants::ICONSEARCH)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_SEARCH_PATIENTS_BY_DOB), searchcontext); cmd->setTranslations(Constants::SEARCHBYDOB_TEXT, Constants::SEARCHBYDOB_TOOLTIP, Constants::TRANS_CONTEXT); searchmenu->addAction(cmd, Core::Id(Constants::G_PATIENTS_SEARCH)); gSearchMethod->addAction(a); connect(gSearchMethod, SIGNAL(triggered(QAction*)), this, SLOT(searchActionChanged(QAction*))); // a = aViewPatientInformation = new QAction(this); // a->setObjectName("aViewPatientInformation"); //// a->setIcon(th->icon(Core::Constants::ICONCLEAR)); // cmd = actionManager()->registerAction(a, Constants::A_VIEWPATIENT_INFOS, globalcontext); // cmd->setTranslations(Trans::Constants::PATIENT_INFORMATION); // menu->addAction(cmd, Constants::G_PATIENTS_INFORMATION); //// connect(a, SIGNAL(triggered()), this, SLOT(clear())); // Export patient file a = aExportPatientFile = new QAction(this); a->setObjectName("aExportPatientFile"); a->setIcon(th->icon(Core::Constants::ICONEXPORTPATIENTFILE)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_EXPORTPATIENTFILE), ctx); cmd->setTranslations(Trans::Constants::EXPORTPATIENTFILE); cmd->retranslate(); menu->addAction(cmd, Core::Id(Constants::G_PATIENTS_INFORMATION)); connect(aExportPatientFile, SIGNAL(triggered()), this, SLOT(onExportPatientFileRequested())); // Databases information Core::ActionContainer *hmenu = actionManager()->actionContainer(Core::Id(Core::Constants::M_HELP_DATABASES)); if (!hmenu) return; a = aShowPatientDatabaseInformation = new QAction(this); a->setObjectName("aShowPatientDatabaseInformation"); a->setIcon(th->icon(Core::Constants::ICONHELP)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_VIEWPATIENTDATABASE_INFOS), globalcontext); cmd->setTranslations(Trans::Constants::PATIENT_DATABASE_INFORMATION); cmd->retranslate(); hmenu->addAction(cmd, Core::Id(Core::Constants::G_HELP_DATABASES)); connect(aShowPatientDatabaseInformation,SIGNAL(triggered()), this, SLOT(showPatientDatabaseInformation())); if (!Utils::isReleaseCompilation()) { a = aViewCurrentPatientData = new QAction(this); a->setObjectName("aViewCurrentPatientData"); a->setIcon(th->icon(Core::Constants::ICONPATIENTHISTORY)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_VIEWCURRENTPATIENTDATA), globalcontext); cmd->setTranslations(Trans::Constants::PATIENT_OVERVIEW); cmd->retranslate(); menu->addAction(cmd, Core::Id(Constants::G_PATIENTS_HISTORY)); connect(aViewCurrentPatientData,SIGNAL(triggered()), this, SLOT(viewCurrentPatientData())); } Core::ActionContainer *recentsMenu = actionManager()->actionContainer(Core::Constants::M_PATIENTS_NAVIGATION); if (!recentsMenu) return; if (!recentsMenu->menu()) return; connect(recentsMenu->menu(), SIGNAL(aboutToShow()), this, SLOT(aboutToShowRecentPatients())); refreshSettings(); connect(patient(), SIGNAL(currentPatientChanged()), this, SLOT(onCurrentPatientChanged())); connect(user(), SIGNAL(userChanged()), this, SLOT(refreshSettings())); }
/////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////// ACTION HANDLER /////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////// PmhActionHandler::PmhActionHandler(QObject *parent) : QObject(parent), aAddPmh(0),aRemovePmh(0), aAddCat(0), aCategoryManager(0), aPmhDatabaseInformation(0), m_CurrentView(0) { setObjectName("PmhActionHandler"); Core::ITheme *th = Core::ICore::instance()->theme(); QAction *a = 0; Core::Command *cmd = 0; Core::Context ctx(Constants::C_PMH_PLUGINS); Core::Context globalcontext(Core::Constants::C_GLOBAL); Core::ActionContainer *menu = actionManager()->actionContainer(Core::Id(Core::Constants::M_PATIENTS)); Core::ActionContainer *newmenu = actionManager()->actionContainer(Core::Id(Core::Constants::M_GENERAL_NEW)); Core::ActionContainer *pmhMenu = actionManager()->createMenu(Constants::M_PMH); Q_ASSERT(menu); if (!menu) { LOG_ERROR("Menu Patient not created"); return; } else { // menu->appendGroup(Core::Constants::G_PATIENTS_NAVIGATION); pmhMenu->appendGroup(Core::Id(Constants::G_PMH_NEW)); pmhMenu->appendGroup(Core::Id(Constants::G_PMH_EDITION)); pmhMenu->setTranslations(Trans::Constants::PMHMENU_TEXT); menu->addMenu(pmhMenu, Core::Id(Core::Constants::G_PATIENTS)); } // Create local actions a = aAddPmh = new QAction(this); aAddPmh->setEnabled(false); a->setObjectName("aAddPmh"); a->setIcon(th->icon(Core::Constants::ICONADD)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_PMH_NEW), globalcontext); cmd->setTranslations(Constants::CREATEPMH_TEXT, Constants::CREATEPMH_TEXT, Constants::PMHCONSTANTS_TR_CONTEXT); pmhMenu->addAction(cmd, Core::Id(Constants::G_PMH_NEW)); if (newmenu) newmenu->addAction(cmd, Core::Id(Core::Constants::G_GENERAL_NEW)); // connect(a, SIGNAL(triggered()), this, SLOT(createPmh())); a = aRemovePmh= new QAction(this); a->setObjectName("aRemovePmh"); a->setIcon(th->icon(Core::Constants::ICONREMOVE)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_PMH_REMOVE), ctx); cmd->setTranslations(Constants::REMOVEPMH_TEXT, Constants::REMOVEPMH_TEXT, Constants::PMHCONSTANTS_TR_CONTEXT); pmhMenu->addAction(cmd, Core::Id(Constants::G_PMH_NEW)); // connect(a, SIGNAL(triggered()), this, SLOT(createPmh())); a = aAddCat = new QAction(this); a->setObjectName("aAddCat"); a->setIcon(th->icon(Core::Constants::ICONCATEGORY_ADD)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_PMH_NEWCATEGORY), ctx); cmd->setTranslations(Constants::CREATECATEGORY_TEXT, Constants::CREATECATEGORY_TEXT, Constants::PMHCONSTANTS_TR_CONTEXT); pmhMenu->addAction(cmd, Core::Id(Constants::G_PMH_NEW)); // connect(a, SIGNAL(triggered()), this, SLOT(createPmh())); a = aCategoryManager= new QAction(this); a->setObjectName("aCategoryManager"); a->setIcon(th->icon(Core::Constants::ICONCATEGORY_MANAGER)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_PMH_CATEGORYMANAGER), globalcontext); cmd->setTranslations(Constants::CATEGORYMANAGER_TEXT, Constants::CATEGORYMANAGER_TEXT, Constants::PMHCONSTANTS_TR_CONTEXT); pmhMenu->addAction(cmd, Core::Id(Constants::G_PMH_EDITION)); connect(a, SIGNAL(triggered()), this, SLOT(categoryManager())); Core::ActionContainer *hmenu = actionManager()->actionContainer(Core::Id(Core::Constants::M_HELP_DATABASES)); a = aPmhDatabaseInformation = new QAction(this); a->setObjectName("aPmhDatabaseInformation"); a->setIcon(th->icon(Core::Constants::ICONHELP)); cmd = actionManager()->registerAction(a, Core::Id(Constants::A_PMH_SHOWDBINFOS), globalcontext); cmd->setTranslations(Trans::Constants::PMH_DATABASE_INFORMATION); cmd->retranslate(); if (hmenu) { hmenu->addAction(cmd, Core::Id(Core::Constants::G_HELP_DATABASES)); } connect(aPmhDatabaseInformation, SIGNAL(triggered()), this, SLOT(showPmhDatabaseInformation())); contextManager()->updateContext(); actionManager()->retranslateMenusAndActions(); connect(patient(), SIGNAL(currentPatientChanged()), this, SLOT(onCurrentPatientChanged())); }