/*******************************************************************************
 *  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.enums.EnumCodingSchemeDesignator;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CardiacUltrasoundSummaryCodes;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_CardiacUltrasoundSummaryCodes;
import cdac.medinfo.sdk.dcm30_04.templates.dicomsnomedmap.EnumChestCardiacSNOMEDMap;

/**
 * This class represents CardiacUltrasoundSummaryCodes CID12248
 */
public class CardiacUltrasoundSummaryCodes_CID12248 {

	/**
	 * 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 CardiacUltrasoundSummaryCodes_CID12248 Template 
	 */
	public CardiacUltrasoundSummaryCodes_CID12248()
	{

	}

	/**
	 * 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 enumCardiacUltrasoundSummaryCodes Object of EnumCM_CardiacUltrasoundSummaryCodes represents Code Meaning.
	 */
	private void setCodeValue(EnumCM_CardiacUltrasoundSummaryCodes enumCardiacUltrasoundSummaryCodes)
	{
		switch(enumCardiacUltrasoundSummaryCodes)
		{
		case CONGENITAL_STENOSIS_OF_AORTIC_VALVE: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.CONGENITAL_STENOSIS_OF_AORTIC_VALVE_D4_31810.getValue(); break;
		case ATRIAL_SEPTAL_DEFECT: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.ATRIAL_SEPTAL_DEFECT_D4_31220.getValue(); break;
		case AORTIC_REGURGITATION: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.AORTIC_REGURGITATION_D3_29022.getValue(); break;
		case AORTIC_STENOSIS: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.AORTIC_STENOSIS_D3_29021.getValue(); break;
		case CARDIOMEGALY: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.CARDIOMEGALY_D3_10008.getValue(); break;
		case COARCTATION_OF_THE_AORTA: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.COARCTATION_OF_THE_AORTA_D4_32014.getValue(); break;
		case COMMON_ATRIOVENTRICULAR_CANAL: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.COMMON_ATRIOVENTRICULAR_CANAL_D4_31303.getValue(); break;
		case COMPLETE_TRANSPOSITION_OF_GREAT_VESSELS: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.COMPLETE_TRANSPOSITION_OF_GREAT_VESSELS_D4_31010.getValue(); break;
		case CYANOSIS: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.CYANOSIS_M_04100.getValue(); break;
		case DEXTROCARDIA: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.DEXTROCARDIA_D4_31B16.getValue(); break;
		case INTERRUPTED_AORTIC_ARCH: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.INTERRUPTED_AORTIC_ARCH_D3_83001.getValue(); break;
		case MESOCARDIA: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.MESOCARDIA_D4_31B24.getValue(); break;
		case ACUTE_FEBRILE_MUCOCUTANEOUS_LYMPH_NODE_SYNDROME: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.ACUTE_FEBRILE_MUCOCUTANEOUS_LYMPH_NODE_SYNDROME_D3_81660.getValue(); break;
		case MITRAL_VALVE_PROLAPSE: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.MITRAL_VALVE_PROLAPSE_D3_29013.getValue(); break;
		case MITRAL_REGURGITATION: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.MITRAL_REGURGITATION_D3_29012.getValue(); break;
		case MITRAL_STENOSIS: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.MITRAL_STENOSIS_D3_29011.getValue(); break;
		case PARTIAL_ANOMALOUS_PULMONARY_VENOUS_CONNECTION: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.PARTIAL_ANOMALOUS_PULMONARY_VENOUS_CONNECTION_D4_33622.getValue(); break;
		case ATRIAL_SEPTAL_DEFECT_WITH_ENDOCARDIAL_CUSHION_DEFECT_PARTIAL_TYPE: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.ATRIAL_SEPTAL_DEFECT_WITH_ENDOCARDIAL_CUSHION_DEFECT_PARTIAL_TYPE_D4_31310.getValue(); break;
		case PULMONIC_VALVE_STENOSIS: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.PULMONIC_VALVE_STENOSIS_D3_29051.getValue(); break;
		case RHEUMATIC_FEVER: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.RHEUMATIC_FEVER_D3_17100.getValue(); break;
		case TETRALOGY_OF_FALLOT: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.TETRALOGY_OF_FALLOT_D4_31110.getValue(); break;
		case VENTRICULAR_SEPTAL_DEFECT_VSD: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.VENTRICULAR_SEPTAL_DEFECT_VSD_D4_31159.getValue(); break;
		case CORRECTED_TRANSPOSITION_OF_GREAT_VESSELS: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.CORRECTED_TRANSPOSITION_OF_GREAT_VESSELS_D4_31040.getValue(); break;
		case PULMONARY_ATRESIA_WITH_INTACT_VENTRICULAR_SEPTUM: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.PULMONARY_ATRESIA_WITH_INTACT_VENTRICULAR_SEPTUM_D3_29082.getValue(); break;
		case PULMONARY_ATRESIA_WITH_VENTRICULAR_SEPTAL_DEFECT: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.PULMONARY_ATRESIA_WITH_VENTRICULAR_SEPTAL_DEFECT_D4_31611.getValue(); break;
		case HYPOPLASTIC_LEFT_HEART_SYNDROME: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.HYPOPLASTIC_LEFT_HEART_SYNDROME_D4_31A00.getValue(); break;
		case FUNCTIONAL_SINGLE_VENTRICLE: this.strCodeValue =EnumCV_CardiacUltrasoundSummaryCodes.FUNCTIONAL_SINGLE_VENTRICLE_D4_31125.getValue(); break;
		}
	}

	/**
	 * Sets the SNOMED-CT ID.
	 * @param enumCardiacUltrasoundSummaryCodes Object of EnumCM_CardiacUltrasoundSummaryCodes represents Code Meaning.
	 */
	private void setSNOMEDCTID(EnumCM_CardiacUltrasoundSummaryCodes enumCardiacUltrasoundSummaryCodes)
	{
		switch(enumCardiacUltrasoundSummaryCodes)
		{
		case CONGENITAL_STENOSIS_OF_AORTIC_VALVE : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.CONGENITAL_STENOSIS_OF_AORTIC_VALVE.getSNOMEDCTID(); break;
		case ATRIAL_SEPTAL_DEFECT : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.ATRIAL_SEPTAL_DEFECT.getSNOMEDCTID(); break;
		case AORTIC_REGURGITATION : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.AORTIC_REGURGITATION.getSNOMEDCTID(); break;
		case AORTIC_STENOSIS : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.AORTIC_STENOSIS.getSNOMEDCTID(); break;
		case CARDIOMEGALY : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.CARDIOMEGALY.getSNOMEDCTID(); break;
		case COARCTATION_OF_THE_AORTA : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.COARCTATION_OF_THE_AORTA.getSNOMEDCTID(); break;
		case COMMON_ATRIOVENTRICULAR_CANAL : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.COMMON_ATRIOVENTRICULAR_CANAL.getSNOMEDCTID(); break;
		case COMPLETE_TRANSPOSITION_OF_GREAT_VESSELS : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.COMPLETE_TRANSPOSITION_OF_GREAT_VESSELS.getSNOMEDCTID(); break;
		case CYANOSIS : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.CYANOSIS.getSNOMEDCTID(); break;
		case DEXTROCARDIA : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.DEXTROCARDIA.getSNOMEDCTID(); break;
		case INTERRUPTED_AORTIC_ARCH : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.INTERRUPTED_AORTIC_ARCH.getSNOMEDCTID(); break;
		case MESOCARDIA : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.MESOCARDIA.getSNOMEDCTID(); break;
		case ACUTE_FEBRILE_MUCOCUTANEOUS_LYMPH_NODE_SYNDROME : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.ACUTE_FEBRILE_MUCOCUTANEOUS_LYMPH_NODE_SYNDROME.getSNOMEDCTID(); break;
		case MITRAL_VALVE_PROLAPSE : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.MITRAL_VALVE_PROLAPSE.getSNOMEDCTID(); break;
		case MITRAL_REGURGITATION : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.MITRAL_REGURGITATION.getSNOMEDCTID(); break;
		case MITRAL_STENOSIS : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.MITRAL_STENOSIS.getSNOMEDCTID(); break;
		case PARTIAL_ANOMALOUS_PULMONARY_VENOUS_CONNECTION : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.PARTIAL_ANOMALOUS_PULMONARY_VENOUS_CONNECTION.getSNOMEDCTID(); break;
		case ATRIAL_SEPTAL_DEFECT_WITH_ENDOCARDIAL_CUSHION_DEFECT_PARTIAL_TYPE : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.ATRIAL_SEPTAL_DEFECT_WITH_ENDOCARDIAL_CUSHION_DEFECT_PARTIAL_TYPE.getSNOMEDCTID(); break;
		case PULMONIC_VALVE_STENOSIS : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.PULMONIC_VALVE_STENOSIS.getSNOMEDCTID(); break;
		case RHEUMATIC_FEVER : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.RHEUMATIC_FEVER.getSNOMEDCTID(); break;
		case TETRALOGY_OF_FALLOT : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.TETRALOGY_OF_FALLOT.getSNOMEDCTID(); break;
		case VENTRICULAR_SEPTAL_DEFECT_VSD : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.VENTRICULAR_SEPTAL_DEFECT_VSD.getSNOMEDCTID(); break;
		case CORRECTED_TRANSPOSITION_OF_GREAT_VESSELS : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.CORRECTED_TRANSPOSITION_OF_GREAT_VESSELS.getSNOMEDCTID(); break;
		case PULMONARY_ATRESIA_WITH_INTACT_VENTRICULAR_SEPTUM : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.PULMONARY_ATRESIA_WITH_INTACT_VENTRICULAR_SEPTUM.getSNOMEDCTID(); break;
		case PULMONARY_ATRESIA_WITH_VENTRICULAR_SEPTAL_DEFECT : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.PULMONARY_ATRESIA_WITH_VENTRICULAR_SEPTAL_DEFECT.getSNOMEDCTID(); break;
		case HYPOPLASTIC_LEFT_HEART_SYNDROME : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.HYPOPLASTIC_LEFT_HEART_SYNDROME.getSNOMEDCTID(); break;
		case FUNCTIONAL_SINGLE_VENTRICLE : this.strSNOMEDCTID =EnumChestCardiacSNOMEDMap.FUNCTIONAL_SINGLE_VENTRICLE.getSNOMEDCTID(); break;
		}
	}

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

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