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;
}