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

import cdac.medinfo.sdk.dcm30_04.baselibs.ContentSequenceItem;
import cdac.medinfo.sdk.dcm30_04.srtree.SRTree;
import cdac.medinfo.sdk.dcm30_04.templates.cid.MeasurementsDerivedFromMultipleROIMeasurements_CID7465;

/**
 * This class represents MeasurementsDerivedFromMultipleROIMeasurements - TID1420
 */
public class MeasurementsDerivedFromMultipleROIMeasurements_TID1420 extends Template {
	/**
	 * Object of MeasurementProperties_TID310
	 */
	private MeasurementProperties_TID310 objMeasurementProperties_TID310;
	/**
	 * Object of MeasurementProperties_TID310
	 */
	private MeasurementsDerivedFromMultipleROIMeasurements_CID7465 objMeasurementsDerivedFromMultipleROIMeasurements_CID7465;
	/**
	 * Object of VolumetricROIMeasurements_TID1411
	 */
	private VolumetricROIMeasurements_TID1411 objVolumetricROIMeasurements_TID1411;
	/**
	 * Object of PlanarROIMeasurements_TID1410
	 */
	private PlanarROIMeasurements_TID1410 objPlanarROIMeasurements_TID1410;
	/**
	 * Instantiates MeasurementsDerivedFromMultipleROIMeasurements_TID1420 Template.
	 * @param objTree Object of SRTree.
	 */
	public MeasurementsDerivedFromMultipleROIMeasurements_TID1420(SRTree objTree)
	{
		super(objTree);
	}
	/**
	 * Retrieves the object of VolumetricROIMeasurements_TID1411
	 * @return objMeasurementStatisticalProperties_TID311 object of VolumetricROIMeasurements_TID1411
	 */
	public VolumetricROIMeasurements_TID1411 getVolumetricROIMeasurements()
	{
		if(null == objVolumetricROIMeasurements_TID1411)
			objVolumetricROIMeasurements_TID1411 = new VolumetricROIMeasurements_TID1411(getSRTree());
		return objVolumetricROIMeasurements_TID1411;
	}
	/**
	 * Retrieves the object of MeasurementStatisticalProperties_TID311
	 * @return objMeasurementStatisticalProperties_TID311 object of MeasurementStatisticalProperties_TID311
	 */
	public MeasurementProperties_TID310 getMeasurementProperties()
	{
		if(null == objMeasurementProperties_TID310)
			objMeasurementProperties_TID310 = new MeasurementProperties_TID310(getSRTree());
		return objMeasurementProperties_TID310;
	}
	/**
	 * Retrieves the object of PlanarROIMeasurements_TID1410
	 * @return objPlanarROIMeasurements_TID1410 object of PlanarROIMeasurements_TID1410
	 */
	public PlanarROIMeasurements_TID1410 getPlanarROIMeasurements()
	{
		if(null == objPlanarROIMeasurements_TID1410)
			objPlanarROIMeasurements_TID1410 = new PlanarROIMeasurements_TID1410(getSRTree());
		return objPlanarROIMeasurements_TID1410;
	}
	/**
	 * Sets the value for MeasurementsDerived FromMultiple ROIMeasurements.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumNumericParametersOfDrugsContrast Enum Value for NumericParametersOfDrugsContrast
	 * @param arrNumericValue String array for Quatity Of Material
	 */
	public void setMeasurementsDerivedFromMultipleROIMeasurements(int[] arrPosition,Enum enumValue, String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		if(objMeasurementsDerivedFromMultipleROIMeasurements_CID7465 == null)
			this.objMeasurementsDerivedFromMultipleROIMeasurements_CID7465 = new MeasurementsDerivedFromMultipleROIMeasurements_CID7465();
		this.objMeasurementsDerivedFromMultipleROIMeasurements_CID7465.setMeasurementsDerivedFromMultipleROIMeasurements(enumValue);

		String strCodeMeaning = objMeasurementsDerivedFromMultipleROIMeasurements_CID7465.getCodeMeaning();
		String strCodeValue = objMeasurementsDerivedFromMultipleROIMeasurements_CID7465.getCodeValue();
		String strCSD = objMeasurementsDerivedFromMultipleROIMeasurements_CID7465.getCodingSchemeDesignator();

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