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

import cdac.medinfo.sdk.dcm30_04.baselibs.ContentSequenceItem;
import cdac.medinfo.sdk.dcm30_04.dicommodel.modules.SRDocumentContentModule;
import cdac.medinfo.sdk.dcm30_04.enums.EnumContinuityOfContent;
import cdac.medinfo.sdk.dcm30_04.srtree.SRTree;
import cdac.medinfo.sdk.dcm30_04.templates.cid.HumanHipImplantPlanningLandmarks_CID7306;
import cdac.medinfo.sdk.dcm30_04.templates.cid.PlanningMethods_CID7320;
import cdac.medinfo.sdk.dcm30_04.templates.enums.EnumCodingSchemeDesignator;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_HumanHipImplantPlanningLandmarks;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ImplantationPlan;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_PlanningMethods;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_PurposeOfReferenceToObject;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_Unit;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_ImplantationPlan;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_Unit;
import cdac.medinfo.sdk.dcm30_04.templates.generaltemplates.LanguageOfContentItemAndDescendants_TID1204;
import cdac.medinfo.sdk.dcm30_04.templates.generaltemplates.ObservationContext_TID1001;
import cdac.medinfo.sdk.dcm30_04.templates.generaltemplates.PreviousReports_TID351;
import cdac.medinfo.sdk.dcm30_04.templates.generaltemplates.Template;

/**
 * This class represents ImplantationPlan_TID7000
 */
public class ImplantationPlan_TID7000 extends Template{

	/**
	 * Object of PlanningMethods_CID7320
	 */

	private PlanningMethods_CID7320 objPlanningMethods_CID7320;
	
	/**
	 * Object of ObservationContext_TID1001
	 */

	private ObservationContext_TID1001 objObservationContext_TID1001;
	
	/**
	 * Object of HumanHipImplantPlanningLandmarks_CID7306
	 */
	private HumanHipImplantPlanningLandmarks_CID7306 objHumanHipImplantPlanningLandmarks_CID7306;
	
	/**
	 * Object of RelatedImplantationReports_TID7001
	 */

	private RelatedImplantationReports_TID7001 objDeviceUsedTID3107;
	/**
	 * Object of PreviousReports_TID351
	 */

	private PreviousReports_TID351 objPreviousReports_TID351;
	/**
	 * Instantiates ImplantationPlan_TID7000 Template.
	 * @param objTree Object of SRTree.
	 */
	public ImplantationPlan_TID7000(SRTree objTree)
	{
		super(objTree);
	}
	/**
	 * Object of LanguageOfContentItemAndDescendants_TID1204
	 */

	private LanguageOfContentItemAndDescendants_TID1204 objLanguageOfContentItemAndDescendants_TID1204;
	/**
	 * Retrieves DeviceUsed 
	 * @return objDeviceUsedTID3107 Object of RelatedImplantationReports_TID7001 
	 */
	public RelatedImplantationReports_TID7001 getRelatedImplantationReports() 
	{
		if(null == this.objDeviceUsedTID3107)
			this.objDeviceUsedTID3107 = new RelatedImplantationReports_TID7001(getSRTree());
		return this.objDeviceUsedTID3107;
	}
	/**
	 * Retrieves IVUSMeasurements
	 * @return objLanguageOfContentItemAndDescendants_TID1204 Object of LanguageOfContentItemAndDescendants_TID1204 
	 */
	public LanguageOfContentItemAndDescendants_TID1204 getLanguageOfContentItemandDescendants() 
	{
		if(null == this.objLanguageOfContentItemAndDescendants_TID1204)
			this.objLanguageOfContentItemAndDescendants_TID1204 = new LanguageOfContentItemAndDescendants_TID1204(getSRTree());
		return objLanguageOfContentItemAndDescendants_TID1204;
	}
	/**
	 * Retrieves IVUSMeasurements
	 * @return objObservationContext_TID1001 Object of ObservationContext_TID1001 
	 */
	public ObservationContext_TID1001 getObservationContext() 
	{
		if(null == this.objObservationContext_TID1001)
			this.objObservationContext_TID1001 = new ObservationContext_TID1001(getSRTree());
		return objObservationContext_TID1001;
	}
	/**
	 * Retrieves IVUSMeasurements
	 * @return objPreviousReports_TID351 Object of PreviousReports_TID351 
	 */
	public PreviousReports_TID351 getPreviousReports() 
	{
		if(null == this.objPreviousReports_TID351)
			this.objPreviousReports_TID351 = new PreviousReports_TID351(getSRTree());
		return objPreviousReports_TID351;
	}
	/**
	 * Sets the Implantation Plan.
	 * @param enumContinuityOfContent object of EnumContinuityOfContent
	 */	
	public void setImplantationPlan(EnumContinuityOfContent enumContinuityOfContent)
	{
		
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.IMPLANTATION_PLAN.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.IMPLANTATION_PLAN_112345.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		SRDocumentContentModule objDocumentContentModule = getSRTree().getSRDocumentContentModule();
		getSRTree().createRoot(objDocumentContentModule,strCodeMeaning,strCodeValue , strCSD, enumContinuityOfContent);
	}
	/**
	 * Sets the value for Implant Component List
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 */
	public void setImplantComponentList(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.IMPLANT_COMPONENT_LIST.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.IMPLANT_COMPONENT_LIST_112360.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type Container 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 selected Implant Component 
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 */
	public void setSelectedImplantComponent(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.SELECTED_IMPLANT_COMPONENT.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.SELECTED_IMPLANT_COMPONENT_112346.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type Container 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 Component ID
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strComponentID String value for Comment.
	 */
	public void setComponentID(int[] arrPosition, String strComponentID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.COMPONENT_ID.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.COMPONENT_ID_112347.getValue();
		String strCSDesg = 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, strCSDesg, strComponentID);
		getSRTree().addChild(objContentSequenceItem);
	}	
	public void setComponentType(int[] arrPosition,EnumCM_HumanHipImplantPlanningLandmarks enumHumanHipImplantPlanningLandmarks)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.COMPONENT_TYPE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.COMPONENT_TYPE_112370.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.SRT.getValue();
		String strCM,strCV,strCSD;

		if(null== this.objHumanHipImplantPlanningLandmarks_CID7306)
			this.objHumanHipImplantPlanningLandmarks_CID7306 = new HumanHipImplantPlanningLandmarks_CID7306();
		this.objHumanHipImplantPlanningLandmarks_CID7306.setHumanHipImplantPlanningLandmarks(enumHumanHipImplantPlanningLandmarks);
		 strCM = objHumanHipImplantPlanningLandmarks_CID7306.getCodeMeaning();
		 strCV = objHumanHipImplantPlanningLandmarks_CID7306.getCodeValue();
		 strCSD = objHumanHipImplantPlanningLandmarks_CID7306.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 Mating Feature Set ID
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strComponentID String value for Comment.
	 */
	public void setMatingFeatureSetID(int[] arrPosition, String strComponentID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.MATING_FEATURE_SET_ID.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.MATING_FEATURE_SET_ID_112351.getValue();
		String strCSDesg = 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, strCSDesg, strComponentID);
		getSRTree().addChild(objContentSequenceItem);
	}	
	
	/**
	 * Sets the value for Connected Implantation PlanComponent
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 */
	public void setConnectedImplantationPlanComponent(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.CONNECTED_IMPLANTATION_PLAN_COMPONENT.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.CONNECTED_IMPLANTATION_PLAN_COMPONENT_112374.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type Container 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 Component Connection
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 */
	public void setComponentConnection(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.COMPONENT_CONNECTION.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.COMPONENT_CONNECTION_112350.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type Container 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 Assembly
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 */
	public void setAssembly(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.ASSEMBLY.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.ASSEMBLY_112355.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type Container 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 Degrees of Freedom Specification
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 */
	public void setDegreesOfFreedomSpecification(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.DEGREES_OF_FREEDOM_SPECIFICATION.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.DEGREES_OF_FREEDOM_SPECIFICATION_112362.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type Container 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 Degree of Freedom ID
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strComponentID String value for Comment.
	 */
	public void setDegreeOfFreedomID(int[] arrPosition, String strComponentID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.DEGREE_OF_FREEDOM_ID.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.DEGREE_OF_FREEDOM_ID_112363.getValue();
		String strCSDesg = 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, strCSDesg, strComponentID);
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets the value for Degree of Freedom Exact Translational Value
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setDegreeOfFreedomExactTranslationalValue(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.MM.getValue();
		String strCVForUnit = EnumCV_Unit.MM.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.DEGREE_OF_FREEDOM_EXACT_TRANSLATIONAL_VALUE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.DEGREE_OF_FREEDOM_EXACT_TRANSLATIONAL_VALUE_112376.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 Degree of Freedom Minimum Translational Value
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setDegreeOfFreedomMinimumTranslationalValue(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.MM.getValue();
		String strCVForUnit = EnumCV_Unit.MM.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.DEGREE_OF_FREEDOM_MINIMUM_TRANSLATIONAL_VALUE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.DEGREE_OF_FREEDOM_MINIMUM_TRANSLATIONAL_VALUE_112377.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 Degree of Freedom Maximum Translational Value
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setDegreeOfFreedomMaximumTranslationalValue(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.MM.getValue();
		String strCVForUnit = EnumCV_Unit.MM.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.DEGREE_OF_FREEDOM_MAXIMUM_TRANSLATIONAL_VALUE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.DEGREE_OF_FREEDOM_MAXIMUM_TRANSLATIONAL_VALUE_112378.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 Degree of Freedom Exact Rotational Value
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setDegreeOfFreedomExactRotationalValue(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.DEGREE.getValue();
		String strCVForUnit = EnumCV_Unit.DEGREE.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.DEGREE_OF_FREEDOM_EXACT_ROTATIONAL_VALUE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.DEGREE_OF_FREEDOM_EXACT_ROTATIONAL_VALUE_112379.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 Degree of Freedom Minimum Rotational Value
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setDegreeOfFreedomMinimumRotationalValue(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.DEGREE.getValue();
		String strCVForUnit = EnumCV_Unit.DEGREE.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.DEGREE_OF_FREEDOM_MINIMUM_ROTATIONAL_VALUE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.DEGREE_OF_FREEDOM_MINIMUM_ROTATIONAL_VALUE_112380.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 Degree of Freedom Maximum Translational Value
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setDegreeOfFreedomMaximumRotationalValue(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.DEGREE.getValue();
		String strCVForUnit = EnumCV_Unit.DEGREE.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.DEGREE_OF_FREEDOM_MAXIMUM_ROTATIONAL_VALUE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.DEGREE_OF_FREEDOM_MAXIMUM_ROTATIONAL_VALUE_112381.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition,strCodeMeaning,strCodeValue,strCSD,arrNumericValue,strCVForUnit,strCSDForUnit,"",strCMForUnit,"","","","");
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value forInformation used for planning
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 */
	public void setInformationUsedForPlanning(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.INFORMATION_USED_FOR_PLANNING.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.INFORMATION_USED_FOR_PLANNING_112358.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type Container and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createContainer(arrPosition, strCodeMeaning, strCodeValue, strCSD, enumContinuityOfContent);
		getSRTree().addChild(objContentSequenceItem);
	}	
	public void setPlanningMethod(int[] arrPosition,EnumCM_PlanningMethods enumPlanningMethods)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.COMPONENT_TYPE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.COMPONENT_TYPE_112370.getValue();
		String strCSDesg = EnumCodingSchemeDesignator.SRT.getValue();
		String strCM,strCV,strCSD;

		if(null== this.objPlanningMethods_CID7320)
			this.objPlanningMethods_CID7320 = new PlanningMethods_CID7320();
		this.objPlanningMethods_CID7320.setPlanningMethods(enumPlanningMethods);
		 strCM = objPlanningMethods_CID7320.getCodeMeaning();
		 strCV = objPlanningMethods_CID7320.getCodeValue();
		 strCSD = objPlanningMethods_CID7320.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 Horizontal Pixel Spacing
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setHorizontalPixelSpacing(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.MM_PER_PIXEl.getValue();
		String strCVForUnit = EnumCV_Unit.MM_PER_PIXEl.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.HORIZONTAL_PIXEL_SPACING.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.HORIZONTAL_PIXEL_SPACING_111026.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 Vertical Pixel Spacing
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param arrNumericValue String array for Numeric Value.
	 */
	public void setVerticalPixelSpacing(int[] arrPosition,String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCMForUnit = EnumCM_Unit.MM_PER_PIXEl.getValue();
		String strCVForUnit = EnumCV_Unit.MM_PER_PIXEl.getValue();
		String strCSDForUnit = EnumCodingSchemeDesignator.UCUM.getValue();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.VERTICAL_PIXEL_SPACING.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.VERTICAL_PIXEL_SPACING_111066.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 Planning Information for IntraoperativeUsage
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 */
	public void setPlanningInformationForIntraoperativeUsage(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.PLANNING_INFORMATION_FOR_INTRAOPERATIVE_USAGE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.PLANNING_INFORMATION_FOR_INTRAOPERATIVE_USAGE_112367.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type Container 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 "PhysicianNote
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strComponentID String value for Comment.
	 */
	public void setPhysicianNote(int[] arrPosition, String strComponentID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.PHYSICIAN_NOTE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.PHYSICIAN_NOTE_121173.getValue();
		String strCSDesg = 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, strCSDesg, strComponentID);
		getSRTree().addChild(objContentSequenceItem);
	}	
	
	/**
	 * Sets the value for Fiducial Intent
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strComponentID String value for Comment.
	 */
	public void setFiducialIntent(int[] arrPosition, String strComponentID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.FIDUCIAL_INTENT.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.FIDUCIAL_INTENT_112369.getValue();
		String strCSDesg = 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, strCSDesg, strComponentID);
		getSRTree().addChild(objContentSequenceItem);
	}	
	
	/**
	 * Sets the value for DerivedFiducial
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strPerformedProcedureStepSOPInstanceUID String value for PerformedProcedureStepSOPInstanceUID.
	 */
	public void setDerivedFiducial(int[] arrPosition, String strPerformedProcedureStepSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.DERIVED_FIDUCIAL.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.DERIVED_FIDUCIAL_112357.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().createUIDREFNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strPerformedProcedureStepSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets the value for Frame of Reference UID
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strPerformedProcedureStepSOPInstanceUID String value for PerformedProcedureStepSOPInstanceUID.
	 */
	public void setFrameOfReferenceUID(int[] arrPosition, String strPerformedProcedureStepSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.FRAME_OF_REFERENCE_UID.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.FRAME_OF_REFERENCE_UID_112227.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().createUIDREFNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strPerformedProcedureStepSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets the value for User Selected Fiducial
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strPerformedProcedureStepSOPInstanceUID String value for PerformedProcedureStepSOPInstanceUID.
	 */
	public void setUserSelectedFiducial(int[] arrPosition, String strPerformedProcedureStepSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.USER_SELECTED_FIDUCIAL.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.USER_SELECTED_FIDUCIAL_112356.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().createUIDREFNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strPerformedProcedureStepSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets value for PatientImage
	 * @param arrPosition dentifier which shows the position of the node in the SR Tree.
	 *@param strRefSOPClassUIDForCORefMacro Reference SOP Class UID for Composite Object Reference Macro.
	 * @param strRefSOPInstanceUIDForCORefMacro Reference SOP Instance UID for Composite Object Reference Macro.
	 * @param arrStrReferencedFrameNumber String Array of Referenced Frame Number.
	 * @param strRefSOPClassUID Referenced SOP Class UID.
	 * @param strRefSOPInstanceUID Referenced SOP Instance UID.
	 */
	public void setPatientImage(int[] arrPosition, String strRefSOPClassUIDForCORefMacro, String strRefSOPInstanceUIDForCORefMacro, String[] arrStrReferencedFrameNumber, String strRefSOPClassUID, String strRefSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.PATIENT_IMAGE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.PATIENT_IMAGE_112354.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type IMAGE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createImageNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strRefSOPClassUIDForCORefMacro, strRefSOPInstanceUIDForCORefMacro, arrStrReferencedFrameNumber, strRefSOPClassUID, strRefSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets "RelatedPatient Data Not Used DuringPlanning
	 * @param arrPosition position at which the node will get added in the tree.
	 * @param enumPurposeOfReferenceToObject Enum value for Purpose Of Reference To Object
	 * @param strReferencedSOPClassUID Referenced SOP Class UID
	 * @param strReferencedSOPInstanceUID Referenced SOP Instance UID
	 */
	public void setRelatedPatientDataNotUsedDuringPlanning(int[] arrPosition, EnumCM_PurposeOfReferenceToObject enumPurposeOfReferenceToObject, String strReferencedSOPClassUID, String strReferencedSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.RELATED_PATIENT_DATA_NOT_USED_DURING_PLANNING.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.RELATED_PATIENT_DATA_NOT_USED_DURING_PLANNING_112364.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type COMPOSITE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCompositeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strReferencedSOPClassUID, strReferencedSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets Derived Planning Data
	 * @param arrPosition position at which the node will get added in the tree.
	 * @param enumPurposeOfReferenceToObject Enum value for Purpose Of Reference To Object
	 * @param strReferencedSOPClassUID Referenced SOP Class UID
	 * @param strReferencedSOPInstanceUID Referenced SOP Instance UID
	 */
	public void setDerivedPlanningData(int[] arrPosition, EnumCM_PurposeOfReferenceToObject enumPurposeOfReferenceToObject, String strReferencedSOPClassUID, String strReferencedSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.DERIVED_PLANNING_DATA.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.DERIVED_PLANNING_DATA_112373.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type COMPOSITE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCompositeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strReferencedSOPClassUID, strReferencedSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets Supporting Information
	 * @param arrPosition position at which the node will get added in the tree.
	 * @param enumPurposeOfReferenceToObject Enum value for Purpose Of Reference To Object
	 * @param strReferencedSOPClassUID Referenced SOP Class UID
	 * @param strReferencedSOPInstanceUID Referenced SOP Instance UID
	 */
	public void setSupportingInformation(int[] arrPosition, EnumCM_PurposeOfReferenceToObject enumPurposeOfReferenceToObject, String strReferencedSOPClassUID, String strReferencedSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.SUPPORTING_INFORMATION.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.SUPPORTING_INFORMATION_122359.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type COMPOSITE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCompositeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strReferencedSOPClassUID, strReferencedSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets DerivedPlanning Images
	 * @param arrPosition position at which the node will get added in the tree.
	 * @param enumPurposeOfReferenceToObject Enum value for Purpose Of Reference To Object
	 * @param strReferencedSOPClassUID Referenced SOP Class UID
	 * @param strReferencedSOPInstanceUID Referenced SOP Instance UID
	 */
	public void setDerivedPlanningImages(int[] arrPosition, EnumCM_PurposeOfReferenceToObject enumPurposeOfReferenceToObject, String strReferencedSOPClassUID, String strReferencedSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.DERIVED_PLANNING_IMAGES.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.DERIVED_PLANNING_IMAGES_112372.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type COMPOSITE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCompositeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strReferencedSOPClassUID, strReferencedSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets Spatial Registration
	 * @param arrPosition position at which the node will get added in the tree.
	 * @param enumPurposeOfReferenceToObject Enum value for Purpose Of Reference To Object
	 * @param strReferencedSOPClassUID Referenced SOP Class UID
	 * @param strReferencedSOPInstanceUID Referenced SOP Instance UID
	 */
	public void setSpatialRegistration(int[] arrPosition, EnumCM_PurposeOfReferenceToObject enumPurposeOfReferenceToObject, String strReferencedSOPClassUID, String strReferencedSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.SPATIAL_REGISTRATION.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.SPATIAL_REGISTRATION_112353.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type COMPOSITE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCompositeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strReferencedSOPClassUID, strReferencedSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets PatientData Used During Planning
	 * @param arrPosition position at which the node will get added in the tree.
	 * @param enumPurposeOfReferenceToObject Enum value for Purpose Of Reference To Object
	 * @param strReferencedSOPClassUID Referenced SOP Class UID
	 * @param strReferencedSOPInstanceUID Referenced SOP Instance UID
	 */
	public void setPatientDataUsedDuringPlanning(int[] arrPosition, EnumCM_PurposeOfReferenceToObject enumPurposeOfReferenceToObject, String strReferencedSOPClassUID, String strReferencedSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.PATIENT_DATA_USED_DURING_PLANNING.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.PATIENT_DATA_USED_DURING_PLANNING_112361.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type COMPOSITE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCompositeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strReferencedSOPClassUID, strReferencedSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets Implant Assembly Template
	 * @param arrPosition position at which the node will get added in the tree.
	 * @param enumPurposeOfReferenceToObject Enum value for Purpose Of Reference To Object
	 * @param strReferencedSOPClassUID Referenced SOP Class UID
	 * @param strReferencedSOPInstanceUID Referenced SOP Instance UID
	 */
	public void setImplantAssemblyTemplate(int[] arrPosition, EnumCM_PurposeOfReferenceToObject enumPurposeOfReferenceToObject, String strReferencedSOPClassUID, String strReferencedSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.IMPLANT_ASSEMBLY_TEMPLATE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.IMPLANT_ASSEMBLY_TEMPLATE_112366.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type COMPOSITE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCompositeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strReferencedSOPClassUID, strReferencedSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets Manufacturer ImplantTemplate
	 * @param arrPosition position at which the node will get added in the tree.
	 * @param enumPurposeOfReferenceToObject Enum value for Purpose Of Reference To Object
	 * @param strReferencedSOPClassUID Referenced SOP Class UID
	 * @param strReferencedSOPInstanceUID Referenced SOP Instance UID
	 */
	public void setManufacturerImplantTemplate(int[] arrPosition, EnumCM_PurposeOfReferenceToObject enumPurposeOfReferenceToObject, String strReferencedSOPClassUID, String strReferencedSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_ImplantationPlan.MANUFACTURER_IMPLANT_TEMPLATE.getValue();
		String strCodeValue = EnumCV_ImplantationPlan.MANUFACTURER_IMPLANT_TEMPLATE_112371.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

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