/*******************************************************************************
 *  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_InterventionalDrug;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_InterventionalDrug;
import cdac.medinfo.sdk.dcm30_04.templates.dicomsnomedmap.EnumDICOMSNOMEDMap;

/**
 * This class represents InterventionalDrug CID10
 */
public class InterventionalDrug_CID10 {

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

	}

	/**
	 * 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 enumInterventionalDrug Object of EnumCM_InterventionalDrug represents Code Meaning.
	 */
	private void setCodeValue(EnumCM_InterventionalDrug enumInterventionalDrug)
	{
		switch(enumInterventionalDrug)
		{
		case ETHANOL: this.strCodeValue =EnumCV_InterventionalDrug.ETHANOL_C_21005.getValue(); break;
		case METHYLENE_BLUE: this.strCodeValue =EnumCV_InterventionalDrug.METHYLENE_BLUE_C_22947.getValue(); break;
		case ANTIHISTAMINE: this.strCodeValue =EnumCV_InterventionalDrug.ANTIHISTAMINE_C_51000.getValue(); break;
		case ATROPINE: this.strCodeValue =EnumCV_InterventionalDrug.ATROPINE_C_67770.getValue(); break;
		case DIURETIC: this.strCodeValue =EnumCV_InterventionalDrug.DIURETIC_C_72000.getValue(); break;
		case ANTIARRHYTHMIC_DRUG: this.strCodeValue =EnumCV_InterventionalDrug.ANTIARRHYTHMIC_DRUG_C_80110.getValue(); break;
		case INOTROPIC_AGENT: this.strCodeValue =EnumCV_InterventionalDrug.INOTROPIC_AGENT_C_80120.getValue(); break;
		case CARDIOTONIC_DRUG: this.strCodeValue =EnumCV_InterventionalDrug.CARDIOTONIC_DRUG_C_80123.getValue(); break;
		case CARDIAC_DEPRESSANT_DRUG: this.strCodeValue =EnumCV_InterventionalDrug.CARDIAC_DEPRESSANT_DRUG_C_80125.getValue(); break;
		case CARDIAC_ADRENERGIC_BLOCKING_AGENT: this.strCodeValue =EnumCV_InterventionalDrug.CARDIAC_ADRENERGIC_BLOCKING_AGENT_C_80130.getValue(); break;
		case ALPHA_ADRENERGIC_BLOCKING_AGENT: this.strCodeValue =EnumCV_InterventionalDrug.ALPHA_ADRENERGIC_BLOCKING_AGENT_C_80131.getValue(); break;
		case BETA_ADRENERGIC_BLOCKING_AGENT: this.strCodeValue =EnumCV_InterventionalDrug.BETA_ADRENERGIC_BLOCKING_AGENT_C_80135.getValue(); break;
		case DIGOXIN: this.strCodeValue =EnumCV_InterventionalDrug.DIGOXIN_C_80330.getValue(); break;
		case LIDOCAINE: this.strCodeValue =EnumCV_InterventionalDrug.LIDOCAINE_C_80400.getValue(); break;
		case LIDOCAINE_HYDROCHLORIDE: this.strCodeValue =EnumCV_InterventionalDrug.LIDOCAINE_HYDROCHLORIDE_C_80401.getValue(); break;
		case NIFEDIPINE: this.strCodeValue =EnumCV_InterventionalDrug.NIFEDIPINE_C_80430.getValue(); break;
		case PROPRANOLOL: this.strCodeValue =EnumCV_InterventionalDrug.PROPRANOLOL_C_80450.getValue(); break;
		case QUINIDINE: this.strCodeValue =EnumCV_InterventionalDrug.QUINIDINE_C_80460.getValue(); break;
		case VERAPAMIL: this.strCodeValue =EnumCV_InterventionalDrug.VERAPAMIL_C_80490.getValue(); break;
		case HYPOTENSIVE_AGENT: this.strCodeValue =EnumCV_InterventionalDrug.HYPOTENSIVE_AGENT_C_81100.getValue(); break;
		case CENTRALLY_ACTING_HYPOTENSIVE_AGENT: this.strCodeValue =EnumCV_InterventionalDrug.CENTRALLY_ACTING_HYPOTENSIVE_AGENT_C_81120.getValue(); break;
		case NITROGLYCERIN: this.strCodeValue =EnumCV_InterventionalDrug.NITROGLYCERIN_C_81560.getValue(); break;
		case GLUCAGON_PREPARATION: this.strCodeValue =EnumCV_InterventionalDrug.GLUCAGON_PREPARATION_C_A2010.getValue(); break;
		case ANTICOAGULANT: this.strCodeValue =EnumCV_InterventionalDrug.ANTICOAGULANT_C_A6500.getValue(); break;
		case WARFARIN: this.strCodeValue =EnumCV_InterventionalDrug.WARFARIN_C_A6530.getValue(); break;
		case HEPARIN: this.strCodeValue =EnumCV_InterventionalDrug.HEPARIN_C_A6540.getValue(); break;
		case ANTI_HEPARIN_AGENT: this.strCodeValue =EnumCV_InterventionalDrug.ANTI_HEPARIN_AGENT_C_A6700.getValue(); break;
		case PROTAMINE_SULFATE: this.strCodeValue =EnumCV_InterventionalDrug.PROTAMINE_SULFATE_C_A6710.getValue(); break;
		case COAGULANT: this.strCodeValue =EnumCV_InterventionalDrug.COAGULANT_C_A6900.getValue(); break;
		case INJECTABLE_FIBRINOGEN: this.strCodeValue =EnumCV_InterventionalDrug.INJECTABLE_FIBRINOGEN_C_A6920.getValue(); break;
		case HEMOSTATIC_AGENT: this.strCodeValue =EnumCV_InterventionalDrug.HEMOSTATIC_AGENT_C_A7000.getValue(); break;
		case ASTRINGENT_DRUG: this.strCodeValue =EnumCV_InterventionalDrug.ASTRINGENT_DRUG_C_A7001.getValue(); break;
		case ANTIHEMOPHILIC_FACTOR_PREPARATION: this.strCodeValue =EnumCV_InterventionalDrug.ANTIHEMOPHILIC_FACTOR_PREPARATION_C_A7021.getValue(); break;
		case THROMBIN_PREPARATION: this.strCodeValue =EnumCV_InterventionalDrug.THROMBIN_PREPARATION_C_A7040.getValue(); break;
		case THROMBOPLASTIN_PREPARATION: this.strCodeValue =EnumCV_InterventionalDrug.THROMBOPLASTIN_PREPARATION_C_A7042.getValue(); break;
		case DEXTRAN: this.strCodeValue =EnumCV_InterventionalDrug.DEXTRAN_C_A7220.getValue(); break;
		case THROMBOLYTIC_AGENT: this.strCodeValue =EnumCV_InterventionalDrug.THROMBOLYTIC_AGENT_C_A7400.getValue(); break;
		case STREPTOKINASE_PREPARATION: this.strCodeValue =EnumCV_InterventionalDrug.STREPTOKINASE_PREPARATION_C_A7420.getValue(); break;
		case UROKINASE_PREPARATION: this.strCodeValue =EnumCV_InterventionalDrug.UROKINASE_PREPARATION_C_A7430.getValue(); break;
		case INJECTABLE_FIBRINOLYSIN: this.strCodeValue =EnumCV_InterventionalDrug.INJECTABLE_FIBRINOLYSIN_C_A7440.getValue(); break;
		case PRISCOLINE_HYDROCHOLORIDE_AMPULS: this.strCodeValue =EnumCV_InterventionalDrug.PRISCOLINE_HYDROCHOLORIDE_AMPULS_C_C2318.getValue(); break;
		case EPINEPHRINE: this.strCodeValue =EnumCV_InterventionalDrug.EPINEPHRINE_F_B2110.getValue(); break;
		}
	}

	/**
	 * Sets the SNOMED-CT ID.
	 * @param enumInterventionalDrug Object of EnumCM_InterventionalDrug represents Code Meaning.
	 */
	private void setSNOMEDCTID(EnumCM_InterventionalDrug enumInterventionalDrug)
	{
		switch(enumInterventionalDrug)
		{
		case ETHANOL : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.ETHANOL.getSNOMEDCTID(); break;
		case METHYLENE_BLUE : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.METHYLENE_BLUE.getSNOMEDCTID(); break;
		case ANTIHISTAMINE : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.ANTIHISTAMINE.getSNOMEDCTID(); break;
		case ATROPINE : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.ATROPINE.getSNOMEDCTID(); break;
		case DIURETIC : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.DIURETIC.getSNOMEDCTID(); break;
		case ANTIARRHYTHMIC_DRUG : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.ANTIARRHYTHMIC_DRUG.getSNOMEDCTID(); break;
		case INOTROPIC_AGENT : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.INOTROPIC_AGENT.getSNOMEDCTID(); break;
		case CARDIOTONIC_DRUG : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.CARDIOTONIC_DRUG.getSNOMEDCTID(); break;
		case CARDIAC_DEPRESSANT_DRUG : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.CARDIAC_DEPRESSANT_DRUG.getSNOMEDCTID(); break;
		case CARDIAC_ADRENERGIC_BLOCKING_AGENT : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.CARDIAC_ADRENERGIC_BLOCKING_AGENT.getSNOMEDCTID(); break;
		case ALPHA_ADRENERGIC_BLOCKING_AGENT : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.ALPHA_ADRENERGIC_BLOCKING_AGENT.getSNOMEDCTID(); break;
		case BETA_ADRENERGIC_BLOCKING_AGENT : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.BETA_ADRENERGIC_BLOCKING_AGENT.getSNOMEDCTID(); break;
		case DIGOXIN : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.DIGOXIN.getSNOMEDCTID(); break;
		case LIDOCAINE : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.LIDOCAINE.getSNOMEDCTID(); break;
		case LIDOCAINE_HYDROCHLORIDE : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.LIDOCAINE_HYDROCHLORIDE.getSNOMEDCTID(); break;
		case NIFEDIPINE : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.NIFEDIPINE.getSNOMEDCTID(); break;
		case PROPRANOLOL : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.PROPRANOLOL.getSNOMEDCTID(); break;
		case QUINIDINE : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.QUINIDINE.getSNOMEDCTID(); break;
		case VERAPAMIL : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.VERAPAMIL.getSNOMEDCTID(); break;
		case HYPOTENSIVE_AGENT : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.HYPOTENSIVE_AGENT.getSNOMEDCTID(); break;
		case CENTRALLY_ACTING_HYPOTENSIVE_AGENT : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.CENTRALLY_ACTING_HYPOTENSIVE_AGENT.getSNOMEDCTID(); break;
		case NITROGLYCERIN : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.NITROGLYCERIN.getSNOMEDCTID(); break;
		case GLUCAGON_PREPARATION : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.GLUCAGON_PREPARATION.getSNOMEDCTID(); break;
		case ANTICOAGULANT : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.ANTICOAGULANT.getSNOMEDCTID(); break;
		case WARFARIN : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.WARFARIN.getSNOMEDCTID(); break;
		case HEPARIN : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.HEPARIN.getSNOMEDCTID(); break;
		case ANTI_HEPARIN_AGENT : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.ANTI_HEPARIN_AGENT.getSNOMEDCTID(); break;
		case PROTAMINE_SULFATE : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.PROTAMINE_SULFATE.getSNOMEDCTID(); break;
		case COAGULANT : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.COAGULANT.getSNOMEDCTID(); break;
		case INJECTABLE_FIBRINOGEN : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.INJECTABLE_FIBRINOGEN.getSNOMEDCTID(); break;
		case HEMOSTATIC_AGENT : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.HEMOSTATIC_AGENT.getSNOMEDCTID(); break;
		case ASTRINGENT_DRUG : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.ASTRINGENT_DRUG.getSNOMEDCTID(); break;
		case ANTIHEMOPHILIC_FACTOR_PREPARATION : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.ANTIHEMOPHILIC_FACTOR_PREPARATION.getSNOMEDCTID(); break;
		case THROMBIN_PREPARATION : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.THROMBIN_PREPARATION.getSNOMEDCTID(); break;
		case THROMBOPLASTIN_PREPARATION : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.THROMBOPLASTIN_PREPARATION.getSNOMEDCTID(); break;
		case DEXTRAN : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.DEXTRAN.getSNOMEDCTID(); break;
		case THROMBOLYTIC_AGENT : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.THROMBOLYTIC_AGENT.getSNOMEDCTID(); break;
		case STREPTOKINASE_PREPARATION : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.STREPTOKINASE_PREPARATION.getSNOMEDCTID(); break;
		case UROKINASE_PREPARATION : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.UROKINASE_PREPARATION.getSNOMEDCTID(); break;
		case INJECTABLE_FIBRINOLYSIN : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.INJECTABLE_FIBRINOLYSIN.getSNOMEDCTID(); break;
		case PRISCOLINE_HYDROCHOLORIDE_AMPULS : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.PRISCOLINE_HYDROCHOLORIDE_AMPULS.getSNOMEDCTID(); break;
		case EPINEPHRINE : this.strSNOMEDCTID =EnumDICOMSNOMEDMap.EPINEPHRINE.getSNOMEDCTID(); break;
		}
	}

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

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