From 31ed1edd0bfb35eddeb4b15f2137e2a0c0bb5d11 Mon Sep 17 00:00:00 2001 From: chandrashekhar reddy Date: Tue, 12 Mar 2024 14:05:52 +0530 Subject: [PATCH] testing L command changed the TestStatus --- .../hpostesting/data/constant/TestStatus.kt | 4 +- .../data/datasource/LocalFileDataSource.kt | 2 + .../datasource/LocalFileDataSourceImpl.kt | 121 ++++++++++++++++++ .../hemocube/HemoCubeViewModel.kt | 4 +- 4 files changed, 127 insertions(+), 4 deletions(-) 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 e969609..feefb33 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 @@ -10,8 +10,8 @@ enum class TestStatus(val code: Double) { FIRST_EMPTY_AIR_READING_PRINT_COMPLETED(4.4), EPROM_ADC_RETRIEVAL_STARTED(4.5), EPROM_ADC_RETRIEVAL_COMPLETED(4.6), - CUVETTE_PRESENT(4.7), - CUVETTE_ABSENT(4.8), + CUVETTE_ABSENT(4.7), + CUVETTE_PRESENT(4.8), BUFFER_STARTED(4.9), BUFFER_COMPLETED(5.1), BUFFER_PRINT_STARTED(6.0), diff --git a/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSource.kt b/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSource.kt index 4983c11..eaccd9d 100644 --- a/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSource.kt +++ b/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSource.kt @@ -11,4 +11,6 @@ interface LocalFileDataSource { fun exportDataToCSV( fileName: String, dataList: List, ): Boolean + fun backUpDataToCSV(fileName: String, dataList: List) + } \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSourceImpl.kt b/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSourceImpl.kt index a6c8f37..d217c92 100644 --- a/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSourceImpl.kt +++ b/app/src/main/java/com/example/hpostesting/data/datasource/LocalFileDataSourceImpl.kt @@ -153,6 +153,127 @@ class LocalFileDataSourceImpl @Inject constructor() : LocalFileDataSource { } } + override fun backUpDataToCSV(fileName: String, dataList: List) { + try { + val filePath = File(getExternalStorageDirectory(), fileName) + val writer = FileWriter(filePath) + val csvWriter = CSVWriter(writer) + // Write CSV header + val header = arrayOf( + "_id", + "name", + "incubationTime", + "bloodGroup", + "birthYear", // Include other fields from the data class + "state", + "abhaId", + "userImageURL", + "location", + "reportUploadTime", + "testType", + "testTime", + "testStatus", + "gender", + "localFlag", // Add more fields as necessary + "deviceId", + "appVersion", + "deviceSerialNumber", + "deviceType", + "kitSerial", + "resultData", + "led1Buffer", + "led2Buffer", + "led3Buffer", + "led4Buffer", + "led1Sample", + "led2Sample", + "led3Sample", + "led4Sample", + "led1Average", + "led2Average", + "led3Average", + "led4Average", + "abs1", + "abs2", + "abs3", + "abs4", + "deviceRatio", + "calculatedRatio", + "predictedDenovixRatio", + "coefficients", + "classificationResult", + "prdClassification", + "errorMessages", + "batteryLevel", + "batteryCapacity", + "batteryMaxCapacity", + "batteryTemperature", + "batteryVoltage" + ) + csvWriter.writeNext(header) + + // Filter and write data rows where testStatus is true + val filteredDataList = dataList.filter { it.testStatus == true } + for (data in filteredDataList) { + val row = arrayOf( + data._id, + data.name, + data.incubationTime, + data.bloodGroup, + data.birthYear, // Include other fields similarly + data.state, + data.abhaId, + data.userImageURL, + data.location?.toString(), + data.reportUploadTime ?: "", + data.testType ?: "", + data.testTime ?: "", + data.testStatus?.toString() ?: "", + data.gender, + data.localFlag.toString(), + data.deviceId ?: "", + data.appVersion ?: "", + data.deviceSerialNumber, + data.deviceType, + data.kitSerial, + data.resultData, + data.led1Buffer?.toString() ?: "", + data.led2Buffer?.toString() ?: "", + data.led3Buffer?.toString() ?: "", + data.led4Buffer?.toString() ?: "", + data.led1Sample?.toString() ?: "", + data.led2Sample?.toString() ?: "", + data.led3Sample?.toString() ?: "", + data.led4Sample?.toString() ?: "", + data.led1Average?.toString() ?: "", + data.led2Average?.toString() ?: "", + data.led3Average?.toString() ?: "", + data.led4Average?.toString() ?: "", + data.abs1?.toString() ?: "", + data.abs2?.toString() ?: "", + data.abs3?.toString() ?: "", + data.abs4?.toString() ?: "", + data.deviceRatio?.toString() ?: "", + data.calculatedRatio?.toString() ?: "", + data.predictedDenovixRatio?.toString() ?: "", + data.coefficients ?: "", + data.classificationResult, + data.prdClassification, + data.errorMessages, + data.batteryLevel, + data.batteryCapacity, + data.batteryMaxCapacity, + data.batteryTemperature, + data.batteryVoltage + ) + csvWriter.writeNext(row) + } + writer.close() + } catch (e: IOException) { + e.printStackTrace() + } + } + private fun getExternalStorageDirectory(): File { val folder = File(Environment.getExternalStorageDirectory(), "HposFolder") 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 96b1550..4255c32 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 @@ -112,7 +112,7 @@ class HemoCubeViewModel @Inject constructor( testDetails?.kitSerial = kitSerial } testDetails?.testStatus = testStatus - + // localFileDataSource.backUpDataToCSV("",testDetails) try { if (isOnline) { parseData() @@ -559,7 +559,7 @@ class HemoCubeViewModel @Inject constructor( val fileName = "HPOS${getCurrentDate()}.csv" if (localFileDataSource.exportDataToCSV(fileName, hemoCubeTestData)) { hemoCubeTestData.forEach { data -> - data.localFlag = true + // data.localFlag = true hemoCubeDao.updateCSVFieldById( data._id, true