//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2015.05.21 at 01:48:02 PM MDT 
//


package gov.va.med.cds.template.generated.lab;

import gov.va.med.cds.template.generated.basedatatypes.HL72CodedElement;
import gov.va.med.cds.template.generated.basedatatypes.HL72CodedElementExtended;
import gov.va.med.cds.template.generated.basedatatypes.HL72CodedElementLite;
import gov.va.med.cds.template.generated.basedatatypes.HL72EntityIdentifier;
import gov.va.med.cds.template.generated.basedatatypes.PointInTime;
import gov.va.med.cds.template.generated.common.PractitionerLite;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for ChemistryResult complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="ChemistryResult">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="valueInterpretation" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="observationDate" type="{Basedatatypes}PointInTime" minOccurs="0"/>
 *         &lt;element name="observationStatus" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="testIdentifier" type="{Basedatatypes}HL72CodedElementExtended" minOccurs="0"/>
 *         &lt;element name="referenceRange" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="labCommentEvents" type="{Lab}LabCommentEvent" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="observationValue" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="observationUnits" type="{Basedatatypes}HL72CodedElementLite" minOccurs="0"/>
 *         &lt;element name="deviceIdentifier" type="{Basedatatypes}HL72EntityIdentifier" minOccurs="0"/>
 *         &lt;element name="observationValueType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="producerCode" type="{Basedatatypes}HL72CodedElement" minOccurs="0"/>
 *         &lt;element name="verifier" type="{Common}PractitionerLite" minOccurs="0"/>
 *         &lt;element name="analysisDate" type="{Basedatatypes}PointInTime" minOccurs="0"/>
 *         &lt;element name="performingOrganization" type="{Lab}PerformingOrganization" minOccurs="0"/>
 *         &lt;element name="observationMethods" type="{Lab}ObservationMethod" maxOccurs="unbounded" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ChemistryResult", propOrder = {
    "valueInterpretation",
    "observationDate",
    "observationStatus",
    "testIdentifier",
    "referenceRange",
    "labCommentEvents",
    "observationValue",
    "observationUnits",
    "deviceIdentifier",
    "observationValueType",
    "producerCode",
    "verifier",
    "analysisDate",
    "performingOrganization",
    "observationMethods",
    "id"
})
public class ChemistryResult {

    protected String valueInterpretation;
    protected PointInTime observationDate;
    protected String observationStatus;
    protected HL72CodedElementExtended testIdentifier;
    protected String referenceRange;
    protected List<LabCommentEvent> labCommentEvents;
    protected String observationValue;
    protected HL72CodedElementLite observationUnits;
    protected HL72EntityIdentifier deviceIdentifier;
    protected String observationValueType;
    protected HL72CodedElement producerCode;
    protected PractitionerLite verifier;
    protected PointInTime analysisDate;
    protected PerformingOrganization performingOrganization;
    protected List<ObservationMethod> observationMethods;
    protected Long id;

    /**
     * Gets the value of the valueInterpretation property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getValueInterpretation() {
        return valueInterpretation;
    }

    /**
     * Sets the value of the valueInterpretation property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setValueInterpretation(String value) {
        this.valueInterpretation = value;
    }

    /**
     * Gets the value of the observationDate property.
     * 
     * @return
     *     possible object is
     *     {@link PointInTime }
     *     
     */
    public PointInTime getObservationDate() {
        return observationDate;
    }

    /**
     * Sets the value of the observationDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link PointInTime }
     *     
     */
    public void setObservationDate(PointInTime value) {
        this.observationDate = value;
    }

    /**
     * Gets the value of the observationStatus property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getObservationStatus() {
        return observationStatus;
    }

    /**
     * Sets the value of the observationStatus property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setObservationStatus(String value) {
        this.observationStatus = value;
    }

    /**
     * Gets the value of the testIdentifier property.
     * 
     * @return
     *     possible object is
     *     {@link HL72CodedElementExtended }
     *     
     */
    public HL72CodedElementExtended getTestIdentifier() {
        return testIdentifier;
    }

    /**
     * Sets the value of the testIdentifier property.
     * 
     * @param value
     *     allowed object is
     *     {@link HL72CodedElementExtended }
     *     
     */
    public void setTestIdentifier(HL72CodedElementExtended value) {
        this.testIdentifier = value;
    }

    /**
     * Gets the value of the referenceRange property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getReferenceRange() {
        return referenceRange;
    }

    /**
     * Sets the value of the referenceRange property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setReferenceRange(String value) {
        this.referenceRange = value;
    }

    /**
     * Gets the value of the labCommentEvents property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the labCommentEvents property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getLabCommentEvents().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link LabCommentEvent }
     * 
     * 
     */
    public List<LabCommentEvent> getLabCommentEvents() {
        if (labCommentEvents == null) {
            labCommentEvents = new ArrayList<LabCommentEvent>();
        }
        return this.labCommentEvents;
    }
    public void setLabCommentEvents(List<LabCommentEvent> labCommentEvents ) {
    	  
    	this.labCommentEvents = labCommentEvents;
    }

    /**
     * Gets the value of the observationValue property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getObservationValue() {
        return observationValue;
    }

    /**
     * Sets the value of the observationValue property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setObservationValue(String value) {
        this.observationValue = value;
    }

    /**
     * Gets the value of the observationUnits property.
     * 
     * @return
     *     possible object is
     *     {@link HL72CodedElementLite }
     *     
     */
    public HL72CodedElementLite getObservationUnits() {
        return observationUnits;
    }

    /**
     * Sets the value of the observationUnits property.
     * 
     * @param value
     *     allowed object is
     *     {@link HL72CodedElementLite }
     *     
     */
    public void setObservationUnits(HL72CodedElementLite value) {
        this.observationUnits = value;
    }

    /**
     * Gets the value of the deviceIdentifier property.
     * 
     * @return
     *     possible object is
     *     {@link HL72EntityIdentifier }
     *     
     */
    public HL72EntityIdentifier getDeviceIdentifier() {
        return deviceIdentifier;
    }

    /**
     * Sets the value of the deviceIdentifier property.
     * 
     * @param value
     *     allowed object is
     *     {@link HL72EntityIdentifier }
     *     
     */
    public void setDeviceIdentifier(HL72EntityIdentifier value) {
        this.deviceIdentifier = value;
    }

    /**
     * Gets the value of the observationValueType property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getObservationValueType() {
        return observationValueType;
    }

    /**
     * Sets the value of the observationValueType property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setObservationValueType(String value) {
        this.observationValueType = value;
    }

    /**
     * Gets the value of the producerCode property.
     * 
     * @return
     *     possible object is
     *     {@link HL72CodedElement }
     *     
     */
    public HL72CodedElement getProducerCode() {
        return producerCode;
    }

    /**
     * Sets the value of the producerCode property.
     * 
     * @param value
     *     allowed object is
     *     {@link HL72CodedElement }
     *     
     */
    public void setProducerCode(HL72CodedElement value) {
        this.producerCode = value;
    }

    /**
     * Gets the value of the verifier property.
     * 
     * @return
     *     possible object is
     *     {@link PractitionerLite }
     *     
     */
    public PractitionerLite getVerifier() {
        return verifier;
    }

    /**
     * Sets the value of the verifier property.
     * 
     * @param value
     *     allowed object is
     *     {@link PractitionerLite }
     *     
     */
    public void setVerifier(PractitionerLite value) {
        this.verifier = value;
    }

    /**
     * Gets the value of the analysisDate property.
     * 
     * @return
     *     possible object is
     *     {@link PointInTime }
     *     
     */
    public PointInTime getAnalysisDate() {
        return analysisDate;
    }

    /**
     * Sets the value of the analysisDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link PointInTime }
     *     
     */
    public void setAnalysisDate(PointInTime value) {
        this.analysisDate = value;
    }

    /**
     * Gets the value of the performingOrganization property.
     * 
     * @return
     *     possible object is
     *     {@link PerformingOrganization }
     *     
     */
    public PerformingOrganization getPerformingOrganization() {
        return performingOrganization;
    }

    /**
     * Sets the value of the performingOrganization property.
     * 
     * @param value
     *     allowed object is
     *     {@link PerformingOrganization }
     *     
     */
    public void setPerformingOrganization(PerformingOrganization value) {
        this.performingOrganization = value;
    }

    /**
     * Gets the value of the observationMethods property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the observationMethods property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getObservationMethods().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ObservationMethod }
     * 
     * 
     */
    public List<ObservationMethod> getObservationMethods() {
        if (observationMethods == null) {
            observationMethods = new ArrayList<ObservationMethod>();
        }
        return this.observationMethods;
    }
    public void setObservationMethods(List<ObservationMethod> observationMethods) {
        
    	this.observationMethods=observationMethods;
    }
    
    public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

}
