From ab7c9209acc84c62cfc2bbbf7b111920a724f1a7 Mon Sep 17 00:00:00 2001 From: yaso-meth Date: Thu, 8 Aug 2024 11:40:49 +0200 Subject: [PATCH] include patient view auguments --- .../lib/components/addOrViewPatient.dart | 13 ++-- .../lib/components/homeTileGrid.dart | 5 +- .../lib/components/patientDetails.dart | 67 ++++++++++++------- .../lib/components/patientFiles.dart | 4 +- .../lib/components/patientNotes.dart | 11 ++- .../lib/pages/patientView.dart | 24 ++++--- .../lib/router/routeGenerator.dart | 9 +-- 7 files changed, 85 insertions(+), 48 deletions(-) diff --git a/Frontend/patient_manager/lib/components/addOrViewPatient.dart b/Frontend/patient_manager/lib/components/addOrViewPatient.dart index 6a889fce..b23e5c7c 100644 --- a/Frontend/patient_manager/lib/components/addOrViewPatient.dart +++ b/Frontend/patient_manager/lib/components/addOrViewPatient.dart @@ -2,17 +2,18 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:patient_manager/env/env.dart'; -import 'package:patient_manager/objects/appUser.dart'; +import 'package:patient_manager/objects/arguments.dart'; import 'package:patient_manager/objects/patients.dart'; import 'package:patient_manager/pages/patientAdd.dart'; import 'package:patient_manager/pages/patientView.dart'; import 'package:supertokens_flutter/http.dart' as http; class AddOrViewPatient extends StatefulWidget { - final AppUser signedInUser; + //final AppUser signedInUser; + final PatientViewArguments arguments; const AddOrViewPatient({ super.key, - required this.signedInUser, + required this.arguments, }); @override @@ -23,7 +24,7 @@ class _AddOrViewPatientState extends State { Future fetchPatient() async { //print("Patien manager page: $endpoint"); final response = await http.get(Uri.parse( - "${AppEnviroment.baseApiUrl}/patients/${widget.signedInUser.app_id}")); + "${AppEnviroment.baseApiUrl}/patients/${widget.arguments.signedInUser.app_id}")); // print("Here"); // print("Body: ${response.body}"); // print("Code: ${response.statusCode}"); @@ -55,10 +56,10 @@ class _AddOrViewPatientState extends State { if (snapshot.hasData) { // Extracting data from snapshot object //final data = snapshot.data as String; - return PatientView(signedInUser: widget.signedInUser); + return PatientView(arguments: widget.arguments); } } - return AddPatient(signedInUser: widget.signedInUser); + return AddPatient(signedInUser: widget.arguments.signedInUser); }, ); } diff --git a/Frontend/patient_manager/lib/components/homeTileGrid.dart b/Frontend/patient_manager/lib/components/homeTileGrid.dart index d875b928..4426ac46 100644 --- a/Frontend/patient_manager/lib/components/homeTileGrid.dart +++ b/Frontend/patient_manager/lib/components/homeTileGrid.dart @@ -11,6 +11,7 @@ import 'package:patient_manager/components/mySuccessMessage.dart'; import 'package:patient_manager/env/env.dart'; import 'package:patient_manager/main.dart'; import 'package:patient_manager/objects/appUser.dart'; +import 'package:patient_manager/objects/arguments.dart'; import 'package:patient_manager/objects/businessUser.dart'; import 'package:supertokens_flutter/http.dart' as http; @@ -86,8 +87,8 @@ class _HomeTileGridState extends State { Icons.medication, "Patient Profile", () { - Navigator.of(context) - .pushNamed('/patient-profile', arguments: widget.signedInUser); + Navigator.of(context).pushNamed('/patient-profile', + arguments: PatientViewArguments(widget.signedInUser, "personal")); // Navigator.popAndPushNamed(context, '/patient-manager', // arguments: widget.userEmail); } diff --git a/Frontend/patient_manager/lib/components/patientDetails.dart b/Frontend/patient_manager/lib/components/patientDetails.dart index 2870d858..861f94fa 100644 --- a/Frontend/patient_manager/lib/components/patientDetails.dart +++ b/Frontend/patient_manager/lib/components/patientDetails.dart @@ -5,7 +5,12 @@ import 'package:patient_manager/objects/patients.dart'; class PatientDetails extends StatefulWidget { final Patient selectedPatient; - const PatientDetails({super.key, required this.selectedPatient}); + final String type; + const PatientDetails({ + super.key, + required this.selectedPatient, + required this.type, + }); @override State createState() => _PatientDetailsState(); @@ -149,6 +154,43 @@ class _PatientDetailsState extends State { ); } + List setIcons() { + if (widget.type == "personal") { + return [ + Text( + "Patient Details", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + ), + ), + IconButton( + icon: const Icon(Icons.edit), + alignment: Alignment.topRight, + color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + onPressed: () { + Navigator.of(context).pushNamed('/patient-manager/patient/edit', + arguments: widget.selectedPatient); + }, + ) + ]; + } else { + return [ + Text( + "Patient Details", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + ), + ), + ]; + } + } + @override void initState() { setState(() { @@ -196,28 +238,7 @@ class _PatientDetailsState extends State { Row( mainAxisAlignment: MainAxisAlignment.center, //crossAxisAlignment: , - children: [ - Text( - "Patient Details", - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 25, - fontWeight: FontWeight.bold, - color: - MzanziInnovationHub.of(context)!.theme.secondaryColor(), - ), - ), - IconButton( - icon: const Icon(Icons.edit), - alignment: Alignment.topRight, - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - onPressed: () { - Navigator.of(context).pushNamed( - '/patient-manager/patient/edit', - arguments: widget.selectedPatient); - }, - ) - ], + children: setIcons(), ), Divider( color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), diff --git a/Frontend/patient_manager/lib/components/patientFiles.dart b/Frontend/patient_manager/lib/components/patientFiles.dart index c910d5b3..002d5afc 100644 --- a/Frontend/patient_manager/lib/components/patientFiles.dart +++ b/Frontend/patient_manager/lib/components/patientFiles.dart @@ -24,11 +24,13 @@ class PatientFiles extends StatefulWidget { final int patientIndex; final Patient selectedPatient; final AppUser signedInUser; + final String type; const PatientFiles({ super.key, required this.patientIndex, required this.selectedPatient, required this.signedInUser, + required this.type, }); @override @@ -561,7 +563,7 @@ class _PatientFilesState extends State { } List setIcons() { - if (widget.signedInUser.type == "personal") { + if (widget.type == "personal") { return [ Text( "Files", diff --git a/Frontend/patient_manager/lib/components/patientNotes.dart b/Frontend/patient_manager/lib/components/patientNotes.dart index 511b49b0..cf49d3ad 100644 --- a/Frontend/patient_manager/lib/components/patientNotes.dart +++ b/Frontend/patient_manager/lib/components/patientNotes.dart @@ -16,8 +16,13 @@ import 'package:supertokens_flutter/http.dart' as http; class PatientNotes extends StatefulWidget { final String patientAppId; final AppUser signedInUser; - const PatientNotes( - {super.key, required this.patientAppId, required this.signedInUser}); + final String type; + const PatientNotes({ + super.key, + required this.patientAppId, + required this.signedInUser, + required this.type, + }); @override State createState() => _PatientNotesState(); @@ -217,7 +222,7 @@ class _PatientNotesState extends State { } List setIcons() { - if (widget.signedInUser.type == "personal") { + if (widget.type == "personal") { return [ Text( "Notes", diff --git a/Frontend/patient_manager/lib/pages/patientView.dart b/Frontend/patient_manager/lib/pages/patientView.dart index 85e2e733..37e3f9c5 100644 --- a/Frontend/patient_manager/lib/pages/patientView.dart +++ b/Frontend/patient_manager/lib/pages/patientView.dart @@ -8,15 +8,16 @@ import 'package:patient_manager/components/patientFiles.dart'; import 'package:patient_manager/components/patientNotes.dart'; import 'package:patient_manager/env/env.dart'; import 'package:patient_manager/main.dart'; -import 'package:patient_manager/objects/appUser.dart'; +import 'package:patient_manager/objects/arguments.dart'; import 'package:patient_manager/objects/patients.dart'; import 'package:supertokens_flutter/http.dart' as http; class PatientView extends StatefulWidget { - final AppUser signedInUser; + //final AppUser signedInUser; + final PatientViewArguments arguments; const PatientView({ super.key, - required this.signedInUser, + required this.arguments, }); @override @@ -26,7 +27,7 @@ class PatientView extends StatefulWidget { class _PatientViewState extends State { Future fetchPatient() async { //print("Patien manager page: $endpoint"); - var patientAppId = widget.signedInUser.app_id; + var patientAppId = widget.arguments.signedInUser.app_id; final response = await http .get(Uri.parse("${AppEnviroment.baseApiUrl}/patients/$patientAppId")); @@ -73,7 +74,7 @@ class _PatientViewState extends State { return Scaffold( appBar: const MIHAppBar(barTitle: "Patient View"), drawer: MIHAppDrawer( - signedInUser: widget.signedInUser, + signedInUser: widget.arguments.signedInUser, logo: MzanziInnovationHub.of(context)!.theme.logoImage(), ), body: SingleChildScrollView( @@ -82,7 +83,10 @@ class _PatientViewState extends State { vertical: 10.0, horizontal: 15.0), child: Column( children: [ - PatientDetails(selectedPatient: snapshot.data!), + PatientDetails( + selectedPatient: snapshot.data!, + type: widget.arguments.type, + ), const SizedBox( height: 10.0, ), @@ -96,7 +100,8 @@ class _PatientViewState extends State { width: 660, child: PatientNotes( patientAppId: snapshot.data!.app_id, - signedInUser: widget.signedInUser, + signedInUser: widget.arguments.signedInUser, + type: widget.arguments.type, ), ), SizedBox( @@ -104,7 +109,8 @@ class _PatientViewState extends State { child: PatientFiles( patientIndex: snapshot.data!.idpatients, selectedPatient: snapshot.data!, - signedInUser: widget.signedInUser, + signedInUser: widget.arguments.signedInUser, + type: widget.arguments.type, ), ) ], @@ -119,7 +125,7 @@ class _PatientViewState extends State { return Center( child: Text( '${snapshot.error} occurred', - style: TextStyle(fontSize: 18), + style: const TextStyle(fontSize: 18), ), ); }, diff --git a/Frontend/patient_manager/lib/router/routeGenerator.dart b/Frontend/patient_manager/lib/router/routeGenerator.dart index 22d5d782..4f0ca480 100644 --- a/Frontend/patient_manager/lib/router/routeGenerator.dart +++ b/Frontend/patient_manager/lib/router/routeGenerator.dart @@ -4,6 +4,7 @@ import 'package:patient_manager/components/addOrViewPatient.dart'; import 'package:patient_manager/components/mihAppBar.dart'; import 'package:patient_manager/components/signInOrRegister.dart'; import 'package:patient_manager/objects/appUser.dart'; +import 'package:patient_manager/objects/arguments.dart'; import 'package:patient_manager/objects/patients.dart'; import 'package:patient_manager/pages/home.dart'; import 'package:patient_manager/pages/patientAdd.dart'; @@ -26,11 +27,11 @@ class RouteGenerator { return MaterialPageRoute(builder: (_) => const Home()); case '/patient-profile': - if (args is AppUser) { + if (args is PatientViewArguments) { //print("route generator: $args"); return MaterialPageRoute( builder: (_) => AddOrViewPatient( - signedInUser: args, + arguments: args, ), ); } @@ -58,10 +59,10 @@ class RouteGenerator { return _errorRoute(); case '/patient-manager/patient': - if (args is AppUser) { + if (args is PatientViewArguments) { return MaterialPageRoute( builder: (_) => PatientView( - signedInUser: args, + arguments: args, ), ); }