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

import cdac.medinfo.sdk.dcm30_04.baselibs.ContentSequenceItem;
import cdac.medinfo.sdk.dcm30_04.enums.EnumContinuityOfContent;
import cdac.medinfo.sdk.dcm30_04.srtree.SRTree;
import cdac.medinfo.sdk.dcm30_04.templates.cid.BodySurfaceAreaEquations_CID3663;
import cdac.medinfo.sdk.dcm30_04.templates.cid.CanadianClinicalClassification_CID3719;
import cdac.medinfo.sdk.dcm30_04.templates.cid.CardiacRhythms_CID3415;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestPain_CID3202;
import cdac.medinfo.sdk.dcm30_04.templates.cid.NYHAClassification_CID3736;
import cdac.medinfo.sdk.dcm30_04.templates.cid.NumericValueQualifier_CID42;
import cdac.medinfo.sdk.dcm30_04.templates.cid.PressureUnits_CID3500;
import cdac.medinfo.sdk.dcm30_04.templates.cid.Sex_CID7455;
import cdac.medinfo.sdk.dcm30_04.templates.cid.UnitsOfMeasureForAge_CID7456;
import cdac.medinfo.sdk.dcm30_04.templates.enums.EnumCodingSchemeDesignator;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_BodySurfaceAreaEquations;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CanadianClinicalClassification;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CardiacRhythms;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CardiovascularPatientCharacteristics;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestPain;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_DefinedTerms;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_NYHAClassification;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_NumericValueQualifier;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_PressureUnits;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_Sex;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_Unit;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_UnitsOfMeasure;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_CardiovascularPatientCharacteristics;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_DefinedTerms;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_Unit;
import cdac.medinfo.sdk.dcm30_04.templates.generaltemplates.Template;

/**
 * This class represents CardiovascularPatientCharacteristics - TID3602
 */
public class CardiovascularPatientCharacteristics_TID3602 extends Template
{
	/**
	 * Object of CanadianClinicalClassification_CID3719. 
	 */
	private CanadianClinicalClassification_CID3719 objCanadianClinicalClassificationCID3719;
	/**
	 * Object of NYHAClassification_CID3736. 
	 */
	private NYHAClassification_CID3736 objNYHAClassificationCID3736;
	/**
	 * Object of PressureUnits_CID3500. 
	 */
	private PressureUnits_CID3500 objPressureUnitsCID3500;
	
	/**
	 * Object of ChestPain_CID3202. 
	 */
	private ChestPain_CID3202 objChestPainCID3202;
	/**
	 * Object of CardiacRhythms_CID3415. 
	 */
	private CardiacRhythms_CID3415 objCardiacRhythmsCID3415;
	
	/**
	 * Object of UnitsOfMeasureForAge_CID7456. 
	 */
	private UnitsOfMeasureForAge_CID7456 objUnitsOfMeasureForAge;

	/**
	 * Object of NumericValueQualifier_CID42. 
	 */
	private NumericValueQualifier_CID42 objNumericValueQualifier;

	/**
	 * Object of Sex_CID7455. 
	 */
	private Sex_CID7455 objSex;

	/**
	 * Object of BodySurfaceAreaEquations_CID3663. 
	 */
	private BodySurfaceAreaEquations_CID3663 objSurfaceAreaEquationsCID3663;

	/**
	 * Instantiates a new CardiovascularPatientCharacteristics_TID3602 Template.
	 * @param objTree Object of SRTree.
	 */
	public CardiovascularPatientCharacteristics_TID3602(SRTree objTree)
	{
		super(objTree);
	}

	/**
	 * Sets the value for Subject Age.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumUnitsOfMeasureForAge Object of EnumUnitsOfMeasureForAge
	 * @param arrNumericValue String array for Numeric Value.
	 * @param enumNumericValueQualifier Object of EnumCM_NumericValueQualifier
	 * @param strCSVersioForQualifier Coding Scheme Version for NumericValueQualifier
	 */
	public void setSubjectAge(int[] arrPosition,EnumCM_UnitsOfMeasure enumUnitsOfMeasureForAge, String[] arrNumericValue, EnumCM_NumericValueQualifier enumNumericValueQualifier, String strCSVersioForQualifier)
	{
		/**
		 * Sets the value for Units Of Measure For Age which follows the template CID7456 
		 */
		if(null== this.objUnitsOfMeasureForAge)
			this.objUnitsOfMeasureForAge = new UnitsOfMeasureForAge_CID7456();
		this.objUnitsOfMeasureForAge.setUnitsOfMeasureForAge(enumUnitsOfMeasureForAge);

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator For Unit of Age.
		 */
		String strCMForUnit = objUnitsOfMeasureForAge.getCodeMeaning();
		String strCVForUnit = objUnitsOfMeasureForAge.getCodeValue();
		String strCSDForUnit = objUnitsOfMeasureForAge.getCodingSchemeDesignator();
		String strCSVForUnit = objUnitsOfMeasureForAge.getCodingSchemeVersion();

		/**
		 * Sets the value for NumericValueQualifier which follows the template  
		 */  
		if(null== this.objNumericValueQualifier)
			this.objNumericValueQualifier = new NumericValueQualifier_CID42();
		this.objNumericValueQualifier.setNumericValueQualifier(enumNumericValueQualifier);

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator For NumericValueQualifier.
		 */
		String strCMForQualifier = objNumericValueQualifier.getCodeMeaning();
		String strCVForQualifier = objNumericValueQualifier.getCodeValue();
		String strCSDForQualifier = objNumericValueQualifier.getCodingSchemeDesignator();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.SUBJECT_AGE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.SUBJECT_AGE_121033.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition,strCodeMeaning,strCodeValue,strCSD,arrNumericValue,strCVForUnit,strCSDForUnit,strCSVForUnit,strCMForUnit,strCMForQualifier,strCVForQualifier,strCSDForQualifier,strCSVersioForQualifier);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets value for Functional capacity.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumCanadianClinicalClassification Enumerated value for CanadianClinicalClassification.
	 */
	public void setFunctionalCapacity(int[] arrPosition, EnumCM_CanadianClinicalClassification enumCanadianClinicalClassification)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.FUNCTIONAL_CAPACITY.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.FUNCTIONAL_CAPACITY_F_04FCC.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.SRT.getValue();

		/**
		 * Setting value for CanadianClinicalClassification
		 */
		if(null== this.objCanadianClinicalClassificationCID3719)
			this.objCanadianClinicalClassificationCID3719 = new CanadianClinicalClassification_CID3719();
		this.objCanadianClinicalClassificationCID3719.setCanadianClinicalClassification(enumCanadianClinicalClassification);

		String strCM = objCanadianClinicalClassificationCID3719.getCodeMeaning();
		String strCV = objCanadianClinicalClassificationCID3719.getCodeValue();
		String strCSD = objCanadianClinicalClassificationCID3719.getCodingSchemeDesignator();
		String strSNOMEDCTID = objCanadianClinicalClassificationCID3719.getSNOMEDCTID();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning, strCodeValue, strCSDesg, strCV, strCSD, "", strCM,strSNOMEDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets value for Diastolic Blood Pressure.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumPressureUnits Enumerated value for PressureUnits.
	 * @param arrNumericValue 
	 */
	public void setDiastolicBloodPressure(int[] arrPosition, EnumCM_PressureUnits enumPressureUnits, String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.DIASTOLIC_BLOOD_PRESSURE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.DIASTOLIC_BLOOD_PRESSURE_F_008ED.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.SRT.getValue();

		/**
		 * Setting value for PressureUnits
		 */
		if(null== this.objPressureUnitsCID3500)
			this.objPressureUnitsCID3500 = new PressureUnits_CID3500();
		this.objPressureUnitsCID3500.setPressureUnits(enumPressureUnits);

		String strCM = objPressureUnitsCID3500.getCodeMeaning();
		String strCV = objPressureUnitsCID3500.getCodeValue();
		String strCSD = objPressureUnitsCID3500.getCodingSchemeDesignator();
		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, arrNumericValue, strCM, strCV, "",strCSDesg, "", "", "", "");
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets value for Systolic Blood Pressure.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumPressureUnits Enumerated value for PressureUnits.
	 * @param arrNumericValue 
	 */
	public void setSystolicBloodPressure(int[] arrPosition, EnumCM_PressureUnits enumPressureUnits, String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.SYSTOLIC_BLOOD_PRESSURE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.SYSTOLIC_BLOOD_PRESSURE_F_008EC.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.SRT.getValue();

		/**
		 * Setting value for PressureUnits
		 */
		if(null== this.objPressureUnitsCID3500)
			this.objPressureUnitsCID3500 = new PressureUnits_CID3500();
		this.objPressureUnitsCID3500.setPressureUnits(enumPressureUnits);

		String strCM = objPressureUnitsCID3500.getCodeMeaning();
		String strCV = objPressureUnitsCID3500.getCodeValue();
		String strCSD = objPressureUnitsCID3500.getCodingSchemeDesignator();
		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, arrNumericValue, strCV, strCM, strCSDesg, "", "", "", "", "");
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets value for Cardiac Rhythm.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumCardiacRhythms Enumerated value for Cardiac Rhythms.
	 */
	public void setCardiacRhythm(int[] arrPosition, EnumCM_CardiacRhythms enumCardiacRhythms)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.CARDIAC_RHYTHM.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.CARDIAC_RHYTHM_8884_9.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Setting value for Cardiac Rhythms
		 */
		if(null== this.objCardiacRhythmsCID3415)
			this.objCardiacRhythmsCID3415 = new CardiacRhythms_CID3415();
		this.objCardiacRhythmsCID3415.setCardiacRhythms(enumCardiacRhythms);

		String strCM = objCardiacRhythmsCID3415.getCodeMeaning();
		String strCV = objCardiacRhythmsCID3415.getCodeValue();
		String strCSD = objCardiacRhythmsCID3415.getCodingSchemeDesignator();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning, strCodeValue, strCSDesg, strCV, strCSD, "", strCM);
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets value for Functional capacity.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumNYHAClassification Enumerated value for NYHAClassification.
	 */
	public void setFunctionalCapacity(int[] arrPosition, EnumCM_NYHAClassification enumNYHAClassification)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.FUNCTIONAL_CAPACITY.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.FUNCTIONAL_CAPACITY_F_04FCC.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.SRT.getValue();

		/**
		 * Setting value for NYHA Classification
		 */
		if(null== this.objNYHAClassificationCID3736)
			this.objNYHAClassificationCID3736 = new NYHAClassification_CID3736();
		this.objNYHAClassificationCID3736.setNYHAClassification(enumNYHAClassification);

		String strCM = objNYHAClassificationCID3736.getCodeMeaning();
		String strCV = objNYHAClassificationCID3736.getCodeValue();
		String strCSD = objNYHAClassificationCID3736.getCodingSchemeDesignator();
		String strSNOMEDCTID = objNYHAClassificationCID3736.getSNOMEDCTID();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning, strCodeValue, strCSDesg, strCV, strCSD, "", strCM,strSNOMEDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets value for Finding.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestPain Enumerated value for ChestPain.
	 * @param strValue 
	 */
	public void setFinding(int[] arrPosition, EnumCM_ChestPain enumChestPain, String strValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.FINDING.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.FINDING_121071.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Chest Pain
		 */
		if(null== this.objChestPainCID3202)
			this.objChestPainCID3202 = new ChestPain_CID3202();
		this.objChestPainCID3202.setChestPain(enumChestPain);

		String strCM = objChestPainCID3202.getCodeMeaning();
		String strCV = objChestPainCID3202.getCodeValue();
		String strCSD = objChestPainCID3202.getCodingSchemeDesignator();
		String strSNOMEDCTID = objChestPainCID3202.getSNOMEDCTID();
		
		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strCV, strCSDesg, "", strCM,strSNOMEDCTID);
		getSRTree().addChild(objContentSequenceItem);
		
	}
	
	/**
	 * Sets the value for Patient Characteristics
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 */
	public void setPatientCharacteristics(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.PATIENT_CHARACTERISTICS.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.PATIENT_CHARACTERISTICS_121118.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type UIDREF and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createContainer(arrPosition, strCodeMeaning, strCodeValue, strCSD, enumContinuityOfContent);
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets the value for Heart Rate.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 * @param arrNumericValue 
	 */
	public void setHeartRate(int[] arrPosition, String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.HEART_RATE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.HEART_RATE_8867_4.getValue();
		String strCSD = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Creating a node of Value Type NUM and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, arrNumericValue, "", "", "", "", "", "", "", "");
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets the value for Breast size.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 * @param strValue 
	 */
	public void setBreastSize(int[] arrPosition, String strValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.BREAST_SIZE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.BREAST_SIZE_F_009E4.getValue();
		String strCSD = EnumCodingSchemeDesignator.SRT.getValue();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createTextNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strValue);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for Chest Circumference.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 * @param strValue 
	 * @param arrNumericValue 
	 */
	public void setChestCircumference(int[] arrPosition, String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.CM.getValue();
		String strCVForUnit = EnumCV_Unit.CM.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.CHEST_CIRCUMFERENCE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.CHEST_CIRCUMFERENCE_F_03D8C.getValue();
		String strCSD = EnumCodingSchemeDesignator.SRT.getValue();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, arrNumericValue, strCSDForUnit, strCVForUnit, strCMForUnit, "", "", "", "", "");
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Subject Sex.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumSex value for Sex
	 * @param strCodingSchemeVersionForCode CodingSchemeVersion 
	 */
	public void setSubjectSex(int[] arrPosition, EnumCM_Sex enumSex,String strCodingSchemeVersionForCode)
	{
		/**
		 * Sets the value for Subject Sex which follows the template CID7455
		 */
		if(null== this.objSex)
			this.objSex = new Sex_CID7455();
		this.objSex.setSex(enumSex);
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCM = objSex.getCodeMeaning();
		String strCV = objSex.getCodeValue();
		String strCSD1 = objSex.getCodingSchemeDesignator();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.SUBJECT_SEX.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.SUBJECT_SEX_121032.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning,strCodeValue , strCSD2, strCV, strCSD1, strCodingSchemeVersionForCode, strCM);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Patient Height.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setPatientHeight(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.CM.getValue();
		String strCVForUnit = EnumCV_Unit.CM.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.PATIENT_HEIGHT.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.PATIENT_HEIGHT_8302_2.getValue();
		String strCSD = EnumCodingSchemeDesignator.LN.getValue();

		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition,strCodeMeaning,strCodeValue,strCSD,arrNumericValue,strCVForUnit,strCSDForUnit,"",strCMForUnit,"","","","");
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Patient Weight.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setPatientWeight(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.KG.getValue();
		String strCVForUnit = EnumCV_Unit.KG.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.PATIENT_WEIGHT.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.PATIENT_WEIGHT_29463_7.getValue();
		String strCSD = EnumCodingSchemeDesignator.LN.getValue();

		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition,strCodeMeaning,strCodeValue,strCSD,arrNumericValue,strCVForUnit,strCSDForUnit,"",strCMForUnit,"","","","");
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Thorax diameter, sagittal.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setThoraxDiameterSagittal(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.CM.getValue();
		String strCVForUnit = EnumCV_Unit.CM.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.THORAX_DIAMETER_SAGITTAL.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.THORAX_DIAMETER_SAGITTAL_122221.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition,strCodeMeaning,strCodeValue,strCSD,arrNumericValue,strCVForUnit,strCSDForUnit,"",strCMForUnit,"","","","");
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Body Surface Area.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setBodySurfaceArea(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.AREA.getValue();
		String strCVForUnit = EnumCV_Unit.AREA.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.BODY_SURFACE_AREA.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.BODY_SURFACE_AREA_8277_6.getValue();
		String strCSD = EnumCodingSchemeDesignator.LN.getValue();

		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition,strCodeMeaning,strCodeValue,strCSD,arrNumericValue,strCVForUnit,strCSDForUnit,"",strCMForUnit,"","","","");
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Body Surface Area Formula.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumBodySurfaceAreaEquations Enumerated value for BodySurfaceAreaEquations.
	 */
	public void setBodySurfaceAreaFormula(int[] arrPosition, EnumCM_BodySurfaceAreaEquations enumBodySurfaceAreaEquations)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.BODY_SURFACE_AREA_FORMULA.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.BODY_SURFACE_AREA_FORMULA_8248_4.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Setting value for Normality Codes
		 */
		if(null== this.objSurfaceAreaEquationsCID3663)
			this.objSurfaceAreaEquationsCID3663 = new BodySurfaceAreaEquations_CID3663();
		this.objSurfaceAreaEquationsCID3663.setBodySurfaceAreaEquations(enumBodySurfaceAreaEquations);

		String strCM = objSurfaceAreaEquationsCID3663.getCodeMeaning();
		String strCV = objSurfaceAreaEquationsCID3663.getCodeValue();
		String strCSD = objSurfaceAreaEquationsCID3663.getCodingSchemeDesignator();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning, strCodeValue, strCSDesg, strCV, strCSD, "", strCM);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Body Mass Index.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setBodyMassIndex(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.MASSINDEX.getValue();
		String strCVForUnit = EnumCV_Unit.MASSINDEX.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.BODY_MASS_INDEX.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.BODY_MASS_INDEX_F_01860.getValue();
		String strCSD = EnumCodingSchemeDesignator.SRT.getValue();

		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition,strCodeMeaning,strCodeValue,strCSD,arrNumericValue,strCVForUnit,strCSDForUnit,"",strCMForUnit,"","","","");
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Equation.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 */
	public void setEquation(int[] arrPosition)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.EQUATION.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.EQUATION_121420.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();


		String strCM = EnumCM_DefinedTerms.BMI.getValue();
		String strCV = EnumCV_DefinedTerms.BMI_122265.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning, strCodeValue, strCSDesg, strCV, strCSD, "", strCM);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets value for Patient Presentation.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strValue 
	 */
	public void setPatientPresentation(int[] arrPosition, String strValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.PATIENT_PRESENTATION.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.PATIENT_PRESENTATION_121110.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createTextNode(arrPosition, strCodeMeaning, strCodeValue, strCSDesg, strValue);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets value for Finding.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strValue 
	 */
	public void setFinding(int[] arrPosition, String strValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientCharacteristics.FINDING.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientCharacteristics.FINDING_121071.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createTextNode(arrPosition, strCodeMeaning, strCodeValue, strCSDesg, strValue);
		getSRTree().addChild(objContentSequenceItem);
	}
}
