From 8e5b29fd7143e6f45a7149fd6acac4c7cdf41adf Mon Sep 17 00:00:00 2001 From: Manshant7 Date: Mon, 18 May 2026 16:37:54 +1000 Subject: [PATCH] Sprint 2 prescription delete and discontinue --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 47 ++-- .../guardian/services/api/ApiService.kt | 27 ++- .../guardian/view/general/Homepage4doctor.kt | 10 +- .../view/general/PrescriptionActivity.kt | 217 ++++++++++++++++++ .../res/layout/activity_homepage4doctor.xml | 33 ++- .../main/res/layout/activity_prescription.xml | 56 +++++ 7 files changed, 350 insertions(+), 41 deletions(-) create mode 100644 app/src/main/java/deakin/gopher/guardian/view/general/PrescriptionActivity.kt create mode 100644 app/src/main/res/layout/activity_prescription.xml diff --git a/app/build.gradle b/app/build.gradle index 18f94621d..63c83125e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -112,6 +112,7 @@ dependencies { implementation 'androidx.compose.material3:material3' implementation platform('androidx.compose:compose-bom:2024.08.00') implementation platform('androidx.compose:compose-bom:2024.08.00') + implementation 'androidx.activity:activity:1.8.0' testImplementation 'junit:junit:4.13.2' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 31d6a312a..6af009f2b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,21 +5,15 @@ - - - - + + - - - - - - - - - + + + @@ -34,9 +28,12 @@ android:supportsRtl="true" android:theme="@style/AppTheme" android:usesCleartextTraffic="true" + tools:ignore="ExtraText" tools:replace="android:allowBackup,android:label" - tools:targetApi="31" - tools:ignore="ExtraText"> + tools:targetApi="31"> + @@ -45,7 +42,7 @@ android:exported="false" /> + android:exported="false" /> @@ -161,7 +158,8 @@ - - - - - - - - - + - - + - @@ -228,7 +217,7 @@ android:name="preloaded_fonts" android:resource="@array/preloaded_fonts" /> - + \ No newline at end of file diff --git a/app/src/main/java/deakin/gopher/guardian/services/api/ApiService.kt b/app/src/main/java/deakin/gopher/guardian/services/api/ApiService.kt index 0e9ea177e..85ff159d5 100644 --- a/app/src/main/java/deakin/gopher/guardian/services/api/ApiService.kt +++ b/app/src/main/java/deakin/gopher/guardian/services/api/ApiService.kt @@ -22,7 +22,7 @@ import retrofit2.http.POST import retrofit2.http.Part import retrofit2.http.Path import retrofit2.http.Query - +import okhttp3.ResponseBody interface ApiService { @POST("auth/register") fun register( @@ -91,4 +91,29 @@ interface ApiService { @Header("Authorization") token: String, @Path("id") patientId: String, ): Response + + + @GET("patients/{patientId}/prescriptions") + suspend fun getPrescriptionsForPatient( + @Header("Authorization") token: String, + @Path("patientId") patientId: String, + ): Response + + @POST("prescriptions/{id}/discontinue") + suspend fun discontinuePrescription( + @Header("Authorization") token: String, + @Path("id") prescriptionId: String, + ): Response + + @DELETE("prescriptions/{id}") + suspend fun deletePrescription( + @Header("Authorization") token: String, + @Path("id") prescriptionId: String, + ): Response + + @GET("doctors/{doctorId}/patients") + suspend fun getPatientsForDoctor( + @Header("Authorization") token: String, + @Path("doctorId") doctorId: String, + ): Response } diff --git a/app/src/main/java/deakin/gopher/guardian/view/general/Homepage4doctor.kt b/app/src/main/java/deakin/gopher/guardian/view/general/Homepage4doctor.kt index fb2461467..e2118af98 100644 --- a/app/src/main/java/deakin/gopher/guardian/view/general/Homepage4doctor.kt +++ b/app/src/main/java/deakin/gopher/guardian/view/general/Homepage4doctor.kt @@ -1,5 +1,6 @@ package deakin.gopher.guardian.view.general +import android.content.Intent import android.os.Bundle import android.widget.Button import androidx.appcompat.app.AppCompatActivity @@ -11,10 +12,17 @@ class Homepage4doctor : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_homepage4doctor) + val prescriptionButton: Button = findViewById(R.id.prescriptionButton) val signOutButton: Button = findViewById(R.id.signOutButton_doctor) + + prescriptionButton.setOnClickListener { + val intent = Intent(this, PrescriptionActivity::class.java) + startActivity(intent) + } + signOutButton.setOnClickListener { EmailPasswordAuthService.signOut(this) finish() } } -} +} \ No newline at end of file diff --git a/app/src/main/java/deakin/gopher/guardian/view/general/PrescriptionActivity.kt b/app/src/main/java/deakin/gopher/guardian/view/general/PrescriptionActivity.kt new file mode 100644 index 000000000..33b6eff39 --- /dev/null +++ b/app/src/main/java/deakin/gopher/guardian/view/general/PrescriptionActivity.kt @@ -0,0 +1,217 @@ +package deakin.gopher.guardian.view.general + +import android.os.Bundle +import android.widget.Button +import android.widget.EditText +import android.widget.TextView +import android.widget.Toast +import androidx.appcompat.app.AlertDialog +import androidx.appcompat.app.AppCompatActivity +import androidx.lifecycle.lifecycleScope +import deakin.gopher.guardian.R +import deakin.gopher.guardian.model.login.SessionManager +import deakin.gopher.guardian.services.api.ApiClient +import kotlinx.coroutines.launch +import org.json.JSONObject + +class PrescriptionActivity : AppCompatActivity() { + private lateinit var resultText: TextView + private lateinit var prescriptionIdInput: EditText + + private val patientIds = listOf( + "6a05a5ca0887fc839270495d", + "6a05a5ca0887fc839270495e", + "6a05a5ca0887fc839270495f", + "69dca7f5e3887dde19d9f6e2" + ) + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_prescription) + + resultText = findViewById(R.id.resultText) + prescriptionIdInput = findViewById(R.id.prescriptionIdInput) + + findViewById