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


import java.util.Locale;

import cdac.medinfo.sdk.dcm30_04.templates.enums.EnumCodingSchemeDesignator;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_AbstractMultiDimensionalImageModelComponentSemantics;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ModelIndependentDynamicContrastAnalysisParameters;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_PerfusionModelParameters;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_TracerKineticModelParameters;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_MRProtonSpectroscopyMetabolites;
//import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_RespiratoryStatus;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_AbstractMultiDimensionalImageModelComponentSemantics;
import cdac.medinfo.sdk.dcm30_04.templates.dicomsnomedmap.EnumDICOMSNOMEDMap;
import cdac.medinfo.sdk.dcm30_04.utils.DicomConfig;
import cdac.medinfo.sdk.dcm30_04.utils.DicomLogger;
import cdac.medinfo.sdk.dcm30_04.utils.ResourceBundleWrapper;


/**
 * This class represents AbstractMultiDimensionalImageModelComponentSemantics CID7180
 */
public class AbstractMultiDimensionalImageModelComponentSemantics_CID7180 {

	/**
	 * The Code Value for template.
	 */
	private String strCodeValue = null;

	/**
	 * The Code Meaning for template.
	 */
	private String strCodeMeaning = null;

	/**
	 * The Coding Scheme Designator for template.
	 */
	private String strCodingSchemeDesignator;

	/**
	 * The SNOMED CT ID for template.
	 */
	private String strSNOMEDCTID = null;
	/**
	 * Object of MRProtonSpectroscopyMetabolites_CID4033
	 */
	private MRProtonSpectroscopyMetabolites_CID4033 objMRProtonSpectroscopyMetabolitesCID4033;
	/**
	 * Object of TracerKineticModelParameters_CID4107
	 */
	private TracerKineticModelParameters_CID4107 objTracerKineticModelParametersCID4107;
	/**
	 * Object of CathComplications_CID3755
	 */
	private PerfusionModelParameters_CID4108 objPerfusionModelParametersCID4108;
	/**
	 * Object of ModelIndependentDynamicContrastAnalysisParameters_CID4109
	 */
	private ModelIndependentDynamicContrastAnalysisParameters_CID4109 objModelIndependentDynamicContrastAnalysisParametersCID4109;
	/** 
	 * Instantiates a new AbstractMultiDimensionalImageModelComponentSemantics_CID7180 Template 
	 */ 
	public AbstractMultiDimensionalImageModelComponentSemantics_CID7180()
	{

	}

	/**
	 * Retrieves the value for Code Meaning.
	 * @return String value for Code Meaning.
	 */
	public String getCodeMeaning()
	{
		return strCodeMeaning;
	}

	/**
	 * Retrieves the value for Code Value.
	 * @return String value for Code Value.
	 */
	public String getCodeValue() 
	{
		return strCodeValue;
	}

	/**
	 * Retrieves the value for Coding Scheme Designator.
	 * @return String value for Coding Scheme Designator.
	 */
	public String getCodingSchemeDesignator() 
	{
		return strCodingSchemeDesignator;
	}
	
	/**
	 * Retrieves the value for SNOMED-CT ID.
	 * @return String value for SNOMED-CT ID.
	 */
	public String getSNOMEDCTID() 
	{
		return strSNOMEDCTID;
	}
	/**
	 * Sets the Code Value according to Code Meaning.
	 * @param enumAbstractMultiDimensionalImageModelComponentSemantics Object of EnumCM_AbstractMultiDimensionalImageModelComponentSemantics represents Code Meaning.
	 */
	private void setCodeValue(EnumCM_AbstractMultiDimensionalImageModelComponentSemantics enumAbstractMultiDimensionalImageModelComponentSemantics)
	{
		switch(enumAbstractMultiDimensionalImageModelComponentSemantics) //CV
		{
		case T1: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.T1_113063.getValue(); break;
		case T2: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.T2_113065.getValue(); break;
		case T2_STAR: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.T2_113064.getValue(); break;
		case PROTON_DENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.PROTON_DENSITY_113058.getValue(); break;
		case SPIN_TAGGING_PERFUSION_MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.SPIN_TAGGING_PERFUSION_MR_SIGNAL_INTENSITY_110800.getValue(); break;
		case VELOCITY_ENCODED: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.VELOCITY_ENCODED_113070.getValue(); break;
		case TEMPERATURE_ENCODED: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.TEMPERATURE_ENCODED_113067.getValue(); break;
		case CONTRAST_AGENT_ANGIO_MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.CONTRAST_AGENT_ANGIO_MR_SIGNAL_INTENSITY_110801.getValue(); break;
		case TIME_OF_FLIGHT_ANGIO_MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.TIME_OF_FLIGHT_ANGIO_MR_SIGNAL_INTENSITY_110802.getValue(); break;
		case PROTON_DENSITY_WEIGHTED_MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.PROTON_DENSITY_WEIGHTED_MR_SIGNAL_INTENSITY_110803.getValue(); break;
		case T1_WEIGHTED_MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.T1_WEIGHTED_MR_SIGNAL_INTENSITY_110804.getValue(); break;
		case T2_WEIGHTED_MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.T2_WEIGHTED_MR_SIGNAL_INTENSITY_110805.getValue(); break;
		case T2_STAR_WEIGHTED_MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.T2_STAR_WEIGHTED_MR_SIGNAL_INTENSITY_110806.getValue(); break;
		case DIFFUSION_WEIGHTED: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.DIFFUSION_WEIGHTED_113043.getValue(); break;
		case FIELD_MAP_MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.FIELD_MAP_MR_SIGNAL_INTENSITY_110807.getValue(); break;
		case FRACTIONAL_ANISOTROPY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.FRACTIONAL_ANISOTROPY_110808.getValue(); break;
		case RELATIVE_ANISOTROPY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.RELATIVE_ANISOTROPY_110809.getValue(); break;
		case APPARENT_DIFFUSION_COEFFICIENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.APPARENT_DIFFUSION_COEFFICIENT_113041.getValue(); break;
		case VOLUMETRIC_DIFFUSION_DXX_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.VOLUMETRIC_DIFFUSION_DXX_COMPONENT_110810.getValue(); break;
		case VOLUMETRIC_DIFFUSION_DXY_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.VOLUMETRIC_DIFFUSION_DXY_COMPONENT_110811.getValue(); break;
		case VOLUMETRIC_DIFFUSION_DXZ_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.VOLUMETRIC_DIFFUSION_DXZ_COMPONENT_110812.getValue(); break;
		case VOLUMETRIC_DIFFUSION_DYY_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.VOLUMETRIC_DIFFUSION_DYY_COMPONENT_110813.getValue(); break;
		case VOLUMETRIC_DIFFUSION_DYZ_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.VOLUMETRIC_DIFFUSION_DYZ_COMPONENT_110814.getValue(); break;
		case VOLUMETRIC_DIFFUSION_DZZ_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.VOLUMETRIC_DIFFUSION_DZZ_COMPONENT_110815.getValue(); break;
		case T1_WEIGHTED_DYNAMIC_CONTRAST_ENHANCED_MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.T1_WEIGHTED_DYNAMIC_CONTRAST_ENHANCED_MR_SIGNAL_INTENSITY_110816.getValue(); break;
		case T2_WEIGHTED_DYNAMIC_CONTRAST_ENHANCED_MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.T2_WEIGHTED_DYNAMIC_CONTRAST_ENHANCED_MR_SIGNAL_INTENSITY_110817.getValue(); break;
		case T2_STAR_WEIGHTED_DYNAMIC_CONTRAST_ENHANCED_MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.T2_STAR_WEIGHTED_DYNAMIC_CONTRAST_ENHANCED_MR_SIGNAL_INTENSITY_110818.getValue(); break;
		case BLOOD_OXYGENATION_LEVEL: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.BLOOD_OXYGENATION_LEVEL_110819.getValue(); break;
		case NUCLEAR_MEDICINE_PROJECTION_ACTIVITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.NUCLEAR_MEDICINE_PROJECTION_ACTIVITY_110820.getValue(); break;
		case NUCLEAR_MEDICINE_TOMOGRAPHIC_ACTIVITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.NUCLEAR_MEDICINE_TOMOGRAPHIC_ACTIVITY_110821.getValue(); break;
		case SPATIAL_DISPLACEMENT_X_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.SPATIAL_DISPLACEMENT_X_COMPONENT_110822.getValue(); break;
		case SPATIAL_DISPLACEMENT_Y_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.SPATIAL_DISPLACEMENT_Y_COMPONENT_110823.getValue(); break;
		case SPATIAL_DISPLACEMENT_Z_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.SPATIAL_DISPLACEMENT_Z_COMPONENT_110824.getValue(); break;
		case HEMODYNAMIC_RESISTANCE: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.HEMODYNAMIC_RESISTANCE_110825.getValue(); break;
		case INDEXED_HEMODYNAMIC_RESISTANCE: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.INDEXED_HEMODYNAMIC_RESISTANCE_110826.getValue(); break;
		case TISSUE_VELOCITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.TISSUE_VELOCITY_110827.getValue(); break;
		case FLOW_VELOCITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.FLOW_VELOCITY_110828.getValue(); break;
		case POWER_DOPPLER: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.POWER_DOPPLER_P0_02241.getValue(); break;
		case FLOW_VARIANCE: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.FLOW_VARIANCE_110829.getValue(); break;
		case ELASTICITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.ELASTICITY_110830.getValue(); break;
		case PERFUSION: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.PERFUSION_110831.getValue(); break;
		case SPEED_OF_SOUND: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.SPEED_OF_SOUND_110832.getValue(); break;
		case ULTRASOUND_ATTENUATION: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.ULTRASOUND_ATTENUATION_110833.getValue(); break;
		case STUDENTS_T_TEST: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.STUDENTS_T_TEST_113068.getValue(); break;
		case Z_SCORE: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.Z_SCORE_113071.getValue(); break;
		case R_COEFFICIENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.R_COEFFICIENT_113057.getValue(); break;
		case R2_COEFFICIENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.R2_COEFFICIENT_126220.getValue(); break;
		case RGB_R_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.RGB_R_COMPONENT_110834.getValue(); break;
		case RGB_G_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.RGB_G_COMPONENT_110835.getValue(); break;
		case RGB_B_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.RGB_B_COMPONENT_110836.getValue(); break;
		case YBR_FULL_Y_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_FULL_Y_COMPONENT_110837.getValue(); break;
		case YBR_FULL_CB_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_FULL_CB_COMPONENT_110838.getValue(); break;
		case YBR_FULL_CR_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_FULL_CR_COMPONENT_110839.getValue(); break;
		case YBR_PARTIAL_Y_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_PARTIAL_Y_COMPONENT_110840.getValue(); break;
		case YBR_PARTIAL_CB_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_PARTIAL_CB_COMPONENT_110841.getValue(); break;
		case YBR_PARTIAL_CR_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_PARTIAL_CR_COMPONENT_110842.getValue(); break;
		case YBR_ICT_Y_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_ICT_Y_COMPONENT_110843.getValue(); break;
		case YBR_ICT_CB_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_ICT_CB_COMPONENT_110844.getValue(); break;
		case YBR_ICT_CR_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_ICT_CR_COMPONENT_110845.getValue(); break;
		case YBR_RCT_Y_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_RCT_Y_COMPONENT_110846.getValue(); break;
		case YBR_RCT_CB_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_RCT_CB_COMPONENT_110847.getValue(); break;
		case YBR_RCT_CR_COMPONENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.YBR_RCT_CR_COMPONENT_110848.getValue(); break;
		case ECHOGENICITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.ECHOGENICITY_110849.getValue(); break;
		case X_RAY_ATTENUATION: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.X_RAY_ATTENUATION_110850.getValue(); break;
		case ATTENUATION_COEFFICIENT: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.ATTENUATION_COEFFICIENT_112031.getValue(); break;
		case MR_SIGNAL_INTENSITY: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.MR_SIGNAL_INTENSITY_110852.getValue(); break;
		case BINARY_SEGMENTATION: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.BINARY_SEGMENTATION_110853.getValue(); break;
		case FRACTIONAL_PROBABILISTIC_SEGMENTATION: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.FRACTIONAL_PROBABILISTIC_SEGMENTATION_110854.getValue(); break;
		case FRACTIONAL_OCCUPANCY_SEGMENTATION: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.FRACTIONAL_OCCUPANCY_SEGMENTATION_110855.getValue(); break;
		case R1: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.R1_126393.getValue(); break;
		case R2: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.R2_126394.getValue(); break;
		case STANDARDIZED_UPTAKE_VALUE: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.STANDARDIZED_UPTAKE_VALUE_126400.getValue(); break;
		case SUVBW: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.SUVBW_126401.getValue(); break;
		case SUVLBM: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.SUVLBM_126402.getValue(); break;
		case SUVBSA: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.SUVBSA_126403.getValue(); break;
		case SUVIBW: this.strCodeValue =EnumCV_AbstractMultiDimensionalImageModelComponentSemantics.SUVIBW_126404.getValue(); break;
		}
	}

	/**
	 * Sets the SNOMED-CT ID.
	 * @param enumAbstractMultiDimensionalImageModelComponentSemantics Object of EnumCM_AbstractMultiDimensionalImageModelComponentSemantics represents Code Meaning.
	 */
	private void setSNOMEDCTID(EnumCM_AbstractMultiDimensionalImageModelComponentSemantics enumAbstractMultiDimensionalImageModelComponentSemantics)
	{
		switch(enumAbstractMultiDimensionalImageModelComponentSemantics)
		{
		case POWER_DOPPLER : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.POWER_DOPPLER.getSNOMEDCTID(); break;
		}
	}

	/**
	 * Sets the value for AbstractMultiDimensionalImageModelComponentSemantics
	 * @param enumAbstractMultiDimensionalImageModelComponentSemantics Object of EnumCM_AbstractMultiDimensionalImageModelComponentSemantics.
	 */
	public void setAbstractMultiDimensionalImageModelComponentSemantics(Enum enumValue)
	{
		if (enumValue instanceof EnumCM_AbstractMultiDimensionalImageModelComponentSemantics) 
		{
			/**
			 * Casting EnumValue to required Enum.
			 */
			EnumCM_AbstractMultiDimensionalImageModelComponentSemantics enumAbstractMultiDimensionalImageModelComponentSemantics = (EnumCM_AbstractMultiDimensionalImageModelComponentSemantics)enumValue;
			
			/**
			 * Retrieves the value for CodingSchemeDesignator, CodingSchemeVersion and Code Meaning and 
			 * sets the Code Value according to Code Meaning.
			 */
			this.strCodeMeaning = enumAbstractMultiDimensionalImageModelComponentSemantics.getValue();
			if(strCodeMeaning.equalsIgnoreCase(EnumCM_AbstractMultiDimensionalImageModelComponentSemantics.POWER_DOPPLER.getValue()))
				this.strCodingSchemeDesignator = EnumCodingSchemeDesignator.SRT.getValue();
			else
				this.strCodingSchemeDesignator = EnumCodingSchemeDesignator.DCM.getValue();
			/**
			 * set code Value
			 */
			setCodeValue(enumAbstractMultiDimensionalImageModelComponentSemantics);

			/**
			 * set SNOMED-CT ID
			 */
			setSNOMEDCTID(enumAbstractMultiDimensionalImageModelComponentSemantics);
		}
		else if(enumValue instanceof EnumCM_MRProtonSpectroscopyMetabolites)
		{
			/**
			 * Casting EnumValue to required Enum.
			 */
			EnumCM_MRProtonSpectroscopyMetabolites new_enumMRProtonSpectroscopyMetabolites = (EnumCM_MRProtonSpectroscopyMetabolites) enumValue;
			
			/**
			 * Creating object of require CID with respect to enum and setting value accordingly.
			 */
			if(null== this.objMRProtonSpectroscopyMetabolitesCID4033)
	this.objMRProtonSpectroscopyMetabolitesCID4033 = new MRProtonSpectroscopyMetabolites_CID4033();
			this.objMRProtonSpectroscopyMetabolitesCID4033.setMRProtonSpectroscopyMetabolites(new_enumMRProtonSpectroscopyMetabolites);
			
			/**
			 * Retrieving attributes and setting it to member variables. 
			 */
			this.strCodeMeaning = objMRProtonSpectroscopyMetabolitesCID4033.getCodeMeaning();
			this.strCodeValue = objMRProtonSpectroscopyMetabolitesCID4033.getCodeValue();
			this.strCodingSchemeDesignator = objMRProtonSpectroscopyMetabolitesCID4033.getCodingSchemeDesignator();
		}
		else if(enumValue instanceof EnumCM_TracerKineticModelParameters)
		{
			/**
			 * Casting EnumValue to required Enum.
			 */
			EnumCM_TracerKineticModelParameters new_enumTracerKineticModelParameters = (EnumCM_TracerKineticModelParameters) enumValue;
			
			/**
			 * Creating object of require CID with respect to enum and setting value accordingly.
			 */
			if(null== this.objTracerKineticModelParametersCID4107)
	this.objTracerKineticModelParametersCID4107 = new TracerKineticModelParameters_CID4107();
			this.objTracerKineticModelParametersCID4107.setTracerKineticModelParameters(new_enumTracerKineticModelParameters);
			
			/**
			 * Retrieving attributes and setting it to member variables. 
			 */
			this.strCodeMeaning = objTracerKineticModelParametersCID4107.getCodeMeaning();
			this.strCodeValue = objTracerKineticModelParametersCID4107.getCodeValue();
			this.strCodingSchemeDesignator = objTracerKineticModelParametersCID4107.getCodingSchemeDesignator();
		
		}
		else if(enumValue instanceof EnumCM_PerfusionModelParameters)
		{
			/**
			 * Casting EnumValue to required Enum.
			 */
			EnumCM_PerfusionModelParameters new_enumPerfusionModelParameters = (EnumCM_PerfusionModelParameters) enumValue;
			
			/**
			 * Creating object of require CID with respect to enum and setting value accordingly.
			 */
			if(null== this.objPerfusionModelParametersCID4108)
	this.objPerfusionModelParametersCID4108 = new PerfusionModelParameters_CID4108();
			this.objPerfusionModelParametersCID4108.setPerfusionModelParameters(new_enumPerfusionModelParameters);
			
			/**
			 * Retrieving attributes and setting it to member variables. 
			 */
			this.strCodeMeaning = objPerfusionModelParametersCID4108.getCodeMeaning();
			this.strCodeValue = objPerfusionModelParametersCID4108.getCodeValue();
			this.strCodingSchemeDesignator = objPerfusionModelParametersCID4108.getCodingSchemeDesignator();
		}
		else if(enumValue instanceof EnumCM_ModelIndependentDynamicContrastAnalysisParameters)
		{
			/**
			 * Casting EnumValue to required Enum.
			 */
			EnumCM_ModelIndependentDynamicContrastAnalysisParameters new_enumModelIndependentDynamicContrastAnalysisParameters = (EnumCM_ModelIndependentDynamicContrastAnalysisParameters) enumValue;
			
			/**
			 * Creating object of require CID with respect to enum and setting value accordingly.
			 */
			if(null== this.objModelIndependentDynamicContrastAnalysisParametersCID4109)
	this.objModelIndependentDynamicContrastAnalysisParametersCID4109 = new ModelIndependentDynamicContrastAnalysisParameters_CID4109();
			this.objModelIndependentDynamicContrastAnalysisParametersCID4109.setModelIndependentDynamicContrastAnalysisParameters(new_enumModelIndependentDynamicContrastAnalysisParameters);
			
			/**
			 * Retrieving attributes and setting it to member variables. 
			 */
			this.strCodeMeaning = objModelIndependentDynamicContrastAnalysisParametersCID4109.getCodeMeaning();
			this.strCodeValue = objModelIndependentDynamicContrastAnalysisParametersCID4109.getCodeValue();
			this.strCodingSchemeDesignator = objModelIndependentDynamicContrastAnalysisParametersCID4109.getCodingSchemeDesignator();
		}
		else
		{
			if(DicomConfig.createInstance().isLoggingOn())
			{
				DicomLogger objDicomLogger = DicomLogger.getLogger();
				objDicomLogger.log(ResourceBundleWrapper.getValue("warning","InvalidEnumeratedValue",new Locale(DicomConfig.createInstance().getLocale())));
			}
		}
	}
}
