/*******************************************************************************
 *  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.EnumRadiologySNOMEDMap;
import cdac.medinfo.sdk.dcm30_04.templates.enums.EnumCodingSchemeDesignator;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_PETRadionuclide;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_PETRadionuclide;


/**
 * This class represents PETRadionuclide - CID4020
 */
public class PETRadionuclide_CID4020
{
	
	/**
	 * The Code Value for template.
	 */
	private String strCodeValue = null;
	/**
	 * The SNOMED CT ID for template.
	 */
	private String strSNOMEDCTID = null;

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

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

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

	}

	/**
	 * 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 SNOMED-CT ID.
	 * @return String value for SNOMED-CT ID.
	 */
	public String getSNOMEDCTID() 
	{
		return strSNOMEDCTID;
	}

	/**
	 * Retrieves the value for Coding Scheme Designator.
	 * @return String value for Coding Scheme Designator.
	 */
	public String getCodingSchemeDesignator() 
	{
		return strCodingSchemeDesignator;
	}

	/**
	 * Sets the Code Value according to Code Meaning.
	 * @param enumPETRadionuclide Object of EnumCM_PETRadionuclide represents Code Meaning.
	 */
	private void setCodeValue(EnumCM_PETRadionuclide enumPETRadionuclide)
	{
		switch(enumPETRadionuclide)
		{
		case ELEVEN_CARBON: this.strCodeValue =EnumCV_PETRadionuclide.ELEVEN_CARBON_C_105A1.getValue(); break;
		case THIRTEEN_NITROGEN: this.strCodeValue =EnumCV_PETRadionuclide.THIRTEEN_NITROGEN_C_107A1.getValue(); break;
		case FOURTEEN_OXYGEN: this.strCodeValue =EnumCV_PETRadionuclide.FOURTEEN_OXYGEN_C_1018C.getValue(); break;
		case FIFTEEN_OXYGEN: this.strCodeValue =EnumCV_PETRadionuclide.FIFTEEN_OXYGEN_C_B1038.getValue(); break;
		case EIGHTEEN_FLUORINE: this.strCodeValue =EnumCV_PETRadionuclide.EIGHTEEN_FLUORINE_C_111A1.getValue(); break;
		case TWENTY_TWO_SODIUM: this.strCodeValue =EnumCV_PETRadionuclide.TWENTY_TWO_SODIUM_C_155A1.getValue(); break;
		case THIRTY_EIGHT_POTASSIUM: this.strCodeValue =EnumCV_PETRadionuclide.THIRTY_EIGHT_POTASSIUM_C_135A4.getValue(); break;
		case FOURTY_THREE_SCANDIUM: this.strCodeValue =EnumCV_PETRadionuclide.FOURTY_THREE_SCANDIUM_126605.getValue(); break;
		case FOURTY_FOUR_SCANDIUM: this.strCodeValue =EnumCV_PETRadionuclide.FOURTY_FOUR_SCANDIUM_126600.getValue(); break;
		case FOURTY_FIVE_TITANIUM: this.strCodeValue =EnumCV_PETRadionuclide.FOURTY_FIVE_TITANIUM_C_166A2.getValue(); break;
		case FIFTY_ONE_MANGANESE: this.strCodeValue =EnumCV_PETRadionuclide.FIFTY_ONE_MANGANESE_126601.getValue(); break;
		case FIFTY_TWO_IRON: this.strCodeValue =EnumCV_PETRadionuclide.FIFTY_TWO_IRON_C_130A1.getValue(); break;
		case FIFTY_TWO_MANGANESE: this.strCodeValue =EnumCV_PETRadionuclide.FIFTY_TWO_MANGANESE_C_149A1.getValue(); break;
		case SIXTY_COPPER: this.strCodeValue =EnumCV_PETRadionuclide.SIXTY_COPPER_C_127A4.getValue(); break;
		case SIXTY_ONE_COPPER: this.strCodeValue =EnumCV_PETRadionuclide.SIXTY_ONE_COPPER_C_127A1.getValue(); break;
		case SIXTY_TWO_COPPER: this.strCodeValue =EnumCV_PETRadionuclide.SIXTY_TWO_COPPER_C_127A5.getValue(); break;
		case SIXTY_TWO_ZINC: this.strCodeValue =EnumCV_PETRadionuclide.SIXTY_TWO_ZINC_C_141A1.getValue(); break;
		case SIXTY_FOUR_COPPER: this.strCodeValue =EnumCV_PETRadionuclide.SIXTY_FOUR_COPPER_C_127A2.getValue(); break;
		case SIXTY_SIX_GALLIUM: this.strCodeValue =EnumCV_PETRadionuclide.SIXTY_SIX_GALLIUM_C_131A1.getValue(); break;
		case SIXTY_EIGHT_GALLIUM: this.strCodeValue =EnumCV_PETRadionuclide.SIXTY_EIGHT_GALLIUM_C_131A3.getValue(); break;
		case SIXTY_EIGHT_GERMANIUM: this.strCodeValue =EnumCV_PETRadionuclide.SIXTY_EIGHT_GERMANIUM_C_128A2.getValue(); break;
		case SEVENTY_ARSENIC: this.strCodeValue =EnumCV_PETRadionuclide.SEVENTY_ARSENIC_126602.getValue(); break;
		case SEVENTY_TWO_ARSENIC: this.strCodeValue =EnumCV_PETRadionuclide.SEVENTY_TWO_ARSENIC_C_115A2.getValue(); break;
		case SEVENTY_THREE_SELENIUM: this.strCodeValue =EnumCV_PETRadionuclide.SEVENTY_THREE_SELENIUM_C_116A2.getValue(); break;
		case SEVENTY_FIVE_BROMINE: this.strCodeValue =EnumCV_PETRadionuclide.SEVENTY_FIVE_BROMINE_C_113A1.getValue(); break;
		case SEVENTY_SIX_BROMINE: this.strCodeValue =EnumCV_PETRadionuclide.SEVENTY_SIX_BROMINE_C_113A2.getValue(); break;
		case SEVENTY_SEVEN_BROMINE: this.strCodeValue =EnumCV_PETRadionuclide.SEVENTY_SEVEN_BROMINE_C_113A3.getValue(); break;
		case EIGHTY_TWO_RUBIDIUM: this.strCodeValue =EnumCV_PETRadionuclide.EIGHTY_TWO_RUBIDIUM_C_159A2.getValue(); break;
		case EIGHTY_SIX_YTTRIUM: this.strCodeValue =EnumCV_PETRadionuclide.EIGHTY_SIX_YTTRIUM_C_162A3.getValue(); break;
		case EIGHTY_NINE_ZIRCONIUM: this.strCodeValue =EnumCV_PETRadionuclide.EIGHTY_NINE_ZIRCONIUM_C_168A4.getValue(); break;
		case NINETY_NIOBIUM: this.strCodeValue =EnumCV_PETRadionuclide.NINETY_NIOBIUM_126603.getValue(); break;
		case NINETY_YTTRIUM: this.strCodeValue =EnumCV_PETRadionuclide.NINETY_YTTRIUM_C_162A7.getValue(); break;
		case NINETY_FOURM_TECHNETIUM: this.strCodeValue =EnumCV_PETRadionuclide.NINETY_FOURM_TECHNETIUM_C_163AA.getValue(); break;
		case ONE_HUNDRED_TWENTY_FOUR_IODINE: this.strCodeValue =EnumCV_PETRadionuclide.ONE_HUNDRED_TWENTY_FOUR_IODINE_C_114A5.getValue(); break;
		case ONE_HINDRED_FIFTY_TWO_TERBIUM: this.strCodeValue =EnumCV_PETRadionuclide.ONE_HINDRED_FIFTY_TWO_TERBIUM_126606.getValue(); break;
		}
	}
	/**
	 * Sets the SNOMED-CT ID.
	 * @param enumPETRadionuclide Object of EnumCM_PETRadionuclide represents Code Meaning.
	 */
	private void setSNOMEDCTID(EnumCM_PETRadionuclide enumPETRadionuclide)
	{
		switch(enumPETRadionuclide)
		{
		case ELEVEN_CARBON: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.ELEVEN_CARBON.getSNOMEDCTID(); break;
		case THIRTEEN_NITROGEN: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.THIRTEEN_NITROGEN.getSNOMEDCTID(); break;
		case FOURTEEN_OXYGEN: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.FOURTEEN_OXYGEN.getSNOMEDCTID(); break;
		case FIFTEEN_OXYGEN: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.FIFTEEN_OXYGEN.getSNOMEDCTID(); break;
		case EIGHTEEN_FLUORINE: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.EIGHTEEN_FLUORINE.getSNOMEDCTID(); break;
		case TWENTY_TWO_SODIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.TWENTY_TWO_SODIUM.getSNOMEDCTID(); break;
		case THIRTY_EIGHT_POTASSIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.THIRTY_EIGHT_POTASSIUM.getSNOMEDCTID(); break;
		case FOURTY_FIVE_TITANIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.FOURTY_FIVE_TITANIUM.getSNOMEDCTID(); break;
		case FIFTY_TWO_MANGANESE: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.FIFTY_TWO_MANGANESE.getSNOMEDCTID(); break;
		case SIXTY_COPPER: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SIXTY_COPPER.getSNOMEDCTID(); break;
		case SIXTY_ONE_COPPER: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SIXTY_ONE_COPPER.getSNOMEDCTID(); break;
		case SIXTY_TWO_COPPER: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SIXTY_TWO_COPPER.getSNOMEDCTID(); break;
		case SIXTY_TWO_ZINC: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SIXTY_TWO_ZINC.getSNOMEDCTID(); break;
		case SIXTY_FOUR_COPPER: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SIXTY_FOUR_COPPER.getSNOMEDCTID(); break;
		case SIXTY_SIX_GALLIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SIXTY_SIX_GALLIUM.getSNOMEDCTID(); break;
		case SIXTY_EIGHT_GALLIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SIXTY_EIGHT_GALLIUM.getSNOMEDCTID(); break;
		case SIXTY_EIGHT_GERMANIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SIXTY_EIGHT_GERMANIUM.getSNOMEDCTID(); break;
		case SEVENTY_TWO_ARSENIC: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SEVENTY_TWO_ARSENIC.getSNOMEDCTID(); break;
		case SEVENTY_THREE_SELENIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SEVENTY_THREE_SELENIUM.getSNOMEDCTID(); break;
		case SEVENTY_FIVE_BROMINE: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SEVENTY_FIVE_BROMINE.getSNOMEDCTID(); break;
		case SEVENTY_SIX_BROMINE: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SEVENTY_SIX_BROMINE.getSNOMEDCTID(); break;
		case SEVENTY_SEVEN_BROMINE: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.SEVENTY_SEVEN_BROMINE.getSNOMEDCTID(); break;
		case EIGHTY_SIX_YTTRIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.EIGHTY_SIX_YTTRIUM.getSNOMEDCTID(); break;
		case EIGHTY_NINE_ZIRCONIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.EIGHTY_NINE_ZIRCONIUM.getSNOMEDCTID(); break;
		case NINETY_YTTRIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.NINETY_YTTRIUM.getSNOMEDCTID(); break;
		case NINETY_FOURM_TECHNETIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.NINETY_FOURM_TECHNETIUM.getSNOMEDCTID(); break;
		case EIGHTY_TWO_RUBIDIUM: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.EIGHTY_TWO_RUBIDIUM.getSNOMEDCTID(); break;
		case ONE_HUNDRED_TWENTY_FOUR_IODINE: this.strSNOMEDCTID =EnumRadiologySNOMEDMap.ONE_HUNDRED_TWENTY_FOUR_IODINE.getSNOMEDCTID(); break;
		}
	}
	/**
	 * Sets the value for PETRadionuclide
	 * @param enumPETRadionuclide Object of EnumCM_PETRadionuclide.
	 */
	public void setPETRadionuclide(EnumCM_PETRadionuclide enumPETRadionuclide)
	{
		/**
		 * Retrieves the value for CodingSchemeDesignator, CodingSchemeVersion and Code Meaning and 
		 * sets the Code Value according to Code Meaning.
		 */
		this.strCodeMeaning = enumPETRadionuclide.getValue();
		this.strCodingSchemeDesignator = EnumCodingSchemeDesignator.SNM3.getValue();
		
		/**
		 * set code Value
		 */
		setCodeValue(enumPETRadionuclide);
		/**
		 * set SNOMED-CT ID
		 */
		setSNOMEDCTID(enumPETRadionuclide);
	}
}
