Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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 = "",
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user