/** * This Source Code Form is subject to the terms of the Mozilla Public License, * v. 2.0. If a copy of the MPL was not distributed with this file, You can * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. * * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ package org.openmrs; import org.apache.commons.lang3.StringUtils; import org.openmrs.util.OpenmrsUtil; /** * Represent allergy reactions */ public class AllergyReaction extends BaseOpenmrsObject implements java.io.Serializable{ public static final long serialVersionUID = 1; private Integer allergyReactionId; private Allergy allergy; private Concept reaction; private String reactionNonCoded; /** * Default constructor */ public AllergyReaction(){ } /** * @param allergy the allergy to set * @param reaction the reaction to set * @param reactionNonCoded the reactionNonCoded to set */ public AllergyReaction(Allergy allergy, Concept reaction, String reactionNonCoded) { this.allergy = allergy; this.reaction = reaction; this.reactionNonCoded = reactionNonCoded; } public Integer getAllergyReactionId() { return allergyReactionId; } public void setAllergyReactionId(Integer allergyReactionId) { this.allergyReactionId = allergyReactionId; } /** * @see org.openmrs.OpenmrsObject#getId() */ @Override public Integer getId() { return allergyReactionId; } /** * @see org.openmrs.OpenmrsObject#setId(java.lang.Integer) */ @Override public void setId(Integer allergyReactionId) { this.allergyReactionId = allergyReactionId; } /** * @return Returns the allergy */ public Allergy getAllergy() { return allergy; } /** * @param allergy the allergy to set */ public void setAllergy(Allergy allergy) { this.allergy = allergy; } /** * @return Returns the reaction */ public Concept getReaction() { return reaction; } /** * @param reaction the reaction to set */ public void setReaction(Concept reaction) { this.reaction = reaction; } /** * @return Returns the reactionNonCoded */ public String getReactionNonCoded() { return reactionNonCoded; } /** * @param reactionNonCoded the reactionNonCoded to set */ public void setReactionNonCoded(String reactionNonCoded) { this.reactionNonCoded = reactionNonCoded; } @Override public String toString() { if (StringUtils.isNotBlank(reactionNonCoded)) { return reactionNonCoded; } return reaction.getName().getName(); } /** * Checks if this reaction has the same values as the given one * * @param reaction the reaction whose values to compare with * @return true if the values match, else false */ public boolean hasSameValues(AllergyReaction reaction) { if (!OpenmrsUtil.nullSafeEquals(getAllergyReactionId(), reaction.getAllergyReactionId())) { return false; } if (!OpenmrsUtil.nullSafeEquals(getReaction(), reaction.getReaction())) { //if object instances are different but with the same concept id, then not changed if (getReaction() != null && reaction.getReaction() != null) { if (!OpenmrsUtil.nullSafeEquals(getReaction().getConceptId(), reaction.getReaction().getConceptId())) { return false; } } else { return false; } } if (!OpenmrsUtil.nullSafeEquals(getReactionNonCoded(), reaction.getReactionNonCoded())) { return false; } return true; } }