diff --git a/app/src/main/java/com/example/hpostesting/data/DataHolder.kt b/app/src/main/java/com/example/hpostesting/data/DataHolder.kt index 8191584..894ba2e 100644 --- a/app/src/main/java/com/example/hpostesting/data/DataHolder.kt +++ b/app/src/main/java/com/example/hpostesting/data/DataHolder.kt @@ -24,7 +24,6 @@ object DataHolder { var selectedTest: UserData? = null var SelectTestType: HemoCubeTestData? = null var location: UserData.Location? = null - var locationhemocube: HemoCubeTestData.Location? = null var testExp: Boolean = true var hemocubeResult: Double? = null } \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt b/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt index 1811843..41a7e36 100644 --- a/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt +++ b/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt @@ -4,10 +4,11 @@ import androidx.room.Database import androidx.room.RoomDatabase import androidx.room.TypeConverters import com.example.hpostesting.data.model.patient.UserData +import com.example.hpostesting.data.model.patient.HemoCubeTestData -@Database(entities = [UserData::class], version = 1, exportSchema = false) +@Database(entities = [UserData::class, HemoCubeTestData::class], version = 1, exportSchema = false) @TypeConverters(Converters::class) abstract class MyDatabase : RoomDatabase() { abstract fun userDao(): UserDao - abstract fun hemoCubeDb(): HemoCubeDb -} \ No newline at end of file + abstract fun hemoCubeDao(): HemoCubeDao +} diff --git a/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt b/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt index 32c6400..4a855f3 100644 --- a/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt +++ b/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt @@ -4,6 +4,7 @@ import android.net.Uri import com.example.hpostesting.data.model.PendingUploads import com.example.hpostesting.data.model.Response import com.example.hpostesting.data.model.patient.HemoCubeTestData +import com.example.hpostesting.data.model.patient.UserData import com.google.firebase.firestore.FirebaseFirestore import com.google.firebase.firestore.ktx.firestore import com.google.firebase.ktx.Firebase @@ -18,19 +19,39 @@ class DatabaseRepository : Repository { suspend fun addTestToDatabase(data: HemoCubeTestData?): Response { return try { - val userdata = db.collection("patientData").whereEqualTo("_id", data._id).get().await() + val userdata = db.collection("patientData").whereEqualTo("_id", data!!._id).get().await() if (userdata.documents.isNotEmpty()) { userdata.documents.forEach { db.collection("patientData").document(it.id).update("testStatus", true) } } - db.collection("testData").add(data).await() - Response.Success(data._id) + db.collection("testData").add(data!!).await() + Response.Success(data!!._id) } catch (e: Exception) { Response.Error(e) } } + + suspend fun addTestToDatabase(data: UserData?): Response { + return try { + val userdata = db.collection("patientData").whereEqualTo("_id", data!!._id).get().await() + if (userdata.documents.isNotEmpty()) { + userdata.documents.forEach { + db.collection("patientData").document(it.id).update("testStatus", true) + } + } + db.collection("testData").add(data!!).await() + Response.Success(data!!._id) + } catch (e: Exception) { + Response.Error(e) + } + } + + + + + suspend fun uploadFileToStorage(patientID: String, filePath: String): Response { try { diff --git a/app/src/main/java/com/example/hpostesting/domain/di/AppModule.kt b/app/src/main/java/com/example/hpostesting/domain/di/AppModule.kt index 497eab8..3cc5b1a 100644 --- a/app/src/main/java/com/example/hpostesting/domain/di/AppModule.kt +++ b/app/src/main/java/com/example/hpostesting/domain/di/AppModule.kt @@ -3,7 +3,7 @@ package com.example.hpostesting.domain.di import android.app.Application import android.content.Context import androidx.room.Room -import com.example.hpostesting.data.dao.HemoCubeDb +import com.example.hpostesting.data.dao.HemoCubeDao import com.example.hpostesting.data.dao.MyDatabase import com.example.hpostesting.data.dao.UserDao import com.example.hpostesting.data.datasource.LocalFileDataSource @@ -38,8 +38,8 @@ object AppModule { @Provides @Singleton - fun provideMyHemo(myDatabase: MyDatabase): HemoCubeDb { - return myDatabase.hemoCubeDb() + fun provideMyHemo(myDatabase: MyDatabase): HemoCubeDao { + return myDatabase.hemoCubeDao() } @Provides 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 d908273..5bfd48b 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 @@ -25,6 +25,7 @@ class HemoCubeViewModel@Inject constructor( var isServiceConnected = false val progressBar = MutableLiveData(false) val testDetails = DataHolder.SelectTestType + val testDetailst = DataHolder.selectedTest private val _networkStatusLiveData = NetworkStatusLiveData(context) val networkStatusLiveData: LiveData get() = _networkStatusLiveData @@ -53,7 +54,7 @@ class HemoCubeViewModel@Inject constructor( } private fun addResultTestToDb() { testDetails?.resultRatio = DataHolder.hemocubeResult - testDetails?.locationhemo = DataHolder.locationhemocube + testDetailst?.location = DataHolder.location testDetails?.testTime = SimpleDateFormat( "yyyy-MM-dd HH:mm:ss", Locale.getDefault() ).format(Calendar.getInstance().time)