public ModelAndView viewBasicInfo()

in study-builder/fdahpStudyDesigner/src/main/java/com/fdahpstudydesigner/controller/StudyController.java [4495:4741]


  public ModelAndView viewBasicInfo(HttpServletRequest request) {
    logger.entry("begin viewBasicInfo");
    ModelAndView mav = new ModelAndView("redirect:/adminStudies/studyList.do");
    ModelMap map = new ModelMap();
    HashMap<String, List<ReferenceTablesBo>> referenceMap = null;
    List<ReferenceTablesBo> categoryList = null;
    StudyBo studyBo = null;
    String sucMsg = "";
    String errMsg = "";
    ConsentBo consentBo = null;
    StudyIdBean studyIdBean = null;
    Map<String, String> configMap = FdahpStudyDesignerUtil.getAppProperties();
    try {
      SessionObject sesObj =
          (SessionObject)
              request.getSession().getAttribute(FdahpStudyDesignerConstants.SESSION_OBJECT);
      Integer sessionStudyCount =
          StringUtils.isNumeric(request.getParameter("_S"))
              ? Integer.parseInt(request.getParameter("_S"))
              : 0;
      if ((sesObj != null)
          && (sesObj.getStudySession() != null)
          && sesObj.getStudySession().contains(sessionStudyCount)) {
        if (null != request.getSession().getAttribute("sucMsgViewAssocStudies")) {
          request.getSession().removeAttribute("sucMsgViewAssocStudies");
        }
        AuditLogEventRequest auditRequest = AuditEventMapper.fromHttpServletRequest(request);
        if (null
            != request
                .getSession()
                .getAttribute(sessionStudyCount + FdahpStudyDesignerConstants.SUC_MSG)) {
          sucMsg =
              (String)
                  request
                      .getSession()
                      .getAttribute(sessionStudyCount + FdahpStudyDesignerConstants.SUC_MSG);
          map.addAttribute(FdahpStudyDesignerConstants.SUC_MSG, sucMsg);
          request
              .getSession()
              .removeAttribute(sessionStudyCount + FdahpStudyDesignerConstants.SUC_MSG);
        }
        if (null
            != request
                .getSession()
                .getAttribute(sessionStudyCount + FdahpStudyDesignerConstants.ERR_MSG)) {
          errMsg =
              (String)
                  request
                      .getSession()
                      .getAttribute(sessionStudyCount + FdahpStudyDesignerConstants.ERR_MSG);
          map.addAttribute(FdahpStudyDesignerConstants.ERR_MSG, errMsg);
          request
              .getSession()
              .removeAttribute(sessionStudyCount + FdahpStudyDesignerConstants.ERR_MSG);
        }
        String studyId =
            (String)
                (FdahpStudyDesignerUtil.isEmpty(
                        (String)
                            request
                                .getSession()
                                .getAttribute(
                                    sessionStudyCount + FdahpStudyDesignerConstants.STUDY_ID))
                    ? ""
                    : request
                        .getSession()
                        .getAttribute(sessionStudyCount + FdahpStudyDesignerConstants.STUDY_ID));
        String permission =
            (String)
                (FdahpStudyDesignerUtil.isEmpty(
                        (String)
                            request
                                .getSession()
                                .getAttribute(
                                    sessionStudyCount + FdahpStudyDesignerConstants.PERMISSION))
                    ? ""
                    : request
                        .getSession()
                        .getAttribute(sessionStudyCount + FdahpStudyDesignerConstants.PERMISSION));
        String isLive =
            (String)
                (FdahpStudyDesignerUtil.isEmpty(
                        (String)
                            request
                                .getSession()
                                .getAttribute(
                                    sessionStudyCount + FdahpStudyDesignerConstants.IS_LIVE))
                    ? ""
                    : request
                        .getSession()
                        .getAttribute(sessionStudyCount + FdahpStudyDesignerConstants.IS_LIVE));

        if (FdahpStudyDesignerUtil.isEmpty(isLive)) {
          request
              .getSession()
              .removeAttribute(sessionStudyCount + FdahpStudyDesignerConstants.IS_LIVE);
        }

        if (FdahpStudyDesignerUtil.isNotEmpty(studyId)) {
          studyBo = studyService.getStudyById(studyId, sesObj.getUserId());
          if (StringUtils.isNotEmpty(isLive)
              && isLive.equalsIgnoreCase(FdahpStudyDesignerConstants.YES)
              && (studyBo != null)) {
            studyIdBean = studyService.getLiveVersion(studyBo.getCustomStudyId());
            if (studyIdBean != null) {
              consentBo =
                  studyService.getConsentDetailsByStudyId(
                      studyIdBean.getConsentStudyId().toString());
              request
                  .getSession()
                  .setAttribute(
                      sessionStudyCount + FdahpStudyDesignerConstants.CONSENT_STUDY_ID,
                      studyIdBean.getConsentStudyId().toString());
              if (studyIdBean.getActivetaskStudyId() != null) {
                request
                    .getSession()
                    .setAttribute(
                        sessionStudyCount + FdahpStudyDesignerConstants.ACTIVE_TASK_STUDY_ID,
                        studyIdBean.getActivetaskStudyId().toString());
              }
              if (studyIdBean.getQuestionnarieStudyId() != null) {
                request
                    .getSession()
                    .setAttribute(
                        sessionStudyCount + FdahpStudyDesignerConstants.QUESTIONNARIE_STUDY_ID,
                        studyIdBean.getQuestionnarieStudyId().toString());
              }
            }
          } else {
            consentBo = studyService.getConsentDetailsByStudyId(studyId);
          }
          // get consentId if exists for studyId
          request
              .getSession()
              .removeAttribute(sessionStudyCount + FdahpStudyDesignerConstants.CONSENT_ID);
          if (consentBo != null) {
            request
                .getSession()
                .setAttribute(
                    sessionStudyCount + FdahpStudyDesignerConstants.CONSENT_ID, consentBo.getId());
          } else {
            request
                .getSession()
                .removeAttribute(sessionStudyCount + FdahpStudyDesignerConstants.CONSENT_ID);
          }
        }
        if (studyBo == null) {
          auditLogEventHelper.logEvent(NEW_STUDY_CREATION_INITIATED, auditRequest);
          studyBo = new StudyBo();
          studyBo.setType(FdahpStudyDesignerConstants.STUDY_TYPE_GT);
        } else if ((studyBo != null) && StringUtils.isNotEmpty(studyBo.getCustomStudyId())) {
          request
              .getSession()
              .setAttribute(
                  sessionStudyCount + FdahpStudyDesignerConstants.CUSTOM_STUDY_ID,
                  studyBo.getCustomStudyId());

          /*FdahpStudyDesignerUtil.copyImage(
          studyBo.getThumbnailImage(),
          FdahpStudyDesignerConstants.STUDTYLOGO,
          studyBo.getCustomStudyId());*/

          map.addAttribute(
              "signedUrl",
              FdahpStudyDesignerUtil.getImageResources(
                  FdahpStudyDesignerConstants.STUDIES
                      + FdahpStudyDesignerConstants.PATH_SEPARATOR
                      + studyBo.getCustomStudyId()
                      + FdahpStudyDesignerConstants.PATH_SEPARATOR
                      + FdahpStudyDesignerConstants.STUDTYLOGO
                      + FdahpStudyDesignerConstants.PATH_SEPARATOR
                      + studyBo.getThumbnailImage()));
        } else if (StringUtils.isEmpty(studyBo.getCustomStudyId())
            && StringUtils.isNotEmpty(studyBo.getDestinationCustomStudyId())) {

          if (studyBo.getDestinationCustomStudyId().contains("@")) {
            String[] copyCustomIdArray = studyBo.getDestinationCustomStudyId().split("@");
            String customId = "";
            if (copyCustomIdArray[1].contains("COPY")) {
              customId = copyCustomIdArray[0];
              studyBo.setDestinationCustomStudyId(customId);
            } else if (copyCustomIdArray[1].equalsIgnoreCase("EXPORT")) {
              customId = copyCustomIdArray[0];
              studyBo.setDestinationCustomStudyId(customId + "@Export");
            }
          }

          map.addAttribute(
              "signedUrl",
              FdahpStudyDesignerUtil.getImageResources(
                  FdahpStudyDesignerConstants.STUDIES
                      + FdahpStudyDesignerConstants.PATH_SEPARATOR
                      + studyBo.getDestinationCustomStudyId()
                      + FdahpStudyDesignerConstants.PATH_SEPARATOR
                      + FdahpStudyDesignerConstants.STUDTYLOGO
                      + FdahpStudyDesignerConstants.PATH_SEPARATOR
                      + studyBo.getThumbnailImage()));
        }
        map.addAttribute(
            "defaultImageSignedUrl",
            FdahpStudyDesignerUtil.getImageResources(
                FdahpStudyDesignerConstants.DEFAULT_IMAGES
                    + "/"
                    + configMap.get("study.basicInformation.defaultImage")));
        // grouped for Study category , Research Sponsors , Data partner
        referenceMap =
            (HashMap<String, List<ReferenceTablesBo>>) studyService.getreferenceListByCategory();
        if ((referenceMap != null) && (referenceMap.size() > 0)) {
          for (String key : referenceMap.keySet()) {
            if (StringUtils.isNotEmpty(key)) {
              switch (key) {
                case FdahpStudyDesignerConstants.REFERENCE_TYPE_CATEGORIES:
                  categoryList = referenceMap.get(key);
                  break;
                default:
                  break;
              }
            }
          }
        }

        List<AppsBo> apps = appService.getAppsForStudy(sesObj.getUserId());
        AppsBo app = appService.getAppbyCustomAppId(studyBo.getAppId());

        if (app != null) {
          map.addAttribute("appName", app.getName());
          map.addAttribute("appType", app.getType());
          if (app.getType().equals("SD")) {
            apps.add(app);
          }
          boolean appPermission = appService.getAppPermission(app.getId(), sesObj.getUserId());
          map.addAttribute("appPermission", appPermission);
        }
        map.addAttribute("categoryList", categoryList);
        map.addAttribute(FdahpStudyDesignerConstants.STUDY_BO, studyBo);
        map.addAttribute("createStudyId", "true");
        map.addAttribute(FdahpStudyDesignerConstants.PERMISSION, permission);
        map.addAttribute("_S", sessionStudyCount);
        map.addAttribute("appsList", apps);
        mav = new ModelAndView("viewBasicInfo", map);
      }
    } catch (Exception e) {
      logger.error("StudyController - viewBasicInfo - ERROR", e);
    }
    logger.exit("viewBasicInfo - Ends");
    return mav;
  }