gov.nih.nci.cabig.caaers.domain.ExternalAdverseEvent.java Source code

Java tutorial

Introduction

Here is the source code for gov.nih.nci.cabig.caaers.domain.ExternalAdverseEvent.java

Source

/*******************************************************************************
 * Copyright SemanticBits, Northwestern University and Akaza Research
 * 
 * Distributed under the OSI-approved BSD 3-Clause License.
 * See http://ncip.github.com/caaers/LICENSE.txt for details.
 ******************************************************************************/
package gov.nih.nci.cabig.caaers.domain;

import gov.nih.nci.cabig.caaers.utils.DateUtils;
import gov.nih.nci.cabig.caaers.validation.AdverseEventGroup;
import gov.nih.nci.cabig.caaers.validation.fields.validators.NotNullConstraint;
import gov.nih.nci.cabig.caaers.validation.fields.validators.NumberRangeConstraint;
import gov.nih.nci.cabig.ctms.domain.AbstractMutableDomainObject;

import java.util.Date;

import javax.persistence.*;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;

/**
 * This class represents the External Adverse Event domain object associated with the Adverse event report.
 *
 * @author Ramakrishsna
 *
 */

@Entity
@Table(name = "ext_adverse_events")
@GenericGenerator(name = "id-generator", strategy = "native", parameters = {
        @Parameter(name = "sequence", value = "seq_ext_adverse_events_id") })
public class ExternalAdverseEvent extends AbstractMutableDomainObject {

    /** The adverse event term. */
    private String adverseEventTerm;

    /** The adverse event term. */
    private String adverseEventTermCode;

    /** The adverse event term. */
    private String adverseEventTermOtherValue;

    /** The grade. */
    private Grade grade;

    /** The verbatim. */
    private String verbatim;

    /** The start date. */
    private Date startDate;

    /** The end date. */
    private Date endDate;

    /** The serious. */
    private String howSerious;

    /** The Attribution. */
    private String attribution;

    private String otherSpecify;

    public String getOtherSpecify() {
        return otherSpecify;
    }

    public void setOtherSpecify(String otherSpecify) {
        this.otherSpecify = otherSpecify;
    }

    private Date creationDate = new Date();

    private ExternalAEReviewStatus status = ExternalAEReviewStatus.PENDING;

    private ExternalAdverseEventReportingPeriod externalAdverseEventReportingPeriod;

    @NotNullConstraint(groups = AdverseEventGroup.class, fieldPath = "adverseEvents[].adverseEventCtcTerm")
    public String getAdverseEventTermCode() {
        return adverseEventTermCode;
    }

    public void setAdverseEventTermCode(String adverseEventTermCode) {
        this.adverseEventTermCode = adverseEventTermCode;
    }

    public String getAdverseEventTermOtherValue() {
        return adverseEventTermOtherValue;
    }

    public void setAdverseEventTermOtherValue(String adverseEventTermOtherValue) {
        this.adverseEventTermOtherValue = adverseEventTermOtherValue;
    }

    @Enumerated(EnumType.STRING)
    public ExternalAEReviewStatus getStatus() {
        return status;
    }

    public void setStatus(ExternalAEReviewStatus status) {
        this.status = status;
    }

    public Date getCreationDate() {
        return creationDate;
    }

    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }

    @ManyToOne
    @JoinColumn(name = "ext_rep_prd_id", nullable = true)
    @Cascade(value = { CascadeType.LOCK, CascadeType.DETACH })
    public ExternalAdverseEventReportingPeriod getExternalAdverseEventReportingPeriod() {
        return externalAdverseEventReportingPeriod;
    }

    public void setExternalAdverseEventReportingPeriod(
            ExternalAdverseEventReportingPeriod externalAdverseEventReportingPeriod) {
        this.externalAdverseEventReportingPeriod = externalAdverseEventReportingPeriod;
    }

    /**
     * This method will return the display name of this adverse event.
     *
     * @return the display name
     */
    @Transient
    public String getDisplayName() {
        return this.getAdverseEventTerm();
    }

    @Enumerated(EnumType.ORDINAL)
    @NotNullConstraint(groups = AdverseEventGroup.class, fieldPath = "adverseEvents[].grade")
    public Grade getGrade() {
        return grade;
    }

    public Date getStartDate() {
        return startDate;
    }

    public String getAdverseEventTerm() {
        return adverseEventTerm;
    }

    public void setAdverseEventTerm(String adverseEventTerm) {
        this.adverseEventTerm = adverseEventTerm;
    }

    public String getVerbatim() {
        return verbatim;
    }

    public void setVerbatim(String verbatim) {
        this.verbatim = verbatim;
    }

    public String getAttribution() {
        return attribution;
    }

    public void setAttribution(String attribution) {
        this.attribution = attribution;
    }

    public String getExternalId() {
        return externalId;
    }

    public void setExternalId(String externalId) {
        this.externalId = externalId;
    }

    private String externalId;

    /**
     * Sets the grade.
     *
     * @param grade the new grade
     */
    public void setGrade(Grade grade) {
        this.grade = grade;
    }

    /**
     * Sets the start date.
     *
     * @param startDate the new start date
     */
    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    /**
     * Gets the start date as string.
     *
     * @return the start date as string
     */
    @Transient
    public String getStartDateAsString() {
        try {
            return DateUtils.formatDate(startDate);
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * Sets the start date as string.
     *
     * @param startDate the new start date as string
     */
    @Transient
    public void setStartDateAsString(String startDate) {
    }

    /**
     * Gets the end date.
     *
     * @return the end date
     */
    public Date getEndDate() {
        return endDate;
    }

    /**
     * Sets the end date.
     *
     * @param endDate the new end date
     */
    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public String getHowSerious() {
        return howSerious;
    }

    public void setHowSerious(String howSerious) {
        this.howSerious = howSerious;
    }

}