/*******************************************************************************
 *  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 cdac.medinfo.sdk.dcm30_04.templates.dicomsnomedmap.EnumAnatomicSNOMEDMap;
import cdac.medinfo.sdk.dcm30_04.templates.enums.EnumCodingSchemeDesignator;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CraniofacialAnatomicRegions;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_CraniofacialAnatomicRegions;


/**
 * This class represents Craniofacial Anatomic Regions CID4028
 */
public class CraniofacialAnatomicRegions_CID4028 {
	/**
	 * 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;
	/**
	 * Instantiates a new CraniofacialAnatomicRegions_CID4028 Template 
	 */
	public CraniofacialAnatomicRegions_CID4028()
	{

	}

	/**
	 * 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 enumCraniofacialAnatomicRegions Object of EnumCM_CraniofacialAnatomicRegions represents Code Meaning.
	 */
	private void setCodeValue(EnumCM_CraniofacialAnatomicRegions enumCraniofacialAnatomicRegions)
	{
		switch(enumCraniofacialAnatomicRegions)
		{
		case BONE_STRUCTURE_OF_HEAD_AND_OR_NECK:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.BONE_STRUCTURE_OF_HEAD_AND_OR_NECK_T_D006D
					.getValue();
			break;
		case CERVICAL_SPINE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.CERVICAL_SPINE_T_11501
					.getValue();
			break;
		case ETHMOID_BONE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.ETHMOID_BONE_T_11156
					.getValue();
			break;
		case EXTERNAL_EAR:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.EXTERNAL_EAR_T_AB100
					.getValue();
			break;
		case EYEBALL:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.EYEBALL_T_AA770
					.getValue();
			break;
		case EYE_REGION:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.EYE_REGION_T_D0801
					.getValue();
			break;
		case FACIAL_BONES:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.FACIAL_BONES_T_11196
					.getValue();
			break;
		case FRONTAL_BONE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.FRONTAL_BONE_T_11110
					.getValue();
			break;
		case HEAD:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.HEAD_T_D1100
					.getValue();
			break;
		case HEAD_AND_NECK:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.HEAD_AND_NECK_T_D1000
					.getValue();
			break;
		case HYOID_BONE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.HYOID_BONE_T_11190
					.getValue();
			break;
		case INNER_EAR:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.INNER_EAR_T_AB700
					.getValue();
			break;
		case INTERNAL_AUDITORY_CANAL:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.INTERNAL_AUDITORY_CANAL_T_AB959
					.getValue();
			break;
		case JAW_REGION:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.JAW_REGION_T_D1213
					.getValue();
			break;
		case LACRIMAL_BONE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.LACRIMAL_BONE_T_1115A
					.getValue();
			break;
		case LARYNX:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.LARYNX_T_24100
					.getValue();
			break;
		case LIP:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.LIP_T_52000
					.getValue();
			break;
		case MANDIBLE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.MANDIBLE_T_11180
					.getValue();
			break;
		case MASTOID_BONE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.MASTOID_BONE_T_11133
					.getValue();
			break;
		case MAXILLA:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.MAXILLA_T_11170
					.getValue();
			break;
		case MIDDLE_EAR:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.MIDDLE_EAR_T_AB300
					.getValue();
			break;
		case MUSCLE_OF_HEAD:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.MUSCLE_OF_HEAD_T_13100
					.getValue();
			break;
		case MUSCLE_OF_NECK:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.MUSCLE_OF_NECK_T_13300
					.getValue();
			break;
		case NASAL_BONE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.NASAL_BONE_T_11149
					.getValue();
			break;
		case NECK:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.NECK_T_D1600
					.getValue();
			break;
		case OPTIC_CANAL:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.OPTIC_CANAL_T_11102
					.getValue();
			break;
		case ORBITAL_STRUCTURE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.ORBITAL_STRUCTURE_T_D14AE
					.getValue();
			break;
		case PALATINE_BONE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.PALATINE_BONE_T_11160
					.getValue();
			break;
		case PARANASAL_SINUS:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.PARANASAL_SINUS_T_22000
					.getValue();
			break;
		case PARIETAL_BONE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.PARIETAL_BONE_T_11120
					.getValue();
			break;
		case SALIVARY_GLAND:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.SALIVARY_GLAND_T_61007
					.getValue();
			break;
		case SKULL:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.SKULL_T_11100
					.getValue();
			break;
		case SOFT_PALATE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.SOFT_PALATE_T_51120
					.getValue();
			break;
		case SPHENOID_BONE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.SPHENOID_BONE_T_11150
					.getValue();
			break;
		case SUBMANDIBULAR_GLAND:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.SUBMANDIBULAR_GLAND_T_61300
					.getValue();
			break;
		case TEMPORAL_BONE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.TEMPORAL_BONE_T_11130
					.getValue();
			break;
		case TEMPOROMANDIBULAR_JOINT:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.TEMPOROMANDIBULAR_JOINT_T_15290
					.getValue();
			break;
		case TONGUE:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.TONGUE_T_53000
					.getValue();
			break;
		case TOOTH:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.TOOTH_T_54010
					.getValue();
			break;
		case TRACHEA:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.TRACHEA_T_25000
					.getValue();
			break;
		case VERTEBRAL_COLUMN_AND_CRANIUM:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.VERTEBRAL_COLUMN_AND_CRANIUM_T_11011
					.getValue();
			break;
		case ZYGOMA:
			this.strCodeValue = EnumCV_CraniofacialAnatomicRegions.ZYGOMA_T_11166
					.getValue();
			break;
		}
	}

	/**
	 * Sets the SNOMED-CT ID.
	 * @param enumCraniofacialAnatomicRegions Object of EnumCM_CraniofacialAnatomicRegions represents Code Meaning.
	 */
	private void setSNOMEDCTID(EnumCM_CraniofacialAnatomicRegions enumCraniofacialAnatomicRegions)
	{
		switch(enumCraniofacialAnatomicRegions)
		{
		case BONE_STRUCTURE_OF_HEAD_AND_OR_NECK:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.BONE_STRUCTURE_OF_HEAD_AND_OR_NECK
					.getSNOMEDCTID();
			break;
		case CERVICAL_SPINE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.CERVICAL_SPINE
					.getSNOMEDCTID();
			break;
		case ETHMOID_BONE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.ETHMOID_BONE
					.getSNOMEDCTID();
			break;
		case EXTERNAL_EAR:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.EXTERNAL_EAR
					.getSNOMEDCTID();
			break;
		case EYEBALL:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.EYEBALL.getSNOMEDCTID();
			break;
		case EYE_REGION:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.EYE_REGION.getSNOMEDCTID();
			break;
		case FACIAL_BONES:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.FACIAL_BONES
					.getSNOMEDCTID();
			break;
		case FRONTAL_BONE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.FRONTAL_BONE
					.getSNOMEDCTID();
			break;
		case HEAD:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.HEAD.getSNOMEDCTID();
			break;
		case HEAD_AND_NECK:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.HEAD_AND_NECK
					.getSNOMEDCTID();
			break;
		case HYOID_BONE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.HYOID_BONE.getSNOMEDCTID();
			break;
		case INNER_EAR:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.INNER_EAR.getSNOMEDCTID();
			break;
		case INTERNAL_AUDITORY_CANAL:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.INTERNAL_AUDITORY_CANAL
					.getSNOMEDCTID();
			break;
		case JAW_REGION:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.JAW_REGION.getSNOMEDCTID();
			break;
		case LACRIMAL_BONE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.LACRIMAL_BONE
					.getSNOMEDCTID();
			break;
		case LARYNX:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.LARYNX.getSNOMEDCTID();
			break;
		case LIP:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.LIP.getSNOMEDCTID();
			break;
		case MANDIBLE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.MANDIBLE.getSNOMEDCTID();
			break;
		case MASTOID_BONE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.MASTOID_BONE
					.getSNOMEDCTID();
			break;
		case MAXILLA:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.MAXILLA.getSNOMEDCTID();
			break;
		case MIDDLE_EAR:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.MIDDLE_EAR.getSNOMEDCTID();
			break;
		case MUSCLE_OF_HEAD:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.MUSCLE_OF_HEAD
					.getSNOMEDCTID();
			break;
		case MUSCLE_OF_NECK:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.MUSCLE_OF_NECK
					.getSNOMEDCTID();
			break;
		case NASAL_BONE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.NASAL_BONE.getSNOMEDCTID();
			break;
		case NECK:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.NECK.getSNOMEDCTID();
			break;
		case OPTIC_CANAL:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.OPTIC_CANAL.getSNOMEDCTID();
			break;
		case ORBITAL_STRUCTURE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.ORBITAL_STRUCTURE
					.getSNOMEDCTID();
			break;
		case PALATINE_BONE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.PALATINE_BONE
					.getSNOMEDCTID();
			break;
		case PARANASAL_SINUS:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.PARANASAL_SINUS
					.getSNOMEDCTID();
			break;
		case PARIETAL_BONE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.PARIETAL_BONE
					.getSNOMEDCTID();
			break;
		case SALIVARY_GLAND:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.SALIVARY_GLAND
					.getSNOMEDCTID();
			break;
		case SKULL:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.SKULL.getSNOMEDCTID();
			break;
		case SOFT_PALATE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.SOFT_PALATE.getSNOMEDCTID();
			break;
		case SPHENOID_BONE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.SPHENOID_BONE
					.getSNOMEDCTID();
			break;
		case SUBMANDIBULAR_GLAND:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.SUBMANDIBULAR_GLAND
					.getSNOMEDCTID();
			break;
		case TEMPORAL_BONE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.TEMPORAL_BONE
					.getSNOMEDCTID();
			break;
		case TEMPOROMANDIBULAR_JOINT:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.TEMPOROMANDIBULAR_JOINT
					.getSNOMEDCTID();
			break;
		case TONGUE:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.TONGUE.getSNOMEDCTID();
			break;
		case TOOTH:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.TOOTH.getSNOMEDCTID();
			break;
		case TRACHEA:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.TRACHEA.getSNOMEDCTID();
			break;
		case VERTEBRAL_COLUMN_AND_CRANIUM:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.VERTEBRAL_COLUMN_AND_CRANIUM
					.getSNOMEDCTID();
			break;
		case ZYGOMA:
			this.strSNOMEDCTID = EnumAnatomicSNOMEDMap.ZYGOMA.getSNOMEDCTID();
			break;
		}
	}

	/**
	 * Sets the value for CraniofacialAnatomicRegions
	 * @param enumCraniofacialAnatomicRegions Object of EnumCM_CraniofacialAnatomicRegions.
	 */
	public void setCraniofacialAnatomicRegions(EnumCM_CraniofacialAnatomicRegions enumCraniofacialAnatomicRegions)
	{
		/**
		 * Retrieves the value for CodingSchemeDesignator, CodingSchemeVersion and Code Meaning and 
		 * sets the Code Value according to Code Meaning.
		 */
		this.strCodeMeaning = enumCraniofacialAnatomicRegions.getValue();
			this.strCodingSchemeDesignator = EnumCodingSchemeDesignator.SRT.getValue();
		
		/**
		 * set code Value
		 */
		setCodeValue(enumCraniofacialAnatomicRegions);

		/**
		 * set SNOMED-CT ID
		 */
		setSNOMEDCTID(enumCraniofacialAnatomicRegions);
	}
}
