diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt index 334346d..6935e03 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt @@ -304,10 +304,11 @@ class HemoCubeFragment : Fragment() { val led1Average = calculateAverage(led1BufferForDevice, led1Sample) val led2Average = calculateAverage(led2BufferForDevice, led2Sample) val deviceRatio = led1Average / led2Average - + val calculatedRatio = calculateRatio(deviceRatio) val isBufferValid = validateBuffer(led1BufferForDevice, led2BufferForDevice) val isSampleValid = validateSample(led1Sample, led1BufferForDevice, led2Sample, led2BufferForDevice) + val isCalculatedRatioValid = validateCalculatedRatio(deviceRatio) when { !isBufferValid -> showError( @@ -334,6 +335,11 @@ class HemoCubeFragment : Fragment() { ) } + !isCalculatedRatioValid -> showError( + "calculated Ratio error", + "Check for Empty curved, disconnected and reconnect the device, and please retest this sample again with a new blank" + ) + else -> processValidData( deviceSerialNo, led1BufferForDevice, @@ -344,7 +350,8 @@ class HemoCubeFragment : Fragment() { led1Average, led2Average, deviceRatio, - fullReadOutput + fullReadOutput, + calculatedRatio ) } @@ -381,6 +388,10 @@ class HemoCubeFragment : Fragment() { return average1 > 0.08 && average2 > 0.08 } + private fun validateCalculatedRatio(deviceRatio: Double): Boolean { + return deviceRatio > 0.08 && deviceRatio < 0.3 + } + private fun validateHighBloodVolume(average1: Double, average2: Double): Boolean { return average1 < 1.07 && average2 < 1.07 } @@ -399,7 +410,8 @@ class HemoCubeFragment : Fragment() { led1Average: Double, led2Average: Double, deviceRatio: Double, - resultData: String + resultData: String, + calculatedRatio: Double ) { val threshold = if ((activity as HemocubeActivity).bloodCollectingMethod == Constants.FINGER_PRICK_BLOOD) 0.05 else 0.06 @@ -415,7 +427,7 @@ class HemoCubeFragment : Fragment() { this.led1Average = led1Average this.led2Average = led2Average this.deviceRatio = deviceRatio - this.calculatedRatio = calculateRatio(deviceRatio) + this.calculatedRatio = calculatedRatio this.resultData = resultData if (!isBufferValueAvailable()) {