diff --git a/app/src/main/java/com/example/hpostesting/data/constant/Constants.kt b/app/src/main/java/com/example/hpostesting/data/constant/Constants.kt index b32e98f..08b2ef8 100644 --- a/app/src/main/java/com/example/hpostesting/data/constant/Constants.kt +++ b/app/src/main/java/com/example/hpostesting/data/constant/Constants.kt @@ -179,6 +179,19 @@ object Constants { const val BUFFER_LED_LOWER_BOUND = 21000 const val BUFFER_LED_UPPER_BOUND = 24500 + const val TEST_STATUS_CODE_TEST_STARTED = 1.0 + const val TEST_STATUS_CODE_CONFIG_STARTED = 2.0 + const val TEST_STATUS_CODE_CONFIG_COMPLETED = 3.0 + const val TEST_STATUS_CODE_BUFFER_STARTED = 4.0 + const val TEST_STATUS_CODE_BUFFER_COMPLETED = 5.0 + const val TEST_STATUS_CODE_BUFFER_PRINT_STARTED = 6.0 + const val TEST_STATUS_CODE_BUFFER_PRINT_COMPLETED = 7.0 + const val TEST_STATUS_CODE_SAMPLE_STARTED = 8.0 + const val TEST_STATUS_CODE_SAMPLE_COMPLETED = 9.0 + const val TEST_STATUS_CODE_SAMPLE_PRINT_STARTED = 10.0 + const val TEST_STATUS_CODE_SAMPLE_PRINT_COMPLETED = 11.0 + const val TEST_STATUS_CODE_TEST_COMPLETED = 12.0 + val DEVICE_CONFIGURATION: Map>> = mapOf>>( "HCV-000-3001" to listOf( listOf(1.0, 0.0), // LED1, 435nm @@ -660,13 +673,19 @@ object Constants { listOf(0.2304, -0.0145), // LED3, 555nm listOf(1.0, 0.0) // LED4 ), + "HCV-000-3003" to listOf( + listOf(0.723142, -0.09135), // LED1, 435nm + listOf(0.581462456, -0.58502), // LED2, 415nm + listOf(0.1964, 0.011565), // LED3, 555nm + listOf(1.0, 0.0) // LED4, 560nm + ), ) val DEVICE_HB_PARAMETERS: Map>> = mapOf>>( "HCV-000-3001" to listOf( listOf(1.0, 0.0), // LED1, 435nm listOf(1.0, 0.0), // LED2, 415nm - listOf(42.241, -24.105), // LED3, 555nm + listOf(0.0305, 0.2067), // LED3, 555nm listOf(0.0258, 0.5534) // LED4, 560nm ), "HCV-000-3002" to listOf( diff --git a/app/src/main/java/com/example/hpostesting/presentation/adapter/UserListAdapter.kt b/app/src/main/java/com/example/hpostesting/presentation/adapter/UserListAdapter.kt index 763be7b..14d2cdc 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/adapter/UserListAdapter.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/adapter/UserListAdapter.kt @@ -26,7 +26,6 @@ import android.widget.AutoCompleteTextView import androidx.core.content.ContextCompat.getSystemService import androidx.core.content.getSystemService import androidx.fragment.app.FragmentActivity -import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel import com.google.firebase.firestore.FirebaseFirestore 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 e14ee93..18b4e33 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 @@ -653,7 +653,7 @@ class HemoCubeFragment : Fragment() { allErrorMessages += "Error: Invalid Test. Improper buffer reading (low)" activity?.runOnUiThread { binding.errorMessage.text = getString(R.string.error_improper_buffer_low) - binding.errorMessage.visibility = View.VISIBLE +// binding.errorMessage.visibility = View.VISIBLE } } @@ -690,10 +690,18 @@ class HemoCubeFragment : Fragment() { constant = Constants.DEVICE_CONFIGURATION[deviceHardwareId]?.get(2)?.get(1) fittedAbs3 = gradient?.times(led3Average)?.plus(constant!!)!! - gradient = Constants.DEVICE_CONFIGURATION[deviceHardwareId]?.get(3)?.get(0) - constant = Constants.DEVICE_CONFIGURATION[deviceHardwareId]?.get(3)?.get(1) + gradient = Constants.DEVICE_CONFIGURATION[deviceHardwareId]?.get(0)?.get(0) + constant = Constants.DEVICE_CONFIGURATION[deviceHardwareId]?.get(0)?.get(1) fittedAbs4 = gradient?.times(led4Average)?.plus(constant!!)!! + val slope1 = Constants.DEVICE_HB_PARAMETERS[deviceHardwareId]?.get(1)?.get(0) + val intercept1 = Constants.DEVICE_HB_PARAMETERS[deviceHardwareId]?.get(1)?.get(1) + val _hb1 = (led3Average - intercept1!!) / slope1!! + + val slope2 = Constants.DEVICE_HB_PARAMETERS[deviceHardwareId]?.get(3)?.get(0) + val intercept = Constants.DEVICE_HB_PARAMETERS[deviceHardwareId]?.get(3)?.get(1) + val _hb2 = (led4Average - intercept!!) / slope2!! + val slope3 = Constants.DEVICE_HB_PARAMETERS[deviceHardwareId]?.get(2)?.get(0) val intercept3 = Constants.DEVICE_HB_PARAMETERS[deviceHardwareId]?.get(2)?.get(1) val _hb3 = (led3Average - intercept3!!) / slope3!! @@ -713,7 +721,7 @@ class HemoCubeFragment : Fragment() { allErrorMessages += "Error: Invalid Test. Problem with de-oxygenation" + "\n" activity?.runOnUiThread { binding.errorMessage.text = getString(R.string.error_invalid_test) - binding.errorMessage.visibility = View.VISIBLE +// binding.errorMessage.visibility = View.VISIBLE } } @@ -721,7 +729,7 @@ class HemoCubeFragment : Fragment() { validationError = true activity?.runOnUiThread { binding.errorMessage.text = getString(R.string.error_negative_abs) - binding.errorMessage.visibility = View.VISIBLE +// binding.errorMessage.visibility = View.VISIBLE } } @@ -738,7 +746,7 @@ class HemoCubeFragment : Fragment() { allErrorMessages += "Error: Low Hb. Repeat test" + "\n" activity?.runOnUiThread { binding.errorMessage.text = "Error: Low Hb. Repeat test" - binding.errorMessage.visibility = View.VISIBLE +// binding.errorMessage.visibility = View.VISIBLE } } @@ -770,11 +778,12 @@ class HemoCubeFragment : Fragment() { this.coefficients = currentDeviceData?.coefficients?.get(0) .toString() + ", " + currentDeviceData?.coefficients?.get(1).toString() this.prdClassification = absorbanceBasedClassification(predictedDenovixRatio) - hemoCubeViewModel.messages.postValue("Hb3: $_hb3,\n Hb4: $_hb4") this.deviceRatioClass = deviceRatioClassification(deviceRatio) this.slopeRatioClass = slopeClass this.classificationResult = deviceRatioClass //findResult(calculatedRatio) hemoCubeViewModel.messages.postValue("${this.deviceRatioClass} ${if (led4Average < 0.17) " - Low Hb" else ""}\n") + if (DataHolder.hemoCubeTestData?.testType == "HB") + hemoCubeViewModel.messages.postValue("HB: $_hb4") this.errorMessages = allErrorMessages this.resultData = deviceLog this.batteryLevel = hemoCubeViewModel.getBatteryLevel().toString() diff --git a/app/src/main/res/layout/fragment_hemo_cube_reference.xml b/app/src/main/res/layout/fragment_hemo_cube_reference.xml index ca5c4b7..8c92390 100644 --- a/app/src/main/res/layout/fragment_hemo_cube_reference.xml +++ b/app/src/main/res/layout/fragment_hemo_cube_reference.xml @@ -62,7 +62,7 @@ android:id="@+id/tv_subtitle4" style="@style/title1_1" android:layout_width="0dp" - android:layout_height="80dp" + android:layout_height="wrap_content" android:layout_marginHorizontal="24dp" android:layout_marginTop="72dp" android:gravity="center"