/*
* OpenClinica is distributed under the
* GNU Lesser General Public License (GNU LGPL).
* For details see: http://www.openclinica.org/license
* copyright 2003-2005 Akaza Research
*/
package org.akaza.openclinica.bean.managestudy;
import org.akaza.openclinica.bean.core.AuditableEntityBean;
import org.akaza.openclinica.bean.core.DataEntryStage;
import org.akaza.openclinica.bean.core.Status;
import org.akaza.openclinica.bean.core.SubjectEventStatus;
import org.akaza.openclinica.patterns.ocobserver.Listener;
import org.akaza.openclinica.patterns.ocobserver.Observer;
import java.util.ArrayList;
import java.util.Date;
/**
* @author jxu
*
*/
public class StudyEventBean extends AuditableEntityBean implements Listener {
// STUDY_EVENT_ID STUDY_EVENT_DEFINITION_ID SUBJECT_ID
// LOCATION SAMPLE_ORDINAL DATE_START DATE_END
// OWNER_ID STATUS_ID DATE_CREATED DATE_UPDATED
// UPDATE_ID
private int studyEventDefinitionId;
private int studySubjectId;
private StudySubjectBean studySubject;
private String location = "";
private int sampleOrdinal;
private Date dateStarted;
private Date dateEnded;
// not in database
private StudyEventDefinitionBean studyEventDefinition =
new StudyEventDefinitionBean();
private ArrayList eventCRFs = new ArrayList();// not in DB
private DataEntryStage stage;
private SubjectEventStatus subjectEventStatus;
private String studySubjectLabel;
private boolean scheduledDatePast = false;// not in DB
private int repeatingNum = 1;
private ArrayList<StudyEventBean> repeatEvents = new ArrayList<StudyEventBean>();
// A. Hamid.
// will the edit icon be appeared
private boolean editable = true;
// YW 08-17-2007
private boolean startTimeFlag = false;
private boolean endTimeFlag = false;
//BWP: for display discrepancy notes in a matrix-type study/event grid; 5/2/2008
private ArrayList<DiscrepancyNoteBean> discBeanList = new ArrayList<DiscrepancyNoteBean>();
public ArrayList<DiscrepancyNoteBean> getDiscBeanList() {
return discBeanList;
}
public void setDiscBeanList(ArrayList<DiscrepancyNoteBean> discBeanList) {
this.discBeanList = discBeanList;
}
/**
* @return startTimeFlag
*/
public boolean getStartTimeFlag() {
return startTimeFlag;
}
/**
*
* @param startTimeFlag
*/
public void setStartTimeFlag(boolean startTimeFlag) {
this.startTimeFlag = startTimeFlag;
}
/**
*
* @return endTimeFlag
*/
public boolean getEndTimeFlag() {
return endTimeFlag;
}
/**
*
* @param endTimeFlag
*/
public void setEndTimeFlag(boolean endTimeFlag) {
this.endTimeFlag = endTimeFlag;
}
/**
* @return the repeatEvents
*/
public ArrayList<StudyEventBean> getRepeatEvents() {
return repeatEvents;
}
/**
* @param repeatEvents
* the repeatEvents to set
*/
public void setRepeatEvents(ArrayList<StudyEventBean> repeatEvents) {
this.repeatEvents = repeatEvents;
}
/**
* @return Returns the repeatingNum.
*/
public int getRepeatingNum() {
return repeatingNum;
}
/**
* @param repeatingNum
* The repeatingNum to set.
*/
public void setRepeatingNum(int repeatingNum) {
this.repeatingNum = repeatingNum;
}
/**
* @return Returns the studySubjectLabel.
*/
public String getStudySubjectLabel() {
return studySubjectLabel;
}
/**
* @param studySubjectLabel
* The studySubjectLabel to set.
*/
public void setStudySubjectLabel(String studySubjectLabel) {
this.studySubjectLabel = studySubjectLabel;
}
/**
* @return Returns the subjectEventStatus.
*/
public SubjectEventStatus getSubjectEventStatus() {
return subjectEventStatus;
}
/**
* @param subjectEventStatus
* The subjectEventStatus to set.
*/
public void setSubjectEventStatus(SubjectEventStatus subjectEventStatus) {
this.subjectEventStatus = subjectEventStatus;
}
public StudyEventBean() {
stage = DataEntryStage.UNCOMPLETED;
subjectEventStatus = SubjectEventStatus.SCHEDULED;
}
/**
* @return Returns the dateEnded.
*/
public Date getDateEnded() {
return dateEnded;
}
/**
* @param dateEnded
* The dateEnded to set.
*/
public void setDateEnded(Date dateEnded) {
this.dateEnded = dateEnded;
}
/**
* @return Returns the dateStarted.
*/
public Date getDateStarted() {
return dateStarted;
}
/**
* @param dateStarted
* The dateStarted to set.
*/
public void setDateStarted(Date dateStarted) {
this.dateStarted = dateStarted;
}
/**
* @return Returns the location.
*/
public String getLocation() {
return location;
}
/**
* @param location
* The location to set.
*/
public void setLocation(String location) {
this.location = location;
}
/**
* @return Returns the sampleOrdinal.
*/
public int getSampleOrdinal() {
return sampleOrdinal;
}
/**
* @param sampleOrdinal
* The sampleOrdinal to set.
*/
public void setSampleOrdinal(int sampleOrdinal) {
this.sampleOrdinal = sampleOrdinal;
}
/**
* @return Returns the studyEventDefinitionId.
*/
public int getStudyEventDefinitionId() {
return studyEventDefinitionId;
}
/**
* @param studyEventDefinitionId
* The studyEventDefinitionId to set.
*/
public void setStudyEventDefinitionId(int studyEventDefinitionId) {
this.studyEventDefinitionId = studyEventDefinitionId;
}
/**
* @return Returns the studySubjectId.
*/
public int getStudySubjectId() {
return studySubjectId;
}
/**
* @param studySubjectId
* The studySubjectId to set.
*/
public void setStudySubjectId(int studySubjectId) {
this.studySubjectId = studySubjectId;
}
/**
* @return Returns the studyEventDefinition.
*/
public StudyEventDefinitionBean getStudyEventDefinition() {
return studyEventDefinition;
}
/**
* @param studyEventDefinition
* The studyEventDefinition to set.
*/
public void setStudyEventDefinition(StudyEventDefinitionBean studyEventDefinition) {
this.studyEventDefinition = studyEventDefinition;
}
/**
* @return Returns the eventCRFs.
*/
public ArrayList getEventCRFs() {
return eventCRFs;
}
/**
* @param eventCRFs
* The eventCRFs to set.
*/
public void setEventCRFs(ArrayList eventCRFs) {
this.eventCRFs = eventCRFs;
}
/**
* @return Returns the stage.
*/
public DataEntryStage getStage() {
return stage;
}
/*
* (non-Javadoc)
*
* @see org.akaza.openclinica.bean.core.AuditableEntityBean#getStatus()
*/
@Override
public void setStatus(Status s) {
this.status = s;
if (s.equals(Status.AVAILABLE)) {
stage = DataEntryStage.UNCOMPLETED;
}
else if (s.equals(Status.PENDING)) {
stage = DataEntryStage.INITIAL_DATA_ENTRY_COMPLETE;
}
else if (s.equals(Status.UNAVAILABLE)) {
stage = DataEntryStage.DOUBLE_DATA_ENTRY_COMPLETE;
}
}
/**
* @param stage
* The stage to set.
*/
public void setStage(DataEntryStage stage) {
this.stage = stage;
}
/**
* @return Returns the scheduledDatePast.
*/
public boolean isScheduledDatePast() {
return scheduledDatePast;
}
/**
* @param scheduledDatePast
* The scheduledDatePast to set.
*/
public void setScheduledDatePast(boolean scheduledDatePast) {
this.scheduledDatePast = scheduledDatePast;
}
public boolean isEditable(){
return editable;
}
public void setEditable(boolean editable){
this.editable = editable;
}
public StudySubjectBean getStudySubject() {
return studySubject;
}
public void setStudySubject(StudySubjectBean studySubject) {
this.studySubject = studySubject;
}
@Override
public void setObserver(Observer o) {
// TODO Auto-generated method stub
}
@Override
public Observer getObserver() {
// TODO Auto-generated method stub
return null;
}
}