fix hemocube db save error
- add mapper to hemocube data - save test details correctly on dataholder - add result data from device on test details
This commit is contained in:
@@ -22,7 +22,7 @@ object DataHolder {
|
|||||||
val wavelengthToPixelArray = ArrayList<Double>()
|
val wavelengthToPixelArray = ArrayList<Double>()
|
||||||
val intensityReferenceArray = ArrayList<Double>()
|
val intensityReferenceArray = ArrayList<Double>()
|
||||||
var selectedTest: UserData? = null
|
var selectedTest: UserData? = null
|
||||||
var HomocubeTestType: HemoCubeTestData? = null
|
var hemoCubeTestData: HemoCubeTestData? = null
|
||||||
|
|
||||||
var kitSerial: String = ""
|
var kitSerial: String = ""
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,10 @@ data class HemoCubeTestData(
|
|||||||
var name: String = "",
|
var name: String = "",
|
||||||
var birthYear: String = "",
|
var birthYear: String = "",
|
||||||
var userImageURL: String = "",
|
var userImageURL: String = "",
|
||||||
|
var location: UserData.Location? = null,
|
||||||
var createdBy: String? = "",
|
var createdBy: String? = "",
|
||||||
var reportUploadTime: String? = "",
|
var reportUploadTime: String? = "",
|
||||||
|
var testType: String? = "HEMOCUBE",
|
||||||
var testTime: String? = "",
|
var testTime: String? = "",
|
||||||
var testStatus: Boolean? = false,
|
var testStatus: Boolean? = false,
|
||||||
var mobileId: String = "",
|
var mobileId: String = "",
|
||||||
@@ -19,6 +21,7 @@ data class HemoCubeTestData(
|
|||||||
var kitSerial: String = "",
|
var kitSerial: String = "",
|
||||||
var reportPath: String = "",
|
var reportPath: String = "",
|
||||||
var resultRatio: Double? = null,
|
var resultRatio: Double? = null,
|
||||||
|
var resultData: String = "",
|
||||||
var led1: Double? = null,
|
var led1: Double? = null,
|
||||||
var led2: Double? = null
|
var led2: Double? = null
|
||||||
)
|
)
|
||||||
@@ -36,3 +36,20 @@ data class UserData(
|
|||||||
var longitude: Double? = null
|
var longitude: Double? = null
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun UserData.toHemoCubeTestData() = HemoCubeTestData(
|
||||||
|
_id = _id,
|
||||||
|
name = name,
|
||||||
|
birthYear = birthYear,
|
||||||
|
userImageURL = userImageURL,
|
||||||
|
location = location,
|
||||||
|
createdBy = createdBy,
|
||||||
|
reportUploadTime = reportUploadTime,
|
||||||
|
testTime = testTime,
|
||||||
|
testStatus = testStatus,
|
||||||
|
mobileId = mobileId,
|
||||||
|
deviceSerialNumber = deviceSerialNumber,
|
||||||
|
kitSerial = kitSerial,
|
||||||
|
reportPath = reportPath,
|
||||||
|
resultRatio = resultRatio,
|
||||||
|
)
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package com.example.hpostesting.presentation.hemocube
|
package com.example.hpostesting.presentation.hemocube
|
||||||
|
|
||||||
import android.app.PendingIntent
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import android.hardware.usb.UsbDevice
|
import android.hardware.usb.UsbDevice
|
||||||
import android.hardware.usb.UsbDeviceConnection
|
import android.hardware.usb.UsbDeviceConnection
|
||||||
@@ -14,10 +12,10 @@ import android.view.View
|
|||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.lifecycle.ViewModel;
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import com.example.hpostesting.data.DataHolder
|
import com.example.hpostesting.data.DataHolder
|
||||||
|
import com.example.hpostesting.data.model.patient.toHemoCubeTestData
|
||||||
import com.example.hpostesting.presentation.UsbServiceListener
|
import com.example.hpostesting.presentation.UsbServiceListener
|
||||||
import `in`.sminnovations.hpostesting.R
|
import `in`.sminnovations.hpostesting.R
|
||||||
import `in`.sminnovations.hpostesting.databinding.FragmentHemoCubeReferenceBinding
|
import `in`.sminnovations.hpostesting.databinding.FragmentHemoCubeReferenceBinding
|
||||||
@@ -25,7 +23,8 @@ import `in`.sminnovations.hpostesting.databinding.FragmentHemoCubeReferenceBindi
|
|||||||
class HemoCubeFragment : Fragment() {
|
class HemoCubeFragment : Fragment() {
|
||||||
|
|
||||||
private var testTime: String? = null
|
private var testTime: String? = null
|
||||||
private var resultRatio: String? = null
|
private var resultRatio: String? = ""
|
||||||
|
private var resultData: String = ""
|
||||||
private var kitSerial: String? = null
|
private var kitSerial: String? = null
|
||||||
private lateinit var binding: FragmentHemoCubeReferenceBinding
|
private lateinit var binding: FragmentHemoCubeReferenceBinding
|
||||||
private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels()
|
private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels()
|
||||||
@@ -68,8 +67,8 @@ class HemoCubeFragment : Fragment() {
|
|||||||
|
|
||||||
hemoCubeViewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isNetworkAvailable ->
|
hemoCubeViewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isNetworkAvailable ->
|
||||||
apply {
|
apply {
|
||||||
kitSerial = DataHolder.HomocubeTestType?.kitSerial
|
kitSerial = DataHolder.hemoCubeTestData?.kitSerial
|
||||||
testTime = DataHolder.HomocubeTestType?.testTime
|
testTime = DataHolder.hemoCubeTestData?.testTime
|
||||||
isOnline = isNetworkAvailable
|
isOnline = isNetworkAvailable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -83,33 +82,35 @@ class HemoCubeFragment : Fragment() {
|
|||||||
|
|
||||||
binding.btnSubmit.setOnClickListener {
|
binding.btnSubmit.setOnClickListener {
|
||||||
|
|
||||||
Toast.makeText(
|
binding.progressBar.visibility = View.VISIBLE
|
||||||
requireContext(),
|
|
||||||
"Test Data uploaded",
|
if (DataHolder.hemoCubeTestData == null) {
|
||||||
Toast.LENGTH_SHORT
|
DataHolder.hemoCubeTestData = DataHolder.selectedTest?.toHemoCubeTestData()
|
||||||
).show()
|
}
|
||||||
Log.e("Testdb", "success")
|
|
||||||
if (isOnline) {
|
if (isOnline) {
|
||||||
resultRatio?.let { ratio ->
|
resultRatio?.let { ratio ->
|
||||||
Log.e("Testdb", "upload")
|
Log.e("Testdb", "upload")
|
||||||
hemoCubeViewModel.uploadHemocubeResultToDatabase(
|
hemoCubeViewModel.uploadHemoCubeResultToDatabase(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
isOnline,
|
isOnline,
|
||||||
true,
|
true,
|
||||||
kitSerial,
|
kitSerial,
|
||||||
ratio,
|
ratio,
|
||||||
|
resultData,
|
||||||
testTime
|
testTime
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
binding.progressBar.visibility = View.VISIBLE
|
binding.progressBar.visibility = View.VISIBLE
|
||||||
} else {
|
} else {
|
||||||
resultRatio?.let { ratio ->
|
resultRatio?.let { ratio ->
|
||||||
hemoCubeViewModel.uploadHemocubeResultToDatabase(
|
hemoCubeViewModel.uploadHemoCubeResultToDatabase(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
isOnline,
|
isOnline,
|
||||||
true,
|
true,
|
||||||
kitSerial,
|
kitSerial,
|
||||||
ratio,
|
ratio,
|
||||||
|
resultData,
|
||||||
testTime
|
testTime
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -164,7 +165,6 @@ class HemoCubeFragment : Fragment() {
|
|||||||
Log.d("greenBuffer", blueBIntensity.toString())
|
Log.d("greenBuffer", blueBIntensity.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun displayValuesOnTextView(parsedData: Map<String, String>) {
|
private fun displayValuesOnTextView(parsedData: Map<String, String>) {
|
||||||
val fullReadOutput = StringBuilder()
|
val fullReadOutput = StringBuilder()
|
||||||
val textView: TextView = requireView().findViewById(R.id.tv_subtitle4)
|
val textView: TextView = requireView().findViewById(R.id.tv_subtitle4)
|
||||||
@@ -179,6 +179,10 @@ class HemoCubeFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun fetchHemoCubeResult() {
|
private fun fetchHemoCubeResult() {
|
||||||
|
if (DataHolder.hemoCubeTestData == null) {
|
||||||
|
DataHolder.hemoCubeTestData = DataHolder.selectedTest?.toHemoCubeTestData()
|
||||||
|
}
|
||||||
|
|
||||||
hemoCubeViewModel.progressBar.postValue(true)
|
hemoCubeViewModel.progressBar.postValue(true)
|
||||||
val fullReadOutput = StringBuilder()
|
val fullReadOutput = StringBuilder()
|
||||||
(activity as HemocubeActivity).mService.eventDrivenWriteHemoCube(object :
|
(activity as HemocubeActivity).mService.eventDrivenWriteHemoCube(object :
|
||||||
@@ -189,8 +193,10 @@ class HemoCubeFragment : Fragment() {
|
|||||||
fullReadOutput.append(stringData)
|
fullReadOutput.append(stringData)
|
||||||
|
|
||||||
binding.tvSubtitle4.text = fullReadOutput
|
binding.tvSubtitle4.text = fullReadOutput
|
||||||
resultRatio = fullReadOutput.toString()
|
resultData = fullReadOutput.toString()
|
||||||
val data = parseUsbData(fullReadOutput.toString())
|
DataHolder.hemoCubeTestData?.resultData = resultData
|
||||||
|
resultRatio = "" //TODO
|
||||||
|
val pareseddata = parseUsbData(fullReadOutput.toString())
|
||||||
Log.d("Result", data.toString())
|
Log.d("Result", data.toString())
|
||||||
hemoCubeViewModel.progressBar.postValue(false)
|
hemoCubeViewModel.progressBar.postValue(false)
|
||||||
}
|
}
|
||||||
@@ -202,7 +208,6 @@ class HemoCubeFragment : Fragment() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun fetchHemoCubeResultNew() {
|
private fun fetchHemoCubeResultNew() {
|
||||||
hemoCubeViewModel.progressBar.postValue(true)
|
hemoCubeViewModel.progressBar.postValue(true)
|
||||||
val fullReadOutput = StringBuilder()
|
val fullReadOutput = StringBuilder()
|
||||||
@@ -239,10 +244,4 @@ class HemoCubeFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ package com.example.hpostesting.presentation.hemocube
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.widget.Toast
|
|
||||||
import androidx.core.content.ContentProviderCompat.requireContext
|
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
@@ -12,6 +10,7 @@ import com.example.hpostesting.data.DataHolder
|
|||||||
import com.example.hpostesting.data.NetworkStatusLiveData
|
import com.example.hpostesting.data.NetworkStatusLiveData
|
||||||
import com.example.hpostesting.data.dao.HemoCubeDao
|
import com.example.hpostesting.data.dao.HemoCubeDao
|
||||||
import com.example.hpostesting.data.model.Response
|
import com.example.hpostesting.data.model.Response
|
||||||
|
import com.example.hpostesting.data.model.patient.toHemoCubeTestData
|
||||||
import com.example.hpostesting.data.repository.DatabaseRepository
|
import com.example.hpostesting.data.repository.DatabaseRepository
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -19,6 +18,7 @@ import java.text.SimpleDateFormat
|
|||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class HemoCubeViewModel @Inject constructor(
|
class HemoCubeViewModel @Inject constructor(
|
||||||
private val hemoCubeDao: HemoCubeDao,
|
private val hemoCubeDao: HemoCubeDao,
|
||||||
@@ -27,15 +27,15 @@ class HemoCubeViewModel @Inject constructor(
|
|||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
var isServiceConnected = false
|
var isServiceConnected = false
|
||||||
val progressBar = MutableLiveData(false)
|
val progressBar = MutableLiveData(false)
|
||||||
val testDetails = DataHolder.HomocubeTestType
|
val testDetails = DataHolder.selectedTest?.toHemoCubeTestData()
|
||||||
val testDetailuser = DataHolder.selectedTest
|
|
||||||
private val _networkStatusLiveData = NetworkStatusLiveData(context)
|
private val _networkStatusLiveData = NetworkStatusLiveData(context)
|
||||||
val networkStatusLiveData: LiveData<Boolean>
|
val networkStatusLiveData: LiveData<Boolean>
|
||||||
get() = _networkStatusLiveData
|
get() = _networkStatusLiveData
|
||||||
val fireBaseUpload = MutableLiveData<String>()
|
val fireBaseUpload = MutableLiveData<String>()
|
||||||
fun uploadHemocubeResultToDatabase(
|
fun uploadHemoCubeResultToDatabase(
|
||||||
context: Context, isOnline: Boolean, testStatus: Boolean, kitSerial: String?,
|
context: Context, isOnline: Boolean, testStatus: Boolean, kitSerial: String?,
|
||||||
resultRatio: String,
|
resultRatio: String,
|
||||||
|
resultData: String,
|
||||||
testTime: String?
|
testTime: String?
|
||||||
) = viewModelScope.launch {
|
) = viewModelScope.launch {
|
||||||
if (kitSerial != null) {
|
if (kitSerial != null) {
|
||||||
@@ -63,7 +63,8 @@ class HemoCubeViewModel @Inject constructor(
|
|||||||
|
|
||||||
private fun addResultTestToDb() {
|
private fun addResultTestToDb() {
|
||||||
testDetails?.resultRatio = DataHolder.hemocubeResult
|
testDetails?.resultRatio = DataHolder.hemocubeResult
|
||||||
testDetailuser?.location = DataHolder.location
|
testDetails?.resultData = DataHolder.hemoCubeTestData?.resultData.toString()
|
||||||
|
testDetails?.location = DataHolder.location
|
||||||
testDetails?.testTime = SimpleDateFormat(
|
testDetails?.testTime = SimpleDateFormat(
|
||||||
"yyyy-MM-dd HH:mm:ss", Locale.getDefault()
|
"yyyy-MM-dd HH:mm:ss", Locale.getDefault()
|
||||||
).format(Calendar.getInstance().time)
|
).format(Calendar.getInstance().time)
|
||||||
|
|||||||
Reference in New Issue
Block a user