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