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; }
private void updateParameter(StudyParameterValueDAO spvdao, StudyParameterValueBean spv) { StudyParameterValueBean spv1 = spvdao.findByHandleAndStudy(spv.getStudyId(), spv.getParameter()); if (spv1.getId() > 0) { spvdao.update(spv); } else { spvdao.create(spv); } }
private void updateParameter(StudyParameterValueDAO spvdao, StudyParameterValueBean spv) { StudyParameterValueBean spv1 = spvdao.findByHandleAndStudy(spv.getStudyId(), spv.getParameter()); System.out.println("found parameter: " + spv.getParameter()); if (spv1.getId() > 0) { spvdao.update(spv); System.out.println("updating"); } else { spvdao.create(spv); System.out.println("creating"); } }
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); } }
/** Inserts the new study into database */ private void submitStudy() { FormProcessor fp = new FormProcessor(request); StudyDAO sdao = new StudyDAO(sm.getDataSource()); StudyBean study = (StudyBean) session.getAttribute("newStudy"); ArrayList parameters = study.getStudyParameters(); logger.info("study bean to be created:\n"); logger.info( study.getName() + "\n" + study.getIdentifier() + "\n" + study.getParentStudyId() + "\n" + study.getSummary() + "\n" + study.getPrincipalInvestigator() + "\n" + study.getDatePlannedStart() + "\n" + study.getDatePlannedEnd() + "\n" + study.getFacilityName() + "\n" + study.getFacilityCity() + "\n" + study.getFacilityState() + "\n" + study.getFacilityZip() + "\n" + study.getFacilityCountry() + "\n" + study.getFacilityRecruitmentStatus() + "\n" + study.getFacilityContactName() + "\n" + study.getFacilityContactEmail() + "\n" + study.getFacilityContactPhone() + "\n" + study.getFacilityContactDegree()); study.setOwner(ub); study.setCreatedDate(new Date()); StudyBean parent = (StudyBean) sdao.findByPK(study.getParentStudyId()); study.setType(parent.getType()); // YW 10-10-2007, enable setting site status study.setStatus(study.getStatus()); // YW >> study.setGenetic(parent.isGenetic()); study = (StudyBean) sdao.create(study); StudyParameterValueDAO spvdao = new StudyParameterValueDAO(sm.getDataSource()); for (int i = 0; i < parameters.size(); i++) { StudyParamsConfig config = (StudyParamsConfig) parameters.get(i); StudyParameterValueBean spv = config.getValue(); spv.setStudyId(study.getId()); spv = (StudyParameterValueBean) spvdao.create(config.getValue()); } // YW << here only "collectDob" and "genderRequired" have been corrected // for sites. StudyParameterValueBean spv = new StudyParameterValueBean(); StudyParameterValueBean parentSPV = spvdao.findByHandleAndStudy(parent.getId(), "collectDob"); spv.setStudyId(study.getId()); spv.setParameter("collectDob"); spv.setValue(parentSPV.getValue()); spvdao.create(spv); parentSPV = spvdao.findByHandleAndStudy(parent.getId(), "genderRequired"); spv.setParameter("genderRequired"); spv.setValue(parentSPV.getValue()); spvdao.create(spv); // YW >> // switch user to the newly created site session.setAttribute("study", session.getAttribute("newStudy")); currentStudy = (StudyBean) session.getAttribute("study"); session.removeAttribute("newStudy"); addPageMessage(respage.getString("the_new_site_created_succesfully_current")); forwardPage(Page.SITE_LIST_SERVLET); }
private void submitStudy() { StudyDAO sdao = new StudyDAO(sm.getDataSource()); StudyParameterValueDAO spvdao = new StudyParameterValueDAO(sm.getDataSource()); StudyBean study1 = (StudyBean) session.getAttribute("newStudy"); logger.info("study bean to be updated:" + study1.getName()); study1.setUpdatedDate(new Date()); study1.setUpdater((UserAccountBean) session.getAttribute("userBean")); System.out.println("study's parentId=" + study1.getParentStudyId()); sdao.update(study1); StudyParameterValueBean spv = new StudyParameterValueBean(); spv.setStudyId(study1.getId()); spv.setParameter("collectDob"); spv.setValue(new Integer(study1.getStudyParameterConfig().getCollectDob()).toString()); updateParameter(spvdao, spv); spv.setParameter("discrepancyManagement"); spv.setValue(study1.getStudyParameterConfig().getDiscrepancyManagement()); updateParameter(spvdao, spv); spv.setParameter("genderRequired"); spv.setValue(study1.getStudyParameterConfig().getGenderRequired()); updateParameter(spvdao, spv); spv.setParameter("subjectPersonIdRequired"); spv.setValue(study1.getStudyParameterConfig().getSubjectPersonIdRequired()); updateParameter(spvdao, spv); spv.setParameter("interviewerNameRequired"); spv.setValue(study1.getStudyParameterConfig().getInterviewerNameRequired()); updateParameter(spvdao, spv); spv.setParameter("interviewerNameDefault"); spv.setValue(study1.getStudyParameterConfig().getInterviewerNameDefault()); updateParameter(spvdao, spv); spv.setParameter("interviewerNameEditable"); spv.setValue(study1.getStudyParameterConfig().getInterviewerNameEditable()); updateParameter(spvdao, spv); spv.setParameter("interviewDateRequired"); spv.setValue(study1.getStudyParameterConfig().getInterviewDateRequired()); updateParameter(spvdao, spv); spv.setParameter("interviewDateDefault"); spv.setValue(study1.getStudyParameterConfig().getInterviewDateDefault()); updateParameter(spvdao, spv); spv.setParameter("interviewDateEditable"); spv.setValue(study1.getStudyParameterConfig().getInterviewDateEditable()); updateParameter(spvdao, spv); spv.setParameter("subjectIdGeneration"); spv.setValue(study1.getStudyParameterConfig().getSubjectIdGeneration()); updateParameter(spvdao, spv); spv.setParameter("subjectIdPrefixSuffix"); spv.setValue(study1.getStudyParameterConfig().getSubjectIdPrefixSuffix()); updateParameter(spvdao, spv); spv.setParameter("personIdShownOnCRF"); spv.setValue(study1.getStudyParameterConfig().getPersonIdShownOnCRF()); updateParameter(spvdao, spv); StudyBean curStudy = (StudyBean) session.getAttribute("study"); if (curStudy != null && study1.getId() == curStudy.getId()) { super.currentStudy = study1; session.setAttribute("study", study1); } // update manage_pedigrees for all sites ArrayList children = (ArrayList) sdao.findAllByParent(study1.getId()); for (int i = 0; i < children.size(); i++) { StudyBean child = (StudyBean) children.get(i); child.setType(study1.getType()); // same as parent's type child.setUpdatedDate(new Date()); child.setUpdater(ub); sdao.update(child); // YW << update "collectDob" and "genderRequired" for sites StudyParameterValueBean childspv = new StudyParameterValueBean(); childspv.setStudyId(child.getId()); childspv.setParameter("collectDob"); childspv.setValue(new Integer(study1.getStudyParameterConfig().getCollectDob()).toString()); updateParameter(spvdao, childspv); childspv.setParameter("genderRequired"); childspv.setValue(study1.getStudyParameterConfig().getGenderRequired()); updateParameter(spvdao, childspv); // YW >> } session.removeAttribute("newStudy"); session.removeAttribute("interventions"); }
private void collectMetaDataVersion() { ArrayList<StudyEventDefinitionBean> sedBeansInStudy = (ArrayList<StudyEventDefinitionBean>) studyBase.getSedBeansInStudy(); if (sedBeansInStudy == null || sedBeansInStudy.size() < 1) { logger.info("null, because there is no study event definition in this study."); return; } StudyBean study = studyBase.getStudy(); MetaDataVersionBean metadata = this.odmStudy.getMetaDataVersion(); StudyParameterValueDAO spvdao = new StudyParameterValueDAO(this.ds); int parentId = study.getParentStudyId() > 0 ? study.getParentStudyId() : study.getId(); StudyParameterValueBean spv = spvdao.findByHandleAndStudy(parentId, "discrepancyManagement"); metadata.setSoftHard(spv.getValue().equalsIgnoreCase("true") ? "Hard" : "Soft"); OdmExtractDAO oedao = new OdmExtractDAO(this.ds); int studyId = study.getId(); int parentStudyId = study.getParentStudyId() > 0 ? study.getParentStudyId() : studyId; if (this.getCategory() == 1 && study.isSite(study.getParentStudyId())) { // populate MetaDataVersion attributes if (dataset != null) { metadata.setOid(dataset.getODMMetaDataVersionOid() + "-" + study.getOid()); metadata.setName(dataset.getODMMetaDataVersionName() + "-" + study.getOid()); this.setParentMetaDataVersionOid(dataset.getODMMetaDataVersionOid()); } if (metadata.getOid() == null || metadata.getOid().length() <= 0) { metadata.setOid("v1.0.0" + "-" + study.getOid()); this.setParentMetaDataVersionOid("v1.0.0"); } if (metadata.getName() == null || metadata.getName().length() <= 0) { metadata.setName("MetaDataVersion_v1.0.0" + "-" + study.getOid()); } // populate Include this.collectIncludeFromParentInSameFile(); // populate protocol oedao.getUpdatedSiteMetadata(parentStudyId, studyId, metadata, this.odmBean.getODMVersion()); } else { if (dataset != null) { metadata.setOid(dataset.getODMMetaDataVersionOid()); metadata.setName(dataset.getODMMetaDataVersionName()); } if (metadata.getOid() == null || metadata.getOid().length() <= 0) { metadata.setOid("v1.0.0"); } if (metadata.getName() == null || metadata.getName().length() <= 0) { metadata.setName("MetaDataVersion_v1.0.0"); } // populate Include String psOid = new String(); String pmOid = new String(); if (dataset != null) { psOid = dataset.getODMPriorStudyOid(); pmOid = dataset.getODMPriorMetaDataVersionOid(); } if (pmOid != null && pmOid.length() > 0) { MetaDataVersionIncludeBean ib = metadata.getInclude(); ib.setMetaDataVersionOID(pmOid); if (psOid != null && psOid.length() > 0) { ib.setStudyOID(psOid); } else { ib.setStudyOID(study.getOid()); } } // populate protocol // Set<Integer> nullCodeSet = oedao.getMetadata(parentStudyId, // studyId, // metadata, this.getODMBean().getODMVersion()); // studyBase.setNullClSet(nullCodeSet); oedao.getMetadata(parentStudyId, studyId, metadata, this.odmBean.getODMVersion()); } }
private void submitStudy(StudyBean newStudy) { StudyDAO sdao = new StudyDAO(sm.getDataSource()); StudyParameterValueDAO spvdao = new StudyParameterValueDAO(sm.getDataSource()); StudyBean study1 = newStudy; logger.info("study bean to be updated:" + study1.getName()); study1.setUpdatedDate(new Date()); study1.setUpdater((UserAccountBean) session.getAttribute("userBean")); sdao.update(study1); ArrayList siteList = (ArrayList) sdao.findAllByParent(newStudy.getId()); if (siteList.size() > 0) { sdao.updateSitesStatus(study1); } StudyParameterValueBean spv = new StudyParameterValueBean(); spv.setStudyId(study1.getId()); spv.setParameter("collectDob"); spv.setValue(new Integer(study1.getStudyParameterConfig().getCollectDob()).toString()); updateParameter(spvdao, spv); spv.setParameter("discrepancyManagement"); spv.setValue(study1.getStudyParameterConfig().getDiscrepancyManagement()); updateParameter(spvdao, spv); spv.setParameter("genderRequired"); spv.setValue(study1.getStudyParameterConfig().getGenderRequired()); updateParameter(spvdao, spv); spv.setParameter("subjectPersonIdRequired"); spv.setValue(study1.getStudyParameterConfig().getSubjectPersonIdRequired()); updateParameter(spvdao, spv); spv.setParameter("interviewerNameRequired"); spv.setValue(study1.getStudyParameterConfig().getInterviewerNameRequired()); updateParameter(spvdao, spv); spv.setParameter("interviewerNameDefault"); spv.setValue(study1.getStudyParameterConfig().getInterviewerNameDefault()); updateParameter(spvdao, spv); spv.setParameter("interviewerNameEditable"); spv.setValue(study1.getStudyParameterConfig().getInterviewerNameEditable()); updateParameter(spvdao, spv); // BWP 1/12/2009 3169 Update interviewerNameEditable and // interviewDateEditable parameters for all sites>> List<StudyBean> sites = new ArrayList<StudyBean>(); sites = (ArrayList) sdao.findAllByParent(newStudy.getId()); if (sites != null && (!sites.isEmpty())) { updateInterviewerForSites(newStudy, sites, spvdao, "interviewerNameEditable"); } // >> spv.setParameter("interviewDateRequired"); spv.setValue(study1.getStudyParameterConfig().getInterviewDateRequired()); updateParameter(spvdao, spv); spv.setParameter("interviewDateDefault"); spv.setValue(study1.getStudyParameterConfig().getInterviewDateDefault()); updateParameter(spvdao, spv); spv.setParameter("interviewDateEditable"); spv.setValue(study1.getStudyParameterConfig().getInterviewDateEditable()); updateParameter(spvdao, spv); // BWP 1/12/2009 3169>> if (sites != null && (!sites.isEmpty())) { updateInterviewerForSites(newStudy, sites, spvdao, "interviewDateEditable"); } // >> spv.setParameter("subjectIdGeneration"); spv.setValue(study1.getStudyParameterConfig().getSubjectIdGeneration()); updateParameter(spvdao, spv); spv.setParameter("subjectIdPrefixSuffix"); spv.setValue(study1.getStudyParameterConfig().getSubjectIdPrefixSuffix()); updateParameter(spvdao, spv); spv.setParameter("personIdShownOnCRF"); spv.setValue(study1.getStudyParameterConfig().getPersonIdShownOnCRF()); updateParameter(spvdao, spv); spv.setParameter("secondaryLabelViewable"); spv.setValue(study1.getStudyParameterConfig().getSecondaryLabelViewable()); updateParameter(spvdao, spv); // tbh, 06/04/2009 3684>> spv.setParameter("adminForcedReasonForChange"); spv.setValue(study1.getStudyParameterConfig().getAdminForcedReasonForChange()); updateParameter(spvdao, spv); // >> StudyBean curStudy = (StudyBean) session.getAttribute("study"); if (curStudy != null && study1.getId() == curStudy.getId()) { super.currentStudy = study1; session.setAttribute("study", study1); } // update manage_pedigrees for all sites ArrayList children = (ArrayList) sdao.findAllByParent(study1.getId()); for (int i = 0; i < children.size(); i++) { StudyBean child = (StudyBean) children.get(i); child.setType(study1.getType()); // same as parent's type child.setUpdatedDate(new Date()); child.setUpdater(ub); sdao.update(child); // YW << update "collectDob" and "genderRequired" for sites StudyParameterValueBean childspv = new StudyParameterValueBean(); childspv.setStudyId(child.getId()); childspv.setParameter("collectDob"); childspv.setValue(new Integer(study1.getStudyParameterConfig().getCollectDob()).toString()); updateParameter(spvdao, childspv); childspv.setParameter("genderRequired"); childspv.setValue(study1.getStudyParameterConfig().getGenderRequired()); updateParameter(spvdao, childspv); } }
public boolean validate(SubjectTransferBean subjectTransferBean) throws OpenClinicaSystemException { StudyDAO stdao = new StudyDAO(this.getDataSource()); StudyBean study = stdao.findByUniqueIdentifier(subjectTransferBean.getStudyOid()); if (study == null) { throw new OpenClinicaSystemException("Study you specified does not exist"); } UserAccountBean ua = subjectTransferBean.getOwner(); StudyUserRoleBean role = ua.getRoleByStudy(study); if (role.getId() == 0 || role.getRole().equals(Role.MONITOR)) { throw new OpenClinicaSystemException( "You do not have sufficient priviliges to run this service"); } if (subjectTransferBean.getSiteIdentifier() != null) { study = stdao.findSiteByUniqueIdentifier( subjectTransferBean.getStudyOid(), subjectTransferBean.getSiteIdentifier()); } subjectTransferBean.setStudy(study); if (study == null) { throw new OpenClinicaSystemException("Site you specified does not exist"); } int handleStudyId = study.getParentStudyId() > 0 ? study.getParentStudyId() : study.getId(); org.akaza.openclinica.dao.service.StudyParameterValueDAO spvdao = new StudyParameterValueDAO(this.getDataSource()); StudyParameterValueBean studyParameter = spvdao.findByHandleAndStudy(handleStudyId, "subjectPersonIdRequired"); String personId = subjectTransferBean.getPersonId(); if ("required".equals(studyParameter.getValue()) && (personId == null || personId.length() < 1)) { throw new OpenClinicaSystemException( "personId is required for the study: " + study.getName()); // return false; } if (personId != null && personId.length() > 255) { throw new OpenClinicaSystemException("personId should not be longer than 255."); // return false; } String idSetting = ""; StudyParameterValueBean subjectIdGenerationParameter = spvdao.findByHandleAndStudy(handleStudyId, "subjectIdGeneration"); idSetting = subjectIdGenerationParameter.getValue(); if (idSetting.equals("auto editable") || idSetting.equals("auto non-editable")) { int nextLabel = getStudySubjectDao().findTheGreatestLabel() + 1; subjectTransferBean.setStudySubjectId(new Integer(nextLabel).toString()); } String studySubjectId = subjectTransferBean.getStudySubjectId(); if (studySubjectId == null || studySubjectId.length() < 1) { logger.info("studySubjectId is required."); throw new OpenClinicaSystemException("studySubjectId is required."); // return false; } else if (studySubjectId.length() > 30) { throw new OpenClinicaSystemException("studySubjectId should not be longer than 30."); // return false; } String secondaryId = subjectTransferBean.getSecondaryId(); if (secondaryId != null && secondaryId.length() > 30) { throw new OpenClinicaSystemException("secondaryId should not be longer than 30."); // return false; } String gender = subjectTransferBean.getGender() + ""; studyParameter = spvdao.findByHandleAndStudy(handleStudyId, "genderRequired"); if ("true".equals(studyParameter.getValue()) && (gender == null || gender.length() < 1)) { throw new OpenClinicaSystemException("gender is required for the study:" + study.getName()); // return false; } Date dateOfBirth = subjectTransferBean.getDateOfBirth(); String yearOfBirth = subjectTransferBean.getYearOfBirth(); studyParameter = spvdao.findByHandleAndStudy(handleStudyId, "collectDob"); if ("1".equals(studyParameter.getValue()) && (dateOfBirth == null)) { throw new OpenClinicaSystemException("date Of Birth is required:" + study.getName()); // return false; } else if ("2".equals(studyParameter.getValue()) && (yearOfBirth == null)) { throw new OpenClinicaSystemException("Year Of Birth is required:" + study.getName()); } else if ("2".equals(studyParameter.getValue()) && (yearOfBirth != null)) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); subjectTransferBean.setDateOfBirth(sdf.parse(subjectTransferBean.getYearOfBirth())); } catch (ParseException e) { throw new OpenClinicaSystemException("Year Of Birth not Valid:" + study.getName()); } } Date enrollmentDate = subjectTransferBean.getEnrollmentDate(); if (enrollmentDate == null) { throw new OpenClinicaSystemException("enrollmentDate is required."); // return false; } else { if ((new Date()).compareTo(enrollmentDate) < 0) { throw new OpenClinicaSystemException("enrollmentDate should be in the past."); // return false; } } return true; }