package cdac.medinfo.sdk.hl7282.baselibs.segments;

import cdac.medinfo.sdk.hl7282.baselibs.CNE;
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.FN;
import cdac.medinfo.sdk.hl7282.baselibs.HD;
import cdac.medinfo.sdk.hl7282.baselibs.NM;
import cdac.medinfo.sdk.hl7282.baselibs.SN;
import cdac.medinfo.sdk.hl7282.baselibs.TM;
import cdac.medinfo.sdk.hl7282.baselibs.XCN;
import cdac.medinfo.sdk.hl7282.commoninterface.IDataType;
import cdac.medinfo.sdk.hl7282.commoninterface.ISingleCollection;
import cdac.medinfo.sdk.hl7282.exceptions.FieldMissingException;
import cdac.medinfo.sdk.hl7282.exceptions.InvalidSegmentException;
import cdac.medinfo.sdk.hl7282.utils.EnumSegments;
import cdac.medinfo.sdk.hl7282.utils.SingleCollection;

/**
 * SCD - Anti-Microbial Cycle Data Segment <p>
 * The SCD segment contains cycle data representing an instance of a sterilization or decontamination.
 * <p>Represents an HL7 SCD message segment. 
 * This segment has the following fields:</p><p>
 * SCD-1 : Cycle Start Time (TM) <b>Optional</b><br>
 * SCD-2 : Cycle Count (NM) <b>Optional</b><br>
 * SCD-3 : Temp Max (CQ) <b>Optional</b><br>
 * SCD-4 : Temp Min (CQ) <b>Optional</b><br>
 * SCD-5 : Load Number (NM) <b>Optional</b><br>
 * SCD-6 : Condition Time (CQ) <b>Optional</b><br>
 * SCD-7 : Sterilize Time (CQ) <b>Optional</b><br>
 * SCD-8 : Exhaust Time (CQ) <b>Optional</b><br>
 * SCD-9 : Total Cycle Time (CQ) <b>Optional</b><br>
 * SCD-10 : Device Status (CWE) <b>Optional</b><br>
 * SCD-11 : Cycle Start Date/Time (DTM) <b>Optional</b><br>
 * SCD-12 : Dry Time (CQ) <b>Optional</b><br>
 * SCD-13 : Leak Rate (CQ) <b>Optional</b><br>
 * SCD-14 : Control Temperature (CQ) <b>Optional</b><br>
 * SCD-15 : Sterilizer Temperature (CQ) <b>Optional</b><br>
 * SCD-16 : Cycle Complete Time (TM) <b>Optional</b><br>
 * SCD-17 : Under Temperature (CQ) <b>Optional</b><br>
 * SCD-18 : Over Temperature (CQ) <b>Optional</b><br>
 * SCD-19 : Abort Cycle (CNE) <b>Optional</b><br>
 * SCD-20 : Alarm (CNE) <b>Optional</b><br>
 * SCD-21 : Long in Charge Phase (CNE) <b>Optional</b><br>
 * SCD-22 : Long in Exhaust Phase (CNE) <b>Optional</b><br>
 * SCD-23 : Long in Fast Exhaust Phase (CNE) <b>Optional</b><br>
 * SCD-24 : Reset (CNE) <b>Optional</b><br>
 * SCD-25 : Operator - Unload (XCN) <b>Optional</b><br>
 * SCD-26 : Door Open (CNE) <b>Optional</b><br>
 * SCD-27 : Reading Failure (CNE) <b>Optional</b><br>
 * SCD-28 : Cycle Type (CWE) <b>Optional</b><br>
 * SCD-29 : Thermal Rinse Time (CQ) <b>Optional</b><br>
 * SCD-30 : Wash Time (CQ) <b>Optional</b><br>
 * SCD-31 : Injection Rate (CQ) <b>Optional</b><br>
 * SCD-32 : Procedure Code (CNE) <b>Optional</b><br>
 * SCD-33 : Patient Identifier List (CX) <b>Optional</b><br>
 * SCD-34 : Attending Doctor (XCN) <b>Optional </b><br>
 * SCD-35 : Dilution Factor (SN) <b>Optional</b><br>
 * SCD-36 : Fill Time (CQ) <b>Optional</b><br>
 * SCD-37 : Inlet Temperature (CQ) <b>Optional</b><br>
 * 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 SCD extends Segment
{
	/**
	 *  Constructs the SCD segment. 
	 */
	public SCD()
	{super(EnumSegments.HL7_SEG_SCD);
	}
	
	//Integer values used in getter/setter is unique item id defined 
	//for each attribute.
	
	/**
	 * Retrieves the Cycle Start Time.
	 * The time that the load cycle begins.
	 * @return TM - cycleStartTime
	 */
	public TM getCycleStartTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2104);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (TM)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Cycle Count.
	 * The number of cycles that have been completed.
	 * @return NM - cycleCount
	 */
	public NM getCycleCount() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2105);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NM)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Temp Max.
	 * The maximum temperature achieved during a specific cycle.
	 * @return CQ - tempMax
	 */
	public CQ getTempMax() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2106);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Temp Min.
	 * The minimum temperature achieved during a specific cycle.
	 * @return CQ - tempMin
	 */
	public CQ getTempMin() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2107);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Load Number.
	 * A number assigned to the load by the anti-microbial device.  
	 * @return NM - loadNumber
	 */
	public NM getLoadNumber() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2108);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (NM)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Condition Time.
	 * The actual amount of cycle time spent in the conditioning phase. 
	 * @return CQ - conditionTime
	 */
	public CQ getConditionTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2109);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Sterilize Time.
	 * The actual amount of cycle time spent sterilizing supplies. 
	 * @return CQ - sterilizeTime
	 */
	public CQ getSterilizeTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2110);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Exhaust Time.
	 * The actual amount of cycle time spent draining pressure from the sterilizer chamber. 
	 * @return CQ - exhaustTime
	 */
	public CQ getExhaustTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2111);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Total Cycle Time.
	 * The sum of time spent in all phases of a cycle.
	 * @return CQ - totalCycleTime
	 */
	public CQ getTotalCycleTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2112);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Device Status.
	 * The status of a device.
	 * @return CWE - deviceStatus
	 */
	public CWE getDeviceStatus() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2113);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Cycle Start Date/Time.
	 * The date and time that the cycle started.
	 * @return DTM - cycleStartDateTime
	 */
	public DTM getCycleStartDateTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2114);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (DTM)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Dry Time.
	 * The amount of cycle time spent drying the load.
	 * @return CQ - dryTime
	 */
	public CQ getDryTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2115);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Leak Rate.
	 * The amount of pressure that the chamber can hold expressed as barometric pressure.
	 * @return CQ - leakRate
	 */
	public CQ getLeakRate() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2116);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Control Temperature.
	 * Amount of overdrive above the sterilize temperature.
	 * @return CQ - controlTemperature
	 */
	public CQ getControlTemperature() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2117);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Sterilizer Temperature.
	 * The current temperature in the anti-microbial device.
	 * @return CQ - sterilizerTemperature
	 */
	public CQ getSterilizerTemperature() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2118);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Cycle Complete Time.
	 * The time of day that the cycle completed.
	 * @return TM - cycleCompleteTime
	 */
	public TM getCycleCompleteTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2119);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (TM)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Under Temperature.
	 * The temperature reached during a cycle, which fell below the required temperature range.
	 * @return CQ - underTemperature
	 */
	public CQ getUnderTemperature() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2120);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Over Temperature.
	 * The temperature reached during a cycle, which exceeded the required temperature.
	 * @return CQ - overTemperature
	 */
	public CQ getOverTemperature() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2121);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Abort Cycle.
	 * A notification that the cycle was aborted.  
	 * @return CNE - abortCycle
	 */
	public CNE getAbortCycle() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2122);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CNE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Alarm.
	 * A notification that the time, temperature, or pressure reached is invalid for a specific phase of a cycle. 
	 * @return CNE - alarm
	 */
	public CNE getAlarm() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2123);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CNE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Long in Charge Phase.
	 * A notification that the charge phase in the cycle has exceeded the maximum time allowed. 
	 * @return CNE - longInChargePhase
	 */
	public CNE getLongInChargePhase() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2124);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CNE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Long in Exhaust Phase.
	 * A notification that the exhaust phase in the cycle has exceeded the maximum time allowed.
	 * @return CNE - longInExhaustPhase
	 */
	public CNE getLongInExhaustPhase() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2125);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CNE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Long in Fast Exhaust Phase.
	 * A notification that the fast exhaust phase in the cycle has exceeded the maximum time allowed.
	 * @return CNE - LongInFastExhaustPhase
	 */
	public CNE getLongInFastExhaustPhase() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2126);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CNE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Reset.
	 * An indicator that specific anti-microbial device parameters have been set to system defaults.
	 * @return CNE - reset
	 */
	public CNE getReset() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2127);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CNE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Operator - Unload.
	 * The name of the operator that unloaded the anti-microbial device.
	 * @return XCN - operatorUnload
	 */
	public XCN getOperatorUnload() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2128);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (XCN)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Door Open.
	 * An indicator that the door is open.
	 * @return CNE - doorOpen
	 */
	public CNE getDoorOpen() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2129);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CNE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Reading Failure.
	 * A notification that an error was encountered while reading the cycle data for a specific cycle.
	 * @return CNE - readingFailure
	 */
	public CNE getReadingFailure() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2130);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CNE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Cycle Type.
	 * The type of cycle that is being executed.  
	 * @return CWE - cycleType
	 */
	public CWE getCycleType() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2131);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CWE)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Thermal Rinse Time.
	 * The amount of time spent in the thermal rinse phase of a decontamination cycle.
	 * @return CQ - thermalRinseTime
	 */
	public CQ getThermalRinseTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2132);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Wash Time.
	 * The amount of time spent in the thermal rinse phase of a decontamination cycle.
	 * @return CQ - washTime
	 */
	public CQ getWashTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2132);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Injection Rate.
	 * The injection rate of a wash or dry agent.
	 * @return CQ - injectionRate
	 */
	public CQ getInjectionRate() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2134);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Procedure Code.
	 * The unique identifier indicating the type of procedure performed on the patient with the supplies being sterilized. 
	 * @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 Patient Identifier List.
	 * The unique identifier associating the patient with the supplies being sterilized.
	 * @return ISingleCollection<CX> - patientIdentifierList
	 */
	public ISingleCollection<CX> getPatientIdentifierList() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(106);
		ISingleCollection<CX> objDataList = new SingleCollection<CX>(); 
		if(objDataCollection != null && objDataCollection.size() != 0)
		{
			for(IDataType objDataType : objDataCollection)
			{
				CX objCX = (CX)objDataType;
				objDataList.add(objCX);
			}
		}
		return objDataList;
	}
	
	
	/**
	 * Retrieves the Attending Doctor.
	 * The unique identifier associating the physician with the supplies being sterilized, used for the procedure and patient identified in this message.    
	 * @return XCN - attendingDoctor
	 */
	public XCN getAttendingDoctor() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(137);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (XCN)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Dilution Factor.
	 * The dilution ratio of peracetic acid to water.    
	 * @return SN - dilutionFactor
	 */
	public SN getDilutionFactor() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(1356);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (SN)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Fill Time.
	 * The amount of time spent in filling the sterilizer chamber with dilutant.   
	 * @return CQ - fillTime
	 */
	public CQ getFillTime() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2139);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Retrieves the Inlet Temperature.
	 * The temperature of the dilutant upon entering the sterilizer chamber.   
	 * @return CQ - inletTemperature
	 */
	public CQ getInletTemperature() 
	{
		ISingleCollection<IDataType> objDataCollection =getDataType(2140);
		if(objDataCollection != null && objDataCollection.size() != 0) 
			return (CQ)objDataCollection.elementAt(0);
		else
			return null;
	}
	
	/**
	 * Sets the Cycle Start Time.
	 * The time that the load cycle begins.
	 * @param strCycleStartTime Use as Cycle Start Time.
	 */ 
	public void setCycleStartTime(String strCycleStartTime) 
	{
		TM objTM  = (TM)getDataElement(2104);
		objTM.setValue(strCycleStartTime); 
		setCycleStartTime(objTM);

	} 

	/** 
	 * Sets the Cycle Start Time.
	 * The time that the load cycle begins.
	 * @param objCycleStartTime Object of Cycle Start Time.
	 */ 
	public void setCycleStartTime(TM objCycleStartTime)
	{
		addDataType(2104,objCycleStartTime);

	}
	
	/**
	 * Set the Cycle Count.
	 * The number of cycles that have been completed. 
	 * @param strCycleCount Use as Cycle Count
	 */ 
	public void setCycleCount(String strCycleCount) 
	{
		NM objNM  = (NM)getDataElement(2105);
		objNM.setValue(strCycleCount); 
		setCycleCount(objNM);

	} 

	/** 
	 * Set the Cycle Count.
	 * The number of cycles that have been completed.
	 * @param objCycleCount Use as Cycle Count
	 */ 
	public void setCycleCount(NM objCycleCount)
	{
		setDataType(2105,objCycleCount);

	}
	
	/**
	 * Set the Temp Max.
	 * The maximum temperature achieved during a specific cycle.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setTempMax(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2106);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setTempMax(objCQ);
	}

	/**
	 * Set the Temp Max.
	 * The maximum temperature achieved during a specific cycle.
	 * @param objTempMax Object of Temp Max.
	 */
	public void setTempMax(CQ objTempMax)
	{
		setDataType(2106,objTempMax);
	}
	
	/**
	 * Set the Temp Min.
	 * The minimum temperature achieved during a specific cycle.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setTempMin(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2107);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setTempMin(objCQ);
	}

	/**
	 * Set the Temp Min.
	 * The minimum temperature achieved during a specific cycle.
	 * @param objTempMax Object of Temp Min.
	 */
	public void setTempMin(CQ objTempMin)
	{
		setDataType(2107,objTempMin);
	}
	
	/**
	 * Set the Load Number.
	 * A number assigned to the load by the anti-microbial device.
	 * @param strLoadNumber Use as Load Number
	 */ 
	public void setLoadNumber(String strLoadNumber) 
	{
		NM objNM  = (NM)getDataElement(2108);
		objNM.setValue(strLoadNumber); 
		setLoadNumber(objNM);

	} 

	/** 
	 * Set the Load Number.
	 * A number assigned to the load by the anti-microbial device.
	 * @param objLoadNumber Use as Load Number
	 */ 
	public void setLoadNumber(NM objLoadNumber)
	{
		setDataType(2108,objLoadNumber);

	}
	
	/**
	 * Set the Condition Time.
	 * The actual amount of cycle time spent in the conditioning phase. 
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setConditionTime(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2109);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setConditionTime(objCQ);
	}

	/**
	 * Set the Condition Time.
	 * The actual amount of cycle time spent in the conditioning phase. 
	 * @param objConditionTime Object of Condition Time.
	 */
	public void setConditionTime(CQ objConditionTime)
	{
		setDataType(2109,objConditionTime);
	}
	
	/**
	 * Set the Sterilize Time.
	 * The actual amount of cycle time spent sterilizing supplies. 
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setSterilizeTime(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2110);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setSterilizeTime(objCQ);
	}

	/**
	 * Set the Sterilize Time.
	 * The actual amount of cycle time spent sterilizing supplies. 
	 * @param objSterilizeTime Object of Sterilize Time.
	 */
	public void setSterilizeTime(CQ objSterilizeTime)
	{
		setDataType(2110,objSterilizeTime);
	}
	
	/**
	 * Set the Exhaust Time.
	 * The actual amount of cycle time spent draining pressure from the sterilizer chamber.  
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setExhaustTime(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2111);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setExhaustTime(objCQ);
	}

	/**
	 * Set the Exhaust Time.
	 * The actual amount of cycle time spent draining pressure from the sterilizer chamber.  
	 * @param objExhaustTime Object of Exhaust Time.
	 */
	public void setExhaustTime(CQ objExhaustTime)
	{
		setDataType(2111,objExhaustTime);
	}
	
	/**
	 * Set the Total Cycle Time.
	 * The sum of time spent in all phases of a cycle.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setTotalCycleTime(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2112);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setTotalCycleTime(objCQ);
	}

	/**
	 * Set the Total Cycle Time.
	 * The sum of time spent in all phases of a cycle.  
	 * @param objTotalCycleTime Object of Total Cycle Time.
	 */
	public void setTotalCycleTime(CQ objTotalCycleTime)
	{
		setDataType(2112,objTotalCycleTime);
	}
	
	/**
	 * Set the Device Status.
	 * The status of a device.  
	 * @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 setDeviceStatus(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(2113);
		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); 
		setDeviceStatus(cwe);

	} 
	
	/** 
	 * Set the Device Status.
	 * The status of a device. 
	 * @param objDeviceStatus Object of Load Status.
	 */ 
	public void setDeviceStatus(CWE objDeviceStatus)
	{
		setDataType(2113,objDeviceStatus);

	}
	
	/**
	 * Set the Cycle Start Date/Time.
	 * The date and time that the cycle started.
	 * @param strCycleStartDateTime Use as Cycle Start Date/Time.
	 */
	public void setCycleStartDateTime(String strCycleStartDateTime) 
	{
		DTM objDTM  = (DTM)getDataElement(2114);
		objDTM.setValue(strCycleStartDateTime);
		setCycleStartDateTime(objDTM);
	}

	/**
	 * Set the Cycle Start Date/Time.
	 * The date and time that the cycle started.
	 * @param objCycleStartDateTime Object of Cycle Start Date/Time.
	 */
	public void setCycleStartDateTime(DTM objCycleStartDateTime)
	{
		setDataType(2114,objCycleStartDateTime);
	}
	
	/**
	 * Set the Dry Time.
	 * The amount of cycle time spent drying the load.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setDryTime(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2115);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setDryTime(objCQ);
	}

	/**
	 * Set the Dry Time.
	 * The amount of cycle time spent drying the load. 
	 * @param objDryTime Object of Dry Time.
	 */
	public void setDryTime(CQ objDryTime)
	{
		setDataType(2115,objDryTime);
	}
	
	/**
	 * Set the Leak Rate.
	 * The amount of pressure that the chamber can hold expressed as barometric pressure.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setLeakRate(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2116);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setLeakRate(objCQ);
	}

	/**
	 * Set the Leak Rate.
	 * The amount of pressure that the chamber can hold expressed as barometric pressure.
	 * @param objLeakRate Object of Leak Rate.
	 */
	public void setLeakRate(CQ objLeakRate)
	{
		setDataType(2116,objLeakRate);
	}
	
	/**
	 * Set the Control Temperature.
	 * Amount of overdrive above the sterilize temperature.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setControlTemperature(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2117);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setControlTemperature(objCQ);
	}

	/**
	 * Set the Control Temperature.
	 * Amount of overdrive above the sterilize temperature.
	 * @param objControlTemperature Object of Control Temperature.
	 */
	public void setControlTemperature(CQ objControlTemperature)
	{
		setDataType(2117,objControlTemperature);
	}
	
	/**
	 * Set the Sterilizer Temperature.
	 * The current temperature in the anti-microbial device.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setSterilizerTemperature(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2118);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setSterilizerTemperature(objCQ);
	}

	/**
	 * Set the Sterilizer Temperature.
	 * The current temperature in the anti-microbial device.
	 * @param objSterilizerTemperature Object of Sterilizer Temperature.
	 */
	public void setSterilizerTemperature(CQ objSterilizerTemperature)
	{
		setDataType(2118,objSterilizerTemperature);
	}
	
	/**
	 * Sets the Cycle Complete Time.
	 * The time of day that the cycle completed.
	 * @param strCycleCompleteTime Use as Cycle Complete Time.
	 */ 
	public void setCycleCompleteTime(String strCycleCompleteTime) 
	{
		TM objTM  = (TM)getDataElement(2119);
		objTM.setValue(strCycleCompleteTime); 
		setCycleCompleteTime(objTM);

	} 

	/** 
	 * Sets the Cycle Complete Time.
	 * The time of day that the cycle completed.
	 * @param objCycleCompleteTime Object of Cycle Complete Time.
	 */ 
	public void setCycleCompleteTime(TM objCycleCompleteTime)
	{
		addDataType(2119,objCycleCompleteTime);

	}
	
	/**
	 * Set the Under Temperature.
	 * The temperature reached during a cycle, which fell below the required temperature range.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setUnderTemperature(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2120);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setUnderTemperature(objCQ);
	}

	/**
	 * Set the Under Temperature.
	 * The temperature reached during a cycle, which fell below the required temperature range.
	 * @param objUnderTemperature Object of Under Temperature.
	 */
	public void setUnderTemperature(CQ objUnderTemperature)
	{
		setDataType(2120,objUnderTemperature);
	}
	
	/**
	 * Set the Over Temperature.
	 * The temperature reached during a cycle, which exceeded the required temperature.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setOverTemperature(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2121);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setOverTemperature(objCQ);
	}

	/**
	 * Set the Over Temperature.
	 * The temperature reached during a cycle, which exceeded the required temperature.
	 * @param objOverTemperature Object of Over Temperature.
	 */
	public void setOverTemperature(CQ objOverTemperature)
	{
		setDataType(2121,objOverTemperature);
	}
	
	/**
	 * Set the Abort Cycle.
	 * A notification that the cycle was aborted.
	 * @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 setAbortCycle(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(2122);
		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); 
		setAbortCycle(cne);

	} 

	/** 
	 * Set the Abort Cycle.
	 * A notification that the cycle was aborted.   
	 * @param objAbortCycle Object of Abort Cycle. 
	 */ 
	public void setAbortCycle(CNE objAbortCycle)
	{
		setDataType(2122,objAbortCycle);

	}
	
	/**
	 * Set the Alarm.
	 * A notification that the time, temperature, or pressure reached is invalid for a specific phase of a cycle.
	 * @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 setAlarm(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(2123);
		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); 
		setAlarm(cne);

	} 

	/** 
	 * Set the Alarm.
	 * A notification that the time, temperature, or pressure reached is invalid for a specific phase of a cycle.
	 * @param objAlarm Object of Alarm. 
	 */ 
	public void setAlarm(CNE objAlarm)
	{
		setDataType(2123,objAlarm);

	}
	
	/**
	 * Set the Long in Charge Phase.
	 * A notification that the charge phase in the cycle has exceeded the maximum time allowed. 
	 * @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 setLongInChargePhase(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(2124);
		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); 
		setLongInChargePhase(cne);

	} 

	/** 
	 * Set the Long in Charge Phase.
	 * A notification that the charge phase in the cycle has exceeded the maximum time allowed. 
	 * @param objLongInChargePhase Object of Long in Charge Phase. 
	 */ 
	public void setLongInChargePhase(CNE objLongInChargePhase)
	{
		setDataType(2124,objLongInChargePhase);

	}
	
	/**
	 * Set the Long in Exhaust Phase.
	 * A notification that the exhaust phase in the cycle has exceeded the maximum time allowed.
	 * @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 setLongInExhaustPhase(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(2125);
		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); 
		setLongInExhaustPhase(cne);

	} 

	/** 
	 * Set the Long in Exhaust Phase.
	 * A notification that the exhaust phase in the cycle has exceeded the maximum time allowed. 
	 * @param objLongInExhaustPhase Object of Long in Exhaust Phase. 
	 */ 
	public void setLongInExhaustPhase(CNE objLongInExhaustPhase)
	{
		setDataType(2125,objLongInExhaustPhase);

	}
	
	/**
	 * Set the Long in Fast Exhaust Phase.
	 * A notification that the fast exhaust phase in the cycle has exceeded the maximum time allowed.
	 * @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 setLongInFastExhaustPhase(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(2126);
		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); 
		setLongInFastExhaustPhase(cne);

	} 

	/** 
	 * Set the Long in Fast Exhaust Phase.
	 * A notification that the fast exhaust phase in the cycle has exceeded the maximum time allowed.
	 * @param objLongInFastExhaustPhase Object of Long in Fast Exhaust Phase. 
	 */ 
	public void setLongInFastExhaustPhase(CNE objLongInFastExhaustPhase)
	{
		setDataType(2126,objLongInFastExhaustPhase);

	}
	
	/**
	 * Set the Reset.
	 * An indicator that specific anti-microbial device parameters have been set to system defaults.
	 * @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 setReset(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(2127);
		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); 
		setReset(cne);

	} 

	/** 
	 * Set the Reset.
	 * An indicator that specific anti-microbial device parameters have been set to system defaults.
	 * @param objReset Object of Reset. 
	 */ 
	public void setReset(CNE objReset)
	{
		setDataType(2127,objReset);

	}
	
	/**
	 * Sets the Operator - Unload.
	 * The name of the operator that unloaded the anti-microbial device.
	* @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 setOperatorUnload(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(2128);
		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);
		setOperatorUnload(xcn);
	}

	/**
	 * Sets the Operator - Unload.
	 * The name of the operator that unloaded the anti-microbial device.
	 * @param objOperatorUnload Object of Operator - Unload.
	 */
	public void setOperatorUnload(XCN objOperatorUnload)
	{
		addDataType(2128,objOperatorUnload);
	}

	/**
	 * Set the Door Open.
	 * An indicator that the door is open.
	 * @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 setDoorOpen(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(2129);
		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); 
		setDoorOpen(cne);

	} 

	/** 
	 * Set the Door Open.
	 * An indicator that the door is open.
	 * @param objDoorOpen Object of Door Open. 
	 */ 
	public void setDoorOpen(CNE objDoorOpen)
	{
		setDataType(2129,objDoorOpen);

	}
	
	/**
	 * Set the Reading Failure.
	 * A notification that an error was encountered while reading the cycle data for a specific cycle.
	 * @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 setReadingFailure(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(2130);
		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); 
		setReadingFailure(cne);

	} 

	/** 
	 * Set the Reading Failure.
	 * A notification that an error was encountered while reading the cycle data for a specific cycle.
	 * @param objReadingFailure Object of Reading Failure. 
	 */ 
	public void setReadingFailure(CNE objReadingFailure)
	{
		setDataType(2130,objReadingFailure);

	}
	
	/**
	 * Set the Cycle Type.
	 * The type of cycle that is being executed.  
	 * @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 setCycleType(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(2131);
		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); 
		setCycleType(cwe);

	} 
	
	/** 
	 * Set the Cycle Type.
	 * The type of cycle that is being executed. 
	 * @param objCycleType Object of Cycle Type.
	 */ 
	public void setCycleType(CWE objCycleType)
	{
		setDataType(2131,objCycleType);

	}
	
	/**
	 * Set the Thermal Rinse Time.
	 * The amount of time spent in the thermal rinse phase of a decontamination cycle.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setThermalRinseTime(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2132);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setThermalRinseTime(objCQ);
	}

	/**
	 * Set the Thermal Rinse Time.
	 * The amount of time spent in the thermal rinse phase of a decontamination cycle.
	 * @param objThermalRinseTime Object of Thermal Rinse Time.
	 */
	public void setThermalRinseTime(CQ objThermalRinseTime)
	{
		setDataType(2132,objThermalRinseTime);
	}
	
	/**
	 * Set the Wash Time.
	 * The amount of time spent in the thermal rinse phase of a decontamination cycle.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setWashTime(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2133);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setWashTime(objCQ);
	}

	/**
	 * Set the Wash Time.
	 * The amount of time spent in the thermal rinse phase of a decontamination cycle.
	 * @param objWashTime Object of Wash Time.
	 */
	public void setWashTime(CQ objWashTime)
	{
		setDataType(2133,objWashTime);
	}
	
	/**
	 * Set the Injection Rate.
	 * The injection rate of a wash or dry agent.
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setInjectionRate(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2134);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setInjectionRate(objCQ);
	}

	/**
	 * Set the Injection Rate.
	 * The injection rate of a wash or dry agent.
	 * @param objInjectionRate Object of Injection Rate.
	 */
	public void setInjectionRate(CQ objInjectionRate)
	{
		setDataType(2134,objInjectionRate);
	}
	
	/**
	 * Set the Procedure Code.
	 * The unique identifier indicating the type of procedure performed on the patient with the supplies being sterilized. 
	 * @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.
	 * The unique identifier indicating the type of procedure performed on the patient with the supplies being sterilized. 
	 * @param objProcedureCode Object of Procedure Code. 
	 */ 
	public void setProcedureCode(CNE objProcedureCode)
	{
		setDataType(393,objProcedureCode);

	}
	
	/**
	 * Set the Patient Identifier List.
	 * The unique identifier associating the patient with the supplies being sterilized. 
	 * @param strIDNumber Specifies the value of the identifier itself.
	 * @param strCheckDigit It is part of the identifying number used in the sending application. 
	 * @param strCheckDigitScheme Contains the code identifying the check digit scheme employed.
	 * 								Suggested Values NP,ISO,M10,M11.[Refer table No.0061].
	 * @param objAssigningAuthority The assigning authority is a unique name of the system (or organization or agency 
	 * 									or department) that creates the data. . 
	 * @param strIdentifierTypeCode Specifies a code corresponding to the type of identifier.In some cases, this code may be
	 * 								 used as a qualifier to the "Assigning authority" component.[Refer table No 0203]
	 * @param objAssigningFacility Specifies the place or location identifier where the identifier was first assigned 
	 * 									to the patient. 
	 * @param strEffectiveDate Specifies the first date, if known, on which the address is valid and active.
	 * @param strExpirationDate Specifies the last date, if known, on which the address is valid and active.
	 * @param objAssigningJurisdiction Specifies the geo-political body that assigned the identifier. 
	 * @param objAssigningAgencyOrDepartment Specifies agency or department that assigned the identifier. 
	 * @param strSecurityCheck is used to communicate the version code. 
	 * @param objSecurityCheckSCheme is used to transmit information intended to validate veracity of the supplied identifier
	 */ 
	public void addPatientIdentifierList(String strIDNumber,String strCheckDigit, String strCheckDigitScheme, HD objAssigningAuthority,
			String strIdentifierTypeCode,HD objAssigningFacility,String strEffectiveDate,String strExpirationDate, 
			CWE objAssigningJurisdiction, CWE objAssigningAgencyOrDepartment, String strSecurityCheck, String strSecurityCheckScheme)
	{
		CX cx  = (CX)getDataElement(106);
		cx.setIdNumber(strIDNumber);
		cx.setCheckDigit(strCheckDigit);
		cx.setCheckDigitScheme(strCheckDigitScheme);
		cx.setAssigningAuthority(objAssigningAuthority);
		cx.setIdentifierTypeCode(strIdentifierTypeCode);
		cx.setAssigningFacility(objAssigningFacility);
		cx.setEffectiveDate(strEffectiveDate);
		cx.setExpirationDate(strExpirationDate);
		cx.setAssigningJurisdiction(objAssigningJurisdiction);
		cx.setAssigningAgencyOrDepartment(objAssigningAgencyOrDepartment); 
		cx.setSecurityCheck(strCheckDigit);
		cx.setSecurityCheckScheme(strSecurityCheckScheme); 
		addPatientIdentifierList(cx);

	} 

	/**
	 * Set the Patient Identifier List.
	 * The unique identifier associating the patient with the supplies being sterilized. 
	 * @param objPatientIdentifierList Object of Patient Identifier List
	 */ 
	public void addPatientIdentifierList(CX objPatientIdentifierList)
	{
		setDataType(106,objPatientIdentifierList);

	}
	
	/**
	 * Set the Patient Identifier List.
	 * The unique identifier associating the patient with the supplies being sterilized.
	 * @param objPatientIdentifierListList List of Patient Identifier List.
	 */	
	@SuppressWarnings("unchecked")
	public void setPatientIdentifierList(ISingleCollection<CX> objPatientIdentifierListList)
	{
		ISingleCollection<IDataType> objCollection = null;
		ISingleCollection<?> objUnknownCollection = (ISingleCollection<?>)objPatientIdentifierListList;
		objCollection = (ISingleCollection<IDataType>)objUnknownCollection;
		setDataType(106,objCollection);
	}
	
	/**
	 * Sets the Attending Doctor.
	 * The unique identifier associating the physician with the supplies being sterilized, used for the procedure and patient identified in this message.
	* @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 setAttendingDoctor(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(137);
		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);
		setAttendingDoctor(xcn);
	}

	/**
	 * Sets the Attending Doctor.
	 * The unique identifier associating the physician with the supplies being sterilized, used for the procedure and patient identified in this message.
	 * @param objAttendingDoctor Object of Attending Doctor.
	 */
	public void setAttendingDoctor(XCN objAttendingDoctor)
	{
		addDataType(137,objAttendingDoctor);
	}
	
	/**
	 * Set the Dilution Factor.
	 * The dilution ratio of peracetic acid to water. 
	 * @param strComparator Specifies as greater than, less than, greater than or equal, less than or equal,
	 * 						 equal, and not equal, respectively 
	 * @param strNum1 Specifies A number. 
	 * @param strSeparatorSuffix Specifies Separat or Suffix 
	 * @param strNum2 Specifies A number or null depending on the measurement.
	 */ 
	public void setDilutionFactor (String strComparator,String strNum1,String strSeparatorSuffix,String strNum2) 
	{
		SN objSN  = (SN)getDataElement(1356);
		objSN.setComparator(strComparator);
		objSN.setNum1(strNum1);
		objSN.setSeparatorSuffix(strSeparatorSuffix);
		objSN.setNum2(strNum2); 
		setDilutionFactor(objSN);

	} 

	/** 
	 * Set the Dilution Factor.
	 * The dilution ratio of peracetic acid to water. 
	 * @param objdilutionFactor Object of Dilution Factor.
	 */ 
	public void setDilutionFactor(SN objdilutionFactor)
	{
		setDataType(1356,objdilutionFactor);

	}

	/**
	 * Set the Fill Time.
	 * The amount of time spent in filling the sterilizer chamber with dilutant. 
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setFillTime(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2139);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setInjectionRate(objCQ);
	}

	/**
	 * Set the Fill Time.
	 * The amount of time spent in filling the sterilizer chamber with dilutant. 
	 * @param objFillTime Object of Fill Time.
	 */
	public void setFillTime(CQ objFillTime)
	{
		setDataType(2139,objFillTime);
	}
	
	/**
	 * Set the Inlet Temperature.
	 * The temperature of the dilutant upon entering the sterilizer chamber. 
	 * @param strQuantity Specifies the numeric quantity or amount of an entity.
	 * @param objUnits Specifies the units in which the quantity is expressed. 
	 */
	public void setInletTemperature(String strQuantity,CWE objUnits)  
	{
		CQ objCQ  = (CQ)getDataElement(2140);
		objCQ.setQuantity(strQuantity);
		objCQ.setUnits(objUnits);
		setInletTemperature(objCQ);
	}

	/**
	 * Set the Inlet Temperature.
	 * The temperature of the dilutant upon entering the sterilizer chamber.
	 * @param objInletTemperature Object of Inlet Temperature.
	 */
	public void setInletTemperature(CQ objInletTemperature)
	{
		setDataType(2140,objInletTemperature);
	}
	
	/**
	 * 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 If Segment Validation fails 
	 */
	@Override
	public boolean validate() throws InvalidSegmentException 
	{
		try
		{
			/*
			 * Item Identifier is required fields of this segment.
			 */
			super.validate();

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