/*******************************************************************************
 *  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.CNE;
import cdac.medinfo.sdk.hl7282.baselibs.CNN;
import cdac.medinfo.sdk.hl7282.baselibs.CQ;
import cdac.medinfo.sdk.hl7282.baselibs.CWE;
import cdac.medinfo.sdk.hl7282.baselibs.CX;
import cdac.medinfo.sdk.hl7282.baselibs.DTM;
import cdac.medinfo.sdk.hl7282.baselibs.EI;
import cdac.medinfo.sdk.hl7282.baselibs.EIP;
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.MOC;
import cdac.medinfo.sdk.hl7282.baselibs.NDL;
import cdac.medinfo.sdk.hl7282.baselibs.NM;
import cdac.medinfo.sdk.hl7282.baselibs.OG;
import cdac.medinfo.sdk.hl7282.baselibs.PRL;
import cdac.medinfo.sdk.hl7282.baselibs.SI;
import cdac.medinfo.sdk.hl7282.baselibs.ST;
import cdac.medinfo.sdk.hl7282.baselibs.TX;
import cdac.medinfo.sdk.hl7282.baselibs.XCN;
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;

/**
 * OBR - Observation Request Segment.<p>
 * The Observation Request (OBR) segment is used to transmit information specific to
 * an order for a diagnostic study or observation, physical exam, or assessment. 
 * <p>Represents an HL7 OBR message segment. 
 * This segment has the following fields:</p><p>
 * OBR-1: Set ID - OBR (SI)<b>Optional</b><br> 
 * OBR-2: Placer Order Number (EI)<b>Conditional</b><br> 
 * OBR-3: Filler Order Number (EI)<b>Conditional</b><br> 
 * OBR-4: Universal Service Identifier (CWE)<b>Required</b><br> 
 * OBR-5: Priority _ OBR (ID)<b>Withdrawn</b><br>  
 * OBR-6: Requested Date/Time (DTM)<b>Withdrawn</b><br>  
 * OBR-7: Observation Date/Time (DTM)<b>Conditional</b><br> 
 * OBR-8: Observation End Date/Time (DTM)<b>Optional</b><br> 
 * OBR-9: Collection Volume (CQ)<b>Optional</b><br> 
 * OBR-10: Collector Identifier (XCN)<b>Backward Compatibility</b><br> 
 * OBR-11: Specimen Action Code (ID)<b>Optional</b><br> 
 * OBR-12: Danger Code (CWE)<b>Optional</b><br> 
 * OBR-13: Relevant Clinical Information (CWE)<b>Optional</b><br> 
 * OBR-14: Specimen Received Date/Time (DTM)<b>Withdrawn</b><br> 
 * OBR-15: Specimen Source (SPS)<b>Withdrawn</b><br> 
 * OBR-16: Ordering Provider (XCN)<b>Backward Compatibility</b><br> 
 * OBR-17: Order Callback Phone Number (XTN)<b>Optional</b><br> 
 * OBR-18: Placer Field 1 (ST)<b>Optional</b><br> 
 * OBR-19: Placer Field 2 (ST)<b>Optional</b><br> 
 * OBR-20: Filler Field 1 (ST)<b>Optional</b><br> 
 * OBR-21: Filler Field 2 (ST)<b>Optional</b><br> 
 * OBR-22: Results Rpt/Status Chng - Date/Time (DTM)<b>Conditional</b><br> 
 * OBR-23: Charge to Practice (MOC)<b>Optional</b><br> 
 * OBR-24: Diagnostic Serv Sect ID (ID)<b>Optional</b><br> 
 * OBR-25: Result Status (ID)<b>Conditional</b><br> 
 * OBR-26: Parent Result (PRL)<b>Optional</b><br> 
 * OBR-27: Quantity/Timing (TQ)<b>Withdrawn</b><br>  
 * OBR-28: Result Copies To (XCN)<b>Backward Compatibility</b><br> 
 * OBR-29: Parent Number (EIP)<b>Optional</b><br> 
 * OBR-30: Transportation Mode (ID)<b>Optional</b><br> 
 * OBR-31: Reason for Study (CWE)<b>Optional</b><br> 
 * OBR-32: Principal Result Interpreter (NDL)<b>Backward Compatibility</b><br> 
 * OBR-33: Assistant Result Interpreter (NDL)<b>Backward Compatibility</b><br> 
 * OBR-34: Technician (NDL)<b>Backward Compatibility</b><br> 
 * OBR-35: Transcriptionist (NDL)<b>Backward Compatibility</b><br> 
 * OBR-36: Scheduled Date/Time (DTM)<b>Optional</b><br> 
 * OBR-37: Number of Sample Containers * (NM)<b>Optional</b><br> 
 * OBR-38: Transport Logistics of Collected Sample (CWE)<b>Optional</b><br> 
 * OBR-39: Collector's Comment * (CWE)<b>Optional</b><br> 
 * OBR-40: Transport Arrangement Responsibility (CWE)<b>Optional</b><br> 
 * OBR-41: Transport Arranged (ID)<b>Optional</b><br> 
 * OBR-42: Escort Required (ID)<b>Optional</b><br> 
 * OBR-43: Planned Patient Transport Comment (CWE)<b>Optional</b><br> 
 * OBR-44: Procedure Code (CNE)<b>Optional</b><br> 
 * OBR-45: Procedure Code Modifier (CNE)<b>Optional</b><br> 
 * OBR-46: Placer Supplemental Service Information (CWE)<b>Optional</b><br> 
 * OBR-47: Filler Supplemental Service Information (CWE)<b>Optional</b><br> 
 * OBR-48: Medically Necessary Duplicate Procedure Reason (CWE)<b>Conditional</b><br> 
 * OBR-49: Result Handling (CWE)<b>Optional</b><br>
 * ORR-50: Parent Universal Service Identifier (CWE)<b>Backward Compatibility</b><br>
 * OBR-51: Observation Group ID (EI)<b>Optional</b><br>
 * OBR-52: Parent Observation Group ID (EI)<b>Optional</b><br>
 * OBR-53: Alternate Placer Order Number (CX)<b>Optional</b><br>
 * OBR-54: Parent Order (EIP)<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 OBR extends Segment    
{
	

	/**
	 * Constructs the OBR segment.
	 */
	public OBR()
	{super(EnumSegments.HL7_SEG_OBR);
	}

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

	/**
	 * Retrieves the Filler Order Number.
	 * This field specify the order number associated with the filling application. 
	 * @return EI - FillerOrderNumber in object form.
	 */
	public EI getFillerOrderNumber() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(217);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (EI)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Placer Order Number.
	 * This field specify a special case of the Entity Identifier data type.
	 * @return EI - PlacerOrderNumber in object form.
	 */
	public EI getPlacerOrderNumber() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(216);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (EI)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Assistant Result Interpreter.
	 * This field identify the clinical observer who assisted with the interpretation of this study.
	 * @return ISingleCollection<NDL> - assistantResultInterpreter
	 */
	public ISingleCollection<NDL> getAssistantResultInterpreter() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(265);
		ISingleCollection<NDL> objDataList = new SingleCollection<NDL>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				NDL objNDL = (NDL)objDataType;
				objDataList.add(objNDL);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Charge to Practice.
	 * This field charge to the ordering entity for the studies performed when applicable. 
	 * @return MOC - chargetoPractice
	 */
	public MOC getChargetoPractice() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(256);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (MOC)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Collection Volume.  
	 * @return CQ - collectionVolume
	 */
	public CQ getCollectionVolume() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(243);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Collector Comment.
	 * This field is for reporting additional comments related to the sample.
	 * @return ISingleCollection<CWE> - collectorComment
	 */
	public ISingleCollection<CWE> getCollectorComment() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1030);
		ISingleCollection<CWE> objDataList = new SingleCollection<CWE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CWE objCWE = (CWE)objDataType;
				objDataList.add(objCWE);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Collector Identifier.
	 * This field identify the person, department, or facility that collected the specimen. 
	 * @return ISingleCollection<XCN> - collectorIdentifier
	 */
	public ISingleCollection<XCN> getCollectorIdentifier() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(244);
		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 Danger Code.
	 * This field contains the code and/or text indicating any known or suspected patient.
	 * @return CE - dangerCode
	 */
	public CWE getDangerCode() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(246);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Diagnostic Serv Sect ID.
	 * This field is the section of the diagnostic service where the observation is performed.
	 * @return ID - diagnosticServSectID
	 */
	public ID getDiagnosticServSectID() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(257);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Escort Required.
	 * This field is an indicator that the patient needs to be escorted to the diagnostic service department.  
	 * @return ID - escortRequired
	 */
	public ID getEscortRequired() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1033);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Filler Field1.
	 * @return ST - fillerField1
	 */
	public ST getFillerField1() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(253);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ST)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Filler Field2.
	 * @return ST - fillerField2
	 */
	public ST getFillerField2() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(254);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ST)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Filler Supplemental Service Information.
	 * This field contains supplemental service information sent from the filler system to 
	 * the placer system for the procedure code reported in OBR-4 Universal Service ID.  
	 * @return ISingleCollection<CWE> - fillerSupplementalServiceInformation
	 */
	public ISingleCollection<CWE> getFillerSupplementalServiceInformation() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1475);
		ISingleCollection<CWE> objDataList = new SingleCollection<CWE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CWE objCWE = (CWE)objDataType;
				objDataList.add(objCWE);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Medically Necessary Duplicate Procedure Reason.
	 * This field intended to provide financial systems information on who to bill for duplicate procedures.  
	 * @return CWE - medicallyNecessaryDuplicateProcedureReason
	 */
	public CWE getMedicallyNecessaryDuplicateProcedureReason() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1646);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Number of Sample Containers.
	 * This field identify the number of containers for a given sample.  
	 * @return NM - numberofSampleContainers
	 */
	public NM getNumberofSampleContainers() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1028);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Observation Date Time.
	 * This field is the clinically relevant date/time of the observation.
	 * @return DTM - observationDateTime
	 */
	public DTM getObservationDateTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(241);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DTM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Observation End Date Time.
	 * This field contains the end date and time of a study or timed specimen collection. 
	 * @return DTM - observationEndDateTime
	 */
	public DTM getObservationEndDateTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(242);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DTM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Order Callback Phone Number.
	 * This field contains the telephone number for reporting a status or a result using 
	 * the standard format with extension and/or beeper number when applicable.
	 * @return ISingleCollection<XTN> - orderCallbackPhoneNumber
	 */
	public ISingleCollection<XTN> getOrderCallbackPhoneNumber() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(250);
		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 Ordering Provider.
	 * This field identify the provider who ordered the test.  
	 * @return ISingleCollection<XCN> - orderingProvider
	 */
	public ISingleCollection<XCN> getOrderingProvider() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(226);
		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 Parent.
	 * This field identical to ORC-8-parent. This field relates a child to its parent when a parent child relationship exists.
	 * @return EIP - parent
	 */
	public EIP getParent() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(261);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (EIP)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Parent Result.
	 * This field is defined to make it available for other types of linkages (e.g., toxicology).  
	 * @return PRL - parentResult
	 */
	public PRL getParentResult() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(259);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (PRL)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Placer Field1.
	 * @return ST - placerField1
	 */
	public ST getPlacerField1() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(251);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ST)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Placer Field2.
	 * @return ST - placerField2
	 */
	public ST getPlacerField2() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(252);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ST)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Placer Supplemental Service Information.
	 * This field contains supplemental service information sent from the placer
	 * system to the filler system for the universal procedure code reported in OBR-4 Universal Service ID. 
	 * @return ISingleCollection<CWE> - placerSupplementalServiceInformation
	 */
	public ISingleCollection<CWE> getPlacerSupplementalServiceInformation() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1474);
		ISingleCollection<CWE> objDataList = new SingleCollection<CWE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CWE objCWE = (CWE)objDataType;
				objDataList.add(objCWE);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Planned Patient Transport Comment.
	 * This field is the code or free text comments on special requirements for 
	 * the transport of the patient to the diagnostic service department. 
	 * @return ISingleCollection<CWE> - plannedPatientTransportComment
	 */
	public ISingleCollection<CWE> getPlannedPatientTransportComment() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1034);
		ISingleCollection<CWE> objDataList = new SingleCollection<CWE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CWE objCWE = (CWE)objDataType;
				objDataList.add(objCWE);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Principal Result Interpreter.
	 * This field identify the physician or other clinician who interpreted the
	 * observation and is responsible for the report content.
	 * @return NDL - principalResultInterpreter
	 */
	public NDL getPrincipalResultInterpreter() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(264);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NDL)objDataCollection.elementAt(0);
		else
			return null;
	}

	
	/**
	 * Retrieves the Procedure Code.
	 * This field contains a unique identifier assigned to the procedure, if any, associated with the charge. 
	 * @return CNE - procedureCode
	 */
	public CNE getProcedureCode() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(393);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CNE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Procedure Code Modifier.
	 * This field contains the procedure code modifier to the procedure code 
	 * reported in OBR-44-procedure code, when applicable.
	 * @return ISingleCollection<CNE> - procedureCodeModifier
	 */
	public ISingleCollection<CNE> getProcedureCodeModifier() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1316);
		ISingleCollection<CNE> objDataList = new SingleCollection<CNE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CNE objCNE = (CNE)objDataType;
				objDataList.add(objCNE);
			}
		}
		return objDataList;
	}
	
	/**
	 * Retrieves the Reason for Study.
	 * This field is the code or text using the conventions for coded fields.
	 * @return ISingleCollection<CWE> - reasonforStudy
	 */
	public ISingleCollection<CWE> getReasonforStudy() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(263);
		ISingleCollection<CWE> objDataList = new SingleCollection<CWE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CWE objCWE = (CWE)objDataType;
				objDataList.add(objCWE);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Relevant Clinical Information.
	 * this field contains the additional clinical information about the patient or specimen.
	 * @return ISingleCollection<CWE> - relevantClinicalInformation
	 */
	public ISingleCollection<CWE> getRelevantClinicalInformation() 
	{
		
		ISingleCollection<IDataType> objDataCollection =getDataType(247);
		ISingleCollection<CWE> objDataList = new SingleCollection<CWE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CWE objCWE = (CWE)objDataType;
				objDataList.add(objCWE);
			}
		}
		return objDataList;
	}
	
	/**
	 * Retrieves the Result Copies To.
	 * This field identify the people who are to receive copies of the results.  
	 * @return ISingleCollection<XCN> - resultCopiesTo
	 */
	public ISingleCollection<XCN> getResultCopiesTo() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(260);
		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 Result Handling.
	 * This field transmits information regarding the handling of the result.  
	 * @return CWE - resultHandling
	 */
	public CWE getResultHandling() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1647);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Results Rpt Status Chng Date Time.
	 * This field specify the date/time when the results were reported or status changed.
	 * @return DTM - resultsRptStatusChng_DateTime
	 */
	public DTM getResultsRptStatusChng_DateTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(255);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DTM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Result Status.
	 * This field contains the status of results for this order.  
	 * @return ID - resultStatus
	 */
	public ID getResultStatus() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(258);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Scheduled Date Time.
	 * This field is the date/time the filler scheduled an observation.
	 * @return DTM - scheduledDateTime
	 */
	public DTM getScheduledDateTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(268);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DTM)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Set ID OBR. 
	 * @return SI - setID_OBR
	 */
	public SI getSetID_OBR() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(237);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (SI)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Specimen Action Code.
	 * This field identify the action to be taken with respect to the 
	 * specimens that accompany or precede this order. 
	 * @return ID - specimenActionCode
	 */
	public ID getSpecimenActionCode() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(245);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}
	/**
	 * Retrieves the Technician.
	 * This field identify the performing technician. 
	 * @return ISingleCollection<NDL> - technician
	 */
	public ISingleCollection<NDL> getTechnician() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(266);
		ISingleCollection<NDL> objDataList = new SingleCollection<NDL>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				NDL objNDL = (NDL)objDataType;
				objDataList.add(objNDL);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Transcriptionist.
	 * This field identify the report transcriber.  
	 * @return ISingleCollection<NDL> - transcriptionist
	 */
	public ISingleCollection<NDL> getTranscriptionist() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(267);
		ISingleCollection<NDL> objDataList = new SingleCollection<NDL>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				NDL objNDL = (NDL)objDataType;
				objDataList.add(objNDL);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Transport Arranged.
	 * This field is an indicator of whether transport arrangements are known to have been made or not.  
	 * @return ID - transportArranged
	 */
	public ID getTransportArranged() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1032);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Transport Arrangement Responsibility.
	 * This field is an indicator of who is responsible for arranging transport to the planned diagnostic service.
	 * @return CWE - transportArrangementResponsibility
	 */
	public CWE getTransportArrangementResponsibility() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1031);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Transportation Mode.
	 * This field identify how (or whether) to transport a patient, when applicable. 
	 * @return ID - transportationMode
	 */
	public ID getTransportationMode() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(262);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (ID)objDataCollection.elementAt(0);
		else
			return null;
	}

	/**
	 * Retrieves the Transport Logistics of Collected Sample.
	 * This field is the means by which a sample reaches the diagnostic service provider.  
	 * @return ISingleCollection<CWE> - transportLogisticsofCollectedSample
	 */
	public ISingleCollection<CWE> getTransportLogisticsofCollectedSample() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1029);
		ISingleCollection<CWE> objDataList = new SingleCollection<CWE>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CWE objCWE = (CWE)objDataType;
				objDataList.add(objCWE);
			}
		}
		return objDataList;
	}

	/**
	 * Retrieves the Universal Service Identifier.
	 * This field contains the identifier code for the requested observation/test/battery.
	 * @return CWE - universalServiceIdentifier
	 */
	public CWE getUniversalServiceIdentifier() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(238);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Parent UniversalService Identifier.
	 * This field contains the identifier code for the parent order, as identified in ORC-8 Parent and/or OBR-29 Parent (if present), which caused this observation/test/battery to be performed.  
	 * @return CWE - parentUniversalServiceIdentifier
	 */
	public CWE getParentUniversalServiceIdentifier() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2286);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}
	/**
	 * Retrieves the Observation Group ID.
	 * This field is the identifier assigned by the producer of a result to uniquely identify the results associated with this OBR segment.
	 * @return EI - ObservationGroupID in object form.
	 */
	public EI getObservationGroupID() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2307);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (EI)objDataCollection.elementAt(0);
		else
			return null;
	}
	/**
	 * Retrieves the Parent Observation Group ID.
	 * The Parent Observation Group ID field relates this child OBR to its parent OBR segment using the Observation Group ID of the parent result.
	 * @return EI - ParentObservationGroupID in object form.
	 */
	public EI getParentObservationGroupID() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2308);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (EI)objDataCollection.elementAt(0);
		else
			return null;
	}
	/**
	 * Retrieves the Parent Order.
	 * This field relates a child order to its parent order when a parent child order relationship exists.
	 * @return EIP - parentOrder
	 */
	public EIP getParentOrder() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(222);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (EIP)objDataCollection.elementAt(0);
		else
			return null;
	}
	/**
	 * Retrieves the Alternate Placer Order Number.
	 * This field enables a shorter number to be communicated that is unique within other identifiers.
	 * @return CX - alternatePlacerOrderNumber
	 */
	public  ISingleCollection<CX> getAlternatePlacerOrderNumber() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(233);
		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;
	}
	
	/**
	 * Add the Assistant Result Interpreter.
	 * This field identify the clinical observer who assisted with the interpretation of this study.
	 * @param objName Specifies the name of the person performing a service.
	 * @param objStartDateTime Specifies the starting date and time for when the person is performing the service.
	 * @param objEndDateTime Specifies the ending date and time for when the person is performing the service. 
	 * @param strPointOfCare Specifies the code for the point where patient care is administered. 
	 * @param strRoom Specifies most general location designation. 
	 * @param strBed Specifies the code for the patient's bed. 
	 * @param objFacility Specifies site interpretation but generally describes the
	 * 							 highest level physical designation of an institution, medical center or enterprise.
	 * @param strLocationStatus Specifies the code for the status or availability of the location.
	 * @param strPatientLocationType Specifies the categorization of the location defined by facility, building, floor, point of care, room or bed. 
	 * @param strBuilding Specifies the code for the building where the person is located. 
	 * @param strFloor Specifies the code for the floor where the person is located. 
	 */
	public void addAssistantResultInterpreter(CNN objName,DTM objStartDateTime,DTM objEndDateTime,String strPointOfCare,String strRoom
			,String strBed,HD objFacility,String strLocationStatus,String strPatientLocationType,String strBuilding,
			String strFloor)
	{
		NDL assistantResultInterpreter =(NDL)getDataElement(265);
		assistantResultInterpreter.setName(objName);
		assistantResultInterpreter.setStartDateTime(objStartDateTime);
		assistantResultInterpreter.setEndDateTime(objEndDateTime);
		assistantResultInterpreter.setPointOfCare(strPointOfCare);
		assistantResultInterpreter.setRoom(strRoom);
		assistantResultInterpreter.setBed(strBed);
		assistantResultInterpreter.setFacility(objFacility);
		assistantResultInterpreter.setLocationStatus(strLocationStatus);
		assistantResultInterpreter.setPatientLocationType(strPatientLocationType);
		assistantResultInterpreter.setBuilding(strBuilding);
		assistantResultInterpreter.setFloor(strFloor);
		addAssistantResultInterpreter(assistantResultInterpreter);
	}

	/**
	 * Add the Assistant Result Interpreter.
	 * This field identify the clinical observer who assisted with the interpretation of this study.
	 * @param objassistantResultInterpreter Object of Assistant Result Interpreter.
	 */
	public void addAssistantResultInterpreter(NDL objassistantResultInterpreter)
	{
		addDataType(265,objassistantResultInterpreter);
	}

	/**
	 * Set the Assistant Result Interpreter.
	 * This field identify the clinical observer who assisted with the interpretation of this study.
	 * @param objassistantResultInterpreterList List of Assistant Result Interpreter.
	 */
	@SuppressWarnings("unchecked")
	public void setAssistantResultInterpreter(ISingleCollection<NDL> objassistantResultInterpreterList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objassistantResultInterpreterList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(265,objCollection);
	}

	/**
	 * Set the Charge to Practice.
	 * This field charge to the ordering entity for the studies performed when applicable. 
	 * @param objMonetaryAmount Specifies the amount and denomination of money associated with the charge code.
	 * @param objChargeCode Specifies code identifying the charge to the ordering entity for the services performed.
	 */
	public void setChargetoPractice(MO objMonetaryAmount,CWE objChargeCode)  
	{
		MOC chargetoPractice =(MOC)getDataElement(256);
		chargetoPractice.setMonetaryAmount(objMonetaryAmount);
		chargetoPractice.setChargeCode(objChargeCode);
		setChargetoPractice(chargetoPractice);
	}

	/**
	 * Set the Charge to Practice.
	 * This field charge to the ordering entity for the studies performed when applicable.
	 * @param objchargetoPractice Object of Charge to Practice.
	 */
	public void setChargetoPractice(MOC objchargetoPractice)
	{
		setDataType(256,objchargetoPractice);
	}

	/**
	 * Set the Collection Volume.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setCollectionVolume(String strQuantity,CWE objUnits)  
	{
		CQ collectionVolume  = (CQ)getDataElement(243);
		collectionVolume.setQuantity(strQuantity);
		collectionVolume.setUnits(objUnits);
		setCollectionVolume(collectionVolume);
	}

	/**
	 * Set the Collection Volume.
	 * @param collectionVolume Object of Collection Volume.
	 */
	public void setCollectionVolume(CQ collectionVolume)
	{
		setDataType(243,collectionVolume);
	}

	/**
	 * Add the Collector Comment.
	 * This field is for reporting additional comments related to the sample.
	 * @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 addCollectorComment(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(1030);
		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);
		addCollectorComment(cwe);
	}

	/**
	 * Add the Collector Comment.
	 * This field is for reporting additional comments related to the sample.
	 * @param objcollectorComment Object of Collector Comment.
	 */
	public void addCollectorComment(CWE objcollectorComment)
	{
		addDataType(1030,objcollectorComment);
	}

	/**
	 * Set the Collector Comment.
	 * This field is for reporting additional comments related to the sample.
	 * @param objcollectorCommentList List of Collector Comment.
	 */
	@SuppressWarnings("unchecked")
	public void setCollectorComment(ISingleCollection<CWE> objcollectorCommentList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objcollectorCommentList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1030,objCollection);
	}

	/**
	 * Add the Collector Identifier.
	 * This field identify the person, department, or facility that collected the specimen. 
	* @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 addCollectorIdentifier(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(244);
		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);
		addCollectorIdentifier(xcn);
	}

	/**
	 * Add the Collector Identifier.
	 * This field identify the person, department, or facility that collected the specimen. 
	 * @param objcollectorIdentifier Object of Collector Identifier.
	 */
	public void addCollectorIdentifier(XCN objcollectorIdentifier)
	{
		addDataType(244,objcollectorIdentifier);
	}

	/**
	 * Set the Collector Identifier.
	 * This field identify the person, department, or facility that collected the specimen. 
	 * @param objcollectorIdentifierList List of Collector Identifier.
	 */
	@SuppressWarnings("unchecked")
	public void setCollectorIdentifier(ISingleCollection<XCN> objcollectorIdentifierList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objcollectorIdentifierList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(244,objCollection);
	}

	/**
	 * Set the Danger Code.
	 * This field contains the code and/or text indicating any known or suspected 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 setDangerCode(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(246);
		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);
		setDangerCode(cwe);
	}

	/**
	 * Set the Danger Code.
	 * This field contains the code and/or text indicating any known or suspected patient.
	 * @param objdangerCode Object of Danger Code.
	 */
	public void setDangerCode(CWE objdangerCode)
	{
		setDataType(246,objdangerCode);
	}

	/**
	 * Set the Diagnostic Serv Sect ID.
	 * This field is the section of the diagnostic service where the observation is performed.
	 * @param strDiagnosticServSectID Specifies Diagnostic ServSect ID.  
	 */
	public void setDiagnosticServSectID(String strDiagnosticServSectID) 
	{
		ID diagnosticServSectID  = (ID)getDataElement(257);
		diagnosticServSectID.setValue(strDiagnosticServSectID);
		setDiagnosticServSectID(diagnosticServSectID);
	}

	/**
	 * Set the Diagnostic Serv Sect ID.
	 * This field is the section of the diagnostic service where the observation is performed.
	 * @param objdiagnosticServSectID Object of Diagnostic Serv Sect ID. 
	 */
	public void setDiagnosticServSectID(ID objdiagnosticServSectID)
	{
		setDataType(257,objdiagnosticServSectID);
	}

	/**
	 * Set the Escort Required.
	 * This field is an indicator that the patient needs to be escorted to the diagnostic service department.  
	 * @param strEscortRequired Specifies Escort Required.  
	 */
	public void setEscortRequired(String strEscortRequired) 
	{
		ID escortRequired  = (ID)getDataElement(1033);
		escortRequired.setValue(strEscortRequired);
		setEscortRequired(escortRequired);
	}

	/**
	 * Set the Escort Required.
	 * This field is an indicator that the patient needs to be escorted to the diagnostic service department.
	 * @param escortRequired Object of Escort Required.
	 */
	public void setEscortRequired(ID escortRequired)
	{
		setDataType(1033,escortRequired);
	}

	/**
	 * Set the Filler Field1.
	 * @param strFillerField1 Specifies Filler Field1.  
	 */
	public void setFillerField1(String strFillerField1) 
	{
		ST fillerField1  = (ST)getDataElement(253);
		fillerField1.setValue(strFillerField1);
		setFillerField1(fillerField1);
	}

	/**
	 * Set the Filler Field1.
	 * @param objfillerField1 Object of Filler Field1.
	 */
	public void setFillerField1(ST objfillerField1)
	{
		setDataType(253,objfillerField1);
	}

	/**
	 * Set the Filler Field2.
	 * @param strFillerField2 Specifies Filler Field2.  
	 */
	public void setFillerField2(String strFillerField2)  
	{
		ST fillerField2  = (ST)getDataElement(254);
		fillerField2.setValue(strFillerField2);
		setFillerField2(fillerField2);
	}

	/**
	 * Set the Filler Field2.
	 * @param objfillerField2 Object of Filler Field2.
	 */
	public void setFillerField2(ST objfillerField2)
	{
		setDataType(254,objfillerField2);
	}

	/**
	 * Set the Filler Order Number.
	 * This field specify the order number associated with the filling application. 
	 * @param strEntityIdentifier Specifies to be unique within the series of identifiers created by the 
	 * 								assigning authority, defined by a hierarchic designator
	 * @param strNamespaceId Specifies the assigning authority is a unique identifier of the system 
	 * 							(or organization or agency or department) that creates the data. 
	 * @param strUniversalId Specifies a string formatted according to the scheme defined by the third component universal ID type.
	 * 							It is intended to be unique over time within the UID type.
	 * @param strUniversalIdType Governs the interpretation of the Universal ID.  
	 */
	public void setFillerOrderNumber(String strEntityIdentifier,String strNamespaceId,String strUniversalId,
			String strUniversalIdType)
	{
		EI fillerOrderNumber  = (EI)getDataElement(217);
		fillerOrderNumber.setEntityIdentifier(strEntityIdentifier);
		fillerOrderNumber.setNamespaceId(strNamespaceId);
		fillerOrderNumber.setUniversalId(strUniversalId);
		fillerOrderNumber.setUniversalIdType(strUniversalIdType);
		setFillerOrderNumber(fillerOrderNumber);
	}

	/**
	 * Set the Filler Order Number.
	 * This field specify the order number associated with the filling application.
	 * @param objfillerOrderNumber Object of Filler Order Number.
	 */
	public void setFillerOrderNumber(EI objfillerOrderNumber)
	{
		setDataType(217,objfillerOrderNumber);
	}

	/**
	 * Add the Filler Supplemental Service Information.
	 * This field contains supplemental service information sent from the filler system to 
	 * the placer system for the procedure code reported in OBR-4 Universal Service 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 addFillerSupplementalServiceInformation(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(1475);
		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);
		addFillerSupplementalServiceInformation(cwe);
	}

	/**
	 * Add the Filler Supplemental Service Information.
	 * This field contains supplemental service information sent from the filler system to 
	 * the placer system for the procedure code reported in OBR-4 Universal Service ID.  
	 * @param objfillerSupplementalServiceInformation Object of Filler Supplemental Service Information.
	 */
	public void addFillerSupplementalServiceInformation(CWE objfillerSupplementalServiceInformation)
	{
		addDataType(1475,objfillerSupplementalServiceInformation);
	}

	/**
	 * Set the Filler Supplemental Service Information.
	 * This field contains supplemental service information sent from the filler system to 
	 * the placer system for the procedure code reported in OBR-4 Universal Service ID.  
	 * @param objfillerSupplementalServiceInformationList List of Filler Supplemental Service Information.
	 */
	@SuppressWarnings("unchecked")
	public void setFillerSupplementalServiceInformation(ISingleCollection<CWE> objfillerSupplementalServiceInformationList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objfillerSupplementalServiceInformationList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1475,objCollection);
	}

	/**
	 * Set the Medically Necessary Duplicate Procedure Reason.
	 * This field intended to provide financial systems information on who to bill for duplicate procedures.  
	  * @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 setMedicallyNecessaryDuplicateProcedureReason(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(1646);
		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);
		setMedicallyNecessaryDuplicateProcedureReason(cwe);
	}

	/**
	 * Set the Medically Necessary Duplicate Procedure Reason.
	 * This field intended to provide financial systems information on who to bill for duplicate procedures.
	 * @param medicallyNecessaryDuplicateProcedureReason Object of Medically Necessary Duplicate Procedure Reason.
	 */
	public void setMedicallyNecessaryDuplicateProcedureReason(CWE medicallyNecessaryDuplicateProcedureReason)
	{
		setDataType(1646,medicallyNecessaryDuplicateProcedureReason);
	}

	/**
	 * Set the Number of Sample Containers.
	 * This field identify the number of containers for a given sample.   
	 * @param strNumberofSampleContainers Specifies Number of Sample Containers.
	 */
	public void setNumberofSampleContainers(String strNumberofSampleContainers) 
	{
		NM numberofSampleContainers  = (NM)getDataElement(1028);
		numberofSampleContainers.setValue(strNumberofSampleContainers);
		setNumberofSampleContainers(numberofSampleContainers);
	}

	/**
	 * Set the Number of Sample Containers.
	 * This field identify the number of containers for a given sample.
	 * @param numberofSampleContainers Object of Number of Sample Containers.
	 */
	public void setNumberofSampleContainers(NM numberofSampleContainers)
	{
		setDataType(1028,numberofSampleContainers);
	}

	/**
	 * Set the Observation Date Time.
	 * This field is the clinically relevant date/time of the observation.
	 * @param strTime Specifies a point in time using a 24-hour clock notation. 
	 */
	public void setObservationDateTime(String strTime)  
	{
		DTM observationDateTime  = (DTM)getDataElement(241);
		observationDateTime.setValue(strTime);
		setObservationDateTime(observationDateTime);
	}

	/**
	 * Set the Observation Date Time.
	 * This field is the clinically relevant date/time of the observation.
	 * @param observationDateTime Object of Observation Date Time.
	 */
	public void setObservationDateTime(DTM observationDateTime)
	{
		setDataType(241,observationDateTime);
	}

	/**
	 * Set the Observation End Date Time.
	 * This field contains the end date and time of a study or timed specimen collection. 
	 * @param strTime Specifies a point in time using a 24-hour clock notation. 
	 */
	public void setObservationEndDateTime(String strTime)  
	{
		DTM observationEndDateTime  = (DTM)getDataElement(242);
		observationEndDateTime.setValue(strTime);		
		setObservationEndDateTime(observationEndDateTime);
	}

	/**
	 * Set the Observation End Date Time.
	 * This field contains the end date and time of a study or timed specimen collection.
	 * @param objobservationEndDateTime Object of Observation End Date Time.
	 */
	public void setObservationEndDateTime(DTM objobservationEndDateTime)
	{
		setDataType(242,objobservationEndDateTime);
	}

	/**
	 * Add the Order Callback Phone Number.
	 * This field contains the telephone number for reporting a status or a result using 
	 * the standard format with extension and/or beeper number when applicable.
	
	* @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 addOrderCallbackPhoneNumber(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(250);
//		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);
		addOrderCallbackPhoneNumber(xtn);
	}

	/**
	 * Add the Order Callback Phone Number.
	 * This field contains the telephone number for reporting a status or a result using 
	 * the standard format with extension and/or beeper number when applicable.
	 * @param orderCallbackPhoneNumber Object of Order Callback Phone Number.
	 */
	public void addOrderCallbackPhoneNumber(XTN orderCallbackPhoneNumber)
	{
		addDataType(250,orderCallbackPhoneNumber);
	}

	/**
	 * Set the Order Callback Phone Number.
	 * This field contains the telephone number for reporting a status or a result using 
	 * the standard format with extension and/or beeper number when applicable.
	 * @param orderCallbackPhoneNumberList List of Order Callback Phone Number.
	 */
	@SuppressWarnings("unchecked")
	public void setOrderCallbackPhoneNumber(ISingleCollection<XTN> orderCallbackPhoneNumberList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)orderCallbackPhoneNumberList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(250,objCollection);
	}

	/**
	 * Add the Ordering Provider.
	 * This field identify the provider who ordered the test.
	* @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 addOrderingProvider(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(226);
		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);
		addOrderingProvider(xcn);
	}

	/**
	 * Add the Ordering Provider.
	 * This field identify the provider who ordered the test.
	 * @param objorderingProvider Object of Ordering Provider.
	 */
	public void addOrderingProvider(XCN objorderingProvider)
	{
		addDataType(226,objorderingProvider);
	}

	/**
	 * Set the Ordering Provider.
	 * This field identify the provider who ordered the test.
	 * @param objorderingProviderList List of Ordering Provider.
	 */
	@SuppressWarnings("unchecked")
	public void setOrderingProvider(ISingleCollection<XCN> objorderingProviderList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objorderingProviderList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(226,objCollection);
	}

	/**
	 * Set the Parent.
	 * This field identical to ORC-8-parent. This field relates a child to its parent when a parent child relationship exists.
	 * @param objPlacerAssignedIdentifier Specifies an identifier assigned to an entity by the placer system.  
	 * @param objFillerAssignedIdentifier Specifies an identifier assigned to an entity by the filler system. 
	 */
	public void setParent(EI objPlacerAssignedIdentifier,EI objFillerAssignedIdentifier) 
	{
		EIP parent =(EIP)getDataElement(261);
		parent.setPlacerAssignedIdentifier(objPlacerAssignedIdentifier);
		parent.setFillerAssignedIdentifier(objFillerAssignedIdentifier);
		setParent(parent);
	}

	/**
	 * Set the Parent.
	 * This field identical to ORC-8-parent. This field relates a child to its parent when a parent child relationship exists.
	 * @param parent Object of Parent.
	 */
	public void setParent(EIP parent)
	{
		setDataType(261,parent);
	}

	/**
	 * Set the Parent Result.
	 * This field is defined to make it available for other types of linkages (e.g., toxicology).  
	 * @param objParentObservationIdentifier Contains the unique identifier of the parent observation as 
	 * 											defined in the OBX-3 of the parent result. 
	 * @param objParentObservationSubidentifier Contains the sub-ID of the parent result as defined
	 * 												 in the OBX-4 of the parent result. 
	 * @param objParentObservationValueDescriptor Contains a descriptor of the parent observation 
	 * 												value as specified in the OBX-5 of the parent result.
	 */
	public void setParentResult(CWE objParentObservationIdentifier,OG objParentObservationSubidentifier,TX objParentObservationValueDescriptor) 
	{
		PRL parentResult =(PRL)getDataElement(259);
		parentResult.setParentObservationIdentifier(objParentObservationIdentifier);
		parentResult.setParentObservationSubidentifier(objParentObservationSubidentifier);
		parentResult.setParentObservationValueDescriptor(objParentObservationValueDescriptor);
		setParentResult(parentResult);
	}

	/**
	 * Set the Parent Result.
	 * This field is defined to make it available for other types of linkages (e.g., toxicology).
	 * @param objparentResult Object of Parent Result.
	 */
	public void setParentResult(PRL objparentResult)
	{
		setDataType(259,objparentResult);
	}

	/**
	 * Set the Placer Field1.
	 * @param strPlacerField1 Specifies Placer Field1.  
	 */
	public void setPlacerField1(String strPlacerField1) 
	{
		ST placerField1  = (ST)getDataElement(251);
		placerField1.setValue(strPlacerField1);
		setPlacerField1(placerField1);
	}

	/**
	 * Set the Placer Field1.
	 * @param objplacerField1 Object of Placer Field1.
	 */
	public void setPlacerField1(ST objplacerField1)
	{
		setDataType(251,objplacerField1);
	}

	/**
	 * Set the Placer Field2.
	 * @param strPlacerField2 Specifies Placer Field1.  
	 */
	public void setPlacerField2(String strPlacerField2) 
	{
		ST placerField2  = (ST)getDataElement(252);
		placerField2.setValue(strPlacerField2);
		setPlacerField2(placerField2);
	}

	/**
	 * Set the Placer Field2.
	 * @param objplacerField2 Object of Placer Field2.
	 */
	public void setPlacerField2(ST objplacerField2)
	{
		setDataType(252,objplacerField2);
	}

	/**
	 * Set the Placer Order Number.
	 * This field specify a special case of the Entity Identifier data type.
	 * @param strEntityIdentifier Specifies to be unique within the series of identifiers created by the 
	 * 								assigning authority, defined by a hierarchic designator
	 * @param strNamespaceId Specifies the assigning authority is a unique identifier of the system 
	 * 							(or organization or agency or department) that creates the data. 
	 * @param strUniversalId Specifies a string formatted according to the scheme defined by the third component universal ID type.
	 * 							It is intended to be unique over time within the UID type.
	 * @param strUniversalIdType Governs the interpretation of the Universal ID.  
	 */
	public void setPlacerOrderNumber(String strEntityIdentifier,String strNamespaceId,String strUniversalId,
			String strUniversalIdType)
	{
		EI placerOrderNumber  = (EI)getDataElement(216);
		placerOrderNumber.setEntityIdentifier(strEntityIdentifier);
		placerOrderNumber.setNamespaceId(strNamespaceId);
		placerOrderNumber.setUniversalId(strUniversalId);
		placerOrderNumber.setUniversalIdType(strUniversalIdType);
		setPlacerOrderNumber(placerOrderNumber);
	}

	/**
	 * Set the Placer Order Number.
	 * This field specify a special case of the Entity Identifier data type.
	 * @param objplacerOrderNumber Object of Placer Order Number.
	 */
	public void setPlacerOrderNumber(EI objplacerOrderNumber)
	{
		setDataType(216,objplacerOrderNumber);
	}

	/**
	 * Add the Placer Supplemental Service Information.
	 * This field contains supplemental service information sent from the placer
	 * system to the filler system for the universal procedure code reported in OBR-4 Universal Service 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 addPlacerSupplementalServiceInformation (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(1474);
		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);
		addPlacerSupplementalServiceInformation(cwe);
	}

	/**
	 * Add the Placer Supplemental Service Information.
	 * This field contains supplemental service information sent from the placer
	 * system to the filler system for the universal procedure code reported in OBR-4 Universal Service ID. 
	 * @param objplacerOrderNumber Object of Placer Supplemental Service Information.
	 */
	public void addPlacerSupplementalServiceInformation(CWE objplacerOrderNumber)
	{
		addDataType(1474,objplacerOrderNumber);
	}

	/**
	 * set the Placer Supplemental Service Information.
	 * This field contains supplemental service information sent from the placer
	 * system to the filler system for the universal procedure code reported in OBR-4 Universal Service ID. 
	 * @param objplacerOrderNumberList List of Placer Supplemental Service Information.
	 */
	@SuppressWarnings("unchecked")
	public void setPlacerSupplementalServiceInformation(ISingleCollection<CWE> objplacerOrderNumberList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objplacerOrderNumberList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1474,objCollection);
	}

	/**
	 * Add the Planned Patient Transport Comment.
	 * This field is the code or free text comments on special requirements for 
	 * the transport of the patient to the diagnostic service department. 
	 * @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 addPlannedPatientTransportComment (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(1034);
		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);
		addPlannedPatientTransportComment(cwe);
	}

	/**
	 * Add the Planned Patient Transport Comment.
	 * This field is the code or free text comments on special requirements for 
	 * the transport of the patient to the diagnostic service department. 
	 * @param objplannedPatientTransportComment Object of Planned Patient Transport Comment.
	 */
	public void addPlannedPatientTransportComment(CWE objplannedPatientTransportComment)
	{
		addDataType(1034,objplannedPatientTransportComment);
	}

	/**
	 * Set the Planned Patient Transport Comment.
	 * This field is the code or free text comments on special requirements for 
	 * the transport of the patient to the diagnostic service department. 
	 * @param objplannedPatientTransportCommentList List of Planned Patient Transport Comment.
	 */
	@SuppressWarnings("unchecked")
	public void setPlannedPatientTransportComment(ISingleCollection<CWE> objplannedPatientTransportCommentList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objplannedPatientTransportCommentList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1034,objCollection);
	}

	/**
	 * Set the Principal Result Interpreter.
	 * This field identify the physician or other clinician who interpreted the
	 * observation and is responsible for the report content.
	 * @param objName Specifies the name of the person performing a service.
	 * @param objStartDateTime Specifies the starting date and time for when the person is performing the service.
	 * @param objEndDateTime Specifies the ending date and time for when the person is performing the service. 
	 * @param strPointOfCare Specifies the code for the point where patient care is administered. 
	 * @param strRoom Specifies most general location designation. 
	 * @param strBed Specifies the code for the patient's bed. 
	 * @param objFacility Specifies site interpretation but generally describes the
	 * 							 highest level physical designation of an institution, medical center or enterprise.
	 * @param strLocationStatus Specifies the code for the status or availability of the location.
	 * @param strPatientLocationType Specifies the categorization of the location defined by facility, building, floor, point of care, room or bed. 
	 * @param strBuilding Specifies the code for the building where the person is located. 
	 * @param strFloor Specifies the code for the floor where the person is located. 
	 */
	public void setPrincipalResultInterpreter(CNN objName,DTM objStartDateTime,DTM objEndDateTime,String strPointOfCare,String strRoom
			,String strBed,HD objFacility,String strLocationStatus,String strPatientLocationType,String strBuilding,
			String strFloor)
	{
		NDL principalResultInterpreter =(NDL)getDataElement(264);
		principalResultInterpreter.setName(objName);
		principalResultInterpreter.setStartDateTime(objStartDateTime);
		principalResultInterpreter.setEndDateTime(objEndDateTime);
		principalResultInterpreter.setPointOfCare(strPointOfCare);
		principalResultInterpreter.setRoom(strRoom);
		principalResultInterpreter.setBed(strBed);
		principalResultInterpreter.setFacility(objFacility);
		principalResultInterpreter.setLocationStatus(strLocationStatus);
		principalResultInterpreter.setPatientLocationType(strPatientLocationType);
		principalResultInterpreter.setBuilding(strBuilding);
		principalResultInterpreter.setFloor(strFloor);
		setPrincipalResultInterpreter(principalResultInterpreter);
	}

	/**
	 * Set the Principal Result Interpreter.
	 * This field identify the physician or other clinician who interpreted the
	 * observation and is responsible for the report content.
	 * @param objprincipalResultInterpreter Object of Principal Result Interpreter.
	 */
	public void setPrincipalResultInterpreter(NDL objprincipalResultInterpreter)
	{
		setDataType(264,objprincipalResultInterpreter);
	}


	/**
	 * Set the Procedure Code.
	 * This field contains a unique identifier assigned to the procedure, if any, associated with the charge. 
	 * @param strIdentifier Specifies sequence of characters (the code) that uniquely identifies
	 * 						 the item being referenced by the CNE.
	 * @param strText Specifies descriptive or textual name of the identifier, e.g., myocardial infarction 
	 * @param strNameOfCodingSystem Specifies the coding scheme being used in the identifier component. 
	 * @param strAlternateIdentifier Specifies the local or user seen code as described. 
	 * @param strAlternateText Specifies descriptive or textual name of the alternate identifier.  
	 * @param strNameOfAlternateCodingSystem Specifies the coding scheme being used in the alternate identifier 
	 * 											component.  
	 * @param strCodingSystemVersionID Specifies the version ID for the coding system. 
	 * @param strAlternateCodingSystemVersionID Specifies the version ID for the coding system .
	 * @param strOriginalText Specifies the original text that was available to an automated process or a human 
	 * 							before a specific code was assigned.
	 * @param strSecondAlternateIdentifier Specifies a sequence of characters that uniquely identifies the second alternate code
	 * @param strSecondAlternateText Specifies a the textual information of the second alternate code
	 * @param strNameOfSecondAltenateCodingSystem Specifies the second coding scheme being used in the identifier component.
	 * @param strSecondAlternateCodingSystemVersionID Specifies version ID of Second alternative coding system.
	 * @param strCodingSystemOID contains the ISO Object identifier for the coding system.
	 * @param strValueSetOID contains the value set from which CNE-1 is obtained 
	 * @param strValueSetVersionID contains the version of the value set identified by CNE-15. 
	 * @param strAlternateCodingSystemOID contains the ISO Object identifier for the alternate coding system
	 * @param strAlternateValueSetOID contains the value set from which CNE-4 is obtained
	 * @param strAlternateValueSetVersionID contains the version of the value set identified by CNE-18. 
	 * @param strSecondAlternateCodingSystemOID contains the value set from which CNE-12 is obtained
	 * @param strSecondAlternateValueSetOID contains the value set from which CNE-10 is obtained
	 * @param strSecondAlternateValueSetVersionID contains the version of the value set identified by CNE-21. 
	 */
	public void setProcedureCode(String strIdentifier,String strText,String strNameOfCodingSystem,String strAlternateIdentifier,
			String strAlternateText,String strNameOfAlternateCodingSystem,String strCodingSystemVersionID,
			String strAlternateCodingSystemVersionID,String strOriginalText, String strSecondAlternateIdentifier, String strSecondAlternateText,
			String strNameOfSecondAltenateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, 
			String strValueSetOID, String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID,
			String strAlternateValueSetVersionID, String strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID,
			String strSecondAlternateValueSetVersionID)
	{
		CNE cne  = (CNE)getDataElement(393);
		cne.setIdentifier(strIdentifier);
		cne.setText(strText);
		cne.setNameOfCodingSystem(strNameOfCodingSystem);
		cne.setAlternateIdentifier(strAlternateIdentifier);
		cne.setAlternateText(strAlternateText);
		cne.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem);
		cne.setCodingSystemVersionID(strCodingSystemVersionID);
		cne.setAlternateCodingSystemVersionID(strAlternateCodingSystemVersionID);
		cne.setOriginalText(strOriginalText); 
		cne.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cne.setSecondAlternateText(strSecondAlternateText);
		cne.setNameofSecondAlternateCodingSystem(strNameOfSecondAltenateCodingSystem);
		cne.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cne.setCodingSystemOID(strCodingSystemOID);
		cne.setValueSetOID(strValueSetOID);
		cne.setValueSetVersionID(strValueSetVersionID);
		cne.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cne.setAlternateValueSetOID(strAlternateValueSetOID);
		cne.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cne.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cne.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cne.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID);
		setProcedureCode(cne);
	}

	/**
	 * Set the Procedure Code.
	 * This field contains a unique identifier assigned to the procedure, if any, associated with the charge.
	 * @param objprocedureCode Object of Procedure Code.
	 */
	public void setProcedureCode(CNE objprocedureCode)
	{
		setDataType(393,objprocedureCode);
	}

	/**
	 * Add the Procedure Code Modifier.
	 * This field contains the procedure code modifier to the procedure code 
	 * reported in OBR-44-procedure code, when applicable.
	* @param strIdentifier Specifies sequence of characters (the code) that uniquely identifies
	 * 						 the item being referenced by the CNE.
	 * @param strText Specifies descriptive or textual name of the identifier, e.g., myocardial infarction 
	 * @param strNameOfCodingSystem Specifies the coding scheme being used in the identifier component. 
	 * @param strAlternateIdentifier Specifies the local or user seen code as described. 
	 * @param strAlternateText Specifies descriptive or textual name of the alternate identifier.  
	 * @param strNameOfAlternateCodingSystem Specifies the coding scheme being used in the alternate identifier 
	 * 											component.  
	 * @param strCodingSystemVersionID Specifies the version ID for the coding system. 
	 * @param strAlternateCodingSystemVersionID Specifies the version ID for the coding system .
	 * @param strOriginalText Specifies the original text that was available to an automated process or a human 
	 * 							before a specific code was assigned.
	 * @param strSecondAlternateIdentifier Specifies a sequence of characters that uniquely identifies the second alternate code
	 * @param strSecondAlternateText Specifies a the textual information of the second alternate code
	 * @param strNameOfSecondAltenateCodingSystem Specifies the second coding scheme being used in the identifier component.
	 * @param strSecondAlternateCodingSystemVersionID Specifies version ID of Second alternative coding system.
	 * @param strCodingSystemOID contains the ISO Object identifier for the coding system.
	 * @param strValueSetOID contains the value set from which CNE-1 is obtained 
	 * @param strValueSetVersionID contains the version of the value set identified by CNE-15. 
	 * @param strAlternateCodingSystemOID contains the ISO Object identifier for the alternate coding system
	 * @param strAlternateValueSetOID contains the value set from which CNE-4 is obtained
	 * @param strAlternateValueSetVersionID contains the version of the value set identified by CNE-18. 
	 * @param strSecondAlternateCodingSystemOID contains the value set from which CNE-12 is obtained
	 * @param strSecondAlternateValueSetOID contains the value set from which CNE-10 is obtained
	 * @param strSecondAlternateValueSetVersionID contains the version of the value set identified by CNE-21. 
	 */ 
	public void addProcedureCodeModifier(String strIdentifier,String strText,String strNameOfCodingSystem,String strAlternateIdentifier,
			String strAlternateText,String strNameOfAlternateCodingSystem,String strCodingSystemVersionID,
			String strAlternateCodingSystemVersionID,String strOriginalText, String strSecondAlternateIdentifier, String strSecondAlternateText,
			String strNameOfSecondAltenateCodingSystem, String strSecondAlternateCodingSystemVersionID, String strCodingSystemOID, 
			String strValueSetOID, String strValueSetVersionID, String strAlternateCodingSystemOID, String strAlternateValueSetOID,
			String strAlternateValueSetVersionID, String strSecondAlternateCodingSystemOID, String strSecondAlternateValueSetOID,
			String strSecondAlternateValueSetVersionID)
	{
		CNE cne  = (CNE)getDataElement(1316);
		cne.setIdentifier(strIdentifier);
		cne.setText(strText);
		cne.setNameOfCodingSystem(strNameOfCodingSystem);
		cne.setAlternateIdentifier(strAlternateIdentifier);
		cne.setAlternateText(strAlternateText);
		cne.setNameOfAlternateCodingSystem(strNameOfAlternateCodingSystem);
		cne.setCodingSystemVersionID(strCodingSystemVersionID);
		cne.setAlternateCodingSystemVersionID(strAlternateCodingSystemVersionID);
		cne.setOriginalText(strOriginalText); 
		cne.setSecondAlternateIdentifier(strSecondAlternateIdentifier);
		cne.setSecondAlternateText(strSecondAlternateText);
		cne.setNameofSecondAlternateCodingSystem(strNameOfSecondAltenateCodingSystem);
		cne.setSecondAlternateCodingSystemVersionID(strSecondAlternateCodingSystemVersionID);
		cne.setCodingSystemOID(strCodingSystemOID);
		cne.setValueSetOID(strValueSetOID);
		cne.setValueSetVersionID(strValueSetVersionID);
		cne.setAlternateCodingSystemOID(strAlternateCodingSystemOID);
		cne.setAlternateValueSetOID(strAlternateValueSetOID);
		cne.setAlternateValueSetVersionID(strAlternateValueSetVersionID);
		cne.setSecondAlternateCodingSystemOID(strSecondAlternateCodingSystemOID);
		cne.setSecondAlternateValueSetOID(strSecondAlternateValueSetOID);
		cne.setSecondAlternateValueSetVersionID(strSecondAlternateValueSetVersionID);
		addProcedureCodeModifier(cne);
	}

	/**
	 * Add the Procedure Code Modifier.
	 * This field contains the procedure code modifier to the procedure code 
	 * reported in OBR-44-procedure code, when applicable.
	 * @param objprocedureCodeModifier Object of Procedure Code Modifier.
	 */
	public void addProcedureCodeModifier(CNE objprocedureCodeModifier)
	{
		addDataType(1316,objprocedureCodeModifier);
	}

	/**
	 * Set the Procedure Code Modifier.
	 * This field contains the procedure code modifier to the procedure code 
	 * reported in OBR-44-procedure code, when applicable.
	 * @param objprocedureCodeModifierList List of Procedure Code Modifier.
	 */
	@SuppressWarnings("unchecked")
	public void setProcedureCodeModifier(ISingleCollection<CNE> objprocedureCodeModifierList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objprocedureCodeModifierList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1316,objCollection);
	}

	/**
	 * Add the Reason for Study.
	 * This field is the code or text using the conventions for coded fields.
	 * @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 addReasonforStudy(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(263);
		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);
		addReasonforStudy(cwe);
	}

	/**
	 * Add the Reason for Study.
	 * This field is the code or text using the conventions for coded fields.
	 * @param objreasonforStudy Object of Reason for Study.
	 */
	public void addReasonforStudy(CWE objreasonforStudy)
	{
		addDataType(263,objreasonforStudy);
	}

	/**
	 * set the Reason for Study.
	 * This field is the code or text using the conventions for coded fields.
	 * @param objreasonforStudyList List of Reason for Study.
	 */
	@SuppressWarnings("unchecked")
	public void setReasonforStudy(ISingleCollection<CWE> objreasonforStudyList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objreasonforStudyList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(263,objCollection);
	}	
	/**
	 * set the Relevant Clinical Information.
	 * This field contains the additional clinical information about the patient or specimen.
	 * @param objreasonforStudyList List of Reason for Study.
	 */
	@SuppressWarnings("unchecked")
	public void setRelevantClinicalInformation(ISingleCollection<CWE> objrelevantClinicalInformationList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objrelevantClinicalInformationList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(247,objCollection);
	}	

	/**
	 * Add the Relevant Clinical Information.
	 * This field contains the additional clinical information about the patient or specimen.  
	 * @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 addRelevantClinicalInformation(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(247);
		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);
		addRelevantClinicalInformation(cwe);
	}

	/**
	 * Add the Relevant Clinical Information.
	 * This field contains additional clinical information about the patient or specimen. 
	 * @param objrelevantClinicalInformation Object .
	 */
	public void addRelevantClinicalInformation(CWE objrelevantClinicalInformation)
	{
		addDataType(247,objrelevantClinicalInformation);
	}

	/**
	 * Add the Result Copies To.
	 * This field identify the people who are to receive copies of the results.  
	 * @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 addResultCopiesTo(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(260);
		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);
		addResultCopiesTo(xcn);
	}

	/**
	 * Add the Result Copies To.
	 * This field identify the people who are to receive copies of the results.  
	 * @param objresultCopiesTo Object of Result Copies To.
	 */
	public void addResultCopiesTo(XCN objresultCopiesTo)
	{
		addDataType(260,objresultCopiesTo);
	}

	/**
	 * Set the Result Copies To.
	 * This field identify the people who are to receive copies of the results.  
	 * @param objresultCopiesToList List of Result Copies To.
	 */
	@SuppressWarnings("unchecked")
	public void setResultCopiesTo(ISingleCollection<XCN> objresultCopiesToList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objresultCopiesToList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(260,objCollection);
	}

	/**
	 * Set the Result Handling.
	 * This field transmits information regarding the handling of the result.
	 * @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 setResultHandling(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(1647);
		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);
		setResultHandling(cwe);
	}

	/**
	 * Set the Result Handling.
	 * This field transmits information regarding the handling of the result.
	 * @param objresultHandling Object of Result Handling.
	 */
	public void setResultHandling(CWE objresultHandling)
	{
		setDataType(1647,objresultHandling);
	}

	/**
	 * Set the Results Rpt Status Chng Date Time.
	 * This field specify the date/time when the results were reported or status changed.
	 * @param strTime Specifies a point in time using a 24-hour clock notation. 
	 * 
	 */
	public void setResultsRptStatusChng_DateTime(String strTime) 
	{
		DTM resultsRptStatusChng_DateTime  = (DTM)getDataElement(255);
		resultsRptStatusChng_DateTime.setValue(strTime);		
		setResultsRptStatusChng_DateTime(resultsRptStatusChng_DateTime);
	}

	/**
	 * Set the Results Rpt Status Chng Date Time.
	 * This field specify the date/time when the results were reported or status changed.
	 * @param objresultsRptStatusChng_DateTime Object of Results Rpt Status Chng Date Time.
	 */
	public void setResultsRptStatusChng_DateTime(DTM objresultsRptStatusChng_DateTime)
	{
		setDataType(255,objresultsRptStatusChng_DateTime);
	}

	/**
	 * Set the Result Status.
	 * This field contains the status of results for this order.
	 * @param strResultStatus Specifies Result Status.
	 */
	public void setResultStatus(String strResultStatus) 
	{
		ID resultStatus  = (ID)getDataElement(258);
		resultStatus.setValue(strResultStatus);
		setResultStatus(resultStatus);
	}

	/**
	 * Set the Result Status.
	 * This field contains the status of results for this order.
	 * @param objresultStatus Object of Result Status.
	 */
	public void setResultStatus(ID objresultStatus)
	{
		setDataType(258,objresultStatus);
	}

	/**
	 * Set the Scheduled Date Time.
	 * This field is the date/time the filler scheduled an observation.
	 * @param strTime Specifies a point in time using a 24-hour clock notation.
	 * 
	 */
	public void setScheduledDateTime(String strTime) 
	{
		DTM scheduledDateTime  = (DTM)getDataElement(268);
		scheduledDateTime.setValue(strTime);		
		setScheduledDateTime(scheduledDateTime);
	}

	/**
	 * Set the Scheduled Date Time.
	 * This field is the date/time the filler scheduled an observation.
	 * @param objscheduledDateTime Object of Scheduled Date Time.
	 */
	public void setScheduledDateTime(DTM objscheduledDateTime)
	{
		setDataType(268,objscheduledDateTime);
	}

	/**
	 * Set the Set ID OBR.
	 * @param strSetID_OBR Specifies setID_OBR.
	 */
	public void setSetID_OBR(String strSetID_OBR) 
	{
		SI setID_OBR  = (SI)getDataElement(237);
		setID_OBR.setValue(strSetID_OBR);
		setSetID_OBR(setID_OBR);
	}

	/**
	 * Set the Set ID OBR.
	 * @param objsetID_OBR Object of Set ID OBR.
	 */
	public void setSetID_OBR(SI objsetID_OBR)
	{
		setDataType(237,objsetID_OBR);
	}

	/**
	 * Set the Specimen Action Code.
	 * This field identify the action to be taken with respect to the 
	 * specimens that accompany or precede this order. 
	 * @param strSpecimenActionCode Specifies Specimen Action Code.
	 */
	public void setSpecimenActionCode(String strSpecimenActionCode) 
	{
		ID specimenActionCode  = (ID)getDataElement(245);
		specimenActionCode.setValue(strSpecimenActionCode);
		setSpecimenActionCode(specimenActionCode);
	}

	/**
	 * Set the Specimen Action Code.
	 * This field identify the action to be taken with respect to the 
	 * specimens that accompany or precede this order. 
	 * @param objspecimenActionCode Object of Specimen Action Code.
	 */
	public void setSpecimenActionCode(ID objspecimenActionCode)
	{
		setDataType(245,objspecimenActionCode);
	}
	/**
	 * Add the Technician.
	 * This field identify the performing technician.
	 * @param objName Specifies the name of the person performing a service.
	 * @param objStartDateTime Specifies the starting date and time for when the person is performing the service.
	 * @param objEndDateTime Specifies the ending date and time for when the person is performing the service. 
	 * @param strPointOfCare Specifies the code for the point where patient care is administered. 
	 * @param strRoom Specifies most general location designation. 
	 * @param strBed Specifies the code for the patient's bed. 
	 * @param objFacility Specifies site interpretation but generally describes the
	 * 							 highest level physical designation of an institution, medical center or enterprise.
	 * @param strLocationStatus Specifies the code for the status or availability of the location.
	 * @param strPatientLocationType Specifies the categorization of the location defined by facility, building, floor, point of care, room or bed. 
	 * @param strBuilding Specifies the code for the building where the person is located. 
	 * @param strFloor Specifies the code for the floor where the person is located. 
	 */
	public void addTechnician(CNN objName,DTM objStartDateTime,DTM objEndDateTime,String strPointOfCare,String strRoom
			,String strBed,HD objFacility,String strLocationStatus,String strPatientLocationType,String strBuilding,
			String strFloor)
	{
		NDL technician =(NDL)getDataElement(266);
		technician.setName(objName);
		technician.setStartDateTime(objStartDateTime);
		technician.setEndDateTime(objEndDateTime);
		technician.setPointOfCare(strPointOfCare);
		technician.setRoom(strRoom);
		technician.setBed(strBed);
		technician.setFacility(objFacility);
		technician.setLocationStatus(strLocationStatus);
		technician.setPatientLocationType(strPatientLocationType);
		technician.setBuilding(strBuilding);
		technician.setFloor(strFloor);
		addTechnician(technician);
	}

	/**
	 * Add the Technician.
	 * This field identify the performing technician.
	 * @param objtechnician Object of Technician. 
	 */
	public void addTechnician(NDL objtechnician)
	{
		addDataType(266,objtechnician);
	}

	/**
	 * set the Technician.
	 * This field identify the performing technician.
	 * @param objtechnicianList List of Technician. 
	 */
	@SuppressWarnings("unchecked")
	public void setTechnician(ISingleCollection<NDL> objtechnicianList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objtechnicianList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(266,objCollection);
	}

	/**
	 * Add the Transcriptionist.
	 * This field identify the report transcriber.
	 * @param objName Specifies the name of the person performing a service.
	 * @param objStartDateTime Specifies the starting date and time for when the person is performing the service.
	 * @param objEndDateTime Specifies the ending date and time for when the person is performing the service. 
	 * @param strPointOfCare Specifies the code for the point where patient care is administered. 
	 * @param strRoom Specifies most general location designation. 
	 * @param strBed Specifies the code for the patient's bed. 
	 * @param objFacility Specifies site interpretation but generally describes the
	 * 							 highest level physical designation of an institution, medical center or enterprise.
	 * @param strLocationStatus Specifies the code for the status or availability of the location.
	 * @param strPatientLocationType Specifies the categorization of the location defined by facility, building, floor, point of care, room or bed. 
	 * @param strBuilding Specifies the code for the building where the person is located. 
	 * @param strFloor Specifies the code for the floor where the person is located. 
	 */
	public void addTranscriptionist(CNN objName,DTM objStartDateTime,DTM objEndDateTime,String strPointOfCare,String strRoom
			,String strBed,HD objFacility,String strLocationStatus,String strPatientLocationType,String strBuilding,
			String strFloor)
	{
		NDL transcriptionist =(NDL)getDataElement(267);
		transcriptionist.setName(objName);
		transcriptionist.setStartDateTime(objStartDateTime);
		transcriptionist.setEndDateTime(objEndDateTime);
		transcriptionist.setPointOfCare(strPointOfCare);
		transcriptionist.setRoom(strRoom);
		transcriptionist.setBed(strBed);
		transcriptionist.setFacility(objFacility);
		transcriptionist.setLocationStatus(strLocationStatus);
		transcriptionist.setPatientLocationType(strPatientLocationType);
		transcriptionist.setBuilding(strBuilding);
		transcriptionist.setFloor(strFloor);
		addTranscriptionist(transcriptionist);
	}

	/**
	 * Add the Transcriptionist.
	 * This field identify the report transcriber.
	 * @param objtranscriptionist Object of Transcriptionist
	 */
	public void addTranscriptionist(NDL objtranscriptionist)
	{
		addDataType(267,objtranscriptionist);
	}

	/**
	 * Set the Transcriptionist.
	 * This field identify the report transcriber.
	 * @param objtranscriptionistList List of Transcriptionist
	 */
	@SuppressWarnings("unchecked")
	public void setTranscriptionist(ISingleCollection<NDL> objtranscriptionistList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objtranscriptionistList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(267,objCollection);
	}

	/**
	 * Set the Transport Arranged.
	 * This field is an indicator of whether transport arrangements are known to have been made or not.  
	 * @param strTransportArranged Specifies Transport Arranged.
	 */
	public void setTransportArranged(String strTransportArranged) 
	{
		ID transportArranged  = (ID)getDataElement(1032);
		transportArranged.setValue(strTransportArranged);
		setTransportArranged(transportArranged);
	}

	/**
	 * Set the Transport Arranged.
	 * This field is an indicator of whether transport arrangements are known to have been made or not.
	 * @param objtransportArranged Object of Transport Arranged.
	 */
	public void setTransportArranged(ID objtransportArranged)
	{
		setDataType(1032,objtransportArranged);
	}

	/**
	 * Set the Transport Arrangement Responsibility.
	 * This field is an indicator of who is responsible for arranging transport to the planned diagnostic service.
	* @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 setTransportArrangementResponsibility(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(1031);
		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);
		setTransportArrangementResponsibility(cwe);
	}

	/**
	 * Set the Transport Arrangement Responsibility.
	 * This field is an indicator of who is responsible for arranging transport to the planned diagnostic service.
	 * @param objtransportArrangementResponsibility Object of Transport Arrangement Responsibility.
	 */
	public void setTransportArrangementResponsibility(CWE objtransportArrangementResponsibility)
	{
		setDataType(1031,objtransportArrangementResponsibility);
	}

	/**
	 * Set the Transportation Mode.
	 * This field identify how (or whether) to transport a patient, when applicable. 
	 * @param strTransportationMode Specifies Transportation Mode.
	 */
	public void setTransportationMode(String strTransportationMode) 
	{
		ID transportationMode  = (ID)getDataElement(262);
		transportationMode.setValue(strTransportationMode);
		setTransportationMode(transportationMode);
	}

	/**
	 * Set the Transportation Mode.
	 * This field identify how (or whether) to transport a patient, when applicable.
	 * @param objtransportationMode Object of Transportation Mode.
	 */
	public void setTransportationMode(ID objtransportationMode)
	{
		setDataType(262,objtransportationMode);
	}

	/**
	 * Add the Transport Logistics of Collected Sample.
	 * This field is the means by which a sample reaches the diagnostic service 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 addTransportLogisticsofCollectedSample(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(1029);
		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);
		addTransportLogisticsofCollectedSample(cwe);
	}

	/**
	 * Add the Transport Logistics of Collected Sample.
	 * This field is the means by which a sample reaches the diagnostic service provider.
	 * @param objtransportLogisticsofCollectedSample Object of Transport Logistics of Collected Sample.
	 */
	public void addTransportLogisticsofCollectedSample(CWE objtransportLogisticsofCollectedSample)
	{
		addDataType(1029,objtransportLogisticsofCollectedSample);
	}

	/**
	 * Set the Transport Logistics of Collected Sample.
	 * This field is the means by which a sample reaches the diagnostic service provider.
	 * @param objtransportLogisticsofCollectedSampleList List of Transport Logistics of Collected Sample.
	 */
	@SuppressWarnings("unchecked")
	public void setTransportLogisticsofCollectedSample(ISingleCollection<CWE> objtransportLogisticsofCollectedSampleList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objtransportLogisticsofCollectedSampleList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(1029,objCollection);
	}

	/**
	 * Set the Universal Service Identifier.
	 * This field contains the identifier code for the requested observation/test/battery.
	 * @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 setUniversalServiceIdentifier(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(238);
		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);
		setUniversalServiceIdentifier(cwe);
	}
	/**
	 * Set the Universal Service Identifier.
	 * This field contains the identifier code for the requested observation/test/battery.
	 * @param objuniversalServiceIdentifier Object of Universal Service Identifier.
	 */
	public void setUniversalServiceIdentifier(CWE objuniversalServiceIdentifier)
	{
		setDataType(238,objuniversalServiceIdentifier);
	}

	/**
	 * Set the Parent Universal Service Identifier.
	 * This field contains the identifier code for the parent order, as identified in ORC-8 Parent and/or OBR-29 Parent (if present), which caused this observation/test/battery to be performed.
	 * @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 setParentUniversalServiceIdentifier(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(2286);
		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);
		setParentUniversalServiceIdentifier(cwe);
	}
	
	/**
	 * Set the Parent Universal Service Identifier.
	 * This field contains the identifier code for the parent order, as identified in ORC-8 Parent and/or OBR-29 Parent (if present), which caused this observation/test/battery to be performed.
	 * @param objparentUniversalServiceIdentifier Object of Parent Universal Service Identifier.
	 */
	public void setParentUniversalServiceIdentifier(CWE objparentUniversalServiceIdentifier)
	{
		setDataType(2286,objparentUniversalServiceIdentifier);
	}
	
	/**
	 * Set the Observation Group ID.
	 * This field specifies the identifier assigned by the producer of a result to uniquely identify the results associated with this OBR segment.
	 * @param strEntityIdentifier Specifies to be unique within the series of identifiers created by the 
	 * 								assigning authority, defined by a hierarchic designator
	 * @param strNamespaceId Specifies the assigning authority is a unique identifier of the system 
	 * 							(or organization or agency or department) that creates the data. 
	 * @param strUniversalId Specifies a string formatted according to the scheme defined by the third component universal ID type.
	 * 							It is intended to be unique over time within the UID type.
	 * @param strUniversalIdType Governs the interpretation of the Universal ID.  
	 */
	public void setObservationGroupID(String strEntityIdentifier,String strNamespaceId,String strUniversalId,
			String strUniversalIdType)
	{
		EI ei  = (EI)getDataElement(2307);
		ei.setEntityIdentifier(strEntityIdentifier);
		ei.setNamespaceId(strNamespaceId);
		ei.setUniversalId(strUniversalId);
		ei.setUniversalIdType(strUniversalIdType);
		setObservationGroupID(ei);
	}
	/**
	 * Set the Observation Group ID.
	 * This field specifies the identifier assigned by the producer of a result to uniquely identify the results associated with this OBR segment.
	 * @param objobservationGroupID Object of Placer Order Number.
	 */
	public void setObservationGroupID(EI objobservationGroupID)
	{
		setDataType(2307,objobservationGroupID);
	}
	
	/**
	 * Set the Parent Observation Group ID.
	 * The Parent Observation Group ID field relates this child OBR to its parent OBR segment using the Observation Group ID of the parent result.
	 * @param strEntityIdentifier Specifies to be unique within the series of identifiers created by the 
	 * 								assigning authority, defined by a hierarchic designator
	 * @param strNamespaceId Specifies the assigning authority is a unique identifier of the system 
	 * 							(or organization or agency or department) that creates the data. 
	 * @param strUniversalId Specifies a string formatted according to the scheme defined by the third component universal ID type.
	 * 							It is intended to be unique over time within the UID type.
	 * @param strUniversalIdType Governs the interpretation of the Universal ID.  
	 */
	public void setParentObservationGroupID(String strEntityIdentifier,String strNamespaceId,String strUniversalId,
			String strUniversalIdType)
	{
		EI ei  = (EI)getDataElement(2308);
		ei.setEntityIdentifier(strEntityIdentifier);
		ei.setNamespaceId(strNamespaceId);
		ei.setUniversalId(strUniversalId);
		ei.setUniversalIdType(strUniversalIdType);
		setParentObservationGroupID(ei);
	}
	
	/**
	 * Set the Parent Observation Group ID.
	 * The Parent Observation Group ID field relates this child OBR to its parent OBR segment using the Observation Group ID of the parent result.
	 * @param objparentObservationGroupID Object of Placer Order Number.
	 */
	public void setParentObservationGroupID(EI objparentObservationGroupID)
	{
		setDataType(2308,objparentObservationGroupID);
	}

	/**
	 * Set the Parent Order.
	 * This field relates a child order to its parent order when a parent child order relationship exists.
	 * @param objPlacerAssignedIdentifier Specifies an identifier assigned to an entity by the placer system.  
	 * @param objFillerAssignedIdentifier Specifies an identifier assigned to an entity by the filler system. 
	 */
	public void setParentOrder(EI objPlacerAssignedIdentifier,EI objFillerAssignedIdentifier) 
	{
		EIP eip =(EIP)getDataElement(222);
		eip.setPlacerAssignedIdentifier(objPlacerAssignedIdentifier);
		eip.setFillerAssignedIdentifier(objFillerAssignedIdentifier);
		setParentOrder(eip);
	}

	/**
	 * Set the Parent Order.
	 * This field relates a child order to its parent order when a parent child order relationship exists.
	 * @param parentOrder Object of Parent Order.
	 */
	public void setParentOrder(EIP parentOrder)
	{
		setDataType(222,parentOrder);
	}

	/**
	 * Add the Alternate Placer Order Number.
	 * This field enables a shorter number to be communicated that is unique within other identifiers.
	 * @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 addAlternatePlacerOrderNumber (String strIDNumber,String strCheckDigit, String strCheckDigitScheme, HD objAssigningAuthority,
			String strIdentifierTypeCode,HD objAssigningFacility,String strEffectiveDate,String strExpirationDate, 
			CWE objAssigningJurisdiction, CWE objAssigningAgencyOrDepartment)
	{
		CX cx  = (CX)getDataElement(3303);
		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); 
		addAlternatePlacerOrderNumber(cx);

	} 

	/** 
	 * Add the Alternate Placer Order Number.
	 * This field enables a shorter number to be communicated that is unique within other identifiers.
	 * @param objalternatePlacerOrderNumber Object of Alternate Placer Order Number.
	 */ 
	public void addAlternatePlacerOrderNumber(CX objalternatePlacerOrderNumber)
	{
		addDataType(3303,objalternatePlacerOrderNumber);

	}
	
	/**
	 * Set the Alternate Placer Order Number list.
	 * @param objalternatePlacerOrderNumberList List of InsuranceCompanyID
	 */	
	@SuppressWarnings("unchecked")
	public void setAlternatePlacerOrderNumber(ISingleCollection<CX> objalternatePlacerOrderNumberList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objalternatePlacerOrderNumberList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(3303,objCollection);
	}
	/**
	 * Validates HL7 Message objects .
	 * Validate method checks for validation each and every segments in side the Message object against specified message Structure. 
	 * Validation checks include optionality of segment or group.
	 * It also verifies the number of times segment or group is repeated in message.
	 * e.g 
	 * {PSH} while parsing PSH segment validate method will check for its mandatory presence.
	 * [PSH] in this case validate will throw exception if one tries to enter more than one PSH segment.
	 * @return boolean - true or false.
	 * @throws InvalidSegmentException Throws when Segment Validation fails 
	 */
	public boolean validate() throws InvalidSegmentException 
	{
		try
		{
			/*
			 * The field universalServiceIdentifier is required.
			 * 
			 */
			super.validate();

			return true;
		}
		catch(FieldMissingException ex)
		{
			throw new InvalidSegmentException(enumSegments.getValue(),ex);
		}
	}
}