/*******************************************************************************
 *  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.enums.EnumGraphicType;
import cdac.medinfo.sdk.dcm30_04.srtree.SRTree;
import cdac.medinfo.sdk.dcm30_04.templates.cid.BaselineCategory_CID6145;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestComponentCategories_CID6100;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestFindingOrFeatureModifier_CID6102;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ChestFindingOrFeature_CID6101;
import cdac.medinfo.sdk.dcm30_04.templates.cid.IntendedUseOfCADOutput_CID6034;
import cdac.medinfo.sdk.dcm30_04.templates.cid.NonLesionModifiers_CID6139;
import cdac.medinfo.sdk.dcm30_04.templates.enums.EnumCodingSchemeDesignator;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_BaselineCategory;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestCADSingleImageFindingTemplate;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestComponentCategories;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ChestFindingOrFeature;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_IntendedUseOfCADOutput;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_NonLesionModifiers;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_Unit;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_ChestCADSingleImageFindingTemplate;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_Unit;
import cdac.medinfo.sdk.dcm30_04.templates.generaltemplates.AreaMeasurementTemplate_TID1401;
import cdac.medinfo.sdk.dcm30_04.templates.generaltemplates.LinearMeasurementTemplate_TID1400;
import cdac.medinfo.sdk.dcm30_04.templates.generaltemplates.Template;
import cdac.medinfo.sdk.dcm30_04.templates.generaltemplates.VolumeMeasurementTemplate_TID1402;
import cdac.medinfo.sdk.dcm30_04.templates.mammographycadsriodtemplates.CADAlgorithmIdentificationTemplate_TID4019;
import cdac.medinfo.sdk.dcm30_04.templates.mammographycadsriodtemplates.CADImageQualityTemplate_TID4014;
import cdac.medinfo.sdk.dcm30_04.templates.mammographycadsriodtemplates.CADObservationContextTemplate_TID4022;

/**
 * This class represents ChestCADSingleImageFindingTemplate - TID4104
 */
public class ChestCADSingleImageFindingTemplate_TID4104 extends Template
{
	/**
	 * Object of ChestFindingOrFeature_CID6101
	 */
	private ChestFindingOrFeature_CID6101 objChestFindingOrFeatureCID6101;

	/**
	 * Object of ChestComponentCategories_CID6100
	 */
	private ChestComponentCategories_CID6100 objComponentCategoriesCID6100;

	/**
	 * Object of ChestFindingOrFeatureModifier_CID6102
	 */
	private ChestFindingOrFeatureModifier_CID6102 objChestFindingOrFeatureModifierCID6102;

	/**
	 * Object of BaselineCategory_CID6145
	 */
	private BaselineCategory_CID6145 objBaselineCategoryCID6145;

	/**
	 * Object of NonLesionModifiers_CID6139
	 */
	private NonLesionModifiers_CID6139 objNonLesionModifiersCID6139;

	/**
	 * Object of IntendedUseOfCADOutput_CID6034
	 */
	private IntendedUseOfCADOutput_CID6034 objCadOutputCID6034;

	/**
	 * Object of IntendedUseOfCADOutput_CID6034
	 */
	private IntendedUseOfCADOutput_CID6034 objIntendedUseOfCADOutputCID6034;

	/**
	 * Object of LinearMeasurementTemplate_TID1400
	 */

	private LinearMeasurementTemplate_TID1400 objLinearMeasurementTemplateTID1400;

	/**
	 * Object of AreaMeasurementTemplate_TID1401
	 */

	private AreaMeasurementTemplate_TID1401 objAreaMeasurementTemplateTID1401;

	/**
	 * Object of VolumeMeasurementTemplate_TID1402
	 */

	private VolumeMeasurementTemplate_TID1402 objVolumeMeasurementTemplateTID1402;

	/**
	 * Object of TrackingIdentifier_TID4108
	 */

	private TrackingIdentifier_TID4108 objTrackingIdentifierTID4108;

	/**
	 * Object of CADObservationContextTemplate_TID4022
	 */

	private CADObservationContextTemplate_TID4022 objCadObservationContextTemplateTID4022;

	/**
	 * Object of CADAlgorithmIdentificationTemplate_TID4019
	 */

	private CADAlgorithmIdentificationTemplate_TID4019 objAlgorithmIdentificationTemplateTID4019;

	/**
	 * Object of ChestCADGeometryTemplate_TID4107
	 */

	private ChestCADGeometryTemplate_TID4107 objChestCADGeometryTemplateTID4107;

	/**
	 * Object of ChestCADDescriptors_TID4105
	 */

	private ChestCADDescriptors_TID4105 objChestCADDescriptorsTID4105;

	/**
	 * Object of CADImageQualityTemplate_TID4014
	 */

	private CADImageQualityTemplate_TID4014 objImageQualityTemplateTID4014;

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

	/**
	 * Retrieves CADImageQualityTemplate 
	 * @return objImageQualityTemplateTID4014 Object of CADImageQualityTemplate_TID4014 
	 */
	public CADImageQualityTemplate_TID4014 getCADImageQualityTemplate() 
	{
		if(null == this.objImageQualityTemplateTID4014)
			this.objImageQualityTemplateTID4014 = new CADImageQualityTemplate_TID4014(getSRTree());
		return this.objImageQualityTemplateTID4014;
	}

	/**
	 * Retrieves ChestCADDescriptors 
	 * @return objChestCADDescriptorsTID4105 Object of ChestCADDescriptors_TID4105 
	 */
	public ChestCADDescriptors_TID4105 getChestCADDescriptors() 
	{
		if(null == this.objChestCADDescriptorsTID4105)
			this.objChestCADDescriptorsTID4105 = new ChestCADDescriptors_TID4105(getSRTree());
		return this.objChestCADDescriptorsTID4105;
	}

	/**
	 * Retrieves ChestCADGeometryTemplate 
	 * @return objChestCADGeometryTemplateTID4107 Object of ChestCADGeometryTemplate_TID4107 
	 */
	public ChestCADGeometryTemplate_TID4107 getChestCADGeometryTemplate() 
	{
		if(null == this.objChestCADGeometryTemplateTID4107)
			this.objChestCADGeometryTemplateTID4107 = new ChestCADGeometryTemplate_TID4107(getSRTree());
		return this.objChestCADGeometryTemplateTID4107;
	}

	/**
	 * Retrieves CADAlgorithmIdentificationTemplate 
	 * @return objAlgorithmIdentificationTemplateTID4019 Object of CADAlgorithmIdentificationTemplate_TID4019 
	 */
	public CADAlgorithmIdentificationTemplate_TID4019 getCADAlgorithmIdentificationTemplate() 
	{
		if(null == this.objAlgorithmIdentificationTemplateTID4019)
			this.objAlgorithmIdentificationTemplateTID4019 = new CADAlgorithmIdentificationTemplate_TID4019(getSRTree());
		return this.objAlgorithmIdentificationTemplateTID4019;
	}

	/**
	 * Retrieves CADObservationContextTemplate 
	 * @return objCadObservationContextTemplateTID4022 Object of CADObservationContextTemplate_TID4022 
	 */
	public CADObservationContextTemplate_TID4022 getCADObservationContextTemplate() 
	{
		if(null == this.objCadObservationContextTemplateTID4022)
			this.objCadObservationContextTemplateTID4022 = new CADObservationContextTemplate_TID4022(getSRTree());
		return this.objCadObservationContextTemplateTID4022;
	}

	/**
	 * Retrieves TrackingIdentifier 
	 * @return objTrackingIdentifierTID4108 Object of TrackingIdentifier_TID4108 
	 */
	public TrackingIdentifier_TID4108 getTrackingIdentifier() 
	{
		if(null == this.objTrackingIdentifierTID4108)
			this.objTrackingIdentifierTID4108 = new TrackingIdentifier_TID4108(getSRTree());
		return this.objTrackingIdentifierTID4108;
	}

	/**
	 * Retrieves LinearMeasurementTemplate 
	 * @return objLinearMeasurementTemplateTID1400 Object of LinearMeasurementTemplate_TID1400 
	 */
	public LinearMeasurementTemplate_TID1400 getLinearMeasurementTemplate() 
	{
		if(null == this.objLinearMeasurementTemplateTID1400)
			this.objLinearMeasurementTemplateTID1400 = new LinearMeasurementTemplate_TID1400(getSRTree());
		return this.objLinearMeasurementTemplateTID1400;
	}

	/**
	 * Retrieves AreaMeasurementTemplate 
	 * @return objAreaMeasurementTemplateTID1401 Object of AreaMeasurementTemplate_TID1401 
	 */
	public AreaMeasurementTemplate_TID1401 getAreaMeasurementTemplate() 
	{
		if(null == this.objAreaMeasurementTemplateTID1401)
			this.objAreaMeasurementTemplateTID1401 = new AreaMeasurementTemplate_TID1401(getSRTree());
		return this.objAreaMeasurementTemplateTID1401;
	}

	/**
	 * Retrieves VolumeMeasurementTemplate 
	 * @return objVolumeMeasurementTemplateTID1402 Object of VolumeMeasurementTemplate_TID1402 
	 */
	public VolumeMeasurementTemplate_TID1402 getVolumeMeasurementTemplate() 
	{
		if(null == this.objVolumeMeasurementTemplateTID1402)
			this.objVolumeMeasurementTemplateTID1402 = new VolumeMeasurementTemplate_TID1402(getSRTree());
		return this.objVolumeMeasurementTemplateTID1402;
	}

	/**
	 * Sets value for Single Image Finding.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestFindingOrFeature Enumerated value for ChestFindingOrFeature
	 */
	public void setSingleImageFinding(int[] arrPosition, EnumCM_ChestFindingOrFeature enumChestFindingOrFeature)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADSingleImageFindingTemplate.SINGLE_IMAGE_FINDING.getValue();
		String strCodeValue = EnumCV_ChestCADSingleImageFindingTemplate.SINGLE_IMAGE_FINDING_111059.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objChestFindingOrFeatureCID6101)
			this.objChestFindingOrFeatureCID6101 = new ChestFindingOrFeature_CID6101();
		this.objChestFindingOrFeatureCID6101.setChestFindingOrFeature(enumChestFindingOrFeature);

		String strCM = objChestFindingOrFeatureCID6101.getCodeMeaning();
		String strCV = objChestFindingOrFeatureCID6101.getCodeValue();
		String strCSD = objChestFindingOrFeatureCID6101.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 Single Image Finding Modifier.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumValue This value can be one of the three Enum - EnumCM_AbnormalLinesFindingOrFeature, EnumAbnormalOpacityFindingOrFeature
	 * EnumCM_AbnormalLucencyFindingOrFeature, EnumAbnormalTextureFindingOrFeature,EnumChestNonLesionObjectType,EnumCM_RadiographicAnatomyFindingOrFeature,
	 * EnumCM_LungAnatomyFindingOrFeature, EnumCM_BronchovascularAnatomyFindingOrFeature, EnumCM_PleuraAnatomyFindingOrFeature,EnumCM_MediastinumAnatomyFindingOrFeature,
	 * EnumCM_OsseousAnatomyFindingOrFeature, EnumCM_MuscularAnatomy,EnumCM_VascularAnatomy,EnumCM_CoronaryArteries,EnumCM_CoronaryArterySegments.
	 */
	public void setSingleImageFindingModifier(int[] arrPosition, Enum enumValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADSingleImageFindingTemplate.SINGLE_IMAGE_FINDING.getValue();
		String strCodeValue = EnumCV_ChestCADSingleImageFindingTemplate.SINGLE_IMAGE_FINDING_111059.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objChestFindingOrFeatureModifierCID6102)
			this.objChestFindingOrFeatureModifierCID6102 = new ChestFindingOrFeatureModifier_CID6102();
		this.objChestFindingOrFeatureModifierCID6102.setChestFindingOrFeatureModifier(enumValue);

		String strCM = objChestFindingOrFeatureModifierCID6102.getCodeMeaning();
		String strCV = objChestFindingOrFeatureModifierCID6102.getCodeValue();
		String strCSD = objChestFindingOrFeatureModifierCID6102.getCodingSchemeDesignator();
		String strSNMDCTID = objChestFindingOrFeatureModifierCID6102.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 Anatomic Identifier
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strAnatomicIdentifier String value for Anatomic Identifier.
	 */
	public void setAnatomicIdentifier(int[] arrPosition, String strAnatomicIdentifier)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADSingleImageFindingTemplate.ANATOMIC_IDENTIFIER.getValue();
		String strCodeValue = EnumCV_ChestCADSingleImageFindingTemplate.ANATOMIC_IDENTIFIER_112050.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, strAnatomicIdentifier);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets value for Associated Chest Component.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumChestComponentCategories Enumerated value for ChestComponentCategories
	 */
	public void setAssociatedChestComponent(int[] arrPosition, EnumCM_ChestComponentCategories enumChestComponentCategories)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADSingleImageFindingTemplate.ASSOCIATED_CHEST_COMPONENT.getValue();
		String strCodeValue = EnumCV_ChestCADSingleImageFindingTemplate.ASSOCIATED_CHEST_COMPONENT_112003.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objComponentCategoriesCID6100)
			this.objComponentCategoriesCID6100 = new ChestComponentCategories_CID6100();
		this.objComponentCategoriesCID6100.setChestComponentCategories(enumChestComponentCategories);

		String strCM = objComponentCategoriesCID6100.getCodeMeaning();
		String strCV = objComponentCategoriesCID6100.getCodeValue();
		String strCSD = objComponentCategoriesCID6100.getCodingSchemeDesignator();
		String strSNMDCTID = objComponentCategoriesCID6100.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 Associated Chest Component.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumNonLesionModifiers Enumerated value for NonLesionModifiers
	 */
	public void setAssociatedChestComponent(int[] arrPosition, EnumCM_NonLesionModifiers enumNonLesionModifiers)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADSingleImageFindingTemplate.NONLESION_MODIFIER.getValue();
		String strCodeValue = EnumCV_ChestCADSingleImageFindingTemplate.NONLESION_MODIFIER_112037.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();
		
		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objNonLesionModifiersCID6139)
			this.objNonLesionModifiersCID6139 = new NonLesionModifiers_CID6139();
		this.objNonLesionModifiersCID6139.setNonLesionModifiers(enumNonLesionModifiers);

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

	/**
	 * Sets value for Nonlesion Modifier.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumIntendedUseOfCADOutput Enumerated value for IntendedUseOfCADOutput
	 */
	public void setNonlesionModifier(int[] arrPosition, EnumCM_IntendedUseOfCADOutput enumIntendedUseOfCADOutput)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADSingleImageFindingTemplate.NONLESION_MODIFIER.getValue();
		String strCodeValue = EnumCV_ChestCADSingleImageFindingTemplate.NONLESION_MODIFIER_112037.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();
		
		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objCadOutputCID6034)
			this.objCadOutputCID6034 = new IntendedUseOfCADOutput_CID6034();
		this.objCadOutputCID6034.setIntendedUseOfCADOutput(enumIntendedUseOfCADOutput);

		String strCM = objCadOutputCID6034.getCodeMeaning();
		String strCV = objCadOutputCID6034.getCodeValue();
		String strCSD = objCadOutputCID6034.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 Baseline Category.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumBaselineCategory Enumerated value for BaselineCategory
	 */
	public void setBaselineCategory(int[] arrPosition, EnumCM_BaselineCategory enumBaselineCategory)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADSingleImageFindingTemplate.BASELINE_CATEGORY.getValue();
		String strCodeValue = EnumCV_ChestCADSingleImageFindingTemplate.BASELINE_CATEGORY_112016.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objBaselineCategoryCID6145)
			this.objBaselineCategoryCID6145 = new BaselineCategory_CID6145();
		this.objBaselineCategoryCID6145.setBaselineCategory(enumBaselineCategory);

		String strCM = objBaselineCategoryCID6145.getCodeMeaning();
		String strCV = objBaselineCategoryCID6145.getCodeValue();
		String strCSD = objBaselineCategoryCID6145.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 Rendering Intent.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumIntendedUseOfCADOutput Enumerated value for IntendedUseOfCADOutput
	 */
	public void setRenderingIntent(int[] arrPosition, EnumCM_IntendedUseOfCADOutput enumIntendedUseOfCADOutput)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADSingleImageFindingTemplate.RENDERING_INTENT.getValue();
		String strCodeValue = EnumCV_ChestCADSingleImageFindingTemplate.RENDERING_INTENT_111056.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Setting value for Assessment Category
		 */
		if(null== this.objIntendedUseOfCADOutputCID6034)
			this.objIntendedUseOfCADOutputCID6034 = new IntendedUseOfCADOutput_CID6034();
		this.objIntendedUseOfCADOutputCID6034.setIntendedUseOfCADOutput(enumIntendedUseOfCADOutput);

		String strCM = objIntendedUseOfCADOutputCID6034.getCodeMeaning();
		String strCV = objIntendedUseOfCADOutputCID6034.getCodeValue();
		String strCSD = objIntendedUseOfCADOutputCID6034.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 Certainty of Finding.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setCertaintyOfFinding(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.PERCENTAGE.getValue();
		String strCVForUnit = EnumCV_Unit.PERCENTAGE.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADSingleImageFindingTemplate.CERTAINTY_OF_FINDING.getValue();
		String strCodeValue = EnumCV_ChestCADSingleImageFindingTemplate.CERTAINTY_OF_FINDING_111012.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 Selected Region Description
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strSelectedRegionDescription String value for Selected Region Description.
	 */
	public void setSelectedRegionDescription(int[] arrPosition, String strSelectedRegionDescription)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADSingleImageFindingTemplate.SELECTED_REGION_DESCRIPTION.getValue();
		String strCodeValue = EnumCV_ChestCADSingleImageFindingTemplate.SELECTED_REGION_DESCRIPTION_111058.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, strSelectedRegionDescription);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Image Region
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrFlGraphicData Float array for FlGraphicData.
	 * @param enumGraphicType Enumerated value for GraphicType.
	 */
	public void setImageRegion(int[] arrPosition, float []arrFlGraphicData, EnumGraphicType enumGraphicType)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ChestCADSingleImageFindingTemplate.IMAGE_REGION.getValue();
		String strCodeValue = EnumCV_ChestCADSingleImageFindingTemplate.IMAGE_REGION_111030.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type SCOORD and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createSCOORDNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, arrFlGraphicData, enumGraphicType);
		getSRTree().addChild(objContentSequenceItem);
	}
}
