in study-builder/fdahpStudyDesigner/src/main/java/com/fdahpstudydesigner/controller/StudyQuestionnaireController.java [1262:1475]
public ModelAndView getQuestionStepPage(
HttpServletRequest request, HttpServletResponse response) {
logger.entry("begin getQuestionStepPage");
ModelAndView mav = new ModelAndView("questionStepPage");
String sucMsg = "";
String errMsg = "";
ModelMap map = new ModelMap();
QuestionnaireBo questionnaireBo = null;
QuestionnairesStepsBo questionnairesStepsBo = null;
StudyBo studyBo = null;
List<String> timeRangeList = new ArrayList<>();
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);
}
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);
String permission =
(String) request.getSession().getAttribute(sessionStudyCount + "permission");
request.getSession().removeAttribute(sessionStudyCount + "actionTypeForQuestionPage");
String actionType =
FdahpStudyDesignerUtil.isEmpty(request.getParameter("actionType"))
? ""
: request.getParameter("actionType");
if (StringUtils.isEmpty(actionType)) {
actionType = (String) request.getSession().getAttribute(sessionStudyCount + "actionType");
}
String actionTypeForQuestionPage =
FdahpStudyDesignerUtil.isEmpty(request.getParameter("actionTypeForQuestionPage"))
? ""
: request.getParameter("actionTypeForQuestionPage");
if (StringUtils.isEmpty(actionTypeForQuestionPage)) {
actionTypeForQuestionPage =
(String)
request
.getSession()
.getAttribute(sessionStudyCount + "actionTypeForQuestionPage");
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");
}
} else {
map.addAttribute("actionTypeForQuestionPage", actionTypeForQuestionPage);
request
.getSession()
.setAttribute(
sessionStudyCount + "actionTypeForQuestionPage", actionTypeForQuestionPage);
}
if (StringUtils.isEmpty(studyId)) {
studyId =
FdahpStudyDesignerUtil.isEmpty(
request.getParameter(FdahpStudyDesignerConstants.STUDY_ID))
? ""
: request.getParameter(FdahpStudyDesignerConstants.STUDY_ID);
request
.getSession()
.setAttribute(sessionStudyCount + FdahpStudyDesignerConstants.STUDY_ID, studyId);
}
if (StringUtils.isNotEmpty(studyId)) {
studyBo = studyService.getStudyById(studyId, sesObj.getUserId());
/*boolean isExists = studyQuestionnaireService
.isAnchorDateExistsForStudy(
Integer.valueOf(studyId),
studyBo.getCustomStudyId());
map.addAttribute("isAnchorDate", isExists);*/
map.addAttribute(FdahpStudyDesignerConstants.STUDY_BO, studyBo);
}
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 + "actionType");
questionnaireBo =
studyQuestionnaireService.getQuestionnaireById(
questionnaireId, studyBo.getCustomStudyId());
map.addAttribute("questionnaireBo", questionnaireBo);
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 ("edit".equals(actionType)) {
map.addAttribute("actionType", "edit");
request.getSession().setAttribute(sessionStudyCount + "actionType", "edit");
} else if ("view".equals(actionType)) {
map.addAttribute("actionType", "view");
request.getSession().setAttribute(sessionStudyCount + "actionType", "view");
} else {
map.addAttribute("actionType", "add");
request.getSession().setAttribute(sessionStudyCount + "actionType", "add");
}
request.getSession().setAttribute(sessionStudyCount + "questionnaireId", questionnaireId);
}
if ((questionId != null) && !questionId.isEmpty()) {
questionnairesStepsBo =
studyQuestionnaireService.getQuestionnaireStep(
questionId,
FdahpStudyDesignerConstants.QUESTION_STEP,
questionnaireBo.getShortTitle(),
studyBo.getCustomStudyId(),
questionnaireBo.getId());
if (questionnairesStepsBo != null) {
List<QuestionnairesStepsBo> destionationStepList =
studyQuestionnaireService.getQuestionnairesStepsList(
questionnairesStepsBo.getQuestionnairesId(),
questionnairesStepsBo.getSequenceNo());
map.addAttribute("destinationStepList", destionationStepList);
}
map.addAttribute("questionnairesStepsBo", questionnairesStepsBo);
request.getSession().setAttribute(sessionStudyCount + "questionId", questionId);
}
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("permission", permission);
map.addAttribute("timeRangeList", timeRangeList);
map.addAttribute("statisticImageList", statisticImageList);
map.addAttribute("activetaskFormulaList", activetaskFormulaList);
map.addAttribute("questionnaireId", questionnaireId);
map.addAttribute("questionResponseTypeMasterInfoList", questionResponseTypeMasterInfoList);
map.addAttribute("_S", sessionStudyCount);
mav = new ModelAndView("questionStepPage", map);
}
} catch (Exception e) {
logger.error("StudyQuestionnaireController - getQuestionStepPage - Error", e);
}
logger.exit("getQuestionStepPage - Ends");
return mav;
}