private float alignDrugMentionAttributes()

in ctakes-drug-ner/src/main/java/org/apache/ctakes/drugner/ae/DrugMentionAnnotator.java [1815:1971]


	private float alignDrugMentionAttributes(String strengthText, DrugMention dm , DrugMentionAnnotation drugTokenAnt, DrugMentionAnnotation recurseNER, String relatedStatus, boolean statusFound, boolean overrideStatus,
			boolean maxExists, String doseText, String frequencyText, String frequencyUnitText)
	{

		float keepScoreOfConfidence = (float) 0.05;
		if (dm.getStrengthElement() != null && dm.getStrengthElement() != ""
			&& dm.getStrengthElement().compareTo("null") != 0)
			keepScoreOfConfidence = (float) 0.15;
		if (strengthText != null /* && holdStatusChanges.isEmpty() */)
		{
			drugTokenAnt.setStrength(strengthText);
			drugTokenAnt.setStrengthBegin(dm.getStrengthBegin());
			drugTokenAnt.setStrengthEnd(dm.getStrengthEnd());
        drugTokenAnt.setStrengthUnit(dm.getStrengthUnitElement());
        drugTokenAnt.setSuBegin(dm.getStrengthUnitBegin());
        drugTokenAnt.setSuEnd(dm.getStrengthUnitEnd());
		} else if (recurseNER != null && recurseNER.getStrength() != null)
		{
			drugTokenAnt.setStrength(recurseNER.getStrength());
			drugTokenAnt.setStrengthBegin(recurseNER.getStrengthBegin());
			drugTokenAnt.setStrengthEnd(recurseNER.getStrengthEnd());
        drugTokenAnt.setStrengthUnit(recurseNER.getStrengthUnit());
        drugTokenAnt.setSuBegin(recurseNER.getSuBegin());
        drugTokenAnt.setSuEnd(recurseNER.getSuEnd());
		} else if (dm.getStrengthElement() != null && dm.strength != null)
		{
			drugTokenAnt.setStrength(dm.getStrengthElement());
			drugTokenAnt.setStrengthBegin(dm.getStrengthBegin());
			drugTokenAnt.setStrengthEnd(dm.getStrengthEnd());
        drugTokenAnt.setStrengthUnit(dm.getStrengthUnitElement());
        drugTokenAnt.setSuBegin(dm.getStrengthUnitBegin());
        drugTokenAnt.setSuEnd(dm.getStrengthUnitEnd());
		}
		if ((dm.getDosageElement() != null && dm.getDosageElement().compareTo(
		"null") != 0)
		&& doseText != null)
			keepScoreOfConfidence = keepScoreOfConfidence + (float) 0.05;
		if (doseText != null /* && holdStatusChanges.isEmpty() */)
		{

			if (maxExists)
			{
				drugTokenAnt.setDosage("1.0");
			} else
			{
				drugTokenAnt.setDosage(doseText);
				drugTokenAnt.setDosageBegin(dm.getDosageBegin());
				drugTokenAnt.setDosageEnd(dm.getDosageEnd());
			}
		} else if ((recurseNER != null) && (recurseNER.getDosage() != null))
		{
			drugTokenAnt.setDosage(recurseNER.getDosage());
			drugTokenAnt.setDosageBegin(recurseNER.getDosageBegin());
			drugTokenAnt.setDosageEnd(recurseNER.getDosageEnd());
		} else if (dm.getDosageElement() != null && dm.dosage != null)
		{

			drugTokenAnt.setDosage(dm.getDosageElement());
			drugTokenAnt.setDosageBegin(dm.getDosageBegin());
			drugTokenAnt.setDosageEnd(dm.getDosageEnd());
		}

		// Only want the updated element in this case
		if (dm.getDurationElement() != null
				&& dm.getDurationElement().compareTo("") != 0
				&& dm.getDurationElement().compareTo("null") != 0)
		{
			keepScoreOfConfidence = keepScoreOfConfidence * (float) 1.3;
			drugTokenAnt.setDuration(dm.getDurationElement());
			drugTokenAnt.setDurationBegin(dm.getDuratationBegin());
			drugTokenAnt.setDurationEnd(dm.getDuratationEnd());
		}
		if (dm.getStartDateElement() != null
				&& dm.getStartDateElement().compareTo("") != 0)
			drugTokenAnt.setStartDate(dm.getStartDateElement());

		if ((dm.getFormElement() != null)
				&& (dm.getFormElement().compareTo("") != 0)
				&& dm.getFormElement().compareTo("null") != 0)
		{

			keepScoreOfConfidence = keepScoreOfConfidence * (float) 1.3;
			drugTokenAnt.setForm(dm.getFormElement());
			drugTokenAnt.setFormBegin(dm.getFormBegin());
			drugTokenAnt.setFormEnd(dm.getFormEnd());
		} else if (recurseNER != null && recurseNER.getForm() != null)
		{
			drugTokenAnt.setForm(recurseNER.getForm());
			drugTokenAnt.setFormBegin(recurseNER.getFormBegin());
			drugTokenAnt.setFormEnd(recurseNER.getFormEnd());
		}
		if (dm.getFrequencyElement() != null
				&& dm.getFrequencyElement().compareTo("") != 0
				&& dm.frequency != null
				&& dm.getFrequencyElement().compareTo("null") != 0)
			keepScoreOfConfidence = keepScoreOfConfidence * (float) 1.5;
		if (frequencyText != null /* && holdStatusChanges.isEmpty() */)
		{

			if (maxExists)
			{
				drugTokenAnt.setFrequency("1.0");
			} else
				drugTokenAnt.setFrequency(frequencyText);
			drugTokenAnt.setFrequencyBegin(dm.getFrequencyBegin());
			drugTokenAnt.setFrequencyEnd(dm.getFrequencyEnd());
		} else if (recurseNER != null && recurseNER.getFrequencyUnit() != null)
		{
			drugTokenAnt.setFrequency(recurseNER.getFrequency());
			drugTokenAnt.setFrequencyBegin(recurseNER.getFrequencyBegin());
			drugTokenAnt.setFrequencyEnd(recurseNER.getFrequencyEnd());
		} else if (dm.getFrequencyElement() != null && dm.frequency != null)
		{
			drugTokenAnt.setFrequency(dm.getFrequencyElement());
			drugTokenAnt.setFrequencyBegin(dm.getFrequencyBegin());
			drugTokenAnt.setFrequencyEnd(dm.getFrequencyEnd());
		}
		if (dm.getFrequencyUnitElement() != null
				&& dm.getFrequencyUnitElement().compareTo("") != 0
				&& dm.frequencyUnit != null)
			keepScoreOfConfidence = keepScoreOfConfidence * (float) 1.5;
		if (frequencyUnitText != null /* && holdStatusChanges.isEmpty() */)
		{

			drugTokenAnt.setFrequencyUnit(frequencyUnitText);
			drugTokenAnt.setFuBegin(dm.getFUBegin());
			drugTokenAnt.setFuEnd(dm.getFUENd());
		} else if (recurseNER != null && recurseNER.getFrequencyUnit() != null)
		{
			drugTokenAnt.setFrequencyUnit(recurseNER.getFrequencyUnit());
			drugTokenAnt.setFuBegin(recurseNER.getFuBegin());
			drugTokenAnt.setFuEnd(recurseNER.getFuEnd());
		} else if (dm.getFrequencyElement() != null
				&& dm.getFrequencyElement().compareTo("null") != 0
				&& dm.frequency != null)
		{

			drugTokenAnt.setFrequency(dm.getFrequencyElement());
			drugTokenAnt.setFrequencyBegin(dm.getFrequencyBegin());
			drugTokenAnt.setFrequencyEnd(dm.getFrequencyEnd());
		}
		if (dm.getRouteElement() != null
				&& dm.getRouteElement().compareTo("") != 0
				&& dm.getRouteElement().compareTo("null") != 0)
		{
			keepScoreOfConfidence = keepScoreOfConfidence * (float) 1.3;
			drugTokenAnt.setRoute(dm.getRouteElement());
			drugTokenAnt.setRouteBegin(dm.getRouteBegin());
			drugTokenAnt.setRouteEnd(dm.getRouteEnd());
		} else if (recurseNER != null && recurseNER.getRoute() != null)
		{
			drugTokenAnt.setRoute(recurseNER.getRoute());
			drugTokenAnt.setRouteBegin(recurseNER.getRouteBegin());
			drugTokenAnt.setRouteEnd(recurseNER.getRouteEnd());
		}
		return keepScoreOfConfidence;
	}