/*******************************************************************************
 *  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.dicomsnomedmap.EnumDICOMSNOMEDMap;
import cdac.medinfo.sdk.dcm30_04.templates.enums.EnumCodingSchemeDesignator;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_RadiographicContrastAgent;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_RadiographicContrastAgent;

/**
 * This class represents RadiographicContrastAgent - CID12
 */
public class RadiographicContrastAgent_CID12 {

	/**
	 * The Code Value for template.
	 */
	private String strCodeValue = null;

	/**
	 * The Code Meaning for template.
	 */
	private String strCodeMeaning = null;

	/**
	 * The SNOMED CT ID for template.
	 */
	private String strSNOMEDCTID = null;

	/**
	 * The Coding Scheme Designator for template.
	 */
	private String strCodingSchemeDesignator;

	/**
	 * 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;
	}

	/**
	 * Instantiates a new RadiographicContrastAgent_CID12 Template
	 */
	public RadiographicContrastAgent_CID12() {

	}

	/**
	 * Sets the Code Value according to Code Meaning.
	 * 
	 * @param enumRadiographicContrastAgent
	 *            Object of EnumCM_RadiographicContrastAgent represents Code
	 *            Meaning.
	 */
	private void setCodeValue(
			EnumCM_RadiographicContrastAgent enumRadiographicContrastAgent) {
		switch (enumRadiographicContrastAgent) {
		case AIR:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.AIR_A_80230
					.getValue();
			break;
		case OXYGEN:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.OXYGEN_C_10110
					.getValue();
			break;
		case WATER:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.WATER_C_10120
					.getValue();
			break;
		case CARBON_DIOXIDE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.CARBON_DIOXIDE_C_10520
					.getValue();
			break;
		case BARIUM_SULFATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.BARIUM_SULFATE_C_12217
					.getValue();
			break;
		case GADOLINIUM:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.GADOLINIUM_C_17800
					.getValue();
			break;
		case CONTRAST_AGENT:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.CONTRAST_AGENT_C_B0300
					.getValue();
			break;
		case RADIOPAQUE_MEDIUM:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.RADIOPAQUE_MEDIUM_C_B0310
					.getValue();
			break;
		case NON_RADIOPAQUE_MEDIUM:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.NON_RADIOPAQUE_MEDIUM_C_B0312
					.getValue();
			break;
		case BUNAMIODYL:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.BUNAMIODYL_C_B0315
					.getValue();
			break;
		case CHLORIODIZED_OIL:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.CHLORIODIZED_OIL_C_B0316
					.getValue();
			break;
		case DIATRIZOATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.DIATRIZOATE_C_B0317
					.getValue();
			break;
		case IODIPAMIDE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IODIPAMIDE_C_B0318
					.getValue();
			break;
		case IODIZED_OIL:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IODIZED_OIL_C_B0319
					.getValue();
			break;
		case IODOALPHIONIC_ACID:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IODOALPHIONIC_ACID_C_B0323
					.getValue();
			break;
		case MEGLUMINE_IODIPAMIDE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.MEGLUMINE_IODIPAMIDE_C_B0324
					.getValue();
			break;
		case SODIUM_IODIPAMIDE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.SODIUM_IODIPAMIDE_C_B0325
					.getValue();
			break;
		case IODAMIDE_MEGLUMINE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IODAMIDE_MEGLUMINE_C_B0326
					.getValue();
			break;
		case IODOPYRACET:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IODOPYRACET_C_B0327
					.getValue();
			break;
		case IOPANOIC_ACID:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IOPANOIC_ACID_C_B0328
					.getValue();
			break;
		case IOPHENDYLATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IOPHENDYLATE_C_B0331
					.getValue();
			break;
		case IOPHENOXIC_ACID:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IOPHENOXIC_ACID_C_B0333
					.getValue();
			break;
		case IPODATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IPODATE_C_B0335
					.getValue();
			break;
		case PROPYLIODONE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.PROPYLIODONE_C_B0337
					.getValue();
			break;
		case SODIUM_ACETRIZOATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.SODIUM_ACETRIZOATE_C_B0338
					.getValue();
			break;
		case IODOPHTHALEIN:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IODOPHTHALEIN_C_B0341
					.getValue();
			break;
		case SODIUM_DIPROTRIZOATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.SODIUM_DIPROTRIZOATE_C_B0342
					.getValue();
			break;
		case SODIUM_IODOMETHAMATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.SODIUM_IODOMETHAMATE_C_B0344
					.getValue();
			break;
		case MEGLUMINE_DIATRIZOATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.MEGLUMINE_DIATRIZOATE_C_B0345
					.getValue();
			break;
		case SODIUM_DIATRIZOATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.SODIUM_DIATRIZOATE_C_B0347
					.getValue();
			break;
		case METRIZAMIDE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.METRIZAMIDE_C_B0348
					.getValue();
			break;
		case SODIUM_TYROPANATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.SODIUM_TYROPANATE_C_B0349
					.getValue();
			break;
		case IONIC_IODINATED_CONTRAST_AGENT:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IONIC_IODINATED_CONTRAST_AGENT_C_B0301
					.getValue();
			break;
		case NON_IONIC_IODINATED_CONTRAST_AGENT:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.NON_IONIC_IODINATED_CONTRAST_AGENT_C_B0302
					.getValue();
			break;
		case IOHEXOL:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IOHEXOL_C_B0322
					.getValue();
			break;
		case IODIXANOL:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IODIXANOL_C_B03BC
					.getValue();
			break;
		case GADODIAMIDE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.GADODIAMIDE_C_B03C3
					.getValue();
			break;
		case MANGAFODIPIR_TRISODIUM:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.MANGAFODIPIR_TRISODIUM_C_B05A3
					.getValue();
			break;
		case IOTHALAMATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IOTHALAMATE_C_B038B
					.getValue();
			break;
		case IOXAGLATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IOXAGLATE_C_B0339
					.getValue();
			break;
		case METRIZOATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.METRIZOATE_C_B03C9
					.getValue();
			break;
		case DIMEGLUMINE_GADOPENTETATE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.DIMEGLUMINE_GADOPENTETATE_C_B03AA
					.getValue();
			break;
		case IOPAMIDOL:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IOPAMIDOL_C_B0329
					.getValue();
			break;
		case IOVERSOL:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IOVERSOL_C_B0332
					.getValue();
			break;
		case IOPROMIDE:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IOPROMIDE_C_B03H2
					.getValue();
			break;
		case IOXILAN:
			this.strCodeValue = EnumCV_RadiographicContrastAgent.IOXILAN_C_B0303
					.getValue();
			break;

		}
	}

	/**
	 * Sets the SNOMED-CT ID.
	 * 
	 * @param enumNuclearCardiologyProtocols
	 *            Object of EnumCM_NuclearCardiologyProtocols represents Code
	 *            Meaning.
	 */
	private void setSNOMEDCTID(EnumCM_RadiographicContrastAgent enumRadiographicContrastAgent) 
	{
		switch (enumRadiographicContrastAgent) {
		case AIR:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.AIR.getSNOMEDCTID();
			break;
		case OXYGEN:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.OXYGEN.getSNOMEDCTID();
			break;
		case WATER:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.WATER.getSNOMEDCTID();
			break;
		case CARBON_DIOXIDE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.CARBON_DIOXIDE
					.getSNOMEDCTID();
			break;
		case BARIUM_SULFATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.BARIUM_SULFATE
					.getSNOMEDCTID();
			break;
		case GADOLINIUM:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.GADOLINIUM.getSNOMEDCTID();
			break;
		case CONTRAST_AGENT:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.CONTRAST_AGENT
					.getSNOMEDCTID();
			break;
		case RADIOPAQUE_MEDIUM:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.RADIOPAQUE_MEDIUM
					.getSNOMEDCTID();
			break;
		case NON_RADIOPAQUE_MEDIUM:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.NON_RADIOPAQUE_MEDIUM
					.getSNOMEDCTID();
			break;
		case BUNAMIODYL:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.BUNAMIODYL.getSNOMEDCTID();
			break;
		case CHLORIODIZED_OIL:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.CHLORIODIZED_OIL
					.getSNOMEDCTID();
			break;
		case DIATRIZOATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.DIATRIZOATE.getSNOMEDCTID();
			break;
		case IODIPAMIDE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IODIPAMIDE.getSNOMEDCTID();
			break;
		case IODIZED_OIL:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IODIZED_OIL.getSNOMEDCTID();
			break;
		case IODOALPHIONIC_ACID:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IODOALPHIONIC_ACID
					.getSNOMEDCTID();
			break;
		case MEGLUMINE_IODIPAMIDE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.MEGLUMINE_IODIPAMIDE
					.getSNOMEDCTID();
			break;
		case SODIUM_IODIPAMIDE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.SODIUM_IODIPAMIDE
					.getSNOMEDCTID();
			break;
		case IODAMIDE_MEGLUMINE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IODAMIDE_MEGLUMINE
					.getSNOMEDCTID();
			break;
		case IODOPYRACET:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IODOPYRACET.getSNOMEDCTID();
			break;
		case IOPANOIC_ACID:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IOPANOIC_ACID
					.getSNOMEDCTID();
			break;
		case IOPHENDYLATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IOPHENDYLATE
					.getSNOMEDCTID();
			break;
		case IOPHENOXIC_ACID:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IOPHENOXIC_ACID
					.getSNOMEDCTID();
			break;
		case IPODATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IPODATE.getSNOMEDCTID();
			break;
		case PROPYLIODONE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.PROPYLIODONE
					.getSNOMEDCTID();
			break;
		case SODIUM_ACETRIZOATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.SODIUM_ACETRIZOATE
					.getSNOMEDCTID();
			break;
		case IODOPHTHALEIN:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IODOPHTHALEIN
					.getSNOMEDCTID();
			break;
		case SODIUM_DIPROTRIZOATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.SODIUM_DIPROTRIZOATE
					.getSNOMEDCTID();
			break;
		case SODIUM_IODOMETHAMATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.SODIUM_IODOMETHAMATE
					.getSNOMEDCTID();
			break;
		case MEGLUMINE_DIATRIZOATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.MEGLUMINE_DIATRIZOATE
					.getSNOMEDCTID();
			break;
		case SODIUM_DIATRIZOATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.SODIUM_DIATRIZOATE
					.getSNOMEDCTID();
			break;
		case METRIZAMIDE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.METRIZAMIDE.getSNOMEDCTID();
			break;
		case SODIUM_TYROPANATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.SODIUM_TYROPANATE
					.getSNOMEDCTID();
			break;
		case IONIC_IODINATED_CONTRAST_AGENT:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IONIC_IODINATED_CONTRAST_AGENT
					.getSNOMEDCTID();
			break;
		case NON_IONIC_IODINATED_CONTRAST_AGENT:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.NON_IONIC_IODINATED_CONTRAST_AGENT
					.getSNOMEDCTID();
			break;
		case IOHEXOL:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IOHEXOL.getSNOMEDCTID();
			break;
		case IODIXANOL:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IODIXANOL.getSNOMEDCTID();
			break;
		case GADODIAMIDE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.GADODIAMIDE.getSNOMEDCTID();
			break;
		case MANGAFODIPIR_TRISODIUM:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.MANGAFODIPIR_TRISODIUM
					.getSNOMEDCTID();
			break;
		case IOTHALAMATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IOTHALAMATE.getSNOMEDCTID();
			break;
		case IOXAGLATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IOXAGLATE.getSNOMEDCTID();
			break;
		case METRIZOATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.METRIZOATE.getSNOMEDCTID();
			break;
		case DIMEGLUMINE_GADOPENTETATE:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.DIMEGLUMINE_GADOPENTETATE
					.getSNOMEDCTID();
			break;
		case IOPAMIDOL:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IOPAMIDOL.getSNOMEDCTID();
			break;
		case IOVERSOL:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IOVERSOL.getSNOMEDCTID();
			break;
		case IOXILAN:
			this.strSNOMEDCTID = EnumDICOMSNOMEDMap.IOXILAN.getSNOMEDCTID();
			break;

		}
	}

	/**
	 * Sets the value for Severity
	 * 
	 * @param enumSeverity
	 *            Object of EnumSeverity.
	 */
	public void setRadiographicContrastAgent(
			EnumCM_RadiographicContrastAgent enumRadiographicContrastAgent) {
		this.strCodeMeaning = enumRadiographicContrastAgent.getValue();
		this.strCodingSchemeDesignator = EnumCodingSchemeDesignator.SRT
				.getValue();
		setCodeValue(enumRadiographicContrastAgent);
		setSNOMEDCTID(enumRadiographicContrastAgent);
	}
}
