Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
chandrashekhar reddy
2024-03-09 12:27:22 +05:30
5 changed files with 101 additions and 97 deletions

View File

@@ -5,6 +5,7 @@ import androidx.room.Dao
import androidx.room.Insert import androidx.room.Insert
import androidx.room.OnConflictStrategy import androidx.room.OnConflictStrategy
import androidx.room.Query import androidx.room.Query
import androidx.room.Update
import com.example.hpostesting.data.model.patient.HemoCubeTestData import com.example.hpostesting.data.model.patient.HemoCubeTestData
import com.example.hpostesting.data.model.patient.UserData import com.example.hpostesting.data.model.patient.UserData
@Dao @Dao

View File

@@ -10,7 +10,7 @@ import com.example.hpostesting.data.model.patient.UserData
@Database( @Database(
entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class], entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class],
version = 28, version = 29,
exportSchema = false exportSchema = false
) )
@TypeConverters(Converters::class) @TypeConverters(Converters::class)

View File

@@ -89,8 +89,9 @@ class LocalFileDataSourceImpl @Inject constructor() : LocalFileDataSource {
) )
csvWriter.writeNext(header) csvWriter.writeNext(header)
// Write data rows // Filter and write data rows where testStatus is true
for (data in dataList) { val filteredDataList = dataList.filter { it.testStatus == true }
for (data in filteredDataList) {
val row = arrayOf( val row = arrayOf(
data._id, data._id,
data.name, data.name,

View File

@@ -5,7 +5,8 @@ import androidx.room.PrimaryKey
@Entity(tableName = "hemo_cube_test_table") @Entity(tableName = "hemo_cube_test_table")
data class HemoCubeTestData( data class HemoCubeTestData(
@PrimaryKey @PrimaryKey(autoGenerate = true)
var sampleid: Int = 0,
var _id: String = "", var _id: String = "",
var name: String = "", var name: String = "",
var incubationTime: String = "", var incubationTime: String = "",

View File

@@ -121,6 +121,8 @@ class HomeFragment : Fragment() {
userData.forEach { userData.forEach {
if (it.testStatus == false) { if (it.testStatus == false) {
userList.add(it) userList.add(it)
}else if(it.testStatus == true){
userList.removeAll(userData)
} }
} }
val bm = requireContext().getSystemService(BATTERY_SERVICE) as BatteryManager val bm = requireContext().getSystemService(BATTERY_SERVICE) as BatteryManager
@@ -156,14 +158,16 @@ class HomeFragment : Fragment() {
val resultList = MolbioV2ResultRequest(mutableListOf()) val resultList = MolbioV2ResultRequest(mutableListOf())
originalUserDataList.forEach { userData -> originalUserDataList.forEach { userData ->
Log.d( Log.d(": USER DATA", originalUserDataList.count().toString() + " : " + userData._id)
": USER DATA",
originalUserDataList.count().toString() + " : " + userData._id
)
var accessToken = sharedPreference.getString(Constants.ACCESS_TOKEN, "").toString() var accessToken = sharedPreference.getString(Constants.ACCESS_TOKEN, "").toString()
// Upload results after processing all userData to avoid duplicates and ensure all modifications are done // Upload results after processing all userData to avoid duplicates and ensure all modifications are done
if(accessToken.isNotEmpty()) { if(accessToken.isNotEmpty()) {
if (!userData.molbioFlag && isTokenAvailable && Constants.MOLBIO_INTEGRATION) {
if (!userData.localFlag && userData.testStatus == true) {
hemoCubeViewModel.bulkAddResultTestToDb(userData)
}
if (!userData.molbioFlag && isTokenAvailable && Constants.MOLBIO_INTEGRATION && userData.testStatus == true) {
val currentTimeFormatted = SimpleDateFormat( val currentTimeFormatted = SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ssZZZZZ", "yyyy-MM-dd'T'HH:mm:ssZZZZZ",
Locale.getDefault() Locale.getDefault()
@@ -176,11 +180,9 @@ class HomeFragment : Fragment() {
rawData = userData, rawData = userData,
analysisId = userData._id, analysisId = userData._id,
analysisDate = currentTimeFormatted, analysisDate = currentTimeFormatted,
analysisStatus = userData.classificationResult analysisStatus = userData.classificationResult ?: "defaultStatus", // Handle possible nulls
?: "defaultStatus", // Handle possible nulls
thresholds = bufferIntensityThreshold, thresholds = bufferIntensityThreshold,
interpretation = userData.classificationResult interpretation = userData.classificationResult ?: "defaultInterpretation", // Handle possible nulls
?: "defaultInterpretation", // Handle possible nulls
testId = userData._id, testId = userData._id,
testTime = currentTimeFormatted, testTime = currentTimeFormatted,
collectionTime = currentTimeFormatted, collectionTime = currentTimeFormatted,
@@ -190,23 +192,19 @@ class HomeFragment : Fragment() {
} }
} }
} }
Log.d("USER DATA LIST SIZE", resultList.results?.count().toString()) Log.d("USER DATA LIST SIZE", resultList.results?.count().toString())
resultList.results?.forEach { result -> resultList.results?.forEach { result ->
val userData = result.rawData val userData = result.rawData
Log.d("UserData", userData.toString()) Log.d("UserData", userData.toString())
if (userData != null) {
if (!userData.localFlag) {
hemoCubeViewModel.bulkAddResultTestToDb(userData)
}
}
} }
resultList.results?.forEach { result -> resultList.results?.forEach { result ->
result.rawData?.let { sanitizeDoubleValues(it) } result.rawData?.let { sanitizeDoubleValues(it) }
} }
// Then, check if there are any results to upload. // Then, check if there are any results to upload.
if (resultList.results?.isNotEmpty() == true) { if (resultList.results?.isNotEmpty() == true) {
hemoCubeViewModel.uploadResult(resultList) hemoCubeViewModel.uploadResult(resultList)
Log.d("resultcount1", "Uploading sanitized results") Log.d("resultcount1", "Uploading sanitized results")
@@ -243,27 +241,28 @@ class HomeFragment : Fragment() {
binding.uploadData.setOnClickListener { binding.uploadData.setOnClickListener {
// showUploadDialog(requireContext()) // showUploadDialog(requireContext())
} }
// hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userData -> hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userData ->
// if (sharedPreference.getString(Constants.USER_ID, "").toString() == "ADMIN") {
// val btnSaveLocalVisibility = val btnSaveLocalVisibility =
// if (userData.any { it.testStatus == true }) View.GONE else View.GONE if (userData.any { it.testStatus == true }) View.VISIBLE else View.GONE
// binding.downloadCSV.visibility = btnSaveLocalVisibility
// binding.downloadCSV.visibility = btnSaveLocalVisibility binding.downloadCSV.setOnClickListener {
// if (btnSaveLocalVisibility == View.VISIBLE) {
// binding.downloadCSV.setOnClickListener { // Execute the action when the button is visible (testStatus is true for at least one user)
// if (btnSaveLocalVisibility == View.VISIBLE) { showDownloadDialog(requireContext())
// // Execute the action when the button is visible (testStatus is true for at least one user) } else {
// showDownloadDialog(requireContext()) // Handle the case when the button is not visible
// } else { Toast.makeText(
// // Handle the case when the button is not visible requireContext(),
// Toast.makeText( "No test details stored locally",
// requireContext(), Toast.LENGTH_SHORT
// "No test details stored locally", ).show()
// Toast.LENGTH_SHORT }
// ).show() }
// } }else{
// } binding.downloadCSV.visibility = View.GONE
// } }
}
binding.btnNewKit.setOnClickListener { binding.btnNewKit.setOnClickListener {
@@ -880,11 +879,15 @@ class HomeFragment : Fragment() {
} }
private fun checkUnprocessedCSVData() { private fun checkUnprocessedCSVData() {
// hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
// val downloadDataVisibility = if (sharedPreference.getString(Constants.USER_ID, "").toString() == "ADMIN") {
// if (userDataList.any { !it.isCSVCreated && it.testStatus == true }) View.GONE else View.GONE val downloadDataVisibility =
// binding.downloadCSV.visibility = downloadDataVisibility if (userDataList.any { !it.isCSVCreated && it.testStatus == true }) View.VISIBLE else View.GONE
// } binding.downloadCSV.visibility = downloadDataVisibility
}else{
binding.downloadCSV.visibility = View.GONE
}
}
} }
private fun sanitizeDoubleValues(hemoCubeTestData: HemoCubeTestData): HemoCubeTestData { private fun sanitizeDoubleValues(hemoCubeTestData: HemoCubeTestData): HemoCubeTestData {
@@ -919,22 +922,22 @@ class HomeFragment : Fragment() {
dialog.show() dialog.show()
} }
// private fun showDownloadDialog(context: Context) { private fun showDownloadDialog(context: Context) {
// val builder = AlertDialog.Builder(context) val builder = AlertDialog.Builder(context)
// builder.setTitle(R.string.download_db_registration_title) builder.setTitle(R.string.download_db_registration_title)
// builder.setMessage(R.string.download_db_registration_message) builder.setMessage(R.string.download_db_registration_message)
//
// builder.setPositiveButton(R.string.downloadcsv) { dialog, _ -> builder.setPositiveButton(R.string.downloadcsv) { dialog, _ ->
// downloadLocalDBData(dialog) downloadLocalDBData(dialog)
// } }
//
// builder.setNegativeButton(R.string.cancel) { dialog, _ -> builder.setNegativeButton(R.string.cancel) { dialog, _ ->
// dialog.dismiss() dialog.dismiss()
// } }
//
// val dialog = builder.create() val dialog = builder.create()
// dialog.show() dialog.show()
// } }
private fun uploadLocalDBData(dialog: DialogInterface) { private fun uploadLocalDBData(dialog: DialogInterface) {
// viewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> // viewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
@@ -996,27 +999,25 @@ class HomeFragment : Fragment() {
} }
} }
// private fun downloadLocalDBData(dialog: DialogInterface) { private fun downloadLocalDBData(dialog: DialogInterface) {
// hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
// val downloadList = mutableListOf<HemoCubeTestData>() val downloadList = mutableListOf<HemoCubeTestData>()
//
// userDataList.forEach { userData -> userDataList.forEach { userData ->
// if (!userData.isCSVCreated) { if (!userData.isCSVCreated) {
// downloadList.add(userData) // Add the userData to downloadList downloadList.add(userData) // Add the userData to downloadList
// } }
// } }
//
// if (downloadList.isNotEmpty()) { if (downloadList.isNotEmpty()) {
// // Call ViewModel function to create CSV with filtered data // Call ViewModel function to create CSV with filtered data
// hemoCubeViewModel.createCSV(downloadList, requireContext()) hemoCubeViewModel.createCSV(downloadList, requireContext())
// Toast.makeText(requireContext(), "Done", Toast.LENGTH_SHORT).show() Toast.makeText(requireContext(), "Done", Toast.LENGTH_SHORT).show()
// } else { }
// Toast.makeText(requireContext(), "Failed", Toast.LENGTH_SHORT).show()
// } dialog.dismiss()
// }
// dialog.dismiss() }
// }
// }
private fun deleteIncompleteRegistrations(userDataList: List<UserData>) { private fun deleteIncompleteRegistrations(userDataList: List<UserData>) {
userDataList.forEach { userData -> userDataList.forEach { userData ->
@@ -1052,22 +1053,22 @@ class HomeFragment : Fragment() {
} }
} }
private fun showDownloadDialog(context: Context) { // private fun showDownloadDialog(context: Context) {
val builder = AlertDialog.Builder(context) // val builder = AlertDialog.Builder(context)
builder.setTitle(R.string.download_db_registration_title) // builder.setTitle(R.string.download_db_registration_title)
builder.setMessage(R.string.download_db_registration_message) // builder.setMessage(R.string.download_db_registration_message)
//
builder.setPositiveButton(R.string.downloadcsv) { dialog, _ -> // builder.setPositiveButton(R.string.downloadcsv) { dialog, _ ->
// downloadLocalDBData(dialog) // downloadLocalDBData(dialog)
} // }
//
builder.setNegativeButton(R.string.cancel) { dialog, _ -> // builder.setNegativeButton(R.string.cancel) { dialog, _ ->
dialog.dismiss() // dialog.dismiss()
} // }
//
val dialog = builder.create() // val dialog = builder.create()
dialog.show() // dialog.show()
} // }
// private fun downloadLocalDBData(dialog: DialogInterface) { // private fun downloadLocalDBData(dialog: DialogInterface) {
// var csvDownloaded = false // var csvDownloaded = false