package uk.nhs.kch.rassyeyanie.rules.common.core.filters;
import org.apache.camel.Body;
import org.apache.commons.lang.StringUtils;
import ca.uhn.hl7v2.HL7Exception;
import ca.uhn.hl7v2.model.AbstractMessage;
import ca.uhn.hl7v2.model.v24.message.ORU_R01;
import ca.uhn.hl7v2.model.v24.segment.OBX;
public class EmptyResultsStatusFilter {
public boolean shouldProcessMessage(@Body AbstractMessage body)
throws HL7Exception {
ORU_R01 r01 = (ORU_R01) body;
boolean resultsStatus = true;
int resultCount = r01.getPATIENT_RESULT().getORDER_OBSERVATIONReps();
for (int i = 0; i < resultCount; i++){
int obxCount = r01.getPATIENT_RESULT().getORDER_OBSERVATION(i).getOBSERVATIONReps();
for (int j = 0; j < obxCount && resultsStatus; j++ ){
OBX obx = r01.getPATIENT_RESULT().getORDER_OBSERVATION(i).getOBSERVATION(j).getOBX();
resultsStatus = this.checkOBX11(obx.getObx11_ObservationResultStatus().getValue());
}
}
return (resultsStatus);
}
private boolean checkOBX11(String aResultStatus) {
return (StringUtils.isNotEmpty(aResultStatus));
}
}