diff --git a/app/build.gradle b/app/build.gradle
index b28b990..c295fce 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -19,8 +19,8 @@ android {
applicationId "in.sminnovations.hpostesting.dev"
minSdk 21
targetSdk 34
- versionCode 127
- versionName "2.1.127"
+ versionCode 128
+ versionName "2.1.128"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json
index 7b820b1..f21b455 100644
--- a/app/release/output-metadata.json
+++ b/app/release/output-metadata.json
@@ -11,8 +11,8 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
- "versionCode": 127,
- "versionName": "2.1.127",
+ "versionCode": 128,
+ "versionName": "2.1.128",
"outputFile": "app-release.apk"
}
],
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 d55cf27..d56f9e7 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
@@ -28,7 +28,7 @@ object Constants {
const val DOCUMENT_ID_FOR_UPDATE ="2o71vBKLqdgEKYtFG8Lb"
const val ABHA_APP_PACKAGE = "in.ndhm.phr"
- const val MOLBIO_INTEGRATION = true
+ const val MOLBIO_INTEGRATION = false
const val FIREBASE_INTEGRATION = true
const val deviceProvisionEmail = "HPOS_provisioner@bigtec.co.in"
const val deviceProvisionPassword = "f2ab0e7f9d69"
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 70de794..b30ab76 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
@@ -35,6 +35,8 @@ enum class TestStatus(val code: Double) {
BUFFER_PRINT_STARTED(6.0),
BUFFER_PRINT_COMPLETED(7.0),
SAMPLE_STARTED(8.0),
+ CUVETTE_ABSENTT(30.2),
+ CUVETTE_PRESENTT(30.1),
SAMPLE_COMPLETED(9.0),
SAMPLE_PRINT_STARTED(10.0),
SAMPLE_PRINT_COMPLETED(11.0),
diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ActivitiesFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/ActivitiesFragment.kt
index a47b222..fa6db59 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ActivitiesFragment.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/ActivitiesFragment.kt
@@ -58,7 +58,7 @@ class ActivitiesFragment : Fragment() {
if (userData.isNotEmpty()) {
userData.forEach { user ->
- if(isBetween15And30Minutes(user.incubationTime) > 30 && user.testStatus == false){
+ if((isBetween15And30Minutes(user.incubationTime) > 30 || isBetween15And30Minutes(user.incubationTime) < 0) && user.testStatus == false){
hemoCubeViewModel.deleteByStatus()
}
}
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 9e24a50..644cef8 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
@@ -862,7 +862,8 @@ class HomeFragment : Fragment() {
// )
Toast.makeText(requireContext(), "Successfully added- $userId", Toast.LENGTH_SHORT).show()
binding.userId.setText("")
- binding.etBloodGroup.clearListSelection()
+ binding.age.setText("")
+ binding.etBloodGroup.setText("")
// val userData = UserData(_id = userId)
// DataHolder.selectedTest = userData
// findNavController().navigate(R.id.action_nav_home_to_mainActivity)
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 f49a4f5..fced288 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
@@ -134,7 +134,7 @@ class PrefsFragment: PreferenceFragmentCompat(){
// App Version Preference
val appVersionPreference = Preference(requireContext())
- appVersionPreference.title = "App Version"
+ appVersionPreference.title = "App Version SMI"
appVersionPreference.summary =
getAppVersion(requireContext()) + " [ " + getAppEnvironment(requireContext()) + " ]"
diff --git a/app/src/main/java/com/example/hpostesting/presentation/hb_test/HBTestFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/hb_test/HBTestFragment.kt
index 7c579cf..a4f0b65 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/hb_test/HBTestFragment.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/hb_test/HBTestFragment.kt
@@ -117,10 +117,13 @@ class HBTestFragment : Fragment() {
testDetails.testTime = SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss", Locale.getDefault()
).format(Calendar.getInstance().time)
+ //Toast.makeText(requireContext(), "deviceID"+deviceId, Toast.LENGTH_LONG).show()
hBTestViewModel.uploadFirebaseQc(testDetails)
}
binding.btnBuffer.setOnClickListener {
binding.btnBuffer.visibility = View.GONE
+ binding.btnSample.isEnabled = false
+ binding.btnSample.isClickable = false
hBTestViewModel.messages.postValue("Buffer Started")
runBCommand()
}
@@ -174,7 +177,6 @@ class HBTestFragment : Fragment() {
override fun onUsbRead(data: ByteArray?) {
data?.let {
val stringData = String(it)
- deviceId = stringData
hBTestViewModel.messages.postValue(stringData)
binding.tvSubtitle4.text = stringData
}
@@ -224,7 +226,12 @@ class HBTestFragment : Fragment() {
}
})
}
+ fun extractV2HardwareId(input: String): String? {
+ val pattern = Regex("SNS\\s*(.*?)\\s*SNE")
+ val matchResult: MatchResult? = pattern.find(input)
+ return matchResult?.groups?.get(1)?.value
+ }
private fun listenToHemoCube() {
val fullReadOutput = StringBuilder()
@@ -240,10 +247,10 @@ class HBTestFragment : Fragment() {
resultData += stringData
hBTestViewModel.messages.postValue(resultData)
// binding.tvSubtitle4.text = resultData
- if (stringData.contains("SN")) {
+ if (stringData.contains("SNE")) {
val slData = stringData.split(" ")
if (slData.size > 1) {
- val hardwareId = slData[1].trim()
+ deviceId = extractV2HardwareId(resultData).toString()
hBTestViewModel.messages.postValue("Place buffer and click below button to start test")
// with(sharedPreferences.edit()) {
// putString(Constants.DEVICE_ID, hardwareId)
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 bd56d32..f6dba64 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
@@ -87,6 +87,8 @@ class HemoCubeFragment : Fragment() {
private var checkCuvette = false
private var checkRefreshCuvette = false
private var checkCuvetteSam = false
+ private var checkSubmit = false
+ private var submitClick = false
private var sampleClick = false
private var refreshClick = false
private lateinit var binding: FragmentHemoCubeReferenceBinding
@@ -182,23 +184,31 @@ class HemoCubeFragment : Fragment() {
binding.tvSubtitle4.movementMethod = ScrollingMovementMethod()
binding.tvDeviceMessages.movementMethod = ScrollingMovementMethod()
binding.btnSubmit.setOnClickListener {
- with(sharedPreferences.edit()) {
- putBoolean(Constants.QUICK_CAPTURE, false)
- apply()
+ submitClick = true
+ if(checkSubmit){
+ with(sharedPreferences.edit()) {
+ putBoolean(Constants.QUICK_CAPTURE, false)
+ apply()
+ }
+ if(DataHolder.hemoCubeTestData!!.classificationResult != "Invalid"){
+ DataHolder.sampleReadCounter++
+ }
+ binding.btnSubmit.isEnabled = false
+ binding.btnSubmit.isClickable = false
+ activity?.runOnUiThread {
+ Log.d("HemoCubeFragment","Test Process completed, result saved")
+ binding.progressBar.visibility = View.VISIBLE
+ binding.btnSubmit.visibility = View.GONE
+ }
+ hemoCubeViewModel.uploadHemoCubeResultToDatabase(
+ isOnline, true, sharedPreferences.getString(Constants.KIT_NUMBER, ""),quickCapture
+ )
+ }else{
+ checkCuvettePresence()
+ binding.btnSubmit.isEnabled = true
+ binding.btnSubmit.isClickable = true
}
- if(DataHolder.hemoCubeTestData!!.classificationResult != "Invalid"){
- DataHolder.sampleReadCounter++
- }
- binding.btnSubmit.isEnabled = false
- binding.btnSubmit.isClickable = false
- activity?.runOnUiThread {
- Log.d("HemoCubeFragment","Test Process completed, result saved")
- binding.progressBar.visibility = View.VISIBLE
- binding.btnSubmit.visibility = View.GONE
- }
- hemoCubeViewModel.uploadHemoCubeResultToDatabase(
- isOnline, true, sharedPreferences.getString(Constants.KIT_NUMBER, ""),quickCapture
- )
+
}
binding.tvTitle2.visibility = View.GONE
@@ -664,6 +674,21 @@ class HemoCubeFragment : Fragment() {
}
showRetryButtonForCuvette()
}
+ resultData.contains("#CIN") && this.submitClick && this.testStatusCode < TestStatus.CUVETTE_PRESENTT.code -> {
+ hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_presentt))
+ this.testStatusCode = TestStatus.CUVETTE_PRESENTT.code
+ activity?.runOnUiThread {
+ binding.testing.visibility = View.GONE
+ }
+ }
+ resultData.contains("#AIN") && this.submitClick && this.testStatusCode <= TestStatus.CUVETTE_ABSENTT.code -> {
+ hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_absentt))
+ this.testStatusCode = TestStatus.CUVETTE_ABSENTT.code
+ activity?.runOnUiThread {
+ checkSubmit = true
+ binding.testing.visibility = View.GONE
+ }
+ }
resultData.contains("#BS") && this.testStatusCode < TestStatus.BUFFER_STARTED.code -> {
hemoCubeViewModel.messages.postValue(getString(R.string.buffer_started))
this.testStatusCode = TestStatus.BUFFER_STARTED.code
@@ -735,6 +760,7 @@ class HemoCubeFragment : Fragment() {
}
}
+
(resultData.contains("#SC") || resultData.contains("#SC1")) && this.testStatusCode < TestStatus.SAMPLE_COMPLETED.code -> {
this.testStatusCode = TestStatus.SAMPLE_COMPLETED.code
activity?.runOnUiThread {
@@ -748,6 +774,7 @@ class HemoCubeFragment : Fragment() {
fetchResult()
}
+
resultData.contains("ovf") -> {
activity?.runOnUiThread {
binding.testing.visibility = View.GONE
@@ -1354,7 +1381,7 @@ class HemoCubeFragment : Fragment() {
"%.3f".format(
borderlineMetric
)
- }"
+ } \n Remove Cuvette & Click Submit"
)
if (DataHolder.hemoCubeTestData?.testType == "HB")
hemoCubeViewModel.messages.postValue("Hb: $calculatedHb4")
@@ -1431,19 +1458,19 @@ class HemoCubeFragment : Fragment() {
if (deviceRatioClass == "Negative Borderline") {
if (borderlineMetric < negativeBoderLine10mm1){//1.34
return "Sickle Cell Trait"
- }else if(borderlineMetric > negativeBoderLine10mm2){
+ }else if(borderlineMetric > negativeBoderLine10mm1){
return "Normal"
- }else if(borderlineMetric > negativeBoderLine10mm1 && borderlineMetric < negativeBoderLine10mm2){
- return "Negative borderline. Confirm with HPLC"
+ }else if(borderlineMetric == negativeBoderLine10mm1){
+ return "Sickle Cell Trait"
}
}
if (deviceRatioClass == "Positive for Sickle Cell. HPLC for Confirmation") {
if (borderlineMetric < positiveBoderLine10mm1){//1.34
return "Sickle Cell Disease"
- }else if(borderlineMetric > positiveBoderLine10mm2){
+ }else if(borderlineMetric > positiveBoderLine10mm1){
return "Sickle Cell Trait"
- }else if(borderlineMetric > positiveBoderLine10mm1 && borderlineMetric < positiveBoderLine10mm2){
- return "Positive for Sickle Cell. Confirm with HPLC"
+ }else if(borderlineMetric == positiveBoderLine10mm1){
+ return "Sickle Cell Disease"
}
}
}else if(cuvetteSize == "2mm"){
diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml
index 86786a8..3db0854 100644
--- a/app/src/main/res/values-hi/strings.xml
+++ b/app/src/main/res/values-hi/strings.xml
@@ -289,6 +289,8 @@
Checking cuvette presence
Cuvette present
Cuvette absent
+ Cuvette Present , Please Remove Cuvette And Try Again
+ Cuvette Absent,Now You Can Submit
Retry
Firefox
Files
diff --git a/app/src/main/res/values-kn/strings.xml b/app/src/main/res/values-kn/strings.xml
index 4a28eb9..ee35b42 100644
--- a/app/src/main/res/values-kn/strings.xml
+++ b/app/src/main/res/values-kn/strings.xml
@@ -288,6 +288,8 @@
ಕುವೆಟ್ ಇರುವಿಕೆಯನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ
ಕುವೆಟ್ಟೆ ಇರುತ್ತದೆ
ಕುವೆಟ್ಟೆ ಇರುವುದಿಲ್ಲ
+ Cuvette Present , Please Remove Cuvette And Try Again
+ Cuvette Absent,Now You Can Submit
ಮರುಪ್ರಯತ್ನಿಸಿ
ಫೈರ್ಫಾಕ್ಸ್
ಫೈಲ್
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e0b11a0..bdc765f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -291,6 +291,8 @@
Checking cuvette presence
Cuvette present , you can start the test
Cuvette is absent , please place the cuvette and retry again
+ Cuvette Present , Please Remove Cuvette And Try Again
+ Cuvette Absent,Now You Can Submit
Retry again
Usb Terminal
About