/*******************************************************************************
 *  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.AUI;
import cdac.medinfo.sdk.hl7282.baselibs.CP;
import cdac.medinfo.sdk.hl7282.baselibs.CWE;
import cdac.medinfo.sdk.hl7282.baselibs.CX;
import cdac.medinfo.sdk.hl7282.baselibs.DT;
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.MO;
import cdac.medinfo.sdk.hl7282.baselibs.NM;
import cdac.medinfo.sdk.hl7282.baselibs.SAD;
import cdac.medinfo.sdk.hl7282.baselibs.SI;
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.baselibs.XON;
import cdac.medinfo.sdk.hl7282.baselibs.XPN;
import cdac.medinfo.sdk.hl7282.baselibs.XTN;
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;

/**
 * IN1 - Insurance Segment<p>
 * The IN1 segment contains insurance policy coverage information necessary to produce properly pro rated and patient
 * and insurance bills.
 * <p>Represents an HL7 IN1 message segment. 
 * This segment has the following fields:</p><p>
 * IN1-1: Set ID - IN1 (SI)<b>Required</b><br> 
 * IN1-2: Health Plan ID (CWE)<b>Required</b><br> 
 * IN1-3: Insurance Company ID (CX)<b>Required</b><br> 
 * IN1-4: Insurance Company Name (XON)<b>Optional</b><br> 
 * IN1-5: Insurance Company Address (XAD)<b>Optional</b><br> 
 * IN1-6: Insurance Co Contact Person (XPN)<b>Optional</b><br> 
 * IN1-7: Insurance Co Phone Number (XTN)<b>Optional</b><br> 
 * IN1-8: Group Number (ST)<b>Optional</b><br> 
 * IN1-9: Group Name (XON)<b>Optional</b><br> 
 * IN1-10: Insured's Group Emp ID (CX)<b>Optional</b><br> 
 * IN1-11: Insured's Group Emp Name (XON)<b>Optional</b><br> 
 * IN1-12: Plan Effective Date (DT)<b>Optional</b><br> 
 * IN1-13: Plan Expiration Date (DT)<b>Optional</b><br> 
 * IN1-14: Authorization Information (AUI)<b>Optional</b><br> 
 * IN1-15: Plan Type (CWE)<b>Optional</b><br> 
 * IN1-16: Name Of Insured (XPN)<b>Optional</b><br> 
 * IN1-17: Insured's Relationship To Patient (CWE)<b>Optional</b><br> 
 * IN1-18: Insured's Date Of Birth (DTM)<b>Optional</b><br> 
 * IN1-19: Insured's Address (XAD)<b>Optional</b><br> 
 * IN1-20: Assignment Of Benefits (CWE)<b>Optional</b><br> 
 * IN1-21: Coordination Of Benefits (CWE)<b>Optional</b><br> 
 * IN1-22: Coord Of Ben. Priority (ST)<b>Optional</b><br> 
 * IN1-23: Notice Of Admission Flag (ID)<b>Optional</b><br> 
 * IN1-24: Notice Of Admission Date (DT)<b>Optional</b><br> 
 * IN1-25: Report Of Eligibility Flag (ID)<b>Optional</b><br> 
 * IN1-26: Report Of Eligibility Date (DT)<b>Optional</b><br> 
 * IN1-27: Release Information Code (CWE)<b>Optional</b><br> 
 * IN1-28: Pre-Admit Cert (PAC) (ST)<br> 
 * IN1-29: Verification Date/Time (DTM)<b>Optional</b><br> 
 * IN1-30: Verification By (XCN)<b>Optional</b><br> 
 * IN1-31: Type Of Agreement Code (CWE)<b>Optional</b><br> 
 * IN1-32: Billing Status (CWE)<b>Optional</b><br> 
 * IN1-33: Lifetime Reserve Days (NM)<b>Optional</b><br> 
 * IN1-34: Delay Before L.R. Day (NM)<b>Optional</b><br> 
 * IN1-35: Company Plan Code (CWE)<b>Optional</b><br> 
 * IN1-36: Policy Number (ST)<b>Optional</b><br> 
 * IN1-37: Policy Deductible (CP)<b>Optional</b><br> 
 * IN1-38: Policy Limit - Amount (CP)<b>Withdrawn</b><br> 
 * IN1-39: Policy Limit - Days (NM)<b>Optional</b><br> 
 * IN1-40: Room Rate - Semi-Private (CP)<b>Withdrawn</b><br> 
 * IN1-41: Room Rate - Private (CP)<b>Withdrawn</b><br> 
 * IN1-42: Insured's Employment Status (CWE)<b>Optional</b><br> 
 * IN1-43: Insured's Administrative Sex (CWE)<b>Optional</b><br> 
 * IN1-44: Insured's Employer's Address (XAD)<b>Optional</b><br> 
 * IN1-45: Verification Status (ST)<b>Optional</b><br> 
 * IN1-46: Prior Insurance Plan ID (CWE)<b>Optional</b><br> 
 * IN1-47: Coverage Type (CWE)<b>Optional</b><br> 
 * IN1-48: Handicap (CWE)<b>Optional</b><br> 
 * IN1-49: Insured's ID Number (CX)<b>Optional</b><br> 
 * IN1-50: Signature Code (CWE)<b>Optional</b><br> 
 * IN1-51: Signature Code Date (DT)<b>Optional</b><br> 
 * IN1-52: Insured_s Birth Place (ST)<b>Optional</b><br> 
 * IN1-53: VIP Indicator (CWE)<b>Optional</b><br>
 * IN1-54: External Health Plan Identifiers (CX)<b>Optional</b><br> 
 * IN1-55: Insurance Action Code (ID)<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 IN1 extends Segment    
{

	

	/**
	 * Constructs the IN1 segment.
	 */
	public IN1()
	{super(EnumSegments.HL7_SEG_IN1);
	}

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

	/**
	 * Retrieves the Assignment Of Benefits.
	 * This field indicates whether the insured agreed to assign the insurance benefits to the healthcare provider or not. 
	 * @return CWE - assignmentOfBenefits
	 */
	public CWE getAssignmentOfBenefits() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(445);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Authorization Information.
	 * This field specify the authorization number or code be obtained prior to all 
	 * non-emergency admissions, and within 48 hours of an emergency admission.  
	 * @return AUI - authorizationInformation
	 */
	public AUI getAuthorizationInformation() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(439);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (AUI)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Billing Status.
	 * This field indicates whether the particular insurance has been billed and, if so, the type of bill. 
	 * @return CWE - billingStatus
	 */
	public CWE getBillingStatus()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(457);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Company Plan Code.
	 * This field contains optional information to further define the data in IN1-3 - Insurance Company ID.
	 * @return CWE - companyPlanCode
	 */
	public CWE getCompanyPlanCode() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(460);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Coordination Of Benefits.
	 * This field indicates whether this insurance works in conjunction with other insurance plans, or if it provides
	 *  independent coverage and payment of benefits regardless of other insurance that might be available to the patient.  
	 * @return CWE - coordOfBenefits
	 */
	public CWE getCoordinationOfBenefits()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(446);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Coord Of Ben Priority.
	 * This field contains priority sequence.
	 * @return ST - coordOfBenPriority
	 */
	public ST getCoordOfBenPriority() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(447);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ST)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Coverage Type.
	 * This field contains the coding structure that identify the type of insurance coverage, or what types of services are
	 * covered for the purposes of a billing system. 
	 * @return CWE - coverageType
	 */
	public CWE getCoverageType() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1227);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Delay Before LR Day.
	 * This field indicates the delay before lifetime reserve days.
	 * @return NM - delayBeforeLRDay
	 */
	public NM getDelayBeforeLRDay()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(459);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Group Name.
	 * This field contains the group name of the insured's insurance.
	 * @return ISingleCollection<XON> - groupName
	 */
	public ISingleCollection<XON> getGroupName() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(434);
		ISingleCollection<XON> objDataList = new SingleCollection<XON>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				XON objXON = (XON)objDataType;
				objDataList.add(objXON);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Group Number.
	 * This field contains the group number of the insured's insurance.
	 * @return ST - groupNumber
	 */
	public ST getGroupNumber() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(433);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ST)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Handicap.
	 * This field contains a code to describe the insured's disability. 
	 * @return CWE - handicap
	 */
	public CWE getHandicap() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(753);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Insurance Co Contact Person.
	 * This field contains the name of the person who should be contacted at
	 *  the insurance company.  Multiple names for the same contact person may be sent in this field. 
	 * @return ISingleCollection<XPN> - insuranceCoContactPerson
	 */
	public ISingleCollection<XPN> getInsuranceCoContactPerson()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(431);
		ISingleCollection<XPN> objDataList = new SingleCollection<XPN>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				XPN objXPN = (XPN)objDataType;
				objDataList.add(objXPN);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Insurance Company Addr.
	 * This field contains the address of the insurance company.  
	 * @return ISingleCollection<XAD> - insuranceCompanyAddr
	 */
	public ISingleCollection<XAD> getInsuranceCompanyAddr()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(430);
		ISingleCollection<XAD> objDataList = new SingleCollection<XAD>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				XAD objXAD = (XAD)objDataType;
				objDataList.add(objXAD);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Insurance Company ID.
	 * This field contains unique identifiers for the insurance company.  
	 * @return ISingleCollection<CX> - insuranceCompanyID
	 */
	public ISingleCollection<CX> getInsuranceCompanyID()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(428);
		ISingleCollection<CX> objDataList = new SingleCollection<CX>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CX objCX = (CX)objDataType;
				objDataList.add(objCX);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Insurance Company Name.
	 * This field contains the name of the insurance company.  
	 * @return ISingleCollection<XON> - insuranceCompanyName
	 */
	public ISingleCollection<XON> getInsuranceCompanyName() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(429);
		ISingleCollection<XON> objDataList = new SingleCollection<XON>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				XON objXON = (XON)objDataType;
				objDataList.add(objXON);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Insurance Co Phone Number.
	 * This field contains the phone number of the insurance company.  Multiple phone 
	 * numbers for the same insurance company may be sent in this field.
	 * @return ISingleCollection<XTN> - insuranceCoPhoneNumber
	 */
	public ISingleCollection<XTN> getInsuranceCoPhoneNumber()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(432);
		ISingleCollection<XTN> objDataList = new SingleCollection<XTN>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				XTN objXTN = (XTN)objDataType;
				objDataList.add(objXTN);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Health Plan ID.
	 * This field contains a unique identifier for the insurance plan.  
	 * @return CWE - insurancePlanID
	 */
	public CWE getHealthPlanID() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(368);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Insured Addr.
	 * This field contains the address of the insured person.  
	 * @return ISingleCollection<XAD> - insuredAddr
	 */
	public ISingleCollection<XAD> getInsuredAddr() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(444);
		ISingleCollection<XAD> objDataList = new SingleCollection<XAD>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				XAD objXAD = (XAD)objDataType;
				objDataList.add(objXAD);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Insured Administrative Sex.
	 * This field contains the gender of the insured. 
	 * @return CWE - insuredAdministrativeSex
	 */
	public CWE getInsuredAdministrativeSex() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(468);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Insured Birth Place.
	 * This field contains the description of the insured's birth place.
	 * @return ST - insuredBirthPlace
	 */
	public ST getInsuredBirthPlace() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1899);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ST)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Insured DOB.
	 * This field contains the date of birth of the insured.
	 * @return DTM - insuredDOB
	 */
	public DTM getInsuredDOB()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(443);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DTM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Insured Employer Addr.
	 * This field contains the address of the insured employee's employer.  
	 * @return ISingleCollection<XAD> - insuredEmployerAddr
	 */
	public ISingleCollection<XAD> getInsuredEmployerAddr() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(469);
		ISingleCollection<XAD> objDataList = new SingleCollection<XAD>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				XAD objXAD = (XAD)objDataType;
				objDataList.add(objXAD);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Insured Employment Status.
	 * This field holds the employment status of the insured.
	 * @return CWE - insuredEmploymentStatus
	 */
	public CWE getInsuredEmploymentStatus() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(467);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Insured Group Emp ID.
	 * This field holds the group employer ID for the insured's insurance.  
	 * @return ISingleCollection<CX> - insuredGroupEmpID
	 */
	public ISingleCollection<CX> getInsuredGroupEmpID() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(435);
		ISingleCollection<CX> objDataList = new SingleCollection<CX>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CX objCX = (CX)objDataType;
				objDataList.add(objCX);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Insured Group Emp Name.
	 * This field contains the name of the employer that provides the employee's insurance. 
	 * @return ISingleCollection<XON> - insuredGroupEmpName
	 */
	public ISingleCollection<XON> getInsuredGroupEmpName() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(436);
		ISingleCollection<XON> objDataList = new SingleCollection<XON>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				XON objXON = (XON)objDataType;
				objDataList.add(objXON);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Insured ID Number.
	 * This field data element contains a healthcare institution's identifiers for the insured.
	 * @return ISingleCollection<CX> - insuredIDNumber
	 */
	public ISingleCollection<CX> getInsuredIDNumber() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1230);
		ISingleCollection<CX> objDataList = new SingleCollection<CX>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CX objCX = (CX)objDataType;
				objDataList.add(objCX);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Insured Relationship To Patient.
	 * This field indicates the insured's relationship to the patient.  
	 * @return CWE - insuredRelationshipToPatient
	 */
	public CWE getInsuredRelationshipToPatient()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(442);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Lifetime Reserve Days.
	 * This field contains the number of days left for a certain
	 *  service to be provided or covered under an insurance policy.
	 * @return NM - lifetimeReserveDays
	 */
	public NM getLifetimeReserveDays()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(458);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Name Of Insured.
	 * This field contains the name of the insured person.  
	 * @return ISingleCollection<XPN> - nameOfInsured
	 */
	public ISingleCollection<XPN> getNameOfInsured() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(441);
		ISingleCollection<XPN> objDataList = new SingleCollection<XPN>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				XPN objXPN = (XPN)objDataType;
				objDataList.add(objXPN);
			}
		}

		return objDataList;
	}

	/**
	 * Retrieves the Notice Of Admission Date.
	 * This field indicates the date that it is send.
	 * @return DT - noticeOfAdmissionDate
	 */
	public DT getNoticeOfAdmissionDate() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(449);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DT)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Notice Of Admission Flag.
	 * This field indicates whether the insurance company 
	 * requires a written notice of admission from the healthcare provider or not.
	 * @return ID - noticeOfAdmissionFlag
	 */
	public ID getNoticeOfAdmissionFlag() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(448);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Plan Effective Date.
	 * This field contains the date that the insurance goes into effect.
	 * @return DT - planEffectiveDate
	 */
	public DT getPlanEffectiveDate()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(437);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DT)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Plan Expiration Date.
	 * This indicates the last date of service that the insurance will cover or be responsible for.
	 * @return DT - planExpirationDate
	 */
	public DT getPlanExpirationDate()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(438);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DT)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Plan Type.
	 * This contains the coding structure that identify the various plan types.
	 * @return CWE - planType
	 */
	public CWE getPlanType() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(440);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Policy Deductible.
	 * This field contains the amount specify by the insurance plan that 
	 * is the responsibility of the guarantor (i.e. deductible, excess, etc.).
	 * @return CP - policyDeductible
	 */
	public CP getPolicyDeductible() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(462);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CP)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Policy Limit Days.
	 * This field contains the maximum number of days that the insurance policy will cover.
	 * @return NM - policyLimitDays
	 */
	public NM getPolicyLimitDays() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(464);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Policy Number.
	 * This field contains the individual policy number of the insured to uniquely identify this patient's plan.
	 * @return ST - policyNumber
	 */
	public ST getPolicyNumber()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(461);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ST)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Pre Admit Cert.
	 * This field contains the pre admission certification code.  
	 * @return ST - preAdmitCert
	 */
	public ST getPreAdmitCert() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(453);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ST)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Prior Insurance Plan ID.
	 * This field uniquely identify the prior insurance plan when the plan ID changes.  
	 * @return CWE - priorInsurancePlanID
	 */
	public CWE getPriorInsurancePlanID() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(471);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Release Information Code.
	 * This field indicates whether the healthcare provider
	 * can release information about the patient, and what information can be released.  
	 * @return CWE - releaseInformationCode
	 */
	public CWE getReleaseInformationCode() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(452);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Report Of Eligibility Date.
	 * This field indicates whether a report of eligibility (ROE) is received, and
	 *  also indicates the date that it is received.
	 * @return DT - reportOfEligibilityDate
	 */
	public DT getReportOfEligibilityDate() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(451);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DT)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Report Of Eligibility Flag.
	 * This field indicates whether this insurance carrier sends a report
	 *  that indicates that the patient is eligible for benefits and whether it identifies those benefits. 
	 * @return ID - reportOfEligibilityFlag
	 */
	public ID getReportOfEligibilityFlag() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(450);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Set ID IN1.
	 * This field contains the number that identify this transaction.   
	 * @return SI - setID_IN1
	 */
	public SI getSetID_IN1() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(426);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (SI)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Signature Code.
	 * This field contains the code to indicate how the patient/subscriber authorization signature was 
	 * obtained and how it is being retained by the provider.  
	 * @return CWE - signatureCode
	 */
	public CWE getSignatureCode()
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1854);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Signature Code Date.
	 * This date the patient/subscriber authorization signature is obtained.
	 * @return DT - signatureCodeDate
	 */
	public DT getSignatureCodeDate() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1855);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DT)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Type Of Agreement Code.
	 * This field is used to further identify an insurance plan.
	 * @return CWE - typeOfAgreementCode
	 */
	public CWE getTypeOfAgreementCode() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(456);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Verification By.
	 * This field refers to the person who verify the benefits.  
	 * @return ISingleCollection<XCN> - verificationBy
	 */
	public ISingleCollection<XCN> getVerificationBy() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(455);
		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 Verification Date Time.
	 * This field contains the date/time that the 
	 * healthcare provider verified that the patient has the indicated benefits.
	 * @return DTM - verificationDateTime
	 */
	public DTM getVerificationDateTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(454);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DTM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Verification Status.
	 * This field contains the status of this patient's relationship with this insurance carrier.
	 * @return ST - verificationStatus
	 */
	public ST getVerificationStatus() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(470);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ST)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the VIP Indicator.
	 * This field identify the type of VIP for the insured.  
	 * @return CWE - vIPIndicator
	 */
	public CWE getVIPIndicator() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1852);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the External Health Plan Identifiers.
	 * This field contains the external Health Plan Identifiers that correspond to the internal Health Plan ID in IN1-2 – Health Plan ID.
	 * @return ISingleCollection<CX> - External Health Plan Identifiers
	 */
	public ISingleCollection<CX> getExternalHealthPlanIdentifiers() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(3292);
		ISingleCollection<CX> objDataList = new SingleCollection<CX>();
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CX objCX = (CX)objDataType;
				objDataList.add(objCX);
			}
		}

		return objDataList;
	}
	
	/**
	 * Retrieves the Insurance Action Code.
	 * The Insurance Action Code Defines the action to be taken for this insurance.  
	 * @return ID - InsuranceActionCode
	 */
	public ID getInsuranceActionCode() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(3335);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Set the Set ID IN1.
	 * This field contains the number that identify this transaction.  
	 * @param strSetID_IN1 This field contains the number that identifies transaction of IN1 segment.
	 */ 
	public void setSetID_IN1 (String strSetID_IN1)  
	{
		SI setID_IN1  = (SI)getDataElement(426);
		setID_IN1.setValue(strSetID_IN1); 
		setSetID_IN1(setID_IN1);

	} 

	/** Set the Set ID IN1.
	 * This field contains the number that identify this transaction.  
	 * @param objsetID_IN1 This field contains the number that identifies transaction of IN1 segment.
	 */ 
	public void setSetID_IN1(SI objsetID_IN1)
	{
		setDataType(426,objsetID_IN1);

	}
	/**
	 * Set the Health Plan ID.
	 * This field contains a unique identifier for the insurance plan.  
	 * @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 setHealthPlanID(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(368);
		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);
		setHealthPlanID(cwe);
	}

	/**
	 * Set the Health Plan ID.
	 * This field contains a unique identifier for the insurance plan.  
	 * @param insurancePlanID
	 */
	public void setHealthPlanID(CWE insurancePlanID)
	{
		setDataType(368,insurancePlanID);
	}

	/**
	 * Set the Insurance Company ID.
	 * This field contains unique identifiers for the insurance company.  
	 * @param strIDNumber Specifies the value of the identifier itself.
	 * @param strCheckDigit It is part of the identifying number used in the sending application. 
	 * @param strCheckDigitScheme Contains the code identifying the check digit scheme employed.
	 * 								Suggested Values NP,ISO,M10,M11.[Refer table No.0061].
	 * @param objAssigningAuthority The assigning authority is a unique name of the system (or organization or agency 
	 * 									or department) that creates the data. . 
	 * @param strIdentifierTypeCode Specifies a code corresponding to the type of identifier.In some cases, this code may be
	 * 								 used as a qualifier to the "Assigning authority" component.[Refer table No 0203]
	 * @param objAssigningFacility Specifies the place or location identifier where the identifier was first assigned 
	 * 									to the patient. 
	 * @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 objAssigningJurisdiction Specifies the geo-political body that assigned the identifier. 
	 * @param objAssigningAgencyOrDepartment Specifies agency or department that assigned the identifier. 
	 * @param strSecurityCheck is used to communicate the version code. 
	 * @param objSecurityCheckSCheme is used to transmit information intended to validate veracity of the supplied identifier
	 */
	public void addInsuranceCompanyID(String strIDNumber,String strCheckDigit, String strCheckDigitScheme, HD objAssigningAuthority,
			String strIdentifierTypeCode,HD objAssigningFacility,String strEffectiveDate,String strExpirationDate, 
			CWE objAssigningJurisdiction, CWE objAssigningAgencyOrDepartment, String strSecurityCheck, String strSecurityCheckScheme)
	{
		CX cx  = (CX)getDataElement(428);
		cx.setIdNumber(strIDNumber);
		cx.setCheckDigit(strCheckDigit);
		cx.setCheckDigitScheme(strCheckDigitScheme);
		cx.setAssigningAuthority(objAssigningAuthority);
		cx.setIdentifierTypeCode(strIdentifierTypeCode);
		cx.setAssigningFacility(objAssigningFacility);
		cx.setEffectiveDate(strEffectiveDate);
		cx.setExpirationDate(strExpirationDate);
		cx.setAssigningJurisdiction(objAssigningJurisdiction);
		cx.setAssigningAgencyOrDepartment(objAssigningAgencyOrDepartment); 
		cx.setSecurityCheck(strCheckDigit);
		cx.setSecurityCheckScheme(strSecurityCheckScheme);
		addInsuranceCompanyID(cx);
	}

	/**
	 * Set the Insurance Company ID.
	 * This field contains unique identifiers for the insurance company.  
	 * @param InsuranceCompanyID
	 */
	public void addInsuranceCompanyID(CX InsuranceCompanyID)
	{
		addDataType(428,InsuranceCompanyID);
	}

	/**
	 * Set the InsuranceCompanyID list.
	 * @param objInsuranceCompanyIDList List of InsuranceCompanyID
	 */	
	@SuppressWarnings("unchecked")
	public void setInsuranceCompanyID(ISingleCollection<CX> objInsuranceCompanyIDList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objInsuranceCompanyIDList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(428,objCollection);
	}

	/** 
	 * Set the Insurance Company Name.
	 * This field contains the name of the insurance company.  
	 * @param strOrganizationName Specifies name of the specified organization.
	 * @param strOrganizationNameTypeCode Specifies a code that represents the type of name i.e., legal name, display name.
	 * 										Suggested Values A,L,D,SL.[Refer to table No.0204]  
	 * @param objAssigningAuthority Specifies The assigning authority is a unique identifier of the system 
	 * 									(or organization or agency or department) that creates the data. 
	 * @param strIdentifierTypeCode Specifies a code corresponding to the type of identifier. 
	 * @param objAssigningFacility Specifies The place or location identifier where the identifier was first assigned to the person. 
	 * @param strNameRepresentationCode Specifies representations of the same name/address Suggested values are I,A,P [Refer table 0465] 
	 * @param strOrganizationIdentifier This component contains the sequence of characters (the code) that uniquely 
	 * 									  identifies the item being referenced by XON.1 Organization Name. 
	 * 									  This component replaces XON.3 ID Number as of v 2.5.
	 */
	public void addInsuranceCompanyName(String strOrganizationName, CWE objOrganizationNameTypeCode,
			 HD objAssigningAuthority,
			String strIdentifierTypeCode, HD objAssigningFacility, String strNameRepresentationCode,
			String strOrganizationIdentifier)
	{
		XON xon  = (XON)getDataElement(429);
		xon.setOrganizationName(strOrganizationName);
		xon.setOrganizationNameTypeCode(objOrganizationNameTypeCode);
		xon.setAssigningAuthority(objAssigningAuthority);
		xon.setIdentifierTypeCode(strIdentifierTypeCode);
		xon.setAssigningFacility(objAssigningFacility);
		xon.setNameRepresentationCode(strNameRepresentationCode);
		xon.setOrganizationIdentifier(strOrganizationIdentifier); 
		addInsuranceCompanyName(xon);
	}

	/** 
	 * Set the Insurance Company Name.
	 * This field contains the name of the insurance company.  
	 * @param InsuranceCompanyName
	 */
	public void addInsuranceCompanyName(XON InsuranceCompanyName)
	{
		addDataType(429,InsuranceCompanyName);
	}


	/**
	 * Set the InsuranceCompanyName list.
	 * @param objInsuranceCompanyNameList List of InsuranceCompanyName
	 */	
	@SuppressWarnings("unchecked")
	public void setInsuranceCompanyName(ISingleCollection<XON> objInsuranceCompanyNameList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objInsuranceCompanyNameList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(429,objCollection);
	}


	/** 
	 * Set the Insurance Company Addr.
	 * This field contains the address of the insurance company.  
	 * @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 addInsuranceCompanyAddr(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(430);
		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);
		addInsuranceCompanyAddr(xad);
	}

	/** 
	 * Set the Insurance Company Addr.
	 * This field contains the address of the insurance company.  
	 * @param InsuranceCompanyAddr
	 */
	public void addInsuranceCompanyAddr(XAD InsuranceCompanyAddr)
	{
		addDataType(430,InsuranceCompanyAddr);
	}

	/**
	 * Set the InsuranceCompanyAddr list.
	 * @param objInsuranceCompanyAddrList List of InsuranceCompanyAddr
	 */	
	@SuppressWarnings("unchecked")
	public void setInsuranceCompanyAddr(ISingleCollection<XAD> objInsuranceCompanyAddrList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objInsuranceCompanyAddrList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(430,objCollection);
	}

	/** 
	 * Set the Insurance Co Contact Person.
	 * This field contains the name of the person who should be contacted at
	 *  the insurance company.  Multiple names for the same contact person may be sent in this field. 
	 * @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 strNameTypeCode Specifies a code that represents the type of name. Suggested values are A,B,C,D,I,L,M,N,P,R,S,T,U...[Refer table 0200.]
	 * @param strNameRepresentationCode Specifies representations of the same name/address Suggested values are I,A,P [Refer table 0465] 
	 * @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 objEffectiveDate Specifies the first date, if known, on which the address is valid and active.
	 * @param objExpirationDate 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 strCalledBy Used to specify the called name.
	 */

	public void addInsuranceCoContactPerson(FN objFamilyName, String strGivenName, String strSecondAndFurtherGivenNamesOrInitialsThereof, 
			String strSuffix, String strPrefix, String strNameTypeCode, String strNameRepresentationCode, 
			CWE objNameContext, String strNameAssemblyOrder, DTM objEffectiveDate,
			DTM objExpirationDate, String strProfessionalSuffix, String strCalledBy)
	{
		XPN xpn = (XPN)getDataElement(431);
		xpn.setGivenName(strGivenName);
		xpn.setSecondNameOrInitials(strSecondAndFurtherGivenNamesOrInitialsThereof);
		xpn.setSuffix(strSuffix);
		xpn.setPrefix(strPrefix);
//		xpn.setDegree(strDegree);
		xpn.setNameTypeCode(strNameTypeCode);
		xpn.setNameRepresentationCode(strNameRepresentationCode);
		xpn.setNameContext(objNameContext);
//		xpn.setNameValidityRange(objNameValidityRange);
		xpn.setNameAssemblyOrder(strNameAssemblyOrder);
		xpn.setEffectiveDate(objEffectiveDate);
		xpn.setExpirationDate(objExpirationDate);
		xpn.setProfessionalSuffix(strProfessionalSuffix); 
		xpn.setCalledBy(strCalledBy);
		addInsuranceCoContactPerson(xpn);
	}

	/** 
	 * Set the Insurance Co Contact Person.
	 * This field contains the name of the person who should be contacted at
	 *  the insurance company.  Multiple names for the same contact person may be sent in this field. 
	 * @param InsuranceCoContactPerson
	 */

	public void addInsuranceCoContactPerson(XPN InsuranceCoContactPerson)

	{

		addDataType(431,InsuranceCoContactPerson);
	}

	/**
	 * Set the InsuranceCoContactPerson list.
	 * @param objInsuranceCoContactPersonList List of InsuranceCoContactPerson
	 */	
	@SuppressWarnings("unchecked")
	public void setInsuranceCoContactPerson(ISingleCollection<XPN> objInsuranceCoContactPersonList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objInsuranceCoContactPersonList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(431,objCollection);
	}


	/** 
	 * Set the Insurance Co Phone Number.
	 * This field contains the phone number of the insurance company.  Multiple phone 
	 * numbers for the same insurance company may be sent in this field.
	 * @param strTeleCommunicationUseCode Specifies a code that represents a specific use of a telecommunication number.
	 										Suggested values are PRN,ORN,WPN,VHN,ASN,EMR,NET,BPN  [Refer table 0201.]
	 * @param strTeleCommunicationEquipmentType Specifies a code that represents the type of telecommunication equipment.
	 * 											  Suggested values are PH,FX,MD,CP,BP,Internet,X.400,TDD,TTY  [Refer table 0202.]
	 * @param strCommuinicationAddress Specifies Email address.
	 * @param strCountryCode Specifies the Country code.
	 * @param strAreaCityCode Specifies the area /City Code.
	 * @param strLocalNumber Specifies an Local Number.
	 * @param strExtension Specifies an Extension.
	 * @param strAnyText Contains comments with respect to the telephone number.
	 * @param strExtensionPrefix Specifies the characters established within a company's 
	 * 							   internal telephone system network used as a prefix to the Extension component for internal dialing. 
	 * @param strSpeedDialCode Specifies The characters established within a 
	 * 							 company's internal telephone system used in place of the (external) telephone number.
	 * @param strUnformattedTelephoneNumber Specifies an expression of the telephone number as an unparsible string.
	 * @param strEffectiveStartDate Specifies start date.
	 * @param strExpirationDate Specifies expiration date.
	 * @param objExpirationReason Specifies reason why this contact is marked as ended.
	 * @param objProtectionCode Specifies reason why this information is sensitive or protected.
	 * @param objSharedTelecommunicationIdentifier Specifies a unique phone number phone telephone number or email-id.
	 * @param strPreferenceOrder Specifies the preference order for an entity..
	 */ 	
	public void addInsuranceCoPhoneNumber (String strTeleCommunicationUseCode,String strTeleCommunicationEquipmentType
			,String strCommuinicationAddress,String strCountryCode,String strAreaCityCode,String strLocalNumber,String strExtension,String strAnyText,
			String strExtensionPrefix,String strSpeedDialCode,String strUnformattedTelephoneNumber, String strEffectiveStartDate, String strExpirationDate,
			CWE objExpirationReason, CWE objProtectionCode, EI objSharedTelecommunicationIdentifier, String strPreferenceOrder)
	{
		XTN xtn  = (XTN)getDataElement(432);
//		xtn.setTelephoneNumber(strTelephoneNumber);
		xtn.setTelecommunicationUseCode(strTeleCommunicationUseCode);
		xtn.setTelecommunicationEquipmentType(strTeleCommunicationEquipmentType);
		xtn.setCommuinicationAddress(strCommuinicationAddress);
		xtn.setCountryCode(strCountryCode);
		xtn.setAreaCityCode(strAreaCityCode);
		xtn.setLocalNumber(strLocalNumber);
		xtn.setExtension(strExtension);
		xtn.setAnyText(strAnyText);
		xtn.setExtensionPrefix(strExtensionPrefix);
		xtn.setSpeedDialCode(strSpeedDialCode);
		xtn.setUnformattedTelephonenumber(strUnformattedTelephoneNumber); 
		xtn.setEffectiveStartDate(strEffectiveStartDate);
		xtn.setExpirationDate(strExpirationDate);
		xtn.setExpirationReason(objExpirationReason);
		xtn.setProtectionCode(objProtectionCode);
		xtn.setSharedTelecommunicationIdentifier(objSharedTelecommunicationIdentifier);
		xtn.setPreferenceOrder(strPreferenceOrder);
		addInsuranceCoPhoneNumber(xtn);
	}

	/** 
	 * Set the Insurance Co Phone Number.
	 * This field contains the phone number of the insurance company.  Multiple phone 
	 * numbers for the same insurance company may be sent in this field.
	 * @param InsuranceCoPhoneNumber
	 */	
	public void addInsuranceCoPhoneNumber(XTN InsuranceCoPhoneNumber)
	{
		addDataType(432,InsuranceCoPhoneNumber);
	}

	/**
	 * Set the InsuranceCoPhoneNumber list.
	 * @param objInsuranceCoPhoneNumberList List of InsuranceCoPhoneNumber
	 */	
	@SuppressWarnings("unchecked")
	public void setInsuranceCoPhoneNumber(ISingleCollection<XTN> objInsuranceCoPhoneNumberList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objInsuranceCoPhoneNumberList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(432,objCollection);
	}

	/** 
	 * Set the Group Number.
	 * This field contains the group number of the insured's insurance.
	 * @param strGroupNumber Specifies the group number of the insured's insurance.
	 */ 
	public void setGroupNumber (String strGroupNumber)  
	{
		ST groupNumber  = (ST)getDataElement(433);
		groupNumber.setValue(strGroupNumber); 
		setGroupNumber(groupNumber);

	} 

	/** Set the Group Number.
	 * This field contains the group number of the insured's insurance.
	 * @param objgroupNumber Specifies the group number of the insured's insurance.
	 */ 
	public void setGroupNumber(ST objgroupNumber)
	{
		setDataType(433,objgroupNumber);

	}
	/** 
	 * Set the Group Name.
	 * This field contains the group name of the insured's insurance.
	 * @param strOrganizationName Specifies name of the specified organization.
	 * @param strOrganizationNameTypeCode Specifies a code that represents the type of name i.e., legal name, display name.
	 * 										Suggested Values A,L,D,SL.[Refer to table No.0204]  
	 * @param objAssigningAuthority Specifies The assigning authority is a unique identifier of the system 
	 * 									(or organization or agency or department) that creates the data. 
	 * @param strIdentifierTypeCode Specifies a code corresponding to the type of identifier. 
	 * @param objAssigningFacility Specifies The place or location identifier where the identifier was first assigned to the person. 
	 * @param strNameRepresentationCode Specifies representations of the same name/address Suggested values are I,A,P [Refer table 0465] 
	 * @param strOrganizationIdentifier This component contains the sequence of characters (the code) that uniquely 
	 * 									  identifies the item being referenced by XON.1 Organization Name. 
	 * 									  This component replaces XON.3 ID Number as of v 2.5.
	 */

	public void addGroupName(String strOrganizationName, CWE objOrganizationNameTypeCode,
			 HD objAssigningAuthority,
			String strIdentifierTypeCode, HD objAssigningFacility, String strNameRepresentationCode,
			String strOrganizationIdentifier)
	{
		XON xon  = (XON)getDataElement(434);
		xon.setOrganizationName(strOrganizationName);
		xon.setOrganizationNameTypeCode(objOrganizationNameTypeCode);
		xon.setAssigningAuthority(objAssigningAuthority);
		xon.setIdentifierTypeCode(strIdentifierTypeCode);
		xon.setAssigningFacility(objAssigningFacility);
		xon.setNameRepresentationCode(strNameRepresentationCode);
		xon.setOrganizationIdentifier(strOrganizationIdentifier); 
		addGroupName(xon);
	}

	/** 
	 * Set the Group Name.
	 * This field contains the group name of the insured's insurance.
	 * @param GroupName
	 */

	public void addGroupName(XON GroupName)

	{

		addDataType(434,GroupName);
	}

	/**
	 * Set the GroupName list.
	 * @param objGroupNameList List of GroupName
	 */	
	@SuppressWarnings("unchecked")
	public void setGroupName(ISingleCollection<XON> objGroupNameList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objGroupNameList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(434,objCollection);
	}

	/** 
	 * Set the Insured Group Emp ID.
	 * This field holds the group employer ID for the insured's insurance.  
	 * @param strIDNumber Specifies the value of the identifier itself.
	 * @param strCheckDigit It is part of the identifying number used in the sending application. 
	 * @param strCheckDigitScheme Contains the code identifying the check digit scheme employed.
	 * 								Suggested Values NP,ISO,M10,M11.[Refer table No.0061].
	 * @param objAssigningAuthority The assigning authority is a unique name of the system (or organization or agency 
	 * 									or department) that creates the data. . 
	 * @param strIdentifierTypeCode Specifies a code corresponding to the type of identifier.In some cases, this code may be
	 * 								 used as a qualifier to the "Assigning authority" component.[Refer table No 0203]
	 * @param objAssigningFacility Specifies the place or location identifier where the identifier was first assigned 
	 * 									to the patient. 
	 * @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 objAssigningJurisdiction Specifies the geo-political body that assigned the identifier. 
	 * @param objAssigningAgencyOrDepartment Specifies agency or department that assigned the identifier. 
	 * @param strSecurityCheck is used to communicate the version code. 
	 * @param objSecurityCheckSCheme is used to transmit information intended to validate veracity of the supplied identifier
	 */ 
	public void addInsuredGroupEmpID (String strIDNumber,String strCheckDigit, String strCheckDigitScheme, HD objAssigningAuthority,
			String strIdentifierTypeCode,HD objAssigningFacility,String strEffectiveDate,String strExpirationDate, 
			CWE objAssigningJurisdiction, CWE objAssigningAgencyOrDepartment, String strSecurityCheck, String strSecurityCheckScheme)
	{
		CX cx  = (CX)getDataElement(435);
		cx.setIdNumber(strIDNumber);
		cx.setCheckDigit(strCheckDigit);
		cx.setCheckDigitScheme(strCheckDigitScheme);
		cx.setAssigningAuthority(objAssigningAuthority);
		cx.setIdentifierTypeCode(strIdentifierTypeCode);
		cx.setAssigningFacility(objAssigningFacility);
		cx.setEffectiveDate(strEffectiveDate);
		cx.setExpirationDate(strExpirationDate);
		cx.setAssigningJurisdiction(objAssigningJurisdiction);
		cx.setAssigningAgencyOrDepartment(objAssigningAgencyOrDepartment); 
		cx.setSecurityCheck(strCheckDigit);
		cx.setSecurityCheckScheme(strSecurityCheckScheme); 
		addInsuredGroupEmpID(cx);

	} 

	/** Set the Insured Group Emp ID.
	 * This field holds the group employer ID for the insured's insurance.  
	 * @param strIDNumber Specifies the value of the identifier itself.
	 * @param strCheckDigit It is part of the identifying number used in the sending application. 
	 * @param strCheckDigitScheme Contains the code identifying the check digit scheme employed.
	 * 								Suggested Values NP,ISO,M10,M11.[Refer table No.0061].
	 * @param objAssigningAuthority The assigning authority is a unique name of the system (or organization or agency 
	 * 									or department) that creates the data. . 
	 * @param strIdentifierTypeCode Specifies a code corresponding to the type of identifier.In some cases, this code may be
	 * 								 used as a qualifier to the "Assigning authority" component.[Refer table No 0203]
	 * @param objAssigningFacility Specifies the place or location identifier where the identifier was first assigned 
	 * 									to the patient. 
	 * @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 objAssigningJurisdiction Specifies the geo-political body that assigned the identifier. 
	 * @param objAssigningAgencyOrDepartment Specifies agency or department that assigned the identifier. 
	 */ 
	public void addInsuredGroupEmpID(CX objInsuredGroupEmpID)
	{
		addDataType(435,objInsuredGroupEmpID);

	}

	/**
	 * Set the InsuredGroupEmpID list.
	 * @param objInsuredGroupEmpIDList List of InsuredGroupEmpID
	 */	
	@SuppressWarnings("unchecked")
	public void setInsuredGroupEmpID(ISingleCollection<CX> objInsuredGroupEmpIDList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objInsuredGroupEmpIDList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(435,objCollection);
	}

	/** 
	 * Set the Insured Group Emp Name.
	 * This field contains the name of the employer that provides the employee's insurance. 
	 * @param strOrganizationName Specifies name of the specified organization.
	 * @param strOrganizationNameTypeCode Specifies a code that represents the type of name i.e., legal name, display name.
	 * 										Suggested Values A,L,D,SL.[Refer to table No.0204]  
	 * @param objAssigningAuthority Specifies The assigning authority is a unique identifier of the system 
	 * 									(or organization or agency or department) that creates the data. 
	 * @param strIdentifierTypeCode Specifies a code corresponding to the type of identifier. 
	 * @param objAssigningFacility Specifies The place or location identifier where the identifier was first assigned to the person. 
	 * @param strNameRepresentationCode Specifies representations of the same name/address Suggested values are I,A,P [Refer table 0465] 
	 * @param strOrganizationIdentifier This component contains the sequence of characters (the code) that uniquely 
	 * 									  identifies the item being referenced by XON.1 Organization Name. 
	 * 									  This component replaces XON.3 ID Number as of v 2.5.
	 */

	public void addInsuredGroupEmpName(String strOrganizationName, CWE objOrganizationNameTypeCode,
			 HD objAssigningAuthority,
			String strIdentifierTypeCode, HD objAssigningFacility, String strNameRepresentationCode,
			String strOrganizationIdentifier)
	{
		XON xon  = (XON)getDataElement(436);
		xon.setOrganizationName(strOrganizationName);
		xon.setOrganizationNameTypeCode(objOrganizationNameTypeCode);
		xon.setAssigningAuthority(objAssigningAuthority);
		xon.setIdentifierTypeCode(strIdentifierTypeCode);
		xon.setAssigningFacility(objAssigningFacility);
		xon.setNameRepresentationCode(strNameRepresentationCode);
		xon.setOrganizationIdentifier(strOrganizationIdentifier); 
		addInsuredGroupEmpName(xon);
	}

	/** 
	 * Set the Insured Group Emp Name.
	 * This field contains the name of the employer that provides the employee's insurance. 
	 * @param InsuredGroupEmpName
	 */

	public void addInsuredGroupEmpName(XON InsuredGroupEmpName)

	{

		addDataType(436,InsuredGroupEmpName);
	}

	/**
	 * Set the InsuredGroupEmpName list.
	 * @param objGuarantorAddressList List of InsuredGroupEmpName
	 */	
	@SuppressWarnings("unchecked")
	public void setInsuredGroupEmpName(ISingleCollection<XON> objInsuredGroupEmpNameList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objInsuredGroupEmpNameList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(436,objCollection);
	}

	/** 
	 * Set the Plan Effective Date.
	 * This field contains the date that the insurance goes into effect.
	 * @param strPlanEffectiveDate Specifies date that the insurance goes into effect.
	 */ 
	public void setPlanEffectiveDate (String strPlanEffectiveDate)  
	{
		DT planEffectiveDate  = (DT)getDataElement(437);
		planEffectiveDate.setValue(strPlanEffectiveDate); 
		setPlanEffectiveDate(planEffectiveDate);

	} 

	/** Set the Plan Effective Date.
	 * This field contains the date that the insurance goes into effect.
	 * @param objplanEffectiveDate Specifies date that the insurance goes into effect.
	 */ 
	public void setPlanEffectiveDate(DT objplanEffectiveDate)
	{
		setDataType(437,objplanEffectiveDate);

	}

	/** 
	 * Set the Plan Expiration Date.
	 * This indicates the last date of service that the insurance will cover or be responsible for.
	 * @param strPlanExpirationDate Specifies last date of service that the insurance will cover or be responsible for.
	 */ 
	public void setPlanExpirationDate (String strPlanExpirationDate)  
	{
		DT planExpirationDate  = (DT)getDataElement(438);
		planExpirationDate.setValue(strPlanExpirationDate); 
		setPlanExpirationDate(planExpirationDate);

	} 

	/** Set the Plan Expiration Date.
	 * This indicates the last date of service that the insurance will cover or be responsible for.
	 * @param objplanExpirationDate Specifies last date of service that the insurance will cover or be responsible for.
	 */ 
	public void setPlanExpirationDate(DT objplanExpirationDate)
	{
		setDataType(438,objplanExpirationDate);

	}

	/** 
	 * Set the Authorization Information.
	 * This field specify the authorization number or code be obtained prior to all 
	 * non-emergency admissions, and within 48 hours of an emergency admission.
	 * @param strAuthorizationNumber Specifies Identifier assigned to the authorization.
	 * @param strDate Specifies Date of authorization.
	 * @param strSource Specifies Source of authorization.
	 */	
	public void setAuthorizationInformation(String strAuthorizationNumber, String strDate, String strSource)  
	{
		AUI authorizationInformation  = (AUI)getDataElement(439);
		authorizationInformation.setAuthorizationNumber(strAuthorizationNumber);
		authorizationInformation.setDate(strDate);
		authorizationInformation.setSource(strSource);
		setAuthorizationInformation(authorizationInformation);
	}

	/** 
	 * Set the Authorization Information.
	 * This field specify the authorization number or code be obtained prior to all 
	 * non-emergency admissions, and within 48 hours of an emergency admission.
	 * @param authorizationInformation
	 */	
	public void setAuthorizationInformation(AUI authorizationInformation)
	{
		setDataType(439,authorizationInformation);
	}

	/** 
	 * Set the Assignment Of Benefits.
	 * This field indicates whether the insured agreed to assign the insurance benefits to the healthcare provider or not. 
	  * @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 setAssignmentOfBenefits (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(445);
		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); 
		setAssignmentOfBenefits(cwe);

	} 

	/** Set the Assignment Of Benefits.
	 * This field indicates whether the insured agreed to assign the insurance benefits to the healthcare provider or not. 
	 * @param strAssignmentOfBenefits Specifies whether the insured agreed to assign the insurance benefits to the 
	 * 									healthcare provider.[Refer to User-defined Table 0135 ].Suggested values. Y,N,M
	 */ 
	public void setAssignmentOfBenefits(CWE objassignmentOfBenefits)
	{
		setDataType(445,objassignmentOfBenefits);

	}
	/** 
	 * Set the Billing Status.
	 * This field indicates whether the particular insurance has been billed and, if so, the type of bill. 
	 * @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 setBillingStatus(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(457);
		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); 
		setBillingStatus(cwe);

	} 

	/** Set the Billing Status.
	 * This field indicates whether the particular insurance has been billed and, if so, the type of bill. 
	 * @param objbillingStatus Specifies This field indicates whether the particular insurance has been billed and, if 
	 * 							so, the type of bill. Refer to User-defined Table 0022 - Billing Status for suggested values.
	 */ 
	public void setBillingStatus(CWE objbillingStatus)
	{
		setDataType(457,objbillingStatus);

	}
	/**
	 * Set the Company Plan Code.
	 * This field contains optional information to further define the data in IN1-3 - Insurance Company ID.
	 * @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 setCompanyPlanCode (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(460);
		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); 
		setCompanyPlanCode(cwe);

	} 

	/** Set the Company Plan Code.
	 * This field contains optional information to further define the data in IN1-3 - Insurance Company ID.
	 * @param objcompanyPlanCode Specifies  optional information to further define the data in IN1-3 - Insurance Company ID.
	 * 										[Refer to User-defined Table 0042] No Suggested Values.
	 */ 
	public void setCompanyPlanCode(CWE objcompanyPlanCode)
	{
		setDataType(460,objcompanyPlanCode);

	}
	/** 
	 * Set the Coordination Of Benefits.
	 * This field indicates whether this insurance works in conjunction with other insurance plans, or if it provides
	 *  independent coverage and payment of benefits regardless of other insurance that might be available to the patient.  
	  * @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 setCoordinationOfBenefits (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(446);
		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); 
		setCoordinationOfBenefits(cwe);

	} 

	/** Set the Coordination Of Benefits.
	 * This field indicates whether this insurance works in conjunction with other insurance plans, or if it provides
	 *  independent coverage and payment of benefits regardless of other insurance that might be available to the patient.  
	 * @param objcoordOfBenefits Specifies :  This field indicates whether this insurance works in conjunction with other
	 * 											insurance plans, or if it provides independent coverage and payment of 
	 * 											benefits regardless of other insurance that might be available to the 
	 * 											patient.[Refer to User-defined Table 0173].Suggested Values CO,IN.   
	 */ 
	public void setCoordinationOfBenefits(CWE objCoordinationOfBenefits)
	{
		setDataType(446,objCoordinationOfBenefits);

	}
	/** 
	 * Set the Coord Of Ben Priority.
	 * This field contains priority sequence.
	 * @param strCoordOfBenPriority Specifies priority sequence.  Values are: 1, 2, 3, etc.
	 */ 
	public void setCoordOfBenPriority (String strCoordOfBenPriority)  
	{
		ST coordOfBenPriority  = (ST)getDataElement(447);
		coordOfBenPriority.setValue(strCoordOfBenPriority); 
		setCoordOfBenPriority(coordOfBenPriority);

	} 

	/** Set the Coord Of Ben Priority.
	 * This field contains priority sequence.
	 * @param objcoordOfBenPriority Specifies priority sequence.  Values are: 1, 2, 3, etc.
	 */ 
	public void setCoordOfBenPriority(ST objcoordOfBenPriority)
	{
		setDataType(447,objcoordOfBenPriority);

	}
	/** 
	 * Set the Coverage Type.
	 * This field contains the coding structure that identify the type of insurance coverage, or what types of services are
	 * covered for the purposes of a billing system. 
	  * @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 setCoverageType (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(1227);
		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); 
		setCoverageType(cwe);

	} 

	/** Set the Coverage Type.
	 * This field contains the coding structure that identify the type of insurance coverage, or what types of services are
	 * covered for the purposes of a billing system. 
	 * @param objcoverageType Specifies the coding structure that identifies the type of insurance coverage, or what types
	 * 							of services are covered for the purposes of a billing system.[Refer to User-defined 
	 * 							Table 0309 - Coverage Type].suggested values - H,P,B.  
	 */ 
	public void setCoverageType(CWE objcoverageType)
	{
		setDataType(1227,objcoverageType);

	}
	/** 
	 * Set the Delay Before LR Day.
	 * This field indicates the delay before lifetime reserve days.
	 * @param strDelayBeforeLRDay Specifies the delay before lifetime reserve days.
	 */ 
	public void setDelayBeforeLRDay (String strDelayBeforeLRDay)  
	{
		NM delayBeforeLRDay  = (NM)getDataElement(459);
		delayBeforeLRDay.setValue(strDelayBeforeLRDay); 
		setDelayBeforeLRDay(delayBeforeLRDay);

	} 

	/** Set the Delay Before LR Day.
	 * This field indicates the delay before lifetime reserve days.
	 * @param objdelayBeforeLRDay Specifies the delay before lifetime reserve days.
	 */ 
	public void setDelayBeforeLRDay(NM objdelayBeforeLRDay)
	{
		setDataType(459,objdelayBeforeLRDay);

	}
	/** 
	 * Set the Handicap.
	 * This field contains a code to describe the insured's disability. 
	  * @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 setHandicap (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(753);
		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); 
		setHandicap(cwe);

	} 

	/** Set the Handicap.
	 * This field contains a code to describe the insured's disability. 
	 * @param objhandicap This field contains the code that describes an associated party's disability. No suggested values defined [User-defined Table 0295].
	 */ 
	public void setHandicap(CWE objhandicap)
	{
		setDataType(753,objhandicap);

	}
	/** 
	 * Set the Insured Addr.
	 * This field contains the address of the insured person.  
	 * @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 addInsuredAddr(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(444);
		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);
		addInsuredAddr(xad);
	}

	/** 
	 * Set the Insured Addr.
	 * This field contains the address of the insured person.  
	 * @param InsuredAddr
	 */

	public void addInsuredAddr(XAD InsuredAddr)

	{

		addDataType(444,InsuredAddr);
	}

	/**
	 * Set the InsuredAddr list.
	 * @param objInsuredAddrList List of InsuredAddr
	 */	
	@SuppressWarnings("unchecked")
	public void setInsuredAddr(ISingleCollection<XAD> objInsuredAddrList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objInsuredAddrList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(444,objCollection);
	}

	/** 
	 * Set the Insured Administrative Sex.
	 * This field contains the gender of the insured.
	  * @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 setInsuredAdministrativeSex (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(468);
		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); 
		setInsuredAdministrativeSex(cwe);

	} 

	/** Set the Insured Administrative Sex.
	 * This field contains the gender of the insured.
	 * @param objinsuredAdministrativeSex Specifies :  This field contains the gender of the insured.[Refer to User-defined Table 0001]. 
	 */ 
	public void setInsuredAdministrativeSex(CWE objinsuredAdministrativeSex)
	{
		setDataType(468,objinsuredAdministrativeSex);

	}
	/** 
	 * Set the Insured Birth Place.
	 * This field contains the description of the insured's birth place.
	 * @param strInsuredBirthPlace Specifies the description of the insured's birth place.
	 */ 
	public void setInsuredBirthPlace (String strInsuredBirthPlace) 
	{
		ST insuredBirthPlace  = (ST)getDataElement(1899);
		insuredBirthPlace.setValue(strInsuredBirthPlace); 
		setInsuredBirthPlace(insuredBirthPlace);

	} 

	/** Set the Insured Birth Place.
	 * This field contains the description of the insured's birth place.
	 * @param objinsuredBirthPlace Specifies the description of the insured's birth place.
	 */ 
	public void setInsuredBirthPlace(ST objinsuredBirthPlace)
	{
		setDataType(1899,objinsuredBirthPlace);

	}
	/** 
	 * Set the Insured DOB.
	 * This field contains the date of birth of the insured.
	 * @param strTime Specifies a point in time using a 24-hour clock notation. 
	 */
	public void setInsuredDOB(String strTime)  
	{
		DTM insuredDOB  = (DTM)getDataElement(443);
		insuredDOB.setValue(strTime);
		setInsuredDOB(insuredDOB);
	}

	/** 
	 * Set the Insured DOB.
	 * This field contains the date of birth of the insured.
	 * @param insuredDOB
	 */
	public void setInsuredDOB(DTM insuredDOB)
	{
		setDataType(443,insuredDOB);
	}

	/** 
	 * Set the Insured Employer Addr.
	 * This field contains the address of the insured employee's employer.  
	 * @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 addInsuredEmployerAddr(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(469);
		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);
		addInsuredEmployerAddr(xad);
	}

	/** 
	 * Set the Insured Employer Addr.
	 * This field contains the address of the insured employee's employer.  
	 * @param InsuredEmployerAddr
	 */
	public void addInsuredEmployerAddr(XAD InsuredEmployerAddr)
	{
		addDataType(469,InsuredEmployerAddr);
	}

	/**
	 * Set the InsuredEmployerAddr list.
	 * @param objInsuredEmployerAddrList List of InsuredEmployerAddr
	 */	
	@SuppressWarnings("unchecked")
	public void setInsuredEmployerAddr(ISingleCollection<XAD> objInsuredEmployerAddrList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objInsuredEmployerAddrList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(469,objCollection);
	}

	/** 
	 * Set the Insured Employment Status.
	 * This field holds the employment status of the insured.
	  * @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 setInsuredEmploymentStatus(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(467);
		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);
		setInsuredEmploymentStatus(cwe);
	}

	/** 
	 * Set the Insured Employment Status.
	 * This field holds the employment status of the insured.
	 * @param insuredEmploymentStatus
	 */
	public void setInsuredEmploymentStatus(CWE insuredEmploymentStatus)
	{
		setDataType(467,insuredEmploymentStatus);
	}

	/** 
	 * Set the Insured ID Number.
	 * This field data element contains a healthcare institution's identifiers for the insured.
	* @param strIDNumber Specifies the value of the identifier itself.
	 * @param strCheckDigit It is part of the identifying number used in the sending application. 
	 * @param strCheckDigitScheme Contains the code identifying the check digit scheme employed.
	 * 								Suggested Values NP,ISO,M10,M11.[Refer table No.0061].
	 * @param objAssigningAuthority The assigning authority is a unique name of the system (or organization or agency 
	 * 									or department) that creates the data. . 
	 * @param strIdentifierTypeCode Specifies a code corresponding to the type of identifier.In some cases, this code may be
	 * 								 used as a qualifier to the "Assigning authority" component.[Refer table No 0203]
	 * @param objAssigningFacility Specifies the place or location identifier where the identifier was first assigned 
	 * 									to the patient. 
	 * @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 objAssigningJurisdiction Specifies the geo-political body that assigned the identifier. 
	 * @param objAssigningAgencyOrDepartment Specifies agency or department that assigned the identifier. 
	 * @param strSecurityCheck is used to communicate the version code. 
	 * @param objSecurityCheckSCheme is used to transmit information intended to validate veracity of the supplied identifier
	 */
	public void addInsuredIDNumber(String strIDNumber,String strCheckDigit, String strCheckDigitScheme, HD objAssigningAuthority,
			String strIdentifierTypeCode,HD objAssigningFacility,String strEffectiveDate,String strExpirationDate, 
			CWE objAssigningJurisdiction, CWE objAssigningAgencyOrDepartment, String strSecurityCheck, String strSecurityCheckScheme)
	{
		CX cx  = (CX)getDataElement(1230);
		cx.setIdNumber(strIDNumber);
		cx.setCheckDigit(strCheckDigit);
		cx.setCheckDigitScheme(strCheckDigitScheme);
		cx.setAssigningAuthority(objAssigningAuthority);
		cx.setIdentifierTypeCode(strIdentifierTypeCode);
		cx.setAssigningFacility(objAssigningFacility);
		cx.setEffectiveDate(strEffectiveDate);
		cx.setExpirationDate(strExpirationDate);
		cx.setAssigningJurisdiction(objAssigningJurisdiction);
		cx.setAssigningAgencyOrDepartment(objAssigningAgencyOrDepartment); 
		cx.setSecurityCheck(strCheckDigit);
		cx.setSecurityCheckScheme(strSecurityCheckScheme);
		addInsuredIDNumber(cx);
	}

	/** 
	 * Set the Insured ID Number.
	 * This field data element contains a healthcare institution's identifiers for the insured.
	 * @param InsuredIDNumber
	 */
	public void addInsuredIDNumber(CX InsuredIDNumber)
	{
		addDataType(1230,InsuredIDNumber);
	}

	/**
	 * Set the InsuredIDNumber list.
	 * @param objInsuredIDNumberList List of InsuredIDNumber
	 */	
	@SuppressWarnings("unchecked")
	public void setInsuredIDNumber(ISingleCollection<CX> objInsuredIDNumberList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objInsuredIDNumberList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1230,objCollection);
	}

	/** 
	 * Set the Insured Relationship To Patient.
	 * This field indicates the insured's relationship to the patient.  
	  * @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 setInsuredRelationshipToPatient(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(442);
		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);
		setInsuredRelationshipToPatient(cwe);
	}

	/** 
	 * Set the Insured Relationship To Patient.
	 * This field indicates the insured's relationship to the patient.  
	 * @param insuredRelationshipToPatient
	 */
	public void setInsuredRelationshipToPatient(CWE insuredRelationshipToPatient)
	{
		setDataType(442,insuredRelationshipToPatient);
	}

	/** 
	 * Set the Lifetime Reserve Days.
	 * This field contains the number of days left for a certain
	 *  service to be provided or covered under an insurance policy.
	 * @param strLifetimeReserveDays Specifies the number of days left for a certain service to be provided or covered
	 * 								   under an insurance policy.
	 */ 
	public void setLifetimeReserveDays (String strLifetimeReserveDays)  
	{
		NM lifetimeReserveDays  = (NM)getDataElement(458);
		lifetimeReserveDays.setValue(strLifetimeReserveDays); 
		setLifetimeReserveDays(lifetimeReserveDays);

	} 

	/** Set the Lifetime Reserve Days.
	 * This field contains the number of days left for a certain
	 *  service to be provided or covered under an insurance policy.
	 * @param objlifetimeReserveDays Specifies the number of days left for a certain service to be provided or covered
	 * 								   under an insurance policy.
	 */ 
	public void setLifetimeReserveDays(NM objlifetimeReserveDays)
	{
		setDataType(458,objlifetimeReserveDays);

	}
	/** 
	 * Set the Name Of Insured.
	 * This field contains the name of the insured person.  
	 * @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 strNameTypeCode Specifies a code that represents the type of name. Suggested values are A,B,C,D,I,L,M,N,P,R,S,T,U...[Refer table 0200.]
	 * @param strNameRepresentationCode Specifies representations of the same name/address Suggested values are I,A,P [Refer table 0465] 
	 * @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 objEffectiveDate Specifies the first date, if known, on which the address is valid and active.
	 * @param objExpirationDate 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 strCalledBy Used to specify the called name.
	 */
	public void addNameOfInsured(FN objFamilyName, String strGivenName, String strSecondAndFurtherGivenNamesOrInitialsThereof, 
			String strSuffix, String strPrefix, String strNameTypeCode, String strNameRepresentationCode, 
			CWE objNameContext, String strNameAssemblyOrder, DTM objEffectiveDate,
			DTM objExpirationDate, String strProfessionalSuffix, String strCalledBy)
	{
		XPN xpn = (XPN)getDataElement(441);
		xpn.setGivenName(strGivenName);
		xpn.setSecondNameOrInitials(strSecondAndFurtherGivenNamesOrInitialsThereof);
		xpn.setSuffix(strSuffix);
		xpn.setPrefix(strPrefix);
//		xpn.setDegree(strDegree);
		xpn.setNameTypeCode(strNameTypeCode);
		xpn.setNameRepresentationCode(strNameRepresentationCode);
		xpn.setNameContext(objNameContext);
//		xpn.setNameValidityRange(objNameValidityRange);
		xpn.setNameAssemblyOrder(strNameAssemblyOrder);
		xpn.setEffectiveDate(objEffectiveDate);
		xpn.setExpirationDate(objExpirationDate);
		xpn.setProfessionalSuffix(strProfessionalSuffix); 
		xpn.setCalledBy(strCalledBy);
		addNameOfInsured(xpn);
	}

	/** 
	 * Set the Name Of Insured.
	 * This field contains the name of the insured person.  
	 * @param NameOfInsured 
	 */
	public void addNameOfInsured(XPN NameOfInsured)
	{
		addDataType(441,NameOfInsured);
	}

	/**
	 * Set the NameOfInsured list.
	 * @param objNameOfInsuredList List of NameOfInsured
	 */	
	@SuppressWarnings("unchecked")
	public void setNameOfInsured(ISingleCollection<XPN> objNameOfInsuredList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objNameOfInsuredList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(441,objCollection);
	}

	/** 
	 * Set the Notice Of Admission Date.
	 * This field indicates the date that it is send.
	 * @param strNoticeOfAdmissionDate Specifies the date that it was sent.
	 */ 
	public void setNoticeOfAdmissionDate (String strNoticeOfAdmissionDate) 
	{
		DT noticeOfAdmissionDate  = (DT)getDataElement(449);
		noticeOfAdmissionDate.setValue(strNoticeOfAdmissionDate); 
		setNoticeOfAdmissionDate(noticeOfAdmissionDate);

	} 

	/** Set the Notice Of Admission Date.
	 * This field indicates the date that it is send.
	 * @param objnoticeOfAdmissionDate Specifies the date that it was sent.
	 */ 
	public void setNoticeOfAdmissionDate(DT objnoticeOfAdmissionDate)
	{
		setDataType(449,objnoticeOfAdmissionDate);

	}
	/** 
	 * Set the Notice Of Admission Flag.
	 * This field indicates whether the insurance company 
	 * requires a written notice of admission from the healthcare provider or not.
	 * @param strNoticeOfAdmissionFlag Specifies indicates whether the insurance company requires a written notice of
	 * 									 admission from the healthcare provider.[Refer to HL7 table 0136].Suggested 
	 * 									Values Y,N. 
	 */ 
	public void setNoticeOfAdmissionFlag (String strNoticeOfAdmissionFlag)  
	{
		ID noticeOfAdmissionFlag  = (ID)getDataElement(448);
		noticeOfAdmissionFlag.setValue(strNoticeOfAdmissionFlag); 
		setNoticeOfAdmissionFlag(noticeOfAdmissionFlag);

	} 

	/** Set the Notice Of Admission Flag.
	 * This field indicates whether the insurance company 
	 * requires a written notice of admission from the healthcare provider or not.
	 * @param objnoticeOfAdmissionFlag Specifies indicates whether the insurance company requires a written notice of
	 * 									 admission from the healthcare provider.[Refer to HL7 table 0136].Suggested 
	 * 									Values Y,N. 
	 */ 
	public void setNoticeOfAdmissionFlag(ID objnoticeOfAdmissionFlag)
	{
		setDataType(448,objnoticeOfAdmissionFlag);

	}
	/** 
	 * Set the Plan Type.
	 * This contains the coding structure that identify the various plan types.
	  * @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 setPlanType(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(440);
		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); 
		setPlanType(cwe);

	} 

	/** Set the Plan Type.
	 * This contains the coding structure that identify the various plan types.
	 * @param objplanType Specifies the coding structure that identifies the various plan types, for example, Medicare, 
	 * 						Medicaid, Blue Cross, HMO, etc.[Refer to User-defined Table 0086 - Plan ID].No Suggested Values.
	 */ 
	public void setPlanType(CWE objplanType)
	{
		setDataType(440,objplanType);

	}
	/** 
	 * Set the Policy Deductible.
	 * This field contains the amount specify by the insurance plan that 
	 * is the responsibility of the guarantor (i.e. deductible, excess, etc.).
	 * @param objPrice Specifies an amount of money and the denomination in which it is expressed.
	 * @param strPriceType Specifies a coded value, data type ID.[Refer to HL7 Table 0205]
	 * 						  Suggested Values AP,DC,IC,PF,TF,TP,UP. 
	 * @param strFromValue Spefies the "range" alongwith strToValue.  
	 * @param strToValue Spefies the "range" alongwith strFromValue.
	 * @param objRangeUnits Specifies This describes the units associated with the range, e.g., seconds, minutes
	 * @param strRangeType Refer to HL7 Table 0298 - CP range type for valid values.(P,F)
	 */
	public void setPolicyDeductible(MO objPrice,String strPriceType,String strFromValue,String strToValue,
			CWE objRangeUnits,String strRangeType)
	{
		CP policyDeductible = (CP)getDataElement(462);
		policyDeductible.setPrice(objPrice);
		policyDeductible.setPriceType(strPriceType);
		policyDeductible.setFromValue(strFromValue);
		policyDeductible.setToValue(strToValue);
		policyDeductible.setRangeUnits(objRangeUnits);
		policyDeductible.setRangeType(strRangeType);

		setPolicyDeductible(policyDeductible);
	}

	/** 
	 * Set the Policy Deductible.
	 * This field contains the amount specify by the insurance plan that 
	 * is the responsibility of the guarantor (i.e. deductible, excess, etc.).
	 * @param policyDeductible
	 */
	public void setPolicyDeductible(CP policyDeductible)
	{
		setDataType(462,policyDeductible);
	}

	/** 
	 * Set the Policy Limit Days.
	 * This field contains the maximum number of days that the insurance policy will cover.
	 * @param strPolicyLimitDays Specifies the maximum number of days that the insurance policy will cover.
	 */ 
	public void setPolicyLimitDays (String strPolicyLimitDays)  
	{
		NM policyLimitDays  = (NM)getDataElement(464);
		policyLimitDays.setValue(strPolicyLimitDays); 
		setPolicyLimitDays(policyLimitDays);

	} 

	/** Set the Policy Limit Days.
	 * This field contains the maximum number of days that the insurance policy will cover.
	 * @param objpolicyLimitDays Specifies the maximum number of days that the insurance policy will cover.
	 */ 
	public void setPolicyLimitDays(NM objpolicyLimitDays)
	{
		setDataType(464,objpolicyLimitDays);

	}
	/** 
	 * Set the Policy Number.
	 * This field contains the individual policy number of the insured to uniquely identify this patient's plan.
	 * @param strPolicyNumber The individual policy number of the insured to uniquely identify patient's plan.  
	 */ 
	public void setPolicyNumber (String strPolicyNumber)  
	{
		ST policyNumber  = (ST)getDataElement(461);
		policyNumber.setValue(strPolicyNumber); 
		setPolicyNumber(policyNumber);

	} 

	/** Set the Policy Number.
	 * This field contains the individual policy number of the insured to uniquely identify this patient's plan.
	 * @param objpolicyNumber The individual policy number of the insured to uniquely identify patient's plan.  
	 */ 
	public void setPolicyNumber(ST objpolicyNumber)
	{
		setDataType(461,objpolicyNumber);

	}

	/** 
	 * Set the Pre Admit Cert.
	 * This field contains the pre admission certification code.  
	 * @param strPreAdmitCert Specifies the pre admission certification code.
	 * ]
	 */ 
	public void setPreAdmitCert (String strPreAdmitCert) 
	{
		ST preAdmitCert  = (ST)getDataElement(453);
		preAdmitCert.setValue(strPreAdmitCert); 
		setPreAdmitCert(preAdmitCert);

	} 

	/** Set the Pre Admit Cert.
	 * This field contains the pre admission certification code.  
	 * @param objpreAdmitCert Specifies the pre admission certification code.
	 * ]
	 */ 
	public void setPreAdmitCert(ST objpreAdmitCert)
	{
		setDataType(453,objpreAdmitCert);

	}
	/** 
	 * Set the Prior Insurance Plan ID.
	 * This field uniquely identify the prior insurance plan when the plan ID changes.  
	  * @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 setPriorInsurancePlanID (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(471);
		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); 
		setPriorInsurancePlanID(cwe);

	} 

	/** Set the Prior Insurance Plan ID.
	 * This field uniquely identify the prior insurance plan when the plan ID changes.  
	 * @param objpriorInsurancePlanID Specifies a code to describe the insured's disability.  
	 */ 
	public void setPriorInsurancePlanID(CWE objpriorInsurancePlanID)
	{
		setDataType(471,objpriorInsurancePlanID);

	}
	/** 
	 * Set the Release Information Code.
	 * This field indicates whether the healthcare provider
	 * can release information about the patient, and what information can be released.  
	  * @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 setReleaseInformationCode (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(452);
		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); 
		setReleaseInformationCode(cwe);

	} 

	/** Set the Release Information Code.
	 * This field indicates whether the healthcare provider
	 * can release information about the patient, and what information can be released.  
	 * @param objreleaseInformationCode Specifies whether the healthcare provider can release information about the 
	 * 									  patient, and what information can be released.  
	 * 									  [Refer to User-defined Table 0093].Suggested Values Y,N.. 
	 */ 
	public void setReleaseInformationCode(CWE objreleaseInformationCode)
	{
		setDataType(452,objreleaseInformationCode);

	}
	/** 
	 * Set the Report Of Eligibility Date.
	 * This field indicates whether a report of eligibility (ROE) is received, and
	 *  also indicates the date that it is received.
	 * @param strReportOfEligibilityDate Specifies whether a report of eligibility (ROE) was received.  
	 */ 
	public void setReportOfEligibilityDate (String strReportOfEligibilityDate) 
	{
		DT reportOfEligibilityDate  = (DT)getDataElement(451);
		reportOfEligibilityDate.setValue(strReportOfEligibilityDate); 
		setReportOfEligibilityDate(reportOfEligibilityDate);

	} 

	/** Set the Report Of Eligibility Date.
	 * This field indicates whether a report of eligibility (ROE) is received, and
	 *  also indicates the date that it is received.
	 * @param objreportOfEligibilityDate Specifies whether a report of eligibility (ROE) was received.  
	 */ 
	public void setReportOfEligibilityDate(DT objreportOfEligibilityDate)
	{
		setDataType(451,objreportOfEligibilityDate);

	}
	/** 
	 * Set the Report Of Eligibility Flag.
	 * This field indicates whether this insurance carrier sends a report
	 *  that indicates that the patient is eligible for benefits and whether it identifies those benefits. 
	 * @param strReportOfEligibilityFlag Specifies whether this insurance carrier sends a report that indicates that the
	 * 									   patient is eligible for benefits and whether it identifies those benefits.
	 * 									   [Refer to HL7 table 0136] valid values.Y,N
	 */ 
	public void setReportOfEligibilityFlag (String strReportOfEligibilityFlag)  
	{
		ID reportOfEligibilityFlag  = (ID)getDataElement(450);
		reportOfEligibilityFlag.setValue(strReportOfEligibilityFlag); 
		setReportOfEligibilityFlag(reportOfEligibilityFlag);

	} 

	/** Set the Report Of Eligibility Flag.
	 * This field indicates whether this insurance carrier sends a report
	 *  that indicates that the patient is eligible for benefits and whether it identifies those benefits. 
	 * @param objreportOfEligibilityFlag Specifies whether this insurance carrier sends a report that indicates that the
	 * 									   patient is eligible for benefits and whether it identifies those benefits.
	 * 									   [Refer to HL7 table 0136] valid values.Y,N
	 */ 
	public void setReportOfEligibilityFlag(ID objreportOfEligibilityFlag)
	{
		setDataType(450,objreportOfEligibilityFlag);

	}

	/** 
	 * Set the Signature Code.
	 * This field contains the code to indicate how the patient/subscriber authorization signature was 
	 * obtained and how it is being retained by the provider.  
	  * @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 setSignatureCode (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(1854);
		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); 
		setSignatureCode(cwe);

	} 

	/** 
	 * Set the Signature Code.
	 * This field contains the code to indicate how the patient/subscriber authorization signature was 
	 * obtained and how it is being retained by the provider.  
	 * @param objsignatureCode Specifies the code to indicate how the patient/subscriber authorization signature was 
	 * 							obtained and how it is being retained by the provider.  
	 * 							[Refer to User-defined Table 0535] suggested values are C,S,M,P. 
	 */ 
	public void setSignatureCode(CWE objsignatureCode)
	{
		setDataType(1854,objsignatureCode);

	}
	/** 
	 * Set the Signature Code Date.
	 * This date the patient/subscriber authorization signature is obtained.
	 * @param strSignatureCodeDate Specifies  date the patient/subscriber authorization signature was obtained.
	 */ 
	public void setSignatureCodeDate (String strSignatureCodeDate)  
	{
		DT signatureCodeDate  = (DT)getDataElement(1855);
		signatureCodeDate.setValue(strSignatureCodeDate); 
		setSignatureCodeDate(signatureCodeDate);

	} 

	/** 
	 * Set the Signature Code Date.
	 * This date the patient/subscriber authorization signature is obtained.
	 * @param objsignatureCodeDate Specifies  date the patient/subscriber authorization signature was obtained.
	 */ 
	public void setSignatureCodeDate(DT objsignatureCodeDate)
	{
		setDataType(1855,objsignatureCodeDate);

	}
	/** 
	 * Set the Type Of Agreement Code.
	 * This field is used to further identify an insurance plan.
	  * @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 setTypeOfAgreementCode (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(456);
		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); 
		setTypeOfAgreementCode(cwe);

	} 

	/** Set the Type Of Agreement Code.
	 * This field is used to further identify an insurance plan.
	 * @param objtypeOfAgreementCode Used to further identify an insurance plan.  Refer to User-defined Table 0098 
	 * 								   Suggested values S,U,M.
	 */ 
	public void setTypeOfAgreementCode(CWE objtypeOfAgreementCode)
	{
		setDataType(456,objtypeOfAgreementCode);

	}
	/** 
	 * Set the Verification By.
	 * This field refers to the person who verify the benefits.  
	 * @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 addVerificationBy(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(455);
		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);
		addVerificationBy(xcn);
	}

	/** 
	 * Set the Verification By.
	 * This field refers to the person who verify the benefits.  
	 * @param VerificationBy
	 */
	public void addVerificationBy(XCN VerificationBy)
	{
		addDataType(455,VerificationBy);
	}

	/**
	 * Set the VerificationBy list.
	 * @param objVerificationByList List of VerificationBy
	 */	
	@SuppressWarnings("unchecked")
	public void setVerificationBy(ISingleCollection<XCN> objVerificationByList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objVerificationByList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(455,objCollection);
	}

	/** 
	 * Set the Verification Date Time.
	 * This field contains the date/time that the 
	 * healthcare provider verified that the patient has the indicated benefits.
	 * @param strTime Specifies a point in time using a 24-hour clock notation. 
	 */
	public void setVerificationDateTime(String strTime)  
	{
		DTM verificationDateTime  = (DTM)getDataElement(454);
		verificationDateTime.setValue(strTime);
		setVerificationDateTime(verificationDateTime);
	}

	/** 
	 * Set the Verification Date Time.
	 * This field contains the date/time that the 
	 * healthcare provider verified that the patient has the indicated benefits.
	 * @param verificationDateTime Verification Date Time.
	 * 
	 */
	public void setVerificationDateTime(DTM verificationDateTime)
	{
		setDataType(454,verificationDateTime);
	}

	/** 
	 * Set the Verification Status.
	 * This field contains the status of this patient's relationship with this insurance carrier.
	 * @param strVerificationStatus Specifies the status of this patient's relationship with this insurance carrier.
	 */ 
	public void setVerificationStatus (String strVerificationStatus)  
	{
		ST verificationStatus  = (ST)getDataElement(470);
		verificationStatus.setValue(strVerificationStatus); 
		setVerificationStatus(verificationStatus);

	} 

	/** Set the Verification Status.
	 * This field contains the status of this patient's relationship with this insurance carrier.
	 * @param objverificationStatus Specifies the status of this patient's relationship with this insurance carrier.
	 */ 
	public void setVerificationStatus(ST objverificationStatus)
	{
		setDataType(470,objverificationStatus);

	}
	/** 
	 * Set the VIP Indicator.
	 * This field identify the type of VIP for the insured.  
	  * @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 setVIPIndicator (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(1852);
		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); 
		setVIPIndicator(cwe);

	} 

	/** Set the VIP Indicator.
	 * This field identify the type of VIP for the insured.  
	 * @param objvIPIndicator Specifies the type of VIP for the insured. [Refer to User-defined Table 0099 - VIP indicator]
	 */ 
	public void setVIPIndicator(CWE objvIPIndicator)
	{
		setDataType(1852,objvIPIndicator);

	}
	
	/** 
	 * Set the External Health Plan Identifiers.
	 * This field contains the external Health Plan Identifiers that correspond to the internal Health Plan ID in IN1-2 – Health Plan ID.
	 * @param strIDNumber Specifies the value of the identifier itself.
	 * @param strCheckDigit It is part of the identifying number used in the sending application. 
	 * @param strCheckDigitScheme Contains the code identifying the check digit scheme employed.
	 * 								Suggested Values NP,ISO,M10,M11.[Refer table No.0061].
	 * @param objAssigningAuthority The assigning authority is a unique name of the system (or organization or agency 
	 * 									or department) that creates the data. . 
	 * @param strIdentifierTypeCode Specifies a code corresponding to the type of identifier.In some cases, this code may be
	 * 								 used as a qualifier to the "Assigning authority" component.[Refer table No 0203]
	 * @param objAssigningFacility Specifies the place or location identifier where the identifier was first assigned 
	 * 									to the patient. 
	 * @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 objAssigningJurisdiction Specifies the geo-political body that assigned the identifier. 
	 * @param objAssigningAgencyOrDepartment Specifies agency or department that assigned the identifier. 
	 * @param strSecurityCheck is used to communicate the version code. 
	 * @param objSecurityCheckSCheme is used to transmit information intended to validate veracity of the supplied identifier
	 */
	public void addExternalHealthPlanIdentifiers(String strIDNumber,String strCheckDigit, String strCheckDigitScheme, HD objAssigningAuthority,
			String strIdentifierTypeCode,HD objAssigningFacility,String strEffectiveDate,String strExpirationDate, 
			CWE objAssigningJurisdiction, CWE objAssigningAgencyOrDepartment, String strSecurityCheck, String strSecurityCheckScheme)
	{
		CX cx  = (CX)getDataElement(3292);
		cx.setIdNumber(strIDNumber);
		cx.setCheckDigit(strCheckDigit);
		cx.setCheckDigitScheme(strCheckDigitScheme);
		cx.setAssigningAuthority(objAssigningAuthority);
		cx.setIdentifierTypeCode(strIdentifierTypeCode);
		cx.setAssigningFacility(objAssigningFacility);
		cx.setEffectiveDate(strEffectiveDate);
		cx.setExpirationDate(strExpirationDate);
		cx.setAssigningJurisdiction(objAssigningJurisdiction);
		cx.setAssigningAgencyOrDepartment(objAssigningAgencyOrDepartment); 
		cx.setSecurityCheck(strCheckDigit);
		cx.setSecurityCheckScheme(strSecurityCheckScheme);
		addExternalHealthPlanIdentifiers(cx);
	}

	/** 
	 * Set the External Health Plan Identifiers.
	 * This field contains the external Health Plan Identifiers that correspond to the internal Health Plan ID in IN1-2 – Health Plan ID.
	 * @param ExternalHealthPlanIdentifiers - External Health Plan Identifiers
	 */
	public void addExternalHealthPlanIdentifiers(CX ExternalHealthPlanIdentifiers)
	{
		addDataType(3292,ExternalHealthPlanIdentifiers);
	}

	/**
	 * Set the External Health Plan Identifiers.
	 * This field contains the external Health Plan Identifiers that correspond to the internal Health Plan ID in IN1-2 – Health Plan ID.
	 * @param objExternalHealthPlanIdentifiersList External Health Plan Identifiers
	 */	
	@SuppressWarnings("unchecked")
	public void setExternalHealthPlanIdentifiers(ISingleCollection<CX> objExternalHealthPlanIdentifiersList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objExternalHealthPlanIdentifiersList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(3292,objCollection);
	}
	
	/**
	 * Set the Insurance Action Code.
	 * The Insurance Action Code Defines the action to be taken for this insurance.  
	 * @param strInsuranceActionCode The Insurance Action Code Defines the action to be taken for this insurance.   
	 */ 
	public void setInsuranceActionCode (String strInsuranceActionCode) 
	{
		ID InsuranceActionCode  = (ID)getDataElement(3335);
		InsuranceActionCode.setValue(strInsuranceActionCode); 
		setInsuranceActionCode(InsuranceActionCode);

	} 

	/**
	 * Set the Insurance Action Code.
	 * The Insurance Action Code Defines the action to be taken for this insurance.  
	 * @param objInsuranceActionCode Indicates whether or not a system should suppress printing of the guarantor's bills.
	 * 										[to HL7 table 0136 - Yes/no Indicator].valid values Y,N. 
	 */ 
	public void setInsuranceActionCode(ID objInsuranceActionCode)
	{
		setDataType(3335,objInsuranceActionCode);

	}

	/**
	 * 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 If Segment Validation fails
	 */
	public boolean validate() throws InvalidSegmentException
	{
		try
		{
			super.validate();
			return true;
		}
		catch(FieldMissingException ex)
		{
			throw new InvalidSegmentException(enumSegments.getValue(),ex);
		}
	}
}