//
// 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.29 at 02:46:14 PM MDT 
//


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

import gov.va.med.cds.template.generated.basedatatypes.HL72PersonIdentifier;
import gov.va.med.cds.template.generated.immunizationskintests.ImmunizationEvent;
import gov.va.med.cds.template.generated.immunizationskintests.SkinTestProcedure;
import gov.va.med.cds.template.generated.pgd.PatientGeneratedDataEvent;
import gov.va.med.cds.template.generated.pharmacy.NonVaMedicationEvent;
import gov.va.med.cds.template.generated.pharmacy.OutpatientMedicationPromise;
import gov.va.med.cds.template.generated.tiu.ClincalDocumentEvent;
import gov.va.med.cds.template.generated.generichl7.GenericHl7DataEvent;

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.XmlElement;
import javax.xml.bind.annotation.XmlType;



/**
 * <p>Java class for ClinicalDataPatient complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="ClinicalDataPatient">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;all>
 *         &lt;element name="requestedNationalId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="requestedResolvedIdentifiers" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="requestedResolvedIdentifier" type="{Basedatatypes}HL72PersonIdentifier" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="requestedExcludedIdentifiers" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="requestedExcludedIdentifier" type="{Basedatatypes}HL72PersonIdentifier" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="resultantIdentifiers" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="resultantIdentifier" type="{Basedatatypes}HL72PersonIdentifier" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="immunizationEvents" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="immunizationEvent" type="{Immunizationskintest}ImmunizationEvent" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *       &lt;/all>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ClinicalDataPatient", propOrder = {

})
public class ClinicalDataPatient {

    protected String requestedNationalId;
    protected ClinicalDataPatient.RequestedResolvedIdentifiers requestedResolvedIdentifiers;
    protected ClinicalDataPatient.RequestedExcludedIdentifiers requestedExcludedIdentifiers;
    protected ClinicalDataPatient.ResultantIdentifiers resultantIdentifiers;
    protected ClinicalDataPatient.ImmunizationEvents immunizationEvents;
    protected ClinicalDataPatient.OutpatientMedicationPromises outpatientMedicationPromises;
    protected ClinicalDataPatient.PatientGeneratedDataEvents patientGeneratedDataEvents;
    protected ClinicalDataPatient.SkinTestProcedures skinTestProcedures;
    protected ClinicalDataPatient.NonVaMedicationEvents nonVaMedicationEvents;
    protected ClinicalDataPatient.ClinicalDocumentEvents clinicalDocumentEvents;
    protected ClinicalDataPatient.GenericHl7DataEvents genericHl7DataEvents;

   

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

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

    /**
     * Gets the value of the requestedResolvedIdentifiers property.
     * 
     * @return
     *     possible object is
     *     {@link ClinicalDataPatient.RequestedResolvedIdentifiers }
     *     
     */
    public ClinicalDataPatient.RequestedResolvedIdentifiers getRequestedResolvedIdentifiers() {
        return requestedResolvedIdentifiers;
    }

    /**
     * Sets the value of the requestedResolvedIdentifiers property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClinicalDataPatient.RequestedResolvedIdentifiers }
     *     
     */
    public void setRequestedResolvedIdentifiers(ClinicalDataPatient.RequestedResolvedIdentifiers value) {
        this.requestedResolvedIdentifiers = value;
    }

    /**
     * Gets the value of the requestedExcludedIdentifiers property.
     * 
     * @return
     *     possible object is
     *     {@link ClinicalDataPatient.RequestedExcludedIdentifiers }
     *     
     */
    public ClinicalDataPatient.RequestedExcludedIdentifiers getRequestedExcludedIdentifiers() {
        return requestedExcludedIdentifiers;
    }

    /**
     * Sets the value of the requestedExcludedIdentifiers property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClinicalDataPatient.RequestedExcludedIdentifiers }
     *     
     */
    public void setRequestedExcludedIdentifiers(ClinicalDataPatient.RequestedExcludedIdentifiers value) {
        this.requestedExcludedIdentifiers = value;
    }

    /**
     * Gets the value of the resultantIdentifiers property.
     * 
     * @return
     *     possible object is
     *     {@link ClinicalDataPatient.ResultantIdentifiers }
     *     
     */
    public ClinicalDataPatient.ResultantIdentifiers getResultantIdentifiers() {
        return resultantIdentifiers;
    }

    /**
     * Sets the value of the resultantIdentifiers property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClinicalDataPatient.ResultantIdentifiers }
     *     
     */
    public void setResultantIdentifiers(ClinicalDataPatient.ResultantIdentifiers value) {
        this.resultantIdentifiers = value;
    }

    /**
     * Gets the value of the immunizationEvents property.
     * 
     * @return
     *     possible object is
     *     {@link ClinicalDataPatient.ImmunizationEvents }
     *     
     */
    public ClinicalDataPatient.ImmunizationEvents getImmunizationEvents() {
        return immunizationEvents;
    }

    /**
     * Sets the value of the immunizationEvents property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClinicalDataPatient.ImmunizationEvents }
     *     
     */
    public void setImmunizationEvents(ClinicalDataPatient.ImmunizationEvents value) {
        this.immunizationEvents = value;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="immunizationEvent" type="{Immunizationskintest}ImmunizationEvent" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "immunizationEvent"
    })
    public static class ImmunizationEvents {

        protected List<ImmunizationEvent> immunizationEvent;

        /**
         * Gets the value of the immunizationEvent 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 immunizationEvent property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getImmunizationEvent().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link ImmunizationEvent }
         * 
         * 
         */
        public List<ImmunizationEvent> getImmunizationEvent() {
            if (immunizationEvent == null) {
                immunizationEvent = new ArrayList<ImmunizationEvent>();
            }
            return this.immunizationEvent;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="requestedExcludedIdentifier" type="{Basedatatypes}HL72PersonIdentifier" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "requestedExcludedIdentifier"
    })
    public static class RequestedExcludedIdentifiers {

        protected List<HL72PersonIdentifier> requestedExcludedIdentifier;

        /**
         * Gets the value of the requestedExcludedIdentifier 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 requestedExcludedIdentifier property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getRequestedExcludedIdentifier().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link HL72PersonIdentifier }
         * 
         * 
         */
        public List<HL72PersonIdentifier> getRequestedExcludedIdentifier() {
            if (requestedExcludedIdentifier == null) {
                requestedExcludedIdentifier = new ArrayList<HL72PersonIdentifier>();
            }
            return this.requestedExcludedIdentifier;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="requestedResolvedIdentifier" type="{Basedatatypes}HL72PersonIdentifier" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "requestedResolvedIdentifier"
    })
    public static class RequestedResolvedIdentifiers {

        protected List<HL72PersonIdentifier> requestedResolvedIdentifier;

        /**
         * Gets the value of the requestedResolvedIdentifier 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 requestedResolvedIdentifier property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getRequestedResolvedIdentifier().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link HL72PersonIdentifier }
         * 
         * 
         */
        public List<HL72PersonIdentifier> getRequestedResolvedIdentifier() {
            if (requestedResolvedIdentifier == null) {
                requestedResolvedIdentifier = new ArrayList<HL72PersonIdentifier>();
            }
            return this.requestedResolvedIdentifier;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="resultantIdentifier" type="{Basedatatypes}HL72PersonIdentifier" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "resultantIdentifier"
    })
    public static class ResultantIdentifiers {

        protected List<HL72PersonIdentifier> resultantIdentifier;

        /**
         * Gets the value of the resultantIdentifier 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 resultantIdentifier property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getResultantIdentifier().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link HL72PersonIdentifier }
         * 
         * 
         */
        public List<HL72PersonIdentifier> getResultantIdentifier() {
            if (resultantIdentifier == null) {
                resultantIdentifier = new ArrayList<HL72PersonIdentifier>();
            }
            return this.resultantIdentifier;
        }

    }
    
    /**
     * Gets the value of the outpatientMedicationPromises property.
     * 
     * @return
     *     possible object is
     *     {@link ClinicalDataPatient.OutpatientMedicationPromises }
     *     
     */
    public ClinicalDataPatient.OutpatientMedicationPromises getOutpatientMedicationPromises() {
        return outpatientMedicationPromises;
    }

    /**
     * Sets the value of the outpatientMedicationPromises property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClinicalDataPatient.OutpatientMedicationPromises }
     *     
     */
    public void setOutpatientMedicationPromises(ClinicalDataPatient.OutpatientMedicationPromises value) {
        this.outpatientMedicationPromises = value;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="outpatientMedicationPromise" type="{Pharmacy}OutpatientMedicationPromise" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "outpatientMedicationPromise"
    })
    public static class OutpatientMedicationPromises {

        protected List<OutpatientMedicationPromise> outpatientMedicationPromise;

        /**
         * Gets the value of the outpatientMedicationPromise 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 outpatientMedicationPromise property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getOutpatientMedicationPromise().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link OutpatientMedicationPromise }
         * 
         * 
         */
        public List<OutpatientMedicationPromise> getOutpatientMedicationPromise() {
            if (outpatientMedicationPromise == null) {
                outpatientMedicationPromise = new ArrayList<OutpatientMedicationPromise>();
            }
            return this.outpatientMedicationPromise;
        }

    }
    
    /**
     * Gets the value of the patientGeneratedDataEvents property.
     * 
     * @return
     *     possible object is
     *     {@link ClinicalDataPatient.PatientGeneratedDataEvents }
     *     
     */
    public ClinicalDataPatient.PatientGeneratedDataEvents getPatientGeneratedDataEvents() {
        return patientGeneratedDataEvents;
    }

    /**
     * Sets the value of the patientGeneratedDataEvents property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClinicalDataPatient.PatientGeneratedDataEvents }
     *     
     */
    public void setPatientGeneratedDataEvents(ClinicalDataPatient.PatientGeneratedDataEvents value) {
        this.patientGeneratedDataEvents = value;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="patientGeneratedDataEvent" type="{PGD}PatientGeneratedDataEvent"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "patientGeneratedDataEvent"
    })
    public static class PatientGeneratedDataEvents {

        @XmlElement(required = true)
        protected PatientGeneratedDataEvent patientGeneratedDataEvent;

        /**
         * Gets the value of the patientGeneratedDataEvent property.
         * 
         * @return
         *     possible object is
         *     {@link PatientGeneratedDataEvent }
         *     
         */
        public PatientGeneratedDataEvent getPatientGeneratedDataEvent() {
            return patientGeneratedDataEvent;
        }

        /**
         * Sets the value of the patientGeneratedDataEvent property.
         * 
         * @param value
         *     allowed object is
         *     {@link PatientGeneratedDataEvent }
         *     
         */
        public void setPatientGeneratedDataEvent(PatientGeneratedDataEvent value) {
            this.patientGeneratedDataEvent = value;
        }

    }
    
    /**
     * Gets the value of the skinTestProcedures property.
     * 
     * @return
     *     possible object is
     *     {@link ClinicalDataPatient.SkinTestProcedures }
     *     
     */
    public ClinicalDataPatient.SkinTestProcedures getSkinTestProcedures() {
        return skinTestProcedures;
    }

    /**
     * Sets the value of the skinTestProcedures property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClinicalDataPatient.SkinTestProcedures }
     *     
     */
    public void setSkinTestProcedures(ClinicalDataPatient.SkinTestProcedures value) {
        this.skinTestProcedures = value;
    }

    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="skinTestProcedure" type="{Immunizationskintest}SkinTestProcedure" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "skinTestProcedure"
    })
    public static class SkinTestProcedures {
    	protected List<SkinTestProcedure> skinTestProcedure;

        /**
         * Gets the value of the skinTestProcedure 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 skinTestProcedure property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getSkinTestProcedure().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link SkinTestProcedure }
         * 
         * 
         */
        public List<SkinTestProcedure> getSkinTestProcedure() {
            if (skinTestProcedure == null) {
                skinTestProcedure = new ArrayList<SkinTestProcedure>();
            }
            return this.skinTestProcedure;
        }

    }
    
    /**
     * Gets the value of the nonVaMedicationEvents property.
     * 
     * @return
     *     possible object is
     *     {@link ClinicalDataPatient.NonVaMedicationEvents }
     *     
     */
    public ClinicalDataPatient.NonVaMedicationEvents getNonVaMedicationEvents() {
        return nonVaMedicationEvents;
    }

    /**
     * Sets the value of the nonVaMedicationEvents property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClinicalDataPatient.NonVaMedicationEvents }
     *     
     */
    public void setNonVaMedicationEvents(ClinicalDataPatient.NonVaMedicationEvents value) {
        this.nonVaMedicationEvents = value;
    }

    
    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="nonVaMedicationEvent" type="{Pharmacy}NonVaMedicationEvent" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "nonVaMedicationEvent"
    })
    public static class NonVaMedicationEvents {

        protected List<NonVaMedicationEvent> nonVaMedicationEvent;

        /**
         * Gets the value of the nonVaMedicationEvent 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 nonVaMedicationEvent property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getNonVaMedicationEvent().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link NonVaMedicationEvent }
         * 
         * 
         */
        public List<NonVaMedicationEvent> getNonVaMedicationEvent() {
            if (nonVaMedicationEvent == null) {
                nonVaMedicationEvent = new ArrayList<NonVaMedicationEvent>();
            }
            return this.nonVaMedicationEvent;
        }

    }
    
    /**
     * Gets the value of the clinicalDocumentEvents property.
     * 
     * @return
     *     possible object is
     *     {@link ClinicalDataPatient.ClinicalDocumentEvents }
     *     
     */
    public ClinicalDataPatient.ClinicalDocumentEvents getClinicalDocumentEvents() {
        return clinicalDocumentEvents;
    }

    /**
     * Sets the value of the clinicalDocumentEvents property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClinicalDataPatient.ClinicalDocumentEvents }
     *     
     */
    public void setClinicalDocumentEvents(ClinicalDataPatient.ClinicalDocumentEvents value) {
        this.clinicalDocumentEvents = value;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="clinicalDocumentEvent" type="{Tiu}ClincalDocumentEvent" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "clinicalDocumentEvent"
    })
    public static class ClinicalDocumentEvents {

        protected List<ClincalDocumentEvent> clinicalDocumentEvent;

        /**
         * Gets the value of the clinicalDocumentEvent 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 clinicalDocumentEvent property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getClinicalDocumentEvent().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link ClincalDocumentEvent }
         * 
         * 
         */
        public List<ClincalDocumentEvent> getClinicalDocumentEvent() {
            if (clinicalDocumentEvent == null) {
                clinicalDocumentEvent = new ArrayList<ClincalDocumentEvent>();
            }
            return this.clinicalDocumentEvent;
        }

    }
    
    /**
     * Gets the value of the genericHl7DataEvents property.
     * 
     * @return
     *     possible object is
     *     {@link ClinicalDataPatient.GenericHl7DataEvents }
     *     
     */
    public ClinicalDataPatient.GenericHl7DataEvents getGenericHl7DataEvents() {
        return genericHl7DataEvents;
    }

    /**
     * Sets the value of the genericHl7DataEvents property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClinicalDataPatient.GenericHl7DataEvents }
     *     
     */
    public void setGenericHl7DataEvents(ClinicalDataPatient.GenericHl7DataEvents value) {
        this.genericHl7DataEvents = value;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="genericHl7DataEvent" type="{GenericHl7}GenericHl7DataEvent"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "genericHl7DataEvent"
    })
    public static class GenericHl7DataEvents {

        @XmlElement(required = true)
        protected GenericHl7DataEvent genericHl7DataEvent;

        /**
         * Gets the value of the genericHl7DataEvent property.
         * 
         * @return
         *     possible object is
         *     {@link GenericHl7DataEvent }
         *     
         */
        public GenericHl7DataEvent getGenericHl7DataEvent() {
            return genericHl7DataEvent;
        }

        /**
         * Sets the value of the genericHl7DataEvent property.
         * 
         * @param value
         *     allowed object is
         *     {@link GenericHl7DataEvent }
         *     
         */
        public void setGenericHl7DataEvent(GenericHl7DataEvent value) {
            this.genericHl7DataEvent = value;
        }

    }

}
