/*******************************************************************************
 *  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_CardiacRhythms;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_CardiacRhythms;


/**
 * This class represents CardiacRhythms - CID3415
 */
public class CardiacRhythms_CID3415  
{
	
	/**
	 * 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;
	
	
	/**
	 * Instantiates a new CardiacRhythms_CID3415 Template.
	 */
	public CardiacRhythms_CID3415() 
	{
		
	}
	
	/**
	 * 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;
	}
	
	
	/**
	 * Sets the Code Value according to Code Meaning.
	 * @param enumCardiacRhythms Object of EnumCM_CardiacRhythms represents Code Meaning.
	 */
	private void setCodeValue(EnumCM_CardiacRhythms enumCardiacRhythms)
	{
		switch(enumCardiacRhythms)
		{
		case ACCELERATED_ATRIAL_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.ACCELERATED_ATRIAL_RHYTHM_D_3_2_6_ACAR.getValue();
			break;
		case ACCELERATED_JUNCTIONAL_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.ACCELERATED_JUNCTIONAL_RHYTHM_D_3_2_6_ACJR.getValue();
			break;
		case ACCELERATED_VENTRICULAR_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.ACCELERATED_VENTRICULAR_RHYTHM_D_3_2_6_ACVR.getValue();
			break;
		case ARRHYTHMIA_ORIGIN_UNKNOWN:
			this.strCodeValue = EnumCV_CardiacRhythms.ARRHYTHMIA_ORIGIN_UNKNOWN_D_3_2_6_ARRHY.getValue();
			break;
		case ASYSTOLE:
			this.strCodeValue = EnumCV_CardiacRhythms.ASYSTOLE_D_3_2_6_ASYST.getValue();
			break;
		case ATRIAL_FIBRILLATION:
			this.strCodeValue = EnumCV_CardiacRhythms.ATRIAL_FIBRILLATION_D_3_2_6_AFIB.getValue();
			break;
		case ATRIAL_FLUTTER:
			this.strCodeValue = EnumCV_CardiacRhythms.ATRIAL_FLUTTER_D_3_2_6_AFLT.getValue();
			break;
		case ATRIAL_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.ATRIAL_RHYTHM_D_3_2_6_ARHYT.getValue();
			break;
		case ATRIAL_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.ATRIAL_TACHYCARDIA_D_3_2_6_ATACH.getValue();
			break;
		case ATRIOVENTRICULAR_NODAL_RE_ENTRANT_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.ATRIOVENTRICULAR_NODAL_RE_ENTRANT_TACHYCARDIA_D_3_2_6_AVNRT.getValue();
			break;
		case ATRIOVENTRICULAR_RECIPROCATING_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.ATRIOVENTRICULAR_RECIPROCATING_TACHYCARDIA_D_3_2_6_AVRT.getValue();
			break;
		case AV_JUNCTIONAL_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.AV_JUNCTIONAL_RHYTHM_D_3_2_6_AVJR.getValue();
			break;
		case BRADYCARDIA_ORIGIN_UNKNOWN_OR_NOT_SPECIFIED:
			this.strCodeValue = EnumCV_CardiacRhythms.BRADYCARDIA_ORIGIN_UNKNOWN_OR_NOT_SPECIFIED_D_3_2_6_BRADO.getValue();
			break;
		case ECTOPIC_ATRIAL_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.ECTOPIC_ATRIAL_RHYTHM_D_3_2_6_EAR.getValue();
			break;
		case EXTREME_BRADYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.EXTREME_BRADYCARDIA_D_3_2_6_EBRAD.getValue();
			break;
		case EXTREME_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.EXTREME_TACHYCARDIA_D_3_2_6_ETACH.getValue();
			break;
		case IDIOVENTRICULAR_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.IDIOVENTRICULAR_RHYTHM_D_3_2_6_IDIOR.getValue();
			break;
		case IRREGULAR_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.IRREGULAR_RHYTHM_D_3_2_6_IRREG.getValue();
			break;
		case JUNCTIONAL_BRADYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.JUNCTIONAL_BRADYCARDIA_D_3_2_6_JBRAD.getValue();
			break;
		case JUNCTIONAL_ESCAPE_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.JUNCTIONAL_ESCAPE_RHYTHM_D_3_2_6_JESCR.getValue();
			break;
		case JUNCTIONAL_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.JUNCTIONAL_RHYTHM_D_3_2_6_JRHYT.getValue();
			break;
		case JUNCTIONAL_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.JUNCTIONAL_TACHYCARDIA_D_3_2_6_JTACH.getValue();
			break;
		case LEFT_ATRIAL_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.LEFT_ATRIAL_RHYTHM_D_3_2_6_LAR.getValue();
			break;
		case LOW_RIGHT_ATRIAL_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.LOW_RIGHT_ATRIAL_RHYTHM_D_3_2_6_RAR.getValue();
			break;
		case LOWN_GANONG_LEVINE_SYNDROME:
			this.strCodeValue = EnumCV_CardiacRhythms.LOWN_GANONG_LEVINE_SYNDROME_D_3_2_6_LGL.getValue();
			break;
		case MARKED_SINUS_ARRHYTHMIA:
			this.strCodeValue = EnumCV_CardiacRhythms.MARKED_SINUS_ARRHYTHMIA_D_3_2_6_MSAR.getValue();
			break;
		case MULTIFOCAL_ATRIAL_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.MULTIFOCAL_ATRIAL_RHYTHM_D_3_2_6_MAR.getValue();
			break;
		case MULTIFOCAL_ATRIAL_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.MULTIFOCAL_ATRIAL_TACHYCARDIA_D_3_2_6_MFAT.getValue();
			break;
		case MULTIFOCAL_TACHYCARDIA_SUPRAVENTRICULAR_OR_VENTRICULAR:
			this.strCodeValue = EnumCV_CardiacRhythms.MULTIFOCAL_TACHYCARDIA_SUPRAVENTRICULAR_OR_VENTRICULAR_D_3_2_6_MTACH.getValue();
			break;
		case NARROW_QRS_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.NARROW_QRS_TACHYCARDIA_D_3_2_6_NQTAC.getValue();
			break;
		case NODAL_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.NODAL_RHYTHM_D_3_2_6_NODRH.getValue();
			break;
		case NON_SUSTAINED_VENTRICULAR_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.NON_SUSTAINED_VENTRICULAR_TACHYCARDIA_D_3_2_6_NSVT.getValue();
			break;
		case NORMAL_SINUS_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.NORMAL_SINUS_RHYTHM_D_3_2_6_NSR.getValue();
			break;
		case PAROXYSMAL_ATRIAL_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.PAROXYSMAL_ATRIAL_TACHYCARDIA_D_3_2_6_PAT.getValue();
			break;
		case PAROXYSMAL_SUPRAVENTRICULAR_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.PAROXYSMAL_SUPRAVENTRICULAR_TACHYCARDIA_D_3_2_6_PSVT.getValue();
			break;
		case REGULAR_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.REGULAR_RHYTHM_D_3_2_6_REGRH.getValue();
			break;
		case RUN_OF_ATRIAL_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.RUN_OF_ATRIAL_TACHYCARDIA_D_3_2_6_RATAC.getValue();
			break;
		case RUN_OF_JUNCTIONAL_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.RUN_OF_JUNCTIONAL_TACHYCARDIA_D_3_2_6_RJTAC.getValue();
			break;
		case RUN_OF_VENTRICULAR_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.RUN_OF_VENTRICULAR_TACHYCARDIA_D_3_2_6_RVTAC.getValue();
			break;
		case SHORT_PR_INTERVAL:
			this.strCodeValue = EnumCV_CardiacRhythms.SHORT_PR_INTERVAL_D_3_2_6_SHTPR.getValue();
			break;
		case SINUS_ARRHYTHMIA:
			this.strCodeValue = EnumCV_CardiacRhythms.SINUS_ARRHYTHMIA_D_3_2_6_SARRH.getValue();
			break;
		case SINUS_BRADYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.SINUS_BRADYCARDIA_D_3_2_6_SBRAD.getValue();
			break;
		case SINUS_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.SINUS_RHYTHM_D_3_2_6_SR.getValue();
			break;
		case SINUS_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.SINUS_TACHYCARDIA_D_3_2_6_STACH.getValue();
			break;
		case SUPRAVENTRICULAR_ARRHYTHMIA:
			this.strCodeValue = EnumCV_CardiacRhythms.SUPRAVENTRICULAR_ARRHYTHMIA_D_3_2_6_SVARR.getValue();
			break;
		case SUPRAVENTRICULAR_BRADYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.SUPRAVENTRICULAR_BRADYCARDIA_D_3_2_6_SVBRA.getValue();
			break;
		case SUPRAVENTRICULAR_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.SUPRAVENTRICULAR_RHYTHM_D_3_2_6_SVRHY.getValue();
			break;
		case SUPRAVENTRICULAR_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.SUPRAVENTRICULAR_TACHYCARDIA_D_3_2_6_SVTAC.getValue();
			break;
		case SUSTAINED_VENTRICULAR_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.SUSTAINED_VENTRICULAR_TACHYCARDIA_D_3_2_6_SVT.getValue();
			break;
		case TORSADE_DES_POINTES_VENTRICULAR_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.TORSADE_DES_POINTES_VENTRICULAR_TACHYCARDIA_D_3_2_6_TORSA.getValue();
			break;
		case TACHYCARDIA_ORIGIN_UNKNOWN_OR_NOT_SPECIFIED:
			this.strCodeValue = EnumCV_CardiacRhythms.TACHYCARDIA_ORIGIN_UNKNOWN_OR_NOT_SPECIFIED_D_3_2_6_TACHO.getValue();
			break;
		case UNDETERMINED_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.UNDETERMINED_RHYTHM_D_3_2_6_UNRHY.getValue();
			break;
		case VENTRICULAR_ESCAPE_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.VENTRICULAR_ESCAPE_RHYTHM_D_3_2_6_VESCR.getValue();
			break;
		case VENTRICULAR_FIBRILLATION:
			this.strCodeValue = EnumCV_CardiacRhythms.VENTRICULAR_FIBRILLATION_D_3_2_6_VFIB.getValue();
			break;
		case VENTRICULAR_FLUTTER:
			this.strCodeValue = EnumCV_CardiacRhythms.VENTRICULAR_FLUTTER_D_3_2_6_VFLT.getValue();
			break;
		case VENTRICULAR_RHYTHM:
			this.strCodeValue = EnumCV_CardiacRhythms.VENTRICULAR_RHYTHM_D_3_2_6_VRHYT.getValue();
			break;
		case VENTRICULAR_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.VENTRICULAR_TACHYCARDIA_D_3_2_6_VTACH.getValue();
			break;
		case WIDE_QRS_TACHYCARDIA:
			this.strCodeValue = EnumCV_CardiacRhythms.WIDE_QRS_TACHYCARDIA_D_3_2_6_WQTAC.getValue();
			break;
		}
	}
	
	/**
	 * Sets the value for Cardiac Rhythms
	 * @param enumCardiacRhythms Enum for CardiacRhythms
	 */
	public void setCardiacRhythms(EnumCM_CardiacRhythms enumCardiacRhythms)
	{
		/**
		 * Retrieves the value for CodingSchemeDesignator and Code Meaning and 
		 * sets the Code Value according to Code Meaning.
		 */
		this.strCodingSchemeDesignator = EnumCodingSchemeDesignator.SCPECG.getValue();
		this.strCodeMeaning = enumCardiacRhythms.getValue();
		
		/**
		 * set code Value
		 */
		setCodeValue(enumCardiacRhythms);
	}
}
