use of org.akaza.openclinica.bean.core.Status in project OpenClinica by OpenClinica.
the class StudyEventTransferValidator method validate.
public void validate(Object obj, Errors e) {
StudyEventTransferBean studyEventTransferBean = (StudyEventTransferBean) obj;
// Non Business Validation
if (studyEventTransferBean.getStudyUniqueId() == null || studyEventTransferBean.getStudyUniqueId().length() < 1) {
e.reject("studyEventTransferValidator.invalid_study_identifier");
return;
}
// Business Validation
Status[] included_status = new Status[] { Status.AVAILABLE, Status.PENDING };
StudyBean study = helper.verifyStudy(getStudyDAO(), studyEventTransferBean.getStudyUniqueId(), included_status, e);
if (study == null) {
return;
}
studyEventTransferBean.setStudy(study);
StudyBean site = null;
int site_id = -1;
if (studyEventTransferBean.getSiteUniqueId() != null) {
site = helper.verifySite(getStudyDAO(), studyEventTransferBean.getStudyUniqueId(), studyEventTransferBean.getSiteUniqueId(), included_status, e);
if (site == null) {
return;
}
site_id = site.getId();
studyEventTransferBean.setStudy(site);
}
boolean isRoleVerified = helper.verifyRole(studyEventTransferBean.getUser(), study.getId(), site_id, Role.MONITOR, e);
if (!isRoleVerified)
return;
// Non Business Validation
if (studyEventTransferBean.getSubjectLabel() == null) {
e.reject("studyEventTransferValidator.studySubjectId_required");
return;
}
StudySubjectBean studySubject = getStudySubjectDAO().findByLabelAndStudy(studyEventTransferBean.getSubjectLabel(), studyEventTransferBean.getStudy());
//it is not null but label null
if (studySubject == null || studySubject.getOid() == null) {
e.reject("studyEventTransferValidator.study_subject_does_not_exist", new Object[] { studyEventTransferBean.getSubjectLabel(), studyEventTransferBean.getStudy().getName() }, "StudySubject label you specified " + studyEventTransferBean.getSubjectLabel() + " does not correspond to a study " + studyEventTransferBean.getStudy().getName());
return;
}
// Non Business Validation
if (studyEventTransferBean.getEventDefinitionOID() == null || studyEventTransferBean.getEventDefinitionOID().length() < 1) {
e.reject("studyEventTransferValidator.eventDefinitionOID_required");
return;
}
if (studyEventTransferBean.getStartDateTime() == null) {
e.reject("studyEventTransferValidator.startDateTime_required");
return;
}
StudyParameterValueBean eventLocationRequiredSetting = getStudyParameterValueDAO().findByHandleAndStudy(studyEventTransferBean.getStudy().getId(), "eventLocationRequired");
// if ("true".equals(eventLocationRequiredSetting.getValue()) && (studyEventTransferBean.getLocation() == null || studyEventTransferBean.getLocation().length() < 1)) {
if (REQUIRED.equals(eventLocationRequiredSetting.getValue()) && (studyEventTransferBean.getLocation() == null || studyEventTransferBean.getLocation().length() < 1)) {
e.reject("studyEventTransferValidator.location_required");
return;
}
if (studyEventTransferBean.getEndDateTime() != null && studyEventTransferBean.getStartDateTime() != null) {
if (studyEventTransferBean.getEndDateTime().compareTo(studyEventTransferBean.getStartDateTime()) == -1) {
e.reject("studyEventTransferValidator.start_date_after_end_date", new Object[] { studyEventTransferBean.getStartDateTime(), studyEventTransferBean.getEndDateTime() }, "Start date " + studyEventTransferBean.getStartDateTime() + " after end date (" + studyEventTransferBean.getEndDateTime() + ").");
return;
}
}
int parentStudyId = study.getParentStudyId();
StudyEventDefinitionBean studyEventDefinition = getStudyEventDefinitionDAO().findByOidAndStudy(studyEventTransferBean.getEventDefinitionOID(), study.getId(), parentStudyId);
if (studyEventDefinition == null) {
e.reject("studyEventTransferValidator.invalid_eventDefinitionOID", new Object[] { studyEventTransferBean.getEventDefinitionOID() }, "EventDefinitionOID you specified " + studyEventTransferBean.getEventDefinitionOID() + " is not valid.");
return;
}
}
use of org.akaza.openclinica.bean.core.Status in project OpenClinica by OpenClinica.
the class SubjectTransferValidator method validateIsSubjectExists.
public void validateIsSubjectExists(Object obj, Errors e) {
SubjectStudyDefinitionBean subjectStudyBean = (SubjectStudyDefinitionBean) obj;
if (subjectStudyBean.getStudyUniqueId() == null) {
e.reject("studyEventDefinitionRequestValidator.study_does_not_exist");
return;
}
Status[] included_status = new Status[] { Status.AVAILABLE };
StudyBean study = helper.verifyStudy(getStudyDAO(), subjectStudyBean.getStudyUniqueId(), included_status, e);
if (study == null)
return;
subjectStudyBean.setStudy(study);
StudyBean site = null;
int site_id = -1;
if (subjectStudyBean.getSiteUniqueId() != null) {
site = helper.verifySite(getStudyDAO(), subjectStudyBean.getStudyUniqueId(), subjectStudyBean.getSiteUniqueId(), included_status, e);
if (site == null) {
return;
}
site_id = site.getId();
subjectStudyBean.setStudy(site);
}
//.verifyUser(subjectStudyBean.getUser(), getUserAccountDAO(), study.getId(), site_id, e) ;
boolean isRoleVerified = helper.verifyRole(subjectStudyBean.getUser(), study.getId(), site_id, e);
if (!isRoleVerified) {
return;
}
// StudyBean study = getStudyDAO().findByUniqueIdentifier(subjectStudyBean.getStudyUniqueId());
// if (study == null) {
// e.reject("subjectTransferValidator.study_does_not_exist", new Object[] { subjectStudyBean.getStudyUniqueId() }, "Study identifier you specified "
// + subjectStudyBean.getStudyUniqueId() + " does not correspond to a valid study.");
// return;
// }
// else{ subjectStudyBean.setStudy(study);}
//
// StudyBean site = null;
// if (subjectStudyBean.getSiteUniqueId() != null) {
// site = getStudyDAO().findSiteByUniqueIdentifier(subjectStudyBean.getStudyUniqueId(), subjectStudyBean.getSiteUniqueId());
// if (site == null) {
// e.reject("subjectTransferValidator.site_does_not_exist", new Object[] { subjectStudyBean.getSiteUniqueId() },
// "Site identifier you specified does not correspond to a valid site.");
// return;
// }
// subjectStudyBean.setStudy(site);
// }
// UserAccountBean ua = subjectStudyBean.getUser();
// StudyUserRoleBean role = ua.getRoleByStudy(study);
// if (role.getId() == 0 ) {
// e.reject("subjectTransferValidator.insufficient_permissions", "You do not have sufficient privileges to proceed with this operation.");
// return;
// }
//
String studySubjectId = subjectStudyBean.getSubjectLabel();
if (studySubjectId == null || studySubjectId.length() < 1) {
e.reject("subjectTransferValidator.studySubjectId_required");
return;
} else if (studySubjectId.length() > 30) {
e.reject("subjectTransferValidator.studySubjectId_invalid_length", new Object[] { studySubjectId }, "studySubjectId: " + studySubjectId + " cannot be longer than 30 characters.");
return;
}
StudySubjectBean studySubject = getStudySubjectDAO().findByLabelAndStudy(subjectStudyBean.getSubjectLabel(), subjectStudyBean.getStudy());
//it is not null but label null
if (studySubject == null || studySubject.getOid() == null) {
e.reject("studyEventTransferValidator.study_subject_does_not_exist", new Object[] { subjectStudyBean.getSubjectLabel(), subjectStudyBean.getStudy().getName() }, "StudySubject label you specified " + subjectStudyBean.getSubjectLabel() + " does not correspond to a study " + subjectStudyBean.getStudy().getName());
return;
} else {
subjectStudyBean.setSubjectOIDId(studySubject.getOid());
}
}
use of org.akaza.openclinica.bean.core.Status in project OpenClinica by OpenClinica.
the class ExtractBean method getSEDCRFStatus.
// private String getSEDCRFName(int sedInd, int crfInd) {
// syncCRFIndex(sedInd, crfInd);
// return currentCRF.getName();
// }
// private String getSEDCRFVersionName(int h, int sedInd, int crfInd) {
// syncCRFIndex(sedInd, crfInd);
//
// StudyEventBean seb = getEvent(h, sedInd, crfInd);
//
// String returnMe = "";
// //ArrayList versions = currentCRF.getVersions();//returns zero results
// EventCRFBean eventCRF = null;
// if (seb.getEventCRFs().size() > 0) {
// logger.info("found getEventCRFs.size " + seb.getEventCRFs().size());
// for (int t = 0; t < seb.getEventCRFs().size(); t++) {
// eventCRF = (EventCRFBean) seb.getEventCRFs().get(t);
// returnMe = eventCRF.getCrfVersion().getName();
// //logger.info("found versions.size "+versions.size());
// //for (int s = 0; s < versions.size(); s++) {
// // CRFVersionBean version = (CRFVersionBean)versions.get(s);
// // if (version.getId()==eventCRF.getCRFVersionId()) {
// // returnMe = version.getName();
// //break;
// // }
// //}
// }
//
// }
// logger.info("returning the following for crf version name: " + returnMe);
// return returnMe;
// }
private String getSEDCRFStatus(int h, int sedInd, int crfInd) {
// BADS Flag
syncCRFIndex(sedInd, crfInd);
StudyEventBean seb = getEvent(h, sedInd, crfInd);
Status ecStatus = Status.AVAILABLE;
EventCRFBean eventCRF = null;
if (seb.getEventCRFs().size() > 0) {
eventCRF = (EventCRFBean) seb.getEventCRFs().get(0);
}
String crfVersionStatus = "";
SubjectEventStatus status = SubjectEventStatus.NOT_SCHEDULED;
CRFVersionBean crfv = new CRFVersionBean();
crfv.setStatus(Status.AVAILABLE);
// modified stage so that crfVersionStatus could be the same as what it
// shows in subject matrix - as required.
DataEntryStage stage = DataEntryStage.INVALID;
try {
stage = eventCRF.getStage();
ecStatus = eventCRF.getStatus();
// SubjectEventStatus.get(
status = seb.getSubjectEventStatus();
// eventCRF
// .getCompletionStatusId());
crfv = eventCRF.getCrfVersion();
} catch (NullPointerException e) {
logger.info("exception hit, status set to not scheduled");
}
// currentCRF.getStatus().getName();
//
logger.info("event crf stage: " + stage.getName() + ", event crf status: " + ecStatus.getName() + ", STATUS: " + status.getName() + " crf version: " + crfv.getStatus().getName() + " data entry stage: " + stage.getName());
if (stage.equals(DataEntryStage.INVALID) || ecStatus.equals(Status.INVALID)) {
stage = DataEntryStage.UNCOMPLETED;
}
crfVersionStatus = stage.getName();
if (status.equals(SubjectEventStatus.LOCKED) || status.equals(SubjectEventStatus.SKIPPED) || status.equals(SubjectEventStatus.STOPPED)) {
crfVersionStatus = DataEntryStage.LOCKED.getName();
} else if (status.equals(SubjectEventStatus.INVALID)) {
crfVersionStatus = DataEntryStage.LOCKED.getName();
} else if (!currentCRF.getStatus().equals(Status.AVAILABLE)) {
crfVersionStatus = DataEntryStage.LOCKED.getName();
} else if (!crfv.getStatus().equals(Status.AVAILABLE)) {
crfVersionStatus = DataEntryStage.LOCKED.getName();
}
logger.info("returning: " + crfVersionStatus);
return crfVersionStatus;
}
use of org.akaza.openclinica.bean.core.Status in project OpenClinica by OpenClinica.
the class OdmExtractDAO method getCrfVersionStatus.
private String getCrfVersionStatus(String seSubjectEventStatus, int cvStatusId, int ecStatusId, int validatorId) {
DataEntryStage stage = DataEntryStage.INVALID;
Status status = Status.get(ecStatusId);
// }
if (stage.equals(DataEntryStage.INVALID) || status.equals(Status.INVALID)) {
stage = DataEntryStage.UNCOMPLETED;
}
if (status.equals(Status.AVAILABLE)) {
stage = DataEntryStage.INITIAL_DATA_ENTRY;
}
if (status.equals(Status.PENDING)) {
if (validatorId != 0) {
stage = DataEntryStage.DOUBLE_DATA_ENTRY;
} else {
stage = DataEntryStage.INITIAL_DATA_ENTRY_COMPLETE;
}
}
if (status.equals(Status.UNAVAILABLE)) {
stage = DataEntryStage.DOUBLE_DATA_ENTRY_COMPLETE;
}
if (status.equals(Status.LOCKED)) {
stage = DataEntryStage.LOCKED;
}
try {
if (seSubjectEventStatus.equals(SubjectEventStatus.LOCKED.getName()) || seSubjectEventStatus.equals(SubjectEventStatus.SKIPPED.getName()) || seSubjectEventStatus.equals(SubjectEventStatus.STOPPED.getName())) {
stage = DataEntryStage.LOCKED;
} else if (seSubjectEventStatus.equals(SubjectEventStatus.INVALID.getName())) {
stage = DataEntryStage.LOCKED;
} else if (cvStatusId != 1) {
stage = DataEntryStage.LOCKED;
}
} catch (NullPointerException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
// System.out.println("caught NPE here");
logger.debug("caught NPE here");
}
logger.debug("returning " + stage.getName());
return stage.getName();
}
use of org.akaza.openclinica.bean.core.Status in project OpenClinica by OpenClinica.
the class ListStudySubjectTableFactory 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").width("100%").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)).style("display: none").close();
eventDiv.td(0).colspan("2").close();
eventDiv.table(0).border("0").cellpadding("0").cellspacing("0").width("100%").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);
}
Aggregations