Merge branch 'preprod' into 'LanguageTranslation'
# Conflicts: # app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt # app/src/main/java/com/example/hpostesting/presentation/KitScanActivity.kt # app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt # app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt
This commit is contained in:
@@ -19,8 +19,8 @@ android {
|
|||||||
applicationId "in.sminnovations.hpostesting"
|
applicationId "in.sminnovations.hpostesting"
|
||||||
minSdk 21
|
minSdk 21
|
||||||
targetSdk 34
|
targetSdk 34
|
||||||
versionCode 30
|
versionCode 39
|
||||||
versionName "2.1.30"
|
versionName "2.1.39"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
@@ -49,6 +49,9 @@ android {
|
|||||||
abortOnError false
|
abortOnError false
|
||||||
checkReleaseBuilds false
|
checkReleaseBuilds false
|
||||||
}
|
}
|
||||||
|
packagingOptions {
|
||||||
|
exclude 'mockito-extensions/org.mockito.plugins.MockMaker'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|||||||
@@ -80,34 +80,34 @@ object Constants {
|
|||||||
|
|
||||||
val DEVICE_CONFIGURATION: Map<String, List<List<Double>>> = mapOf<String, List<List<Double>>>(
|
val DEVICE_CONFIGURATION: Map<String, List<List<Double>>> = mapOf<String, List<List<Double>>>(
|
||||||
"HCV-000-3001" to listOf(
|
"HCV-000-3001" to listOf(
|
||||||
listOf(1.264817, -0.85965), // LED1, 435nm
|
listOf(1.313, -0.89), // LED1, 435nm
|
||||||
listOf(0.581462456, -0.58502), // LED2, 415nm
|
listOf(0.581462456, -0.58502), // LED2, 415nm
|
||||||
listOf(0.184991, 0.001704), // LED3, 555nm
|
listOf(0.2012, 0.0092), // LED3, 555nm
|
||||||
listOf(1.0, 0.0) // LED4
|
listOf(1.0, 0.0) // LED4
|
||||||
),
|
),
|
||||||
"HCV-000-3002" to listOf(
|
"HCV-000-3002" to listOf(
|
||||||
listOf(1.264817, -0.85965),
|
listOf(0.723142, -0.09135), // LED1, 435nm
|
||||||
listOf(0.581462456, -0.58502),
|
listOf(0.581462456, -0.58502), // LED2, 415nm
|
||||||
listOf(0.184991, 0.001704),
|
listOf(0.1964, 0.011565), // LED3, 555nm
|
||||||
listOf(1.0, 0.0)
|
listOf(1.0, 0.0) // LED4
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
const val INCUBATION_TIME_MIN = 15
|
const val INCUBATION_TIME_MIN = 0
|
||||||
const val INCUBATION_TIME_MAX = 30
|
const val INCUBATION_TIME_MAX = 1400
|
||||||
|
|
||||||
val BUFFER_INTENSITY_THRESHOLDS: Map<String, List<List<Int>>> = mapOf<String, List<List<Int>>>(
|
val BUFFER_INTENSITY_THRESHOLDS: Map<String, List<List<Int>>> = mapOf<String, List<List<Int>>>(
|
||||||
"HCV-000-3001" to listOf(
|
"HCV-000-3001" to listOf(
|
||||||
listOf(24000, 24500),
|
listOf(20000, 25074),
|
||||||
listOf(21000, 24500),
|
listOf(20000, 24596),
|
||||||
listOf(21000, 24500),
|
listOf(20000, 26065),
|
||||||
listOf(21000, 24500),
|
listOf(20000, 27093),
|
||||||
),
|
),
|
||||||
"HCV-000-3002" to listOf(
|
"HCV-000-3002" to listOf(
|
||||||
listOf(21000, 24500),
|
listOf(24500, 26250),
|
||||||
listOf(21000, 24500),
|
listOf(24500, 26250),
|
||||||
listOf(21000, 24500),
|
listOf(24500, 26250),
|
||||||
listOf(21000, 24500),
|
listOf(24500, 26250),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -11,7 +11,7 @@ import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
|||||||
import com.google.android.datatransport.runtime.dagger.Provides
|
import com.google.android.datatransport.runtime.dagger.Provides
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
||||||
@Database(entities = [UserData::class, HemoCubeTestData::class, DeviceData::class], version = 9, exportSchema = false)
|
@Database(entities = [UserData::class, HemoCubeTestData::class, DeviceData::class], version = 11, exportSchema = false)
|
||||||
@TypeConverters(Converters::class)
|
@TypeConverters(Converters::class)
|
||||||
abstract class MyDatabase : RoomDatabase() {
|
abstract class MyDatabase : RoomDatabase() {
|
||||||
abstract fun userDao(): UserDao
|
abstract fun userDao(): UserDao
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ data class HemoCubeTestData(
|
|||||||
var coefficients: String? = "",
|
var coefficients: String? = "",
|
||||||
var classificationResult: String = "",
|
var classificationResult: String = "",
|
||||||
var prdClassification: String = "",
|
var prdClassification: String = "",
|
||||||
|
var errorMessages: String = "",
|
||||||
var batteryLevel: String = "",
|
var batteryLevel: String = "",
|
||||||
var batteryCapacity: String = "",
|
var batteryCapacity: String = "",
|
||||||
var batteryMaxCapacity: String = "",
|
var batteryMaxCapacity: String = "",
|
||||||
|
|||||||
@@ -127,6 +127,15 @@ class KitScanActivity : AppCompatActivity() {
|
|||||||
val i = Intent(applicationContext, DashboardActivity::class.java)
|
val i = Intent(applicationContext, DashboardActivity::class.java)
|
||||||
startActivity(i)
|
startActivity(i)
|
||||||
finish()
|
finish()
|
||||||
|
} else {
|
||||||
|
DataHolder.kitSerial = binding.nameEditText.text.toString()
|
||||||
|
DataHolder.selectedTest?.kitSerial = binding.nameEditText.text.toString()
|
||||||
|
with(sharedPreference.edit()) {
|
||||||
|
putString(Constants.KIT_NUMBER, binding.nameEditText.text.toString())
|
||||||
|
putInt(Constants.KIT_COUNT, 1)
|
||||||
|
apply()
|
||||||
|
}
|
||||||
|
moveToNext()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(this, R.string.invalid_kit_number, Toast.LENGTH_LONG).show()
|
Toast.makeText(this, R.string.invalid_kit_number, Toast.LENGTH_LONG).show()
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ class HemoCubeFragment : Fragment() {
|
|||||||
private var _predictedDenovixRatio = 0.0
|
private var _predictedDenovixRatio = 0.0
|
||||||
private var validationError = false
|
private var validationError = false
|
||||||
private var deviceHardwareId = ""
|
private var deviceHardwareId = ""
|
||||||
|
private var allErrorMessages = ""
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?,
|
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?,
|
||||||
@@ -429,6 +430,7 @@ class HemoCubeFragment : Fragment() {
|
|||||||
|| led4BufferForDevice < Constants.BUFFER_INTENSITY_THRESHOLDS[deviceHardwareId]?.get(3)?.get(0)!!
|
|| led4BufferForDevice < Constants.BUFFER_INTENSITY_THRESHOLDS[deviceHardwareId]?.get(3)?.get(0)!!
|
||||||
) {
|
) {
|
||||||
validationError = true
|
validationError = true
|
||||||
|
allErrorMessages += "Error: Invalid Test. Improper buffer reading (low)"
|
||||||
activity?.runOnUiThread {
|
activity?.runOnUiThread {
|
||||||
binding.errorMessage.text = R.string.error_improper_buffer_low.toString()
|
binding.errorMessage.text = R.string.error_improper_buffer_low.toString()
|
||||||
binding.errorMessage.visibility = View.VISIBLE
|
binding.errorMessage.visibility = View.VISIBLE
|
||||||
@@ -441,6 +443,7 @@ class HemoCubeFragment : Fragment() {
|
|||||||
|| led4BufferForDevice > Constants.BUFFER_INTENSITY_THRESHOLDS[deviceHardwareId]?.get(3)?.get(1)!!
|
|| led4BufferForDevice > Constants.BUFFER_INTENSITY_THRESHOLDS[deviceHardwareId]?.get(3)?.get(1)!!
|
||||||
) {
|
) {
|
||||||
validationError = true
|
validationError = true
|
||||||
|
allErrorMessages += "Error: Invalid Test. Improper buffer reading (high)" + "\n"
|
||||||
activity?.runOnUiThread {
|
activity?.runOnUiThread {
|
||||||
binding.errorMessage.text =
|
binding.errorMessage.text =
|
||||||
R.string.error_improper_buffer_high.toString()
|
R.string.error_improper_buffer_high.toString()
|
||||||
@@ -470,6 +473,7 @@ class HemoCubeFragment : Fragment() {
|
|||||||
|
|
||||||
if (fittedAbs1!! <= fittedAbs2!!) {
|
if (fittedAbs1!! <= fittedAbs2!!) {
|
||||||
validationError = true
|
validationError = true
|
||||||
|
allErrorMessages += "Error: Invalid Test. Problem with de-oxygenation" + "\n"
|
||||||
activity?.runOnUiThread {
|
activity?.runOnUiThread {
|
||||||
binding.errorMessage.text = R.string.error_invalid_test.toString()
|
binding.errorMessage.text = R.string.error_invalid_test.toString()
|
||||||
binding.errorMessage.visibility = View.VISIBLE
|
binding.errorMessage.visibility = View.VISIBLE
|
||||||
@@ -484,6 +488,15 @@ class HemoCubeFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fittedAbs3 < 0.1) {
|
||||||
|
validationError = true
|
||||||
|
allErrorMessages += "Error: Low Hb. Repeat test" + "\n"
|
||||||
|
activity?.runOnUiThread {
|
||||||
|
binding.errorMessage.text = "Error: Low Hb. Repeat test"
|
||||||
|
binding.errorMessage.visibility = View.VISIBLE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DataHolder.hemoCubeTestData?.apply {
|
DataHolder.hemoCubeTestData?.apply {
|
||||||
deviceId = sharedPreferences.getString(Constants.DEVICE_ID, "").toString()
|
deviceId = sharedPreferences.getString(Constants.DEVICE_ID, "").toString()
|
||||||
led1Buffer = led1BufferForDevice
|
led1Buffer = led1BufferForDevice
|
||||||
@@ -511,6 +524,7 @@ class HemoCubeFragment : Fragment() {
|
|||||||
this.classificationResult = findResult(calculatedRatio)
|
this.classificationResult = findResult(calculatedRatio)
|
||||||
this.prdClassification = absorbanceBasedClassification(predictedDenovixRatio)
|
this.prdClassification = absorbanceBasedClassification(predictedDenovixRatio)
|
||||||
hemoCubeViewModel.messages.postValue(this.prdClassification)
|
hemoCubeViewModel.messages.postValue(this.prdClassification)
|
||||||
|
this.errorMessages = allErrorMessages
|
||||||
this.resultData = deviceLog
|
this.resultData = deviceLog
|
||||||
this.batteryLevel = hemoCubeViewModel.getBatteryLevel().toString()
|
this.batteryLevel = hemoCubeViewModel.getBatteryLevel().toString()
|
||||||
this.batteryCapacity = hemoCubeViewModel.getBatteryCapacity(requireContext()).toString()
|
this.batteryCapacity = hemoCubeViewModel.getBatteryCapacity(requireContext()).toString()
|
||||||
@@ -529,14 +543,14 @@ class HemoCubeFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!validationError) {
|
// if (!validationError) {
|
||||||
activity?.runOnUiThread {
|
activity?.runOnUiThread {
|
||||||
binding.btnSubmit.visibility = View.VISIBLE
|
binding.btnSubmit.visibility = View.VISIBLE
|
||||||
binding.btnSubmit.isEnabled = true
|
binding.btnSubmit.isEnabled = true
|
||||||
binding.btnSubmit.isClickable = true
|
binding.btnSubmit.isClickable = true
|
||||||
binding.clParent.setBackgroundColor(Color.parseColor("#edfffd"))
|
binding.clParent.setBackgroundColor(Color.parseColor("#edfffd"))
|
||||||
}
|
}
|
||||||
}
|
// }
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Toast.makeText(
|
Toast.makeText(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
|
|||||||
Reference in New Issue
Block a user