Search in sources :

Example 11 with Status

use of org.akaza.openclinica.bean.core.Status in project OpenClinica by OpenClinica.

the class ListDiscNotesSubjectTableFactory method repeatingEventDivBuilder.

private void repeatingEventDivBuilder(HtmlBuilder eventDiv, SubjectBean subject, Integer rowCount, List<StudyEventBean> studyEvents, StudyEventDefinitionBean sed, StudySubjectBean studySubject) {
    String tableHeaderRowStyleClass = "table_header_row";
    String tableHeaderRowLeftStyleClass = "table_header_row_left";
    String add_another_occurrence = resword.getString("add_another_occurrence");
    String click_for_more_options = resword.getString("click_for_more_options");
    String schedule = resword.getString("schedule");
    String view = resword.getString("view") + "/" + resword.getString("enter_data");
    String edit = resword.getString("edit");
    String remove = resword.getString("remove");
    String occurrence_x_of = resword.getString("ocurrence");
    String subjectText = resword.getString("subject");
    String eventText = resword.getString("event");
    String status = resword.getString("status");
    StudyEventBean defaultEvent = studyEvents.get(0);
    String studySubjectLabel = studySubject.getLabel();
    Status eventSysStatus = studySubject.getStatus();
    Integer studyEventsSize = studyEvents.size();
    eventDiv.td(0).styleClass(tableHeaderRowLeftStyleClass).colspan("2").close();
    eventDiv.append(subjectText).append(": ").append(studySubjectLabel).br();
    eventDiv.append(eventText).append(": ").append(sed.getName()).br();
    eventDiv.tdEnd();
    eventDiv.td(0).styleClass(tableHeaderRowLeftStyleClass).align("right").colspan("3").close();
    divCloseRepeatinglinkBuilder(eventDiv, studySubjectLabel, rowCount, studyEvents, sed);
    eventDiv.br();
    if (eventSysStatus != Status.DELETED && eventSysStatus != Status.AUTO_DELETED && studyBean.getStatus() == Status.AVAILABLE) {
        eventDiv.span().styleClass("font-weight: normal;").close();
        eventDiv.ahref("CreateNewStudyEvent?studySubjectId=" + studySubject.getId() + "&studyEventDefinition=" + sed.getId(), add_another_occurrence);
    }
    eventDiv.nbsp().nbsp().nbsp();
    for (int i = 1; i <= studyEventsSize; i++) {
        eventDiv.ahref("javascript:StatusBoxSkip('" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "'," + studyEventsSize + "," + i + ");", String.valueOf(i));
        if (i < studyEventsSize) {
            eventDiv.append("|");
        }
    }
    eventDiv.spanEnd();
    eventDiv.tdEnd().trEnd(0);
    eventDiv.tr(0).close();
    // <td>...</td>
    eventDiv.td(0).id("Scroll_off_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "_back").styleClass("statusbox_scroll_L_dis").width("20").close();
    eventDiv.img().src("images/arrow_status_back_dis.gif").border("0").close();
    eventDiv.tdEnd();
    // <td>...</td>
    eventDiv.td(0).id("Scroll_on_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "_back").styleClass("statusbox_scroll_L").width("20").style("display: none;").close();
    // <div>...</div>
    eventDiv.div().id("bt_Scroll_Event_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "_back").style("display: none;").close();
    eventDiv.a().href("javascript:StatusBoxBack('" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "'," + studyEventsSize + ");").close();
    eventDiv.img().src("images/arrow_status_back.gif").border("0").close();
    eventDiv.aEnd();
    eventDiv.divEnd();
    // <div>...</div>
    eventDiv.div().id("bt_Scroll_Event_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "_back_dis").close();
    eventDiv.img().src("images/arrow_status_back_dis.gif").border("0").close();
    eventDiv.divEnd();
    eventDiv.tdEnd();
    for (int i = 0; i < studyEvents.size(); i++) {
        StudyEventBean studyEventBean = studyEvents.get(i);
        // <td>...</td>
        eventDiv.td(0).id("Event_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "_" + (i + 1)).valign("top").width("180");
        if (i + 1 > 3) {
            eventDiv.style("display: none;");
        }
        eventDiv.close();
        // <table>...</table>
        eventDiv.table(0).border("0").cellpadding("0").cellspacing("0").close();
        // <tr><td>...</td></tr>
        eventDiv.tr(0).valign("top").close();
        eventDiv.td(0).styleClass(tableHeaderRowStyleClass).colspan("2").close();
        eventDiv.bold().append(occurrence_x_of).append("#" + (i + 1) + " of " + studyEventsSize).br();
        eventDiv.append(formatDate(studyEventBean.getDateStarted())).br();
        eventDiv.append(status + ": " + studyEventBean.getSubjectEventStatus().getName());
        eventDiv.boldEnd().tdEnd().trEnd(0);
        // <tr><td><table>...</table></td></tr>
        eventDiv.tr(0).id("Menu_on_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "_" + (i + 1)).styleClass("display: none").close();
        eventDiv.td(0).colspan("2").close();
        eventDiv.table(0).border("0").cellpadding("0").cellspacing("0").close();
        linksDivBuilder(eventDiv, subject, rowCount, studyEvents, sed, studySubject, studyEventBean);
        eventDiv.tableEnd(0).tdEnd().trEnd(0);
        eventDiv.tableEnd(0);
        eventDiv.tdEnd();
    }
    // <td>...</td>
    eventDiv.td(0).id("Scroll_off_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "_next").styleClass("statusbox_scroll_R_dis").width("20").close();
    eventDiv.img().src("images/arrow_status_next_dis.gif").border("0").close();
    eventDiv.tdEnd();
    // <td>...</td>
    eventDiv.td(0).id("Scroll_on_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "_next").styleClass("statusbox_scroll_R").width("20").style("display: none;").close();
    // <div>...</div>
    eventDiv.div().id("bt_Scroll_Event_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "_next").close();
    eventDiv.a().href("javascript:StatusBoxNext('" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "'," + studyEventsSize + ");").close();
    eventDiv.img().src("images/arrow_status_next.gif").border("0").close();
    eventDiv.aEnd();
    eventDiv.divEnd();
    // <div>...</div>
    eventDiv.div().id("bt_Scroll_Event_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount + "_next_dis").style("display: none;").close();
    eventDiv.img().src("images/arrow_status_next_dis.gif").border("0").close();
    eventDiv.divEnd();
    eventDiv.tdEnd().trEnd(0);
    eventDiv.tr(0).id("Menu_off_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount).style("").close();
    eventDiv.td(0).styleClass("table_cell_left").colspan(String.valueOf(studyEventsSize)).close().append("<i>").append(click_for_more_options).append("</i>").tdEnd();
    eventDiv.trEnd(0);
    eventDiv.tableEnd(0);
    eventDiv.divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd();
    repeatingIconLinkBuilder(eventDiv, studySubjectLabel, rowCount, studyEvents, sed);
}
Also used : Status(org.akaza.openclinica.bean.core.Status) ResolutionStatus(org.akaza.openclinica.bean.core.ResolutionStatus) SubjectEventStatus(org.akaza.openclinica.bean.core.SubjectEventStatus) StudyEventBean(org.akaza.openclinica.bean.managestudy.StudyEventBean)

Example 12 with Status

use of org.akaza.openclinica.bean.core.Status in project OpenClinica by OpenClinica.

the class ListDiscNotesSubjectTableFactory method singleEventDivBuilder.

private void singleEventDivBuilder(HtmlBuilder eventDiv, SubjectBean subject, Integer rowCount, List<StudyEventBean> studyEvents, StudyEventDefinitionBean sed, StudySubjectBean studySubject) {
    String tableHeaderRowStyleClass = "table_header_row";
    String tableHeaderRowLeftStyleClass = "table_header_row_left";
    String add_another_occurrence = resword.getString("add_another_occurrence");
    String click_for_more_options = resword.getString("click_for_more_options");
    String schedule = resword.getString("schedule");
    String view = resword.getString("view") + "/" + resword.getString("enter_data");
    String edit = resword.getString("edit");
    String remove = resword.getString("remove");
    String occurrence_x_of = resword.getString("ocurrence");
    String subjectText = resword.getString("subject");
    String eventText = resword.getString("event");
    String status = resword.getString("status");
    SubjectEventStatus eventStatus = studyEvents.size() == 0 ? SubjectEventStatus.NOT_SCHEDULED : studyEvents.get(0).getSubjectEventStatus();
    String studyEventName = studyEvents.size() == 0 ? "" : studyEvents.get(0).getName();
    String studyEventId = studyEvents.size() == 0 ? "" : String.valueOf(studyEvents.get(0).getId());
    Status eventSysStatus = studySubject.getStatus();
    String studySubjectLabel = studySubject.getLabel();
    eventDiv.td(0).styleClass(tableHeaderRowLeftStyleClass).close();
    eventDiv.append(subjectText).append(": ").append(studySubjectLabel).br();
    eventDiv.append(eventText).append(": ").append(sed.getName()).br();
    if (!sed.isRepeating()) {
        eventDiv.append(resword.getString("status")).append(":").append(eventStatus.getName()).br();
        eventDiv.tdEnd();
        eventDiv.td(0).styleClass(tableHeaderRowLeftStyleClass).align("right").close();
        linkBuilder(eventDiv, studySubjectLabel, rowCount, studyEvents, sed);
        eventDiv.tdEnd();
    } else {
        eventDiv.tdEnd();
        eventDiv.td(0).styleClass(tableHeaderRowLeftStyleClass).align("right").close();
        linkBuilder(eventDiv, studySubjectLabel, rowCount, studyEvents, sed);
        eventDiv.tdEnd();
        eventDiv.tr(0).valign("top").close();
        eventDiv.td(0).styleClass(tableHeaderRowStyleClass).colspan("2").close();
        eventDiv.bold().append(occurrence_x_of).append("#1 of 1").br();
        if (studyEvents.size() > 0) {
            eventDiv.append(formatDate(studyEvents.get(0).getDateStarted())).br();
            eventDiv.append(status + " : " + studyEvents.get(0).getSubjectEventStatus().getName());
        } else {
            eventDiv.append(status + " : " + SubjectEventStatus.NOT_SCHEDULED.getName());
        }
        eventDiv.boldEnd().tdEnd().trEnd(0);
        if (eventStatus != SubjectEventStatus.NOT_SCHEDULED && eventSysStatus != Status.DELETED && eventSysStatus != Status.AUTO_DELETED) {
            eventDiv.tr(0).close().td(0).styleClass("table_cell_left").close();
            eventDiv.ahref("CreateNewStudyEvent?studySubjectId=" + studySubject.getId() + "&studyEventDefinition=" + sed.getId(), add_another_occurrence);
            eventDiv.tdEnd().trEnd(0);
        }
    }
    eventDiv.trEnd(0);
    eventDiv.tr(0).id("Menu_off_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount).style("display: all").close();
    eventDiv.td(0).styleClass("table_cell_left").colspan("2").close().append("<i>").append(click_for_more_options).append("</i>").tdEnd();
    eventDiv.trEnd(0);
    eventDiv.tr(0).id("Menu_on_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount).style("display: none").close();
    eventDiv.td(0).colspan("2").close();
    eventDiv.table(0).border("0").cellpadding("0").cellspacing("0").close();
    if (eventSysStatus.getId() == Status.AVAILABLE.getId() || eventSysStatus == Status.SIGNED) {
        if (eventStatus == SubjectEventStatus.NOT_SCHEDULED && currentRole.getRole() != Role.MONITOR) {
            eventDiv.tr(0).valign("top").close();
            eventDiv.td(0).styleClass("table_cell_left").close();
            createNewStudyEventLinkBuilder(eventDiv, studySubject.getId(), sed, schedule);
            eventDiv.tdEnd().trEnd(0);
        } else if (eventStatus == SubjectEventStatus.COMPLETED) {
            eventDiv.tr(0).valign("top").close();
            eventDiv.td(0).styleClass("table_cell_left").close();
            enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
            eventDiv.tdEnd().trEnd(0);
            if ((currentRole.getRole() == Role.STUDYDIRECTOR || currentUser.isSysAdmin()) && studyBean.getStatus() == Status.AVAILABLE) {
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                updateStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, edit);
                eventDiv.tdEnd().trEnd(0);
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                removeStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, remove);
                eventDiv.tdEnd().trEnd(0);
            }
        } else if (eventStatus == SubjectEventStatus.LOCKED) {
            eventDiv.tdEnd().trEnd(0);
            if (currentRole.getRole() == Role.STUDYDIRECTOR || currentUser.isSysAdmin()) {
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
                eventDiv.tdEnd().trEnd(0);
                if (studyBean.getStatus() == Status.AVAILABLE) {
                    eventDiv.tr(0).valign("top").close();
                    eventDiv.td(0).styleClass("table_cell_left").close();
                    removeStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, remove);
                    eventDiv.tdEnd().trEnd(0);
                }
            }
        } else {
            eventDiv.tr(0).valign("top").close();
            eventDiv.td(0).styleClass("table_cell_left");
            enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
            eventDiv.tdEnd().trEnd(0);
            if ((currentRole.getRole() == Role.STUDYDIRECTOR || currentUser.isSysAdmin()) && studyBean.getStatus() == Status.AVAILABLE) {
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                updateStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, edit);
                eventDiv.tdEnd().trEnd(0);
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                removeStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, remove);
                eventDiv.tdEnd().trEnd(0);
            }
        }
    }
    if (eventSysStatus == Status.DELETED || eventSysStatus == Status.AUTO_DELETED) {
        eventDiv.tr(0).valign("top").close();
        eventDiv.td(0).styleClass("table_cell_left").close();
        enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
        eventDiv.tdEnd().trEnd(0);
    }
    eventDiv.tableEnd(0).tdEnd().trEnd(0);
    eventDiv.tableEnd(0);
    eventDiv.divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd();
    iconLinkBuilder(eventDiv, studySubjectLabel, rowCount, studyEvents, sed);
}
Also used : Status(org.akaza.openclinica.bean.core.Status) ResolutionStatus(org.akaza.openclinica.bean.core.ResolutionStatus) SubjectEventStatus(org.akaza.openclinica.bean.core.SubjectEventStatus) SubjectEventStatus(org.akaza.openclinica.bean.core.SubjectEventStatus)

Example 13 with Status

use of org.akaza.openclinica.bean.core.Status in project OpenClinica by OpenClinica.

the class ListDiscNotesForCRFTableFactory method singleEventDivBuilder.

private void singleEventDivBuilder(HtmlBuilder eventDiv, SubjectBean subject, Integer rowCount, List<StudyEventBean> studyEvents, StudyEventDefinitionBean sed, StudySubjectBean studySubject) {
    String tableHeaderRowLeftStyleClass = "table_header_row_left";
    String click_for_more_options = resword.getString("click_for_more_options");
    String schedule = resword.getString("schedule");
    String view = resword.getString("view") + "/" + resword.getString("enter_data");
    String edit = resword.getString("edit");
    ;
    String remove = resword.getString("remove");
    ;
    String subjectText = resword.getString("subject");
    ;
    String eventText = resword.getString("event");
    ;
    SubjectEventStatus eventStatus = studyEvents.size() == 0 ? SubjectEventStatus.NOT_SCHEDULED : studyEvents.get(0).getSubjectEventStatus();
    // String studyEventName = studyEvents.size() == 0 ? "" :
    // studyEvents.get(0).getName();
    String studyEventId = studyEvents.size() == 0 ? "" : String.valueOf(studyEvents.get(0).getId());
    Status eventSysStatus = studySubject.getStatus();
    String studySubjectLabel = studySubject.getLabel();
    eventDiv.td(0).styleClass(tableHeaderRowLeftStyleClass).close();
    eventDiv.append(subjectText).append(": ").append(studySubjectLabel).br();
    eventDiv.append(eventText).append(": ").append(sed.getName()).br();
    eventDiv.append("Status").append(":").append(eventStatus.getName()).br();
    eventDiv.tdEnd();
    eventDiv.td(0).styleClass(tableHeaderRowLeftStyleClass).align("right").close();
    linkBuilder(eventDiv, studySubjectLabel, rowCount, studyEvents, sed);
    eventDiv.tdEnd();
    eventDiv.trEnd(0);
    eventDiv.tr(0).id("Menu_off_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount).style("display: all").close();
    eventDiv.td(0).styleClass("table_cell_left").colspan("2").close().append("<i>").append(click_for_more_options).append("</i>").tdEnd();
    eventDiv.trEnd(0);
    eventDiv.tr(0).id("Menu_on_" + studySubjectLabel + "_" + sed.getId() + "_" + rowCount).style("display: none").close();
    eventDiv.td(0).colspan("2").close();
    eventDiv.table(0).border("0").cellpadding("0").cellspacing("0").width("100%").close();
    if (eventSysStatus.getId() == Status.AVAILABLE.getId() || eventSysStatus == Status.SIGNED) {
        if (eventStatus == SubjectEventStatus.NOT_SCHEDULED && currentRole.getRole() != Role.MONITOR) {
            eventDiv.tr(0).valign("top").close();
            eventDiv.td(0).styleClass("table_cell_left").close();
            createNewStudyEventLinkBuilder(eventDiv, studySubject.getId(), sed, schedule);
            eventDiv.tdEnd().trEnd(0);
        } else if (eventStatus == SubjectEventStatus.COMPLETED) {
            eventDiv.tr(0).valign("top").close();
            eventDiv.td(0).styleClass("table_cell_left").close();
            enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
            eventDiv.tdEnd().trEnd(0);
            if ((currentRole.getRole() == Role.STUDYDIRECTOR || currentUser.isSysAdmin()) && studyBean.getStatus() == Status.AVAILABLE) {
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                updateStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, edit);
                eventDiv.tdEnd().trEnd(0);
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                removeStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, remove);
                eventDiv.tdEnd().trEnd(0);
            }
        } else if (eventStatus == SubjectEventStatus.LOCKED) {
            eventDiv.tdEnd().trEnd(0);
            if (currentRole.getRole() == Role.STUDYDIRECTOR || currentUser.isSysAdmin()) {
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
                eventDiv.tdEnd().trEnd(0);
                if (studyBean.getStatus() == Status.AVAILABLE) {
                    eventDiv.tr(0).valign("top").close();
                    eventDiv.td(0).styleClass("table_cell_left").close();
                    removeStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, remove);
                    eventDiv.tdEnd().trEnd(0);
                }
            }
        } else {
            eventDiv.tr(0).valign("top").close();
            eventDiv.td(0).styleClass("table_cell_left").close();
            enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
            eventDiv.tdEnd().trEnd(0);
            if ((currentRole.getRole() == Role.STUDYDIRECTOR || currentUser.isSysAdmin()) && studyBean.getStatus() == Status.AVAILABLE) {
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                updateStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, edit);
                eventDiv.tdEnd().trEnd(0);
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                removeStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, remove);
                eventDiv.tdEnd().trEnd(0);
            }
        }
    }
    if (eventSysStatus == Status.DELETED || eventSysStatus == Status.AUTO_DELETED) {
        eventDiv.tr(0).valign("top").close();
        eventDiv.td(0).styleClass("table_cell_left").close();
        enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
        eventDiv.tdEnd().trEnd(0);
    }
    eventDiv.tableEnd(0).tdEnd().trEnd(0);
    eventDiv.tableEnd(0);
    eventDiv.divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd().divEnd();
    iconLinkBuilder(eventDiv, studySubjectLabel, rowCount, studyEvents, sed);
}
Also used : Status(org.akaza.openclinica.bean.core.Status) ResolutionStatus(org.akaza.openclinica.bean.core.ResolutionStatus) SubjectEventStatus(org.akaza.openclinica.bean.core.SubjectEventStatus) SubjectEventStatus(org.akaza.openclinica.bean.core.SubjectEventStatus)

Example 14 with Status

use of org.akaza.openclinica.bean.core.Status in project OpenClinica by OpenClinica.

the class ListStudySubjectTableFactory method linksDivBuilder.

private void linksDivBuilder(HtmlBuilder eventDiv, SubjectBean subject, Integer rowCount, List<StudyEventBean> studyEvents, StudyEventDefinitionBean sed, StudySubjectBean studySubject, StudyEventBean currentEvent) {
    Status eventSysStatus = studySubject.getStatus();
    SubjectEventStatus eventStatus = currentEvent.getSubjectEventStatus();
    String studyEventId = String.valueOf(currentEvent.getId());
    String view = resword.getString("view") + "/" + resword.getString("enter_data");
    String edit = resword.getString("edit");
    String remove = resword.getString("remove");
    if (eventSysStatus.getId() == Status.AVAILABLE.getId() || eventSysStatus == Status.SIGNED) {
        if (eventStatus == SubjectEventStatus.COMPLETED) {
            eventDiv.tr(0).valign("top").close();
            eventDiv.td(0).styleClass("table_cell").close();
            enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
            eventDiv.tdEnd().trEnd(0);
            if ((currentRole.getRole() == Role.STUDYDIRECTOR || currentUser.isSysAdmin()) && studyBean.getStatus() == Status.AVAILABLE) {
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell").close();
                updateStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, edit);
                eventDiv.tdEnd().trEnd(0);
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell").close();
                removeStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, remove);
                eventDiv.tdEnd().trEnd(0);
            }
        } else if (eventStatus == SubjectEventStatus.LOCKED) {
            if (currentRole.getRole() == Role.STUDYDIRECTOR || currentUser.isSysAdmin()) {
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell").close();
                enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
                eventDiv.tdEnd().trEnd(0);
                if (studyBean.getStatus() == Status.AVAILABLE) {
                    eventDiv.tr(0).valign("top").close();
                    eventDiv.td(0).styleClass("table_cell").close();
                    removeStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, remove);
                    eventDiv.tdEnd().trEnd(0);
                }
            }
        } else {
            eventDiv.tr(0).valign("top").close();
            eventDiv.td(0).styleClass("table_cell_left");
            enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
            eventDiv.tdEnd().trEnd(0);
            if ((currentRole.getRole() == Role.STUDYDIRECTOR || currentUser.isSysAdmin()) && studyBean.getStatus() == Status.AVAILABLE) {
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                updateStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, edit);
                eventDiv.tdEnd().trEnd(0);
                eventDiv.tr(0).valign("top").close();
                eventDiv.td(0).styleClass("table_cell_left").close();
                removeStudyEventLinkBuilder(eventDiv, studySubject.getId(), studyEventId, remove);
                eventDiv.tdEnd().trEnd(0);
            }
        }
    }
    if (eventSysStatus == Status.DELETED || eventSysStatus == Status.AUTO_DELETED) {
        eventDiv.tr(0).valign("top").close();
        eventDiv.td(0).styleClass("table_cell").close();
        enterDataForStudyEventLinkBuilder(eventDiv, studyEventId, view);
        eventDiv.tdEnd().trEnd(0);
    }
}
Also used : Status(org.akaza.openclinica.bean.core.Status) SubjectEventStatus(org.akaza.openclinica.bean.core.SubjectEventStatus) SubjectEventStatus(org.akaza.openclinica.bean.core.SubjectEventStatus)

Example 15 with Status

use of org.akaza.openclinica.bean.core.Status in project OpenClinica by OpenClinica.

the class MarkEventCRFCompleteServlet method processRequest.

/*
     * (non-Javadoc)
     *
     * @see org.akaza.openclinica.control.core.SecureController#processRequest()
     */
@Override
protected void processRequest() throws Exception {
    // FormDiscrepancyNotes discNotes =
    // (FormDiscrepancyNotes)session.getAttribute(AddNewSubjectServlet.
    // FORM_DISCREPANCY_NOTES_NAME);
    getEventCRFBean();
    getEventDefinitionCRFBean();
    DataEntryStage stage = ecb.getStage();
    request.setAttribute(TableOfContentsServlet.INPUT_EVENT_CRF_BEAN, ecb);
    // Page errorPage = Page.TABLE_OF_CONTENTS_SERVLET;
    Page errorPage = Page.LIST_STUDY_SUBJECTS_SERVLET;
    if (stage.equals(DataEntryStage.UNCOMPLETED) || stage.equals(DataEntryStage.DOUBLE_DATA_ENTRY_COMPLETE) || stage.equals(DataEntryStage.LOCKED)) {
        throw new InconsistentStateException(errorPage, respage.getString("not_mark_CRF_complete1"));
    }
    if (stage.equals(DataEntryStage.INITIAL_DATA_ENTRY_COMPLETE) || stage.equals(DataEntryStage.DOUBLE_DATA_ENTRY)) {
        if (!edcb.isDoubleEntry()) {
            throw new InconsistentStateException(errorPage, respage.getString("not_mark_CRF_complete2"));
        }
    }
    if (!isEachRequiredFieldFillout()) {
        throw new InconsistentStateException(errorPage, respage.getString("not_mark_CRF_complete4"));
    }
    if (ecb.getInterviewerName().trim().equals("")) {
        throw new InconsistentStateException(errorPage, respage.getString("not_mark_CRF_complete5"));
    }
    if (!fp.isSubmitted()) {
        DisplayTableOfContentsBean toc = TableOfContentsServlet.getDisplayBean(ecb, sm.getDataSource(), currentStudy);
        toc = TableOfContentsServlet.getDisplayBeanWithShownSections(sm.getDataSource(), toc, (DynamicsMetadataService) SpringServletAccess.getApplicationContext(getServletContext()).getBean("dynamicsMetadataService"));
        request.setAttribute(BEAN_DISPLAY, toc);
        resetPanel();
        panel.setStudyInfoShown(false);
        panel.setOrderedData(true);
        setToPanel(resword.getString("subject"), toc.getStudySubject().getLabel());
        setToPanel(resword.getString("study_event_definition"), toc.getStudyEventDefinition().getName());
        StudyEventBean seb = toc.getStudyEvent();
        setToPanel(resword.getString("location"), seb.getLocation());
        setToPanel(resword.getString("start_date"), seb.getDateStarted().toString());
        setToPanel(resword.getString("end_date"), seb.getDateEnded().toString());
        setToPanel(resword.getString("CRF"), toc.getCrf().getName());
        setToPanel(resword.getString("CRF_version"), toc.getCrfVersion().getName());
        forwardPage(Page.MARK_EVENT_CRF_COMPLETE);
    } else {
        boolean markComplete = fp.getString(INPUT_MARK_COMPLETE).equals(VALUE_YES);
        if (markComplete) {
            Status newStatus = ecb.getStatus();
            boolean ide = true;
            if (stage.equals(DataEntryStage.INITIAL_DATA_ENTRY) && edcb.isDoubleEntry()) {
                newStatus = Status.PENDING;
                ecb.setUpdaterId(ub.getId());
                ecb.setUpdatedDate(new Date());
                ecb.setDateCompleted(new Date());
            } else if (stage.equals(DataEntryStage.INITIAL_DATA_ENTRY) && !edcb.isDoubleEntry()) {
                newStatus = Status.UNAVAILABLE;
                ecb.setUpdaterId(ub.getId());
                ecb.setUpdatedDate(new Date());
                ecb.setDateCompleted(new Date());
                ecb.setDateValidateCompleted(new Date());
            } else if (stage.equals(DataEntryStage.INITIAL_DATA_ENTRY_COMPLETE) || stage.equals(DataEntryStage.DOUBLE_DATA_ENTRY)) {
                newStatus = Status.UNAVAILABLE;
                ecb.setDateValidateCompleted(new Date());
                ide = false;
            }
            ecb.setStatus(newStatus);
            ecb = (EventCRFBean) ecdao.update(ecb);
            ecdao.markComplete(ecb, ide);
            ItemDataDAO iddao = new ItemDataDAO(sm.getDataSource());
            iddao.updateStatusByEventCRF(ecb, newStatus);
            // change status for event
            StudyEventDAO sedao = new StudyEventDAO(sm.getDataSource());
            StudyEventBean seb = (StudyEventBean) sedao.findByPK(ecb.getStudyEventId());
            seb.setUpdatedDate(new Date());
            seb.setUpdater(ub);
            EventDefinitionCRFDAO edcdao = new EventDefinitionCRFDAO(sm.getDataSource());
            ArrayList allCRFs = ecdao.findAllByStudyEvent(seb);
            ArrayList allEDCs = edcdao.findAllActiveByEventDefinitionId(seb.getStudyEventDefinitionId());
            boolean eventCompleted = true;
            for (int i = 0; i < allCRFs.size(); i++) {
                EventCRFBean ec = (EventCRFBean) allCRFs.get(i);
                if (!ec.getStatus().equals(Status.UNAVAILABLE)) {
                    eventCompleted = false;
                    break;
                }
            }
            if (eventCompleted && allCRFs.size() >= allEDCs.size()) {
                seb.setSubjectEventStatus(SubjectEventStatus.COMPLETED);
            }
            seb = (StudyEventBean) sedao.update(seb);
            addPageMessage(respage.getString("event_CRF_marked_complete"));
            request.setAttribute(EnterDataForStudyEventServlet.INPUT_EVENT_ID, String.valueOf(ecb.getStudyEventId()));
            forwardPage(Page.ENTER_DATA_FOR_STUDY_EVENT_SERVLET);
        } else {
            request.setAttribute(DataEntryServlet.INPUT_IGNORE_PARAMETERS, Boolean.TRUE);
            addPageMessage(respage.getString("event_CRF_not_marked_complete"));
            forwardPage(errorPage);
        }
    }
}
Also used : Status(org.akaza.openclinica.bean.core.Status) SubjectEventStatus(org.akaza.openclinica.bean.core.SubjectEventStatus) ArrayList(java.util.ArrayList) Page(org.akaza.openclinica.view.Page) DisplayTableOfContentsBean(org.akaza.openclinica.bean.submit.DisplayTableOfContentsBean) EventDefinitionCRFDAO(org.akaza.openclinica.dao.managestudy.EventDefinitionCRFDAO) StudyEventBean(org.akaza.openclinica.bean.managestudy.StudyEventBean) InconsistentStateException(org.akaza.openclinica.web.InconsistentStateException) Date(java.util.Date) ItemDataDAO(org.akaza.openclinica.dao.submit.ItemDataDAO) DataEntryStage(org.akaza.openclinica.bean.core.DataEntryStage) EventCRFBean(org.akaza.openclinica.bean.submit.EventCRFBean) StudyEventDAO(org.akaza.openclinica.dao.managestudy.StudyEventDAO) DynamicsMetadataService(org.akaza.openclinica.service.crfdata.DynamicsMetadataService)

Aggregations

Status (org.akaza.openclinica.bean.core.Status)41 ArrayList (java.util.ArrayList)22 SubjectEventStatus (org.akaza.openclinica.bean.core.SubjectEventStatus)22 StudyEventBean (org.akaza.openclinica.bean.managestudy.StudyEventBean)16 StudyBean (org.akaza.openclinica.bean.managestudy.StudyBean)15 Date (java.util.Date)14 DataEntryStage (org.akaza.openclinica.bean.core.DataEntryStage)13 StudyEventDAO (org.akaza.openclinica.dao.managestudy.StudyEventDAO)13 EventCRFBean (org.akaza.openclinica.bean.submit.EventCRFBean)12 StudyEventDefinitionBean (org.akaza.openclinica.bean.managestudy.StudyEventDefinitionBean)11 EventDefinitionCRFDAO (org.akaza.openclinica.dao.managestudy.EventDefinitionCRFDAO)11 EventCRFDAO (org.akaza.openclinica.dao.submit.EventCRFDAO)11 StudySubjectBean (org.akaza.openclinica.bean.managestudy.StudySubjectBean)10 StudyEventDefinitionDAO (org.akaza.openclinica.dao.managestudy.StudyEventDefinitionDAO)10 EventDefinitionCRFBean (org.akaza.openclinica.bean.managestudy.EventDefinitionCRFBean)9 StudyDAO (org.akaza.openclinica.dao.managestudy.StudyDAO)9 StudySubjectDAO (org.akaza.openclinica.dao.managestudy.StudySubjectDAO)9 HashMap (java.util.HashMap)8 ResolutionStatus (org.akaza.openclinica.bean.core.ResolutionStatus)8 List (java.util.List)7