/* * OpenClinica is distributed under the * GNU Lesser General Public License (GNU LGPL). * For details see: http://www.openclinica.org/license * copyright 2003-2005 Akaza Research */ package org.akaza.openclinica.control.managestudy; import org.akaza.openclinica.bean.managestudy.StudyEventDefinitionBean; import org.akaza.openclinica.control.core.SecureController; import org.akaza.openclinica.control.form.FormDiscrepancyNotes; import org.akaza.openclinica.control.form.FormProcessor; import org.akaza.openclinica.control.submit.AddNewSubjectServlet; import org.akaza.openclinica.control.submit.SubmitDataServlet; import org.akaza.openclinica.dao.admin.CRFDAO; import org.akaza.openclinica.dao.managestudy.EventDefinitionCRFDAO; import org.akaza.openclinica.dao.managestudy.StudyDAO; import org.akaza.openclinica.dao.managestudy.StudyEventDAO; import org.akaza.openclinica.dao.managestudy.StudyEventDefinitionDAO; import org.akaza.openclinica.dao.managestudy.StudyGroupClassDAO; import org.akaza.openclinica.dao.managestudy.StudyGroupDAO; import org.akaza.openclinica.dao.managestudy.StudySubjectDAO; import org.akaza.openclinica.dao.submit.CRFVersionDAO; import org.akaza.openclinica.dao.submit.EventCRFDAO; import org.akaza.openclinica.dao.submit.SubjectDAO; import org.akaza.openclinica.dao.submit.SubjectGroupMapDAO; import org.akaza.openclinica.i18n.core.LocaleResolver; import org.akaza.openclinica.view.Page; import org.akaza.openclinica.web.InsufficientPermissionException; import java.util.Locale; /** * @author Krikor Krumlian */ public class ListEventsForSubjectsServlet extends SecureController { // Shaoyu Su private static final long serialVersionUID = 1L; private StudyEventDefinitionDAO studyEventDefinitionDAO; private SubjectDAO subjectDAO; private StudySubjectDAO studySubjectDAO; private StudyEventDAO studyEventDAO; private StudyGroupClassDAO studyGroupClassDAO; private SubjectGroupMapDAO subjectGroupMapDAO; private StudyDAO studyDAO; private StudyGroupDAO studyGroupDAO; private EventCRFDAO eventCRFDAO; private EventDefinitionCRFDAO eventDefintionCRFDAO; private CRFDAO crfDAO; Locale locale; private boolean showMoreLink; private Object crfVersionDAO; /* * (non-Javadoc) * * @see org.akaza.openclinica.control.core.SecureController#mayProceed() */ @Override protected void mayProceed() throws InsufficientPermissionException { locale = LocaleResolver.getLocale(request); if (ub.isSysAdmin()) { return; } if (SubmitDataServlet.mayViewData(ub, currentRole)) { return; } addPageMessage(respage.getString("no_have_correct_privilege_current_study") + respage.getString("change_study_contact_sysadmin")); throw new InsufficientPermissionException(Page.MENU_SERVLET, resexception.getString("may_not_submit_data"), "1"); } @Override public void processRequest() throws Exception { FormProcessor fp = new FormProcessor(request); if(fp.getString("showMoreLink").equals("")){ showMoreLink = true; }else { showMoreLink = Boolean.parseBoolean(fp.getString("showMoreLink")); } String idSetting = currentStudy.getStudyParameterConfig().getSubjectIdGeneration(); // set up auto study subject id if (idSetting.equals("auto editable") || idSetting.equals("auto non-editable")) { //Shaoyu Su //int nextLabel = getStudySubjectDAO().findTheGreatestLabel() + 1; //request.setAttribute("label", new Integer(nextLabel).toString()); request.setAttribute("label", resword.getString("id_generated_Save_Add")); } // checks which module the requests are from String module = fp.getString(MODULE); request.setAttribute(MODULE, module); int definitionId = fp.getInt("defId"); if (definitionId <= 0) { addPageMessage(respage.getString("please_choose_an_ED_ta_to_vies_details")); forwardPage(Page.LIST_STUDY_SUBJECTS); return; } ListEventsForSubjectTableFactory factory = new ListEventsForSubjectTableFactory(showMoreLink); factory.setStudyEventDefinitionDao(getStudyEventDefinitionDao()); factory.setSubjectDAO(getSubjectDAO()); factory.setStudySubjectDAO(getStudySubjectDAO()); factory.setStudyEventDAO(getStudyEventDAO()); factory.setStudyBean(currentStudy); factory.setStudyGroupClassDAO(getStudyGroupClassDAO()); factory.setSubjectGroupMapDAO(getSubjectGroupMapDAO()); factory.setStudyDAO(getStudyDAO()); factory.setStudyGroupDAO(getStudyGroupDAO()); factory.setCurrentRole(currentRole); factory.setCurrentUser(ub); factory.setEventCRFDAO(getEventCRFDAO()); factory.setEventDefintionCRFDAO(getEventDefinitionCRFDAO()); factory.setCrfDAO(getCrfDAO()); factory.setCrfVersionDAO(getCRFVersionDAO()); factory.setSelectedStudyEventDefinition((StudyEventDefinitionBean) getStudyEventDefinitionDao().findByPK(definitionId)); String listEventsForSubjectsHtml = factory.createTable(request, response).render(); request.setAttribute("listEventsForSubjectsHtml", listEventsForSubjectsHtml); request.setAttribute("defId", definitionId); // A. Hamid. // For event definitions and group class list in the add subject popup request.setAttribute("allDefsArray", super.getEventDefinitionsByCurrentStudy()); request.setAttribute("studyGroupClasses", super.getStudyGroupClassesByCurrentStudy()); FormDiscrepancyNotes discNotes = new FormDiscrepancyNotes(); session.setAttribute(AddNewSubjectServlet.FORM_DISCREPANCY_NOTES_NAME, discNotes); // forwardPage(Page.LIST_EVENTS_FOR_SUBJECTS); } public StudyEventDefinitionDAO getStudyEventDefinitionDao() { studyEventDefinitionDAO = studyEventDefinitionDAO == null ? new StudyEventDefinitionDAO(sm.getDataSource()) : studyEventDefinitionDAO; return studyEventDefinitionDAO; } public SubjectDAO getSubjectDAO() { subjectDAO = this.subjectDAO == null ? new SubjectDAO(sm.getDataSource()) : subjectDAO; return subjectDAO; } public StudySubjectDAO getStudySubjectDAO() { studySubjectDAO = this.studySubjectDAO == null ? new StudySubjectDAO(sm.getDataSource()) : studySubjectDAO; return studySubjectDAO; } public StudyGroupClassDAO getStudyGroupClassDAO() { studyGroupClassDAO = this.studyGroupClassDAO == null ? new StudyGroupClassDAO(sm.getDataSource()) : studyGroupClassDAO; return studyGroupClassDAO; } public SubjectGroupMapDAO getSubjectGroupMapDAO() { subjectGroupMapDAO = this.subjectGroupMapDAO == null ? new SubjectGroupMapDAO(sm.getDataSource()) : subjectGroupMapDAO; return subjectGroupMapDAO; } public StudyEventDAO getStudyEventDAO() { studyEventDAO = this.studyEventDAO == null ? new StudyEventDAO(sm.getDataSource()) : studyEventDAO; return studyEventDAO; } public StudyDAO getStudyDAO() { studyDAO = this.studyDAO == null ? new StudyDAO(sm.getDataSource()) : studyDAO; return studyDAO; } public EventCRFDAO getEventCRFDAO() { eventCRFDAO = this.eventCRFDAO == null ? new EventCRFDAO(sm.getDataSource()) : eventCRFDAO; return eventCRFDAO; } public EventDefinitionCRFDAO getEventDefinitionCRFDAO() { eventDefintionCRFDAO = this.eventDefintionCRFDAO == null ? new EventDefinitionCRFDAO(sm.getDataSource()) : eventDefintionCRFDAO; return eventDefintionCRFDAO; } public CRFDAO getCrfDAO() { crfDAO = this.crfDAO == null ? new CRFDAO(sm.getDataSource()) : crfDAO; return crfDAO; } public CRFVersionDAO getCRFVersionDAO(){ CRFVersionDAO crfVersionDAO =new CRFVersionDAO(sm.getDataSource()); return crfVersionDAO; } public StudyGroupDAO getStudyGroupDAO() { studyGroupDAO = this.studyGroupDAO == null ? new StudyGroupDAO(sm.getDataSource()) : studyGroupDAO; return studyGroupDAO; } }