private boolean mayProceedPreview(String studyOid) throws Exception { boolean accessPermission = false; StudyBean study = getParentStudy(studyOid); StudyParameterValueDAO spvdao = new StudyParameterValueDAO(dataSource); StudyParameterValueBean pStatus = spvdao.findByHandleAndStudy(study.getId(), "participantPortal"); participantPortalRegistrar = new ParticipantPortalRegistrar(); String pManageStatus = participantPortalRegistrar.getRegistrationStatus(studyOid).toString(); // ACTIVE , // PENDING , // INACTIVE String participateStatus = pStatus.getValue().toString(); // enabled , disabled String studyStatus = study.getStatus().getName().toString(); // available , pending , frozen , locked logger.info( "pManageStatus: " + pManageStatus + " participantStatus: " + participateStatus + " studyStatus: " + studyStatus); if (participateStatus.equalsIgnoreCase("enabled") && (studyStatus.equalsIgnoreCase("available") || studyStatus.equalsIgnoreCase("pending") || studyStatus.equalsIgnoreCase("frozen") || studyStatus.equalsIgnoreCase("locked")) && (pManageStatus.equalsIgnoreCase("ACTIVE") || pManageStatus.equalsIgnoreCase("PENDING") || pManageStatus.equalsIgnoreCase("INACTIVE"))) { accessPermission = true; } return accessPermission; }
public ArrayList findAllSubjectByStudy(StudyBean study) { this.setTypesExpected(); ArrayList alist = new ArrayList(); this.setTypeExpected(11, TypeNames.STRING); // ss.label this.setTypeExpected(12, TypeNames.STRING); // column_name this.setTypeExpected(13, TypeNames.INT); // subject_id HashMap variables = new HashMap(); variables.put(new Integer(1), new Integer(study.getId())); variables.put(new Integer(2), new Integer(study.getId())); variables.put(new Integer(3), new Integer(study.getId())); alist = this.select(digester.getQuery("findAllSubjectByStudy"), variables); ArrayList al = new ArrayList(); Iterator it = alist.iterator(); while (it.hasNext()) { HashMap hm = (HashMap) it.next(); DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm); eb.setSubjectName((String) hm.get("label")); eb.setColumn((String) hm.get("column_name")); eb.setEntityId(((Integer) hm.get("subject_id")).intValue()); al.add(eb); } return al; }
private UserAccountBean createUserAccount( UserAccountBean rootUserAccount, StudyBean studyBean, StudySubjectBean studySubjectBean) throws Exception { UserAccountBean createdUserAccountBean = new UserAccountBean(); createdUserAccountBean.setName(getInputUsername(studyBean, studySubjectBean)); createdUserAccountBean.setFirstName(INPUT_FIRST_NAME); createdUserAccountBean.setLastName(INPUT_LAST_NAME); createdUserAccountBean.setEmail(INPUT_EMAIL); createdUserAccountBean.setInstitutionalAffiliation(INPUT_INSTITUTION); createdUserAccountBean.setActiveStudyId(studyBean.getId()); String passwordHash = UserAccountBean.LDAP_PASSWORD; createdUserAccountBean.setPasswd(passwordHash); createdUserAccountBean.setPasswdTimestamp(null); createdUserAccountBean.setLastVisitDate(null); createdUserAccountBean.setActiveStudyId(studyBean.getId()); createdUserAccountBean.setStatus(Status.DELETED); createdUserAccountBean.setPasswdChallengeQuestion(""); createdUserAccountBean.setPasswdChallengeAnswer(""); createdUserAccountBean.setPhone(""); createdUserAccountBean.setOwner(rootUserAccount); createdUserAccountBean.setRunWebservices(false); Role r = Role.RESEARCHASSISTANT2; createdUserAccountBean = addActiveStudyRole(createdUserAccountBean, studyBean.getId(), r, rootUserAccount); UserType type = UserType.get(2); createdUserAccountBean.addUserType(type); UserAccountDAO udao = new UserAccountDAO(dataSource); createdUserAccountBean = (UserAccountBean) udao.create(createdUserAccountBean); // authoritiesDao.saveOrUpdate(new AuthoritiesBean(createdUserAccountBean.getName())); return createdUserAccountBean; }
/** * Updates the study bean with inputs from second section * * @param request * @return true if study type is Interventional, otherwise false */ private boolean updateStudy2() { FormProcessor fp = new FormProcessor(request); StudyBean newStudy = (StudyBean) session.getAttribute("newStudy"); // this is not fully supported yet, because the system will not handle // studies which are pending // or private... newStudy.setStatus(Status.get(fp.getInt("statusId"))); newStudy.setProtocolDateVerification(fp.getDate(INPUT_VER_DATE)); newStudy.setDatePlannedStart(fp.getDate(INPUT_START_DATE)); if (StringUtil.isBlank(fp.getString(INPUT_END_DATE))) { newStudy.setDatePlannedEnd(null); } else { newStudy.setDatePlannedEnd(fp.getDate(INPUT_END_DATE)); } newStudy.setPhase(fp.getString("phase")); if (fp.getInt("genetic") == 1) { newStudy.setGenetic(true); } else { newStudy.setGenetic(false); } session.setAttribute("newStudy", newStudy); String interventional = resadmin.getString("interventional"); return interventional.equalsIgnoreCase(newStudy.getProtocolType()); }
private void confirmStudy6() throws Exception { FormProcessor fp = new FormProcessor(request); Validator v = new Validator(request); v.addValidation( "medlineIdentifier", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 255); v.addValidation( "url", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 255); v.addValidation( "urlDescription", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 255); errors = v.validate(); StudyBean newStudy = (StudyBean) session.getAttribute("newStudy"); newStudy.setMedlineIdentifier(fp.getString("medlineIdentifier")); newStudy.setResultsReference(fp.getBoolean("resultsReference")); newStudy.setUrl(fp.getString("url")); newStudy.setUrlDescription(fp.getString("urlDescription")); session.setAttribute("newStudy", newStudy); // request.setAttribute("interventions",session.getAttribute("interventions")); if (errors.isEmpty()) { forwardPage(Page.UPDATE_STUDY8); } else { request.setAttribute("formMessages", errors); forwardPage(Page.UPDATE_STUDY7); } }
private void updateStudy3(boolean isInterventional, FormProcessor fp) { study.setPurpose(fp.getString("purpose")); ArrayList interventionArray = new ArrayList(); if (isInterventional) { study.setAllocation(fp.getString("allocation")); study.setMasking(fp.getString("masking")); study.setControl(fp.getString("control")); study.setAssignment(fp.getString("assignment")); study.setEndpoint(fp.getString("endpoint")); StringBuffer interventions = new StringBuffer(); for (int i = 0; i < 10; i++) { String type = fp.getString("interType" + i); String name = fp.getString("interName" + i); if (!StringUtil.isBlank(type) && !StringUtil.isBlank(name)) { InterventionBean ib = new InterventionBean(fp.getString("interType" + i), fp.getString("interName" + i)); interventionArray.add(ib); interventions.append(ib.toString()).append(","); } } study.setInterventions(interventions.toString()); } else { // type = observational study.setDuration(fp.getString("duration")); study.setSelection(fp.getString("selection")); study.setTiming(fp.getString("timing")); } request.setAttribute("interventions", interventionArray); }
/** * Send email to the user, director and administrator * * @param request * @param response */ private String sendEmail(UserAccountBean u, StudyUserRoleBean sub) throws Exception { StudyDAO sdao = new StudyDAO(sm.getDataSource()); StudyBean study = (StudyBean) sdao.findByPK(sub.getStudyId()); logger.info("Sending email..."); String body = u.getFirstName() + " " + u.getLastName() + " (" + resword.getString("username") + ": " + u.getName() + ") " + respage.getString("has_been_granted_the_role") + " " + sub.getRoleName() + " " + respage.getString("in_the_study_site") + " " + study.getName() + "."; // boolean emailSent = sendEmail(u.getEmail().trim(), respage.getString("set_user_role"), // body, false); // if (emailSent) { // sendEmail(ub.getEmail().trim(), respage.getString("set_user_role"), body, false); // sendEmail(EmailEngine.getAdminEmail(), respage.getString("set_user_role"), body, // false); // } return body; }
private void validateStudy6(FormProcessor fp, Validator v) { v.addValidation( "medlineIdentifier", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 255); v.addValidation( "url", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 255); v.addValidation( "urlDescription", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 255); errors = v.validate(); study.setMedlineIdentifier(fp.getString("medlineIdentifier")); study.setResultsReference(fp.getBoolean("resultsReference")); study.setUrl(fp.getString("url")); study.setUrlDescription(fp.getString("urlDescription")); // request.setAttribute("interventions",session.getAttribute( // "interventions")); if (!errors.isEmpty()) { request.setAttribute("formMessages", errors); } }
public String getInputUsername(StudyBean studyBean, StudySubjectBean studySubjectBean) { String inputUserName = null; if (studySubjectBean != null) { if (studyBean.getParentStudyId() > 0) studyBean = getStudy(studyBean.getParentStudyId()); inputUserName = studyBean.getOid() + "." + studySubjectBean.getOid(); } return inputUserName; }
public MetadataUnit(DataSource ds, StudyBean study, int category) { super(ds, study, category); this.odmStudy = new OdmStudyBean(); if (study.getParentStudyId() > 0) { this.parentStudy = (StudyBean) new StudyDAO(ds).findByPK(study.getParentStudyId()); } else { this.parentStudy = new StudyBean(); } }
/** Finds all the studies */ @Override public void processRequest() throws Exception { StudyDAO sdao = new StudyDAO(sm.getDataSource()); ArrayList studies = (ArrayList) sdao.findAll(); // find all parent studies ArrayList parents = (ArrayList) sdao.findAllParents(); ArrayList displayStudies = new ArrayList(); for (int i = 0; i < parents.size(); i++) { StudyBean parent = (StudyBean) parents.get(i); ArrayList children = (ArrayList) sdao.findAllByParent(parent.getId()); DisplayStudyBean displayStudy = new DisplayStudyBean(); displayStudy.setParent(parent); displayStudy.setChildren(children); displayStudies.add(displayStudy); } FormProcessor fp = new FormProcessor(request); EntityBeanTable table = fp.getEntityBeanTable(); ArrayList allStudyRows = DisplayStudyRow.generateRowsFromBeans(displayStudies); String[] columns = { resword.getString("name"), resword.getString("unique_identifier"), resword.getString("OID"), resword.getString("principal_investigator"), resword.getString("facility_name"), resword.getString("date_created"), resword.getString("status"), resword.getString("actions") }; table.setColumns(new ArrayList(Arrays.asList(columns))); table.hideColumnLink(2); table.hideColumnLink(6); table.setQuery("ListStudy", new HashMap()); table.addLink(resword.getString("create_a_new_study"), "CreateStudy"); table.setRows(allStudyRows); table.computeDisplay(); request.setAttribute("table", table); // request.setAttribute("studies", studies); session.setAttribute("fromListSite", "no"); resetPanel(); panel.setStudyInfoShown(false); panel.setOrderedData(true); setToPanel(resword.getString("in_the_application"), ""); if (parents.size() > 0) { setToPanel(resword.getString("studies"), new Integer(parents.size()).toString()); } if (studies.size() > 0) { setToPanel( resword.getString("sites"), new Integer(studies.size() - parents.size()).toString()); } forwardPage(Page.STUDY_LIST); }
private StudyBean getParentStudy(String studyOid) { StudyBean study = getStudy(studyOid); if (study.getParentStudyId() == 0) { return study; } else { StudyBean parentStudy = (StudyBean) sdao.findByPK(study.getParentStudyId()); return parentStudy; } }
@SuppressWarnings("unchecked") @Override public void setDataAndLimitVariables(TableFacade tableFacade) { // initialize i18n resword = ResourceBundleProvider.getWordsBundle(getLocale()); resformat = ResourceBundleProvider.getFormatBundle(getLocale()); Limit limit = tableFacade.getLimit(); ListSubjectFilter listSubjectFilter = getListSubjectFilter(limit); if (!limit.isComplete()) { int totalRows = getSubjectDao().getCountWithFilter(listSubjectFilter, getCurrentStudy()); tableFacade.setTotalRows(totalRows); } ListSubjectSort listSubjectSort = getListSubjectSort(limit); int rowStart = limit.getRowSelect().getRowStart(); int rowEnd = limit.getRowSelect().getRowEnd(); Collection<SubjectBean> items = getSubjectDao() .getWithFilterAndSort( getCurrentStudy(), listSubjectFilter, listSubjectSort, rowStart, rowEnd); Collection<HashMap<Object, Object>> theItems = new ArrayList<HashMap<Object, Object>>(); for (SubjectBean subject : items) { UserAccountBean owner = (UserAccountBean) getUserAccountDao().findByPK(subject.getOwnerId()); UserAccountBean updater = subject.getUpdaterId() == 0 ? null : (UserAccountBean) getUserAccountDao().findByPK(subject.getUpdaterId()); HashMap<Object, Object> h = new HashMap<Object, Object>(); String studySubjectIdAndStudy = ""; List<StudySubjectBean> studySubjects = getStudySubjectDao().findAllBySubjectId(subject.getId()); for (StudySubjectBean studySubjectBean : studySubjects) { StudyBean study = (StudyBean) getStudyDao().findByPK(studySubjectBean.getStudyId()); studySubjectIdAndStudy += studySubjectIdAndStudy.length() == 0 ? "" : ","; studySubjectIdAndStudy += study.getIdentifier() + "-" + studySubjectBean.getLabel(); } h.put("studySubjectIdAndStudy", studySubjectIdAndStudy); h.put("subject", subject); h.put("subject.uniqueIdentifier", subject.getUniqueIdentifier()); h.put("subject.gender", subject.getGender()); h.put("subject.createdDate", subject.getCreatedDate()); h.put("subject.owner", owner); h.put("subject.updatedDate", subject.getUpdatedDate()); h.put("subject.updater", updater); h.put("subject.status", subject.getStatus()); theItems.add(h); } tableFacade.setItems(theItems); }
public void collectOdmStudy() { StudyBean study = studyBase.getStudy(); String studyOID = study.getOid(); if (studyOID == null || studyOID.length() <= 0) { logger.info( "Constructed studyOID using study_id because oc_oid is missing from the table - study."); studyOID = "" + study.getId(); } odmStudy.setOid(studyOID); collectGlobalVariables(); collectBasicDefinitions(); collectMetaDataVersion(); }
private ArrayList<StudyEventDefinitionBean> initDefinitions(StudyBean site) { ArrayList<StudyEventDefinitionBean> seds = new ArrayList<StudyEventDefinitionBean>(); StudyEventDefinitionDAO sedDao = new StudyEventDefinitionDAO(sm.getDataSource()); EventDefinitionCRFDAO edcdao = new EventDefinitionCRFDAO(sm.getDataSource()); CRFVersionDAO cvdao = new CRFVersionDAO(sm.getDataSource()); CRFDAO cdao = new CRFDAO(sm.getDataSource()); StudyBean parentStudy = (StudyBean) new StudyDAO(sm.getDataSource()).findByPK(site.getParentStudyId()); seds = sedDao.findAllByStudy(parentStudy); int start = 0; for (StudyEventDefinitionBean sed : seds) { int defId = sed.getId(); ArrayList<EventDefinitionCRFBean> edcs = (ArrayList<EventDefinitionCRFBean>) edcdao.findAllByDefinitionAndSiteIdAndParentStudyId( defId, site.getId(), parentStudy.getId()); ArrayList<EventDefinitionCRFBean> defCrfs = new ArrayList<EventDefinitionCRFBean>(); // sed.setCrfNum(edcs.size()); for (EventDefinitionCRFBean edcBean : edcs) { int edcStatusId = edcBean.getStatus().getId(); CRFBean crf = (CRFBean) cdao.findByPK(edcBean.getCrfId()); int crfStatusId = crf.getStatusId(); if (edcStatusId == 5 || edcStatusId == 7 || crfStatusId == 5 || crfStatusId == 7) { } else { ArrayList<CRFVersionBean> versions = (ArrayList<CRFVersionBean>) cvdao.findAllActiveByCRF(edcBean.getCrfId()); edcBean.setVersions(versions); edcBean.setCrfName(crf.getName()); CRFVersionBean defaultVersion = (CRFVersionBean) cvdao.findByPK(edcBean.getDefaultVersionId()); edcBean.setDefaultVersionName(defaultVersion.getName()); String sversionIds = edcBean.getSelectedVersionIds(); ArrayList<Integer> idList = new ArrayList<Integer>(); if (sversionIds.length() > 0) { String[] ids = sversionIds.split("\\,"); for (String id : ids) { idList.add(Integer.valueOf(id)); } } edcBean.setSelectedVersionIdList(idList); defCrfs.add(edcBean); ++start; } } logger.debug("definitionCrfs size=" + defCrfs.size() + " total size=" + edcs.size()); sed.setCrfs(defCrfs); sed.setCrfNum(defCrfs.size()); } return seds; }
public SimpleTrigger generateImportTrigger( FormProcessor fp, UserAccountBean userAccount, StudyBean study, Date startDateTime, String locale) { String jobName = fp.getString(JOB_NAME); String email = fp.getString(EMAIL); String jobDesc = fp.getString(JOB_DESC); String directory = fp.getString(DIRECTORY); // what kinds of periods do we have? hourly, daily, weekly? long interval = 0; int hours = fp.getInt("hours"); int minutes = fp.getInt("minutes"); if (hours > 0) { long hoursInt = hours * 3600000; interval = interval + hoursInt; } if (minutes > 0) { long minutesInt = minutes * 60000; interval = interval + minutesInt; } SimpleTrigger trigger = new SimpleTrigger(jobName, IMPORT_TRIGGER, 64000, interval); trigger.setDescription(jobDesc); // set just the start date trigger.setStartTime(startDateTime); trigger.setName(jobName); // + datasetId); trigger.setGroup(IMPORT_TRIGGER); // + datasetId); trigger.setMisfireInstruction( SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT); // set job data map JobDataMap jobDataMap = new JobDataMap(); jobDataMap.put(EMAIL, email); jobDataMap.put(USER_ID, userAccount.getId()); jobDataMap.put(STUDY_NAME, study.getName()); jobDataMap.put(STUDY_OID, study.getOid()); jobDataMap.put(DIRECTORY, directory); jobDataMap.put(ExampleSpringJob.LOCALE, locale); jobDataMap.put("hours", hours); jobDataMap.put("minutes", minutes); trigger.setJobDataMap(jobDataMap); trigger.setVolatility(false); return trigger; }
public ArrayList findAllByStudyAndParent(StudyBean study, int parentId) { HashMap variables = new HashMap(); variables.put(new Integer(1), new Integer(parentId)); variables.put(new Integer(2), new Integer(study.getId())); variables.put(new Integer(3), new Integer(study.getId())); return this.executeFindAllQuery("findAllByStudyAndParent", variables); }
private void submitSiteEventDefinitions(StudyBean site) { FormProcessor fp = new FormProcessor(request); ArrayList<StudyEventDefinitionBean> seds = new ArrayList<StudyEventDefinitionBean>(); CRFVersionDAO cvdao = new CRFVersionDAO(sm.getDataSource()); seds = (ArrayList<StudyEventDefinitionBean>) session.getAttribute("definitions"); HashMap<String, Boolean> changes = (HashMap<String, Boolean>) session.getAttribute("changed"); for (StudyEventDefinitionBean sed : seds) { EventDefinitionCRFDAO edcdao = new EventDefinitionCRFDAO(sm.getDataSource()); ArrayList<EventDefinitionCRFBean> edcs = sed.getCrfs(); for (EventDefinitionCRFBean edcBean : edcs) { int edcStatusId = edcBean.getStatus().getId(); if (edcStatusId == 5 || edcStatusId == 7) { } else { boolean changed = changes.get(sed.getId() + "-" + edcBean.getId()); if (changed) { edcBean.setParentId(edcBean.getId()); edcBean.setStudyId(site.getId()); edcBean.setUpdater(ub); edcBean.setUpdatedDate(new Date()); logger.debug("create for the site"); edcdao.create(edcBean); } } } } session.removeAttribute("definitions"); session.removeAttribute("changed"); session.removeAttribute("sdvOptions"); }
private void createDiscrepancyNoteBean( String description, String detailedNotes, int itemDataId, StudyBean studyBean, UserAccountBean ub, DiscrepancyNoteBean parentDiscrepancyNote) { DiscrepancyNoteBean dnb = new DiscrepancyNoteBean(); dnb.setEntityId(itemDataId); // this is needed for DN Map object dnb.setStudyId(studyBean.getId()); dnb.setEntityType(DiscrepancyNoteBean.ITEM_DATA); dnb.setDescription(description); dnb.setDetailedNotes(detailedNotes); dnb.setDiscrepancyNoteTypeId( parentDiscrepancyNote.getDiscrepancyNoteTypeId()); // set to parent DN Type Id dnb.setResolutionStatusId(4); // set to closed dnb.setColumn("value"); // this is needed for DN Map object dnb.setAssignedUserId(ub.getId()); dnb.setOwner(ub); dnb.setParentDnId(parentDiscrepancyNote.getId()); dnb.setActivated(false); dnb = (DiscrepancyNoteBean) getDnDao().create(dnb); // create child DN getDnDao().createMapping(dnb); // create DN mapping DiscrepancyNoteBean itemParentNote = (DiscrepancyNoteBean) getDnDao().findByPK(dnb.getParentDnId()); itemParentNote.setResolutionStatusId(ResolutionStatus.CLOSED.getId()); itemParentNote.setAssignedUserId(ub.getId()); getDnDao().update(itemParentNote); // update parent DN getDnDao().updateAssignedUser(itemParentNote); // update parent DN assigned user }
/** * Constructs study bean from request-first section * * @param request * @return */ private StudyBean createStudyBean() { FormProcessor fp = new FormProcessor(request); StudyBean newStudy = (StudyBean) session.getAttribute("newStudy"); newStudy.setName(fp.getString("name")); newStudy.setOfficialTitle(fp.getString("officialTitle")); newStudy.setIdentifier(fp.getString("uniqueProId")); newStudy.setSecondaryIdentifier(fp.getString("secondProId")); newStudy.setPrincipalInvestigator(fp.getString("prinInvestigator")); newStudy.setSummary(fp.getString("description")); newStudy.setProtocolDescription(fp.getString("protocolDescription")); newStudy.setSponsor(fp.getString("sponsor")); newStudy.setCollaborators(fp.getString("collaborators")); return newStudy; }
@RequestMapping(method = RequestMethod.POST) public String processSubmit( @ModelAttribute("studyModuleStatus") StudyModuleStatus studyModuleStatus, BindingResult result, SessionStatus status, HttpServletRequest request) { StudyBean currentStudy = (StudyBean) request.getSession().getAttribute("study"); studyModuleStatusDao.saveOrUpdate(studyModuleStatus); status.setComplete(); currentStudy.setStatus(Status.get(studyModuleStatus.getStudyStatus())); if (currentStudy.getParentStudyId() > 0) { studyDao.updateStudyStatus(currentStudy); } else { studyDao.updateStudyStatus(currentStudy); } return "redirect:studymodule"; }
public void testRewardForDining() { initializeLocale(); // create a new dining of 100.00 charged to credit card '1234123412341234' by merchant // '123457890' as test input StudyBean studyBean = new StudyBean(); studyBean.setIdentifier("default-study"); SubjectBean subjectBean = new SubjectBean(); subjectBean.setUniqueIdentifier("krikor"); // Dining dining = Dining.createDining("100.00", "1234123412341234", "1234567890"); // call the 'rewardNetwork' to test its rewardAccountFor(Dining) method // RewardConfirmation confirmation = rewardNetwork.rewardAccountFor(dining); String result = rewardNetwork.createSubject(subjectBean, studyBean, null); System.out.println(result); assertNotNull(result); }
/** * Validates the forth section of study and save it into study bean * * @param request * @param response * @throws Exception */ private void confirmStudy4() throws Exception { FormProcessor fp = new FormProcessor(request); Validator v = new Validator(request); v.addValidation( "conditions", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 500); v.addValidation( "keywords", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 255); v.addValidation( "eligibility", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 500); errors = v.validate(); if (fp.getInt("expectedTotalEnrollment") <= 0) { Validator.addError( errors, "expectedTotalEnrollment", respage.getString("expected_total_enrollment_must_be_a_positive_number")); } StudyBean newStudy = (StudyBean) session.getAttribute("newStudy"); newStudy.setConditions(fp.getString("conditions")); newStudy.setKeywords(fp.getString("keywords")); newStudy.setEligibility(fp.getString("eligibility")); newStudy.setGender(fp.getString("gender")); newStudy.setAgeMax(fp.getString("ageMax")); newStudy.setAgeMin(fp.getString("ageMin")); newStudy.setHealthyVolunteerAccepted(fp.getBoolean("healthyVolunteerAccepted")); newStudy.setExpectedTotalEnrollment(fp.getInt("expectedTotalEnrollment")); session.setAttribute("newStudy", newStudy); request.setAttribute("facRecruitStatusMap", CreateStudyServlet.facRecruitStatusMap); if (errors.isEmpty()) { forwardPage(Page.UPDATE_STUDY6); } else { request.setAttribute("formMessages", errors); forwardPage(Page.UPDATE_STUDY5); } }
private StudySubjectBean createStudySubject( SubjectBean subject, StudyBean studyBean, Date enrollmentDate, String secondaryId) { StudySubjectBean studySubject = new StudySubjectBean(); studySubject.setSecondaryLabel(secondaryId); studySubject.setOwner(getUserAccount()); studySubject.setEnrollmentDate(enrollmentDate); studySubject.setLabel(subject.getLabel()); subject.setLabel(null); studySubject.setSubjectId(subject.getId()); studySubject.setStudyId(studyBean.getId()); studySubject.setStatus(Status.AVAILABLE); return studySubject; }
private void updateInterviewerForSites( StudyBean studyBean, List<StudyBean> sites, StudyParameterValueDAO studyParameterValueDAO, String parameterType) { StudyParameterValueBean studyParameterValueBean = new StudyParameterValueBean(); if ("interviewerNameEditable".equalsIgnoreCase(parameterType)) { studyParameterValueBean.setParameter("interviewerNameEditable"); studyParameterValueBean.setValue( studyBean.getStudyParameterConfig().getInterviewerNameEditable()); } else { studyParameterValueBean.setParameter("interviewerDateEditable"); studyParameterValueBean.setValue( studyBean.getStudyParameterConfig().getInterviewDateEditable()); } for (StudyBean siteBean : sites) { studyParameterValueBean.setStudyId(siteBean.getId()); updateParameter(studyParameterValueDAO, studyParameterValueBean); } }
public StudySubjectBean createStudySubjectBean( StudyBean sBean, SubjectBean subjectBean, UserAccountBean uBean) { StudySubjectBean ssBean = new StudySubjectBean(); subjectBean.setGender('\0'); // setting null character ssBean.setStudyId(sBean.getId()); ssBean.setSubjectId(subjectBean.getId()); ssBean.setStatus(Status.AVAILABLE); ssBean.setOwner(uBean); ssBean.setEnrollmentDate(new Date()); int nextLabel = getStudySubjectDao().findTheGreatestLabel() + 1; ssBean.setLabel(Integer.toString(nextLabel)); StudySubjectDAO ssdao = new StudySubjectDAO(dataSource); ssBean = (StudySubjectBean) ssdao.create(ssBean, false); return ssBean; }
public ArrayList findAllParentsByStudy(StudyBean study) { HashMap variables = new HashMap(); variables.put(new Integer(1), new Integer(study.getId())); variables.put(new Integer(2), new Integer(study.getId())); ArrayList notes = executeFindAllQuery("findAllParentsByStudy", variables); if (fetchMapping) { for (int i = 0; i < notes.size(); i++) { DiscrepancyNoteBean dnb = (DiscrepancyNoteBean) notes.get(i); dnb = findSingleMapping(dnb); notes.set(i, dnb); } } return notes; }
public static DiscrepancyNoteBean createDiscrepancyNote( ItemBean itemBean, String message, EventCRFBean eventCrfBean, DisplayItemBean displayItemBean, Integer parentId, UserAccountBean uab, DataSource ds, StudyBean study) { // DisplayItemBean displayItemBean) { DiscrepancyNoteBean note = new DiscrepancyNoteBean(); StudySubjectDAO ssdao = new StudySubjectDAO(ds); note.setDescription(message); note.setDetailedNotes("Failed Validation Check"); note.setOwner(uab); note.setCreatedDate(new Date()); note.setResolutionStatusId(ResolutionStatus.OPEN.getId()); note.setDiscrepancyNoteTypeId(DiscrepancyNoteType.FAILEDVAL.getId()); if (parentId != null) { note.setParentDnId(parentId); } note.setField(itemBean.getName()); note.setStudyId(study.getId()); note.setEntityName(itemBean.getName()); note.setEntityType("ItemData"); note.setEntityValue(displayItemBean.getData().getValue()); note.setEventName(eventCrfBean.getName()); note.setEventStart(eventCrfBean.getCreatedDate()); note.setCrfName(displayItemBean.getEventDefinitionCRF().getCrfName()); StudySubjectBean ss = (StudySubjectBean) ssdao.findByPK(eventCrfBean.getStudySubjectId()); note.setSubjectName(ss.getName()); note.setEntityId(displayItemBean.getData().getId()); note.setColumn("value"); DiscrepancyNoteDAO dndao = new DiscrepancyNoteDAO(ds); note = (DiscrepancyNoteBean) dndao.create(note); // so that the below method works, need to set the entity above // System.out.println("trying to create mapping with " + note.getId() + " " + note.getEntityId() // + " " + note.getColumn() + " " + note.getEntityType()); dndao.createMapping(note); // System.out.println("just created mapping"); return note; }
/** * Parses the intetventions of a study and divides it into different type and name pairs type and * name are separated by '/', and interventions are separated by ',' examples: * type1/name1,type2/name2,type3/name3, * * @param sb * @return */ private ArrayList parseInterventions(StudyBean sb) { ArrayList inters = new ArrayList(); String interventions = sb.getInterventions(); try { if (!StringUtil.isBlank(interventions)) { StringTokenizer st = new StringTokenizer(interventions, ","); while (st.hasMoreTokens()) { String s = st.nextToken(); StringTokenizer st1 = new StringTokenizer(s, "/"); String type = st1.nextToken(); String name = st1.nextToken(); InterventionBean ib = new InterventionBean(type, name); inters.add(ib); } } } catch (NoSuchElementException nse) { return new ArrayList(); } return inters; }
private void validateStudy4(FormProcessor fp, Validator v) { v.addValidation( "conditions", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 500); v.addValidation( "keywords", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 255); v.addValidation( "eligibility", Validator.LENGTH_NUMERIC_COMPARISON, NumericComparisonOperator.LESS_THAN_OR_EQUAL_TO, 500); errors = v.validate(); if (fp.getInt("expectedTotalEnrollment") <= 0) { Validator.addError( errors, "expectedTotalEnrollment", respage.getString("expected_total_enrollment_must_be_a_positive_number")); } study.setConditions(fp.getString("conditions")); study.setKeywords(fp.getString("keywords")); study.setEligibility(fp.getString("eligibility")); study.setGender(fp.getString("gender")); study.setAgeMax(fp.getString("ageMax")); study.setAgeMin(fp.getString("ageMin")); study.setHealthyVolunteerAccepted(fp.getBoolean("healthyVolunteerAccepted")); study.setExpectedTotalEnrollment(fp.getInt("expectedTotalEnrollment")); request.setAttribute("facRecruitStatusMap", CreateStudyServlet.facRecruitStatusMap); }