/*******************************************************************************
 *  Copyright 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.cathlabclinicalreporttemplate;

import cdac.medinfo.sdk.dcm30_04.baselibs.ContentSequenceItem;
import cdac.medinfo.sdk.dcm30_04.enums.EnumContinuityOfContent;
import cdac.medinfo.sdk.dcm30_04.srtree.SRTree;
import cdac.medinfo.sdk.dcm30_04.templates.cid.CardiacHistoryDates_CID3720;
import cdac.medinfo.sdk.dcm30_04.templates.cid.CardiovascularFamilyHistory_CID3758;
import cdac.medinfo.sdk.dcm30_04.templates.cid.CathPatientHistory_CID3721;
import cdac.medinfo.sdk.dcm30_04.templates.cid.ConcernTypes_CID3769;
import cdac.medinfo.sdk.dcm30_04.templates.cid.DiabeticTherapy_CID3722;
import cdac.medinfo.sdk.dcm30_04.templates.cid.FamilyMember_CID7451;
import cdac.medinfo.sdk.dcm30_04.templates.cid.MITypes_CID3723;
import cdac.medinfo.sdk.dcm30_04.templates.cid.SmokingHistory_CID3724;
import cdac.medinfo.sdk.dcm30_04.templates.cid.SocialHistory_CID3774;
import cdac.medinfo.sdk.dcm30_04.templates.cid.UseStatus_CID3773;
import cdac.medinfo.sdk.dcm30_04.templates.cid.YesNo_CID230;
import cdac.medinfo.sdk.dcm30_04.templates.enums.EnumCodingSchemeDesignator;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CardiacHistoryDates;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CardiovascularFamilyHistory;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CathPatientHistory;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_ConcernTypes;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_DiabeticTherapy;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_FamilyMember;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_MITypes;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_CardiovascularPatientHistory;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_PurposeOfReferenceToObject;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_SmokingHistory;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_SocialHistory;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_UseStatus;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cm.EnumCM_YesNo;
import cdac.medinfo.sdk.dcm30_04.templates.enums.cv.EnumCV_CardiovascularPatientHistory;
import cdac.medinfo.sdk.dcm30_04.templates.generaltemplates.Template;

/**
 * This class represents CardiovascularPatientHistory_TID3802
 */
public class CardiovascularPatientHistory_TID3802 extends Template
{
	/**
	 * Object of MedicalDeviceUse_TID3831
	 */
	private MedicalDeviceUse_TID3831 objMedicalDeviceUseTID3831;
	/**
	 * Object of ProblemProperties_TID3829
	 */
	private ProblemProperties_TID3829 objProblemPropertiesTID3829;
	/**
	 * Object of SocialHistory_CID3774
	 */
	private SocialHistory_CID3774 objSocialHistoryCID3774;
	/**
	 * Object of UseStatus_CID3773
	 */
	private UseStatus_CID3773 objUseStatusCID3773;
	/**
	 * Object of SmokingHistory_CID3724
	 */
	private SmokingHistory_CID3724 objSmokingHistoryCID3724;

	/**
	 * Object of DiabeticTherapy_CID3722
	 **/
	
	private DiabeticTherapy_CID3722 objDiabeticTherapyCID3722;
	
	/**
	 * Object of ConcernTypes_CID3769

	 */
	private ConcernTypes_CID3769 objConcernTypesCID3769;
	
	/**
	 * Object of FamilyMember_CID7451

	 */
	private FamilyMember_CID7451 objFamilyMemberCID7451;

	/**
	 * Object of MITypes_CID3723
	 */
	private MITypes_CID3723 objMiTypesCID3723;

	/**
	 * Object of CardiacHistoryDates_CID3720
	 */
	private CardiacHistoryDates_CID3720 objCardiacHistoryDatesCID3720;

	/**
	 * Object of CardiovascularFamilyHistory_CID3758
	 */
	private CardiovascularFamilyHistory_CID3758 objCardiovascularFamilyHistoryCID3758;

	/**
	 * Object of CathPatientHistory_CID3721
	 */
	private CathPatientHistory_CID3721 objCathPatientHistoryCID3721;

	/**
	 * Object of YesNo_CID230

	 */
	private YesNo_CID230 objYesNoCID230;
	/**
	 * Object of ProcedureProperties_TID3830

	 */
	private ProcedureProperties_TID3830 objProcedurePropertiesTID3830;

	/**
	 * Instantiates CardiovascularPatientHistory_TID3802 Template.
	 * @param objTree Object of SRTree.
	 */
	public CardiovascularPatientHistory_TID3802(SRTree objTree)
	{
		super(objTree);
	}

	/**
	 * Retrieves the object of MedicalDeviceUse
	 * @return objMedicalDeviceUseTID3831 Object of MedicalDeviceUse_TID3831.
	 */
	public MedicalDeviceUse_TID3831 getMedicalDeviceUse() 
	{
		if(null == objMedicalDeviceUseTID3831)
			objMedicalDeviceUseTID3831 = new MedicalDeviceUse_TID3831(getSRTree());
		return objMedicalDeviceUseTID3831;
	}
	/**
	 * Retrieves the object of ProcedureProperties
	 * @return objProcedurePropertiesTID3830 Object of ProcedureProperties_TID3830.
	 */
	public ProcedureProperties_TID3830 getProcedureProperties() 
	{
		if(null == objProcedurePropertiesTID3830)
			objProcedurePropertiesTID3830 = new ProcedureProperties_TID3830(getSRTree());
		return objProcedurePropertiesTID3830;
	}
	
	/**
	 * Retrieves the object of ProblemProperties
	 * @return objProblemProperties_TID3829 Object of ProblemProperties_TID3829.
	 */
	public ProblemProperties_TID3829 getProblemProperties() 
	{
		if(null == objProblemPropertiesTID3829)
			objProblemPropertiesTID3829 = new ProblemProperties_TID3829(getSRTree());
		return objProblemPropertiesTID3829;
	}
	
	/**
	 * Sets the value for History
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent Enumerated Value for ContinuityOfContent.
	 */
	public void setHistory(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.HISTORY.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.HISTORY_121060.getValue();
		String strCSD = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Creating a node of Value Type UIDREF and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createContainer(arrPosition, strCodeMeaning, strCodeValue, strCSD, enumContinuityOfContent);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for History
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strHistory String value for History.
	 */
	public void setHistory(int[] arrPosition, String strHistory)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.HISTORY.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.HISTORY_121060.getValue();
		String strCSD = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createTextNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strHistory);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Problem List
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent 
	 */
	public void setProblemList(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.PROBLEM_LIST.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.PROBLEM_LIST_11450_4.getValue();
		String strCSD = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createContainer(arrPosition, strCodeMeaning, strCodeValue, strCSD, enumContinuityOfContent);
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets the value for Problem List
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strCardiacHistoryDates String value for Concern Types.
	 * @param strValue 
	 * @param enumConcernTypes Enumerated value for ConcernTypes
	 */
	public void setProblemList(int[] arrPosition, EnumCM_ConcernTypes enumConcernTypes, String strValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		if(null== this.objConcernTypesCID3769)
			this.objConcernTypesCID3769 = new ConcernTypes_CID3769();
		this.objConcernTypesCID3769.setConcernTypes(enumConcernTypes);

		String strCodeMeaning = objConcernTypesCID3769.getCodeMeaning();
		String strCodeValue = objConcernTypesCID3769.getCodeValue();
		String strCSD = objConcernTypesCID3769.getCodingSchemeDesignator();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createTextNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strValue);
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets the value for Periprocedural MI occurred.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumYesNo Enum value for Yes-No.
	 * @param enumCathPatientHistory Enumerated value for CathPatientHistory
	 */
	public void setPeriproceduralMIOccurred(int[] arrPosition, EnumCM_YesNo enumYesNo,EnumCM_CathPatientHistory enumCathPatientHistory)
	{
		/**
		 * Sets the value for Primary Intervention Device.
		 */
		if(null== this.objYesNoCID230)
			this.objYesNoCID230 = new YesNo_CID230();
		this.objYesNoCID230.setYesNo(enumYesNo);

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCM = this.objYesNoCID230.getCodeMeaning();
		String strCV = this.objYesNoCID230.getCodeValue();
		String strCSD1 = this.objYesNoCID230.getCodingSchemeDesignator();
		String strSNOMEDCTID = objYesNoCID230.getSNOMEDCTID();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		if(null== this.objCathPatientHistoryCID3721)
			this.objCathPatientHistoryCID3721 = new CathPatientHistory_CID3721();
		this.objCathPatientHistoryCID3721.setCathPatientHistory(enumCathPatientHistory);

		String strCodeMeaning = objCathPatientHistoryCID3721.getCodeMeaning();
		String strCodeValue = objCathPatientHistoryCID3721.getCodeValue();
		String strCSD2 = objCathPatientHistoryCID3721.getCodingSchemeDesignator();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning,strCodeValue , strCSD2, strCV, strCSD1, "", strCM,strSNOMEDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}


	/**
	 * Sets the value for CardiacHistoryDates
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strCardiacHistoryDates String value for CardiacHistoryDates.
	 * @param enumCardiacHistoryDates Enumerated value for enumCardiacHistoryDates
	 */
	public void setCardiacCardiacHistoryDatesDates(int[] arrPosition, String strCardiacHistoryDates, EnumCM_CardiacHistoryDates enumCardiacHistoryDates)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		if(null== this.objCardiacHistoryDatesCID3720)
			this.objCardiacHistoryDatesCID3720 = new CardiacHistoryDates_CID3720();
		this.objCardiacHistoryDatesCID3720.setCardiacHistoryDates(enumCardiacHistoryDates);

		String strCodeMeaning = objCardiacHistoryDatesCID3720.getCodeMeaning();
		String strCodeValue = objCardiacHistoryDatesCID3720.getCodeValue();
		String strCSD = objCardiacHistoryDatesCID3720.getCodingSchemeDesignator();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createDateNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strCardiacHistoryDates);
		getSRTree().addChild(objContentSequenceItem);
	}
	
	/**
	 * Sets the value for Previous Myocardial Infarction 1 week prior.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumYesNo Enum value for Yes-No.
	 */
	public void setPreviousMyocardialInfarctionOneWeekPrior(int[] arrPosition, EnumCM_YesNo enumYesNo)
	{
		/**
		 * Sets the value for Primary Intervention Device.
		 */
		if(null== this.objYesNoCID230)
			this.objYesNoCID230 = new YesNo_CID230();
		this.objYesNoCID230.setYesNo(enumYesNo);

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCM = this.objYesNoCID230.getCodeMeaning();
		String strCV = this.objYesNoCID230.getCodeValue();
		String strCSD1 = this.objYesNoCID230.getCodingSchemeDesignator();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.PREVIOUS_MYOCARDIAL_INFARCTION_1_WEEK_PRIOR.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.PREVIOUS_MYOCARDIAL_INFARCTION_1_WEEK_PRIOR_36.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.NCDR.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning,strCodeValue , strCSD2, strCV, strCSD1, "", strCM);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Type of Myocardial Infarction.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumMITypes Enum value for MITypes
	 */
	public void setTypeOfMyocardialInfarction(int[] arrPosition, EnumCM_MITypes enumMITypes)
	{
		/**
		 * Sets the value for Primary Intervention Device.
		 */
		if(null== this.objMiTypesCID3723)
			this.objMiTypesCID3723 = new MITypes_CID3723();
		this.objMiTypesCID3723.setMITypes(enumMITypes);

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCM = this.objMiTypesCID3723.getCodeMeaning();
		String strCV = this.objMiTypesCID3723.getCodeValue();
		String strCSD1 = this.objMiTypesCID3723.getCodingSchemeDesignator();
		String strSNOMEDCTID = objMiTypesCID3723.getSNOMEDCTID();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.TYPE_OF_MYOCARDIAL_INFARCTION.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.TYPE_OF_MYOCARDIAL_INFARCTION_122170.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning,strCodeValue , strCSD2, strCV, strCSD1, "", strCM,strSNOMEDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value forDiabetic Therapy.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumDiabeticTherapy Enum value for DiabeticTherapy
	 */
	public void setDiabeticTherapy(int[] arrPosition, EnumCM_DiabeticTherapy enumDiabeticTherapy)
	{
		/**
		 * Sets the value for Primary Intervention Device.
		 */
		if(null== this.objDiabeticTherapyCID3722)
			this.objDiabeticTherapyCID3722 = new DiabeticTherapy_CID3722();
		this.objDiabeticTherapyCID3722.setDiabeticTherapy(enumDiabeticTherapy);

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCM = this.objDiabeticTherapyCID3722.getCodeMeaning();
		String strCV = this.objDiabeticTherapyCID3722.getCodeValue();
		String strCSD1 = this.objDiabeticTherapyCID3722.getCodingSchemeDesignator();
		String strCSV = this.objDiabeticTherapyCID3722.getCodingSchemeVersion();
		String strSNOMEDCTID = objDiabeticTherapyCID3722.getSNOMEDCTID();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.DIABETIC_THERAPY.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.DIABETIC_THERAPY_31_1.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.NCDR.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning,strCodeValue , strCSD2, strCV, strCSD1, strCSV, strCM,strSNOMEDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Lipid Lowering Therapy.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumYesNo Enum value for Yes-No.
	 */
	public void setLipidLoweringTherapy(int[] arrPosition, EnumCM_YesNo enumYesNo)
	{
		/**
		 * Sets the value for Primary Intervention Device.
		 */
		if(null== this.objYesNoCID230)
			this.objYesNoCID230 = new YesNo_CID230();
		this.objYesNoCID230.setYesNo(enumYesNo);

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCM = this.objYesNoCID230.getCodeMeaning();
		String strCV = this.objYesNoCID230.getCodeValue();
		String strCSD1 = this.objYesNoCID230.getCodingSchemeDesignator();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.LIPID_LOWERING_THERAPY.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.LIPID_LOWERING_THERAPY_39_1.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.NCDR.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning,strCodeValue , strCSD2, strCV, strCSD1, "", strCM);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets the value for Smoking History.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumSmokingHistory Enum value for SmokingHistory
	 */
	public void setSmokingHistory(int[] arrPosition, EnumCM_SmokingHistory enumSmokingHistory)
	{
		/**
		 * Sets the value for Primary Intervention Device.
		 */
		if(null== this.objSmokingHistoryCID3724)
			this.objSmokingHistoryCID3724 = new SmokingHistory_CID3724();
		this.objSmokingHistoryCID3724.setSmokingHistory(enumSmokingHistory);

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCM = this.objSmokingHistoryCID3724.getCodeMeaning();
		String strCV = this.objSmokingHistoryCID3724.getCodeValue();
		String strCSD1 = this.objSmokingHistoryCID3724.getCodingSchemeDesignator();
		String strCSV = this.objSmokingHistoryCID3724.getCodingSchemeVersion();
		String strSNOMEDCTID = objSmokingHistoryCID3724.getSNOMEDCTID();

		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.SMOKING_HISTORY.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.SMOKING_HISTORY_38.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.NCDR.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning,strCodeValue , strCSD2, strCV, strCSD1, strCSV, strCM,strSNOMEDCTID);
		getSRTree().addChild(objContentSequenceItem);
	}

	/**
	 * Sets Prior report for Prior Report For Current Patient
	 * @param arrPosition position at which the node will get added in the tree.
	 * @param enumPurposeOfReferenceToObject Enum value for Purpose Of Reference To Object
	 * @param strReferencedSOPClassUID Referenced SOP Class UID
	 * @param strReferencedSOPInstanceUID Referenced SOP Instance UID
	 */
	public void setPriorReportForCurrentPatient(int[] arrPosition, EnumCM_PurposeOfReferenceToObject enumPurposeOfReferenceToObject, String strReferencedSOPClassUID, String strReferencedSOPInstanceUID)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.PRIOR_REPORT_FOR_CURRENT_PATIENT.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.PRIOR_REPORT_FOR_CURRENT_PATIENT_122075.getValue();
		String strCSD = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type COMPOSITE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCompositeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strReferencedSOPClassUID, strReferencedSOPInstanceUID);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets Prior report for SocialHistory
	 * @param arrPosition position at which the node will get added in the tree.
	 * @param enumPurposeOfReferenceToObject Enum value for Purpose Of Reference To Object
	 * @param strReferencedSOPClassUID Referenced SOP Class UID
	 * @param strReferencedSOPInstanceUID Referenced SOP Instance UID
	 * @param enumContinuityOfContent 
	 */
	public void setSocialHistory(int[] arrPosition, String strReferencedSOPClassUID, String strReferencedSOPInstanceUID, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.SOCIAL_HISTORY.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.SOCIAL_HISTORY_29762_2.getValue();
		String strCSD = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Creating a node of Value Type CONTAINER and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createContainer(arrPosition, strCodeMeaning, strCodeValue, strCSD, enumContinuityOfContent);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets Prior report for SocialHistory
	 * @param arrPosition position at which the node will get added in the tree.
	 * @param strValue 
	 * @param enumPurposeOfReferenceToObject Enum value for Purpose Of Reference To Object
	 * @param strReferencedSOPClassUID Referenced SOP Class UID
	 * @param strReferencedSOPInstanceUID Referenced SOP Instance UID
	 * @param enumContinuityOfContent 
	 */
	public void setSocialHistory(int[] arrPosition, String strValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.SOCIAL_HISTORY.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.SOCIAL_HISTORY_F_02455.getValue();
		String strCSD = EnumCodingSchemeDesignator.SRT.getValue();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createTextNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strValue);
		getSRTree().addChild(objContentSequenceItem);
		
	}
	/**
	 * Sets the value for Document Title.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 */
	public void setDocumentTitle(int[] arrPosition)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.DOCUMENT_TITLE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.DOCUMENT_TITLE_121144.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning,strCodeValue , strCSD2, "", "", "", "");
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for Cocaine Abuse.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 */
	public void setCocaineAbuse(int[] arrPosition)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.COCAINE_ABUSE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.COCAINE_ABUSE_D9_30400.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.SRT.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning,strCodeValue , strCSD2, "", "", "", "");
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for Drug misuse behavior.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 */
	public void setDrugMisuseBehavior(int[] arrPosition)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.DRUG_MISUSE_BEHAVIOR.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.DRUG_MISUSE_BEHAVIOR_F_931D4.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.SRT.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning,strCodeValue , strCSD2, "", "", "", "");
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for Past Surgical History.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 */
	public void setPastSurgicalHistory(int[] arrPosition)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.PAST_SURGICAL_HISTORY.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.PAST_SURGICAL_HISTORY_10167_5.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning,strCodeValue , strCSD2, "", "", "", "");
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for Relevant Diagnostic Tests And/Or Laboratory Data
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent 
	 */
	public void setRelevantDiagnosticTestsAndOrLaboratoryData(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.RELEVANT_DIAGNOSTIC_TESTS_AND_OR_LABORATORY_DATA.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.RELEVANT_DIAGNOSTIC_TESTS_AND_OR_LABORATORY_DATA_30954_2.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Creating a node of Value Type CONTAINER and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createContainer(arrPosition, strCodeMeaning, strCodeValue, strCSD2, enumContinuityOfContent);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for Cholesterol in HDL.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent 
	 * @param arrNumericValue 
	 */
	public void setCholesterolInHDL(int[] arrPosition, String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.CHOLESTEROL_IN_HDL.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.CHOLESTEROL_IN_HDL_2086_7.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Creating a node of Value Type CONTAINER and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition, strCodeMeaning, strCodeValue, strCSD2, arrNumericValue, "", "", "", "", "", "", "", "");
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for Cholesterol in HDL.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param strCSDForNumValQuaCodeSQ 
	 * @param arrNumericValue 
	 * @param arrNumericValue 
	 */
	public void setCholesterolInHDL(int[] arrPosition, String strCSDForNumValQuaCodeSQ, String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.CHOLESTEROL_IN_HDL.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.CHOLESTEROL_IN_HDL_2089_1.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Creating a node of Value Type NUM and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition, strCodeMeaning, strCodeValue, strCSD2, arrNumericValue, "", "", "", "", "", "", strCSDForNumValQuaCodeSQ, "");
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for History of Medication Use.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumContinuityOfContent  
	 */
	public void setHistoryOfMedicationUse(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.HISTORY_OF_MEDICATION_USE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.HISTORY_OF_MEDICATION_USE_10160_0.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Creating a node of Value Type CONTAINER and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createContainer(arrPosition, strCodeMeaning, strCodeValue, strCSD2, enumContinuityOfContent);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for Medication Type.Dosage
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree. 
	 */
	public void setMedicationType(int[] arrPosition)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.MEDICATION_TYPE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.MEDICATION_TYPE_111516.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.DCM.getValue();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createTextNode(arrPosition, strCodeMeaning, strCodeValue, strCSD2, "");
		getSRTree().addChild(objContentSequenceItem);
		/**
		 * Creating a node of Value Type CODE and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem1 = getSRTree().createCodeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD2, "", "", "", "");
		getSRTree().addChild(objContentSequenceItem1);
	}
	/**
	 * Sets the value for Dosage.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree. 
	 * @param arrNumericValue 
	 */
	public void setDosage(int[] arrPosition, String[] arrNumericValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.DOSAGE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.DOSAGE_G_C0B7.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.SRT.getValue();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createNumNode(arrPosition, strCodeMeaning, strCodeValue, strCSD2, arrNumericValue, "", "", "", "", "", "", "", "");
		getSRTree().addChild(objContentSequenceItem);
		
	}
	/**
	 * Sets the value for History of Family Member Diseases.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.  
	 * @param enumContinuityOfContent 
	 */
	public void setHistoryOfFamilyMemberDiseases(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.HISTORY_OF_FAMILY_MEMBER_DISEASES.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.HISTORY_OF_FAMILY_MEMBER_DISEASES_10157_6.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.SRT.getValue();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createContainer(arrPosition, strCodeMeaning, strCodeValue, strCSD2, enumContinuityOfContent);
		getSRTree().addChild(objContentSequenceItem);
		
	}
	/**
	 * Sets the value for History of medical device use.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.  
	 * @param enumContinuityOfContent 
	 */
	public void setHistoryOfMedicalDeviceUse(int[] arrPosition, EnumContinuityOfContent enumContinuityOfContent)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.HISTORY_OF_MEDICAL_DEVICE_USE.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.HISTORY_OF_MEDICAL_DEVICE_USE_46264_8.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.LN.getValue();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createContainer(arrPosition, strCodeMeaning, strCodeValue, strCSD2, enumContinuityOfContent);
		getSRTree().addChild(objContentSequenceItem);
		
	}
	/**
	 * Sets the value for SocialHistory
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumSocialHistory Enumerated value for Social History
	 * @param strValue 
	 */
	public void setSocialHistory(int[] arrPosition, EnumCM_SocialHistory enumSocialHistory, String strValue)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		if(null== this.objSocialHistoryCID3774)
			this.objSocialHistoryCID3774 = new SocialHistory_CID3774();
		this.objSocialHistoryCID3774.setSocialHistory(enumSocialHistory);

		String strCodeMeaning = objSocialHistoryCID3774.getCodeMeaning();
		String strCodeValue = objSocialHistoryCID3774.getCodeValue();
		String strCSD = objSocialHistoryCID3774.getCodingSchemeDesignator();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createTextNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strValue);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for Status.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumUseStatus Enumerated value for Use Status. 
	 */
	public void setStatus(int[] arrPosition, EnumCM_UseStatus enumUseStatus)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.STATUS.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.STATUS_33999_4.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.LN.getValue();
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		if(null== this.objUseStatusCID3773)
			this.objUseStatusCID3773 = new UseStatus_CID3773();
		this.objUseStatusCID3773.setUseStatus(enumUseStatus);

		String strCM = objUseStatusCID3773.getCodeMeaning();
		String strCV = objUseStatusCID3773.getCodeValue();
		String strCSD = objUseStatusCID3773.getCodingSchemeDesignator();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strCV, strCSD2, "", strCM);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for Family history of clinical finding.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumCardiovascularFamilyHistory Enumerated value for CardiovascularFamilyHistory. 
	 */
	public void setFamilyHistoryOfClinicalFinding(int[] arrPosition, EnumCM_CardiovascularFamilyHistory enumCardiovascularFamilyHistory)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.FAMILY_HISTORY_OF_CLINICAL_FINDING.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.FAMILY_HISTORY_OF_CLINICAL_FINDING_G_03E5.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.SRT.getValue();
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		if(null== this.objCardiovascularFamilyHistoryCID3758)
			this.objCardiovascularFamilyHistoryCID3758 = new CardiovascularFamilyHistory_CID3758();
		this.objCardiovascularFamilyHistoryCID3758.setCardiovascularFamilyHistory(enumCardiovascularFamilyHistory);

		String strCM = objCardiovascularFamilyHistoryCID3758.getCodeMeaning();
		String strCV = objCardiovascularFamilyHistoryCID3758.getCodeValue();
		String strCSD = objCardiovascularFamilyHistoryCID3758.getCodingSchemeDesignator();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strCV, strCSD2, "", strCM);
		getSRTree().addChild(objContentSequenceItem);
	}
	/**
	 * Sets the value for Subject relationship.
	 * @param arrPosition Identifier which shows the position of the node in the SR Tree.
	 * @param enumFamilyMember Enumerated value for FamilyMember. 
	 */
	public void setSubjectRelationship(int[] arrPosition, EnumCM_FamilyMember enumFamilyMember)
	{
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		String strCodeMeaning = EnumCM_CardiovascularPatientHistory.SUBJECT_RELATIONSHIP.getValue();
		String strCodeValue = EnumCV_CardiovascularPatientHistory.SUBJECT_RELATIONSHIP_G_C32E.getValue();
		String strCSD2 = EnumCodingSchemeDesignator.SRT.getValue();
		/**
		 * Retrieves the corresponding values of CodeMeaning,CodeValue and CodingSchemeDesignator.
		 */
		if(null== this.objFamilyMemberCID7451)
			this.objFamilyMemberCID7451 = new FamilyMember_CID7451();
		this.objFamilyMemberCID7451.setFamilyMember(enumFamilyMember);

		String strCM = objFamilyMemberCID7451.getCodeMeaning();
		String strCV = objFamilyMemberCID7451.getCodeValue();
		String strCSD = objFamilyMemberCID7451.getCodingSchemeDesignator();

		/**
		 * Creating a node of Value Type TEXT and adding this node at specified identifier in the SR Tree.
		 */
		ContentSequenceItem objContentSequenceItem = getSRTree().createCodeNode(arrPosition, strCodeMeaning, strCodeValue, strCSD, strCV, strCSD2, "", strCM);
		getSRTree().addChild(objContentSequenceItem);
	}
}
