/*******************************************************************************
* Open Behavioral Health Information Technology Architecture (OBHITA.org)
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the <organization> nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
package gov.samhsa.consent2share.c32.dto;
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;
// TODO: Auto-generated Javadoc
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="indicateMedicationStopped" type="{urn:hl7-org:v3}ts" minOccurs="0"/>
* <element name="medicationDateRange" type="{urn:hl7-org:v3}ivlTs" minOccurs="0"/>
* <element name="admissionTiming" type="{urn:hl7-org:v3}pivlTs" maxOccurs="unbounded" minOccurs="0"/>
* <element name="route" type="{urn:hl7-org:v3}cd" minOccurs="0"/>
* <element name="dose" type="{urn:hl7-org:v3}pq" minOccurs="0"/>
* <element name="site" type="{urn:hl7-org:v3}cd" maxOccurs="unbounded" minOccurs="0"/>
* <element name="doseRestriction" minOccurs="0">
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="numerator" type="{urn:hl7-org:v3}pq"/>
* <element name="denominator" type="{urn:hl7-org:v3}pq"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </element>
* <element name="productForm" type="{urn:hl7-org:v3}cd" minOccurs="0"/>
* <element name="deliveryMethod" type="{urn:hl7-org:v3}cd" maxOccurs="unbounded" minOccurs="0"/>
* <element name="medicationInformation" type="{urn:hl7-org:v3}medicationInformation" maxOccurs="unbounded"/>
* <element name="typeOfMedication" minOccurs="0">
* <complexType>
* <complexContent>
* <extension base="{urn:hl7-org:v3}cd">
* </extension>
* </complexContent>
* </complexType>
* </element>
* <element name="statusOfMedication" minOccurs="0">
* <complexType>
* <complexContent>
* <extension base="{urn:hl7-org:v3}cd">
* <attribute name="valueType" type="{urn:hl7-org:v3}valueType" />
* <attribute name="status" type="{urn:hl7-org:v3}statusType" />
* </extension>
* </complexContent>
* </complexType>
* </element>
* <element name="indication" maxOccurs="unbounded" minOccurs="0">
* <complexType>
* <complexContent>
* <extension base="{urn:hl7-org:v3}cd">
* <attribute name="status" type="{urn:hl7-org:v3}statusType" />
* <attribute name="freeTextRef" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />
* </extension>
* </complexContent>
* </complexType>
* </element>
* <element name="frequency" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>
* <element name="patientInstructions" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>
* <element name="reaction" type="{urn:hl7-org:v3}cd" minOccurs="0"/>
* <element name="vehicle" maxOccurs="unbounded" minOccurs="0">
* <complexType>
* <complexContent>
* <extension base="{urn:hl7-org:v3}cd">
* <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />
* </extension>
* </complexContent>
* </complexType>
* </element>
* <element name="doseIndicator" type="{http://www.w3.org/2001/XMLSchema}anyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="orderInformation" maxOccurs="unbounded" minOccurs="0">
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="orderNumber" type="{urn:hl7-org:v3}ii" minOccurs="0"/>
* <element name="fills" minOccurs="0">
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <attribute name="value" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />
* </restriction>
* </complexContent>
* </complexType>
* </element>
* <element name="quantityOrdered" type="{urn:hl7-org:v3}pq" minOccurs="0"/>
* <element name="orderExpirationDateTime" type="{urn:hl7-org:v3}ts" minOccurs="0"/>
* <element name="orderDateTime" type="{urn:hl7-org:v3}ivlTs" minOccurs="0"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </element>
* <element name="fulfillmentInstructions" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>
* <element name="fulfillmentHistory" maxOccurs="unbounded" minOccurs="0">
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="prescriptionNumber" type="{urn:hl7-org:v3}ii" minOccurs="0"/>
* <element ref="{urn:hl7-org:v3}provider" minOccurs="0"/>
* <element name="dispensingPharmacyLocation" type="{urn:hl7-org:v3}addr" minOccurs="0"/>
* <element name="dispenseDate" type="{urn:hl7-org:v3}ivlTs" minOccurs="0"/>
* <element name="quantityDispensed" type="{urn:hl7-org:v3}pq" minOccurs="0"/>
* <element name="fillNumber" minOccurs="0">
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <attribute name="value" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />
* <attribute name="nullFlavor" type="{urn:hl7-org:v3}nullFlavorType" />
* </restriction>
* </complexContent>
* </complexType>
* </element>
* <element name="fillStatus" minOccurs="0">
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <attribute name="value" type="{urn:hl7-org:v3}statusType" />
* </restriction>
* </complexContent>
* </complexType>
* </element>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </element>
* <element ref="{urn:hl7-org:v3}comment" maxOccurs="unbounded" minOccurs="0"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"indicateMedicationStopped",
"medicationDateRange",
"admissionTiming",
"route",
"dose",
"site",
"doseRestriction",
"productForm",
"deliveryMethod",
"medicationInformation",
"typeOfMedication",
"statusOfMedication",
"indication",
"frequency",
"patientInstructions",
"reaction",
"vehicle",
"doseIndicator",
"orderInformation",
"fulfillmentInstructions",
"fulfillmentHistory",
"comment"
})
public class Medication {
/** The indicate medication stopped. */
protected Ts indicateMedicationStopped;
/** The medication date range. */
protected IvlTs medicationDateRange;
/** The admission timing. */
protected List<PivlTs> admissionTiming;
/** The route. */
protected Cd route;
/** The dose. */
protected Pq dose;
/** The site. */
protected List<Cd> site;
/** The dose restriction. */
protected DoseRestriction doseRestriction;
/** The product form. */
protected Cd productForm;
/** The delivery method. */
protected List<Cd> deliveryMethod;
/** The medication information. */
@XmlElement(required = true)
protected List<MedicationInformation> medicationInformation;
/** The type of medication. */
protected TypeOfMedication typeOfMedication;
/** The status of medication. */
protected StatusOfMedication statusOfMedication;
/** The indication. */
protected List<Indication> indication;
/** The frequency. */
protected String frequency;
/** The patient instructions. */
protected String patientInstructions;
/** The reaction. */
protected Cd reaction;
/** The vehicle. */
protected List<Vehicle> vehicle;
/** The dose indicator. */
protected List<String> doseIndicator;
/** The order information. */
protected List<OrderInformation> orderInformation;
/** The fulfillment instructions. */
protected String fulfillmentInstructions;
/** The fulfillment history. */
protected List<FulfillmentHistory> fulfillmentHistory;
/** The comment. */
protected List<Comment> comment;
/**
* Gets the value of the indicateMedicationStopped property.
*
* @return the indicate medication stopped
* possible object is
* {@link Ts }
*/
public Ts getIndicateMedicationStopped() {
return indicateMedicationStopped;
}
/**
* Sets the value of the indicateMedicationStopped property.
*
* @param value
* allowed object is
* {@link Ts }
*
*/
public void setIndicateMedicationStopped(Ts value) {
this.indicateMedicationStopped = value;
}
/**
* Gets the value of the medicationDateRange property.
*
* @return the medication date range
* possible object is
* {@link IvlTs }
*/
public IvlTs getMedicationDateRange() {
return medicationDateRange;
}
/**
* Sets the value of the medicationDateRange property.
*
* @param value
* allowed object is
* {@link IvlTs }
*
*/
public void setMedicationDateRange(IvlTs value) {
this.medicationDateRange = value;
}
/**
* Gets the value of the admissionTiming 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 admissionTiming property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getAdmissionTiming().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
*
* @return the admission timing
* {@link PivlTs }
*/
public List<PivlTs> getAdmissionTiming() {
if (admissionTiming == null) {
admissionTiming = new ArrayList<PivlTs>();
}
return this.admissionTiming;
}
/**
* Gets the value of the route property.
*
* @return the route
* possible object is
* {@link Cd }
*/
public Cd getRoute() {
return route;
}
/**
* Sets the value of the route property.
*
* @param value
* allowed object is
* {@link Cd }
*
*/
public void setRoute(Cd value) {
this.route = value;
}
/**
* Gets the value of the dose property.
*
* @return the dose
* possible object is
* {@link Pq }
*/
public Pq getDose() {
return dose;
}
/**
* Sets the value of the dose property.
*
* @param value
* allowed object is
* {@link Pq }
*
*/
public void setDose(Pq value) {
this.dose = value;
}
/**
* Gets the value of the site 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 site property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getSite().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
*
* @return the site
* {@link Cd }
*/
public List<Cd> getSite() {
if (site == null) {
site = new ArrayList<Cd>();
}
return this.site;
}
/**
* Gets the value of the doseRestriction property.
*
* @return the dose restriction
* possible object is
* {@link DoseRestriction }
*/
public DoseRestriction getDoseRestriction() {
return doseRestriction;
}
/**
* Sets the value of the doseRestriction property.
*
* @param value
* allowed object is
* {@link DoseRestriction }
*
*/
public void setDoseRestriction(DoseRestriction value) {
this.doseRestriction = value;
}
/**
* Gets the value of the productForm property.
*
* @return the product form
* possible object is
* {@link Cd }
*/
public Cd getProductForm() {
return productForm;
}
/**
* Sets the value of the productForm property.
*
* @param value
* allowed object is
* {@link Cd }
*
*/
public void setProductForm(Cd value) {
this.productForm = value;
}
/**
* Gets the value of the deliveryMethod 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 deliveryMethod property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getDeliveryMethod().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
*
* @return the delivery method
* {@link Cd }
*/
public List<Cd> getDeliveryMethod() {
if (deliveryMethod == null) {
deliveryMethod = new ArrayList<Cd>();
}
return this.deliveryMethod;
}
/**
* Gets the value of the medicationInformation 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 medicationInformation property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getMedicationInformation().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
*
* @return the medication information
* {@link MedicationInformation }
*/
public List<MedicationInformation> getMedicationInformation() {
if (medicationInformation == null) {
medicationInformation = new ArrayList<MedicationInformation>();
}
return this.medicationInformation;
}
/**
* Gets the value of the typeOfMedication property.
*
* @return the type of medication
* possible object is
* {@link TypeOfMedication }
*/
public TypeOfMedication getTypeOfMedication() {
return typeOfMedication;
}
/**
* Sets the value of the typeOfMedication property.
*
* @param value
* allowed object is
* {@link TypeOfMedication }
*
*/
public void setTypeOfMedication(TypeOfMedication value) {
this.typeOfMedication = value;
}
/**
* Gets the value of the statusOfMedication property.
*
* @return the status of medication
* possible object is
* {@link StatusOfMedication }
*/
public StatusOfMedication getStatusOfMedication() {
return statusOfMedication;
}
/**
* Sets the value of the statusOfMedication property.
*
* @param value
* allowed object is
* {@link StatusOfMedication }
*
*/
public void setStatusOfMedication(StatusOfMedication value) {
this.statusOfMedication = value;
}
/**
* Gets the value of the indication 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 indication property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getIndication().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
*
* @return the indication
* {@link Indication }
*/
public List<Indication> getIndication() {
if (indication == null) {
indication = new ArrayList<Indication>();
}
return this.indication;
}
/**
* Gets the value of the frequency property.
*
* @return the frequency
* possible object is
* {@link String }
*/
public String getFrequency() {
return frequency;
}
/**
* Sets the value of the frequency property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setFrequency(String value) {
this.frequency = value;
}
/**
* Gets the value of the patientInstructions property.
*
* @return the patient instructions
* possible object is
* {@link String }
*/
public String getPatientInstructions() {
return patientInstructions;
}
/**
* Sets the value of the patientInstructions property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setPatientInstructions(String value) {
this.patientInstructions = value;
}
/**
* Gets the value of the reaction property.
*
* @return the reaction
* possible object is
* {@link Cd }
*/
public Cd getReaction() {
return reaction;
}
/**
* Sets the value of the reaction property.
*
* @param value
* allowed object is
* {@link Cd }
*
*/
public void setReaction(Cd value) {
this.reaction = value;
}
/**
* Gets the value of the vehicle 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 vehicle property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getVehicle().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
*
* @return the vehicle
* {@link Vehicle }
*/
public List<Vehicle> getVehicle() {
if (vehicle == null) {
vehicle = new ArrayList<Vehicle>();
}
return this.vehicle;
}
/**
* Gets the value of the doseIndicator 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 doseIndicator property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getDoseIndicator().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
*
* @return the dose indicator
* {@link String }
*/
public List<String> getDoseIndicator() {
if (doseIndicator == null) {
doseIndicator = new ArrayList<String>();
}
return this.doseIndicator;
}
/**
* Gets the value of the orderInformation 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 orderInformation property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getOrderInformation().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
*
* @return the order information
* {@link OrderInformation }
*/
public List<OrderInformation> getOrderInformation() {
if (orderInformation == null) {
orderInformation = new ArrayList<OrderInformation>();
}
return this.orderInformation;
}
/**
* Gets the value of the fulfillmentInstructions property.
*
* @return the fulfillment instructions
* possible object is
* {@link String }
*/
public String getFulfillmentInstructions() {
return fulfillmentInstructions;
}
/**
* Sets the value of the fulfillmentInstructions property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setFulfillmentInstructions(String value) {
this.fulfillmentInstructions = value;
}
/**
* Gets the value of the fulfillmentHistory 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 fulfillmentHistory property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getFulfillmentHistory().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
*
* @return the fulfillment history
* {@link FulfillmentHistory }
*/
public List<FulfillmentHistory> getFulfillmentHistory() {
if (fulfillmentHistory == null) {
fulfillmentHistory = new ArrayList<FulfillmentHistory>();
}
return this.fulfillmentHistory;
}
/**
* Gets the value of the comment 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 comment property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getComment().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
*
* @return the comment
* {@link Comment }
*/
public List<Comment> getComment() {
if (comment == null) {
comment = new ArrayList<Comment>();
}
return this.comment;
}
}