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 e97fd05..11a8999 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
@@ -107,6 +107,7 @@ object Constants {
const val DEVICE_ID = "DEVICE_ID"
const val LABNAME = "LAB_NAME"
const val CUVETTE_SIZE = "CUVETTE_SIZE"
+ const val LAST_UPDATED = "LAST_UPDATED"
const val IS_TOKEN_AVAILABLE = "IS_TOKEN_AVAILABLE"
const val BUFFER_LED_LOWER_BOUND = 21000
const val BUFFER_LED_UPPER_BOUND = 23500
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 b0b21d1..e6f1903 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
@@ -23,7 +23,7 @@ import com.example.hpostesting.data.model.patient.UserData
@Database(
entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class],
- version = 35,
+ version = 36,
exportSchema = false
)
@TypeConverters(Converters::class)
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 a35d266..0fa0885 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
@@ -110,5 +110,6 @@ data class HemoCubeTestData(
var cuvetteSize: String? = "",
var district: String? = "",
var centerName: String? = "",
- var ipAddress:String?= ""
+ var ipAddress:String?= "",
+ var configUpdatedRecent:String?= ""
)
diff --git a/app/src/main/java/com/example/hpostesting/presentation/MainActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/MainActivity.kt
index 4932f0b..6349d1a 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/MainActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/MainActivity.kt
@@ -103,7 +103,7 @@ class MainActivity : AppCompatActivity() {
with(binding) {
if (deviceType == Constants.DEVICE_TYPE_HEMOCUBE) {
cvItem1.visibility = View.VISIBLE
- cvItem3.visibility = View.VISIBLE
+ cvItem3.visibility = View.GONE
cvItem2.visibility = View.GONE
cvItem4.visibility = View.GONE
}
@@ -132,7 +132,7 @@ class MainActivity : AppCompatActivity() {
when {
device.productId == Constants.HOMO_CUBE_ID && device.vendorId == Constants.VENDOR_ID -> {
binding.cvItem1.visibility = View.VISIBLE
- binding.cvItem3.visibility = View.VISIBLE
+ binding.cvItem3.visibility = View.GONE
binding.cvItem2.visibility = View.GONE
binding.cvItem4.visibility = View.GONE
DataHolder.deviceType.postValue(Constants.DEVICE_TYPE_HEMOCUBE)
@@ -141,7 +141,7 @@ class MainActivity : AppCompatActivity() {
device.productId == Constants.HEMO_CUBE_V2_PRODUCT_ID && device.vendorId == Constants.HEMO_CUBE_V2_VENDOR_ID -> {
binding.cvItem1.visibility = View.VISIBLE
- binding.cvItem3.visibility = View.VISIBLE
+ binding.cvItem3.visibility = View.GONE
binding.cvItem2.visibility = View.GONE
binding.cvItem4.visibility = View.GONE
DataHolder.deviceType.postValue(Constants.DEVICE_TYPE_HEMOCUBE)
@@ -150,7 +150,7 @@ class MainActivity : AppCompatActivity() {
device.productId == 24577 && device.vendorId == 1027 -> {
binding.cvItem1.visibility = View.VISIBLE
- binding.cvItem3.visibility = View.VISIBLE
+ binding.cvItem3.visibility = View.GONE
binding.cvItem2.visibility = View.GONE
binding.cvItem4.visibility = View.GONE
DataHolder.deviceType.postValue(Constants.DEVICE_TYPE_TRUEHEME)
@@ -159,7 +159,7 @@ class MainActivity : AppCompatActivity() {
device.productId == 8963 && device.vendorId == 1659 -> {
binding.cvItem1.visibility = View.VISIBLE
- binding.cvItem3.visibility = View.VISIBLE
+ binding.cvItem3.visibility = View.GONE
binding.cvItem2.visibility = View.GONE
binding.cvItem4.visibility = View.GONE
DataHolder.deviceType.postValue(Constants.DEVICE_TYPE_HEMOCUBE)
@@ -168,7 +168,7 @@ class MainActivity : AppCompatActivity() {
device.productId == 4614 && device.vendorId == 7111 -> {
binding.cvItem1.visibility = View.VISIBLE
- binding.cvItem3.visibility = View.VISIBLE
+ binding.cvItem3.visibility = View.GONE
binding.cvItem2.visibility = View.GONE
binding.cvItem4.visibility = View.GONE
DataHolder.deviceType.postValue(Constants.DEVICE_TYPE_HEMOCUBE)
diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt
index c96b9a4..bfe35c8 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt
@@ -44,6 +44,7 @@ import androidx.core.content.FileProvider
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope
+import androidx.navigation.findNavController
import androidx.navigation.fragment.findNavController
import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.DataHolder
@@ -784,17 +785,25 @@ class HomeFragment : Fragment() {
private fun setUserId() {
binding.btnSubmit.setOnClickListener {
val userId = binding.userId.text.toString()
- val bloodGroup = binding.etBloodGroup.text
- if (userId.length >= 5 && (!bloodGroup.equals("Select Blood Group") || !bloodGroup.isNullOrBlank())) {
- hemoCubeViewModel.addUser(
- HemoCubeTestData(
- _id = userId,
- bloodGroup = bloodGroup.toString(),
- incubationTime = SimpleDateFormat(
+ val bloodGroup = binding.etBloodGroup.text.toString()
+ if (userId.length >= 5 && bloodGroup != "Select Blood Group") {
+ DataHolder.selectedTest = UserData(
+ _id = userId,
+ bloodGroup = bloodGroup,
+ incubationTime = SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss", Locale.getDefault()
).format(Calendar.getInstance().time).toString()
- )
)
+ findNavController().navigate(R.id.action_nav_home_to_mainActivity)
+// hemoCubeViewModel.addUser(
+// HemoCubeTestData(
+// _id = userId,
+// bloodGroup = bloodGroup.toString(),
+// incubationTime = SimpleDateFormat(
+// "yyyy-MM-dd HH:mm:ss", Locale.getDefault()
+// ).format(Calendar.getInstance().time).toString()
+// )
+// )
Toast.makeText(requireContext(), "Successfully added- $userId", Toast.LENGTH_SHORT).show()
binding.userId.setText("")
// val userData = UserData(_id = userId)
diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/SlideshowFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/SlideshowFragment.kt
index 769d724..f49a4f5 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/SlideshowFragment.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/SlideshowFragment.kt
@@ -59,7 +59,8 @@ class SlideshowFragment : Fragment(){
binding.nameEditText.setText(sharedPreferences.getString(Constants.LABNAME,""))
selectedItem = sharedPreferences.getString(Constants.CUVETTE_SIZE,"10mm").toString()
-
+ val time = sharedPreferences.getString(Constants.LAST_UPDATED,"NA").toString()
+ binding.lastUpdated.text = "Last updated config: $time"
binding.btnGo.setOnClickListener {
var labname = binding.nameEditText.text.toString()
DataHolder.hemoCubeTestData?.apply {
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 206b8c2..f01b8bf 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
@@ -186,7 +186,9 @@ class HemoCubeFragment : Fragment() {
putBoolean(Constants.QUICK_CAPTURE, false)
apply()
}
- DataHolder.sampleReadCounter++
+ if(DataHolder.hemoCubeTestData!!.classificationResult != "Invalid"){
+ DataHolder.sampleReadCounter++
+ }
binding.btnSubmit.isEnabled = false
binding.btnSubmit.isClickable = false
activity?.runOnUiThread {
@@ -222,6 +224,7 @@ class HemoCubeFragment : Fragment() {
binding.btnSamplestart.isClickable = true
binding.btnSamplestart.isEnabled = true
}else{
+ isUsingExistingBuffer = false
hemoCubeViewModel.messages.postValue("Fresh Kit - Please take Buffer Blank reading")
binding.btnPlacebuffer.visibility = View.VISIBLE
binding.btnPlaceRefreshbuffer.visibility = View.GONE
@@ -260,6 +263,7 @@ class HemoCubeFragment : Fragment() {
Log.d("HemoCubeFragment","Test Process started, reBuffer started")
binding.testing.visibility = View.VISIBLE
}
+ isUsingExistingBuffer = false
refreshClick = true
if(checkRefreshCuvette){
startBufferProcess()
@@ -624,6 +628,8 @@ class HemoCubeFragment : Fragment() {
binding.btnPlaceRefreshbuffer.visibility = View.VISIBLE
binding.btnPlacebuffer.visibility = View.GONE
binding.btnSamplestart.visibility = View.VISIBLE
+ binding.btnSamplestart.isClickable = false
+ binding.btnSamplestart.isEnabled = false
}
}
resultData.contains("#AIN") && refreshClick && this.testStatusCode <= TestStatus.CUVETTE_ABSENTR.code -> {
@@ -631,6 +637,8 @@ class HemoCubeFragment : Fragment() {
this.testStatusCode = TestStatus.CUVETTE_ABSENTR.code
activity?.runOnUiThread {
binding.testing.visibility = View.GONE
+ binding.btnSamplestart.isClickable = false
+ binding.btnSamplestart.isEnabled = false
}
showRetryButtonForCuvette()
}
@@ -643,6 +651,8 @@ class HemoCubeFragment : Fragment() {
binding.btnRetryCheckCuvette.visibility = View.GONE
binding.btnPlacebuffer.visibility = View.VISIBLE
binding.btnSamplestart.visibility = View.VISIBLE
+ binding.btnSamplestart.isClickable = false
+ binding.btnSamplestart.isEnabled = false
}
}
resultData.contains("#AIN") && this.testStatusCode <= TestStatus.CUVETTE_ABSENT.code -> {
@@ -650,6 +660,8 @@ class HemoCubeFragment : Fragment() {
this.testStatusCode = TestStatus.CUVETTE_ABSENT.code
activity?.runOnUiThread {
binding.testing.visibility = View.GONE
+ binding.btnSamplestart.isClickable = false
+ binding.btnSamplestart.isEnabled = false
}
showRetryButtonForCuvette()
}
@@ -733,8 +745,8 @@ class HemoCubeFragment : Fragment() {
hemoCubeViewModel.messages.postValue(
getString(R.string.sample_completed) + "\n" + getString(R.string.gathering_data)
)
- fetchResult()
currentResultData = ""
+ fetchResult()
}
resultData.contains("ovf") -> {
@@ -956,7 +968,7 @@ class HemoCubeFragment : Fragment() {
getString(R.string.data_collected_processing_data)
)
- val resultLines = resultData.split("\\s+(?=LB|LS)".toRegex())
+ val resultLines = currentResultData.split("\\s+(?=LB|LS)".toRegex())
var bufferIntensity = resultLines[1].split(' ')[1].trim()
led1BufferForDevice = if (isUsingExistingBuffer) {
sharedPreferences.getString(Constants.BUFFER_VALUE_1, "")?.toDoubleOrNull()!!
@@ -1110,7 +1122,7 @@ class HemoCubeFragment : Fragment() {
val deviceRatio = led2Average / led1Average
val borderlineMetric = (led1Average - led2Average) / deviceRatio
// activity?.runOnUiThread {
-// Toast.makeText(requireContext(),"led1Average: $led1Average, led2Average: $led2Average",Toast.LENGTH_LONG).show()
+// Toast.makeText(requireContext(),"count: ${DataHolder.sampleReadCounter}",Toast.LENGTH_LONG).show()
// }
if(led1Average < 0 || led2Average < 0){
hemoCubeViewModel.messages.postValue("Negative Absorbance - Repeat test with reading Buffer first and sample second")
@@ -1339,6 +1351,10 @@ class HemoCubeFragment : Fragment() {
"%.3f".format(
this.deviceRatio
)
+ } : ${
+ "%.3f".format(
+ borderlineMetric
+ )
}"
)
if (DataHolder.hemoCubeTestData?.testType == "HB")
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 aaaa0d0..99d437e 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
@@ -422,6 +422,7 @@ class HemoCubeViewModel @Inject constructor(
testDetails?.centerName = sharedPreference.getString(Constants.CENTER_NAME, "").toString()
testDetails?.district = sharedPreference.getString(Constants.DISTRICT, "").toString()
testDetails?.ipAddress = sharedPreference.getString(Constants.IP_ADDRESS, "").toString()
+ testDetails?.configUpdatedRecent = sharedPreference.getString(Constants.LAST_UPDATED, "NA").toString()
}
private fun addResultTestToDb(quickCapture: Boolean) {
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 a344e82..8cde0d2 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,6 +25,7 @@ import android.content.SharedPreferences
import android.hardware.usb.UsbDevice
import android.hardware.usb.UsbDeviceConnection
import android.hardware.usb.UsbManager
+import android.icu.text.SimpleDateFormat
import android.os.Build
import android.os.Bundle
import android.os.IBinder
@@ -49,6 +50,8 @@ import com.hoho.android.usbserial.driver.UsbSerialProber
import dagger.hilt.android.AndroidEntryPoint
import `in`.sminnovations.hpostesting.R
import `in`.sminnovations.hpostesting.databinding.ActivityHemocubeBinding
+import java.util.Calendar
+import java.util.Locale
@AndroidEntryPoint
open class HemocubeActivity : AppCompatActivity() {
@@ -158,7 +161,11 @@ open class HemocubeActivity : AppCompatActivity() {
val bufferMaxLed1 = remoteConfig.getDouble("bufferMaxLed1")
val bufferMinLed2 = remoteConfig.getDouble("bufferMinLed2")
val bufferMaxLed2 = remoteConfig.getDouble("bufferMaxLed2")
+ val time = SimpleDateFormat(
+ "yyyy-MM-dd HH:mm:ss", Locale.getDefault()
+ ).format(Calendar.getInstance().time).toString()
with(sharedPreferences.edit()) {
+ putString(Constants.LAST_UPDATED, time)
putString("bufferMinLed1", bufferMinLed1.toString())
putString("bufferMaxLed1", bufferMaxLed1.toString())
putString("bufferMinLed2", bufferMinLed2.toString())
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index fff455b..7757c55 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -133,6 +133,7 @@
android:id="@+id/cv_item3"
android:layout_width="128dp"
android:layout_height="128dp"
+ android:visibility="gone"
android:layout_marginTop="32dp"
android:layout_marginStart="16dp"
app:cardElevation="8dp"
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index 4690782..e6308aa 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -118,7 +118,7 @@
android:id="@+id/et_blood_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:hint="@string/select_blood_group"
+ android:text="@string/select_blood_group"
android:inputType="none"
android:labelFor="@id/til_blood_group"
app:simpleItems="@array/blood_group" />
@@ -143,6 +143,7 @@
android:id="@+id/rv_order_offline"
android:layout_width="0dp"
android:layout_height="0dp"
+ android:visibility="gone"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/fragment_slideshow.xml b/app/src/main/res/layout/fragment_slideshow.xml
index 5b193a3..d3f3ac2 100644
--- a/app/src/main/res/layout/fragment_slideshow.xml
+++ b/app/src/main/res/layout/fragment_slideshow.xml
@@ -86,16 +86,26 @@
android:text="@string/add"
app:cornerRadius="16dp"
app:layout_constraintBottom_toBottomOf="@id/spinnerCuvette"
-
app:layout_constraintStart_toEndOf="@id/spinnerCuvette"
app:layout_constraintTop_toTopOf="@id/spinnerCuvette" />
-
+