//
// 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.06.04 at 03:44:32 PM MDT 
//


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

import gov.va.med.cds.clinicaldata.ClinicalRecordInterface;
import gov.va.med.cds.template.generated.basedatatypes.HL72EntityIdentifier;
import gov.va.med.cds.template.generated.basedatatypes.HL72FacilityIdentifier;
import gov.va.med.cds.template.generated.basedatatypes.Id;
import gov.va.med.cds.template.generated.basedatatypes.PointInTime;
import gov.va.med.cds.template.generated.basedatatypes.TimeInterval;
import gov.va.med.cds.template.generated.basedatatypes.VACode;
import gov.va.med.cds.template.generated.common.HospitalLocation;
import gov.va.med.cds.template.generated.common.PatientLite;
import gov.va.med.cds.template.generated.common.PractitionerParticipationLite;
import gov.va.med.cds.template.generated.common.ServiceDepartment;
import gov.va.med.cds.template.generated.common.TreatmentFactor;
import gov.va.med.cds.template.generated.common.VisitLocation;

import java.math.BigDecimal;
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.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for HealthConcern complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="HealthConcern">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;all>
 *         &lt;element name="patient" type="{Common}PatientLite" minOccurs="0"/>
 *         &lt;element name="chronicityCode" type="{Basedatatypes}VACode" minOccurs="0"/>
 *         &lt;element name="dateLastModified" type="{Basedatatypes}PointInTime" minOccurs="0"/>
 *         &lt;element name="entryId" type="{Basedatatypes}Id" minOccurs="0"/>
 *         &lt;element name="healthConcernStatus" type="{Basedatatypes}VACode" minOccurs="0"/>
 *         &lt;element name="id" type="{Basedatatypes}Id" minOccurs="0"/>
 *         &lt;element name="concernDurations" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="concernDuration" type="{Basedatatypes}TimeInterval" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="recordDisposition" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="dataEnterer" type="{Common}PractitionerParticipationLite" minOccurs="0"/>
 *         &lt;element name="author" type="{Common}PractitionerParticipationLite" minOccurs="0"/>
 *         &lt;element name="clinic" type="{Common}HospitalLocation" minOccurs="0"/>
 *         &lt;element name="service" type="{Common}ServiceDepartment" minOccurs="0"/>
 *         &lt;element name="facility" type="{Common}VisitLocation" minOccurs="0"/>
 *         &lt;element name="recordSource" type="{Basedatatypes}HL72FacilityIdentifier" minOccurs="0"/>
 *         &lt;element name="recordVersion" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="recordUpdateTime" type="{Basedatatypes}PointInTime" minOccurs="0"/>
 *         &lt;element name="recordIdentifier" type="{Basedatatypes}HL72EntityIdentifier" minOccurs="0"/>
 *         &lt;element name="responsibleProviders" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="responsibleProvider" type="{Common}PractitionerParticipationLite" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="healthConcernNotesEvent" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="healthConcernNoteEvent" type="{Problemlist}HealthConcernNoteEvent" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="diagnosesList" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="diagnosisList" type="{Problemlist}DiagnosisList" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="specialInterestsFlag" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="specialInterestFlag" type="{Common}TreatmentFactor" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="expression" type="{Problemlist}Expression" minOccurs="0"/>
 *         &lt;element name="providerNarrative" type="{Problemlist}ProviderNarrative" minOccurs="0"/>
 *       &lt;/all>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlRootElement(name="healthConcern")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "HealthConcern", propOrder = {

})
public class HealthConcern implements ClinicalRecordInterface{

    protected PatientLite patient;
    protected VACode chronicityCode;
    protected PointInTime dateLastModified;
    protected Id entryId;
    protected VACode healthConcernStatus;
    protected Id id;
    protected HealthConcern.ConcernDurations concernDurations;
    protected String recordDisposition;
    protected PractitionerParticipationLite dataEnterer;
    protected PractitionerParticipationLite author;
    protected HospitalLocation clinic;
    protected ServiceDepartment service;
    protected VisitLocation facility;
    protected HL72FacilityIdentifier recordSource;
    protected Integer recordVersion;
    protected PointInTime recordUpdateTime;
    protected HL72EntityIdentifier recordIdentifier;
    protected HealthConcern.ResponsibleProviders responsibleProviders;
    protected HealthConcern.HealthConcernNotesEvent healthConcernNotesEvent;
    protected HealthConcern.DiagnosesList diagnosesList;
    protected HealthConcern.SpecialInterestsFlag specialInterestsFlag;
    protected Expression expression;
    protected ProviderNarrative providerNarrative;
    protected String requestId;
    protected String statusRef;
    protected BigDecimal idV;

    /**
     * Gets the value of the patient property.
     * 
     * @return
     *     possible object is
     *     {@link PatientLite }
     *     
     */
    public PatientLite getPatient() {
        return patient;
    }

    /**
     * Sets the value of the patient property.
     * 
     * @param value
     *     allowed object is
     *     {@link PatientLite }
     *     
     */
    public void setPatient(PatientLite value) {
        this.patient = value;
    }

    /**
     * Gets the value of the chronicityCode property.
     * 
     * @return
     *     possible object is
     *     {@link VACode }
     *     
     */
    public VACode getChronicityCode() {
        return chronicityCode;
    }

    /**
     * Sets the value of the chronicityCode property.
     * 
     * @param value
     *     allowed object is
     *     {@link VACode }
     *     
     */
    public void setChronicityCode(VACode value) {
        this.chronicityCode = value;
    }

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

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

    /**
     * Gets the value of the entryId property.
     * 
     * @return
     *     possible object is
     *     {@link Id }
     *     
     */
    public Id getEntryId() {
        return entryId;
    }

    /**
     * Sets the value of the entryId property.
     * 
     * @param value
     *     allowed object is
     *     {@link Id }
     *     
     */
    public void setEntryId(Id value) {
        this.entryId = value;
    }

    /**
     * Gets the value of the healthConcernStatus property.
     * 
     * @return
     *     possible object is
     *     {@link VACode }
     *     
     */
    public VACode getHealthConcernStatus() {
        return healthConcernStatus;
    }

    /**
     * Sets the value of the healthConcernStatus property.
     * 
     * @param value
     *     allowed object is
     *     {@link VACode }
     *     
     */
    public void setHealthConcernStatus(VACode value) {
        this.healthConcernStatus = value;
    }

    /**
     * Gets the value of the id property.
     * 
     * @return
     *     possible object is
     *     {@link Id }
     *     
     */
    public Id getId() {
        return id;
    }

    /**
     * Sets the value of the id property.
     * 
     * @param value
     *     allowed object is
     *     {@link Id }
     *     
     */
    public void setId(Id value) {
        this.id = value;
    }

    /**
     * Gets the value of the concernDurations property.
     * 
     * @return
     *     possible object is
     *     {@link HealthConcern.ConcernDurations }
     *     
     */
    public HealthConcern.ConcernDurations getConcernDurations() {
        return concernDurations;
    }

    /**
     * Sets the value of the concernDurations property.
     * 
     * @param value
     *     allowed object is
     *     {@link HealthConcern.ConcernDurations }
     *     
     */
    public void setConcernDurations(HealthConcern.ConcernDurations value) {
        this.concernDurations = value;
    }

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

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

    /**
     * Gets the value of the dataEnterer property.
     * 
     * @return
     *     possible object is
     *     {@link PractitionerParticipationLite }
     *     
     */
    public PractitionerParticipationLite getDataEnterer() {
        return dataEnterer;
    }

    /**
     * Sets the value of the dataEnterer property.
     * 
     * @param value
     *     allowed object is
     *     {@link PractitionerParticipationLite }
     *     
     */
    public void setDataEnterer(PractitionerParticipationLite value) {
        this.dataEnterer = value;
    }

    /**
     * Gets the value of the author property.
     * 
     * @return
     *     possible object is
     *     {@link PractitionerParticipationLite }
     *     
     */
    public PractitionerParticipationLite getAuthor() {
        return author;
    }

    /**
     * Sets the value of the author property.
     * 
     * @param value
     *     allowed object is
     *     {@link PractitionerParticipationLite }
     *     
     */
    public void setAuthor(PractitionerParticipationLite value) {
        this.author = value;
    }

    /**
     * Gets the value of the clinic property.
     * 
     * @return
     *     possible object is
     *     {@link HospitalLocation }
     *     
     */
    public HospitalLocation getClinic() {
        return clinic;
    }

    /**
     * Sets the value of the clinic property.
     * 
     * @param value
     *     allowed object is
     *     {@link HospitalLocation }
     *     
     */
    public void setClinic(HospitalLocation value) {
        this.clinic = value;
    }

    /**
     * Gets the value of the service property.
     * 
     * @return
     *     possible object is
     *     {@link ServiceDepartment }
     *     
     */
    public ServiceDepartment getService() {
        return service;
    }

    /**
     * Sets the value of the service property.
     * 
     * @param value
     *     allowed object is
     *     {@link ServiceDepartment }
     *     
     */
    public void setService(ServiceDepartment value) {
        this.service = value;
    }

    /**
     * Gets the value of the facility property.
     * 
     * @return
     *     possible object is
     *     {@link VisitLocation }
     *     
     */
    public VisitLocation getFacility() {
        return facility;
    }

    /**
     * Sets the value of the facility property.
     * 
     * @param value
     *     allowed object is
     *     {@link VisitLocation }
     *     
     */
    public void setFacility(VisitLocation value) {
        this.facility = value;
    }

    /**
     * Gets the value of the recordSource property.
     * 
     * @return
     *     possible object is
     *     {@link HL72FacilityIdentifier }
     *     
     */
    public HL72FacilityIdentifier getRecordSource() {
        return recordSource;
    }

    /**
     * Sets the value of the recordSource property.
     * 
     * @param value
     *     allowed object is
     *     {@link HL72FacilityIdentifier }
     *     
     */
    public void setRecordSource(HL72FacilityIdentifier value) {
        this.recordSource = value;
    }

    /**
     * Gets the value of the recordVersion property.
     * 
     * @return
     *     possible object is
     *     {@link Integer }
     *     
     */
    public Integer getRecordVersion() {
        return recordVersion;
    }

    /**
     * Sets the value of the recordVersion property.
     * 
     * @param value
     *     allowed object is
     *     {@link Integer }
     *     
     */
    public void setRecordVersion(Integer value) {
        this.recordVersion = value;
    }

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

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

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

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

    /**
     * Gets the value of the responsibleProviders property.
     * 
     * @return
     *     possible object is
     *     {@link HealthConcern.ResponsibleProviders }
     *     
     */
    public HealthConcern.ResponsibleProviders getResponsibleProviders() {
        return responsibleProviders;
    }

    /**
     * Sets the value of the responsibleProviders property.
     * 
     * @param value
     *     allowed object is
     *     {@link HealthConcern.ResponsibleProviders }
     *     
     */
    public void setResponsibleProviders(HealthConcern.ResponsibleProviders value) {
        this.responsibleProviders = value;
    }

    /**
     * Gets the value of the healthConcernNotesEvent property.
     * 
     * @return
     *     possible object is
     *     {@link HealthConcern.HealthConcernNotesEvent }
     *     
     */
    public HealthConcern.HealthConcernNotesEvent getHealthConcernNotesEvent() {
        return healthConcernNotesEvent;
    }

    /**
     * Sets the value of the healthConcernNotesEvent property.
     * 
     * @param value
     *     allowed object is
     *     {@link HealthConcern.HealthConcernNotesEvent }
     *     
     */
    public void setHealthConcernNotesEvent(HealthConcern.HealthConcernNotesEvent value) {
        this.healthConcernNotesEvent = value;
    }

    /**
     * Gets the value of the diagnosesList property.
     * 
     * @return
     *     possible object is
     *     {@link HealthConcern.DiagnosesList }
     *     
     */
    public HealthConcern.DiagnosesList getDiagnosesList() {
        return diagnosesList;
    }

    /**
     * Sets the value of the diagnosesList property.
     * 
     * @param value
     *     allowed object is
     *     {@link HealthConcern.DiagnosesList }
     *     
     */
    public void setDiagnosesList(HealthConcern.DiagnosesList value) {
        this.diagnosesList = value;
    }

    /**
     * Gets the value of the specialInterestsFlag property.
     * 
     * @return
     *     possible object is
     *     {@link HealthConcern.SpecialInterestsFlag }
     *     
     */
    public HealthConcern.SpecialInterestsFlag getSpecialInterestsFlag() {
        return specialInterestsFlag;
    }

    /**
     * Sets the value of the specialInterestsFlag property.
     * 
     * @param value
     *     allowed object is
     *     {@link HealthConcern.SpecialInterestsFlag }
     *     
     */
    public void setSpecialInterestsFlag(HealthConcern.SpecialInterestsFlag value) {
        this.specialInterestsFlag = value;
    }

    /**
     * Gets the value of the expression property.
     * 
     * @return
     *     possible object is
     *     {@link Expression }
     *     
     */
    public Expression getExpression() {
        return expression;
    }

    /**
     * Sets the value of the expression property.
     * 
     * @param value
     *     allowed object is
     *     {@link Expression }
     *     
     */
    public void setExpression(Expression value) {
        this.expression = value;
    }

    /**
     * Gets the value of the providerNarrative property.
     * 
     * @return
     *     possible object is
     *     {@link ProviderNarrative }
     *     
     */
    public ProviderNarrative getProviderNarrative() {
        return providerNarrative;
    }

    /**
     * Sets the value of the providerNarrative property.
     * 
     * @param value
     *     allowed object is
     *     {@link ProviderNarrative }
     *     
     */
    public void setProviderNarrative(ProviderNarrative value) {
        this.providerNarrative = 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="concernDuration" type="{Basedatatypes}TimeInterval" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "concernDuration"
    })
    public static class ConcernDurations {

        protected List<TimeInterval> concernDuration;
        @XmlTransient
        protected TimeInterval singleConcernDuration;

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

    }


    /**
     * <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="diagnosisList" type="{Problemlist}DiagnosisList" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "diagnosisList"
    })
    public static class DiagnosesList {

        protected List<DiagnosisList> diagnosisList;
        @XmlTransient
        protected DiagnosisList singleDiagnosisList;

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

    }


    /**
     * <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="healthConcernNoteEvent" type="{Problemlist}HealthConcernNoteEvent" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlRootElement(name="healthConcernNotesEvent")
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "healthConcernNoteEvent",
        "idV",
        "problem"
    })
    public static class HealthConcernNotesEvent {

    	@XmlElement(required = false)
    	protected List<HealthConcernNoteEvent> healthConcernNoteEvent;
        @XmlTransient
        protected HealthConcernNoteEvent singleHealthConcernNoteEvent;
        protected String idV;
        protected BigDecimal problem;

        /**
         * Gets the value of the healthConcernNoteEvent 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 healthConcernNoteEvent property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getHealthConcernNoteEvent().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link HealthConcernNoteEvent }
         * 
         * 
         */
        public List<HealthConcernNoteEvent> getHealthConcernNoteEvent() {
            if (healthConcernNoteEvent == null) {
                healthConcernNoteEvent = new ArrayList<HealthConcernNoteEvent>();
            }
            return this.healthConcernNoteEvent;
        }
        public  void setHealthConcernNoteEvent(List<HealthConcernNoteEvent> healthConcernNoteEvent) {
            this.healthConcernNoteEvent = healthConcernNoteEvent;
        }
        public HealthConcernNoteEvent getSingleHealthConcernNoteEvent() {
            return this.singleHealthConcernNoteEvent;
        }
        public  void setHealthConcernNoteEvent(HealthConcernNoteEvent singleHealthConcernNoteEvent) {
        	this.getHealthConcernNoteEvent().add(singleHealthConcernNoteEvent);
            this.singleHealthConcernNoteEvent = singleHealthConcernNoteEvent;
        }
        
        public String getIdV(){
        	return this.idV;
        }
        public void setIdV(String idV){
        	this.idV = idV;
        }
        public BigDecimal getProblem(){
        	return this.problem;
        }
        public void setProblem(BigDecimal problem){
        	this.problem = problem;
        }

    }


    /**
     * <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="responsibleProvider" type="{Common}PractitionerParticipationLite" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "responsibleProvider"
    })
    public static class ResponsibleProviders {

        protected List<PractitionerParticipationLite> responsibleProvider;
        @XmlTransient
        protected PractitionerParticipationLite singleResponsibleProvider;

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

    }


    /**
     * <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="specialInterestFlag" type="{Common}TreatmentFactor" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "specialInterestFlag"
    })
    public static class SpecialInterestsFlag {

        protected List<TreatmentFactor> specialInterestFlag;
        //individual specialInterestFlags
        @XmlTransient
        protected TreatmentFactor serviceConnectedSpecialInterestFlag;
        @XmlTransient
        protected TreatmentFactor agentOrangeExposureSpecialInterestFlag;
        @XmlTransient
        protected TreatmentFactor ionizingRadiationExposureSpecialInterestFlag;
        @XmlTransient
        protected TreatmentFactor persianGulfExposureSpecialInterestFlag;
        @XmlTransient
        protected TreatmentFactor headAndOrNeckCancerSpecialInterestFlag;
        @XmlTransient
        protected TreatmentFactor militarySexualTramaSpecialInterestFlag;
        @XmlTransient
        protected TreatmentFactor combatVeteranSpecialInterestFlag;
        @XmlTransient
        protected TreatmentFactor shipboardHazardDefenseSpecialInterestFlag;
        
        /**
         * Gets the value of the specialInterestFlag 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 specialInterestFlag property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getSpecialInterestFlag().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link TreatmentFactor }
         * 
         * 
         */
        public List<TreatmentFactor> getSpecialInterestFlag() {
            if (specialInterestFlag == null) {
                specialInterestFlag = new ArrayList<TreatmentFactor>();
            }
            return this.specialInterestFlag;
        }
        public  void setSpecialInterestFlag (List<TreatmentFactor> specialInterestFlag) {
            this.specialInterestFlag = specialInterestFlag;
        }

        public TreatmentFactor getServiceConnectedSpecialInterestFlag() {
			return serviceConnectedSpecialInterestFlag;
		}
		public void setServiceConnectedSpecialInterestFlag(
				TreatmentFactor serviceConnectedSpecialInterestFlag) {
			this.getSpecialInterestFlag().add(serviceConnectedSpecialInterestFlag);
			this.serviceConnectedSpecialInterestFlag = serviceConnectedSpecialInterestFlag;
		}
		public TreatmentFactor getAgentOrangeExposureSpecialInterestFlag() {
			return agentOrangeExposureSpecialInterestFlag;
		}
		public void setAgentOrangeExposureSpecialInterestFlag(
				TreatmentFactor agentOrangeExposureSpecialInterestFlag) {
			this.getSpecialInterestFlag().add(agentOrangeExposureSpecialInterestFlag);
			this.agentOrangeExposureSpecialInterestFlag = agentOrangeExposureSpecialInterestFlag;
		}
		public TreatmentFactor getIonizingRadiationExposureSpecialInterestFlag() {
			return ionizingRadiationExposureSpecialInterestFlag;
		}
		public void setIonizingRadiationExposureSpecialInterestFlag(
				TreatmentFactor ionizingRadiationExposureSpecialInterestFlag) {
			this.getSpecialInterestFlag().add(ionizingRadiationExposureSpecialInterestFlag);
			this.ionizingRadiationExposureSpecialInterestFlag = ionizingRadiationExposureSpecialInterestFlag;
		}
		public TreatmentFactor getPersianGulfExposureSpecialInterestFlag() {
			return persianGulfExposureSpecialInterestFlag;
		}
		public void setPersianGulfExposureSpecialInterestFlag(
				TreatmentFactor persianGulfExposureSpecialInterestFlag) {
			this.getSpecialInterestFlag().add(persianGulfExposureSpecialInterestFlag);
			this.persianGulfExposureSpecialInterestFlag = persianGulfExposureSpecialInterestFlag;
		}
		public TreatmentFactor getHeadAndOrNeckCancerSpecialInterestFlag() {
			return headAndOrNeckCancerSpecialInterestFlag;
		}
		public void setHeadAndOrNeckCancerSpecialInterestFlag(
				TreatmentFactor headAndOrNeckCancerSpecialInterestFlag) {
			this.getSpecialInterestFlag().add(headAndOrNeckCancerSpecialInterestFlag);
			this.headAndOrNeckCancerSpecialInterestFlag = headAndOrNeckCancerSpecialInterestFlag;
		}
		public TreatmentFactor getMilitarySexualTramaSpecialInterestFlag() {
			return militarySexualTramaSpecialInterestFlag;
		}
		public void setMilitarySexualTramaSpecialInterestFlag(
				TreatmentFactor militarySexualTramaSpecialInterestFlag) {
			this.getSpecialInterestFlag().add(militarySexualTramaSpecialInterestFlag);
			this.militarySexualTramaSpecialInterestFlag = militarySexualTramaSpecialInterestFlag;
		}
		public TreatmentFactor getCombatVeteranSpecialInterestFlag() {
			return combatVeteranSpecialInterestFlag;
		}
		public void setCombatVeteranSpecialInterestFlag(
				TreatmentFactor combatVeteranSpecialInterestFlag) {
			this.getSpecialInterestFlag().add(combatVeteranSpecialInterestFlag);
			this.combatVeteranSpecialInterestFlag = combatVeteranSpecialInterestFlag;
		}
		public TreatmentFactor getShipboardHazardDefenseSpecialInterestFlag() {
			return shipboardHazardDefenseSpecialInterestFlag;
		}
		public void setShipboardHazardDefenseSpecialInterestFlag(
				TreatmentFactor shipboardHazardDefenseSpecialInterestFlag) {
			this.getSpecialInterestFlag().add(shipboardHazardDefenseSpecialInterestFlag);
			this.shipboardHazardDefenseSpecialInterestFlag = shipboardHazardDefenseSpecialInterestFlag;
		}
		
    }
    
    public BigDecimal getIdV() {
		return idV;
	}

	public void setIdV(BigDecimal id) {
		this.idV = id;
	}
	
	public void setRequestId(String requestId) {
		this.requestId = requestId;
			
	}
		
	public String getRequestId() {
		return this.requestId;
	}
	
	public void setStatusRef(String statusRef) {
		this.statusRef = statusRef;
			
	}
		
	public String getStatusRef() {
		return this.statusRef;
	}

}
