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


import cdac.medinfo.sdk.dcm30_04.templates.enums.EnumCodingSchemeDesignator;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_AnatomicRegion;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CTMRAndPETAnatomyImaged;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CardiovascularAnatomicLocations;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CommonAnatomicRegions;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_EndoscopyAnatomicRegions;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_AnatomicRegion;
import cdac.medinfo.sdk.dcm30_04.utils.DicomConfig;
import cdac.medinfo.sdk.dcm30_04.utils.DicomLogger;
import cdac.medinfo.sdk.dcm30_04.utils.ResourceBundleWrapper;

import java.util.Locale;

import cdac.medinfo.sdk.dcm30_04.templates.dicomsnomedmap.EnumAnatomicSNOMEDMap;

/**
 * This class represents AnatomicRegion CID4
 */
public class AnatomicRegion_CID4 {

	/**
	 * The Code Value for template.
	 */
	private String strCodeValue = null;
	/**
	 * Object of CTMRAndPETAnatomyImaged_CID4030
	 */
	private CTMRAndPETAnatomyImaged_CID4030 objCTMRAndPETAnatomyImagedCID4030;
	/**
	 * Object of EndoscopyAnatomicRegions_CID4040
	 */
	private EndoscopyAnatomicRegions_CID4040 objEndoscopyAnatomicRegionsCID4040;
	/**
	 * Object of CardiovascularAnatomicLocations_CID3010
	 */
	private CardiovascularAnatomicLocations_CID3010 objCardiovascularAnatomicLocationsCID3010;
	/**
	 * Object of CommonAnatomicRegions_CID4031
	 */
	private CommonAnatomicRegions_CID4031 objCommonAnatomicRegionsCID4031;
	
	/**
	 * 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;
	/**
	 * Instantiates a new AnatomicRegion_CID4 Template 
	 */
	public AnatomicRegion_CID4()
	{

	}

	/**
	 * 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 enumAnatomicRegion Object of EnumCM_AnatomicRegion represents Code Meaning.
	 */
	private void setCodeValue(EnumCM_AnatomicRegion enumAnatomicRegion)
	{
		switch(enumAnatomicRegion)
		{
		case ATRIUM: this.strCodeValue =EnumCV_AnatomicRegion.ATRIUM_T_32100.getValue(); break;
		case AXILLA: this.strCodeValue =EnumCV_AnatomicRegion.AXILLA_T_D8100.getValue(); break;
		case BACK: this.strCodeValue =EnumCV_AnatomicRegion.BACK_T_D2100.getValue(); break;
		case BROAD_LIGAMENT: this.strCodeValue =EnumCV_AnatomicRegion.BROAD_LIGAMENT_T_D6500.getValue(); break;
		case BUCCAL_REGION_OF_FACE: this.strCodeValue =EnumCV_AnatomicRegion.BUCCAL_REGION_OF_FACE_T_D1206.getValue(); break;
		case BUTTOCK: this.strCodeValue =EnumCV_AnatomicRegion.BUTTOCK_T_D2600.getValue(); break;
		case CALYX: this.strCodeValue =EnumCV_AnatomicRegion.CALYX_T_72100.getValue(); break;
		case CHEEK: this.strCodeValue =EnumCV_AnatomicRegion.CHEEK_T_D1206.getValue(); break;
		case CORNEA: this.strCodeValue =EnumCV_AnatomicRegion.CORNEA_T_AA200.getValue(); break;
		case EAR: this.strCodeValue =EnumCV_AnatomicRegion.EAR_T_AB000.getValue(); break;
		case ENDO_ARTERIAL: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_ARTERIAL_T_41000.getValue(); break;
		case ENDO_CARDIAC: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_CARDIAC_T_32000.getValue(); break;
		case ENDO_ESOPHAGEAL: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_ESOPHAGEAL_T_56000.getValue(); break;
		case ENDO_NASAL: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_NASAL_T_21300.getValue(); break;
		case ENDO_NASOPHARYNGEAL: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_NASOPHARYNGEAL_T_23050.getValue(); break;
		case ENDO_RECTAL: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_RECTAL_T_59600.getValue(); break;
		case ENDO_RENAL: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_RENAL_T_71000.getValue(); break;
		case ENDO_URETERIC: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_URETERIC_T_73000.getValue(); break;
		case ENDO_URETHRAL: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_URETHRAL_T_75000.getValue(); break;
		case ENDO_VAGINAL: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_VAGINAL_T_82000.getValue(); break;
		case ENDO_VASCULAR: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_VASCULAR_T_40000.getValue(); break;
		case ENDO_VENOUS: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_VENOUS_T_48000.getValue(); break;
		case ENDO_VESICAL: this.strCodeValue =EnumCV_AnatomicRegion.ENDO_VESICAL_T_74250.getValue(); break;
		case EPIGASTRIC_REGION: this.strCodeValue =EnumCV_AnatomicRegion.EPIGASTRIC_REGION_T_D4200.getValue(); break;
		case EYELID: this.strCodeValue =EnumCV_AnatomicRegion.EYELID_T_AA810.getValue(); break;
		case FACE: this.strCodeValue =EnumCV_AnatomicRegion.FACE_T_D1200.getValue(); break;
		case FLANK: this.strCodeValue =EnumCV_AnatomicRegion.FLANK_T_D2310.getValue(); break;
		case FONTANEL_OF_SKULL: this.strCodeValue =EnumCV_AnatomicRegion.FONTANEL_OF_SKULL_T_15200.getValue(); break;
		case GLUTEAL_REGION: this.strCodeValue =EnumCV_AnatomicRegion.GLUTEAL_REGION_T_D2600.getValue(); break;
		case HIP_JOINT: this.strCodeValue =EnumCV_AnatomicRegion.HIP_JOINT_T_15710.getValue(); break;
		case HYPOGASTRIC_REGION: this.strCodeValue =EnumCV_AnatomicRegion.HYPOGASTRIC_REGION_T_D4240.getValue(); break;
		case HYPOGLOSSAL: this.strCodeValue =EnumCV_AnatomicRegion.HYPOGLOSSAL_T_D1212.getValue(); break;
		case HYPOPHARYNX: this.strCodeValue =EnumCV_AnatomicRegion.HYPOPHARYNX_T_55300.getValue(); break;
		case INTRA_ABDOMINAL: this.strCodeValue =EnumCV_AnatomicRegion.INTRA_ABDOMINAL_T_D4010.getValue(); break;
		case INTRA_ARTICULAR: this.strCodeValue =EnumCV_AnatomicRegion.INTRA_ARTICULAR_G_A15A.getValue(); break;
		case INTRACRANIAL: this.strCodeValue =EnumCV_AnatomicRegion.INTRACRANIAL_T_D1400.getValue(); break;
		case INTRA_ESOPHAGEAL: this.strCodeValue =EnumCV_AnatomicRegion.INTRA_ESOPHAGEAL_T_56000.getValue(); break;
		case INTRA_PELVIC: this.strCodeValue =EnumCV_AnatomicRegion.INTRA_PELVIC_T_D6221.getValue(); break;
		case INTRA_THORACIC: this.strCodeValue =EnumCV_AnatomicRegion.INTRA_THORACIC_T_D3000.getValue(); break;
		case LEFT_HYPOCHONDRIAC_REGION: this.strCodeValue =EnumCV_AnatomicRegion.LEFT_HYPOCHONDRIAC_REGION_T_D4211.getValue(); break;
		case LEFT_INGUINAL_REGION: this.strCodeValue =EnumCV_AnatomicRegion.LEFT_INGUINAL_REGION_T_D7020.getValue(); break;
		case LEFTLOWERQUADRANTOFABDOMEN: this.strCodeValue =EnumCV_AnatomicRegion.LEFTLOWERQUADRANTOFABDOMEN_T_D4140.getValue(); break;
		case LEFT_LUMBAR_REGION: this.strCodeValue =EnumCV_AnatomicRegion.LEFT_LUMBAR_REGION_T_D2340.getValue(); break;
		case LEFT_UPPER_QUADRANT_OF_ABDOMEN: this.strCodeValue =EnumCV_AnatomicRegion.LEFT_UPPER_QUADRANT_OF_ABDOMEN_T_D4130.getValue(); break;
		case LOWER_INNER_QUADRANT_OF_BREAST: this.strCodeValue =EnumCV_AnatomicRegion.LOWER_INNER_QUADRANT_OF_BREAST_T_04003.getValue(); break;
		case LOWEROUTERQUADRANTOFBREAST: this.strCodeValue =EnumCV_AnatomicRegion.LOWEROUTERQUADRANTOFBREAST_T_04005.getValue(); break;
		case LUMBAR_REGION: this.strCodeValue =EnumCV_AnatomicRegion.LUMBAR_REGION_T_D2300.getValue(); break;
		case LUNG: this.strCodeValue =EnumCV_AnatomicRegion.LUNG_T_28000.getValue(); break;
		case MOUTH: this.strCodeValue =EnumCV_AnatomicRegion.MOUTH_T_51000.getValue(); break;
		case NOSE: this.strCodeValue =EnumCV_AnatomicRegion.NOSE_T_21000.getValue(); break;
		case OMENTAL_BURSA: this.strCodeValue =EnumCV_AnatomicRegion.OMENTAL_BURSA_T_D4450.getValue(); break;
		case OMENTUM: this.strCodeValue =EnumCV_AnatomicRegion.OMENTUM_T_D4600.getValue(); break;
		case OVARY: this.strCodeValue =EnumCV_AnatomicRegion.OVARY_T_87000.getValue(); break;
		case PANCREATIC_DUCT: this.strCodeValue =EnumCV_AnatomicRegion.PANCREATIC_DUCT_T_65010.getValue(); break;
		case PARASTERNAL: this.strCodeValue =EnumCV_AnatomicRegion.PARASTERNAL_T_D3136.getValue(); break;
		case PENIS: this.strCodeValue =EnumCV_AnatomicRegion.PENIS_T_91000.getValue(); break;
		case PERINEUM: this.strCodeValue =EnumCV_AnatomicRegion.PERINEUM_T_D2700.getValue(); break;
		case POPLITEAL_FOSSA: this.strCodeValue =EnumCV_AnatomicRegion.POPLITEAL_FOSSA_T_D9310.getValue(); break;
		case RENAL_PELVIS: this.strCodeValue =EnumCV_AnatomicRegion.RENAL_PELVIS_T_72000.getValue(); break;
		case RETROPERITONEUM: this.strCodeValue =EnumCV_AnatomicRegion.RETROPERITONEUM_T_D4900.getValue(); break;
		case RIGHT_HYPOCHONDRIAC_REGION: this.strCodeValue =EnumCV_AnatomicRegion.RIGHT_HYPOCHONDRIAC_REGION_T_D4212.getValue(); break;
		case RIGHT_INGUINAL_REGION: this.strCodeValue =EnumCV_AnatomicRegion.RIGHT_INGUINAL_REGION_T_D7010.getValue(); break;
		case RIGHT_LOWER_QUADRANT_OF_ABDOMEN: this.strCodeValue =EnumCV_AnatomicRegion.RIGHT_LOWER_QUADRANT_OF_ABDOMEN_T_D4120.getValue(); break;
		case RIGHT_LUMBAR_REGION: this.strCodeValue =EnumCV_AnatomicRegion.RIGHT_LUMBAR_REGION_T_D2342.getValue(); break;
		case RIGHT_UPPER_QUADRANT_OF_ABDOMEN: this.strCodeValue =EnumCV_AnatomicRegion.RIGHT_UPPER_QUADRANT_OF_ABDOMEN_T_D4110.getValue(); break;
		case SCALP: this.strCodeValue =EnumCV_AnatomicRegion.SCALP_T_D1160.getValue(); break;
		case SCLERA: this.strCodeValue =EnumCV_AnatomicRegion.SCLERA_T_AA110.getValue(); break;
		case SCROTUM: this.strCodeValue =EnumCV_AnatomicRegion.SCROTUM_T_98000.getValue(); break;
		case SPINAL_CORD: this.strCodeValue =EnumCV_AnatomicRegion.SPINAL_CORD_T_A7010.getValue(); break;
		case SUBCOSTAL: this.strCodeValue =EnumCV_AnatomicRegion.SUBCOSTAL_T_D4210.getValue(); break;
		case SUBMANDIBULAR_AREA: this.strCodeValue =EnumCV_AnatomicRegion.SUBMANDIBULAR_AREA_T_D1603.getValue(); break;
		case SUBXIPHOID: this.strCodeValue =EnumCV_AnatomicRegion.SUBXIPHOID_T_D3213.getValue(); break;
		case SUPRACLAVICULAR_REGION_OF_NECK: this.strCodeValue =EnumCV_AnatomicRegion.SUPRACLAVICULAR_REGION_OF_NECK_T_D1620.getValue(); break;
		case SUPRAPUBIC_REGION: this.strCodeValue =EnumCV_AnatomicRegion.SUPRAPUBIC_REGION_T_D4240.getValue(); break;
		case SUPRASTERNAL_NOTCH: this.strCodeValue =EnumCV_AnatomicRegion.SUPRASTERNAL_NOTCH_T_11218.getValue(); break;
		case THIGH: this.strCodeValue =EnumCV_AnatomicRegion.THIGH_T_D9100.getValue(); break;
		case THORAX: this.strCodeValue =EnumCV_AnatomicRegion.THORAX_T_D3000.getValue(); break;
		case TONGUE: this.strCodeValue =EnumCV_AnatomicRegion.TONGUE_T_53000.getValue(); break;
		case UMBILICAL_REGION: this.strCodeValue =EnumCV_AnatomicRegion.UMBILICAL_REGION_T_D4230.getValue(); break;
		case UPPER_INNER_QUADRANT_OF_BREAST: this.strCodeValue =EnumCV_AnatomicRegion.UPPER_INNER_QUADRANT_OF_BREAST_T_04002.getValue(); break;
		case UPPEROUTERQUADRANTOFBREAST: this.strCodeValue =EnumCV_AnatomicRegion.UPPEROUTERQUADRANTOFBREAST_T_04004.getValue(); break;
		case VAGINA: this.strCodeValue =EnumCV_AnatomicRegion.VAGINA_T_82000.getValue(); break;
		case VASCULAR_GRAFT: this.strCodeValue =EnumCV_AnatomicRegion.VASCULAR_GRAFT_A_04140.getValue(); break;
		case VENTRICLE: this.strCodeValue =EnumCV_AnatomicRegion.VENTRICLE_T_32400.getValue(); break;
		case VULVA: this.strCodeValue =EnumCV_AnatomicRegion.VULVA_T_81000.getValue(); break;
		case WRIST_JOINT: this.strCodeValue =EnumCV_AnatomicRegion.WRIST_JOINT_T_15460.getValue(); break;
		}
	}

	/**
	 * Sets the SNOMED-CT ID.
	 * @param enumAnatomicRegion Object of EnumCM_AnatomicRegion represents Code Meaning.
	 */
	private void setSNOMEDCTID(EnumCM_AnatomicRegion enumAnatomicRegion)
	{
		switch(enumAnatomicRegion)
		{
		case ATRIUM : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ATRIUM.getSNOMEDCTID(); break;
		case AXILLA : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.AXILLA.getSNOMEDCTID(); break;
		case BACK : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.BACK.getSNOMEDCTID(); break;
		case BROAD_LIGAMENT : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.BROAD_LIGAMENT.getSNOMEDCTID(); break;
		case BUCCAL_REGION_OF_FACE : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.BUCCAL_REGION_OF_FACE.getSNOMEDCTID(); break;
		case BUTTOCK : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.BUTTOCK.getSNOMEDCTID(); break;
		case CALYX : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.CALYX.getSNOMEDCTID(); break;
		case CHEEK : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.CHEEK.getSNOMEDCTID(); break;
		case CORNEA : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.CORNEA.getSNOMEDCTID(); break;
		case EAR : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.EAR.getSNOMEDCTID(); break;
		case ENDO_ARTERIAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_ARTERIAL.getSNOMEDCTID(); break;
		case ENDO_CARDIAC : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_CARDIAC.getSNOMEDCTID(); break;
		case ENDO_ESOPHAGEAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_ESOPHAGEAL.getSNOMEDCTID(); break;
		case ENDO_NASAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_NASAL.getSNOMEDCTID(); break;
		case ENDO_NASOPHARYNGEAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_NASOPHARYNGEAL.getSNOMEDCTID(); break;
		case ENDO_RECTAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_RECTAL.getSNOMEDCTID(); break;
		case ENDO_RENAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_RENAL.getSNOMEDCTID(); break;
		case ENDO_URETERIC : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_URETERIC.getSNOMEDCTID(); break;
		case ENDO_URETHRAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_URETHRAL.getSNOMEDCTID(); break;
		case ENDO_VAGINAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_VAGINAL.getSNOMEDCTID(); break;
		case ENDO_VASCULAR : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_VASCULAR.getSNOMEDCTID(); break;
		case ENDO_VENOUS : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_VENOUS.getSNOMEDCTID(); break;
		case ENDO_VESICAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.ENDO_VESICAL.getSNOMEDCTID(); break;
		case EPIGASTRIC_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.EPIGASTRIC_REGION.getSNOMEDCTID(); break;
		case EYELID : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.EYELID.getSNOMEDCTID(); break;
		case FACE : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.FACE.getSNOMEDCTID(); break;
		case FLANK : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.FLANK.getSNOMEDCTID(); break;
		case FONTANEL_OF_SKULL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.FONTANEL_OF_SKULL.getSNOMEDCTID(); break;
		case GLUTEAL_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.GLUTEAL_REGION.getSNOMEDCTID(); break;
		case HIP_JOINT : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.HIP_JOINT.getSNOMEDCTID(); break;
		case HYPOGASTRIC_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.HYPOGASTRIC_REGION.getSNOMEDCTID(); break;
		case HYPOGLOSSAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.HYPOGLOSSAL.getSNOMEDCTID(); break;
		case HYPOPHARYNX : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.HYPOPHARYNX.getSNOMEDCTID(); break;
		case INTRA_ABDOMINAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.INTRA_ABDOMINAL.getSNOMEDCTID(); break;
		case INTRA_ARTICULAR : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.INTRA_ARTICULAR.getSNOMEDCTID(); break;
		case INTRACRANIAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.INTRACRANIAL.getSNOMEDCTID(); break;
		case INTRA_ESOPHAGEAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.INTRA_ESOPHAGEAL.getSNOMEDCTID(); break;
		case INTRA_PELVIC : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.INTRA_PELVIC.getSNOMEDCTID(); break;
		case INTRA_THORACIC : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.INTRA_THORACIC.getSNOMEDCTID(); break;
		case LEFT_HYPOCHONDRIAC_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.LEFT_HYPOCHONDRIAC_REGION.getSNOMEDCTID(); break;
		case LEFT_INGUINAL_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.LEFT_INGUINAL_REGION.getSNOMEDCTID(); break;
		case LEFTLOWERQUADRANTOFABDOMEN : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.LEFTLOWERQUADRANTOFABDOMEN.getSNOMEDCTID(); break;
		case LEFT_LUMBAR_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.LEFT_LUMBAR_REGION.getSNOMEDCTID(); break;
		case LEFT_UPPER_QUADRANT_OF_ABDOMEN : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.LEFT_UPPER_QUADRANT_OF_ABDOMEN.getSNOMEDCTID(); break;
		case LOWER_INNER_QUADRANT_OF_BREAST : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.LOWER_INNER_QUADRANT_OF_BREAST.getSNOMEDCTID(); break;
		case LOWEROUTERQUADRANTOFBREAST : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.LOWEROUTERQUADRANTOFBREAST.getSNOMEDCTID(); break;
		case LUMBAR_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.LUMBAR_REGION.getSNOMEDCTID(); break;
		case LUNG : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.LUNG.getSNOMEDCTID(); break;
		case MOUTH : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.MOUTH.getSNOMEDCTID(); break;
		case NOSE : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.NOSE.getSNOMEDCTID(); break;
		case OMENTAL_BURSA : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.OMENTAL_BURSA.getSNOMEDCTID(); break;
		case OMENTUM : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.OMENTUM.getSNOMEDCTID(); break;
		case OVARY : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.OVARY.getSNOMEDCTID(); break;
		case PANCREATIC_DUCT : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.PANCREATIC_DUCT.getSNOMEDCTID(); break;
		case PARASTERNAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.PARASTERNAL.getSNOMEDCTID(); break;
		case PENIS : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.PENIS.getSNOMEDCTID(); break;
		case PERINEUM : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.PERINEUM.getSNOMEDCTID(); break;
		case POPLITEAL_FOSSA : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.POPLITEAL_FOSSA.getSNOMEDCTID(); break;
		case RENAL_PELVIS : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.RENAL_PELVIS.getSNOMEDCTID(); break;
		case RETROPERITONEUM : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.RETROPERITONEUM.getSNOMEDCTID(); break;
		case RIGHT_HYPOCHONDRIAC_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.RIGHT_HYPOCHONDRIAC_REGION.getSNOMEDCTID(); break;
		case RIGHT_INGUINAL_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.RIGHT_INGUINAL_REGION.getSNOMEDCTID(); break;
		case RIGHT_LOWER_QUADRANT_OF_ABDOMEN : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.RIGHT_LOWER_QUADRANT_OF_ABDOMEN.getSNOMEDCTID(); break;
		case RIGHT_LUMBAR_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.RIGHT_LUMBAR_REGION.getSNOMEDCTID(); break;
		case RIGHT_UPPER_QUADRANT_OF_ABDOMEN : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.RIGHT_UPPER_QUADRANT_OF_ABDOMEN.getSNOMEDCTID(); break;
		case SCALP : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.SCALP.getSNOMEDCTID(); break;
		case SCLERA : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.SCLERA.getSNOMEDCTID(); break;
		case SCROTUM : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.SCROTUM.getSNOMEDCTID(); break;
		case SPINAL_CORD : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.SPINAL_CORD.getSNOMEDCTID(); break;
		case SUBCOSTAL : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.SUBCOSTAL.getSNOMEDCTID(); break;
		case SUBMANDIBULAR_AREA : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.SUBMANDIBULAR_AREA.getSNOMEDCTID(); break;
		case SUBXIPHOID : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.SUBXIPHOID.getSNOMEDCTID(); break;
		case SUPRACLAVICULAR_REGION_OF_NECK : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.SUPRACLAVICULAR_REGION_OF_NECK.getSNOMEDCTID(); break;
		case SUPRAPUBIC_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.SUPRAPUBIC_REGION.getSNOMEDCTID(); break;
		case SUPRASTERNAL_NOTCH : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.SUPRASTERNAL_NOTCH.getSNOMEDCTID(); break;
		case THIGH : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.THIGH.getSNOMEDCTID(); break;
		case THORAX : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.THORAX.getSNOMEDCTID(); break;
		case TONGUE : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.TONGUE.getSNOMEDCTID(); break;
		case UMBILICAL_REGION : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.UMBILICAL_REGION.getSNOMEDCTID(); break;
		case UPPER_INNER_QUADRANT_OF_BREAST : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.UPPER_INNER_QUADRANT_OF_BREAST.getSNOMEDCTID(); break;
		case UPPEROUTERQUADRANTOFBREAST : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.UPPEROUTERQUADRANTOFBREAST.getSNOMEDCTID(); break;
		case VAGINA : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.VAGINA.getSNOMEDCTID(); break;
		case VASCULAR_GRAFT : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.VASCULAR_GRAFT.getSNOMEDCTID(); break;
		case VENTRICLE : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.VENTRICLE.getSNOMEDCTID(); break;
		case VULVA : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.VULVA.getSNOMEDCTID(); break;
		case WRIST_JOINT : this.strSNOMEDCTID =EnumAnatomicSNOMEDMap.WRIST_JOINT.getSNOMEDCTID(); break;
		}
	}

	/**
	 * Sets the value for AnatomicRegion
	 * @param enumAnatomicRegion Object of EnumCM_AnatomicRegion.
	 */
	public void setAnatomicRegion(Enum enumValue)
	{
		if(enumValue instanceof EnumCM_AnatomicRegion)
	{
		 /**
			 * Casting EnumValue to required Enum.
			 */
			EnumCM_AnatomicRegion new_enumAnatomicRegion = (EnumCM_AnatomicRegion)enumValue;
			
			this.strCodeMeaning = new_enumAnatomicRegion.getValue();
			this.strCodingSchemeDesignator = EnumCodingSchemeDesignator.SRT.getValue();
			/**
			 * set code Value
			 */
			setCodeValue(new_enumAnatomicRegion);

			/**
			 * set SNOMED-CT ID
			 */
			setSNOMEDCTID(new_enumAnatomicRegion);
	}
	 else if(enumValue instanceof EnumCM_CTMRAndPETAnatomyImaged)
		{
			/**
			 * Casting EnumValue to required Enum.
			 */
		 EnumCM_CTMRAndPETAnatomyImaged new_enumCTMRAndPETAnatomyImaged = (EnumCM_CTMRAndPETAnatomyImaged) enumValue;
			
			/**
			 * Creating object of require CID with respect to enum and setting value accordingly.
			 */
			if(null== this.objCTMRAndPETAnatomyImagedCID4030)
			this.objCTMRAndPETAnatomyImagedCID4030 = new CTMRAndPETAnatomyImaged_CID4030();
			this.objCTMRAndPETAnatomyImagedCID4030.setCTMRAndPETAnatomyImaged(new_enumCTMRAndPETAnatomyImaged);
			
			/**
			 * Retrieving attributes and setting it to member variables. 
			 */
			this.strCodeMeaning = objCTMRAndPETAnatomyImagedCID4030.getCodeMeaning();
			this.strCodeValue = objCTMRAndPETAnatomyImagedCID4030.getCodeValue();
			this.strCodingSchemeDesignator = objCTMRAndPETAnatomyImagedCID4030.getCodingSchemeDesignator();
			this.strSNOMEDCTID = objCTMRAndPETAnatomyImagedCID4030.getSNOMEDCTID();
		}	
	 else if(enumValue instanceof EnumCM_EndoscopyAnatomicRegions)
		{
			/**
			 * Casting EnumValue to required Enum.
			 */
		 EnumCM_EndoscopyAnatomicRegions new_enumEndoscopyAnatomicRegions = (EnumCM_EndoscopyAnatomicRegions) enumValue;
			
			/**
			 * Creating object of require CID with respect to enum and setting value accordingly.
			 */
			if(null== this.objEndoscopyAnatomicRegionsCID4040)
			this.objEndoscopyAnatomicRegionsCID4040 = new EndoscopyAnatomicRegions_CID4040();
			this.objEndoscopyAnatomicRegionsCID4040.setEndoscopyAnatomicRegions(new_enumEndoscopyAnatomicRegions);
			
			/**
			 * Retrieving attributes and setting it to member variables. 
			 */
			this.strCodeMeaning = objEndoscopyAnatomicRegionsCID4040.getCodeMeaning();
			this.strCodeValue = objEndoscopyAnatomicRegionsCID4040.getCodeValue();
			this.strCodingSchemeDesignator = objEndoscopyAnatomicRegionsCID4040.getCodingSchemeDesignator();
			this.strSNOMEDCTID = objEndoscopyAnatomicRegionsCID4040.getSNOMEDCTID();
		}	
	 else if(enumValue instanceof EnumCM_CardiovascularAnatomicLocations||enumValue instanceof EnumCM_CommonAnatomicRegions)
		{
		 if(enumValue instanceof EnumCM_CardiovascularAnatomicLocations)
			{
				/**
				 * Casting EnumValue to required Enum.
				 */
				EnumCM_CardiovascularAnatomicLocations new_enumCardiovascularAnatomicLocations = (EnumCM_CardiovascularAnatomicLocations) enumValue;
				
				/**
				 * Creating object of require CID with respect to enum and setting value accordingly.
				 */
				if(null== this.objCardiovascularAnatomicLocationsCID3010)
				this.objCardiovascularAnatomicLocationsCID3010 = new CardiovascularAnatomicLocations_CID3010();
				this.objCardiovascularAnatomicLocationsCID3010.setCardiovascularAnatomicLocations(new_enumCardiovascularAnatomicLocations);
				
				/**
				 * Retrieving attributes and setting it to member variables. 
				 */
				this.strCodeMeaning = objCardiovascularAnatomicLocationsCID3010.getCodeMeaning();
				this.strCodeValue = objCardiovascularAnatomicLocationsCID3010.getCodeValue();
				this.strCodingSchemeDesignator = objCardiovascularAnatomicLocationsCID3010.getCodingSchemeDesignator();
				this.strSNOMEDCTID = objCardiovascularAnatomicLocationsCID3010.getSNOMEDCTID();
			}	 
			else if(enumValue instanceof EnumCM_CommonAnatomicRegions)
			{
				/**
				 * Casting EnumValue to required Enum.
				 */
				EnumCM_CommonAnatomicRegions new_enumCommonAnatomicRegions = (EnumCM_CommonAnatomicRegions) enumValue;
				
				/**
				 * Creating object of require CID with respect to enum and setting value accordingly.
				 */
				if(null== this.objCommonAnatomicRegionsCID4031)
				this.objCommonAnatomicRegionsCID4031 = new CommonAnatomicRegions_CID4031();
				this.objCommonAnatomicRegionsCID4031.setCommonAnatomicRegions(new_enumCommonAnatomicRegions);
				
				/**
				 * Retrieving attributes and setting it to member variables. 
				 */
				this.strCodeMeaning = objCommonAnatomicRegionsCID4031.getCodeMeaning();
				this.strCodeValue = objCommonAnatomicRegionsCID4031.getCodeValue();
				this.strCodingSchemeDesignator = objCommonAnatomicRegionsCID4031.getCodingSchemeDesignator();
				this.strSNOMEDCTID = objCommonAnatomicRegionsCID4031.getSNOMEDCTID();
			}	 
		
		}	
	else
	{
		if(DicomConfig.createInstance().isLoggingOn())
		{
			DicomLogger objDicomLogger = DicomLogger.getLogger();
			objDicomLogger.log(ResourceBundleWrapper.getValue("warning","InvalidEnumeratedValue",new Locale(DicomConfig.createInstance().getLocale())));
		}
	}
  }
}
