/*******************************************************************************
 *  Copyright 2017 Centre for Development of Advanced Computing(C-DAC), Pune
 *  
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *  
 *    http://www.apache.org/licenses/LICENSE-2.0
 *  
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *******************************************************************************/
package cdac.medinfo.sdk.hl7282.baselibs.segments;

import cdac.medinfo.sdk.hl7282.baselibs.CWE;
import cdac.medinfo.sdk.hl7282.baselibs.DTM;
import cdac.medinfo.sdk.hl7282.baselibs.EI;
import cdac.medinfo.sdk.hl7282.baselibs.FN;
import cdac.medinfo.sdk.hl7282.baselibs.HD;
import cdac.medinfo.sdk.hl7282.baselibs.ID;
import cdac.medinfo.sdk.hl7282.baselibs.NM;
import cdac.medinfo.sdk.hl7282.baselibs.PL;
import cdac.medinfo.sdk.hl7282.baselibs.SAD;
import cdac.medinfo.sdk.hl7282.baselibs.ST;
import cdac.medinfo.sdk.hl7282.baselibs.XAD;
import cdac.medinfo.sdk.hl7282.baselibs.XCN;
import cdac.medinfo.sdk.hl7282.commoninterface.IDataType;
import cdac.medinfo.sdk.hl7282.commoninterface.ISingleCollection;
import cdac.medinfo.sdk.hl7282.exceptions.FieldMissingException;
import cdac.medinfo.sdk.hl7282.exceptions.InvalidSegmentException;
import cdac.medinfo.sdk.hl7282.utils.EnumSegments;
import cdac.medinfo.sdk.hl7282.utils.SingleCollection;

/**
 * RXA - Pharmacy/Treatment Administration Segment.<p>
 * The RXA (Pharmacy/Treatment Administration)carries the administration data.
 * <p>Represents an HL7 RXA message segment. 
 * This segment has the following fields:</p><p>
 * RXA-1: Give Sub-ID Counter (NM)<b>Required</b><br> 
 * RXA-2: Administration Sub-ID Counter (NM)<b>Required</b><br> 
 * RXA-3: Date/Time Start of Administration (DTM)<b>Required</b><br> 
 * RXA-4: Date/Time End of Administration (DTM)<b>Required</b><br> 
 * RXA-5: Administered Code (CWE)<b>Required</b><br> 
 * RXA-6: Administered Amount (NM)<b>Required</b><br> 
 * RXA-7: Administered Units (CWE)<b>Conditional</b><br> 
 * RXA-8: Administered Dosage Form (CWE)<b>Optional</b><br> 
 * RXA-9: Administration Notes (CWE)<b>Optional</b><br> 
 * RXA-10: Administering Provider (XCN)<b>Backward</b><br> 
 * RXA-11: Administered-at Location (LA2)<b>Withdrawn</b><br> 
 * RXA-12: Administered Per (Time Unit) (ST)<br> 
 * RXA-13: Administered Strength (NM)<b>Conditional</b><br> 
 * RXA-14: Administered Strength Units (CWE)<b>Optional</b><br> 
 * RXA-15: Substance Lot Number (ST)<b>Optional</b><br> 
 * RXA-16: Substance Expiration Date (DTM)<b>Optional</b><br> 
 * RXA-17: Substance Manufacturer Name (CWE)<b>Optional</b><br> 
 * RXA-18: Substance/Treatment Refusal Reason (CWE)<b>Optional</b><br> 
 * RXA-19: Indication (CWE)<b>Optional</b><br> 
 * RXA-20: Completion Status (ID)<b>Optional</b><br> 
 * RXA-21: Action Code - RXA (ID)<b>Optional</b><br> 
 * RXA-22: System Entry Date/Time (DTM)<b>Optional</b><br> 
 * RXA-23: Administered Drug Strength Volume (NM)<b>Optional</b><br> 
 * RXA-24: Administered Drug Strength Volume Units (CWE)<b>Optional</b><br> 
 * RXA-25: Administered Barcode Identifier (CWE)<b>Optional</b><br> 
 * RXA-26: Pharmacy Order Type (ID)<b>Optional</b><br>
 * RXA-27: Administer-at (PL)<b>Optional</b><br> 
 * RXA-28: Administered-at Address (XAD)<b>Optional</b><br> 
 * RXA-29: Administered Tag Identifier (EI)<b>Optional</b><br></p>
 * This class provides mechanism to validate message against HL7 v 2.8.2 standard.
 * The class provides accessors & mutators for the elements mentioned above.
 * The class has validate method which validates Message against HL7 v 2.8.2 standard.
 *
 * <p>User can also create Segment through {@link SegmentFactory}
 */
 public class RXA extends Segment   
{
	

	/**
	 * Constructs the RXA segment.
	 */
	public RXA()
	{super(EnumSegments.HL7_SEG_RXA);
	}

	//Integer values used in getter/setter is unique item id defined 
	//for each attribute.

	/**
	 * Retrieves the Action Code RXA.
	 * @return ID - actionCode_RXA
	 */
	public ID getActionCode_RXA() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1224);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Admin Barcode Identifier.
	 * This specify pharmacy system's assigned barcode number for the give occurrence.  
	 * @return CWE - adminBarcodeIdentifier
	 */
	public CWE getAdminBarcodeIdentifier() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1698);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Admin Drug Strength Volume.
	 * This specify the volume measurement in which the drug strength concentration is contained.
	 * @return NM - adminDrugStrengthVolume
	 */
	public NM getAdminDrugStrengthVolume() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1696);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Admin Drug Strength Volume Units.
	 * This specify volumetric unit associated with RXA-23 Administered Drug Strength Volume. 
	 * @return CWE - adminDrugStrengthVolumeUnits
	 */
	public CWE getAdminDrugStrengthVolumeUnits() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1697);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Administered Amount.
	 * @return NM - administeredAmount
	 */
	public NM getAdministeredAmount() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(348);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Administered Code.
	 * @return CWE - administeredCode
	 */
	public CWE getAdministeredCode() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(347);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Administered Dosage Form.
	 * @return CWE - administeredDosageForm
	 */
	public CWE getAdministeredDosageForm() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(350);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/** 
	 * Retrieves the Administered Per Time Unit.
	 * @return ST - administeredPerTimeUnit
	 */
	public ST getAdministeredPerTimeUnit() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(354);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ST)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Administered Strength.
	 * @return NM - administeredStrength
	 */
	public NM getAdministeredStrength() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1134);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Administered Strength Units.
	 * @return CWE - administeredStrengthUnits
	 */
	public CWE getAdministeredStrengthUnits() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1135);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Administered Units.
	 * @return CWE - administeredUnits
	 */
	public CWE getAdministeredUnits() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(349);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Administering Provider.
	 * This field provides ID of the person who administering the pharmaceutical/treatment.
	 * @return ISingleCollection<XCN> - administeringProvider
	 */
	public ISingleCollection<XCN> getAdministeringProvider() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(352);
		ISingleCollection<XCN> objDataList = new SingleCollection<XCN>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				XCN objXCN = (XCN)objDataType;
				objDataList.add(objXCN);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Administration Notes.
	 * @return ISingleCollection<CWE> - administrationNotes
	 */
	public ISingleCollection<CWE> getAdministrationNotes() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(351);
		ISingleCollection<CWE> objDataList = new SingleCollection<CWE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CWE objCE = (CWE)objDataType;
				objDataList.add(objCE);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Administration Sub ID Counter.
	 * This field starts with 1 the first time that medication/treatment is administer for this order.
	 * Increments by one with each additional administration the medication/treatment.
	 * @return NM - administrationSub_IDCounter
	 */
	public NM getAdministrationSub_IDCounter() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(344);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Completion Status.
	 * @return ID - completionStatus
	 */
	public ID getCompletionStatus() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1223);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Date/Time End of Administration.
	 * @return DTM - dateTimeEndofAdministration
	 */
	public DTM getDateTimeEndofAdministration() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(346);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DTM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Date Time Startof Administration.
	 * @return DTM - dateTimeStartofAdministration
	 */
	public DTM getDateTimeStartofAdministration() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(345);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DTM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Give Sub ID Counter.
	 * This field matches the RXA segment to its corresponding RXG segment.
	 * @return NM - giveSub_IDCounter
	 */
	public NM getGiveSub_IDCounter() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(342);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Indication. 
	 * @return ISingleCollection<CWE> - indication
	 */
	public ISingleCollection<CWE> getIndication() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1123);
		ISingleCollection<CWE> objDataList = new SingleCollection<CWE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CWE objCE = (CWE)objDataType;
				objDataList.add(objCE);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Pharmacy Order Type.
	 * This specify general category of pharmacy order which may be used to determine the processing path the order will take.
	 * @return ID - pharmacyOrderType
	 */
	public ID getPharmacyOrderType() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1699);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Substance Expiration Date.
	 * @return ISingleCollection<DTM> - substanceExpirationDate
	 */
	public ISingleCollection<DTM> getSubstanceExpirationDate() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1130);
		ISingleCollection<DTM> objDataList = new SingleCollection<DTM>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				DTM objTS = (DTM)objDataType;
				objDataList.add(objTS);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Substance Lot Number.
	 * @return ISingleCollection<ST> - substanceLotNumber
	 */
	public ISingleCollection<ST> getSubstanceLotNumber() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1129);
		ISingleCollection<ST> objDataList = new SingleCollection<ST>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				ST objST = (ST)objDataType;
				objDataList.add(objST);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Substance Manufacturer Name.
	 * @return ISingleCollection<CWE> - substanceManufacturerName
	 */
	public ISingleCollection<CWE> getSubstanceManufacturerName() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1131);
		ISingleCollection<CWE> objDataList = new SingleCollection<CWE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CWE objCE = (CWE)objDataType;
				objDataList.add(objCE);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Substance Treatment Refusal Reason.
	 * @return ISingleCollection<CWE> - substanceTreatmentRefusalReason
	 */
	public ISingleCollection<CWE> getSubstanceTreatmentRefusalReason() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1136);
		ISingleCollection<CWE> objDataList = new SingleCollection<CWE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CWE objCE = (CWE)objDataType;
				objDataList.add(objCE);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the System Entry Date Time.
	 * This field Date/time information is entered into the source system.
	 * @return DTM - systemEntryDateTime
	 */
	public DTM getSystemEntryDateTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1225);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DTM)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Administered-at Address.
	 * This field specifies the location where the drug or treatment was administered.  
	 * @return XAD - Administered-at Address
	 */
	public XAD getAdministeredAtAddress() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2265);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (XAD)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Administer-at.
	 * This field specify the location of the patient to whom the pharmaceutical substance is to be delivered.
	 * @return PL - Administer-at
	 */
	public PL getAdministerAt() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2264);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (PL)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Administered Tag Identifier.
	 * @return ISingleCollection<EI> - Administered Tag Identifier
	 */
	public ISingleCollection<EI> getAdministeredTagIdentifier() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(3396);
		ISingleCollection<EI> objDataList = new SingleCollection<EI>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				EI objEI = (EI)objDataType;
				objDataList.add(objEI);
			}
		}
		return objDataList;
	}

	/**
	 * Set the Action Code RXA.
	 * @param strActionCode_RXA String which to set as Action Code - RXA
	 */ 
	public void setActionCode_RXA (String strActionCode_RXA) 
	{
		ID actionCode_RXA  = (ID)getDataElement(1224);
		actionCode_RXA.setValue(strActionCode_RXA); 
		setActionCode_RXA(actionCode_RXA);

	} 

	/** 
	 * Set the Action Code RXA.
	 * @param objactionCode_RXA Object of Action Code RXA.
	 */ 
	public void setActionCode_RXA(ID objactionCode_RXA)
	{
		setDataType(1224,objactionCode_RXA);

	}

	/**
	 * Set the Admin Barcode Identifier.
	 * This specify pharmacy system's assigned barcode number for the give occurrence.  
	 * @param strIdentifier Specifies of characters (the code) that uniquely identifies the item being referenced. 
	 * @param strText Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction. 
	 * @param strNameOfCodingSystem Identifies the coding scheme being used in the identifier component.
	 * @param strAlternateIdentifier Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
	 * @param strAlternateText Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
	 * @param strNameOfAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component. 
	 * @param strCodingSystemVersionID A sequence of characters that uniquely identifies a second alternate code.
	 * @param strAlternateCodingSystemVersionId This component carries the version for the coding system identified by components 4-6.
	 * @param strOriginalText The text as seen and/or selected by the user who entered the data.
	 * @param strSecondAlternateIdentifier A sequence of characters that uniquely identifies a second alternate code.
	 * @param strSecondAlternateText The descriptive or textual name of the alternate identifier.
	 * @param strNameofSecondAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component.
	 * @param strSecondAlternateCodingSystemVersionID This component carries the version for the coding system identified by components 10-12.
	 * @param strCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
	 * @param strValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
	 * @param strValueSetVersionID This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
	 * @param strAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
	 * @param strAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
	 * @param strAlternateValueSetVersionID This component carries the version for the value set identified by CWE.18. The version is a date.
	 * @param strSecondAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
	 * @param strSecondAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
	 * @param strSecondAlternateValueSetVersionID This component carries the version for the value set identified by CWE.21. The version is a date.
	 */
	public void setAdminBarcodeIdentifier(String strIdentifier,String strText,String strNameOfCodingSystem,
			String strAlternateIdentifier,String strAlternateText,String strNameOfAlternateCodingSystem, String strCodingSystemVersionID, String strAlternateCodingSystemVersionId,
			String strOriginalText, String  strSecondAlternateIdentifier, String strSecondAlternateText, 
			String strNameofSecondAlternateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, String strValueSetOID,
			String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID, String strAlternateValueSetVersionID,
			String  strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID, String strSecondAlternateValueSetVersionID)
	{
		CWE cwe  = (CWE)getDataElement(1698);
		cwe.setIdentifier(strIdentifier);
		cwe.setText(strText);
		cwe.setNameOfCodingSystem(strNameOfCodingSystem);
		cwe.setAlternateIdentifier(strAlternateIdentifier);
		cwe.setAlternateText(strAlternateText);
		cwe.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem); 
		cwe.setCodingSystemVersionID(strCodingSystemVersionID);
		cwe.setAlternateCodingSystemVersionId(strAlternateCodingSystemVersionId);
		cwe.setOriginalText(strOriginalText);
		cwe.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cwe.setSecondAlternateText(strSecondAlternateText);
		cwe.setNameofSecondAlternateCodingSystem(strNameofSecondAlternateCodingSystem);
		cwe.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cwe.setCodingSystemOID(strCodingSystemOID);
		cwe.setValueSetOID(strValueSetOID);
		cwe.setValueSetVersionID(strValueSetVersionID);
		cwe.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cwe.setAlternateValueSetOID(strAlternateValueSetOID);
		cwe.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cwe.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cwe.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cwe.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID);
		setAdminBarcodeIdentifier(cwe);

	} 

	/** 
	 * Set the Admin Barcode Identifier.
	 * This specify pharmacy system's assigned barcode number for the give occurrence.  
	 * @param objadminBarcodeIdentifier Object of Admin Barcode Identifier.
	 */ 
	public void setAdminBarcodeIdentifier(CWE objadminBarcodeIdentifier)
	{
		setDataType(1698,objadminBarcodeIdentifier);

	}

	/**
	 * Set the Admin Drug Strength Volume.
	 * This specify the volume measurement in which the drug strength concentration is contained.
	 * @param strAdminDrugStrengthVolume This field contains the String Value of Administered Drug Strength Volume 
	 */ 
	public void setAdminDrugStrengthVolume (String strAdminDrugStrengthVolume) 
	{
		NM adminDrugStrengthVolume  = (NM)getDataElement(1696);
		adminDrugStrengthVolume.setValue(strAdminDrugStrengthVolume); 
		setAdminDrugStrengthVolume(adminDrugStrengthVolume);

	} 

	/** 
	 * Set the Admin Drug Strength Volume.
	 * This specify the volume measurement in which the drug strength concentration is contained.
	 * @param objadminDrugStrengthVolume Object of Admin Drug Strength Volume. 
	 */ 
	public void setAdminDrugStrengthVolume(NM objadminDrugStrengthVolume)
	{
		setDataType(1696,objadminDrugStrengthVolume);

	}

	/**
	 * Set the Admin Drug Strength Volume Unitsvolumetric.
	 * This specify volumetric unit associated with RXA-23 Administered Drug Strength Volume. 
	 * @param strIdentifier Specifies of characters (the code) that uniquely identifies the item being referenced. 
	 * @param strText Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction. 
	 * @param strNameOfCodingSystem Identifies the coding scheme being used in the identifier component.
	 * @param strAlternateIdentifier Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
	 * @param strAlternateText Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
	 * @param strNameOfAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component. 
	 * @param strCodingSystemVersionID A sequence of characters that uniquely identifies a second alternate code.
	 * @param strAlternateCodingSystemVersionId This component carries the version for the coding system identified by components 4-6.
	 * @param strOriginalText The text as seen and/or selected by the user who entered the data.
	 * @param strSecondAlternateIdentifier A sequence of characters that uniquely identifies a second alternate code.
	 * @param strSecondAlternateText The descriptive or textual name of the alternate identifier.
	 * @param strNameofSecondAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component.
	 * @param strSecondAlternateCodingSystemVersionID This component carries the version for the coding system identified by components 10-12.
	 * @param strCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
	 * @param strValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
	 * @param strValueSetVersionID This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
	 * @param strAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
	 * @param strAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
	 * @param strAlternateValueSetVersionID This component carries the version for the value set identified by CWE.18. The version is a date.
	 * @param strSecondAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
	 * @param strSecondAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
	 * @param strSecondAlternateValueSetVersionID This component carries the version for the value set identified by CWE.21. The version is a date.
	 */ 
	public void setAdminDrugStrengthVolumeUnits(String strIdentifier,String strText,String strNameOfCodingSystem,
			String strAlternateIdentifier,String strAlternateText,String strNameOfAlternateCodingSystem, String strCodingSystemVersionID, String strAlternateCodingSystemVersionId,
			String strOriginalText, String  strSecondAlternateIdentifier, String strSecondAlternateText, 
			String strNameofSecondAlternateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, String strValueSetOID,
			String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID, String strAlternateValueSetVersionID,
			String  strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID, String strSecondAlternateValueSetVersionID)
	{
		CWE cwe  = (CWE)getDataElement(1697);
		cwe.setIdentifier(strIdentifier);
		cwe.setText(strText);
		cwe.setNameOfCodingSystem(strNameOfCodingSystem);
		cwe.setAlternateIdentifier(strAlternateIdentifier);
		cwe.setAlternateText(strAlternateText);
		cwe.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem); 
		cwe.setCodingSystemVersionID(strCodingSystemVersionID);
		cwe.setAlternateCodingSystemVersionId(strAlternateCodingSystemVersionId);
		cwe.setOriginalText(strOriginalText);
		cwe.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cwe.setSecondAlternateText(strSecondAlternateText);
		cwe.setNameofSecondAlternateCodingSystem(strNameofSecondAlternateCodingSystem);
		cwe.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cwe.setCodingSystemOID(strCodingSystemOID);
		cwe.setValueSetOID(strValueSetOID);
		cwe.setValueSetVersionID(strValueSetVersionID);
		cwe.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cwe.setAlternateValueSetOID(strAlternateValueSetOID);
		cwe.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cwe.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cwe.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cwe.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID); 
		setAdminDrugStrengthVolumeUnits(cwe);

	} 

	/** 
	 * Set the Admin Drug Strength Volume Unitsvolumetric.
	 * This specify volumetric unit associated with RXA-23 Administered Drug Strength Volume. 
	 * @param objadminDrugStrengthVolumeUnits Object of Admin Drug Strength Volume Unitsvolumetric.
	 */ 
	public void setAdminDrugStrengthVolumeUnits(CWE objadminDrugStrengthVolumeUnits)
	{
		setDataType(1697,objadminDrugStrengthVolumeUnits);

	}

	/**
	 * Set the Administered Amount.
	 * @param strAdministeredAmount This field contains the String Value of Administered Amount 
	 */ 
	public void setAdministeredAmount (String strAdministeredAmount) 
	{
		NM administeredAmount  = (NM)getDataElement(348);
		administeredAmount.setValue(strAdministeredAmount); 
		setAdministeredAmount(administeredAmount);

	} 

	/** 
	 * Set the Administered Amount.
	 * @param objadministeredAmount Object of Administered Amount.
	 */ 
	public void setAdministeredAmount(NM objadministeredAmount)
	{
		setDataType(348,objadministeredAmount);

	}

	/**
	 * Set the Administered Code.
	 * @param strIdentifier Specifies of characters (the code) that uniquely identifies the item being referenced. 
	 * @param strText Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction. 
	 * @param strNameOfCodingSystem Identifies the coding scheme being used in the identifier component.
	 * @param strAlternateIdentifier Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
	 * @param strAlternateText Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
	 * @param strNameOfAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component. 
	 * @param strCodingSystemVersionID A sequence of characters that uniquely identifies a second alternate code.
	 * @param strAlternateCodingSystemVersionId This component carries the version for the coding system identified by components 4-6.
	 * @param strOriginalText The text as seen and/or selected by the user who entered the data.
	 * @param strSecondAlternateIdentifier A sequence of characters that uniquely identifies a second alternate code.
	 * @param strSecondAlternateText The descriptive or textual name of the alternate identifier.
	 * @param strNameofSecondAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component.
	 * @param strSecondAlternateCodingSystemVersionID This component carries the version for the coding system identified by components 10-12.
	 * @param strCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
	 * @param strValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
	 * @param strValueSetVersionID This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
	 * @param strAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
	 * @param strAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
	 * @param strAlternateValueSetVersionID This component carries the version for the value set identified by CWE.18. The version is a date.
	 * @param strSecondAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
	 * @param strSecondAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
	 * @param strSecondAlternateValueSetVersionID This component carries the version for the value set identified by CWE.21. The version is a date.
	 */	 
	public void setAdministeredCode (String strIdentifier,String strText,String strNameOfCodingSystem,
			String strAlternateIdentifier,String strAlternateText,String strNameOfAlternateCodingSystem, String strCodingSystemVersionID, String 				strAlternateCodingSystemVersionId,
			String strOriginalText, String  strSecondAlternateIdentifier, String strSecondAlternateText, 
			String strNameofSecondAlternateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, String strValueSetOID,
			String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID, String strAlternateValueSetVersionID,
			String  strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID, String strSecondAlternateValueSetVersionID)
	{
		CWE cwe  = (CWE)getDataElement(347);
		cwe.setIdentifier(strIdentifier);
		cwe.setText(strText);
		cwe.setNameOfCodingSystem(strNameOfCodingSystem);
		cwe.setAlternateIdentifier(strAlternateIdentifier);
		cwe.setAlternateText(strAlternateText);
		cwe.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem); 
		cwe.setCodingSystemVersionID(strCodingSystemVersionID);
		cwe.setAlternateCodingSystemVersionId(strAlternateCodingSystemVersionId);
		cwe.setOriginalText(strOriginalText);
		cwe.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cwe.setSecondAlternateText(strSecondAlternateText);
		cwe.setNameofSecondAlternateCodingSystem(strNameofSecondAlternateCodingSystem);
		cwe.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cwe.setCodingSystemOID(strCodingSystemOID);
		cwe.setValueSetOID(strValueSetOID);
		cwe.setValueSetVersionID(strValueSetVersionID);
		cwe.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cwe.setAlternateValueSetOID(strAlternateValueSetOID);
		cwe.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cwe.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cwe.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cwe.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID); 
		setAdministeredCode(cwe);

	} 

	/** 
	 * Set the Administered Code.
	 * @param objadministeredCode Object of Administered Code.
	 */ 
	public void setAdministeredCode(CWE objadministeredCode)
	{
		setDataType(347,objadministeredCode);

	}

	/**
	 * Set the Administered Dosage Form.
	 * @param strIdentifier Specifies of characters (the code) that uniquely identifies the item being referenced. 
	 * @param strText Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction. 
	 * @param strNameOfCodingSystem Identifies the coding scheme being used in the identifier component.
	 * @param strAlternateIdentifier Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
	 * @param strAlternateText Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
	 * @param strNameOfAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component. 
	 * @param strCodingSystemVersionID A sequence of characters that uniquely identifies a second alternate code.
	 * @param strAlternateCodingSystemVersionId This component carries the version for the coding system identified by components 4-6.
	 * @param strOriginalText The text as seen and/or selected by the user who entered the data.
	 * @param strSecondAlternateIdentifier A sequence of characters that uniquely identifies a second alternate code.
	 * @param strSecondAlternateText The descriptive or textual name of the alternate identifier.
	 * @param strNameofSecondAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component.
	 * @param strSecondAlternateCodingSystemVersionID This component carries the version for the coding system identified by components 10-12.
	 * @param strCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
	 * @param strValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
	 * @param strValueSetVersionID This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
	 * @param strAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
	 * @param strAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
	 * @param strAlternateValueSetVersionID This component carries the version for the value set identified by CWE.18. The version is a date.
	 * @param strSecondAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
	 * @param strSecondAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
	 * @param strSecondAlternateValueSetVersionID This component carries the version for the value set identified by CWE.21. The version is a date.
	 */	 
	public void setAdministeredDosageForm(String strIdentifier,String strText,String strNameOfCodingSystem,
			String strAlternateIdentifier,String strAlternateText,String strNameOfAlternateCodingSystem, String strCodingSystemVersionID, String 				strAlternateCodingSystemVersionId,
			String strOriginalText, String  strSecondAlternateIdentifier, String strSecondAlternateText, 
			String strNameofSecondAlternateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, String strValueSetOID,
			String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID, String strAlternateValueSetVersionID,
			String  strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID, String strSecondAlternateValueSetVersionID)
	{
		CWE cwe  = (CWE)getDataElement(350);
		cwe.setIdentifier(strIdentifier);
		cwe.setText(strText);
		cwe.setNameOfCodingSystem(strNameOfCodingSystem);
		cwe.setAlternateIdentifier(strAlternateIdentifier);
		cwe.setAlternateText(strAlternateText);
		cwe.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem); 
		cwe.setCodingSystemVersionID(strCodingSystemVersionID);
		cwe.setAlternateCodingSystemVersionId(strAlternateCodingSystemVersionId);
		cwe.setOriginalText(strOriginalText);
		cwe.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cwe.setSecondAlternateText(strSecondAlternateText);
		cwe.setNameofSecondAlternateCodingSystem(strNameofSecondAlternateCodingSystem);
		cwe.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cwe.setCodingSystemOID(strCodingSystemOID);
		cwe.setValueSetOID(strValueSetOID);
		cwe.setValueSetVersionID(strValueSetVersionID);
		cwe.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cwe.setAlternateValueSetOID(strAlternateValueSetOID);
		cwe.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cwe.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cwe.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cwe.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID); 
		setAdministeredDosageForm(cwe);

	} 

	/** 
	 * Set the Administered Dosage Form.
	 * @param objadministeredDosageForm Object of Administered Dosage Form.
	 */ 
	public void setAdministeredDosageForm(CWE objadministeredDosageForm)
	{
		setDataType(350,objadministeredDosageForm);

	}

	/**
	 * Set the Administered Per Time Unit.
	 * RXA-6-administered amount and RXA-7-administered units.
	 * @param strAdministeredPerTimeUnit This field contains the String Value of Administered Per Time Unit 
	 */ 
	public void setAdministeredPerTimeUnit (String strAdministeredPerTimeUnit) 
	{
		ST administeredPerTimeUnit  = (ST)getDataElement(354);
		administeredPerTimeUnit.setValue(strAdministeredPerTimeUnit); 
		setAdministeredPerTimeUnit(administeredPerTimeUnit);

	} 

	/** 
	 * Set the Administered Per Time Unit.
	 * RXA-6-administered amount and RXA-7-administered units.
	 * @param objadministeredPerTimeUnit Object of Administered Per Time Unit.
	 */ 
	public void setAdministeredPerTimeUnit(ST objadministeredPerTimeUnit)
	{
		setDataType(354,objadministeredPerTimeUnit);

	}

	/**
	 * Set the Administered Strength.
	 * @param strAdministeredStrength This field contains the String Value of Administered Strength 
	 */ 
	public void setAdministeredStrength (String strAdministeredStrength) 
	{
		NM administeredStrength  = (NM)getDataElement(1134);
		administeredStrength.setValue(strAdministeredStrength); 
		setAdministeredStrength(administeredStrength);

	} 

	/** 
	 * Set the Administered Strength.
	 * @param objadministeredStrength Object of Administered Strength. 
	 */ 
	public void setAdministeredStrength(NM objadministeredStrength)
	{
		setDataType(1134,objadministeredStrength);

	}

	/**
	 * Set the Administered Strength Units.
	 * @param strIdentifier Specifies of characters (the code) that uniquely identifies the item being referenced. 
	 * @param strText Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction. 
	 * @param strNameOfCodingSystem Identifies the coding scheme being used in the identifier component.
	 * @param strAlternateIdentifier Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
	 * @param strAlternateText Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
	 * @param strNameOfAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component. 
	 * @param strCodingSystemVersionID A sequence of characters that uniquely identifies a second alternate code.
	 * @param strAlternateCodingSystemVersionId This component carries the version for the coding system identified by components 4-6.
	 * @param strOriginalText The text as seen and/or selected by the user who entered the data.
	 * @param strSecondAlternateIdentifier A sequence of characters that uniquely identifies a second alternate code.
	 * @param strSecondAlternateText The descriptive or textual name of the alternate identifier.
	 * @param strNameofSecondAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component.
	 * @param strSecondAlternateCodingSystemVersionID This component carries the version for the coding system identified by components 10-12.
	 * @param strCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
	 * @param strValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
	 * @param strValueSetVersionID This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
	 * @param strAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
	 * @param strAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
	 * @param strAlternateValueSetVersionID This component carries the version for the value set identified by CWE.18. The version is a date.
	 * @param strSecondAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
	 * @param strSecondAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
	 * @param strSecondAlternateValueSetVersionID This component carries the version for the value set identified by CWE.21. The version is a date.
	 */ 
	public void setAdministeredStrengthUnits (String strIdentifier,String strText,String strNameOfCodingSystem,
			String strAlternateIdentifier,String strAlternateText,String strNameOfAlternateCodingSystem, String strCodingSystemVersionID, String 				strAlternateCodingSystemVersionId,
			String strOriginalText, String  strSecondAlternateIdentifier, String strSecondAlternateText, 
			String strNameofSecondAlternateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, String strValueSetOID,
			String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID, String strAlternateValueSetVersionID,
			String  strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID, String strSecondAlternateValueSetVersionID)
	{
		CWE cwe  = (CWE)getDataElement(1135);
		cwe.setIdentifier(strIdentifier);
		cwe.setText(strText);
		cwe.setNameOfCodingSystem(strNameOfCodingSystem);
		cwe.setAlternateIdentifier(strAlternateIdentifier);
		cwe.setAlternateText(strAlternateText);
		cwe.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem); 
		cwe.setCodingSystemVersionID(strCodingSystemVersionID);
		cwe.setAlternateCodingSystemVersionId(strAlternateCodingSystemVersionId);
		cwe.setOriginalText(strOriginalText);
		cwe.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cwe.setSecondAlternateText(strSecondAlternateText);
		cwe.setNameofSecondAlternateCodingSystem(strNameofSecondAlternateCodingSystem);
		cwe.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cwe.setCodingSystemOID(strCodingSystemOID);
		cwe.setValueSetOID(strValueSetOID);
		cwe.setValueSetVersionID(strValueSetVersionID);
		cwe.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cwe.setAlternateValueSetOID(strAlternateValueSetOID);
		cwe.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cwe.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cwe.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cwe.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID); 
		setAdministeredStrengthUnits(cwe);

	} 

	/** 
	 * Set the Administered Strength Units.
	 * @param objadministeredStrengthUnits Object of Administered Strength Units.
	 */ 
	public void setAdministeredStrengthUnits(CWE objadministeredStrengthUnits)
	{
		setDataType(1135,objadministeredStrengthUnits);

	}

	/**
	 * Set the Administered Units.
	 * @param strIdentifier Specifies of characters (the code) that uniquely identifies the item being referenced. 
	 * @param strText Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction. 
	 * @param strNameOfCodingSystem Identifies the coding scheme being used in the identifier component.
	 * @param strAlternateIdentifier Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
	 * @param strAlternateText Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
	 * @param strNameOfAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component. 
	 * @param strCodingSystemVersionID A sequence of characters that uniquely identifies a second alternate code.
	 * @param strAlternateCodingSystemVersionId This component carries the version for the coding system identified by components 4-6.
	 * @param strOriginalText The text as seen and/or selected by the user who entered the data.
	 * @param strSecondAlternateIdentifier A sequence of characters that uniquely identifies a second alternate code.
	 * @param strSecondAlternateText The descriptive or textual name of the alternate identifier.
	 * @param strNameofSecondAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component.
	 * @param strSecondAlternateCodingSystemVersionID This component carries the version for the coding system identified by components 10-12.
	 * @param strCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
	 * @param strValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
	 * @param strValueSetVersionID This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
	 * @param strAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
	 * @param strAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
	 * @param strAlternateValueSetVersionID This component carries the version for the value set identified by CWE.18. The version is a date.
	 * @param strSecondAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
	 * @param strSecondAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
	 * @param strSecondAlternateValueSetVersionID This component carries the version for the value set identified by CWE.21. The version is a date.
	 */ 
	public void setAdministeredUnits (String strIdentifier,String strText,String strNameOfCodingSystem,
			String strAlternateIdentifier,String strAlternateText,String strNameOfAlternateCodingSystem, String strCodingSystemVersionID, String 				strAlternateCodingSystemVersionId,
			String strOriginalText, String  strSecondAlternateIdentifier, String strSecondAlternateText, 
			String strNameofSecondAlternateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, String strValueSetOID,
			String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID, String strAlternateValueSetVersionID,
			String  strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID, String strSecondAlternateValueSetVersionID)
	{
		CWE cwe  = (CWE)getDataElement(349);
		cwe.setIdentifier(strIdentifier);
		cwe.setText(strText);
		cwe.setNameOfCodingSystem(strNameOfCodingSystem);
		cwe.setAlternateIdentifier(strAlternateIdentifier);
		cwe.setAlternateText(strAlternateText);
		cwe.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem); 
		cwe.setCodingSystemVersionID(strCodingSystemVersionID);
		cwe.setAlternateCodingSystemVersionId(strAlternateCodingSystemVersionId);
		cwe.setOriginalText(strOriginalText);
		cwe.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cwe.setSecondAlternateText(strSecondAlternateText);
		cwe.setNameofSecondAlternateCodingSystem(strNameofSecondAlternateCodingSystem);
		cwe.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cwe.setCodingSystemOID(strCodingSystemOID);
		cwe.setValueSetOID(strValueSetOID);
		cwe.setValueSetVersionID(strValueSetVersionID);
		cwe.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cwe.setAlternateValueSetOID(strAlternateValueSetOID);
		cwe.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cwe.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cwe.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cwe.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID); 
		setAdministeredUnits(cwe);

	} 

	/** 
	 * Set the Administered Units.
	 * @param objadministeredUnits Object of Administered Units.
	 */ 
	public void setAdministeredUnits(CWE objadministeredUnits)
	{
		setDataType(349,objadministeredUnits);

	}

	/**
	 * Add the Administering Provider.
	 * This field provides ID of the person who administering the pharmaceutical/treatment.
	 * @param strIDNumber Refers to the coded ID according to a user-defined table
	 * @param objFamilyName Specifies the surname of a person.
	 * @param strGivenName Specifies First name.
	 * @param strSecondAndFurtherGivenNamesOrInitialsThereof Specifies multiple middle names that may be included by 
	 * 														   separating them with spaces.
	 * @param strSuffix Used to specify a name suffix (e.g., Jr. or III).
	 * @param strPrefix Used to specify a name prefix (e.g., Dr.).
	 * @param strSourceTable Used as the HL7 identifier for the user-defined table of values for this component. [Refer User-defined Table 0297 - CN ID.]
	 * @param objAssigningAuthority Specifies a unique identifier of the system (or organization or agency of department)
	 * 								  that creates the data. [Refer User-defined Table 0363 - Assigning authority]
	 * @param strNameTypeCode Specifies a code that represents the type of name. 
	 * @param strIdentifierCheckDigit Specifies part of the identifying number used in the sending application. 
	 * @param strCheckDigitScheme Specifies the code identifying the check digit scheme employed.[Refer HL7 Table 0061 - Check digit scheme].
	 * @param strIdentifierTypeCode Specifies A code corresponding to the type of identifier.[Refer HL7 Table 0203 - Identifier type].
	 * @param objAssigningFacility Specifies the place or location identifier where the identifier was first assigned to the person
	 * @param strNameRepresentationCode Provides an indication of the representation provided by the data item.  
	 * @param objNameContext Designates the context in which a name is used. [Refer User-defined Table 0448 ]
	 * @param strNameAssemblyOrder Specifies a code that represents the preferred display order of the components of this person name. Suggested values are G,F[Refer table 0444.]
	 * @param strEffectiveDate Specifies the first date, if known, on which the address is valid and active.
	 * @param strExpirationDate Specifies the last date, if known, on which the address is valid and active.
	 * @param strProfessionalSuffix Used to specify an abbreviation, or a string of abbreviations, denoting qualifications that support the person's profession, (e.g., licenses).
	 * @param objAssigningJurisdiction Specifies the geo-political body that assigned the identifier.
	 * @param objAssigningAgencyOrDepratment Specifies the agency or department that assigned the identifier
	 * @param strSecurityCheck Specifies the version code that may be assigned to the person identifier
	 * @param strSecurityCheckScheme Specifies the check digit scheme.
	 */ 
	public void addAdministeringProvider (String strIDNumber,FN objFamilyName,String strGivenName,String strSecondAndFurtherGivenNamesOrInitialsThereof,
			String 	strSuffix,String strPrefix,CWE objSourceTable,HD objAssigningAuthority,
			String strNameTypeCode,String strIdentifierCheckDigit,String strCheckDigitScheme,String strIdentifierTypeCode,
			HD objAssigningFacility,String strNameRepresentationCode,CWE objNameContext,
			String strNameAssemblyOrder, String strEffectiveDate,String strExpirationDate,String strProfessionalSuffix,
			CWE objAssigningJurisdiction,CWE objAssigningAgencyOrDepratment, String strSecurityCheck, String strSecurityCheckScheme)
	{
		XCN xcn  = (XCN)getDataElement(352);
		xcn.setIdNumber(strIDNumber);
		xcn.setFamilyName(objFamilyName);
		xcn.setGivenName(strGivenName);
		xcn.setSecondNameOrInitials(strSecondAndFurtherGivenNamesOrInitialsThereof);
		xcn.setSuffix(strSuffix);
		xcn.setPrefix(strPrefix);
 
		xcn.setSourceTable(objSourceTable);
		xcn.setAssigningAuthority(objAssigningAuthority);
		xcn.setNameTypeCode(strNameTypeCode);
		xcn.setIdentifierCheckDigit(strIdentifierCheckDigit);
		xcn.setCheckDigitScheme(strCheckDigitScheme);
		xcn.setIdentifierTypeCode(strIdentifierTypeCode);
		xcn.setAssigningFacility(objAssigningFacility);
		xcn.setNameRepresentationCode(strNameRepresentationCode);
		xcn.setNameContext(objNameContext);
 
		xcn.setNameAssemblyOrder(strNameAssemblyOrder);
		xcn.setEffectiveDate(strEffectiveDate);
		xcn.setExpirationDate(strExpirationDate);
		xcn.setProfessionalSuffix(strProfessionalSuffix);
		xcn.setAssigningJurisdiction(objAssigningJurisdiction);
		xcn.setAssigningAgencyOrDepartment(objAssigningAgencyOrDepratment); 
		xcn.setSecurityCheck(strSecurityCheck);
		xcn.setSecurityCheckScheme(strSecurityCheckScheme);
		addAdministeringProvider(xcn);

	} 

	/** 
	 * Add the Administering Provider.
	 * This field provides ID of the person who administering the pharmaceutical/treatment.
	 * @param objadministeringProvider Object of Administering Provider.
	 */ 
	public void addAdministeringProvider(XCN objadministeringProvider)
	{
		addDataType(352,objadministeringProvider);

	} 

	/** 
	 * Set the Administering Provider.
	 * This field provides ID of the person who administering the pharmaceutical/treatment.
	 * @param objadministeringProviderList List of Administering Provider.
	 */ 
	@SuppressWarnings("unchecked")
	public void setAdministeringProvider(ISingleCollection<XCN> objadministeringProviderList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objadministeringProviderList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(352,objCollection);
	}

	/**
	 * Add the Administration Notes.
	 * @param strIdentifier Specifies of characters (the code) that uniquely identifies the item being referenced. 
	 * @param strText Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction. 
	 * @param strNameOfCodingSystem Identifies the coding scheme being used in the identifier component.
	 * @param strAlternateIdentifier Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
	 * @param strAlternateText Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
	 * @param strNameOfAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component. 
	 * @param strCodingSystemVersionID A sequence of characters that uniquely identifies a second alternate code.
	 * @param strAlternateCodingSystemVersionId This component carries the version for the coding system identified by components 4-6.
	 * @param strOriginalText The text as seen and/or selected by the user who entered the data.
	 * @param strSecondAlternateIdentifier A sequence of characters that uniquely identifies a second alternate code.
	 * @param strSecondAlternateText The descriptive or textual name of the alternate identifier.
	 * @param strNameofSecondAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component.
	 * @param strSecondAlternateCodingSystemVersionID This component carries the version for the coding system identified by components 10-12.
	 * @param strCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
	 * @param strValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
	 * @param strValueSetVersionID This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
	 * @param strAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
	 * @param strAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
	 * @param strAlternateValueSetVersionID This component carries the version for the value set identified by CWE.18. The version is a date.
	 * @param strSecondAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
	 * @param strSecondAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
	 * @param strSecondAlternateValueSetVersionID This component carries the version for the value set identified by CWE.21. The version is a date.
	 */ 
	public void addAdministrationNotes(String strIdentifier,String strText,String strNameOfCodingSystem,
			String strAlternateIdentifier,String strAlternateText,String strNameOfAlternateCodingSystem, String strCodingSystemVersionID, String 				strAlternateCodingSystemVersionId,
			String strOriginalText, String  strSecondAlternateIdentifier, String strSecondAlternateText, 
			String strNameofSecondAlternateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, String strValueSetOID,
			String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID, String strAlternateValueSetVersionID,
			String  strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID, String strSecondAlternateValueSetVersionID)
	{
		CWE cwe  = (CWE)getDataElement(351);
		cwe.setIdentifier(strIdentifier);
		cwe.setText(strText);
		cwe.setNameOfCodingSystem(strNameOfCodingSystem);
		cwe.setAlternateIdentifier(strAlternateIdentifier);
		cwe.setAlternateText(strAlternateText);
		cwe.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem); 
		cwe.setCodingSystemVersionID(strCodingSystemVersionID);
		cwe.setAlternateCodingSystemVersionId(strAlternateCodingSystemVersionId);
		cwe.setOriginalText(strOriginalText);
		cwe.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cwe.setSecondAlternateText(strSecondAlternateText);
		cwe.setNameofSecondAlternateCodingSystem(strNameofSecondAlternateCodingSystem);
		cwe.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cwe.setCodingSystemOID(strCodingSystemOID);
		cwe.setValueSetOID(strValueSetOID);
		cwe.setValueSetVersionID(strValueSetVersionID);
		cwe.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cwe.setAlternateValueSetOID(strAlternateValueSetOID);
		cwe.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cwe.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cwe.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cwe.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID); 
		addAdministrationNotes(cwe);

	} 

	/** 
	 * Add the Administration Notes.
	 * @param objadministrationNotes Object of Administration Notes.
	 */ 
	public void addAdministrationNotes(CWE objadministrationNotes)
	{
		addDataType(351,objadministrationNotes);

	} 

	/** 
	 * Set the Administration Notes.
	 * @param objadministrationNotesList List of Administration Notes.
	 */ 
	@SuppressWarnings("unchecked")
	public void setAdministrationNotes(ISingleCollection<CWE> objadministrationNotesList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objadministrationNotesList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(351,objCollection);
	}

	/**
	 * Set the Administration Sub ID Counter.
	 * This field starts with 1 the first time that medication/treatment is administer for this order.
	 * Increments by one with each additional administration the medication/treatment.
	 * @param strAdministrationSub_IDCounter This field contains the String Value of Administration Sub-ID Counter 
	 */ 
	public void setAdministrationSub_IDCounter (String strAdministrationSub_IDCounter) 
	{
		NM administrationSub_IDCounter  = (NM)getDataElement(344);
		administrationSub_IDCounter.setValue(strAdministrationSub_IDCounter); 
		setAdministrationSub_IDCounter(administrationSub_IDCounter);

	} 

	/** 
	 * Set the Administration Sub ID Counter.
	 * This field starts with 1 the first time that medication/treatment is administer for this order.
	 * Increments by one with each additional administration the medication/treatment.
	 * @param objadministrationSub_IDCounter Object of Administration Sub ID Counter. 
	 */ 
	public void setAdministrationSub_IDCounter(NM objadministrationSub_IDCounter)
	{
		setDataType(344,objadministrationSub_IDCounter);

	}

	/**
	 * Set the Completion Status.
	 * @param strCompletionStatus This field contains the String Value of Completion Status 
	 */ 
	public void setCompletionStatus (String strCompletionStatus) 
	{
		ID completionStatus  = (ID)getDataElement(1223);
		completionStatus.setValue(strCompletionStatus); 
		setCompletionStatus(completionStatus);

	} 

	/** 
	 * Set the Completion Status.
	 * @param objcompletionStatus Object of Completion Status.
	 */ 
	public void setCompletionStatus(ID objcompletionStatus)
	{
		setDataType(1223,objcompletionStatus);

	}

	/**
	 * Set the Date/Time End of Administration.
	 * @param strTime Specifies a point in time using a 24-hour clock notation. 
	 */ 
	public void setDateTimeEndofAdministration (String strTime) 
	{
		DTM dateTimeEndofAdministration  = (DTM)getDataElement(346);
		dateTimeEndofAdministration.setValue(strTime);
		setDateTimeEndofAdministration(dateTimeEndofAdministration);

	} 

	/** 
	 * Set the Date/Time End of Administration.
	 * @param objdateTimeEndofAdministration Object of Date/Time End of Administration.
	 */ 
	public void setDateTimeEndofAdministration(DTM objdateTimeEndofAdministration)
	{
		setDataType(346,objdateTimeEndofAdministration);

	}

	/**
	 * Set the Date Time Start of Administration.
	 * @param strTime Specifies a point in time using a 24-hour clock notation. 
	 */ 
	public void setDateTimeStartofAdministration (String strTime) 
	{
		DTM dateTimeStartofAdministration  = (DTM)getDataElement(345);
		dateTimeStartofAdministration.setValue(strTime);
		setDateTimeStartofAdministration(dateTimeStartofAdministration);

	} 

	/** 
	 * Set the Date Time Start of Administration.
	 * @param objdateTimeStartofAdministration Object of Date Time Start of Administration.
	 */ 
	public void setDateTimeStartofAdministration(DTM objdateTimeStartofAdministration)
	{
		setDataType(345,objdateTimeStartofAdministration);

	}

	/**
	 * Set the Give Sub ID Counter.
	 * This field matches the RXA segment to its corresponding RXG segment.
	 * @param strGiveSub_IDCounter This field contains the String Value of Give Sub-ID Counter
	 */ 
	public void setGiveSub_IDCounter (String strGiveSub_IDCounter) 
	{
		NM giveSub_IDCounter  = (NM)getDataElement(342);
		giveSub_IDCounter.setValue(strGiveSub_IDCounter); 
		setGiveSub_IDCounter(giveSub_IDCounter);

	} 

	/** 
	 * Set the Give Sub ID Counter.
	 * This field matches the RXA segment to its corresponding RXG segment.
	 * @param objgiveSub_IDCounter Object of Give Sub ID Counter.
	 */ 
	public void setGiveSub_IDCounter(NM objgiveSub_IDCounter)
	{
		setDataType(342,objgiveSub_IDCounter);

	}

	/**
	 * Add the Indication.
	 * @param strIdentifier Specifies of characters (the code) that uniquely identifies the item being referenced. 
	 * @param strText Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction. 
	 * @param strNameOfCodingSystem Identifies the coding scheme being used in the identifier component.
	 * @param strAlternateIdentifier Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
	 * @param strAlternateText Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
	 * @param strNameOfAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component. 
	 * @param strCodingSystemVersionID A sequence of characters that uniquely identifies a second alternate code.
	 * @param strAlternateCodingSystemVersionId This component carries the version for the coding system identified by components 4-6.
	 * @param strOriginalText The text as seen and/or selected by the user who entered the data.
	 * @param strSecondAlternateIdentifier A sequence of characters that uniquely identifies a second alternate code.
	 * @param strSecondAlternateText The descriptive or textual name of the alternate identifier.
	 * @param strNameofSecondAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component.
	 * @param strSecondAlternateCodingSystemVersionID This component carries the version for the coding system identified by components 10-12.
	 * @param strCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
	 * @param strValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
	 * @param strValueSetVersionID This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
	 * @param strAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
	 * @param strAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
	 * @param strAlternateValueSetVersionID This component carries the version for the value set identified by CWE.18. The version is a date.
	 * @param strSecondAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
	 * @param strSecondAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
	 * @param strSecondAlternateValueSetVersionID This component carries the version for the value set identified by CWE.21. The version is a date.
	 */ 
	public void addIndication (String strIdentifier,String strText,String strNameOfCodingSystem,
			String strAlternateIdentifier,String strAlternateText,String strNameOfAlternateCodingSystem, String strCodingSystemVersionID, String 				strAlternateCodingSystemVersionId,
			String strOriginalText, String  strSecondAlternateIdentifier, String strSecondAlternateText, 
			String strNameofSecondAlternateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, String strValueSetOID,
			String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID, String strAlternateValueSetVersionID,
			String  strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID, String strSecondAlternateValueSetVersionID)
	{
		CWE cwe  = (CWE)getDataElement(1123);
		cwe.setIdentifier(strIdentifier);
		cwe.setText(strText);
		cwe.setNameOfCodingSystem(strNameOfCodingSystem);
		cwe.setAlternateIdentifier(strAlternateIdentifier);
		cwe.setAlternateText(strAlternateText);
		cwe.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem); 
		cwe.setCodingSystemVersionID(strCodingSystemVersionID);
		cwe.setAlternateCodingSystemVersionId(strAlternateCodingSystemVersionId);
		cwe.setOriginalText(strOriginalText);
		cwe.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cwe.setSecondAlternateText(strSecondAlternateText);
		cwe.setNameofSecondAlternateCodingSystem(strNameofSecondAlternateCodingSystem);
		cwe.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cwe.setCodingSystemOID(strCodingSystemOID);
		cwe.setValueSetOID(strValueSetOID);
		cwe.setValueSetVersionID(strValueSetVersionID);
		cwe.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cwe.setAlternateValueSetOID(strAlternateValueSetOID);
		cwe.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cwe.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cwe.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cwe.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID);
		addIndication(cwe);

	} 

	/** 
	 * Add the Indication.
	 * @param objindication Object of Indication.
	 */ 
	public void addIndication(CWE objindication)
	{
		addDataType(1123,objindication);

	} 

	/** 
	 * Set the Indication.
	 * @param objindicationList List of Indication.
	 */ 
	@SuppressWarnings("unchecked")
	public void setIndication(ISingleCollection<CWE> objindicationList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objindicationList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1123,objCollection);
	}

	/**
	 * Set the Pharmacy Order Type.
	 * This specify general category of pharmacy order which may be used to determine the processing path the order will take.
	 * @param strPharmacyOrderType String which to set as Pharmacy Order Type
	 */ 
	public void setPharmacyOrderType (String strPharmacyOrderType) 
	{
		ID pharmacyOrderType  = (ID)getDataElement(1699);
		pharmacyOrderType.setValue(strPharmacyOrderType); 
		setPharmacyOrderType(pharmacyOrderType);

	} 

	/** 
	 * Set the Pharmacy Order Type.
	 * This specify general category of pharmacy order which may be used to determine the processing path the order will take.
	 * @param objpharmacyOrderType Object of Pharmacy Order Type.
	 */ 
	public void setPharmacyOrderType(ID objpharmacyOrderType)
	{
		setDataType(1699,objpharmacyOrderType);

	}

	/**
	 * Add the Substance Expiration Date.
	 * @param strTime Specifies a point in time using a 24-hour clock notation. 
	 */ 
	public void addSubstanceExpirationDate (String strTime) 
	{
		DTM substanceExpirationDate  = (DTM)getDataElement(1130);
		substanceExpirationDate.setValue(strTime);
		addSubstanceExpirationDate(substanceExpirationDate);

	} 

	/** 
	 * Add the Substance Expiration Date.
	 * @param objsubstanceExpirationDate Object of Substance Expiration Date.
	 */ 
	public void addSubstanceExpirationDate(DTM objsubstanceExpirationDate)
	{
		addDataType(1130,objsubstanceExpirationDate);

	} 

	/** 
	 * Set the Substance Expiration Date.
	 * @param objsubstanceExpirationDateList List of Substance Expiration Date.
	 */ 
	@SuppressWarnings("unchecked")
	public void setSubstanceExpirationDate(ISingleCollection<DTM> objsubstanceExpirationDateList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objsubstanceExpirationDateList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1130,objCollection);
	}

	/**
	 * Add the Substance Lot Number.
	 * @param strSubstanceLotNumber String which to set as Substance Lot Number
	 */ 
	public void addSubstanceLotNumber (String strSubstanceLotNumber)  
	{
		ST substanceLotNumber  = (ST)getDataElement(1129);
		substanceLotNumber.setValue(strSubstanceLotNumber); 
		addSubstanceLotNumber(substanceLotNumber);

	} 

	/** 
	 * Add the Substance Lot Number.
	 * @param objsubstanceLotNumber Object of Substance Lot Number.
	 */ 
	public void addSubstanceLotNumber(ST objsubstanceLotNumber)
	{
		addDataType(1129,objsubstanceLotNumber);

	} 

	/** 
	 * Set the Substance Lot Number.
	 * @param objsubstanceLotNumberList List of Substance Lot Number.
	 */ 
	@SuppressWarnings("unchecked")
	public void setSubstanceLotNumber(ISingleCollection<ST> objsubstanceLotNumberList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objsubstanceLotNumberList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1129,objCollection);
	}

	/**
	 * Add the Substance Manufacturer Name.
	 * @param strIdentifier Specifies of characters (the code) that uniquely identifies the item being referenced. 
	 * @param strText Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction. 
	 * @param strNameOfCodingSystem Identifies the coding scheme being used in the identifier component.
	 * @param strAlternateIdentifier Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
	 * @param strAlternateText Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
	 * @param strNameOfAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component. 
	 * @param strCodingSystemVersionID A sequence of characters that uniquely identifies a second alternate code.
	 * @param strAlternateCodingSystemVersionId This component carries the version for the coding system identified by components 4-6.
	 * @param strOriginalText The text as seen and/or selected by the user who entered the data.
	 * @param strSecondAlternateIdentifier A sequence of characters that uniquely identifies a second alternate code.
	 * @param strSecondAlternateText The descriptive or textual name of the alternate identifier.
	 * @param strNameofSecondAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component.
	 * @param strSecondAlternateCodingSystemVersionID This component carries the version for the coding system identified by components 10-12.
	 * @param strCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
	 * @param strValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
	 * @param strValueSetVersionID This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
	 * @param strAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
	 * @param strAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
	 * @param strAlternateValueSetVersionID This component carries the version for the value set identified by CWE.18. The version is a date.
	 * @param strSecondAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
	 * @param strSecondAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
	 * @param strSecondAlternateValueSetVersionID This component carries the version for the value set identified by CWE.21. The version is a date.
	 */	
	public void addSubstanceManufacturerName(String strIdentifier,String strText,String strNameOfCodingSystem,
			String strAlternateIdentifier,String strAlternateText,String strNameOfAlternateCodingSystem, String strCodingSystemVersionID, String 				strAlternateCodingSystemVersionId,
			String strOriginalText, String  strSecondAlternateIdentifier, String strSecondAlternateText, 
			String strNameofSecondAlternateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, String strValueSetOID,
			String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID, String strAlternateValueSetVersionID,
			String  strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID, String strSecondAlternateValueSetVersionID)
	{
		CWE cwe  = (CWE)getDataElement(1131);
		cwe.setIdentifier(strIdentifier);
		cwe.setText(strText);
		cwe.setNameOfCodingSystem(strNameOfCodingSystem);
		cwe.setAlternateIdentifier(strAlternateIdentifier);
		cwe.setAlternateText(strAlternateText);
		cwe.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem); 
		cwe.setCodingSystemVersionID(strCodingSystemVersionID);
		cwe.setAlternateCodingSystemVersionId(strAlternateCodingSystemVersionId);
		cwe.setOriginalText(strOriginalText);
		cwe.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cwe.setSecondAlternateText(strSecondAlternateText);
		cwe.setNameofSecondAlternateCodingSystem(strNameofSecondAlternateCodingSystem);
		cwe.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cwe.setCodingSystemOID(strCodingSystemOID);
		cwe.setValueSetOID(strValueSetOID);
		cwe.setValueSetVersionID(strValueSetVersionID);
		cwe.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cwe.setAlternateValueSetOID(strAlternateValueSetOID);
		cwe.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cwe.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cwe.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cwe.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID);
		addSubstanceManufacturerName(cwe);
	}

	/**
	 * Add the Substance Manufacturer Name.
	 * @param substanceManufacturerName Object of Substance Manufacturer Name.
	 */
	public void addSubstanceManufacturerName(CWE substanceManufacturerName)
	{
		addDataType(1131,substanceManufacturerName);
	}

	/**
	 * Set the Substance Manufacturer Name.
	 * @param substanceManufacturerNameList List of Substance Manufacturer Name.
	 */
	@SuppressWarnings("unchecked")
	public void setSubstanceManufacturerName(ISingleCollection<CWE> substanceManufacturerNameList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)substanceManufacturerNameList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1131,objCollection);
	}

	/**
	 * Add the Substance Treatment Refusal Reason.
	 * @param strIdentifier Specifies of characters (the code) that uniquely identifies the item being referenced. 
	 * @param strText Specifies The descriptive or textual name of the identifier, e.g., myocardial infarction. 
	 * @param strNameOfCodingSystem Identifies the coding scheme being used in the identifier component.
	 * @param strAlternateIdentifier Specifies an alternate sequence of characters (the code) that uniquely identifies the item being referenced.
	 * @param strAlternateText Specifies the descriptive or textual name of the alternate identifier. See usage note in section introduction.
	 * @param strNameOfAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component. 
	 * @param strCodingSystemVersionID A sequence of characters that uniquely identifies a second alternate code.
	 * @param strAlternateCodingSystemVersionId This component carries the version for the coding system identified by components 4-6.
	 * @param strOriginalText The text as seen and/or selected by the user who entered the data.
	 * @param strSecondAlternateIdentifier A sequence of characters that uniquely identifies a second alternate code.
	 * @param strSecondAlternateText The descriptive or textual name of the alternate identifier.
	 * @param strNameofSecondAlternateCodingSystem Identifies the coding scheme being used in the alternate identifier component.
	 * @param strSecondAlternateCodingSystemVersionID This component carries the version for the coding system identified by components 10-12.
	 * @param strCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.3.
	 * @param strValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.1 is obtained.
	 * @param strValueSetVersionID This component carries the version for the value set identified by CWE.15. The version is a date. The date is the date/time that the value set being used was published.
	 * @param strAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.6.
	 * @param strAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.4 is obtained.
	 * @param strAlternateValueSetVersionID This component carries the version for the value set identified by CWE.18. The version is a date.
	 * @param strSecondAlternateCodingSystemOID This component contains the ISO Object Identifier (OID) for the coding system or value set named in CWE.12.
	 * @param strSecondAlternateValueSetOID This component contains the ISO Object Identifier (OID) to allow identification of the value set from which the value in CWE.10 is obtained.
	 * @param strSecondAlternateValueSetVersionID This component carries the version for the value set identified by CWE.21. The version is a date.
	 */ 
	public void addSubstanceTreatmentRefusalReason  (String strIdentifier,String strText,String strNameOfCodingSystem,
			String strAlternateIdentifier,String strAlternateText,String strNameOfAlternateCodingSystem, String strCodingSystemVersionID, String 				strAlternateCodingSystemVersionId,
			String strOriginalText, String  strSecondAlternateIdentifier, String strSecondAlternateText, 
			String strNameofSecondAlternateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, String strValueSetOID,
			String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID, String strAlternateValueSetVersionID,
			String  strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID, String strSecondAlternateValueSetVersionID)
	{
		CWE cwe  = (CWE)getDataElement(1136);
		cwe.setIdentifier(strIdentifier);
		cwe.setText(strText);
		cwe.setNameOfCodingSystem(strNameOfCodingSystem);
		cwe.setAlternateIdentifier(strAlternateIdentifier);
		cwe.setAlternateText(strAlternateText);
		cwe.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem); 
		cwe.setCodingSystemVersionID(strCodingSystemVersionID);
		cwe.setAlternateCodingSystemVersionId(strAlternateCodingSystemVersionId);
		cwe.setOriginalText(strOriginalText);
		cwe.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cwe.setSecondAlternateText(strSecondAlternateText);
		cwe.setNameofSecondAlternateCodingSystem(strNameofSecondAlternateCodingSystem);
		cwe.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cwe.setCodingSystemOID(strCodingSystemOID);
		cwe.setValueSetOID(strValueSetOID);
		cwe.setValueSetVersionID(strValueSetVersionID);
		cwe.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cwe.setAlternateValueSetOID(strAlternateValueSetOID);
		cwe.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cwe.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cwe.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cwe.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID);
		addSubstanceTreatmentRefusalReason(cwe);

	} 

	/** 
	 * Add the Substance Treatment Refusal Reason.
	 * @param objsubstanceTreatmentRefusalReason Object of Substance Treatment Refusal Reason.
	 */ 
	public void addSubstanceTreatmentRefusalReason(CWE objsubstanceTreatmentRefusalReason)
	{
		addDataType(1136,objsubstanceTreatmentRefusalReason);

	} 

	/** 
	 * Set the Substance Treatment Refusal Reason.
	 * @param objsubstanceTreatmentRefusalReasonList List of Substance Treatment Refusal Reason.
	 */ 
	@SuppressWarnings("unchecked")
	public void setSubstanceTreatmentRefusalReason(ISingleCollection<CWE> objsubstanceTreatmentRefusalReasonList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objsubstanceTreatmentRefusalReasonList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1136,objCollection);
	}

	/**
	 * Set the System Entry Date Time.
	 * This field Date/time information is entered into the source system.
	 * @param strTime Specifies a point in time using a 24-hour clock notation. 
	 */ 
	public void setSystemEntryDateTime (String strTime) 
	{
		DTM systemEntryDateTime  = (DTM)getDataElement(1225);
		systemEntryDateTime.setValue(strTime);
		setSystemEntryDateTime(systemEntryDateTime);

	} 

	/** 
	 * Set the System Entry Date Time.
	 * This field Date/time information is entered into the source system.
	 * @param objsystemEntryDateTime Object of System Entry Date Time.
	 */ 
	public void setSystemEntryDateTime(DTM objsystemEntryDateTime)
	{
		setDataType(1225,objsystemEntryDateTime);

	}
	
	/**
	 * Set the Administered-at Address.
	 * This field specifies the address of the location where the drug or treatment was administered.
	 * @param objStreetAddress Specifies the street address.
	 * @param strOtherDesignation Specifies the Second line of address. 
	 * @param strCity The city, or district or place where the addressee is located. 
	 * @param strStateOrProvince Specifies the state or province where the addressee is located.
	 * @param strZipOrPostalCode Specifies the zip or postal code where the addressee is located. 
	 * @param strCountry Specifies the country where the addressee is located.
	 * @param strAddressType Specifies the kind or type of address.
	 * @param strOtherGeographicDesignation Specifies any other geographic designation. 
	 * @param objCountyParishCode Specifies a code that represents the county in which the specified address resides. 
	 * @param objCensusTract Specifies a code that represents the census tract in which the specified address resides. 
	 * @param strAddressRepresentationCode Specifies representations of the same name/address Suggested values are I,A,P [Refer table 0465]
	 * @param objEffectiveDate It is The first date, if known, on which the address is valid and active.
	 * @param objExpirationDate It is The last date, if known, on which the address is valid and active.
	 * @param objExpirationReason indicates why this address was marked as ended.
	 * @param strTemporaryIndicator indicates whether address is considered temporary .
	 * @param strBadAddressIndicator indicates whether it is possible to contact the owning entity.
	 * @param strAddressUsage indicates how the address is intended to be used.
	 * @param strAddressee indicates the name of the person whose address is intended to be used.
	 * @param strComment indicated descriptive information
	 * @param strPreferenceOrder preference order
	 * @param objProtectionCode indicates that an address need to be protected
	 * @param objAdressIdentifier indicates a unique identifier for address
	 */ 
	public void setAdministeredAtAddress(SAD objStreetAddress,String strOtherDesignation,String strCity,
			String strStateOrProvince,String strZipOrPostalCode,String strCountry,String strAddressType,
			String strOtherGeographicDesignation,CWE objCountyParishCode,CWE objCensusTract,
			String strAddressRepresentationCode,DTM objEffectiveDate,
			DTM objExpirationDate, CWE objEXpirationReason, String strTemporaryIndicator,
			String strBadAddressIndicator, String strAddressUsage, String strAddressee, String strComment,
			String strPreferenceOrder, CWE objProtectionCode, EI objAddressIdentifier)
	{
		XAD xad = (XAD)getDataElement(2265);
		xad.setStreetAddress(objStreetAddress);
		xad.setOtherDesignation(strOtherDesignation);
		xad.setCity(strCity);
		xad.setStateOrProvince(strStateOrProvince);
		xad.setZipOrPostalCode(strZipOrPostalCode);
		xad.setCountry(strCountry);
		xad.setAddressType(strAddressType);
		xad.setOtherGeographicDesignation(strOtherGeographicDesignation);
		xad.setCountyParishCode(objCountyParishCode);
		xad.setCensusTract(objCensusTract);
		xad.setAddressRepresentationCode(strAddressRepresentationCode);
 
		xad.setEffectiveDate(objEffectiveDate);
		xad.setExpirationDate(objExpirationDate); 
		xad.setExpirationReason(objEXpirationReason);
		xad.setTemporaryIndicator(strTemporaryIndicator);
		xad.setBadAddressIndicator(strBadAddressIndicator);
		xad.setAddressUsage(strAddressUsage);
		xad.setAddressee(strAddressee);
		xad.setComment(strComment);
		xad.setPreferenceOrder(strPreferenceOrder);
		xad.setProtectionCode(objProtectionCode);
		xad.setAddressIdentifier(objAddressIdentifier); 
		setAdministeredAtAddress(xad);

	} 

	/** 
	 * Set the Administered-at Address.
	 * This field specifies the address of the location where the drug or treatment was administered.
	 * @param objAdministeredAtAddress Object of Administered-at Address.
	 */ 
	public void setAdministeredAtAddress(XAD objAdministeredAtAddress)
	{
		setDataType(2265,objAdministeredAtAddress);

	}
	
	/**
	 * Set the Administer-at.
	 * This field specify the location of the patient to whom the pharmaceutical substance is to be delivered.
	 * @param strPointOfCare Specifies the code for the point where patient care is administered.
	 * @param strRoom Specifies the code for the patient's room. 
	 * @param strBed Specifies the code for the patient's bed. 
	 * @param objFacility Specifies to site interpretation but generally describes 
	 * 							the highest level physical designation of an institution, 
	 * 							medical center or enterprise. 
	 * @param strLocationStatus Specifies the code for the status or availability of the location. 
	 * @param strPersonLocationType Specifies the categorization of the person's location defined by 
	 * 									facility, building, floor, point of care, room or bed. 
	 * @param strBuilding Specifies code for the building where the person is located. 
	 * @param strFloor Specifies the code for the floor where the person is located.
	 * @param strLocationDescription Specifies describes the location in free text.
	 * @param objComprehensiveLocationIdentifier Specifies represents the physical location as 
	 *													a whole without regard for the individual components. 
	 * @param objAssigningAuthorityForLocation Specifies the entity that creates the data for the individual physical location components. 
	 */ 
	public void setAdministerAt (HD objPointOfCare,HD objRoom,HD objBed,HD objFacility,
			String strLocationStatus,String strPersonLocationType,String strBuilding,String strFloor,
			String strLocationDescription,EI objComprehensiveLocationIdentifier,HD objAssigningAuthorityForLocation
	)
	{
		PL AdministerAt  = (PL)getDataElement(2264);
		AdministerAt.setPointOfCare(objPointOfCare);
		AdministerAt.setRoom(objRoom);
		AdministerAt.setBed(objBed);
		AdministerAt.setFacility(objFacility);
		AdministerAt.setLocationStatus(strLocationStatus);
		AdministerAt.setPersonLocationType(strPersonLocationType);
		AdministerAt.setBuilding(strBuilding);
		AdministerAt.setFloor(strFloor);
		AdministerAt.setLocationDescription(strLocationDescription);
		AdministerAt.setComprehensiveLocationIdentifier(objComprehensiveLocationIdentifier);
		AdministerAt.setAssigningAuthorityForLocation(objAssigningAuthorityForLocation); 
		setAdministerAt(AdministerAt);

	} 

	/** 
	 * Set the Administer-at.
	 * This field specify the location of the patient to whom the pharmaceutical substance is to be delivered.
	 * @param objAdministerAt Object of Administer-at.
	 */ 
	public void setAdministerAt(PL objAdministerAt)
	{
		setDataType(2264,objAdministerAt);

	}
	
	/**
	 * Add the Administered Tag Identifier.
	 * @param strEntityIdentifier Specifies defined by a hierarchic designator, represented by components 2 through 4.
	 * 								[Reference Section 2.A.33, "HD - hierarchic designator".] 
	 * @param strNamespaceId Specifies  the HL7 identifier for the user-defined table of values for this component.
	 * 						   [Refer to User-defined Table 0363 - Assigning authority] 	 
	 * @param strUniversalId Specifies string formatted according to the scheme defined by the component, 
	 * 							<universal ID type> (UID type). 
	 * @param strUniversalIdType Specifies  the interpretation of the second component of the HD. 
	 */ 
	public void addAdministeredTagIdentifier (String strEntityIdentifier,String strNamespaceId,
			String strUniversalId,String strUniversalIdType)
	{
		EI AdministeredTagIdentifier  = (EI)getDataElement(3396);
		AdministeredTagIdentifier.setEntityIdentifier(strEntityIdentifier);
		AdministeredTagIdentifier.setNamespaceId(strNamespaceId);
		AdministeredTagIdentifier.setUniversalId(strUniversalId);
		AdministeredTagIdentifier.setUniversalIdType(strUniversalIdType); 
		addAdministeredTagIdentifier(AdministeredTagIdentifier);

	} 

	/** 
	 * Add the Administered Tag Identifier.
	 * @param objAdministeredTagIdentifier Object of Administered Tag Identifier. 
	 */ 
	public void addAdministeredTagIdentifier(EI objAdministeredTagIdentifier)
	{
		addDataType(3396,objAdministeredTagIdentifier);

	} 

	/** 
	 * Set the Administered Tag Identifier.
	 * @param objAdministeredTagIdentifierList List of Administered Tag Identifier. 
	 */ 
	@SuppressWarnings("unchecked")
	public void setAdministeredTagIdentifier(ISingleCollection<EI> objAdministeredTagIdentifierList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objAdministeredTagIdentifierList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(3396,objCollection);
	}

	/**
	 * Validates HL7 Message objects .
	 * Validate method checks for validation each and every segments in side the Message object against specified message Structure. 
	 * Validation chcecks include optionality of segment or group.
	 * It also verifies the number of times segment or group is repeated in message.
	 * e.g 
	 * {PSH} while parsing PSH segment validate method will check for its mandatory presence.
	 * [PSH] in this case validate will throw exception if one tries to enter more than one PSH segment.
	 * @return boolean - true or false.
	 * @throws InvalidSegmentException Throws when Segment Validation fails.
	 */
	public boolean validate() throws InvalidSegmentException
	{
		/*
		 * Give Sub-ID Counter,Administration Sub-ID Counter,Date/Time Start of Administration,
		 * Date/Time End of Administration,Administered Code,Administered Amount are required fields.
		 */
		try
		{
			super.validate();

			return true;
		}
		catch(FieldMissingException ex)
		{
			throw new InvalidSegmentException(enumSegments.getValue(),ex);
		}
		//Implementation for following components is remaining.
		/*RXA -7 is conditionalbecause it is required if the administered amount code does not imply units.  
		 * This field must be in simple units that reflect the actual quantity of the substance administered.
		 *   It does not include compound units.
		 *   RXA-11 Administered-at Location   &  RXA -12 Administered Per (Time Unit) are also conditional field.    
		 * 
		 */
	}
}