public void testFindByVersionIdFail() throws Exception { int crfVersionId = -1; int crfId = 1; CRFBean cb = cdao.findByVersionId(crfVersionId); assertNotNull("bean valid", cb); assertTrue("bean inactive", !cb.isActive()); }
public void testFindByVersionIdSuccess() throws Exception { int crfVersionId = 1; int crfId = 1; CRFBean cb = cdao.findByVersionId(crfVersionId); assertNotNull("bean valid", cb); assertTrue("bean id set", cb.isActive()); assertEquals("correct bean found", cb.getId(), crfId); }
@Override public void processRequest() throws Exception { FormProcessor fp = new FormProcessor(request); int studySubId = fp.getInt(STUDY_SUB_ID, true); int eventCRFId = fp.getInt(EVENT_CRF_ID); String action = request.getParameter("action"); StudyEventDAO sedao = new StudyEventDAO(sm.getDataSource()); StudySubjectDAO subdao = new StudySubjectDAO(sm.getDataSource()); EventCRFDAO ecdao = new EventCRFDAO(sm.getDataSource()); StudyDAO sdao = new StudyDAO(sm.getDataSource()); if (eventCRFId == 0) { addPageMessage(respage.getString("please_choose_an_event_CRF_to_delete")); request.setAttribute("id", new Integer(studySubId).toString()); forwardPage(Page.VIEW_STUDY_SUBJECT_SERVLET); } else { EventCRFBean eventCRF = (EventCRFBean) ecdao.findByPK(eventCRFId); StudySubjectBean studySub = (StudySubjectBean) subdao.findByPK(studySubId); request.setAttribute("studySub", studySub); // construct info needed on view event crf page CRFDAO cdao = new CRFDAO(sm.getDataSource()); CRFVersionDAO cvdao = new CRFVersionDAO(sm.getDataSource()); int crfVersionId = eventCRF.getCRFVersionId(); CRFBean cb = cdao.findByVersionId(crfVersionId); eventCRF.setCrf(cb); CRFVersionBean cvb = (CRFVersionBean) cvdao.findByPK(crfVersionId); eventCRF.setCrfVersion(cvb); // then get the definition so we can call // DisplayEventCRFBean.setFlags int studyEventId = eventCRF.getStudyEventId(); StudyEventBean event = (StudyEventBean) sedao.findByPK(studyEventId); int studyEventDefinitionId = sedao.getDefinitionIdFromStudyEventId(studyEventId); StudyEventDefinitionDAO seddao = new StudyEventDefinitionDAO(sm.getDataSource()); StudyEventDefinitionBean sed = (StudyEventDefinitionBean) seddao.findByPK(studyEventDefinitionId); event.setStudyEventDefinition(sed); request.setAttribute("event", event); EventDefinitionCRFDAO edcdao = new EventDefinitionCRFDAO(sm.getDataSource()); StudyBean study = (StudyBean) sdao.findByPK(studySub.getStudyId()); EventDefinitionCRFBean edc = edcdao.findByStudyEventDefinitionIdAndCRFId(study, studyEventDefinitionId, cb.getId()); DisplayEventCRFBean dec = new DisplayEventCRFBean(); dec.setEventCRF(eventCRF); dec.setFlags(eventCRF, ub, currentRole, edc.isDoubleEntry()); // find all item data ItemDataDAO iddao = new ItemDataDAO(sm.getDataSource()); dnDao = new DiscrepancyNoteDAO(sm.getDataSource()); ArrayList<ItemDataBean> itemData = iddao.findAllByEventCRFId(eventCRF.getId()); request.setAttribute("items", itemData); if ("confirm".equalsIgnoreCase(action)) { request.setAttribute("displayEventCRF", dec); forwardPage(Page.DELETE_EVENT_CRF); } else { logger.info("submit to delete the event CRF from event"); // OC-6303 Deleting Event CRF resets Show / Hide logic // delete records from DynamicItemForm and DynamicItemGroup getDynamicsItemFormMetadataDao().delete(eventCRFId); getDynamicsItemGroupMetadataDao().delete(eventCRFId); eventCRF.setOldStatus(eventCRF.getStatus()); eventCRF.setStatus(Status.RESET); eventCRF.setUpdater(ub); ecdao.update(eventCRF); for (ItemDataBean itemdata : itemData) { // OC-6343 Rule behaviour must be reset if an Event CRF is deleted // delete the records from ruleActionRunLogDao getRuleActionRunLogDao().delete(itemdata.getId()); // OC-6344 Notes & Discrepancies must be set to "closed" when event CRF is deleted // parentDiscrepancyNoteList is the list of the parent DNs records only ArrayList<DiscrepancyNoteBean> parentDiscrepancyNoteList = getDnDao().findParentNotesOnlyByItemData(itemdata.getId()); for (DiscrepancyNoteBean parentDiscrepancyNote : parentDiscrepancyNoteList) { if (parentDiscrepancyNote.getResolutionStatusId() != 4) { // if the DN's resolution status is not set to Closed String description = resword.getString("dn_auto-closed_description"); String detailedNotes = resword.getString("dn_auto_closed_detailed_notes"); // create new DN record , new DN Map record , also update the parent record createDiscrepancyNoteBean( description, detailedNotes, itemdata.getId(), study, ub, parentDiscrepancyNote); } } iddao = new ItemDataDAO(sm.getDataSource()); ifmdao = new ItemFormMetadataDAO(sm.getDataSource()); ItemDataBean idBean = (ItemDataBean) iddao.findByPK(itemdata.getId()); ItemFormMetadataBean ifmBean = ifmdao.findByItemIdAndCRFVersionId(idBean.getItemId(), crfVersionId); // Updating Dn_item_data_map actovated column into false for the existing DNs ArrayList<DiscrepancyNoteBean> dnBeans = getDnDao().findExistingNotesForItemData(itemdata.getId()); if (dnBeans.size() != 0) { DiscrepancyNoteBean dnBean = new DiscrepancyNoteBean(); dnBean.setEntityId(itemdata.getId()); dnBean.setActivated(false); getDnDao().updateDnMapActivation(dnBean); } // Default Values are not addressed itemdata.setValue(""); itemdata.setOldStatus(itemdata.getStatus()); itemdata.setOwner(ub); itemdata.setStatus(Status.AVAILABLE); itemdata.setUpdater(ub); iddao.updateUser(itemdata); iddao.update(itemdata); } // OC-6291 event_crf status change eventCRF.setOldStatus(eventCRF.getStatus()); eventCRF.setStatus(Status.AVAILABLE); eventCRF.setUpdater(ub); ecdao.update(eventCRF); if (event.getSubjectEventStatus().isCompleted() || event.getSubjectEventStatus().isSigned()) { event.setSubjectEventStatus(SubjectEventStatus.DATA_ENTRY_STARTED); event.setUpdater(ub); sedao = new StudyEventDAO(sm.getDataSource()); sedao.update(event); } String emailBody = respage.getString("the_event_CRF") + cb.getName() + respage.getString("has_been_deleted_from_the_event") + event.getStudyEventDefinition().getName() + ". " + respage.getString("has_been_deleted_from_the_event_cont"); addPageMessage(emailBody); // sendEmail(emailBody); request.setAttribute("id", new Integer(studySubId).toString()); forwardPage(Page.VIEW_STUDY_SUBJECT_SERVLET); } } }