Iterator firItr = FSUtil.getAnnotationsIteratorInSpan(jcas,
FrequencyUnitAnnotation.type, beginOffset, endOffset + 1);
while (firItr.hasNext()) {
FrequencyUnitAnnotation da = (FrequencyUnitAnnotation) firItr
.next();
if (da.getBegin() == beginOffset && da.getPeriod() > holdLargestPeriod) {
holdLargestPeriod = da.getPeriod();
int posHyph = da.getCoveredText().lastIndexOf('-');
String lastTerm = da.getCoveredText();
int szString = lastTerm.toString().length();
if (posHyph > 0) {
lastTerm = lastTerm.substring(posHyph + 1, szString);
}
if (da.getPeriod() == FrequencyUnitToken.QUANTITY_ONE) {
return FrequencyUnitElement.DAILY;
} else if (da.getPeriod() == FrequencyUnitToken.QUANTITY_TWO) {
if (frequency != null
&& (frequency.getBeginOffset() != beginOffset && frequency
.getEndOffset() != endOffset)) {
if ((dosage == null
|| (dosage != null
&& convertFromTextToNum(
dosage.getDosage()).compareTo(
"1") == 0 && (dosage
.getBeginOffset() != beginOffset && dosage
.getEndOffset() != endOffset)))
&& (changeStatus != null && (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.OTHER) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASEFROM) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASEFROM) != 0))) {
setFrequencyElement(
frequency.getFrequencyMention(), frequency
.getBeginOffset(), frequency
.getEndOffset());
} else {
double updateFreq = new Double(frequency
.getFrequencyMention()).doubleValue() * 2.0;
setFrequencyElement(String.valueOf(updateFreq), beginOffset,
endOffset);
}
} else {
setFrequencyElement("2.0", beginOffset, endOffset);
}
return FrequencyUnitElement.DAILY;
} else if (da.getPeriod() == FrequencyUnitToken.QUANTITY_THREE) {
if (frequency != null
&& (frequency.getBeginOffset() != beginOffset && frequency
.getEndOffset() != endOffset)) {
if ((dosage == null
|| (dosage != null
&& convertFromTextToNum(
dosage.getDosage()).compareTo(
"1") == 0 && (dosage
.getBeginOffset() != beginOffset && dosage
.getEndOffset() != endOffset)))
&& (changeStatus != null && (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.OTHER) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASEFROM) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASEFROM) != 0))){
setFrequencyElement(
frequency.getFrequencyMention(), frequency
.getBeginOffset(), frequency
.getEndOffset());
} else {
double updateFreq = new Double(frequency
.getFrequencyMention()).doubleValue() * 3.0;
setFrequencyElement(String.valueOf(updateFreq), beginOffset,
endOffset);
}
} else {
setFrequencyElement("3.0", beginOffset, endOffset);
}
return FrequencyUnitElement.DAILY;
} else if (da.getPeriod() == FrequencyUnitToken.QUANTITY_FOUR) {
if (frequency != null
&& (frequency.getBeginOffset() != beginOffset && frequency
.getEndOffset() != endOffset)) {
if ((dosage == null
|| (dosage != null
&& convertFromTextToNum(
dosage.getDosage()).compareTo(
"1") == 0 && (dosage
.getBeginOffset() != beginOffset && dosage
.getEndOffset() != endOffset)))
&& (changeStatus != null && (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.OTHER) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASEFROM) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASEFROM) != 0))) {
setFrequencyElement(
frequency.getFrequencyMention(), frequency
.getBeginOffset(), frequency
.getEndOffset());
} else {
double updateFreq = new Double(frequency
.getFrequencyMention()).doubleValue() * 4.0;
setFrequencyElement(String.valueOf(updateFreq), beginOffset,
endOffset);
}
} else {
setFrequencyElement("4.0", beginOffset, endOffset);
}
return FrequencyUnitElement.DAILY;
} else if (da.getPeriod() == FrequencyUnitToken.QUANTITY_FIVE) {
if (frequency != null
&& (frequency.getBeginOffset() != beginOffset && frequency
.getEndOffset() != endOffset)) {
if ((dosage == null
|| (dosage != null
&& convertFromTextToNum(
dosage.getDosage()).compareTo(
"1") == 0 && (dosage
.getBeginOffset() != beginOffset && dosage
.getEndOffset() != endOffset)))
&& (changeStatus != null && (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.OTHER) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASEFROM) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASEFROM) != 0))){
setFrequencyElement(
frequency.getFrequencyMention(), frequency
.getBeginOffset(), frequency
.getEndOffset());
} else {
double updateFreq = new Double(frequency
.getFrequencyMention()).doubleValue() * 5.0;
setFrequencyElement(String.valueOf(updateFreq), beginOffset,
endOffset);
}
} else {
setFrequencyElement("5.0", beginOffset, endOffset);
}
return FrequencyUnitElement.DAILY;
} else if (da.getPeriod() == FrequencyUnitToken.QUANTITY_SIX) {
if (frequency != null
&& (frequency.getBeginOffset() != beginOffset && frequency
.getEndOffset() != endOffset)) {
if ((dosage == null
|| (dosage != null
&& convertFromTextToNum(
dosage.getDosage()).compareTo(
"1") == 0 && (dosage
.getBeginOffset() != beginOffset && dosage
.getEndOffset() != endOffset)))
&& (changeStatus != null && (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.OTHER) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASEFROM) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASEFROM) != 0))) {
setFrequencyElement(
frequency.getFrequencyMention(), frequency
.getBeginOffset(), frequency
.getEndOffset());
} else {
double updateFreq = new Double(frequency
.getFrequencyMention()).doubleValue() * 6.0;
setFrequencyElement(String.valueOf(updateFreq), beginOffset,
endOffset);
}
} else {
setFrequencyElement("6.0", beginOffset, endOffset);
}
return FrequencyUnitElement.DAILY;
} else if (da.getPeriod() == FrequencyUnitToken.QUANTITY_SEVEN) {
if (frequency != null
&& (frequency.getBeginOffset() != beginOffset && frequency
.getEndOffset() != endOffset)) {
if ((dosage == null
|| (dosage != null
&& convertFromTextToNum(
dosage.getDosage()).compareTo(
"1") == 0 && (dosage
.getBeginOffset() != beginOffset && dosage
.getEndOffset() != endOffset)))
&& (changeStatus != null && (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.OTHER) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASEFROM) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASEFROM) != 0))){
setFrequencyElement(
frequency.getFrequencyMention(), frequency
.getBeginOffset(), frequency
.getEndOffset());
} else {
double updateFreq = new Double(frequency
.getFrequencyMention()).doubleValue() * 7.0;
setFrequencyElement(String.valueOf(updateFreq), beginOffset,
endOffset);
}
} else {
setFrequencyElement("7.0", beginOffset, endOffset);
}
return FrequencyUnitElement.DAILY;
} else if (da.getPeriod() == FrequencyUnitToken.QUANTITY_EIGHT) {
if (frequency != null
&& (frequency.getBeginOffset() != beginOffset && frequency
.getEndOffset() != endOffset)) {
if ((dosage == null
|| (dosage != null
&& convertFromTextToNum(
dosage.getDosage()).compareTo(
"1") == 0 && (dosage
.getBeginOffset() != beginOffset && dosage
.getEndOffset() != endOffset)))
&& (changeStatus != null && (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.OTHER) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.DECREASEFROM) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASE) != 0)
&& (changeStatus.getDrugChangeStatus().compareTo(DrugChangeStatusToken.INCREASEFROM) != 0))) {
setFrequencyElement(
frequency.getFrequencyMention(), frequency
.getBeginOffset(), frequency
.getEndOffset());
} else {
double updateFreq = new Double(frequency
.getFrequencyMention()).doubleValue() * 8.0;
setFrequencyElement(String.valueOf(updateFreq), beginOffset,
endOffset);
}
} else {
setFrequencyElement("8.0", beginOffset, endOffset);
}
return FrequencyUnitElement.DAILY;
} else if (da.getPeriod() == new Float(
FrequencyUnitToken.QUANTITY_EVERY_OTHER_DAY)
.floatValue()) {
return FrequencyUnitElement.EVERYOTHERDAY;
} else if (da.getPeriod() == new Float(
FrequencyUnitToken.QUANTITY_WEEKLY).floatValue()) {
return FrequencyUnitElement.WEEKLY;
} else if (da.getPeriod() == new Float(
FrequencyUnitToken.QUANTITY_MONTHLY).floatValue()) {
return FrequencyUnitElement.MONTHLY;
} else if (da.getPeriod() == FrequencyUnitToken.QUANTITY_PRN) {
return FrequencyUnitElement.ASNEEDED;
}
return lastTerm;
}