/*******************************************************************************
 *  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.EnumCodingSchemeVersion;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ECGLeads;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_ECGLeads;


/**
 * This class represents ECGLeads - CID3001
 */
public class ECGLeads_CID3001  
{
	
	/**
	 * 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 Coding Scheme Version
	 */
	private String strCodingSchemeVersion = null;
	
	/**
	 * Instantiates a new ECGLeads_CID3001 Template.
	 */
	public ECGLeads_CID3001() 
	{
		
	}
	
	/**
	 * Retrieves the value for CodeMeaning
	 * @return strCodeMeaning String value for CodeMeaning
	 */
	public String getCodeMeaning() 
	{
		return strCodeMeaning;
	}

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

	/**
	 * Retrieves the value for CodingSchemeDesignator
	 * @return strCodingSchemeDesignator String value for CodingSchemeDesignator
	 */
	public String getCodingSchemeDesignator()
	{
		return strCodingSchemeDesignator;
	}
	
	/**
	 * Retrieves the value for CodingSchemeVersion
	 * @return
	 */
	public String getCodingSchemeVersion() {
		return strCodingSchemeVersion;
	}
	
	/**
	 * Sets the Code Value according to Code Meaning.
	 * @param enumECGLeads Object of EnumCM_ECGLeads represents Code Meaning.
	 */
	private void setCodeValue(EnumCM_ECGLeads enumECGLeads)
	{
		switch(enumECGLeads)
		{
		case DEFIBRILLATOR_LEAD_ANTERIOR_LATERAL:
			this.strCodeValue = EnumCV_ECGLeads.DEFIBRILLATOR_LEAD_ANTERIOR_LATERAL_5_6_3_9_73.getValue();
			break;
		case EXTERNAL_PACING_LEAD_ANTERIOR_POSTERIOR:
			this.strCodeValue = EnumCV_ECGLeads.EXTERNAL_PACING_LEAD_ANTERIOR_POSTERIOR_5_6_3_9_74.getValue();
			break;
		case LEAD_A:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_A_5_6_3_9_27.getValue();
			break;
		case LEAD_A1:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_A1_5_6_3_9_75.getValue();
			break;
		case LEAD_A2:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_A2_5_6_3_9_76.getValue();
			break;
		case LEAD_A3:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_A3_5_6_3_9_77.getValue();
			break;
		case LEAD_A4:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_A4_5_6_3_9_78.getValue();
			break;
		case LEAD_A_ANTERIOR:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_A_ANTERIOR_5_6_3_9_71.getValue();
			break;
		case LEAD_A_CAL_ANTERIOR:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_A_CAL_ANTERIOR_5_6_3_9_84.getValue();
			break;
		case LEAD_A_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_A_CAL_5_6_3_9_57.getValue();
			break;
		case LEAD_AVF:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_AVF_5_6_3_9_64.getValue();
			break;
		case LEAD_AVL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_AVL_5_6_3_9_63.getValue();
			break;
		case LEAD_AVR:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_AVR_5_6_3_9_62.getValue();
			break;
		case LEAD_C:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_C_5_6_3_9_26.getValue();
			break;
		case LEAD_C_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_C_CAL_5_6_3_9_56.getValue();
			break;
		case LEAD_CC5:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_CC5_5_6_3_9_19.getValue();
			break;
		case LEAD_CC5_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_CC5_CAL_5_6_3_9_49.getValue();
			break;
		case LEAD_CM5:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_CM5_5_6_3_9_20.getValue();
			break;
		case LEAD_CM5_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_CM5_CAL_5_6_3_9_50.getValue();
			break;
		case LEAD_D_CAL_DORSAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_D_CAL_DORSAL_5_6_3_9_83.getValue();
			break;
		case LEAD_D_DORSAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_D_DORSAL_5_6_3_9_70.getValue();
			break;
		case LEAD_E:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_E_5_6_3_9_25.getValue();
			break;
		case LEAD_E_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_E_CAL_5_6_3_9_55.getValue();
			break;
		case LEAD_F:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_F_5_6_3_9_29.getValue();
			break;
		case LEAD_F_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_F_CAL_5_6_3_9_59.getValue();
			break;
		case LEAD_H:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_H_5_6_3_9_30.getValue();
			break;
		case LEAD_H_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_H_CAL_5_6_3_9_60.getValue();
			break;
		case LEAD_I_CAL_EINTHOVEN:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_I_CAL_EINTHOVEN_5_6_3_9_31.getValue();
			break;
		case LEAD_I_EINTHOVEN:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_I_EINTHOVEN_5_6_3_9_1.getValue();
			break;
		case LEAD_I_CAL_FRANK:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_I_CAL_FRANK_5_6_3_9_54.getValue();
			break;
		case LEAD_I_FRANK:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_I_FRANK_5_6_3_9_24.getValue();
			break;
		case LEAD_II:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_II_5_6_3_9_2.getValue();
			break;
		case LEAD_II_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_II_CAL_5_6_3_9_32.getValue();
			break;
		case LEAD_III:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_III_5_6_3_9_61.getValue();
			break;
		case LEAD_J_CAL_INFERIOR:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_J_CAL_INFERIOR_5_6_3_9_85.getValue();
			break;
		case LEAD_J_INFERIOR:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_J_INFERIOR_5_6_3_9_72.getValue();
			break;
		case LEAD_LEFT_ARM:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_LEFT_ARM_5_6_3_9_21.getValue();
			break;
		case LEAD_LEFT_ARM_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_LEFT_ARM_CAL_5_6_3_9_51.getValue();
			break;
		case LEAD_LEFT_LEG:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_LEFT_LEG_5_6_3_9_23.getValue();
			break;
		case LEAD_LEFT_LEG_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_LEFT_LEG_CAL_5_6_3_9_53.getValue();
			break;
		case LEAD_M:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_M_5_6_3_9_28.getValue();
			break;
		case LEAD_M_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_M_CAL_5_6_3_9_58.getValue();
			break;
		case LEAD_NEGATIVE_AVR:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_NEGATIVE_AVR_5_6_3_9_65.getValue();
			break;
		case LEAD_RIGHT_ARM:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_RIGHT_ARM_5_6_3_9_22.getValue();
			break;
		case LEAD_RIGHT_ARM_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_RIGHT_ARM_CAL_5_6_3_9_52.getValue();
			break;
		case LEAD_V1:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V1_5_6_3_9_3.getValue();
			break;
		case LEAD_V1_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V1_CAL_5_6_3_9_33.getValue();
			break;
		case LEAD_V2:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V2_5_6_3_9_4.getValue();
			break;
		case LEAD_V2_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V2_CAL_5_6_3_9_34.getValue();
			break;
		case LEAD_V2R_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V2R_CAL_5_6_3_9_40.getValue();
			break;
		case LEAD_V3:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V3_5_6_3_9_5.getValue();
			break;
		case LEAD_V2R:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V2R_5_6_3_9_10.getValue();
			break;
		case LEAD_V3_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V3_CAL_5_6_3_9_35.getValue();
			break;
		case LEAD_V3R:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V3R_5_6_3_9_11.getValue();
			break;
		case LEAD_V3R_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V3R_CAL_5_6_3_9_41.getValue();
			break;
		case LEAD_V4:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V4_5_6_3_9_6.getValue();
			break;
		case LEAD_V4_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V4_CAL_5_6_3_9_36.getValue();
			break;
		case LEAD_V4R:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V4R_5_6_3_9_12.getValue();
			break;
		case LEAD_V4R_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V4R_CAL_5_6_3_9_42.getValue();
			break;
		case LEAD_V5:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V5_5_6_3_9_7.getValue();
			break;
		case LEAD_V5_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V5_CAL_5_6_3_9_37.getValue();
			break;
		case LEAD_V5R:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V5R_5_6_3_9_13.getValue();
			break;
		case LEAD_V5R_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V5R_CAL_5_6_3_9_43.getValue();
			break;
		case LEAD_V6:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V6_5_6_3_9_8.getValue();
			break;
		case LEAD_V6_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V6_CAL_5_6_3_9_38.getValue();
			break;
		case LEAD_V6R:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V6R_5_6_3_9_14.getValue();
			break;
		case LEAD_V6R_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V6R_CAL_5_6_3_9_44.getValue();
			break;
		case LEAD_V7:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V7_5_6_3_9_9.getValue();
			break;
		case LEAD_V7_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V7_CAL_5_6_3_9_39.getValue();
			break;
		case LEAD_V7R:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V7R_5_6_3_9_15.getValue();
			break;
		case LEAD_V7R_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V7R_CAL_5_6_3_9_45.getValue();
			break;
		case LEAD_V8:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V8_5_6_3_9_66.getValue();
			break;
		case LEAD_V8_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V8_CAL_5_6_3_9_79.getValue();
			break;
		case LEAD_V8R:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V8R_5_6_3_9_68.getValue();
			break;
		case LEAD_V8R_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V8R_CAL_5_6_3_9_81.getValue();
			break;
		case LEAD_V9:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V9_5_6_3_9_67.getValue();
			break;
		case LEAD_V9_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V9_CAL_5_6_3_9_80.getValue();
			break;
		case LEAD_V9R:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V9R_5_6_3_9_69.getValue();
			break;
		case LEAD_V9R_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_V9R_CAL_5_6_3_9_82.getValue();
			break;
		case LEAD_X:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_X_5_6_3_9_16.getValue();
			break;
		case LEAD_X_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_X_CAL_5_6_3_9_46.getValue();
			break;
		case LEAD_Y:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_Y_5_6_3_9_17.getValue();
			break;
		case LEAD_Y_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_Y_CAL_5_6_3_9_47.getValue();
			break;
		case LEAD_Z:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_Z_5_6_3_9_18.getValue();
			break;
		case LEAD_Z_CAL:
			this.strCodeValue = EnumCV_ECGLeads.LEAD_Z_CAL_5_6_3_9_48.getValue();
			break;
		case UNSPECIFIED_LEAD:
			this.strCodeValue = EnumCV_ECGLeads.UNSPECIFIED_LEAD_5_6_3_9_0.getValue();
			break;
		}
	}
	
	/**
	 * Sets the value for ECG Leads
	 * @param enumProcedureActionValues Enum for ProcedureActionValues
	 */
	public void setECGLeads(EnumCM_ECGLeads enumECGLeads)
	{
		/**
		 * Retrieves the value for CodingSchemeDesignator, CodingSchemeVersion and Code Meaning and 
		 * sets the Code Value according to Code Meaning.
		 */
		this.strCodingSchemeDesignator = EnumCodingSchemeDesignator.SCPECG.getValue();
		this.strCodeMeaning = enumECGLeads.getValue();
		this.strCodingSchemeVersion = EnumCodingSchemeVersion.CSV_1_3.getValue();
		
		/**
		 * set code Value
		 */
		setCodeValue(enumECGLeads);
	}
}
