//
// 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.15 at 06:19:47 AM MDT 
//


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

import gov.va.med.cds.clinicaldata.ClinicalRecordInterface;
import gov.va.med.cds.template.generated.basedatatypes.DocumentStatusHL72CodedElementLite;
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.HL72FacilityIdentifier;
import gov.va.med.cds.template.generated.basedatatypes.PointInTime;
import gov.va.med.cds.template.generated.common.ManagedPractitionerParticipationLite;
import gov.va.med.cds.template.generated.common.PatientLite;
import gov.va.med.cds.template.generated.common.PractitionerLite;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

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 ClincalDocumentEvent complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="ClincalDocumentEvent">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;all>
 *         &lt;element name="parent" type="{Tiu}ClincalDocumentEvent" minOccurs="0"/>
 *         &lt;element name="recordIdentifier" type="{Basedatatypes}HL72EntityIdentifier" minOccurs="0"/>
 *         &lt;element name="patient" type="{Common}PatientLite" minOccurs="0"/>
 *         &lt;element name="referenceDate" type="{Basedatatypes}PointInTime" minOccurs="0"/>
 *         &lt;element name="parentIdentifier" type="{Basedatatypes}HL72EntityIdentifier" minOccurs="0"/>
 *         &lt;element name="standardizedDocumentTitle" type="{Basedatatypes}HL72CodedElementLite" minOccurs="0"/>
 *         &lt;element name="localDocumentTitle" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="documentSubject" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="statusCode" type="{Basedatatypes}DocumentStatusHL72CodedElementLite" minOccurs="0"/>
 *         &lt;element name="authorDictator" type="{Common}PractitionerLite" minOccurs="0"/>
 *         &lt;element name="chartMarkedSigned" type="{Common}PractitionerLite" minOccurs="0"/>
 *         &lt;element name="chartMarkedCosigned" type="{Common}PractitionerLite" minOccurs="0"/>
 *         &lt;element name="signer" type="{Common}ManagedPractitionerParticipationLite" minOccurs="0"/>
 *         &lt;element name="cosigner" type="{Common}ManagedPractitionerParticipationLite" minOccurs="0"/>
 *         &lt;element name="amender" type="{Common}ManagedPractitionerParticipationLite" minOccurs="0"/>
 *         &lt;element name="amendmentDate" type="{Basedatatypes}PointInTime" minOccurs="0"/>
 *         &lt;element name="dictationDate" type="{Basedatatypes}PointInTime" minOccurs="0"/>
 *         &lt;element name="patientMovementDate" type="{Basedatatypes}PointInTime" minOccurs="0"/>
 *         &lt;element name="archiveDate" type="{Basedatatypes}PointInTime" minOccurs="0"/>
 *         &lt;element name="procedureDate" type="{Basedatatypes}PointInTime" minOccurs="0"/>
 *         &lt;element name="enteredDate" type="{Basedatatypes}PointInTime" minOccurs="0"/>
 *         &lt;element name="procedureSummaryCode" type="{Basedatatypes}HL72CodedElementLite" minOccurs="0"/>
 *         &lt;element name="treatingSpecialtyCode" type="{Basedatatypes}HL72CodedElementLite" minOccurs="0"/>
 *         &lt;element name="serviceCode" type="{Basedatatypes}HL72CodedElementLite" minOccurs="0"/>
 *         &lt;element name="tiuPatientVisit" type="{Tiu}TiuPatientVisit" minOccurs="0"/>
 *         &lt;element name="urgency" type="{Basedatatypes}HL72CodedElementLite" minOccurs="0"/>
 *         &lt;element name="attendingPhysician" type="{Common}PractitionerLite" 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="recordSource" type="{Basedatatypes}HL72FacilityIdentifier" minOccurs="0"/>
 *         &lt;element name="treatmentEpisode" type="{Tiu}TreatmentEpisode" minOccurs="0"/>
 *         &lt;element name="otherCosigners" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="otherCosigner" type="{Common}ManagedPractitionerParticipationLite" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="documentUpdateEvents" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="documentUpdateEvent" type="{Tiu}DocumentUpdateEvent" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="images" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="image" type="{Tiu}Image" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="expectedSigner" type="{Common}PractitionerLite" minOccurs="0"/>
 *         &lt;element name="otherExpectedCosigners" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="otherExpectedCosigner" type="{Common}PractitionerLite" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="printName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="standardizedDocumentType" type="{Basedatatypes}HL72CodedElementLite" minOccurs="0"/>
 *         &lt;element name="expectedCosigner" type="{Common}PractitionerLite" minOccurs="0"/>
 *         &lt;element name="cosignatureNeeded" type="{Basedatatypes}HL72CodedElementLite" minOccurs="0"/>
 *       &lt;/all>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlRootElement(name="clinicalDocumentEvent")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ClincalDocumentEvent", propOrder = {

})
public class ClincalDocumentEvent implements ClinicalRecordInterface{

    protected ClincalDocumentEvent parent;
    protected HL72EntityIdentifier recordIdentifier;
    protected PatientLite patient;
    protected PointInTime referenceDate;
    protected HL72EntityIdentifier parentIdentifier;
    protected HL72CodedElementLite standardizedDocumentTitle;
    protected String localDocumentTitle;
    protected String documentSubject;
    protected ClincalDocumentEvent.DocumentTexts documentTexts;
    protected DocumentStatusHL72CodedElementLite statusCode;
    protected PractitionerLite authorDictator;
    protected PractitionerLite chartMarkedSigned;
    protected PractitionerLite chartMarkedCosigned;
    protected ManagedPractitionerParticipationLite signer;
    protected ManagedPractitionerParticipationLite cosigner;
    protected ManagedPractitionerParticipationLite amender;
    protected PointInTime amendmentDate;
    protected PointInTime dictationDate;
    protected PointInTime patientMovementDate;
    protected PointInTime archiveDate;
    protected PointInTime procedureDate;
    protected PointInTime enteredDate;
    protected HL72CodedElementLite procedureSummaryCode;
    protected HL72CodedElementLite treatingSpecialtyCode;
    protected HL72CodedElementLite serviceCode;
    protected TiuPatientVisit tiuPatientVisit;
    protected HL72CodedElementLite urgency;
    protected PractitionerLite attendingPhysician;
    protected Integer recordVersion;
    protected PointInTime recordUpdateTime;
    protected HL72FacilityIdentifier recordSource;
    protected TreatmentEpisode treatmentEpisode;
    protected ClincalDocumentEvent.OtherCosigners otherCosigners;
    protected ClincalDocumentEvent.DocumentUpdateEvents documentUpdateEvents;
    protected ClincalDocumentEvent.Images images;
    protected PractitionerLite expectedSigner;
    protected ClincalDocumentEvent.OtherExpectedCosigners otherExpectedCosigners;
    protected String printName;
    protected HL72CodedElementLite standardizedDocumentType;
    protected PractitionerLite expectedCosigner;
    protected HL72CodedElementLite cosignatureNeeded;
    protected String requestId;
    protected BigDecimal idV;

    /**
     * Gets the value of the parent property.
     * 
     * @return
     *     possible object is
     *     {@link ClincalDocumentEvent }
     *     
     */
    public ClincalDocumentEvent getParent() {
        return parent;
    }

    /**
     * Sets the value of the parent property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClincalDocumentEvent }
     *     
     */
    public void setParent(ClincalDocumentEvent value) {
        this.parent = 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 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 referenceDate property.
     * 
     * @return
     *     possible object is
     *     {@link PointInTime }
     *     
     */
    public PointInTime getReferenceDate() {
        return referenceDate;
    }

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

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

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

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


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

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

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

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

    /**
     * Sets the value of the documentSubject property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setDocumentSubject(String value) {
        this.documentSubject = value;
    }
    
    /**
     * Gets the value of the documentTexts property.
     * 
     * @return
     *     possible object is
     *     {@link ClincalDocumentEvent.DocumentTexts }
     *     
     */
    public ClincalDocumentEvent.DocumentTexts getDocumentTexts() {
        return documentTexts;
    }

    /**
     * Sets the value of the documentTexts property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClincalDocumentEvent.DocumentTexts }
     *     
     */
    public void setDocumentTexts(ClincalDocumentEvent.DocumentTexts value) {
        this.documentTexts = 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="documentText" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "documentText"
    })
    public static class DocumentTexts {

    	@XmlElement(required = false)
        protected List<String> documentText;

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

    }

    /**
     * Gets the value of the statusCode property.
     * 
     * @return
     *     possible object is
     *     {@link DocumentStatusHL72CodedElementLite }
     *     
     */
    public DocumentStatusHL72CodedElementLite getStatusCode() {
        return statusCode;
    }

    /**
     * Sets the value of the statusCode property.
     * 
     * @param value
     *     allowed object is
     *     {@link DocumentStatusHL72CodedElementLite }
     *     
     */
    public void setStatusCode(DocumentStatusHL72CodedElementLite value) {
        this.statusCode = value;
    }

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

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

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

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

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

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

    /**
     * Gets the value of the signer property.
     * 
     * @return
     *     possible object is
     *     {@link ManagedPractitionerParticipationLite }
     *     
     */
    public ManagedPractitionerParticipationLite getSigner() {
        return signer;
    }

    /**
     * Sets the value of the signer property.
     * 
     * @param value
     *     allowed object is
     *     {@link ManagedPractitionerParticipationLite }
     *     
     */
    public void setSigner(ManagedPractitionerParticipationLite value) {
        this.signer = value;
    }

    /**
     * Gets the value of the cosigner property.
     * 
     * @return
     *     possible object is
     *     {@link ManagedPractitionerParticipationLite }
     *     
     */
    public ManagedPractitionerParticipationLite getCosigner() {
        return cosigner;
    }

    /**
     * Sets the value of the cosigner property.
     * 
     * @param value
     *     allowed object is
     *     {@link ManagedPractitionerParticipationLite }
     *     
     */
    public void setCosigner(ManagedPractitionerParticipationLite value) {
        this.cosigner = value;
    }

    /**
     * Gets the value of the amender property.
     * 
     * @return
     *     possible object is
     *     {@link ManagedPractitionerParticipationLite }
     *     
     */
    public ManagedPractitionerParticipationLite getAmender() {
        return amender;
    }

    /**
     * Sets the value of the amender property.
     * 
     * @param value
     *     allowed object is
     *     {@link ManagedPractitionerParticipationLite }
     *     
     */
    public void setAmender(ManagedPractitionerParticipationLite value) {
        this.amender = value;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * Gets the value of the tiuPatientVisit property.
     * 
     * @return
     *     possible object is
     *     {@link TiuPatientVisit }
     *     
     */
    public TiuPatientVisit getTiuPatientVisit() {
        return tiuPatientVisit;
    }

    /**
     * Sets the value of the tiuPatientVisit property.
     * 
     * @param value
     *     allowed object is
     *     {@link TiuPatientVisit }
     *     
     */
    public void setTiuPatientVisit(TiuPatientVisit value) {
        this.tiuPatientVisit = value;
    }

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

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

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

    /**
     * Sets the value of the attendingPhysician property.
     * 
     * @param value
     *     allowed object is
     *     {@link PractitionerLite }
     *     
     */
    public void setAttendingPhysician(PractitionerLite value) {
        this.attendingPhysician = 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 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 treatmentEpisode property.
     * 
     * @return
     *     possible object is
     *     {@link TreatmentEpisode }
     *     
     */
    public TreatmentEpisode getTreatmentEpisode() {
        return treatmentEpisode;
    }

    /**
     * Sets the value of the treatmentEpisode property.
     * 
     * @param value
     *     allowed object is
     *     {@link TreatmentEpisode }
     *     
     */
    public void setTreatmentEpisode(TreatmentEpisode value) {
        this.treatmentEpisode = value;
    }

    /**
     * Gets the value of the otherCosigners property.
     * 
     * @return
     *     possible object is
     *     {@link ClincalDocumentEvent.OtherCosigners }
     *     
     */
    public ClincalDocumentEvent.OtherCosigners getOtherCosigners() {
        return otherCosigners;
    }

    /**
     * Sets the value of the otherCosigners property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClincalDocumentEvent.OtherCosigners }
     *     
     */
    public void setOtherCosigners(ClincalDocumentEvent.OtherCosigners value) {
        this.otherCosigners = value;
    }

    /**
     * Gets the value of the documentUpdateEvents property.
     * 
     * @return
     *     possible object is
     *     {@link ClincalDocumentEvent.DocumentUpdateEvents }
     *     
     */
    public ClincalDocumentEvent.DocumentUpdateEvents getDocumentUpdateEvents() {
        return documentUpdateEvents;
    }

    /**
     * Sets the value of the documentUpdateEvents property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClincalDocumentEvent.DocumentUpdateEvents }
     *     
     */
    public void setDocumentUpdateEvents(ClincalDocumentEvent.DocumentUpdateEvents value) {
        this.documentUpdateEvents = value;
    }

    /**
     * Gets the value of the images property.
     * 
     * @return
     *     possible object is
     *     {@link ClincalDocumentEvent.Images }
     *     
     */
    public ClincalDocumentEvent.Images getImages() {
        return images;
    }

    /**
     * Sets the value of the images property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClincalDocumentEvent.Images }
     *     
     */
    public void setImages(ClincalDocumentEvent.Images value) {
        this.images = value;
    }

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

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

    /**
     * Gets the value of the otherExpectedCosigners property.
     * 
     * @return
     *     possible object is
     *     {@link ClincalDocumentEvent.OtherExpectedCosigners }
     *     
     */
    public ClincalDocumentEvent.OtherExpectedCosigners getOtherExpectedCosigners() {
        return otherExpectedCosigners;
    }

    /**
     * Sets the value of the otherExpectedCosigners property.
     * 
     * @param value
     *     allowed object is
     *     {@link ClincalDocumentEvent.OtherExpectedCosigners }
     *     
     */
    public void setOtherExpectedCosigners(ClincalDocumentEvent.OtherExpectedCosigners value) {
        this.otherExpectedCosigners = value;
    }

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

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

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

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

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

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

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

    /**
     * Sets the value of the cosignatureNeeded property.
     * 
     * @param value
     *     allowed object is
     *     {@link HL72CodedElementLite }
     *     
     */
    public void setCosignatureNeeded(HL72CodedElementLite value) {
        this.cosignatureNeeded = 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="documentUpdateEvent" type="{Tiu}DocumentUpdateEvent" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlRootElement(name="documentUpdateEvents")
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "documentUpdateEvent",
        "idV",
        "tiuDocumentName"
    })
    public static class DocumentUpdateEvents {
    	
    	@XmlElement(required = false)
        protected List<DocumentUpdateEvent> documentUpdateEvent;
        @XmlTransient
        protected DocumentUpdateEvent singleDocumentUpdateEvent;
        protected BigDecimal idV;
        protected BigDecimal tiuDocumentName;

        /**
         * Gets the value of the documentUpdateEvent 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 documentUpdateEvent property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getDocumentUpdateEvent().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link DocumentUpdateEvent }
         * 
         * 
         */
        public List<DocumentUpdateEvent> getDocumentUpdateEvent() {
            if (documentUpdateEvent == null) {
                documentUpdateEvent = new ArrayList<DocumentUpdateEvent>();
            }
            return this.documentUpdateEvent;
        }
        
        public void setDocumentUpdateEvent(List<DocumentUpdateEvent> documentUpdateEvent) {
           this.documentUpdateEvent = documentUpdateEvent;
        }
        
        public DocumentUpdateEvent getSingleDocumentUpdateEvent() {
            return this.singleDocumentUpdateEvent;
        }
        
        public void setSingleDocumentUpdateEvent(DocumentUpdateEvent singleDocumentUpdateEvent) {
            this.getDocumentUpdateEvent().add(singleDocumentUpdateEvent);
        	this.singleDocumentUpdateEvent = singleDocumentUpdateEvent;
        }
        
        public BigDecimal getIdV() {
    		return idV;
    	}

    	public void setIdV(BigDecimal id) {
    		this.idV = id;
    	}
    	
    	public BigDecimal getTiuDocumentName() {
    		return tiuDocumentName;
    	}

    	public void setTiuDocumentName(BigDecimal tiuDocumentName) {
    		this.tiuDocumentName = tiuDocumentName;
    	}

    }


    /**
     * <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="image" type="{Tiu}Image" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlRootElement(name="images")
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "image",
        "idV",
        "tiuDocumentNumber"
    })
    public static class Images {

    	@XmlElement(required = false)
        protected List<Image> image;
        @XmlTransient
        protected Image singleImage;
        protected BigDecimal idV;
        protected BigDecimal tiuDocumentNumber;

        /**
         * Gets the value of the image 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 image property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getImage().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link Image }
         * 
         * 
         */
        public List<Image> getImage() {
            if (image == null) {
                image = new ArrayList<Image>();
            }
            return this.image;
        }
        public void setImage(List<Image> image) {
            this.image = image;
        }
        
        public Image getSingleImage() {
            return this.singleImage;
        }
        public void setSingleImage(Image singleImage) {
            this.getImage().add(singleImage);
            this.singleImage = singleImage;
        }
        
        public BigDecimal getIdV() {
    		return idV;
    	}

    	public void setIdV(BigDecimal id) {
    		this.idV = id;
    	}
    	
    	public BigDecimal getTiuDocumentNumber() {
    		return tiuDocumentNumber;
    	}

    	public void setTiuDocumentNumber(BigDecimal tiuDocumentNumber) {
    		this.tiuDocumentNumber = tiuDocumentNumber;
    	}
    	
    	

    }


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

    	@XmlElement(required = false)
        protected List<ManagedPractitionerParticipationLite> otherCosigner;
        @XmlTransient
        protected Set<ManagedPractitionerParticipationLite> otherCosignerSet;
        @XmlTransient
        protected ManagedPractitionerParticipationLite singleOtherCosigner;
        protected BigDecimal idV;
        protected BigDecimal tiuDocumentNumber;

        /**
         * Gets the value of the otherCosigner 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 otherCosigner property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getOtherCosigner().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link ManagedPractitionerParticipationLite }
         * 
         * 
         */
        public List<ManagedPractitionerParticipationLite> getOtherCosigner() {
            if (otherCosigner == null) {
                otherCosigner = new ArrayList<ManagedPractitionerParticipationLite>();
            }
            return this.otherCosigner;
        }
        
        public void setOtherCosigner(List<ManagedPractitionerParticipationLite> otherCosigner) {
            this.otherCosigner = otherCosigner;
        }
        
        public Set<ManagedPractitionerParticipationLite> getOtherCosignerSet() {
            if(this.otherCosignerSet == null){
            	otherCosignerSet = new HashSet<ManagedPractitionerParticipationLite>();
            }
        	return this.otherCosignerSet;
        }
        
        public void setOtherCosignerSet(Set<ManagedPractitionerParticipationLite> otherCosigner) {
            
        	this.otherCosigner = new ArrayList<ManagedPractitionerParticipationLite>(otherCosigner);
        }
        
        public ManagedPractitionerParticipationLite getSingleOtherCosigner() {
            return this.singleOtherCosigner;
        }
        
        public void setSingleOtherCosigner(ManagedPractitionerParticipationLite singleOtherCosigner) {
            this.getOtherCosigner().add(singleOtherCosigner);
        	this.singleOtherCosigner = singleOtherCosigner;
        }
        
        public BigDecimal getIdV() {
    		return idV;
    	}

    	public void setIdV(BigDecimal id) {
    		this.idV = id;
    	}
    	
    	public BigDecimal getTiuDocumentNumber() {
    		return tiuDocumentNumber;
    	}

    	public void setTiuDocumentNumber(BigDecimal tiuDocumentNumber) {
    		this.tiuDocumentNumber = tiuDocumentNumber;
    	}

    }


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

    	@XmlElement(required = false)
        protected List<PractitionerLite> otherExpectedCosigner;
        @XmlTransient
    	protected PractitionerLite singleOtherExpectedCosigner;
        protected BigDecimal tiuDocumentNumber;
        protected BigDecimal idV;

        /**
         * Gets the value of the otherExpectedCosigner 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 otherExpectedCosigner property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getOtherExpectedCosigner().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link PractitionerLite }
         * 
         * 
         */
        public List<PractitionerLite> getOtherExpectedCosigner() {
            if (otherExpectedCosigner == null) {
                otherExpectedCosigner = new ArrayList<PractitionerLite>();
            }
            return this.otherExpectedCosigner;
        }
        
        public void setOtherExpectedCosigner(List<PractitionerLite> otherExpectedCosigner) {
           this.otherExpectedCosigner = otherExpectedCosigner;
        }
        
        public PractitionerLite getSingleOtherExpectedCosigner() {
            return this.singleOtherExpectedCosigner;
        }
        
        public void setSingleOtherExpectedCosigner(PractitionerLite singleOtherExpectedCosigner) {
        	this.getOtherExpectedCosigner().add(singleOtherExpectedCosigner);
           this.singleOtherExpectedCosigner = singleOtherExpectedCosigner;
        }
        
        public BigDecimal getIdV() {
    		return idV;
    	}

    	public void setIdV(BigDecimal id) {
    		this.idV = id;
    	}
    	
    	public BigDecimal getTiuDocumentNumber() {
    		return tiuDocumentNumber;
    	}

    	public void setTiuDocumentNumber(BigDecimal tiuDocumentNumber) {
    		this.tiuDocumentNumber = tiuDocumentNumber;
    	}
    	
    	
    }
    
    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;
	}

}
