in study-builder/fdahpStudyDesigner/src/main/java/com/fdahpstudydesigner/controller/StudyQuestionnaireController.java [683:908]
public ModelAndView getFormStepQuestionPage(
HttpServletRequest request, HttpServletResponse response) {
logger.entry("begin getFormStepQuestionPage");
ModelAndView mav = new ModelAndView("questionPage");
String sucMsg = "";
String errMsg = "";
ModelMap map = new ModelMap();
QuestionnaireBo questionnaireBo = null;
QuestionnairesStepsBo questionnairesStepsBo = null;
StudyBo studyBo = null;
QuestionsBo questionsBo = null;
List<String> timeRangeList = new ArrayList<String>();
List<StatisticImageListBo> statisticImageList = new ArrayList<>();
List<ActivetaskFormulaBo> activetaskFormulaList = new ArrayList<>();
List<QuestionResponseTypeMasterInfoBo> questionResponseTypeMasterInfoList = new ArrayList<>();
List<HealthKitKeysInfo> healthKitKeysInfo = null;
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(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);
}
request.getSession().removeAttribute(sessionStudyCount + "actionTypeForFormStep");
String actionTypeForQuestionPage =
FdahpStudyDesignerUtil.isEmpty(request.getParameter("actionTypeForQuestionPage"))
? ""
: request.getParameter("actionTypeForQuestionPage");
if (StringUtils.isEmpty(actionTypeForQuestionPage)) {
actionTypeForQuestionPage =
(String)
request
.getSession()
.getAttribute(sessionStudyCount + "actionTypeForQuestionPage");
}
String actionTypeForFormStep =
FdahpStudyDesignerUtil.isEmpty(request.getParameter("actionTypeForFormStep"))
? ""
: request.getParameter("actionTypeForFormStep");
if (StringUtils.isEmpty(actionTypeForFormStep)) {
actionTypeForFormStep =
(String)
request.getSession().getAttribute(sessionStudyCount + "actionTypeForFormStep");
if ("edit".equals(actionTypeForFormStep)) {
map.addAttribute("actionTypeForFormStep", "edit");
request.getSession().setAttribute(sessionStudyCount + "actionTypeForFormStep", "edit");
} else if ("view".equals(actionTypeForFormStep)) {
map.addAttribute("actionTypeForFormStep", "view");
request.getSession().setAttribute(sessionStudyCount + "actionTypeForFormStep", "view");
} else {
map.addAttribute("actionTypeForFormStep", "add");
request.getSession().setAttribute(sessionStudyCount + "actionTypeForFormStep", "add");
}
} else {
map.addAttribute("actionTypeForFormStep", actionTypeForFormStep);
}
String formId =
FdahpStudyDesignerUtil.isEmpty(request.getParameter("formId"))
? ""
: request.getParameter("formId");
String questionId =
FdahpStudyDesignerUtil.isEmpty(request.getParameter("questionId"))
? ""
: request.getParameter("questionId");
String questionnaireId =
FdahpStudyDesignerUtil.isEmpty(request.getParameter("questionnaireId"))
? ""
: request.getParameter("questionnaireId");
String studyId =
(String)
request
.getSession()
.getAttribute(sessionStudyCount + FdahpStudyDesignerConstants.STUDY_ID);
if (StringUtils.isEmpty(studyId)) {
studyId =
FdahpStudyDesignerUtil.isEmpty(
request.getParameter(FdahpStudyDesignerConstants.STUDY_ID))
? ""
: request.getParameter(FdahpStudyDesignerConstants.STUDY_ID);
request.getSession().setAttribute(FdahpStudyDesignerConstants.STUDY_ID, studyId);
}
if (StringUtils.isNotEmpty(studyId)) {
studyBo = studyService.getStudyById(studyId, sesObj.getUserId());
boolean isExists =
studyQuestionnaireService.isAnchorDateExistsForStudy(
studyId, studyBo.getCustomStudyId());
map.addAttribute("isAnchorDate", isExists);
map.addAttribute(FdahpStudyDesignerConstants.STUDY_BO, studyBo);
}
if (StringUtils.isEmpty(formId)) {
formId = (String) request.getSession().getAttribute(sessionStudyCount + "formId");
request.getSession().setAttribute(sessionStudyCount + "formId", formId);
}
if (StringUtils.isEmpty(questionId)) {
questionId = (String) request.getSession().getAttribute(sessionStudyCount + "questionId");
request.getSession().setAttribute(sessionStudyCount + "questionId", questionId);
}
if (StringUtils.isEmpty(questionnaireId)) {
questionnaireId =
(String) request.getSession().getAttribute(sessionStudyCount + "questionnaireId");
request.getSession().setAttribute(sessionStudyCount + "questionnaireId", questionnaireId);
}
if (StringUtils.isNotEmpty(questionnaireId)) {
request.getSession().removeAttribute(sessionStudyCount + "actionTypeForQuestionPage");
questionnaireBo =
studyQuestionnaireService.getQuestionnaireById(
questionnaireId, studyBo.getCustomStudyId());
map.addAttribute("questionnaireBo", questionnaireBo);
if ("edit".equals(actionTypeForQuestionPage)) {
map.addAttribute("actionTypeForQuestionPage", "edit");
request
.getSession()
.setAttribute(sessionStudyCount + "actionTypeForQuestionPage", "edit");
} else if ("view".equals(actionTypeForQuestionPage)) {
map.addAttribute("actionTypeForQuestionPage", "view");
request
.getSession()
.setAttribute(sessionStudyCount + "actionTypeForQuestionPage", "view");
} else {
map.addAttribute("actionTypeForQuestionPage", "add");
request
.getSession()
.setAttribute(sessionStudyCount + "actionTypeForQuestionPage", "add");
}
request.getSession().setAttribute(sessionStudyCount + "questionnaireId", questionnaireId);
if ((questionnaireBo != null) && StringUtils.isNotEmpty(questionnaireBo.getFrequency())) {
String frequency = questionnaireBo.getFrequency();
if (questionnaireBo
.getFrequency()
.equalsIgnoreCase(FdahpStudyDesignerConstants.FREQUENCY_TYPE_DAILY)) {
if ((questionnaireBo.getQuestionnairesFrequenciesList() != null)
&& (questionnaireBo.getQuestionnairesFrequenciesList().size() > 1)) {
frequency = questionnaireBo.getFrequency();
} else {
frequency = FdahpStudyDesignerConstants.FREQUENCY_TYPE_ONE_TIME;
}
}
timeRangeList = FdahpStudyDesignerUtil.getTimeRangeList(frequency);
}
}
if ((formId != null) && !formId.isEmpty()) {
questionnairesStepsBo =
studyQuestionnaireService.getQuestionnaireStep(
formId,
FdahpStudyDesignerConstants.FORM_STEP,
questionnaireBo.getShortTitle(),
studyBo.getCustomStudyId(),
questionnaireBo.getId());
if ((questionId != null) && !questionId.isEmpty()) {
questionsBo =
studyQuestionnaireService.getQuestionsById(
questionId, questionnaireBo.getShortTitle(), studyBo.getCustomStudyId());
map.addAttribute("questionsBo", questionsBo);
request.getSession().setAttribute(sessionStudyCount + "questionId", questionId);
if (questionnairesStepsBo != null) {
List<QuestionnairesStepsBo> destionationStepList =
studyQuestionnaireService.getQuestionnairesStepsList(
questionnairesStepsBo.getQuestionnairesId(),
questionnairesStepsBo.getSequenceNo());
map.addAttribute("destinationStepList", destionationStepList);
}
}
map.addAttribute("formId", formId);
map.addAttribute("questionnairesStepsBo", questionnairesStepsBo);
request.getSession().setAttribute(sessionStudyCount + "formId", formId);
}
statisticImageList = studyActiveTasksService.getStatisticImages();
activetaskFormulaList = studyActiveTasksService.getActivetaskFormulas();
questionResponseTypeMasterInfoList = studyQuestionnaireService.getQuestionReponseTypeList();
if (studyBo != null) {
if (studyBo.getPlatform().contains(FdahpStudyDesignerConstants.IOS)) {
healthKitKeysInfo = studyQuestionnaireService.getHeanlthKitKeyInfoList();
map.addAttribute("healthKitKeysInfo", healthKitKeysInfo);
}
}
map.addAttribute("timeRangeList", timeRangeList);
map.addAttribute("statisticImageList", statisticImageList);
map.addAttribute("activetaskFormulaList", activetaskFormulaList);
map.addAttribute("questionResponseTypeMasterInfoList", questionResponseTypeMasterInfoList);
request
.getSession()
.setAttribute(sessionStudyCount + FdahpStudyDesignerConstants.QUESTION_STEP, "Yes");
map.addAttribute("_S", sessionStudyCount);
mav = new ModelAndView("questionPage", map);
}
} catch (Exception e) {
logger.error("StudyQuestionnaireController - getFormStepQuestionPage - Error", e);
}
logger.exit("getFormStepQuestionPage - Ends");
return mav;
}