NEW: Patient Manager Provider Setup pt3
This commit is contained in:
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/claim_statement_file.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/claim_statement_file.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/files.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/files.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/notes.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/notes.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patient_access.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patients.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patients.dart';
|
||||||
|
|
||||||
class PatientManagerProvider extends ChangeNotifier {
|
class PatientManagerProvider extends ChangeNotifier {
|
||||||
@@ -9,6 +10,7 @@ class PatientManagerProvider extends ChangeNotifier {
|
|||||||
int patientManagerIndex;
|
int patientManagerIndex;
|
||||||
int fileViewerIndex;
|
int fileViewerIndex;
|
||||||
bool personalMode;
|
bool personalMode;
|
||||||
|
List<PatientAccess>? myPaitentList;
|
||||||
Patient? selectedPatient;
|
Patient? selectedPatient;
|
||||||
List<Note>? consultationNotes;
|
List<Note>? consultationNotes;
|
||||||
List<PFile>? patientDocuments;
|
List<PFile>? patientDocuments;
|
||||||
@@ -53,6 +55,11 @@ class PatientManagerProvider extends ChangeNotifier {
|
|||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setMyPatientList({required List<PatientAccess>? myPaitentList}) {
|
||||||
|
this.myPaitentList = myPaitentList ?? [];
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
|
||||||
void setConsultationNotes({required List<Note>? consultationNotes}) {
|
void setConsultationNotes({required List<Note>? consultationNotes}) {
|
||||||
this.consultationNotes = consultationNotes ?? [];
|
this.consultationNotes = consultationNotes ?? [];
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
|||||||
@@ -320,6 +320,7 @@ class MihGoRouter {
|
|||||||
name: "mihAccess",
|
name: "mihAccess",
|
||||||
path: MihGoRouterPaths.mihAccess,
|
path: MihGoRouterPaths.mihAccess,
|
||||||
builder: (BuildContext context, GoRouterState state) {
|
builder: (BuildContext context, GoRouterState state) {
|
||||||
|
KenLogger.success("MihGoRouter: mihAccess");
|
||||||
if (context.watch<MzansiProfileProvider>().user == null) {
|
if (context.watch<MzansiProfileProvider>().user == null) {
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
context.go(MihGoRouterPaths.mihHome);
|
context.go(MihGoRouterPaths.mihHome);
|
||||||
@@ -336,20 +337,21 @@ class MihGoRouter {
|
|||||||
name: "patientProfile",
|
name: "patientProfile",
|
||||||
path: MihGoRouterPaths.patientProfile,
|
path: MihGoRouterPaths.patientProfile,
|
||||||
builder: (BuildContext context, GoRouterState state) {
|
builder: (BuildContext context, GoRouterState state) {
|
||||||
final String? argPatientAppId = state.extra as String?;
|
KenLogger.success("MihGoRouter: patientProfile");
|
||||||
if (context.watch<MzansiProfileProvider>().user == null) {
|
if (context.watch<MzansiProfileProvider>().user == null) {
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
context.go(MihGoRouterPaths.mihHome);
|
context.go(MihGoRouterPaths.mihHome);
|
||||||
});
|
});
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
}
|
}
|
||||||
return PatientProfile(patientAppId: argPatientAppId);
|
return PatientProfile();
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
GoRoute(
|
GoRoute(
|
||||||
name: "patientProfileSetup",
|
name: "patientProfileSetup",
|
||||||
path: MihGoRouterPaths.patientProfileSetup,
|
path: MihGoRouterPaths.patientProfileSetup,
|
||||||
builder: (BuildContext context, GoRouterState state) {
|
builder: (BuildContext context, GoRouterState state) {
|
||||||
|
KenLogger.success("MihGoRouter: patientProfileSetup");
|
||||||
if (context.watch<MzansiProfileProvider>().user == null) {
|
if (context.watch<MzansiProfileProvider>().user == null) {
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
context.go(MihGoRouterPaths.mihHome);
|
context.go(MihGoRouterPaths.mihHome);
|
||||||
@@ -363,8 +365,8 @@ class MihGoRouter {
|
|||||||
name: "patientManager",
|
name: "patientManager",
|
||||||
path: MihGoRouterPaths.patientManager,
|
path: MihGoRouterPaths.patientManager,
|
||||||
builder: (BuildContext context, GoRouterState state) {
|
builder: (BuildContext context, GoRouterState state) {
|
||||||
final PatManagerArguments? args = state.extra as PatManagerArguments?;
|
KenLogger.success("MihGoRouter: patientManager");
|
||||||
if (args == null) {
|
if (context.watch<MzansiProfileProvider>().business == null) {
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
context.go(MihGoRouterPaths.mihHome);
|
context.go(MihGoRouterPaths.mihHome);
|
||||||
});
|
});
|
||||||
@@ -372,7 +374,6 @@ class MihGoRouter {
|
|||||||
}
|
}
|
||||||
return PatManager(
|
return PatManager(
|
||||||
key: UniqueKey(),
|
key: UniqueKey(),
|
||||||
arguments: args,
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -380,14 +381,14 @@ class MihGoRouter {
|
|||||||
name: "patientManagerPatient",
|
name: "patientManagerPatient",
|
||||||
path: MihGoRouterPaths.patientManagerPatient,
|
path: MihGoRouterPaths.patientManagerPatient,
|
||||||
builder: (BuildContext context, GoRouterState state) {
|
builder: (BuildContext context, GoRouterState state) {
|
||||||
final String? argPatientAppId = state.extra as String?;
|
KenLogger.success("MihGoRouter: patientManagerPatient");
|
||||||
if (context.watch<MzansiProfileProvider>().user == null) {
|
if (context.watch<MzansiProfileProvider>().user == null) {
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
context.go(MihGoRouterPaths.mihHome);
|
context.go(MihGoRouterPaths.mihHome);
|
||||||
});
|
});
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
}
|
}
|
||||||
return PatientProfile(patientAppId: argPatientAppId);
|
return PatientProfile();
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
// ========================== Mzansi Directory ==================================
|
// ========================== Mzansi Directory ==================================
|
||||||
@@ -395,6 +396,7 @@ class MihGoRouter {
|
|||||||
name: "mzansiDirectory",
|
name: "mzansiDirectory",
|
||||||
path: MihGoRouterPaths.mzansiDirectory,
|
path: MihGoRouterPaths.mzansiDirectory,
|
||||||
builder: (BuildContext context, GoRouterState state) {
|
builder: (BuildContext context, GoRouterState state) {
|
||||||
|
KenLogger.success("MihGoRouter: mzansiDirectory");
|
||||||
if (context.watch<MzansiProfileProvider>().user == null) {
|
if (context.watch<MzansiProfileProvider>().user == null) {
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
context.go(MihGoRouterPaths.mihHome);
|
context.go(MihGoRouterPaths.mihHome);
|
||||||
@@ -409,6 +411,7 @@ class MihGoRouter {
|
|||||||
name: "fileViewer",
|
name: "fileViewer",
|
||||||
path: MihGoRouterPaths.fileViewer,
|
path: MihGoRouterPaths.fileViewer,
|
||||||
builder: (BuildContext context, GoRouterState state) {
|
builder: (BuildContext context, GoRouterState state) {
|
||||||
|
KenLogger.success("MihGoRouter: fileViewer");
|
||||||
final FileViewArguments? args = state.extra as FileViewArguments?;
|
final FileViewArguments? args = state.extra as FileViewArguments?;
|
||||||
return FullScreenFileViewer(arguments: args!);
|
return FullScreenFileViewer(arguments: args!);
|
||||||
},
|
},
|
||||||
@@ -417,6 +420,7 @@ class MihGoRouter {
|
|||||||
name: "printPreview",
|
name: "printPreview",
|
||||||
path: MihGoRouterPaths.printPreview,
|
path: MihGoRouterPaths.printPreview,
|
||||||
builder: (BuildContext context, GoRouterState state) {
|
builder: (BuildContext context, GoRouterState state) {
|
||||||
|
KenLogger.success("MihGoRouter: printPreview");
|
||||||
final PrintPreviewArguments? args =
|
final PrintPreviewArguments? args =
|
||||||
state.extra as PrintPreviewArguments?;
|
state.extra as PrintPreviewArguments?;
|
||||||
return MIHPrintPreview(arguments: args!);
|
return MIHPrintPreview(arguments: args!);
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/patient_manager_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_service_calls.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_calendar_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_calendar_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart';
|
||||||
@@ -15,26 +17,12 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patient_access.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patients.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class BuildMyPatientListList extends StatefulWidget {
|
class BuildMyPatientListList extends StatefulWidget {
|
||||||
final List<PatientAccess> patientAccesses;
|
|
||||||
final AppUser signedInUser;
|
|
||||||
final Business? business;
|
|
||||||
final BusinessUser? businessUser;
|
|
||||||
|
|
||||||
const BuildMyPatientListList({
|
const BuildMyPatientListList({
|
||||||
super.key,
|
super.key,
|
||||||
required this.patientAccesses,
|
|
||||||
required this.signedInUser,
|
|
||||||
required this.business,
|
|
||||||
required this.businessUser,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -51,24 +39,21 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
|
|
||||||
final baseAPI = AppEnviroment.baseApiUrl;
|
final baseAPI = AppEnviroment.baseApiUrl;
|
||||||
|
|
||||||
Future<void> submitApointment(int index) async {
|
Future<void> submitApointment(MzansiProfileProvider profileProvider,
|
||||||
|
PatientManagerProvider patientManagerProvider, int index) async {
|
||||||
//To-Do: Add the appointment to the database
|
//To-Do: Add the appointment to the database
|
||||||
// print("To-Do: Add the appointment to the database");
|
// print("To-Do: Add the appointment to the database");
|
||||||
String description =
|
String description =
|
||||||
"Date: ${dateController.text}\nTime: ${timeController.text}\n";
|
"Date: ${dateController.text}\nTime: ${timeController.text}\n";
|
||||||
description += "Medical Practice: ${widget.business!.Name}\n";
|
description += "Medical Practice: ${profileProvider.business!.Name}\n";
|
||||||
description += "Contact Number: ${widget.business!.contact_no}";
|
description += "Contact Number: ${profileProvider.business!.contact_no}";
|
||||||
int statusCode;
|
int statusCode;
|
||||||
statusCode = await MihMzansiCalendarApis.addPatientAppointment(
|
statusCode = await MihMzansiCalendarApis.addPatientAppointment(
|
||||||
widget.signedInUser,
|
profileProvider.user!,
|
||||||
false,
|
false,
|
||||||
widget.patientAccesses[index].app_id,
|
patientManagerProvider.myPaitentList![index].app_id,
|
||||||
BusinessArguments(
|
profileProvider.business!.business_id,
|
||||||
widget.signedInUser,
|
"${patientManagerProvider.myPaitentList![index].fname} ${patientManagerProvider.myPaitentList![index].lname} - Doctors Visit",
|
||||||
widget.businessUser,
|
|
||||||
widget.business,
|
|
||||||
),
|
|
||||||
"${widget.patientAccesses[index].fname} ${widget.patientAccesses[index].lname} - Doctors Visit",
|
|
||||||
description,
|
description,
|
||||||
dateController.text,
|
dateController.text,
|
||||||
timeController.text,
|
timeController.text,
|
||||||
@@ -164,11 +149,16 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void appointmentPopUp(int index, double width) {
|
void appointmentPopUp(
|
||||||
var firstLetterFName = widget.patientAccesses[index].fname;
|
MzansiProfileProvider profileProvider,
|
||||||
var firstLetterLName = widget.patientAccesses[index].lname;
|
PatientManagerProvider patientManagerProvider,
|
||||||
|
int index,
|
||||||
|
double width,
|
||||||
|
) {
|
||||||
|
var firstLetterFName = patientManagerProvider.myPaitentList![index].fname;
|
||||||
|
var firstLetterLName = patientManagerProvider.myPaitentList![index].lname;
|
||||||
setState(() {
|
setState(() {
|
||||||
idController.text = widget.patientAccesses[index].id_no;
|
idController.text = patientManagerProvider.myPaitentList![index].id_no;
|
||||||
fnameController.text = firstLetterFName;
|
fnameController.text = firstLetterFName;
|
||||||
lnameController.text = firstLetterLName;
|
lnameController.text = firstLetterLName;
|
||||||
});
|
});
|
||||||
@@ -260,7 +250,8 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
if (_formKey.currentState!.validate()) {
|
if (_formKey.currentState!.validate()) {
|
||||||
bool filled = isAppointmentFieldsFilled();
|
bool filled = isAppointmentFieldsFilled();
|
||||||
if (filled) {
|
if (filled) {
|
||||||
submitApointment(index);
|
submitApointment(
|
||||||
|
profileProvider, patientManagerProvider, index);
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
@@ -299,8 +290,9 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void noAccessWarning(int index) {
|
void noAccessWarning(
|
||||||
if (widget.patientAccesses[index].status == "pending") {
|
PatientManagerProvider patientManagerProvider, int index) {
|
||||||
|
if (patientManagerProvider.myPaitentList![index].status == "pending") {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
@@ -317,10 +309,11 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hasAccessToProfile(int index) {
|
bool hasAccessToProfile(
|
||||||
|
PatientManagerProvider patientManagerProvider, int index) {
|
||||||
var hasAccess = false;
|
var hasAccess = false;
|
||||||
|
|
||||||
if (widget.patientAccesses[index].status == "approved") {
|
if (patientManagerProvider.myPaitentList![index].status == "approved") {
|
||||||
hasAccess = true;
|
hasAccess = true;
|
||||||
} else {
|
} else {
|
||||||
hasAccess = false;
|
hasAccess = false;
|
||||||
@@ -329,11 +322,15 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void patientProfileChoicePopUp(
|
void patientProfileChoicePopUp(
|
||||||
int index, Patient? patientProfile, double width) async {
|
MzansiProfileProvider profileProvider,
|
||||||
var firstLetterFName = widget.patientAccesses[index].fname;
|
PatientManagerProvider patientManagerProvider,
|
||||||
var firstLetterLName = widget.patientAccesses[index].lname;
|
int index,
|
||||||
|
double width,
|
||||||
|
) async {
|
||||||
|
var firstLetterFName = patientManagerProvider.myPaitentList![index].fname;
|
||||||
|
var firstLetterLName = patientManagerProvider.myPaitentList![index].lname;
|
||||||
setState(() {
|
setState(() {
|
||||||
idController.text = widget.patientAccesses[index].id_no;
|
idController.text = patientManagerProvider.myPaitentList![index].id_no;
|
||||||
fnameController.text = firstLetterFName;
|
fnameController.text = firstLetterFName;
|
||||||
lnameController.text = firstLetterLName;
|
lnameController.text = firstLetterLName;
|
||||||
});
|
});
|
||||||
@@ -405,7 +402,8 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
children: [
|
children: [
|
||||||
MihButton(
|
MihButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
appointmentPopUp(index, width);
|
appointmentPopUp(profileProvider,
|
||||||
|
patientManagerProvider, index, width);
|
||||||
},
|
},
|
||||||
buttonColor: MihColors.getGreenColor(
|
buttonColor: MihColors.getGreenColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
@@ -423,25 +421,14 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
MihButton(
|
MihButton(
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
|
await MihPatientServices().getPatientDetails(
|
||||||
|
patientManagerProvider.myPaitentList![index].app_id,
|
||||||
|
patientManagerProvider);
|
||||||
context.pop();
|
context.pop();
|
||||||
context.pushNamed('patientManagerPatient',
|
context.pushNamed(
|
||||||
extra: PatientViewArguments(
|
'patientManagerPatient',
|
||||||
widget.signedInUser,
|
);
|
||||||
patientProfile,
|
|
||||||
widget.businessUser,
|
|
||||||
widget.business,
|
|
||||||
"business",
|
|
||||||
));
|
|
||||||
// Navigator.of(context)
|
|
||||||
// .pushNamed('/patient-manager/patient',
|
|
||||||
// arguments: PatientViewArguments(
|
|
||||||
// widget.signedInUser,
|
|
||||||
// patientProfile,
|
|
||||||
// widget.businessUser,
|
|
||||||
// widget.business,
|
|
||||||
// "business",
|
|
||||||
// ));
|
|
||||||
},
|
},
|
||||||
buttonColor: MihColors.getSecondaryColor(
|
buttonColor: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
@@ -468,33 +455,43 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget displayMyPatientTile(int index, double width) {
|
Widget displayMyPatientTile(
|
||||||
|
MzansiProfileProvider profileProvider,
|
||||||
|
PatientManagerProvider patientManagerProvider,
|
||||||
|
int index,
|
||||||
|
double width,
|
||||||
|
) {
|
||||||
var firstName = "";
|
var firstName = "";
|
||||||
var lastName = "";
|
var lastName = "";
|
||||||
String access = widget.patientAccesses[index].status.toUpperCase();
|
String access =
|
||||||
|
patientManagerProvider.myPaitentList![index].status.toUpperCase();
|
||||||
TextSpan accessWithColour;
|
TextSpan accessWithColour;
|
||||||
var hasAccess = false;
|
var hasAccess = false;
|
||||||
hasAccess = hasAccessToProfile(index);
|
hasAccess = hasAccessToProfile(patientManagerProvider, index);
|
||||||
//print(hasAccess);
|
//print(hasAccess);
|
||||||
if (access == "APPROVED") {
|
if (access == "APPROVED") {
|
||||||
firstName = widget.patientAccesses[index].fname;
|
firstName = patientManagerProvider.myPaitentList![index].fname;
|
||||||
lastName = widget.patientAccesses[index].lname;
|
lastName = patientManagerProvider.myPaitentList![index].lname;
|
||||||
accessWithColour = TextSpan(
|
accessWithColour = TextSpan(
|
||||||
text: "$access\n",
|
text: "$access\n",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: MihColors.getGreenColor(
|
color: MihColors.getGreenColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark")));
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark")));
|
||||||
} else if (access == "PENDING") {
|
} else if (access == "PENDING") {
|
||||||
firstName = "${widget.patientAccesses[index].fname[0]}********";
|
firstName =
|
||||||
lastName = "${widget.patientAccesses[index].lname[0]}********";
|
"${patientManagerProvider.myPaitentList![index].fname[0]}********";
|
||||||
|
lastName =
|
||||||
|
"${patientManagerProvider.myPaitentList![index].lname[0]}********";
|
||||||
accessWithColour = TextSpan(
|
accessWithColour = TextSpan(
|
||||||
text: "$access\n",
|
text: "$access\n",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: MihColors.getGreyColor(
|
color: MihColors.getGreyColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark")));
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark")));
|
||||||
} else {
|
} else {
|
||||||
firstName = "${widget.patientAccesses[index].fname[0]}********";
|
firstName =
|
||||||
lastName = "${widget.patientAccesses[index].lname[0]}********";
|
"${patientManagerProvider.myPaitentList![index].fname[0]}********";
|
||||||
|
lastName =
|
||||||
|
"${patientManagerProvider.myPaitentList![index].lname[0]}********";
|
||||||
accessWithColour = TextSpan(
|
accessWithColour = TextSpan(
|
||||||
text: "$access\n",
|
text: "$access\n",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
@@ -512,7 +509,8 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
),
|
),
|
||||||
subtitle: RichText(
|
subtitle: RichText(
|
||||||
text: TextSpan(
|
text: TextSpan(
|
||||||
text: "ID No.: ${widget.patientAccesses[index].id_no}\n",
|
text:
|
||||||
|
"ID No.: ${patientManagerProvider.myPaitentList![index].id_no}\n",
|
||||||
style: DefaultTextStyle.of(context).style,
|
style: DefaultTextStyle.of(context).style,
|
||||||
children: <TextSpan>[
|
children: <TextSpan>[
|
||||||
const TextSpan(text: "Access: "),
|
const TextSpan(text: "Access: "),
|
||||||
@@ -520,18 +518,16 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
]),
|
]),
|
||||||
),
|
),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
Patient? p;
|
|
||||||
if (hasAccess) {
|
if (hasAccess) {
|
||||||
await MIHApiCalls.fetchPatientByAppId(
|
await MihPatientServices()
|
||||||
widget.patientAccesses[index].app_id)
|
.getPatientDetails(
|
||||||
.then((result) {
|
patientManagerProvider.myPaitentList![index].app_id,
|
||||||
setState(() {
|
patientManagerProvider)
|
||||||
p = result;
|
.then((result) {});
|
||||||
});
|
patientProfileChoicePopUp(
|
||||||
});
|
profileProvider, patientManagerProvider, index, width);
|
||||||
patientProfileChoicePopUp(index, p, width);
|
|
||||||
} else {
|
} else {
|
||||||
noAccessWarning(index);
|
noAccessWarning(patientManagerProvider, index);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
trailing: Icon(
|
trailing: Icon(
|
||||||
@@ -555,19 +551,25 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
double screenWidth = MediaQuery.of(context).size.width;
|
double screenWidth = MediaQuery.of(context).size.width;
|
||||||
return ListView.separated(
|
return Consumer2<MzansiProfileProvider, PatientManagerProvider>(
|
||||||
shrinkWrap: true,
|
builder: (BuildContext context, MzansiProfileProvider profileProvider,
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
PatientManagerProvider patientManagerProvider, Widget? child) {
|
||||||
separatorBuilder: (BuildContext context, index) {
|
return ListView.separated(
|
||||||
return Divider(
|
shrinkWrap: true,
|
||||||
color: MihColors.getSecondaryColor(
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
separatorBuilder: (BuildContext context, index) {
|
||||||
|
return Divider(
|
||||||
|
color: MihColors.getSecondaryColor(
|
||||||
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
itemCount: patientManagerProvider.myPaitentList!.length,
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
return displayMyPatientTile(
|
||||||
|
profileProvider, patientManagerProvider, index, screenWidth);
|
||||||
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
itemCount: widget.patientAccesses.length,
|
|
||||||
itemBuilder: (context, index) {
|
|
||||||
return displayMyPatientTile(index, screenWidth);
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ class _PatManagerTileState extends State<PatManagerTile> {
|
|||||||
onTap: () {
|
onTap: () {
|
||||||
context.goNamed(
|
context.goNamed(
|
||||||
'patientManager',
|
'patientManager',
|
||||||
extra: widget.arguments,
|
|
||||||
);
|
);
|
||||||
// Navigator.of(context).pushNamed(
|
// Navigator.of(context).pushNamed(
|
||||||
// '/patient-manager',
|
// '/patient-manager',
|
||||||
|
|||||||
@@ -1,31 +1,21 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/patient_manager_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_service_calls.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patient_access.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patient_access.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_manager/list_builders/build_my_patient_list_list.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_manager/list_builders/build_my_patient_list_list.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class MyPatientList extends StatefulWidget {
|
class MyPatientList extends StatefulWidget {
|
||||||
final AppUser signedInUser;
|
|
||||||
final Business? business;
|
|
||||||
final BusinessUser? businessUser;
|
|
||||||
final bool personalSelected;
|
|
||||||
|
|
||||||
const MyPatientList({
|
const MyPatientList({
|
||||||
super.key,
|
super.key,
|
||||||
required this.signedInUser,
|
|
||||||
this.business,
|
|
||||||
this.businessUser,
|
|
||||||
this.personalSelected = false,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -33,7 +23,6 @@ class MyPatientList extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _MyPatientListState extends State<MyPatientList> {
|
class _MyPatientListState extends State<MyPatientList> {
|
||||||
late Future<List<PatientAccess>> _myPatientList;
|
|
||||||
TextEditingController _myPatientSearchController = TextEditingController();
|
TextEditingController _myPatientSearchController = TextEditingController();
|
||||||
final FocusNode _searchFocusNode = FocusNode();
|
final FocusNode _searchFocusNode = FocusNode();
|
||||||
bool hasSearchedBefore = false;
|
bool hasSearchedBefore = false;
|
||||||
@@ -42,7 +31,8 @@ class _MyPatientListState extends State<MyPatientList> {
|
|||||||
|
|
||||||
final FocusNode _focusNode = FocusNode();
|
final FocusNode _focusNode = FocusNode();
|
||||||
|
|
||||||
Widget myPatientListTool(double width) {
|
Widget myPatientListTool(MzansiProfileProvider profileProvider,
|
||||||
|
PatientManagerProvider patientManagerProvider, double width) {
|
||||||
return MihSingleChildScroll(
|
return MihSingleChildScroll(
|
||||||
child: Column(mainAxisSize: MainAxisSize.max, children: [
|
child: Column(mainAxisSize: MainAxisSize.max, children: [
|
||||||
Padding(
|
Padding(
|
||||||
@@ -56,10 +46,11 @@ class _MyPatientListState extends State<MyPatientList> {
|
|||||||
hintColor: MihColors.getPrimaryColor(
|
hintColor: MihColors.getPrimaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
onPrefixIconTap: () {
|
onPrefixIconTap: () {
|
||||||
setState(() {
|
setState(() async {
|
||||||
_myPatientIdSearchString = _myPatientSearchController.text;
|
_myPatientIdSearchString = _myPatientSearchController.text;
|
||||||
_myPatientList = MIHApiCalls.getPatientAccessListOfBusiness(
|
await MihPatientServices().getPatientAccessListOfBusiness(
|
||||||
widget.business!.business_id);
|
patientManagerProvider,
|
||||||
|
profileProvider.business!.business_id);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
onClearIconTap: () {
|
onClearIconTap: () {
|
||||||
@@ -67,57 +58,21 @@ class _MyPatientListState extends State<MyPatientList> {
|
|||||||
_myPatientSearchController.clear();
|
_myPatientSearchController.clear();
|
||||||
_myPatientIdSearchString = "";
|
_myPatientIdSearchString = "";
|
||||||
});
|
});
|
||||||
getMyPatientList();
|
getMyPatientList(profileProvider, patientManagerProvider);
|
||||||
},
|
},
|
||||||
searchFocusNode: _searchFocusNode,
|
searchFocusNode: _searchFocusNode,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
//spacer
|
//spacer
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
FutureBuilder(
|
displayMyPatientList(patientManagerProvider),
|
||||||
future: _myPatientList,
|
|
||||||
builder: (context, snapshot) {
|
|
||||||
//print("patient Liust ${snapshot.data}");
|
|
||||||
if (snapshot.connectionState == ConnectionState.waiting) {
|
|
||||||
return const Mihloadingcircle();
|
|
||||||
} else if (snapshot.connectionState == ConnectionState.done &&
|
|
||||||
snapshot.hasData) {
|
|
||||||
List<PatientAccess> patientsAccessList;
|
|
||||||
if (_myPatientIdSearchString == "") {
|
|
||||||
patientsAccessList = snapshot.data!;
|
|
||||||
} else {
|
|
||||||
patientsAccessList = filterAccessResults(
|
|
||||||
snapshot.data!, _myPatientIdSearchString);
|
|
||||||
//print(patientsList);
|
|
||||||
}
|
|
||||||
return displayMyPatientList(patientsAccessList);
|
|
||||||
} else {
|
|
||||||
return Center(
|
|
||||||
child: Text(
|
|
||||||
"Error pulling Patient Access Data\n$baseUrl/access-requests/business/patient/${widget.business!.business_id}",
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 25,
|
|
||||||
color: MihColors.getRedColor(
|
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
|
||||||
"Dark")),
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
|
||||||
]),
|
]),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget displayMyPatientList(List<PatientAccess> patientsAccessList) {
|
Widget displayMyPatientList(PatientManagerProvider patientManagerProvider) {
|
||||||
if (patientsAccessList.isNotEmpty) {
|
if (patientManagerProvider.myPaitentList!.isNotEmpty) {
|
||||||
return BuildMyPatientListList(
|
return BuildMyPatientListList();
|
||||||
patientAccesses: patientsAccessList,
|
|
||||||
signedInUser: widget.signedInUser,
|
|
||||||
business: widget.business,
|
|
||||||
businessUser: widget.businessUser,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
if (hasSearchedBefore && _myPatientIdSearchString.isNotEmpty) {
|
if (hasSearchedBefore && _myPatientIdSearchString.isNotEmpty) {
|
||||||
return Column(
|
return Column(
|
||||||
@@ -228,10 +183,11 @@ class _MyPatientListState extends State<MyPatientList> {
|
|||||||
return templist;
|
return templist;
|
||||||
}
|
}
|
||||||
|
|
||||||
void getMyPatientList() {
|
Future<void> getMyPatientList(MzansiProfileProvider profileProvider,
|
||||||
|
PatientManagerProvider patientManagerProvider) async {
|
||||||
|
await MihPatientServices().getPatientAccessListOfBusiness(
|
||||||
|
patientManagerProvider, profileProvider.business!.business_id);
|
||||||
setState(() {
|
setState(() {
|
||||||
_myPatientList = MIHApiCalls.getPatientAccessListOfBusiness(
|
|
||||||
widget.business!.business_id);
|
|
||||||
hasSearchedBefore = true;
|
hasSearchedBefore = true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -239,8 +195,6 @@ class _MyPatientListState extends State<MyPatientList> {
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
_myPatientList = MIHApiCalls.getPatientAccessListOfBusiness(
|
|
||||||
widget.business!.business_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -256,10 +210,16 @@ class _MyPatientListState extends State<MyPatientList> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final Size size = MediaQuery.sizeOf(context);
|
final Size size = MediaQuery.sizeOf(context);
|
||||||
final double width = size.width;
|
final double width = size.width;
|
||||||
return MihPackageToolBody(
|
return Consumer2<MzansiProfileProvider, PatientManagerProvider>(
|
||||||
borderOn: false,
|
builder: (BuildContext context, MzansiProfileProvider profileProvider,
|
||||||
innerHorizontalPadding: 10,
|
PatientManagerProvider patientManagerProvider, Widget? child) {
|
||||||
bodyItem: myPatientListTool(width),
|
return MihPackageToolBody(
|
||||||
|
borderOn: false,
|
||||||
|
innerHorizontalPadding: 10,
|
||||||
|
bodyItem:
|
||||||
|
myPatientListTool(profileProvider, patientManagerProvider, width),
|
||||||
|
);
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_calendar_provider.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_calendar_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/patient_manager_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_calendar_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_calendar_services.dart';
|
||||||
@@ -22,27 +23,14 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/appointment.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/appointment.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_user.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/calendar/builder/build_appointment_list.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/calendar/builder/build_appointment_list.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class WaitingRoom extends StatefulWidget {
|
class WaitingRoom extends StatefulWidget {
|
||||||
final AppUser signedInUser;
|
|
||||||
final Business? business;
|
|
||||||
final BusinessUser? businessUser;
|
|
||||||
final bool personalSelected;
|
|
||||||
final Function(int) onIndexChange;
|
|
||||||
const WaitingRoom({
|
const WaitingRoom({
|
||||||
super.key,
|
super.key,
|
||||||
required this.signedInUser,
|
|
||||||
required this.business,
|
|
||||||
required this.businessUser,
|
|
||||||
required this.personalSelected,
|
|
||||||
required this.onIndexChange,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -71,8 +59,12 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
|
|
||||||
// Business Appointment Tool
|
// Business Appointment Tool
|
||||||
Widget getBusinessAppointmentsTool(double width) {
|
Widget getBusinessAppointmentsTool(double width) {
|
||||||
return Consumer<MihCalendarProvider>(
|
return Consumer3<MzansiProfileProvider, PatientManagerProvider,
|
||||||
builder: (BuildContext context, MihCalendarProvider mihCalendarProvider,
|
MihCalendarProvider>(
|
||||||
|
builder: (BuildContext context,
|
||||||
|
MzansiProfileProvider profileProvider,
|
||||||
|
PatientManagerProvider patientManagerProvider,
|
||||||
|
MihCalendarProvider mihCalendarProvider,
|
||||||
Widget? child) {
|
Widget? child) {
|
||||||
if (isLoading) {
|
if (isLoading) {
|
||||||
return const Center(
|
return const Center(
|
||||||
@@ -132,7 +124,8 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
// addAppointmentWindow();
|
// addAppointmentWindow();
|
||||||
appointmentTypeSelection(mihCalendarProvider, width);
|
appointmentTypeSelection(profileProvider,
|
||||||
|
patientManagerProvider, mihCalendarProvider, width);
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
@@ -237,7 +230,10 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void appointmentTypeSelection(
|
void appointmentTypeSelection(
|
||||||
MihCalendarProvider mihCalendarProvider, double width) {
|
MzansiProfileProvider profileProvider,
|
||||||
|
PatientManagerProvider patientManagerProvider,
|
||||||
|
MihCalendarProvider mihCalendarProvider,
|
||||||
|
double width) {
|
||||||
String question = "What type of appointment would you like to add?";
|
String question = "What type of appointment would you like to add?";
|
||||||
question +=
|
question +=
|
||||||
"\n\nExisting Patient: Add an appointment for an patient your practice has access to.";
|
"\n\nExisting Patient: Add an appointment for an patient your practice has access to.";
|
||||||
@@ -268,7 +264,7 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
const SizedBox(height: 15),
|
const SizedBox(height: 15),
|
||||||
MihButton(
|
MihButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
widget.onIndexChange(1);
|
patientManagerProvider.setPatientManagerIndex(1);
|
||||||
context.pop();
|
context.pop();
|
||||||
},
|
},
|
||||||
buttonColor: MihColors.getGreenColor(
|
buttonColor: MihColors.getGreenColor(
|
||||||
@@ -287,7 +283,7 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
MihButton(
|
MihButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
widget.onIndexChange(2);
|
patientManagerProvider.setPatientManagerIndex(2);
|
||||||
context.pop();
|
context.pop();
|
||||||
},
|
},
|
||||||
buttonColor: MihColors.getGreenColor(
|
buttonColor: MihColors.getGreenColor(
|
||||||
@@ -307,7 +303,8 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
MihButton(
|
MihButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
addAppointmentWindow(mihCalendarProvider, width);
|
addAppointmentWindow(
|
||||||
|
profileProvider, mihCalendarProvider, width);
|
||||||
},
|
},
|
||||||
buttonColor: MihColors.getGreenColor(
|
buttonColor: MihColors.getGreenColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
@@ -329,7 +326,7 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addAppointmentWindow(
|
void addAppointmentWindow(MzansiProfileProvider profileProvider,
|
||||||
MihCalendarProvider mihCalendarProvider, double width) {
|
MihCalendarProvider mihCalendarProvider, double width) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
@@ -411,7 +408,8 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
child: MihButton(
|
child: MihButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
if (_formKey.currentState!.validate()) {
|
if (_formKey.currentState!.validate()) {
|
||||||
addAppointmentCall(mihCalendarProvider);
|
addAppointmentCall(
|
||||||
|
profileProvider, mihCalendarProvider);
|
||||||
} else {
|
} else {
|
||||||
MihAlertServices().formNotFilledCompletely(context);
|
MihAlertServices().formNotFilledCompletely(context);
|
||||||
}
|
}
|
||||||
@@ -442,34 +440,23 @@ class _WaitingRoomState extends State<WaitingRoom> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> addAppointmentCall(
|
Future<void> addAppointmentCall(MzansiProfileProvider profileProvider,
|
||||||
MihCalendarProvider mihCalendarProvider) async {
|
MihCalendarProvider mihCalendarProvider) async {
|
||||||
if (isAppointmentInputValid()) {
|
if (isAppointmentInputValid()) {
|
||||||
int statusCode;
|
int statusCode;
|
||||||
if (widget.personalSelected == false) {
|
statusCode = await MihMzansiCalendarApis.addBusinessAppointment(
|
||||||
statusCode = await MihMzansiCalendarApis.addBusinessAppointment(
|
profileProvider.user!,
|
||||||
widget.signedInUser,
|
profileProvider.business!,
|
||||||
widget.business!,
|
profileProvider.businessUser!,
|
||||||
widget.businessUser!,
|
true,
|
||||||
true,
|
_appointmentTitleController.text,
|
||||||
_appointmentTitleController.text,
|
_appointmentDescriptionIDController.text,
|
||||||
_appointmentDescriptionIDController.text,
|
_appointmentDateController.text,
|
||||||
_appointmentDateController.text,
|
_appointmentTimeController.text,
|
||||||
_appointmentTimeController.text,
|
mihCalendarProvider,
|
||||||
mihCalendarProvider,
|
context,
|
||||||
context,
|
);
|
||||||
);
|
|
||||||
} else {
|
|
||||||
statusCode = await MihMzansiCalendarApis.addPersonalAppointment(
|
|
||||||
widget.signedInUser,
|
|
||||||
_appointmentTitleController.text,
|
|
||||||
_appointmentDescriptionIDController.text,
|
|
||||||
_appointmentDateController.text,
|
|
||||||
_appointmentTimeController.text,
|
|
||||||
mihCalendarProvider,
|
|
||||||
context,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (statusCode == 201) {
|
if (statusCode == 201) {
|
||||||
context.pop();
|
context.pop();
|
||||||
successPopUp("Successfully Added Appointment",
|
successPopUp("Successfully Added Appointment",
|
||||||
|
|||||||
@@ -2,17 +2,19 @@ import 'package:go_router/go_router.dart';
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_calendar_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_manager/package_tools/mih_patient_search.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/patient_manager_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_manager/package_tools/my_patient_list.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_manager/package_tools/my_patient_list.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_manager/package_tools/waiting_room.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_manager/package_tools/waiting_room.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_calendar_services.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class PatManager extends StatefulWidget {
|
class PatManager extends StatefulWidget {
|
||||||
final PatManagerArguments arguments;
|
|
||||||
const PatManager({
|
const PatManager({
|
||||||
super.key,
|
super.key,
|
||||||
required this.arguments,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -20,11 +22,39 @@ class PatManager extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _PatManagerState extends State<PatManager> {
|
class _PatManagerState extends State<PatManager> {
|
||||||
int _selcetedIndex = 0;
|
bool isLoading = true;
|
||||||
|
|
||||||
void updateIndex(int index) {
|
Future<void> initialisePatientData() async {
|
||||||
setState(() {
|
setState(() {
|
||||||
_selcetedIndex = index;
|
isLoading = true;
|
||||||
|
});
|
||||||
|
MzansiProfileProvider profileProvider =
|
||||||
|
context.read<MzansiProfileProvider>();
|
||||||
|
PatientManagerProvider patientManagerProvider =
|
||||||
|
context.read<PatientManagerProvider>();
|
||||||
|
MihCalendarProvider mihCalendarProvider =
|
||||||
|
context.read<MihCalendarProvider>();
|
||||||
|
patientManagerProvider.setPersonalMode(false);
|
||||||
|
if (profileProvider.business != null) {
|
||||||
|
await MihMzansiCalendarApis.getBusinessAppointments(
|
||||||
|
profileProvider.business!.business_id,
|
||||||
|
false,
|
||||||
|
mihCalendarProvider.selectedDay,
|
||||||
|
mihCalendarProvider,
|
||||||
|
);
|
||||||
|
MihPatientServices().getPatientAccessListOfBusiness(
|
||||||
|
patientManagerProvider, profileProvider.business!.business_id);
|
||||||
|
}
|
||||||
|
setState(() {
|
||||||
|
isLoading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||||
|
initialisePatientData();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,24 +65,30 @@ class _PatManagerState extends State<PatManager> {
|
|||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
appToolTitles: getToolTitle(),
|
appToolTitles: getToolTitle(),
|
||||||
selectedbodyIndex: _selcetedIndex,
|
selectedbodyIndex:
|
||||||
|
context.watch<PatientManagerProvider>().patientManagerIndex,
|
||||||
onIndexChange: (newValue) {
|
onIndexChange: (newValue) {
|
||||||
setState(() {
|
context.read<PatientManagerProvider>().setPatientManagerIndex(newValue);
|
||||||
_selcetedIndex = newValue;
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
MihPackageAction getActionButton() {
|
MihPackageAction getActionButton() {
|
||||||
|
PatientManagerProvider patientManagerProvider =
|
||||||
|
context.read<PatientManagerProvider>();
|
||||||
return MihPackageAction(
|
return MihPackageAction(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
// Navigator.of(context).pop();
|
patientManagerProvider.setPatientProfileIndex(0);
|
||||||
context.goNamed(
|
patientManagerProvider.setPatientManagerIndex(0);
|
||||||
'mihHome',
|
if (!patientManagerProvider.personalMode) {
|
||||||
);
|
context.pop();
|
||||||
|
} else {
|
||||||
|
context.goNamed(
|
||||||
|
'mihHome',
|
||||||
|
);
|
||||||
|
}
|
||||||
FocusScope.of(context).unfocus();
|
FocusScope.of(context).unfocus();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@@ -61,55 +97,33 @@ class _PatManagerState extends State<PatManager> {
|
|||||||
MihPackageTools getTools() {
|
MihPackageTools getTools() {
|
||||||
Map<Widget, void Function()?> temp = {};
|
Map<Widget, void Function()?> temp = {};
|
||||||
temp[const Icon(Icons.calendar_month)] = () {
|
temp[const Icon(Icons.calendar_month)] = () {
|
||||||
setState(() {
|
context.read<PatientManagerProvider>().setPatientManagerIndex(0);
|
||||||
_selcetedIndex = 0;
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
temp[const Icon(Icons.check_box_outlined)] = () {
|
temp[const Icon(Icons.check_box_outlined)] = () {
|
||||||
setState(() {
|
context.read<PatientManagerProvider>().setPatientManagerIndex(1);
|
||||||
_selcetedIndex = 1;
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
temp[const Icon(Icons.search)] = () {
|
temp[const Icon(Icons.search)] = () {
|
||||||
setState(() {
|
context.read<PatientManagerProvider>().setPatientManagerIndex(2);
|
||||||
_selcetedIndex = 2;
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
return MihPackageTools(
|
return MihPackageTools(
|
||||||
tools: temp,
|
tools: temp,
|
||||||
selcetedIndex: _selcetedIndex,
|
selcetedIndex:
|
||||||
|
context.watch<PatientManagerProvider>().patientManagerIndex,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Widget> getToolBody() {
|
List<Widget> getToolBody() {
|
||||||
List<Widget> toolBodies = [
|
List<Widget> toolBodies = [
|
||||||
//appointment here
|
WaitingRoom(),
|
||||||
// Appointments(
|
MyPatientList(),
|
||||||
|
Placeholder(),
|
||||||
|
// MihPatientSearch(
|
||||||
// signedInUser: widget.arguments.signedInUser,
|
// signedInUser: widget.arguments.signedInUser,
|
||||||
// business: widget.arguments.business,
|
// business: widget.arguments.business,
|
||||||
// personalSelected: widget.arguments.personalSelected,
|
// personalSelected: widget.arguments.personalSelected,
|
||||||
|
// businessUser: widget.arguments.businessUser,
|
||||||
// ),
|
// ),
|
||||||
WaitingRoom(
|
|
||||||
signedInUser: widget.arguments.signedInUser,
|
|
||||||
business: widget.arguments.business,
|
|
||||||
businessUser: widget.arguments.businessUser,
|
|
||||||
personalSelected: widget.arguments.personalSelected,
|
|
||||||
onIndexChange: updateIndex,
|
|
||||||
),
|
|
||||||
MyPatientList(
|
|
||||||
signedInUser: widget.arguments.signedInUser,
|
|
||||||
business: widget.arguments.business,
|
|
||||||
businessUser: widget.arguments.businessUser,
|
|
||||||
personalSelected: widget.arguments.personalSelected,
|
|
||||||
),
|
|
||||||
MihPatientSearch(
|
|
||||||
signedInUser: widget.arguments.signedInUser,
|
|
||||||
business: widget.arguments.business,
|
|
||||||
personalSelected: widget.arguments.personalSelected,
|
|
||||||
businessUser: widget.arguments.businessUser,
|
|
||||||
),
|
|
||||||
];
|
];
|
||||||
return toolBodies;
|
return toolBodies;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,9 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/patient_manager_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class PatientProfileTile extends StatefulWidget {
|
class PatientProfileTile extends StatefulWidget {
|
||||||
final PatientViewArguments arguments;
|
final PatientViewArguments arguments;
|
||||||
@@ -26,6 +28,9 @@ class _PatientProfileTileState extends State<PatientProfileTile> {
|
|||||||
return MihPackageTile(
|
return MihPackageTile(
|
||||||
authenticateUser: true,
|
authenticateUser: true,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
PatientManagerProvider patientManagerProvider =
|
||||||
|
context.read<PatientManagerProvider>();
|
||||||
|
patientManagerProvider.setPersonalMode(true);
|
||||||
context.goNamed(
|
context.goNamed(
|
||||||
'patientProfile',
|
'patientProfile',
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -15,10 +15,8 @@ import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class PatientProfile extends StatefulWidget {
|
class PatientProfile extends StatefulWidget {
|
||||||
final String? patientAppId;
|
|
||||||
const PatientProfile({
|
const PatientProfile({
|
||||||
super.key,
|
super.key,
|
||||||
required this.patientAppId,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -36,13 +34,11 @@ class _PatientProfileState extends State<PatientProfile> {
|
|||||||
context.read<MzansiProfileProvider>();
|
context.read<MzansiProfileProvider>();
|
||||||
PatientManagerProvider patientManagerProvider =
|
PatientManagerProvider patientManagerProvider =
|
||||||
context.read<PatientManagerProvider>();
|
context.read<PatientManagerProvider>();
|
||||||
String? app_id = widget.patientAppId ?? profileProvider.user!.app_id;
|
String? app_id = profileProvider.user!.app_id;
|
||||||
|
|
||||||
if (patientManagerProvider.selectedPatient == null) {
|
if (patientManagerProvider.selectedPatient == null) {
|
||||||
await MihPatientServices()
|
await MihPatientServices()
|
||||||
.getPatientDetails(app_id, patientManagerProvider);
|
.getPatientDetails(app_id, patientManagerProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (patientManagerProvider.selectedPatient == null) {
|
if (patientManagerProvider.selectedPatient == null) {
|
||||||
// go to set up patient package
|
// go to set up patient package
|
||||||
context.goNamed("patientProfileSetup");
|
context.goNamed("patientProfileSetup");
|
||||||
@@ -61,7 +57,9 @@ class _PatientProfileState extends State<PatientProfile> {
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
initialisePatientData();
|
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||||
|
initialisePatientData();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -87,7 +85,6 @@ class _PatientProfileState extends State<PatientProfile> {
|
|||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
patientManagerProvider.setPatientProfileIndex(0);
|
patientManagerProvider.setPatientProfileIndex(0);
|
||||||
patientManagerProvider.setPatientManagerIndex(0);
|
|
||||||
if (!patientManagerProvider.personalMode) {
|
if (!patientManagerProvider.personalMode) {
|
||||||
context.pop();
|
context.pop();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -129,7 +129,6 @@ class MIHClaimStatementGenerationApi {
|
|||||||
List<ClaimStatementFile> docList = List<ClaimStatementFile>.from(
|
List<ClaimStatementFile> docList = List<ClaimStatementFile>.from(
|
||||||
l.map((model) => ClaimStatementFile.fromJson(model)));
|
l.map((model) => ClaimStatementFile.fromJson(model)));
|
||||||
//print("Here3");
|
//print("Here3");
|
||||||
print(docList);
|
|
||||||
patientManagerProvider.setClaimsDocuments(
|
patientManagerProvider.setClaimsDocuments(
|
||||||
patientClaimsDocuments: docList);
|
patientClaimsDocuments: docList);
|
||||||
return docList;
|
return docList;
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import 'package:go_router/go_router.dart';
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/appointment.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/appointment.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_user.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_user.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -291,7 +290,7 @@ class MihMzansiCalendarApis {
|
|||||||
AppUser signedInUser,
|
AppUser signedInUser,
|
||||||
bool personalSelected,
|
bool personalSelected,
|
||||||
String patientAppId,
|
String patientAppId,
|
||||||
BusinessArguments businessArgs,
|
String businessId,
|
||||||
String title,
|
String title,
|
||||||
String description,
|
String description,
|
||||||
String date,
|
String date,
|
||||||
@@ -306,7 +305,7 @@ class MihMzansiCalendarApis {
|
|||||||
},
|
},
|
||||||
body: jsonEncode(<String, dynamic>{
|
body: jsonEncode(<String, dynamic>{
|
||||||
"app_id": patientAppId,
|
"app_id": patientAppId,
|
||||||
"business_id": businessArgs.business?.business_id,
|
"business_id": businessId,
|
||||||
"title": title,
|
"title": title,
|
||||||
"description": description,
|
"description": description,
|
||||||
"date": date,
|
"date": date,
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'package:file_picker/file_picker.dart';
|
|||||||
import 'package:ken_logger/ken_logger.dart';
|
import 'package:ken_logger/ken_logger.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/files.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/files.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/notes.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/notes.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patient_access.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patients.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patients.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/patient_manager_provider.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_providers/patient_manager_provider.dart';
|
||||||
@@ -289,4 +290,21 @@ class MihPatientServices {
|
|||||||
}
|
}
|
||||||
return response.statusCode;
|
return response.statusCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<List<PatientAccess>> getPatientAccessListOfBusiness(
|
||||||
|
PatientManagerProvider patientManagerProvider,
|
||||||
|
String business_id,
|
||||||
|
) async {
|
||||||
|
final response = await http.get(Uri.parse(
|
||||||
|
"${AppEnviroment.baseApiUrl}/access-requests/business/patient/$business_id"));
|
||||||
|
if (response.statusCode == 200) {
|
||||||
|
Iterable l = jsonDecode(response.body);
|
||||||
|
List<PatientAccess> patientAccesses = List<PatientAccess>.from(
|
||||||
|
l.map((model) => PatientAccess.fromJson(model)));
|
||||||
|
patientManagerProvider.setMyPatientList(myPaitentList: patientAccesses);
|
||||||
|
return patientAccesses;
|
||||||
|
} else {
|
||||||
|
throw Exception('failed to pull patient access List for business');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,29 +126,6 @@ class MIHApiCalls {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This function is used to get list of access the business has.
|
|
||||||
///
|
|
||||||
/// Patameters: String business_id.
|
|
||||||
///
|
|
||||||
/// Returns List<PatientAccess> (List of access that match the above parameters).
|
|
||||||
static Future<List<PatientAccess>> getPatientAccessListOfBusiness(
|
|
||||||
String business_id) async {
|
|
||||||
final response = await http.get(Uri.parse(
|
|
||||||
"${AppEnviroment.baseApiUrl}/access-requests/business/patient/$business_id"));
|
|
||||||
// var errorCode = response.statusCode.toString();
|
|
||||||
// print(response.statusCode);
|
|
||||||
// print(response.body);
|
|
||||||
|
|
||||||
if (response.statusCode == 200) {
|
|
||||||
Iterable l = jsonDecode(response.body);
|
|
||||||
List<PatientAccess> patientAccesses = List<PatientAccess>.from(
|
|
||||||
l.map((model) => PatientAccess.fromJson(model)));
|
|
||||||
return patientAccesses;
|
|
||||||
} else {
|
|
||||||
throw Exception('failed to pull patient access List for business');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// This function is used to UPDATE access the business has.
|
/// This function is used to UPDATE access the business has.
|
||||||
///
|
///
|
||||||
/// Patameters:-
|
/// Patameters:-
|
||||||
|
|||||||
Reference in New Issue
Block a user