public QuestionsBo getQuestionsById()

in study-builder/fdahpStudyDesigner/src/main/java/com/fdahpstudydesigner/dao/StudyQuestionnaireDAOImpl.java [2499:2715]


  public QuestionsBo getQuestionsById(
      String questionId, String questionnaireShortTitle, String customStudyId) {
    logger.entry("begin getQuestionsById()");
    Session session = null;
    QuestionsBo questionsBo = null;
    try {
      session = hibernateTemplate.getSessionFactory().openSession();
      questionsBo = (QuestionsBo) session.get(QuestionsBo.class, questionId);
      if (questionsBo != null) {
        try {
          if (StringUtils.isNotEmpty(questionnaireShortTitle)) {
            // Duplicate ShortTitle per questionsBo Start
            BigInteger quesionshortTitleCount =
                (BigInteger)
                    session
                        .createSQLQuery(
                            "select count(*) From questions QBO,form_mapping f,questionnaires_steps QSBO,questionnaires Q where QBO.id=f.question_id and f.form_id=QSBO.instruction_form_id and QSBO.questionnaires_id=Q.id and Q.short_title=:questionnaireShortTitle "
                                + " and Q.active=1 and Q.is_live=1 and Q.custom_study_id=:customStudyId "
                                + " and QSBO.step_type='Form' and QBO.short_title=:shortTitle "
                                + " and QBO.active=1")
                        .setString("questionnaireShortTitle", questionnaireShortTitle)
                        .setString("customStudyId", customStudyId)
                        .setString("shortTitle", questionsBo.getShortTitle())
                        .uniqueResult();
            if ((quesionshortTitleCount != null) && (quesionshortTitleCount.intValue() > 0)) {
              questionsBo.setIsShorTitleDuplicate(quesionshortTitleCount.intValue());
            } else {
              questionsBo.setIsShorTitleDuplicate(0);
              // Duplicate ShortTitle per questionsBo End
            }

            // Duplicate statShortTitle per questionsBo Start
            if (StringUtils.isNotEmpty(questionsBo.getStatShortName())) {
              BigInteger quesionStatshortTitleCount =
                  (BigInteger)
                      session
                          .createSQLQuery(
                              "select count(*) From questions QBO,form_mapping f,questionnaires_steps QSBO,questionnaires Q where QBO.id=f.question_id and f.form_id=QSBO.instruction_form_id and QSBO.questionnaires_id=Q.id and Q.short_title=:questionnaireShortTitle "
                                  + " and Q.active=1 and Q.is_live=1 and Q.custom_study_id=:customStudyId "
                                  + " and QSBO.step_type='Form' and QBO.stat_short_name=:shortTitle "
                                  + " and QBO.active=1")
                          .setString("questionnaireShortTitle", questionnaireShortTitle)
                          .setString("customStudyId", customStudyId)
                          .setString("shortTitle", questionsBo.getStatShortName())
                          .uniqueResult();
              if ((quesionStatshortTitleCount != null)
                  && (quesionStatshortTitleCount.intValue() > 0)) {
                questionsBo.setIsStatShortNameDuplicate(quesionStatshortTitleCount.intValue());
              } else {
                questionsBo.setIsStatShortNameDuplicate(0);
              }
            }

            // Duplicate statShortTitle per questionsBo Ends
          } else {
            questionsBo.setIsStatShortNameDuplicate(0);
            questionsBo.setIsShorTitleDuplicate(0);
          }
        } catch (Exception e) {
          logger.error("StudyQuestionnaireDAOImpl - getQuestionsById() - SUB  ERROR ", e);
        }

        QuestionReponseTypeBo questionReponseTypeBo = null;
        logger.info(
            "StudyQuestionnaireDAOImpl - getQuestionnaireStep() - questionsResponseTypeId:"
                + questionsBo.getId());
        query =
            session
                .getNamedQuery("getQuestionResponse")
                .setString("questionsResponseTypeId", questionsBo.getId());
        query.setMaxResults(1);
        questionReponseTypeBo = (QuestionReponseTypeBo) query.uniqueResult();
        if ((questionReponseTypeBo != null)
            && (questionReponseTypeBo.getStyle() != null)
            && StringUtils.isNotEmpty(questionReponseTypeBo.getStyle())) {
          questionReponseTypeBo.setStyle(questionReponseTypeBo.getStyle());
          // changing the date format to database date format
          if ((FdahpStudyDesignerConstants.DATE)
              .equalsIgnoreCase(questionReponseTypeBo.getStyle())) {
            if ((questionReponseTypeBo.getMinDate() != null)
                && StringUtils.isNotEmpty(questionReponseTypeBo.getMinDate())) {
              questionReponseTypeBo.setMinDate(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      questionReponseTypeBo.getMinDate(),
                      FdahpStudyDesignerConstants.DB_SDF_DATE,
                      FdahpStudyDesignerConstants.UI_SDF_DATE));
            }
            if ((questionReponseTypeBo.getMaxDate() != null)
                && StringUtils.isNotEmpty(questionReponseTypeBo.getMaxDate())) {
              questionReponseTypeBo.setMaxDate(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      questionReponseTypeBo.getMaxDate(),
                      FdahpStudyDesignerConstants.DB_SDF_DATE,
                      FdahpStudyDesignerConstants.UI_SDF_DATE));
            }
            if ((questionReponseTypeBo.getDefaultDate() != null)
                && StringUtils.isNotEmpty(questionReponseTypeBo.getDefaultDate())) {
              questionReponseTypeBo.setDefaultDate(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      questionReponseTypeBo.getDefaultDate(),
                      FdahpStudyDesignerConstants.DB_SDF_DATE,
                      FdahpStudyDesignerConstants.UI_SDF_DATE));
            }
          } else if ((FdahpStudyDesignerConstants.DATE_TIME)
              .equalsIgnoreCase(questionReponseTypeBo.getStyle())) {
            if ((questionReponseTypeBo.getMinDate() != null)
                && StringUtils.isNotEmpty(questionReponseTypeBo.getMinDate())) {
              questionReponseTypeBo.setMinDate(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      questionReponseTypeBo.getMinDate(),
                      FdahpStudyDesignerConstants.DB_SDF_DATE_TIME,
                      FdahpStudyDesignerConstants.REQUIRED_DATE_TIME));
            }
            if ((questionReponseTypeBo.getMaxDate() != null)
                && StringUtils.isNotEmpty(questionReponseTypeBo.getMaxDate())) {
              questionReponseTypeBo.setMaxDate(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      questionReponseTypeBo.getMaxDate(),
                      FdahpStudyDesignerConstants.DB_SDF_DATE_TIME,
                      FdahpStudyDesignerConstants.REQUIRED_DATE_TIME));
            }
            if ((questionReponseTypeBo.getDefaultDate() != null)
                && StringUtils.isNotEmpty(questionReponseTypeBo.getDefaultDate())) {
              questionReponseTypeBo.setDefaultDate(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      questionReponseTypeBo.getDefaultDate(),
                      FdahpStudyDesignerConstants.DB_SDF_DATE_TIME,
                      FdahpStudyDesignerConstants.REQUIRED_DATE_TIME));
            }
          }
        }
        if (questionReponseTypeBo != null
            && questionReponseTypeBo.getMinImage() != null
            && StringUtils.isNotEmpty(questionReponseTypeBo.getMinImage())) {
          questionReponseTypeBo.setSignedMinImage(
              FdahpStudyDesignerUtil.getImageResources(
                  FdahpStudyDesignerConstants.STUDIES
                      + FdahpStudyDesignerConstants.PATH_SEPARATOR
                      + customStudyId
                      + FdahpStudyDesignerConstants.PATH_SEPARATOR
                      + FdahpStudyDesignerConstants.QUESTIONNAIRE
                      + "/"
                      + questionReponseTypeBo.getMinImage()));
        }

        if (questionReponseTypeBo != null
            && questionReponseTypeBo.getMaxImage() != null
            && StringUtils.isNotEmpty(questionReponseTypeBo.getMaxImage())) {
          questionReponseTypeBo.setSignedMaxImage(
              FdahpStudyDesignerUtil.getImageResources(
                  FdahpStudyDesignerConstants.STUDIES
                      + FdahpStudyDesignerConstants.PATH_SEPARATOR
                      + customStudyId
                      + FdahpStudyDesignerConstants.PATH_SEPARATOR
                      + FdahpStudyDesignerConstants.QUESTIONNAIRE
                      + "/"
                      + questionReponseTypeBo.getMaxImage()));
        }
        questionsBo.setQuestionReponseTypeBo(questionReponseTypeBo);

        List<QuestionResponseSubTypeBo> questionResponseSubTypeList = null;
        query =
            session
                .getNamedQuery("getQuestionSubResponse")
                .setString("responseTypeId", questionsBo.getId());
        questionResponseSubTypeList = query.list();
        // appending the current date and time for image urls
        if ((null != questionResponseSubTypeList) && !questionResponseSubTypeList.isEmpty()) {
          for (QuestionResponseSubTypeBo s : questionResponseSubTypeList) {
            if (FdahpStudyDesignerUtil.isNotEmpty(s.getImage())) {
              s.setSignedImage(
                  FdahpStudyDesignerUtil.getImageResources(
                      FdahpStudyDesignerConstants.STUDIES
                          + FdahpStudyDesignerConstants.PATH_SEPARATOR
                          + customStudyId
                          + FdahpStudyDesignerConstants.PATH_SEPARATOR
                          + FdahpStudyDesignerConstants.QUESTIONNAIRE
                          + "/"
                          + s.getImage()));
            }
            if (FdahpStudyDesignerUtil.isNotEmpty(s.getSelectedImage())) {
              s.setSignedSelectedImage(
                  FdahpStudyDesignerUtil.getImageResources(
                      FdahpStudyDesignerConstants.STUDIES
                          + FdahpStudyDesignerConstants.PATH_SEPARATOR
                          + customStudyId
                          + FdahpStudyDesignerConstants.PATH_SEPARATOR
                          + FdahpStudyDesignerConstants.QUESTIONNAIRE
                          + "/"
                          + s.getSelectedImage()));
            }
          }
        }
        questionsBo.setQuestionResponseSubTypeList(questionResponseSubTypeList);

        // Phase 2a ancordate start
        if (questionsBo.getAnchorDateId() != null) {
          String name =
              (String)
                  session
                      .createSQLQuery("select name from anchordate_type where id=:anchorDateId")
                      .setParameter("anchorDateId", questionsBo.getAnchorDateId())
                      .uniqueResult();
          questionsBo.setAnchorDateName(name);
        }
        // phase 2a anchordate end
      }
    } catch (Exception e) {
      logger.error("StudyQuestionnaireDAOImpl - getQuestionsById() - ERROR ", e);
    } finally {
      if (session != null) {
        session.close();
      }
    }
    logger.exit("getQuestionsById() - Ends");
    return questionsBo;
  }