diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 245f817..ea83f8c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -116,7 +116,7 @@
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 a9b4632..3c613cb 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
@@ -55,6 +55,7 @@ object Constants {
const val USER_ID = "usernameId"
const val QUICK_CAPTURE_SOLUTION = "SOLUTION"
+ const val QUICK_CAPTURE_FOR_ADMIN = "ADMIN"
const val QUICK_CAPTURE_CONCENTRATION = "CONCENTRATION"
const val QUICK_CAPTURE_VOLUME = "VOLUME"
const val QUICK_CAPTURE_READING_PER_SAMPLE = "READING_PER_SAMPLE"
diff --git a/app/src/main/java/com/example/hpostesting/data/constant/HemoCubeCommands.kt b/app/src/main/java/com/example/hpostesting/data/constant/HemoCubeCommands.kt
index 5edd02b..993b8fd 100644
--- a/app/src/main/java/com/example/hpostesting/data/constant/HemoCubeCommands.kt
+++ b/app/src/main/java/com/example/hpostesting/data/constant/HemoCubeCommands.kt
@@ -15,4 +15,5 @@ enum class HemoCubeCommands(val command: String) {
SECOND_GAIN_COMMAND("U\r"),
THIRD_GAIN_COMMAND("V\r"),
FORTH_GAIN_COMMAND("W\r"),
+ CHECK_CUVETTE_COMMAND("L\r"),
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/hpostesting/data/constant/TestStatus.kt b/app/src/main/java/com/example/hpostesting/data/constant/TestStatus.kt
index f40e4ac..86c4fb0 100644
--- a/app/src/main/java/com/example/hpostesting/data/constant/TestStatus.kt
+++ b/app/src/main/java/com/example/hpostesting/data/constant/TestStatus.kt
@@ -10,8 +10,12 @@ enum class TestStatus(val code: Double) {
FIRST_EMPTY_AIR_READING_PRINT_COMPLETED(4.4),
EPROM_ADC_RETRIEVAL_STARTED(4.5),
EPROM_ADC_RETRIEVAL_COMPLETED(4.6),
- BUFFER_STARTED(4.7),
- BUFFER_COMPLETED(5.0),
+ CUVETTE_ABSENT(4.7),
+ CUVETTE_PRESENT(4.8),
+ CUVETTE_ABSENTS(7.7),
+ CUVETTE_PRESENTS(7.8),
+ BUFFER_STARTED(4.9),
+ BUFFER_COMPLETED(5.1),
BUFFER_PRINT_STARTED(6.0),
BUFFER_PRINT_COMPLETED(7.0),
SAMPLE_STARTED(8.0),
diff --git a/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt b/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt
index 6776455..002fb30 100644
--- a/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt
+++ b/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt
@@ -10,7 +10,7 @@ import com.example.hpostesting.data.model.patient.UserData
@Database(
entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class],
- version = 29,
+ version = 30,
exportSchema = false
)
@TypeConverters(Converters::class)
diff --git a/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSource.kt b/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSource.kt
index 4983c11..eaccd9d 100644
--- a/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSource.kt
+++ b/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSource.kt
@@ -11,4 +11,6 @@ interface LocalFileDataSource {
fun exportDataToCSV(
fileName: String, dataList: List,
): Boolean
+ fun backUpDataToCSV(fileName: String, dataList: List)
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSourceImpl.kt b/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSourceImpl.kt
index a6c8f37..d217c92 100644
--- a/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSourceImpl.kt
+++ b/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSourceImpl.kt
@@ -153,6 +153,127 @@ class LocalFileDataSourceImpl @Inject constructor() : LocalFileDataSource {
}
}
+ override fun backUpDataToCSV(fileName: String, dataList: List) {
+ try {
+ val filePath = File(getExternalStorageDirectory(), fileName)
+ val writer = FileWriter(filePath)
+ val csvWriter = CSVWriter(writer)
+ // Write CSV header
+ val header = arrayOf(
+ "_id",
+ "name",
+ "incubationTime",
+ "bloodGroup",
+ "birthYear", // Include other fields from the data class
+ "state",
+ "abhaId",
+ "userImageURL",
+ "location",
+ "reportUploadTime",
+ "testType",
+ "testTime",
+ "testStatus",
+ "gender",
+ "localFlag", // Add more fields as necessary
+ "deviceId",
+ "appVersion",
+ "deviceSerialNumber",
+ "deviceType",
+ "kitSerial",
+ "resultData",
+ "led1Buffer",
+ "led2Buffer",
+ "led3Buffer",
+ "led4Buffer",
+ "led1Sample",
+ "led2Sample",
+ "led3Sample",
+ "led4Sample",
+ "led1Average",
+ "led2Average",
+ "led3Average",
+ "led4Average",
+ "abs1",
+ "abs2",
+ "abs3",
+ "abs4",
+ "deviceRatio",
+ "calculatedRatio",
+ "predictedDenovixRatio",
+ "coefficients",
+ "classificationResult",
+ "prdClassification",
+ "errorMessages",
+ "batteryLevel",
+ "batteryCapacity",
+ "batteryMaxCapacity",
+ "batteryTemperature",
+ "batteryVoltage"
+ )
+ csvWriter.writeNext(header)
+
+ // Filter and write data rows where testStatus is true
+ val filteredDataList = dataList.filter { it.testStatus == true }
+ for (data in filteredDataList) {
+ val row = arrayOf(
+ data._id,
+ data.name,
+ data.incubationTime,
+ data.bloodGroup,
+ data.birthYear, // Include other fields similarly
+ data.state,
+ data.abhaId,
+ data.userImageURL,
+ data.location?.toString(),
+ data.reportUploadTime ?: "",
+ data.testType ?: "",
+ data.testTime ?: "",
+ data.testStatus?.toString() ?: "",
+ data.gender,
+ data.localFlag.toString(),
+ data.deviceId ?: "",
+ data.appVersion ?: "",
+ data.deviceSerialNumber,
+ data.deviceType,
+ data.kitSerial,
+ data.resultData,
+ data.led1Buffer?.toString() ?: "",
+ data.led2Buffer?.toString() ?: "",
+ data.led3Buffer?.toString() ?: "",
+ data.led4Buffer?.toString() ?: "",
+ data.led1Sample?.toString() ?: "",
+ data.led2Sample?.toString() ?: "",
+ data.led3Sample?.toString() ?: "",
+ data.led4Sample?.toString() ?: "",
+ data.led1Average?.toString() ?: "",
+ data.led2Average?.toString() ?: "",
+ data.led3Average?.toString() ?: "",
+ data.led4Average?.toString() ?: "",
+ data.abs1?.toString() ?: "",
+ data.abs2?.toString() ?: "",
+ data.abs3?.toString() ?: "",
+ data.abs4?.toString() ?: "",
+ data.deviceRatio?.toString() ?: "",
+ data.calculatedRatio?.toString() ?: "",
+ data.predictedDenovixRatio?.toString() ?: "",
+ data.coefficients ?: "",
+ data.classificationResult,
+ data.prdClassification,
+ data.errorMessages,
+ data.batteryLevel,
+ data.batteryCapacity,
+ data.batteryMaxCapacity,
+ data.batteryTemperature,
+ data.batteryVoltage
+ )
+ csvWriter.writeNext(row)
+ }
+ writer.close()
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+ }
+
private fun getExternalStorageDirectory(): File {
val folder = File(Environment.getExternalStorageDirectory(), "HposFolder")
diff --git a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt
index 88fbf60..2f7a862 100644
--- a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt
+++ b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt
@@ -90,6 +90,7 @@ data class HemoCubeTestData(
var quickCapture: Boolean = false,
var solution: String? = "",
var concentration: String? = "",
+ var filter: String? = "",
var volume: String? = "",
var isCSVCreated: Boolean = false,
)
diff --git a/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt
index df19e76..433c31a 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt
@@ -44,7 +44,6 @@ class AssuranceControlsFragment : Fragment() {
private fun initViews() {
// binding.btnSubmit.visibility = View.GONE
-
val solutionSpinner: Spinner = binding.spinnerSolutions
val solutionOptions = arrayOf("Select solution", "Tartrazine", "Acid Red")
val solutionAdapter =
@@ -123,6 +122,27 @@ class AssuranceControlsFragment : Fragment() {
}
}
+
+ val adminspinner: Spinner = binding.spinnerAdmin
+ val adminOptions = arrayOf("Select options", "Sickle-Cert-Buffer", "1 Abs Holo Filter", "0.25 Abs Holo Filter", "Air Blank")
+ val adminAdapter =
+ ArrayAdapter(requireContext(), R.layout.simple_spinner_item, adminOptions)
+ adminAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
+ adminspinner.adapter =adminAdapter
+ adminspinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
+ override fun onItemSelected(
+ parent: AdapterView<*>?,
+ view: View?,
+ position: Int,
+ id: Long,
+ ) {
+ val selectedValue: String = adminOptions[position]
+
+ }
+
+ override fun onNothingSelected(parent: AdapterView<*>?) {
+ }
+ }
// load saved values
val savedSolution =
sharedPreferences.getString(Constants.QUICK_CAPTURE_SOLUTION, "").toString()
@@ -139,18 +159,30 @@ class AssuranceControlsFragment : Fragment() {
val volumePosition = getPositionOfValue(savedVolume, volumeOptions.toList())
volumeSpinner.setSelection(volumePosition)
+
+ val foradmin =
+ sharedPreferences.getString(Constants.QUICK_CAPTURE_FOR_ADMIN, "").toString()
+ val adminPosition = getPositionOfValue(foradmin, adminOptions.toList())
+ adminspinner.setSelection(adminPosition)
+
binding.btnSubmit.setOnClickListener {
val selectedSolution = binding.spinnerSolutions.selectedItem.toString()
val selectedConcentration = binding.spinnerConcentration.selectedItem.toString()
+ val selectedadminOption = binding.spinnerAdmin.selectedItem.toString()
// Check if any of the selections are default values
- if (selectedSolution == "Select solution") {
- Toast.makeText(requireContext(), "Please select a solution", Toast.LENGTH_LONG).show()
- return@setOnClickListener // Prevent further execution
- }
+// if (selectedSolution == "Select solution") {
+// Toast.makeText(requireContext(), "Please select a solution", Toast.LENGTH_LONG).show()
+// return@setOnClickListener // Prevent further execution
+// }
+//
+// if (selectedConcentration == "Select concentration") {
+// Toast.makeText(requireContext(), "Please select a concentration", Toast.LENGTH_LONG).show()
+// return@setOnClickListener // Prevent further execution
+// }
- if (selectedConcentration == "Select concentration") {
- Toast.makeText(requireContext(), "Please select a concentration", Toast.LENGTH_LONG).show()
+ if (selectedadminOption == "Select options") {
+ Toast.makeText(requireContext(), "Please select a option", Toast.LENGTH_LONG).show()
return@setOnClickListener // Prevent further execution
}
DataHolder.hemoCubeTestData!!.quickCapture = true
@@ -162,7 +194,14 @@ class AssuranceControlsFragment : Fragment() {
DataHolder.hemoCubeTestData!!._id = currentUnixTime.toString() + "SMI"
DataHolder.hemoCubeTestData!!.solution = binding.spinnerSolutions.selectedItem.toString()
DataHolder.hemoCubeTestData!!.concentration = binding.spinnerConcentration.selectedItem.toString()
- DataHolder.hemoCubeTestData!!.name = "${DataHolder.hemoCubeTestData!!.solution} ${DataHolder.hemoCubeTestData!!.concentration} ${DataHolder.hemoCubeTestData!!.volume}"
+ DataHolder.hemoCubeTestData!!.filter = binding.spinnerAdmin.selectedItem.toString()
+ if(binding.spinnerAdmin.selectedItem.toString().equals("Select options")){
+ Toast.makeText(requireContext(), "Please select a option", Toast.LENGTH_LONG).show()
+ }else {
+ DataHolder.hemoCubeTestData!!.name = DataHolder.hemoCubeTestData!!.filter.toString()
+ }
+
+
DataHolder.selectedTest = UserData()
DataHolder.selectedTest?._id = DataHolder.hemoCubeTestData!!._id
@@ -175,6 +214,7 @@ class AssuranceControlsFragment : Fragment() {
DataHolder.hemoCubeTestData!!.concentration
)
putString(Constants.QUICK_CAPTURE_VOLUME, DataHolder.hemoCubeTestData!!.volume)
+ putString(Constants.QUICK_CAPTURE_FOR_ADMIN, DataHolder.hemoCubeTestData!!.filter)
apply()
}
diff --git a/app/src/main/java/com/example/hpostesting/presentation/autodac/AutoDacActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/autodac/AutoDacActivity.kt
index 351e285..c70fccf 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/autodac/AutoDacActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/autodac/AutoDacActivity.kt
@@ -23,7 +23,7 @@ import androidx.core.view.get
import com.example.hpostesting.data.constant.DataHolder
import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.LanguageManager
-import com.example.hpostesting.presentation.testRight.UsbService
+import com.example.hpostesting.util.UsbService
import com.hoho.android.usbserial.driver.UsbSerialDriver
import com.hoho.android.usbserial.driver.UsbSerialProber
import dagger.hilt.android.AndroidEntryPoint
diff --git a/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemocubeBufferCheckActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemocubeBufferCheckActivity.kt
index dd1ab96..74a9d99 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemocubeBufferCheckActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemocubeBufferCheckActivity.kt
@@ -24,7 +24,7 @@ import com.example.hpostesting.data.constant.DataHolder
import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.LanguageManager
import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel
-import com.example.hpostesting.presentation.testRight.UsbService
+import com.example.hpostesting.util.UsbService
import com.hoho.android.usbserial.driver.UsbSerialDriver
import com.hoho.android.usbserial.driver.UsbSerialProber
import dagger.hilt.android.AndroidEntryPoint
diff --git a/app/src/main/java/com/example/hpostesting/presentation/calibration/CalibrationActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/calibration/CalibrationActivity.kt
index 1753cce..db14f47 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/calibration/CalibrationActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/calibration/CalibrationActivity.kt
@@ -23,7 +23,7 @@ import androidx.core.view.get
import com.example.hpostesting.data.constant.DataHolder
import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.LanguageManager
-import com.example.hpostesting.presentation.testRight.UsbService
+import com.example.hpostesting.util.UsbService
import com.hoho.android.usbserial.driver.UsbSerialDriver
import com.hoho.android.usbserial.driver.UsbSerialProber
import dagger.hilt.android.AndroidEntryPoint
diff --git a/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceActivity.kt
index 94e58e1..421061d 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceActivity.kt
@@ -27,7 +27,7 @@ import com.example.hpostesting.data.constant.HemoCubeCommands
import com.example.hpostesting.data.constant.LanguageManager
import com.example.hpostesting.presentation.utils.DeviceCommunicationHandler
import com.example.hpostesting.presentation.utils.UsbServiceListener
-import com.example.hpostesting.presentation.testRight.UsbService
+import com.example.hpostesting.util.UsbService
import com.hoho.android.usbserial.driver.UsbSerialDriver
import com.hoho.android.usbserial.driver.UsbSerialProber
import dagger.hilt.android.AndroidEntryPoint
diff --git a/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionActivity.kt
index 2fbafcc..107d782 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionActivity.kt
@@ -26,7 +26,7 @@ import com.example.hpostesting.data.constant.HemoCubeCommands
import com.example.hpostesting.data.constant.LanguageManager
import com.example.hpostesting.presentation.utils.DeviceCommunicationHandler
import com.example.hpostesting.presentation.utils.UsbServiceListener
-import com.example.hpostesting.presentation.testRight.UsbService
+import com.example.hpostesting.util.UsbService
import com.hoho.android.usbserial.driver.UsbSerialDriver
import com.hoho.android.usbserial.driver.UsbSerialProber
import dagger.hilt.android.AndroidEntryPoint
diff --git a/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsActivity.kt
index 74b2414..6a41736 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsActivity.kt
@@ -23,7 +23,7 @@ import androidx.core.view.get
import com.example.hpostesting.data.constant.DataHolder
import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.LanguageManager
-import com.example.hpostesting.presentation.testRight.UsbService
+import com.example.hpostesting.util.UsbService
import com.hoho.android.usbserial.driver.UsbSerialDriver
import com.hoho.android.usbserial.driver.UsbSerialProber
import dagger.hilt.android.AndroidEntryPoint
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 9a23c11..cfe5d24 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
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
+import android.graphics.Color
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
@@ -35,7 +36,9 @@ import kotlin.math.log10
@Suppress("MemberVisibilityCanBePrivate")
class HemoCubeFragment : Fragment() {
-
+ private var checkCuvette = false
+ private var checkCuvetteSam = false
+ private var sampleClick = false
private lateinit var binding: FragmentHemoCubeReferenceBinding
private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels()
private lateinit var sharedPreferences: SharedPreferences
@@ -111,33 +114,63 @@ class HemoCubeFragment : Fragment() {
binding.nameEditText.visibility = View.GONE
binding.tvTitle.visibility = View.GONE
binding.btnGo.visibility = View.GONE
- binding.btnPlacebuffer.visibility = View.GONE
+// binding.btnPlacebuffer.visibility = View.GONE
binding.tvName.text = "Name: ${testDetails?.name}\n ID: ${testDetails?._id}"
binding.tvSubtitle4.text = "Config"
- binding.btnSamplestart.setOnClickListener {
- activity?.runOnUiThread {
- binding.tvSubtitle4.visibility = View.VISIBLE
-// binding.tvSubtitle4.text = "Sample Started"
+
+ if (isBufferValueAvailable() || !Constants.BLANK_EVERY_TEST) {
+ binding.btnPlacebuffer.apply {
+ setBackgroundColor(Color.GREEN) // Set button background color to green
+ text = "Fresh Buffer" // Change button text to "Buffer Exists"
+ }
+ }else if(!isBufferValueAvailable() || Constants.BLANK_EVERY_TEST){
+ binding.btnPlacebuffer.apply {
+ setBackgroundColor(Color.RED) // Set button background color to green
+ text = "No Buffer" // Change button text to "Buffer Exists"
}
- startSampleProcess()
- it.visibility = View.GONE
}
- binding.btnPlacebuffer.setOnClickListener {
- if (isBufferValueAvailable() || !Constants.BLANK_EVERY_TEST) {
- showBufferAlertDialog()
- } else {
+
+ binding.btnSamplestart.setOnClickListener {
+ sampleClick = true
+ if(checkCuvetteSam){
activity?.runOnUiThread {
binding.tvSubtitle4.visibility = View.VISIBLE
-// binding.tvSubtitle4.text = "Buffer Started"
+// binding.tvSubtitle4.text = "Sample Started"
}
-
- checkAndStartProcess()
- it.visibility = View.GONE
+ startSampleProcess()
+// it.visibility = View.GONE
+ }else{
+ checkCuvettePresence()
}
}
+ binding.btnRetryCheckCuvette.setOnClickListener {
+
+ checkCuvettePresence()
+ }
+ binding.btnPlacebuffer.setOnClickListener {
+ if(checkCuvette){
+
+ startBufferProcess()
+// if (isBufferValueAvailable() || !Constants.BLANK_EVERY_TEST) {
+//// showBufferAlertDialog()
+// } else {
+ activity?.runOnUiThread {
+ binding.tvSubtitle4.visibility = View.VISIBLE
+// binding.tvSubtitle4.text = "Buffer Started"
+ }
+
+ // checkAndStartProcess()
+
+// it.visibility = View.GONE
+// }
+ }else{
+ checkCuvettePresence()
+ }
+
+ }
if (sharedPreferences.getString(Constants.USER_ID, "").toString() == "ADMIN") {
activity?.runOnUiThread {
@@ -261,9 +294,9 @@ class HemoCubeFragment : Fragment() {
currentResultData = ""
}
- private fun checkAndStartProcess() {
- startBufferProcess()
- }
+// private fun checkAndStartProcess() {
+// startBufferProcess()
+// }
private fun isBufferValueAvailable(): Boolean {
return try {
@@ -314,7 +347,7 @@ class HemoCubeFragment : Fragment() {
override fun onClickPositiveButton() {
activity?.runOnUiThread {
- binding.btnPlacebuffer.visibility = View.GONE
+// binding.btnPlacebuffer.visibility = View.GONE
binding.btnSamplestart.visibility = View.VISIBLE
binding.tvSubtitle4.text = getString(R.string.place_sample)
}
@@ -391,7 +424,7 @@ class HemoCubeFragment : Fragment() {
resultData += stringData
currentResultData += stringData
hemoCubeViewModel.deviceMessages.postValue(currentResultData)
-
+ Log.e("testStatus",this.testStatusCode.toString())
when {
resultData.contains("SNE") && this.testStatusCode < TestStatus.CONFIG_COMPLETED.code -> {
processV2HardwareId(resultData)
@@ -418,20 +451,51 @@ class HemoCubeFragment : Fragment() {
(resultData.contains("#RC") && this.testStatusCode < TestStatus.EPROM_ADC_RETRIEVAL_COMPLETED.code) -> {
this.testStatusCode = TestStatus.EPROM_ADC_RETRIEVAL_COMPLETED.code
hemoCubeViewModel.messages.postValue("EPROM ADC Loaded")
- showStartBufferButton()
+ //checkCuvettePresence()
+ }
+ resultData.contains("#CIN") && sampleClick && this.testStatusCode < TestStatus.CUVETTE_PRESENTS.code -> {
+ hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_present))
+ this.testStatusCode = TestStatus.CUVETTE_PRESENTS.code
+ activity?.runOnUiThread {
+ checkCuvetteSam = true
+ binding.btnRetryCheckCuvette.visibility = View.GONE
+ }
+ }
+ resultData.contains("#AIN") && sampleClick && this.testStatusCode <= TestStatus.CUVETTE_ABSENTS.code -> {
+ hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_absent))
+ this.testStatusCode = TestStatus.CUVETTE_ABSENTS.code
+ showRetryButtonForCuvette()
}
+ resultData.contains("#CIN") && this.testStatusCode < TestStatus.CUVETTE_PRESENT.code -> {
+ hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_present))
+ this.testStatusCode = TestStatus.CUVETTE_PRESENT.code
+ activity?.runOnUiThread {
+ checkCuvette = true
+ binding.btnRetryCheckCuvette.visibility = View.GONE
+ }
+ }
+ resultData.contains("#AIN") && this.testStatusCode <= TestStatus.CUVETTE_ABSENT.code -> {
+ hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_absent))
+ this.testStatusCode = TestStatus.CUVETTE_ABSENT.code
+ showRetryButtonForCuvette()
+ }
resultData.contains("#BS") && this.testStatusCode < TestStatus.BUFFER_STARTED.code -> {
hemoCubeViewModel.messages.postValue(getString(R.string.buffer_started))
this.testStatusCode = TestStatus.BUFFER_STARTED.code
}
resultData.contains("#BC") && this.testStatusCode < TestStatus.BUFFER_COMPLETED.code -> {
- this.testStatusCode = TestStatus.BUFFER_COMPLETED.code
activity?.runOnUiThread {
+ resultData = ""
+ // resultData.replace("#AIN","#BAIN",false)
+ Log.d("resultDataBC",resultData)
binding.tvSubtitle4.text = getString(R.string.buffer_completed)
- binding.btnSamplestart.visibility = View.VISIBLE
+// binding.btnSamplestart.visibility = View.VISIBLE
+ binding.btnPlacebuffer.visibility = View.GONE
}
+ this.testStatusCode = TestStatus.BUFFER_COMPLETED.code
+
}
(resultData.contains("#SS") || resultData.contains("#SS1")) && this.testStatusCode < TestStatus.SAMPLE_STARTED.code -> {
@@ -439,11 +503,15 @@ class HemoCubeFragment : Fragment() {
activity?.runOnUiThread {
binding.tvSubtitle4.text = getString(R.string.sample_started)
binding.btnSamplestart.visibility = View.GONE
+ binding.btnPlacebuffer.visibility = View.GONE
}
}
(resultData.contains("#SC") || resultData.contains("#SC1")) && this.testStatusCode < TestStatus.SAMPLE_COMPLETED.code -> {
this.testStatusCode = TestStatus.SAMPLE_COMPLETED.code
+ activity?.runOnUiThread {
+ binding.btnSamplestart.visibility = View.GONE
+ }
hemoCubeViewModel.messages.postValue(
getString(R.string.sample_completed) + "\n" + getString(R.string.gathering_data)
)
@@ -600,6 +668,13 @@ class HemoCubeFragment : Fragment() {
}
}
+ private fun showRetryButtonForCuvette() {
+ activity?.runOnUiThread {
+// binding.btnPlacebuffer.visibility = View.GONE
+ binding.btnRetryCheckCuvette.visibility = View.VISIBLE
+ }
+ }
+
fun finishReading() {
repeatReadingCount += 1
isTestOngoing = false
@@ -686,9 +761,20 @@ class HemoCubeFragment : Fragment() {
fun showStartBufferButton() {
activity?.runOnUiThread {
+ binding.btnRetryCheckCuvette.visibility = View.GONE
+
binding.btnPlacebuffer.visibility = View.VISIBLE
}
- hemoCubeViewModel.messages.postValue(getString(R.string.start))
+// hemoCubeViewModel.messages.postValue(getString(R.string.start))
+ }
+
+ fun showStartSampleButton() {
+ activity?.runOnUiThread {
+ binding.btnRetryCheckCuvette.visibility = View.GONE
+
+ binding.btnSamplestart.visibility = View.VISIBLE
+ }
+// hemoCubeViewModel.messages.postValue(getString(R.string.start))
}
fun extractV1HardwareId(input: String): String? {
@@ -1142,13 +1228,29 @@ class HemoCubeFragment : Fragment() {
Toast.makeText(requireContext(), getString(messageResId), Toast.LENGTH_SHORT).show()
}
- private fun startBufferProcess() {
- hemoCubeViewModel.progressBar.postValue(true)
+ private fun checkCuvettePresence() {
+ Toast.makeText(requireContext(),"Please wait...",Toast.LENGTH_LONG).show()
activity?.runOnUiThread {
- binding.btnPlacebuffer.visibility = View.GONE
+ binding.btnRetryCheckCuvette.visibility = View.GONE
}
+ hemoCubeViewModel.progressBar.postValue(true)
+
+ (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.CHECK_CUVETTE_COMMAND,
+ object : UsbServiceListener {
+ override fun onUsbRead(data: ByteArray?) {}
+
+ override fun onUsbError(e: Exception?) {
+ hemoCubeViewModel.progressBar.postValue(false)
+ }
+ })
+ }
+ private fun startBufferProcess() {
+ hemoCubeViewModel.progressBar.postValue(true)
+// activity?.runOnUiThread {
+// binding.btnPlacebuffer.visibility = View.GONE
+// }
(activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.START_BUFFER_COMMAND,
object : UsbServiceListener {
override fun onUsbRead(data: ByteArray?) {}
@@ -1160,16 +1262,17 @@ class HemoCubeFragment : Fragment() {
}
private fun startSampleProcess() {
- hemoCubeViewModel.progressBar.postValue(true)
+ hemoCubeViewModel.progressBar.postValue(true)
- (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.START_SAMPLE,
- object : UsbServiceListener {
- override fun onUsbRead(data: ByteArray?) {}
+ (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.START_SAMPLE,
+ object : UsbServiceListener {
+ override fun onUsbRead(data: ByteArray?) {}
+
+ override fun onUsbError(e: Exception?) {
+ hemoCubeViewModel.progressBar.postValue(false)
+ }
+ })
- override fun onUsbError(e: Exception?) {
- hemoCubeViewModel.progressBar.postValue(false)
- }
- })
}
private fun sendFirstGainCommand() {
diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt
index 2036b1e..3f261a0 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt
@@ -113,7 +113,7 @@ class HemoCubeViewModel @Inject constructor(
testDetails?.kitSerial = kitSerial
}
testDetails?.testStatus = testStatus
-
+ // localFileDataSource.backUpDataToCSV("",testDetails)
try {
if (isOnline) {
parseData()
@@ -399,6 +399,8 @@ class HemoCubeViewModel @Inject constructor(
testDetails?.solution = DataHolder.hemoCubeTestData?.solution
testDetails?.concentration = DataHolder.hemoCubeTestData?.concentration
testDetails?.volume = DataHolder.hemoCubeTestData?.volume
+ testDetails?.filter = DataHolder.hemoCubeTestData?.filter
+
}
private fun addResultTestToDb() {
@@ -644,7 +646,7 @@ class HemoCubeViewModel @Inject constructor(
val fileName = "HPOS${getCurrentDate()}.csv"
if (localFileDataSource.exportDataToCSV(fileName, hemoCubeTestData)) {
hemoCubeTestData.forEach { data ->
- data.localFlag = true
+ // data.localFlag = true
hemoCubeDao.updateCSVFieldById(
data._id,
true
diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemocubeActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemocubeActivity.kt
index d200140..53f28fc 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemocubeActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemocubeActivity.kt
@@ -25,7 +25,7 @@ import androidx.core.view.get
import com.example.hpostesting.data.constant.DataHolder
import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.LanguageManager
-import com.example.hpostesting.presentation.testRight.UsbService
+import com.example.hpostesting.util.UsbService
import com.hoho.android.usbserial.driver.UsbSerialDriver
import com.hoho.android.usbserial.driver.UsbSerialProber
import dagger.hilt.android.AndroidEntryPoint
diff --git a/app/src/main/java/com/example/hpostesting/presentation/jig/JigActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/jig/JigActivity.kt
index 4d503ef..1ea2013 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/jig/JigActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/jig/JigActivity.kt
@@ -24,7 +24,7 @@ import androidx.core.view.get
import com.example.hpostesting.data.constant.DataHolder
import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.LanguageManager
-import com.example.hpostesting.presentation.testRight.UsbService
+import com.example.hpostesting.util.UsbService
import com.hoho.android.usbserial.driver.UsbSerialDriver
import com.hoho.android.usbserial.driver.UsbSerialProber
import dagger.hilt.android.AndroidEntryPoint
diff --git a/app/src/main/java/com/example/hpostesting/presentation/testRight/TestRightActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/testRight/TestRightActivity.kt
index 2974965..04163f1 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/testRight/TestRightActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/testRight/TestRightActivity.kt
@@ -21,6 +21,7 @@ import androidx.core.content.ContextCompat
import androidx.core.view.get
import com.example.hpostesting.data.constant.DataHolder
import com.example.hpostesting.data.constant.Constants
+import com.example.hpostesting.util.UsbService
import com.hoho.android.usbserial.driver.UsbSerialDriver
import com.hoho.android.usbserial.driver.UsbSerialProber
import dagger.hilt.android.AndroidEntryPoint
diff --git a/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeActivity.kt
index df42793..dc201c3 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeActivity.kt
@@ -25,7 +25,7 @@ import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.LanguageManager
import com.example.hpostesting.presentation.hemocube.HemoCubeFragment
import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel
-import com.example.hpostesting.presentation.testRight.UsbService
+import com.example.hpostesting.util.UsbService
import com.hoho.android.usbserial.driver.UsbSerialDriver
import com.hoho.android.usbserial.driver.UsbSerialProber
import dagger.hilt.android.AndroidEntryPoint
diff --git a/app/src/main/java/com/example/hpostesting/presentation/testRight/UsbService.kt b/app/src/main/java/com/example/hpostesting/util/UsbService.kt
similarity index 98%
rename from app/src/main/java/com/example/hpostesting/presentation/testRight/UsbService.kt
rename to app/src/main/java/com/example/hpostesting/util/UsbService.kt
index 133f5b9..8fd4d51 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/testRight/UsbService.kt
+++ b/app/src/main/java/com/example/hpostesting/util/UsbService.kt
@@ -1,4 +1,4 @@
-package com.example.hpostesting.presentation.testRight
+package com.example.hpostesting.util
import android.app.Service
import android.content.Intent
diff --git a/app/src/main/res/layout/fragment_assurance_controls.xml b/app/src/main/res/layout/fragment_assurance_controls.xml
index c343a7e..bc6a673 100644
--- a/app/src/main/res/layout/fragment_assurance_controls.xml
+++ b/app/src/main/res/layout/fragment_assurance_controls.xml
@@ -39,6 +39,7 @@
+
+
+
+
+
-
+ app:layout_constraintTop_toBottomOf="@id/tv_subtitle4">
+
+
-
+
-
+
+
+
+ app:layout_constraintTop_toBottomOf="@id/ll_btns" />
+ app:layout_constraintTop_toBottomOf="@id/ll_btns" />