/*******************************************************************************
 *  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.chestcadsriodtemplates;

import cdac.medinfo.sdk.dcm30_04.baselibs.ContentSequenceItem;
import cdac.medinfo.sdk.dcm30_04.srtree.SRTree;
import cdac.medinfo.sdk.dcm30_04.templates.cid.AttenuationCoefficientMeasurements_CID6141;
import cdac.medinfo.sdk.dcm30_04.templates.cid.CalculatedValue_CID6142;
import cdac.medinfo.sdk.dcm30_04.templates.cid.CalculationMethods_CID6140;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestAnatomicStructureAbnormalDistribution_CID6108;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestBorderDefinition_CID6120;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestBorderShape_CID6119;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestCalcificationDescriptor_CID6132;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestContentDescriptor_CID6122;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestDistributionDescriptor_CID6128;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestOpacityDescriptor_CID6123;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestOrientationDescriptor_CID6121;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestSiteInvolvement_CID6129;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestTextureDescriptor_CID6131;
import cdac.medinfo.sdk.dcm30_04.templates.cid.Laterality_CID244;
import cdac.medinfo.sdk.dcm30_04.templates.cid.LocationInChest_CID6124;
import cdac.medinfo.sdk.dcm30_04.templates.cid.SeverityDescriptor_CID6130;
import cdac.medinfo.sdk.dcm30_04.templates.cid.SizeDescriptor_CID6118;
import cdac.medinfo.sdk.dcm30_04.templates.cid.WidthDescriptor_CID6107;
import cdac.medinfo.sdk.dcm30_04.templates.enums.EnumCodingSchemeDesignator;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_AttenuationCoefficientMeasurements;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CalculatedValue;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CalculationMethods;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestAnatomicStructureAbnormalDistribution;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestBorderDefinition;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestBorderShape;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestCADDescriptors;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestCalcificationDescriptor;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestContentDescriptor;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestDistributionDescriptor;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestOpacityDescriptor;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestOrientationDescriptor;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestSiteInvolvement;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestTextureDescriptor;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_Laterality;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_SeverityDescriptor;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_SizeDescriptor;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_Unit;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_WidthDescriptor;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_ChestCADDescriptors;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_Unit;
import cdac.medinfo.sdk.dcm30_04.templates.generaltemplates.Template;

/**
 * This class represents ChestCADDescriptors - TID4105
 */
public class ChestCADDescriptors_TID4105 extends Template
{
	/**
	 * Object of SizeDescriptor_CID6118
	 */
	private SizeDescriptor_CID6118 objSizeDescriptorCID6118;

	/**
	 * Object of WidthDescriptor_CID6107
	 */
	private WidthDescriptor_CID6107 objWidthDescriptorCID6107;

	/**
	 * Object of ChestBorderShape_CID6119
	 */
	private ChestBorderShape_CID6119 objChestBorderShapeCID6119;

	/**
	 * Object of ChestBorderDefinition_CID6120
	 */
	private ChestBorderDefinition_CID6120 objChestBorderDefinitionCID6120;

	/**
	 * Object of ChestOrientationDescriptor_CID6121
	 */
	private ChestOrientationDescriptor_CID6121 objChestOrientationDescriptorCID6121;

	/**
	 * Object of ChestContentDescriptor_CID6122
	 */
	private ChestContentDescriptor_CID6122 objChestContentDescriptorCID6122;

	/**
	 * Object of ChestOpacityDescriptor_CID6123
	 */
	private ChestOpacityDescriptor_CID6123 objChestOpacityDescriptorCID6123;

	/**
	 * Object of LocationInChest_CID6124
	 */
	private LocationInChest_CID6124 objLocationInChestCID6124;

	/**
	 * Object of Laterality_CID244
	 */
	private Laterality_CID244 objLaterality_CID244;

	/**
	 * Object of ChestDistributionDescriptor_CID6128
	 */
	private ChestDistributionDescriptor_CID6128 objChestDistributionDescriptorCID6128;

	/**
	 * Object of ChestAnatomicStructureAbnormalDistribution_CID6108
	 */
	private ChestAnatomicStructureAbnormalDistribution_CID6108 objAbnormalDistributionCID6108;

	/**
	 * Object of ChestSiteInvolvement_CID6129
	 */
	private ChestSiteInvolvement_CID6129 objChestSiteInvolvementCID6129;

	/**
	 * Object of SeverityDescriptor_CID6130
	 */
	private SeverityDescriptor_CID6130 objSeverityDescriptorCID6130;

	/**
	 * Object of ChestTextureDescriptor_CID6131
	 */
	private ChestTextureDescriptor_CID6131 objChestTextureDescriptorCID6131;

	/**
	 * Object of ChestCalcificationDescriptor_CID6132
	 */
	private ChestCalcificationDescriptor_CID6132 objCalcificationDescriptorCID6132;

	/**
	 * Object of CalculatedValue_CID6142
	 */
	private CalculatedValue_CID6142 objCalculatedValueCID6142;

	/**
	 * Object of CalculationMethods_CID6140
	 */
	private CalculationMethods_CID6140 objCalculationMethodsCID6140;

	/**
	 * Object of AttenuationCoefficientMeasurements_CID6141
	 */
	private AttenuationCoefficientMeasurements_CID6141 objAttenuationCoefficientMeasurementsCID6141;

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

	/**
	 * Sets value for Size Descriptor.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumSizeDescriptor Enumerated value for SizeDescriptor
	 */
	public void setSizeDescriptor(int[] arrPosition, EnumCM_SizeDescriptor enumSizeDescriptor)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.SIZE_DESCRIPTOR.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.SIZE_DESCRIPTOR_112025.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objSizeDescriptorCID6118)
			this.objSizeDescriptorCID6118 = new SizeDescriptor_CID6118();
		this.objSizeDescriptorCID6118.setSizeDescriptor(enumSizeDescriptor);

		String strCM = objSizeDescriptorCID6118.getCodeMeaning();
		String strCV = objSizeDescriptorCID6118.getCodeValue();
		String strCSD = objSizeDescriptorCID6118.getCodingSchemeDesignator();
		String strSNMDCTID = objSizeDescriptorCID6118.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Width Descriptor.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumWidthDescriptor Enumerated value for WidthDescriptor
	 */
	public void setWidthDescriptor(int[] arrPosition, EnumCM_WidthDescriptor enumWidthDescriptor)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.WIDTH_DESCRIPTOR.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.WIDTH_DESCRIPTOR_112026.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objWidthDescriptorCID6107)
			this.objWidthDescriptorCID6107 = new WidthDescriptor_CID6107();
		this.objWidthDescriptorCID6107.setWidthDescriptor(enumWidthDescriptor);

		String strCM = objWidthDescriptorCID6107.getCodeMeaning();
		String strCV = objWidthDescriptorCID6107.getCodeValue();
		String strCSD = objWidthDescriptorCID6107.getCodingSchemeDesignator();
		String strSNMDCTID = objSizeDescriptorCID6118.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Border shape.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestBorderShape Enumerated value for ChestBorderShape
	 */
	public void setBorderShape(int[] arrPosition, EnumCM_ChestBorderShape enumChestBorderShape)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.BORDER_SHAPE.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.BORDER_SHAPE_112015.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objChestBorderShapeCID6119)
			this.objChestBorderShapeCID6119 = new ChestBorderShape_CID6119();
		this.objChestBorderShapeCID6119.setChestBorderShape(enumChestBorderShape);

		String strCM = objChestBorderShapeCID6119.getCodeMeaning();
		String strCV = objChestBorderShapeCID6119.getCodeValue();
		String strCSD = objChestBorderShapeCID6119.getCodingSchemeDesignator();
		String strSNMDCTID = objChestBorderShapeCID6119.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Border definition.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestBorderDefinition Enumerated value for ChestBorderDefinition
	 */
	public void setBorderDefinition(int[] arrPosition, EnumCM_ChestBorderDefinition enumChestBorderDefinition)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.BORDER_DEFINITION.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.BORDER_DEFINITION_112007.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objChestBorderDefinitionCID6120)
			this.objChestBorderDefinitionCID6120 = new ChestBorderDefinition_CID6120();
		this.objChestBorderDefinitionCID6120.setChestBorderDefinition(enumChestBorderDefinition);

		String strCM = objChestBorderDefinitionCID6120.getCodeMeaning();
		String strCV = objChestBorderDefinitionCID6120.getCodeValue();
		String strCSD = objChestBorderDefinitionCID6120.getCodingSchemeDesignator();
		String strSNMDCTID = objChestBorderDefinitionCID6120.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Orientation Descriptor.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestOrientationDescriptor Enumerated value for ChestOrientationDescriptor
	 */
	public void setOrientationDescriptor(int[] arrPosition, EnumCM_ChestOrientationDescriptor enumChestOrientationDescriptor)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.ORIENTATION_DESCRIPTOR.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.ORIENTATION_DESCRIPTOR_112014.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objChestOrientationDescriptorCID6121)
			this.objChestOrientationDescriptorCID6121 = new ChestOrientationDescriptor_CID6121();
		this.objChestOrientationDescriptorCID6121.setChestOrientationDescriptor(enumChestOrientationDescriptor);

		String strCM = objChestOrientationDescriptorCID6121.getCodeMeaning();
		String strCV = objChestOrientationDescriptorCID6121.getCodeValue();
		String strCSD = objChestOrientationDescriptorCID6121.getCodingSchemeDesignator();
		String strSNMDCTID = objChestOrientationDescriptorCID6121.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Type of Content.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestContentDescriptor Enumerated value for ChestContentDescriptor
	 */
	public void setTypeOfContent(int[] arrPosition, EnumCM_ChestContentDescriptor enumChestContentDescriptor)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.TYPE_OF_CONTENT.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.TYPE_OF_CONTENT_112009.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objChestContentDescriptorCID6122)
			this.objChestContentDescriptorCID6122 = new ChestContentDescriptor_CID6122();
		this.objChestContentDescriptorCID6122.setChestContentDescriptor(enumChestContentDescriptor);

		String strCM = objChestContentDescriptorCID6122.getCodeMeaning();
		String strCV = objChestContentDescriptorCID6122.getCodeValue();
		String strCSD = objChestContentDescriptorCID6122.getCodingSchemeDesignator();
		String strSNMDCTID = objChestContentDescriptorCID6122.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Opacity Descriptor.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestOpacityDescriptor Enumerated value for ChestOpacityDescriptor
	 */
	public void setOpacityDescriptor(int[] arrPosition, EnumCM_ChestOpacityDescriptor enumChestOpacityDescriptor)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.OPACITY_DESCRIPTOR.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.OPACITY_DESCRIPTOR_112027.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objChestOpacityDescriptorCID6123)
			this.objChestOpacityDescriptorCID6123 = new ChestOpacityDescriptor_CID6123();
		this.objChestOpacityDescriptorCID6123.setChestOpacityDescriptor(enumChestOpacityDescriptor);

		String strCM = objChestOpacityDescriptorCID6123.getCodeMeaning();
		String strCV = objChestOpacityDescriptorCID6123.getCodeValue();
		String strCSD = objChestOpacityDescriptorCID6123.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 Location in Chest.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumValue This value can be one of the following Enum - EnumCM_GeneralChestLocation,
	 * EnumCM_LocationInLungEnumCM_SegmentLocationInLung.
	 */
	public void setLocationInChest(int[] arrPosition, Enum enumValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.LOCATION_IN_CHEST.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.LOCATION_IN_CHEST_112013.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objLocationInChestCID6124)
			this.objLocationInChestCID6124 = new LocationInChest_CID6124();
		this.objLocationInChestCID6124.setLocationInChest(enumValue);

		String strCM = objLocationInChestCID6124.getCodeMeaning();
		String strCV = objLocationInChestCID6124.getCodeValue();
		String strCSD = objLocationInChestCID6124.getCodingSchemeDesignator();
		String strSNMDCTID = objLocationInChestCID6124.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Laterality.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumLaterality Enum value for Laterality
	 */
	public void setLaterality(int[] arrPosition, EnumCM_Laterality enumLaterality)
	{
		/**
		 * Sets the value for InterventionActionsAndStatus.
		 */
		if(null== this.objLaterality_CID244)
			this.objLaterality_CID244 = new Laterality_CID244();
		this.objLaterality_CID244.setLaterality(enumLaterality);

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCM = this.objLaterality_CID244.getCodeMeaning();
		String strCV = this.objLaterality_CID244.getCodeValue();
		String strCSD1 = this.objLaterality_CID244.getCodingSchemeDesignator();
		String strSNMDCTID = objLaterality_CID244.getSNOMEDCTID();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.LATERALITY.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.LATERALITY_G_C171.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.SRT.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, "", strCM,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Distribution Descriptor.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestDistributionDescriptor Enumerated value for ChestDistributionDescriptor
	 */
	public void setDistributionDescriptor(int[] arrPosition, EnumCM_ChestDistributionDescriptor enumChestDistributionDescriptor)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.DISTRIBUTION_DESCRIPTOR.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.DISTRIBUTION_DESCRIPTOR_112006.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objChestDistributionDescriptorCID6128)
			this.objChestDistributionDescriptorCID6128 = new ChestDistributionDescriptor_CID6128();
		this.objChestDistributionDescriptorCID6128.setChestDistributionDescriptor(enumChestDistributionDescriptor);

		String strCM = objChestDistributionDescriptorCID6128.getCodeMeaning();
		String strCV = objChestDistributionDescriptorCID6128.getCodeValue();
		String strCSD = objChestDistributionDescriptorCID6128.getCodingSchemeDesignator();
		String strSNMDCTID = objChestDistributionDescriptorCID6128.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Abnormal Distribution of Anatomic Structure.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestAnatomicStructureAbnormalDistribution Enumerated value for ChestAnatomicStructureAbnormalDistribution
	 */
	public void setAbnormalDistributionOfAnatomicStructure(int[] arrPosition, EnumCM_ChestAnatomicStructureAbnormalDistribution enumChestAnatomicStructureAbnormalDistribution)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.ABNORMAL_DISTRIBUTION_OF_ANATOMIC_STRUCTURE.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.ABNORMAL_DISTRIBUTION_OF_ANATOMIC_STRUCTURE_112028.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objAbnormalDistributionCID6108)
			this.objAbnormalDistributionCID6108 = new ChestAnatomicStructureAbnormalDistribution_CID6108();
		this.objAbnormalDistributionCID6108.setChestAnatomicStructureAbnormalDistribution(enumChestAnatomicStructureAbnormalDistribution);

		String strCM = objAbnormalDistributionCID6108.getCodeMeaning();
		String strCV = objAbnormalDistributionCID6108.getCodeValue();
		String strCSD = objAbnormalDistributionCID6108.getCodingSchemeDesignator();
		String strSNMDCTID = objAbnormalDistributionCID6108.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Site involvement.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestSiteInvolvement Enumerated value for ChestSiteInvolvement
	 */
	public void setSiteInvolvement(int[] arrPosition, EnumCM_ChestSiteInvolvement enumChestSiteInvolvement)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.SITE_INVOLVEMENT.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.SITE_INVOLVEMENT_112008.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objChestSiteInvolvementCID6129)
			this.objChestSiteInvolvementCID6129 = new ChestSiteInvolvement_CID6129();
		this.objChestSiteInvolvementCID6129.setChestSiteInvolvement(enumChestSiteInvolvement);

		String strCM = objChestSiteInvolvementCID6129.getCodeMeaning();
		String strCV = objChestSiteInvolvementCID6129.getCodeValue();
		String strCSD = objChestSiteInvolvementCID6129.getCodingSchemeDesignator();
		String strSNMDCTID = objChestSiteInvolvementCID6129.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Severity.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumSeverityDescriptor Enumerated value for value for SeverityDescriptor.
	 */
	public void setSeverity(int[] arrPosition, EnumCM_SeverityDescriptor enumSeverityDescriptor)
	{
		/**
		 * Sets the value for Subject Sex which follows the template CID7455
		 */
		if(null== this.objSeverityDescriptorCID6130)
			this.objSeverityDescriptorCID6130 = new SeverityDescriptor_CID6130();
		this.objSeverityDescriptorCID6130.setSeverityDescriptor(enumSeverityDescriptor);

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCM = objSeverityDescriptorCID6130.getCodeMeaning();
		String strCV = objSeverityDescriptorCID6130.getCodeValue();
		String strCSD1 = objSeverityDescriptorCID6130.getCodingSchemeDesignator();
		String strSNMDCTID = objSeverityDescriptorCID6130.getSNOMEDCTID();
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.SEVERITY.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.SEVERITY_G_C197.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.SRT.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, "", strCM,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Texture Descriptor.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestTextureDescriptor Enumerated value for ChestTextureDescriptor
	 */
	public void setTextureDescriptor(int[] arrPosition, EnumCM_ChestTextureDescriptor enumChestTextureDescriptor)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.TEXTURE_DESCRIPTOR.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.TEXTURE_DESCRIPTOR_112010.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();
		
		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objChestTextureDescriptorCID6131)
			this.objChestTextureDescriptorCID6131 = new ChestTextureDescriptor_CID6131();
		this.objChestTextureDescriptorCID6131.setChestTextureDescriptor(enumChestTextureDescriptor);

		String strCM = objChestTextureDescriptorCID6131.getCodeMeaning();
		String strCV = objChestTextureDescriptorCID6131.getCodeValue();
		String strCSD = objChestTextureDescriptorCID6131.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 Calcification Descriptor.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestCalcificationDescriptor Enumerated value for ChestCalcificationDescriptor
	 */
	public void setCalcificationDescriptor(int[] arrPosition, EnumCM_ChestCalcificationDescriptor enumChestCalcificationDescriptor)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.CALCIFICATION_DESCRIPTOR.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.CALCIFICATION_DESCRIPTOR_112030.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objCalcificationDescriptorCID6132)
			this.objCalcificationDescriptorCID6132 = new ChestCalcificationDescriptor_CID6132();
		this.objCalcificationDescriptorCID6132.setChestCalcificationDescriptor(enumChestCalcificationDescriptor);

		String strCM = objCalcificationDescriptorCID6132.getCodeMeaning();
		String strCV = objCalcificationDescriptorCID6132.getCodeValue();
		String strCSD = objCalcificationDescriptorCID6132.getCodingSchemeDesignator();
		String strSNMDCTID = objCalcificationDescriptorCID6132.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Calculated Value.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 * @param enumCalculatedValue Enumerated value for CalculatedValue
	 */
	public void setCalculatedValue(int[] arrPosition,String[] arrNumericValue,EnumCM_CalculatedValue enumCalculatedValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		if(null== this.objCalculatedValueCID6142)
			this.objCalculatedValueCID6142 = new CalculatedValue_CID6142();
		this.objCalculatedValueCID6142.setCalculatedValue(enumCalculatedValue);

		String strCodeMeaning = objCalculatedValueCID6142.getCodeMeaning();
		String strCodeValue = objCalculatedValueCID6142.getCodeValue();
		String strCSD = objCalculatedValueCID6142.getCodingSchemeDesignator();
		String strSNMDCTID = objCalcificationDescriptorCID6132.getSNOMEDCTID();
		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition,strCodeMeaning,strCodeValue,strCSD,arrNumericValue,"","","","","","","","",strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Derivation.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumCalculationMethod Enum value for Calculation Method.
	 */
	public void setDerivation(int[] arrPosition, EnumCM_CalculationMethods enumCalculationMethods)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.DERIVATION.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.DERIVATION_121401.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Calculation Method
		 */
		if(null== objCalculationMethodsCID6140)
			objCalculationMethodsCID6140 = new CalculationMethods_CID6140();
		objCalculationMethodsCID6140.setCalculationMethods(enumCalculationMethods);

		String strCM = objCalculationMethodsCID6140.getCodeMeaning();
		String strCV = objCalculationMethodsCID6140.getCodeValue();
		String strCSD = objCalculationMethodsCID6140.getCodingSchemeDesignator();
		String strSNMDCTID = objCalculationMethodsCID6140.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,strSNMDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

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

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.THRESHOLD_ATTENUATION_COEFFICIENT.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.THRESHOLD_ATTENUATION_COEFFICIENT_112032.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 Attenuation Coefficient Measurements.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 * @param enumAttenuationCoefficientMeasurements Enum Value of AttenuationCoefficientMeasurements
	 */
	public void setAttenuationCoefficientMeasurements(int[] arrPosition,String[] arrNumericValue,EnumCM_AttenuationCoefficientMeasurements enumAttenuationCoefficientMeasurements)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.HOUNSFIELD_UNIT.getValue();
		String strCVForUnit = EnumCV_Unit.HOUNSFIELD_UNIT.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		if(null== this.objAttenuationCoefficientMeasurementsCID6141)
			this.objAttenuationCoefficientMeasurementsCID6141 = new AttenuationCoefficientMeasurements_CID6141();
		this.objAttenuationCoefficientMeasurementsCID6141.setAttenuationCoefficientMeasurements(enumAttenuationCoefficientMeasurements);

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

	/**
	 * Sets the value for Calculation Description
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strCalculationDescription String value for Calculation Description.
	 */
	public void setCalculationDescription(int[] arrPosition, String strCalculationDescription)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADDescriptors.CALCULATION_DESCRIPTION.getValue();
		String strCodeValue = EnumCV_ChestCADDescriptors.CALCULATION_DESCRIPTION_112034.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.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, strCalculationDescription);
		getSRTree().addChild(objContentSequenceItem);
	}
}
