NEW: Patient Manager Provider Setup pt2
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
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/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/patients.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patients.dart';
|
||||||
@@ -11,6 +12,7 @@ class PatientManagerProvider extends ChangeNotifier {
|
|||||||
Patient? selectedPatient;
|
Patient? selectedPatient;
|
||||||
List<Note>? consultationNotes;
|
List<Note>? consultationNotes;
|
||||||
List<PFile>? patientDocuments;
|
List<PFile>? patientDocuments;
|
||||||
|
List<ClaimStatementFile>? patientClaimsDocuments;
|
||||||
|
|
||||||
PatientManagerProvider({
|
PatientManagerProvider({
|
||||||
this.patientProfileIndex = 0,
|
this.patientProfileIndex = 0,
|
||||||
@@ -60,4 +62,10 @@ class PatientManagerProvider extends ChangeNotifier {
|
|||||||
this.patientDocuments = patientDocuments ?? [];
|
this.patientDocuments = patientDocuments ?? [];
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setClaimsDocuments(
|
||||||
|
{required List<ClaimStatementFile>? patientClaimsDocuments}) {
|
||||||
|
this.patientClaimsDocuments = patientClaimsDocuments ?? [];
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.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_config/mih_env.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_claim_statement_generation_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_claim_statement_generation_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_icd10_code_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_icd10_code_services.dart';
|
||||||
@@ -12,29 +15,16 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
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_package_components/mih_text_form_field.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.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_error_message.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/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/icd10_code.dart.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/icd10_code.dart.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patients.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/components/icd10_search_window.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/components/icd10_search_window.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class ClaimStatementWindow extends StatefulWidget {
|
class ClaimStatementWindow extends StatefulWidget {
|
||||||
final Patient selectedPatient;
|
|
||||||
final AppUser signedInUser;
|
|
||||||
final Business? business;
|
|
||||||
final BusinessUser? businessUser;
|
|
||||||
final String env;
|
|
||||||
const ClaimStatementWindow({
|
const ClaimStatementWindow({
|
||||||
super.key,
|
super.key,
|
||||||
required this.selectedPatient,
|
|
||||||
required this.signedInUser,
|
|
||||||
required this.business,
|
|
||||||
required this.businessUser,
|
|
||||||
required this.env,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -83,8 +73,12 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget getWindowBody(double width) {
|
Widget getWindowBody(double width) {
|
||||||
|
return Consumer2<MzansiProfileProvider, PatientManagerProvider>(
|
||||||
|
builder: (BuildContext context, MzansiProfileProvider profileProvider,
|
||||||
|
PatientManagerProvider patientManagerProvider, Widget? child) {
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: MzansiInnovationHub.of(context)!.theme.screenType == "desktop"
|
padding:
|
||||||
|
MzansiInnovationHub.of(context)!.theme.screenType == "desktop"
|
||||||
? EdgeInsets.symmetric(horizontal: width * 0.05)
|
? EdgeInsets.symmetric(horizontal: width * 0.05)
|
||||||
: const EdgeInsets.symmetric(horizontal: 0),
|
: const EdgeInsets.symmetric(horizontal: 0),
|
||||||
child: Column(
|
child: Column(
|
||||||
@@ -111,13 +105,15 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
fontSize: 25,
|
fontSize: 25,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
color: MihColors.getSecondaryColor(
|
color: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Divider(
|
Divider(
|
||||||
color: MihColors.getSecondaryColor(
|
color: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark")),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark")),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
MihDateField(
|
MihDateField(
|
||||||
controller: _serviceDateController,
|
controller: _serviceDateController,
|
||||||
@@ -145,22 +141,29 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
ValueListenableBuilder(
|
ValueListenableBuilder(
|
||||||
valueListenable: serviceDesc,
|
valueListenable: serviceDesc,
|
||||||
builder: (BuildContext context, String value, Widget? child) {
|
builder:
|
||||||
|
(BuildContext context, String value, Widget? child) {
|
||||||
Widget returnWidget;
|
Widget returnWidget;
|
||||||
switch (value) {
|
switch (value) {
|
||||||
case 'Consultation':
|
case 'Consultation':
|
||||||
returnWidget = Column(
|
returnWidget = Column(
|
||||||
key: const ValueKey('consultation_fields'), // Added key
|
key: const ValueKey(
|
||||||
|
'consultation_fields'), // Added key
|
||||||
children: [
|
children: [
|
||||||
MihRadioOptions(
|
MihRadioOptions(
|
||||||
key: const ValueKey('consultation_type_dropdown'),
|
key: const ValueKey(
|
||||||
|
'consultation_type_dropdown'),
|
||||||
controller: _serviceDescOptionsController,
|
controller: _serviceDescOptionsController,
|
||||||
hintText: "Consultation Type",
|
hintText: "Consultation Type",
|
||||||
fillColor: MihColors.getSecondaryColor(
|
fillColor: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.mode ==
|
||||||
"Dark"),
|
"Dark"),
|
||||||
secondaryFillColor: MihColors.getPrimaryColor(
|
secondaryFillColor: MihColors.getPrimaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.mode ==
|
||||||
"Dark"),
|
"Dark"),
|
||||||
requiredText: true,
|
requiredText: true,
|
||||||
radioOptions: const [
|
radioOptions: const [
|
||||||
@@ -176,16 +179,21 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
break;
|
break;
|
||||||
case 'Procedure':
|
case 'Procedure':
|
||||||
returnWidget = Column(
|
returnWidget = Column(
|
||||||
key: const ValueKey('procedure_fields'), // Added key
|
key:
|
||||||
|
const ValueKey('procedure_fields'), // Added key
|
||||||
children: [
|
children: [
|
||||||
MihTextFormField(
|
MihTextFormField(
|
||||||
key: const ValueKey(
|
key: const ValueKey(
|
||||||
'procedure_name_field'), // Added key
|
'procedure_name_field'), // Added key
|
||||||
fillColor: MihColors.getSecondaryColor(
|
fillColor: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.mode ==
|
||||||
"Dark"),
|
"Dark"),
|
||||||
inputColor: MihColors.getPrimaryColor(
|
inputColor: MihColors.getPrimaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.mode ==
|
||||||
"Dark"),
|
"Dark"),
|
||||||
controller: _prcedureNameController,
|
controller: _prcedureNameController,
|
||||||
multiLineInput: false,
|
multiLineInput: false,
|
||||||
@@ -200,10 +208,14 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
key: const ValueKey(
|
key: const ValueKey(
|
||||||
'procedure_additional_info_field'), // Added key
|
'procedure_additional_info_field'), // Added key
|
||||||
fillColor: MihColors.getSecondaryColor(
|
fillColor: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.mode ==
|
||||||
"Dark"),
|
"Dark"),
|
||||||
inputColor: MihColors.getPrimaryColor(
|
inputColor: MihColors.getPrimaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.mode ==
|
||||||
"Dark"),
|
"Dark"),
|
||||||
controller: _proceedureAdditionalInfoController,
|
controller: _proceedureAdditionalInfoController,
|
||||||
multiLineInput: false,
|
multiLineInput: false,
|
||||||
@@ -225,10 +237,14 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
key: const ValueKey(
|
key: const ValueKey(
|
||||||
'other_service_description_field'), // Added key
|
'other_service_description_field'), // Added key
|
||||||
fillColor: MihColors.getSecondaryColor(
|
fillColor: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.mode ==
|
||||||
"Dark"),
|
"Dark"),
|
||||||
inputColor: MihColors.getPrimaryColor(
|
inputColor: MihColors.getPrimaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.mode ==
|
||||||
"Dark"),
|
"Dark"),
|
||||||
controller: _serviceDescOptionsController,
|
controller: _serviceDescOptionsController,
|
||||||
multiLineInput: false,
|
multiLineInput: false,
|
||||||
@@ -268,9 +284,11 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
hintText: "ICD-10 Search",
|
hintText: "ICD-10 Search",
|
||||||
prefixIcon: Icons.search,
|
prefixIcon: Icons.search,
|
||||||
fillColor: MihColors.getSecondaryColor(
|
fillColor: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
hintColor: MihColors.getPrimaryColor(
|
hintColor: MihColors.getPrimaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
onPrefixIconTap: () {
|
onPrefixIconTap: () {
|
||||||
MIHIcd10CodeApis.getIcd10Codes(
|
MIHIcd10CodeApis.getIcd10Codes(
|
||||||
_icd10CodeController.text, context)
|
_icd10CodeController.text, context)
|
||||||
@@ -309,13 +327,15 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
fontSize: 25,
|
fontSize: 25,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
color: MihColors.getSecondaryColor(
|
color: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Divider(
|
Divider(
|
||||||
color: MihColors.getSecondaryColor(
|
color: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark")),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark")),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
MihTextFormField(
|
MihTextFormField(
|
||||||
fillColor: MihColors.getSecondaryColor(
|
fillColor: MihColors.getSecondaryColor(
|
||||||
@@ -333,10 +353,14 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
onPressed: () {
|
onPressed: () {
|
||||||
if (_formKey.currentState!.validate()) {
|
if (_formKey.currentState!.validate()) {
|
||||||
if (isInputValid()) {
|
if (isInputValid()) {
|
||||||
MIHClaimStatementGenerationApi().generateClaimStatement(
|
MIHClaimStatementGenerationApi()
|
||||||
|
.generateClaimStatement(
|
||||||
|
profileProvider,
|
||||||
|
patientManagerProvider,
|
||||||
ClaimStatementGenerationArguments(
|
ClaimStatementGenerationArguments(
|
||||||
_docTypeController.text,
|
_docTypeController.text,
|
||||||
widget.selectedPatient.app_id,
|
patientManagerProvider
|
||||||
|
.selectedPatient!.app_id,
|
||||||
_fullNameController.text,
|
_fullNameController.text,
|
||||||
_idController.text,
|
_idController.text,
|
||||||
_medAidController.text,
|
_medAidController.text,
|
||||||
@@ -344,10 +368,10 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
_medAidCodeController.text,
|
_medAidCodeController.text,
|
||||||
_medAidNameController.text,
|
_medAidNameController.text,
|
||||||
_medAidSchemeController.text,
|
_medAidSchemeController.text,
|
||||||
widget.business!.Name,
|
profileProvider.business!.Name,
|
||||||
"*To-Be Added*",
|
"*To-Be Added*",
|
||||||
widget.business!.contact_no,
|
profileProvider.business!.contact_no,
|
||||||
widget.business!.bus_email,
|
profileProvider.business!.bus_email,
|
||||||
_providerNameController.text,
|
_providerNameController.text,
|
||||||
_practiceNoController.text,
|
_practiceNoController.text,
|
||||||
_vatNoController.text,
|
_vatNoController.text,
|
||||||
@@ -359,17 +383,10 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
_icd10CodeController.text,
|
_icd10CodeController.text,
|
||||||
_amountController.text,
|
_amountController.text,
|
||||||
_preauthNoController.text,
|
_preauthNoController.text,
|
||||||
widget.business!.logo_path,
|
profileProvider.business!.logo_path,
|
||||||
widget.businessUser!.sig_path,
|
profileProvider.businessUser!.sig_path,
|
||||||
),
|
),
|
||||||
PatientViewArguments(
|
AppEnviroment.getEnv(),
|
||||||
widget.signedInUser,
|
|
||||||
widget.selectedPatient,
|
|
||||||
widget.businessUser,
|
|
||||||
widget.business,
|
|
||||||
"business",
|
|
||||||
),
|
|
||||||
widget.env,
|
|
||||||
context);
|
context);
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
showDialog(
|
||||||
@@ -385,7 +402,8 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
buttonColor: MihColors.getGreenColor(
|
buttonColor: MihColors.getGreenColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
width: 300,
|
width: 300,
|
||||||
child: Text(
|
child: Text(
|
||||||
"Generate",
|
"Generate",
|
||||||
@@ -404,6 +422,8 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void serviceDescriptionSelected() {
|
void serviceDescriptionSelected() {
|
||||||
@@ -457,11 +477,11 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String getUserTitle() {
|
String getUserTitle(MzansiProfileProvider profileProvider) {
|
||||||
if (widget.businessUser!.title == "Doctor") {
|
if (profileProvider.businessUser!.title == "Doctor") {
|
||||||
return "Dr.";
|
return "Dr.";
|
||||||
} else {
|
} else {
|
||||||
return widget.businessUser!.title;
|
return profileProvider.businessUser!.title;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -500,24 +520,32 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
PatientManagerProvider patientManagerProvider =
|
||||||
|
context.read<PatientManagerProvider>();
|
||||||
|
MzansiProfileProvider profileProvider =
|
||||||
|
context.read<MzansiProfileProvider>();
|
||||||
_serviceDescController.text = "Consultation";
|
_serviceDescController.text = "Consultation";
|
||||||
_serviceDescController.addListener(serviceDescriptionSelected);
|
_serviceDescController.addListener(serviceDescriptionSelected);
|
||||||
serviceDesc.value = "Consultation";
|
serviceDesc.value = "Consultation";
|
||||||
_medAidController.addListener(hasMedAid);
|
_medAidController.addListener(hasMedAid);
|
||||||
_fullNameController.text =
|
_fullNameController.text =
|
||||||
"${widget.selectedPatient.first_name} ${widget.selectedPatient.last_name}";
|
"${patientManagerProvider.selectedPatient!.first_name} ${patientManagerProvider.selectedPatient!.last_name}";
|
||||||
_idController.text = widget.selectedPatient.id_no;
|
_idController.text = patientManagerProvider.selectedPatient!.id_no;
|
||||||
_medAidController.text = widget.selectedPatient.medical_aid;
|
_medAidController.text =
|
||||||
_medAidNameController.text = widget.selectedPatient.medical_aid_name;
|
patientManagerProvider.selectedPatient!.medical_aid;
|
||||||
_medAidCodeController.text = widget.selectedPatient.medical_aid_code;
|
_medAidNameController.text =
|
||||||
_medAidNoController.text = widget.selectedPatient.medical_aid_no;
|
patientManagerProvider.selectedPatient!.medical_aid_name;
|
||||||
_medAidSchemeController.text = widget.selectedPatient.medical_aid_scheme;
|
_medAidCodeController.text =
|
||||||
|
patientManagerProvider.selectedPatient!.medical_aid_code;
|
||||||
|
_medAidNoController.text =
|
||||||
|
patientManagerProvider.selectedPatient!.medical_aid_no;
|
||||||
|
_medAidSchemeController.text =
|
||||||
|
patientManagerProvider.selectedPatient!.medical_aid_scheme;
|
||||||
_serviceDateController.text = getTodayDate();
|
_serviceDateController.text = getTodayDate();
|
||||||
_providerNameController.text =
|
_providerNameController.text =
|
||||||
"${getUserTitle()} ${widget.signedInUser.fname} ${widget.signedInUser.lname}";
|
"${getUserTitle(profileProvider)} ${profileProvider.user!.fname} ${profileProvider.user!.lname}";
|
||||||
_practiceNoController.text = widget.business!.practice_no;
|
_practiceNoController.text = profileProvider.business!.practice_no;
|
||||||
_vatNoController.text = widget.business!.vat_no;
|
_vatNoController.text = profileProvider.business!.vat_no;
|
||||||
hasMedAid();
|
hasMedAid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,44 +5,26 @@ import 'package:flutter_speed_dial/flutter_speed_dial.dart';
|
|||||||
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_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_claim_statement_generation_services.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_file_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_file_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_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_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_components/mih_pop_up_messages/mih_success_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_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/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/claim_statement_file.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patients.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/list_builders/build_file_view.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/list_builders/build_file_view.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
import 'package:supertokens_flutter/http.dart' as http;
|
import 'package:supertokens_flutter/http.dart' as http;
|
||||||
import 'package:http/http.dart' as http2;
|
import 'package:http/http.dart' as http2;
|
||||||
import "package:universal_html/html.dart" as html;
|
import "package:universal_html/html.dart" as html;
|
||||||
|
|
||||||
class BuildClaimStatementFileList extends StatefulWidget {
|
class BuildClaimStatementFileList extends StatefulWidget {
|
||||||
final AppUser signedInUser;
|
|
||||||
final List<ClaimStatementFile> files;
|
|
||||||
final Patient selectedPatient;
|
|
||||||
final Business? business;
|
|
||||||
final BusinessUser? businessUser;
|
|
||||||
final String type;
|
|
||||||
final String env;
|
|
||||||
const BuildClaimStatementFileList({
|
const BuildClaimStatementFileList({
|
||||||
super.key,
|
super.key,
|
||||||
required this.files,
|
|
||||||
required this.signedInUser,
|
|
||||||
required this.selectedPatient,
|
|
||||||
required this.business,
|
|
||||||
required this.businessUser,
|
|
||||||
required this.type,
|
|
||||||
required this.env,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -91,32 +73,32 @@ class _BuildClaimStatementFileListState
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void deleteFilePopUp(String filePath, int fileID) {
|
// void deleteFilePopUp(String filePath, int fileID) {
|
||||||
showDialog(
|
// showDialog(
|
||||||
context: context,
|
// context: context,
|
||||||
barrierDismissible: false,
|
// barrierDismissible: false,
|
||||||
builder: (context) => MIHDeleteMessage(
|
// builder: (context) => MIHDeleteMessage(
|
||||||
deleteType: "File",
|
// deleteType: "File",
|
||||||
onTap: () async {
|
// onTap: () async {
|
||||||
//API Call here
|
// //API Call here
|
||||||
await MIHClaimStatementGenerationApi
|
// await MIHClaimStatementGenerationApi
|
||||||
.deleteClaimStatementFilesByFileID(
|
// .deleteClaimStatementFilesByFileID(
|
||||||
PatientViewArguments(
|
// PatientViewArguments(
|
||||||
widget.signedInUser,
|
// widget.signedInUser,
|
||||||
widget.selectedPatient,
|
// widget.selectedPatient,
|
||||||
widget.businessUser,
|
// widget.businessUser,
|
||||||
widget.business,
|
// widget.business,
|
||||||
"business",
|
// "business",
|
||||||
),
|
// ),
|
||||||
widget.env,
|
// widget.env,
|
||||||
filePath,
|
// filePath,
|
||||||
fileID,
|
// fileID,
|
||||||
context,
|
// context,
|
||||||
);
|
// );
|
||||||
},
|
// },
|
||||||
),
|
// ),
|
||||||
);
|
// );
|
||||||
}
|
// }
|
||||||
|
|
||||||
String getFileName(String path) {
|
String getFileName(String path) {
|
||||||
//print(pdfLink.split(".")[1]);
|
//print(pdfLink.split(".")[1]);
|
||||||
@@ -159,9 +141,10 @@ class _BuildClaimStatementFileListState
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void viewFilePopUp(String fileName, String filePath, int fileID, String url) {
|
void viewFilePopUp(PatientManagerProvider patientManagerProvider,
|
||||||
|
String fileName, String filePath, int fileID, String url) {
|
||||||
bool hasAccessToDelete = false;
|
bool hasAccessToDelete = false;
|
||||||
if (widget.type == "business") {
|
if (!patientManagerProvider.personalMode) {
|
||||||
hasAccessToDelete = true;
|
hasAccessToDelete = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,7 +246,7 @@ class _BuildClaimStatementFileListState
|
|||||||
backgroundColor: MihColors.getGreenColor(
|
backgroundColor: MihColors.getGreenColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
deleteFilePopUp(filePath, fileID);
|
// deleteFilePopUp(filePath, fileID);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -332,7 +315,10 @@ class _BuildClaimStatementFileListState
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
if (widget.files.isNotEmpty) {
|
return Consumer2<MzansiProfileProvider, PatientManagerProvider>(
|
||||||
|
builder: (BuildContext context, MzansiProfileProvider profileProvider,
|
||||||
|
PatientManagerProvider patientManagerProvider, Widget? child) {
|
||||||
|
if (patientManagerProvider.patientClaimsDocuments!.isNotEmpty) {
|
||||||
return ListView.separated(
|
return ListView.separated(
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
@@ -342,18 +328,20 @@ class _BuildClaimStatementFileListState
|
|||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
itemCount: widget.files.length,
|
itemCount: patientManagerProvider.patientClaimsDocuments!.length,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(
|
title: Text(
|
||||||
widget.files[index].file_name,
|
patientManagerProvider
|
||||||
|
.patientClaimsDocuments![index].file_name,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: MihColors.getSecondaryColor(
|
color: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
subtitle: Text(
|
subtitle: Text(
|
||||||
widget.files[index].insert_date,
|
patientManagerProvider
|
||||||
|
.patientClaimsDocuments![index].insert_date,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: MihColors.getSecondaryColor(
|
color: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
@@ -364,7 +352,8 @@ class _BuildClaimStatementFileListState
|
|||||||
// color: MihColors.getSecondaryColor(MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
// color: MihColors.getSecondaryColor(MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
// ),
|
// ),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await getFileUrlApiCall(widget.files[index].file_path)
|
await getFileUrlApiCall(patientManagerProvider
|
||||||
|
.patientClaimsDocuments![index].file_path)
|
||||||
.then((urlHere) {
|
.then((urlHere) {
|
||||||
//print(url);
|
//print(url);
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -373,9 +362,13 @@ class _BuildClaimStatementFileListState
|
|||||||
});
|
});
|
||||||
|
|
||||||
viewFilePopUp(
|
viewFilePopUp(
|
||||||
widget.files[index].file_name,
|
patientManagerProvider,
|
||||||
widget.files[index].file_path,
|
patientManagerProvider
|
||||||
widget.files[index].idclaim_statement_file,
|
.patientClaimsDocuments![index].file_name,
|
||||||
|
patientManagerProvider
|
||||||
|
.patientClaimsDocuments![index].file_path,
|
||||||
|
patientManagerProvider.patientClaimsDocuments![index]
|
||||||
|
.idclaim_statement_file,
|
||||||
fileUrl);
|
fileUrl);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@@ -397,13 +390,15 @@ class _BuildClaimStatementFileListState
|
|||||||
MihIcons.mihRing,
|
MihIcons.mihRing,
|
||||||
size: 165,
|
size: 165,
|
||||||
color: MihColors.getSecondaryColor(
|
color: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
),
|
),
|
||||||
Icon(
|
Icon(
|
||||||
Icons.file_open_outlined,
|
Icons.file_open_outlined,
|
||||||
size: 110,
|
size: 110,
|
||||||
color: MihColors.getSecondaryColor(
|
color: MihColors.getSecondaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -428,7 +423,7 @@ class _BuildClaimStatementFileListState
|
|||||||
),
|
),
|
||||||
const SizedBox(height: 25),
|
const SizedBox(height: 25),
|
||||||
Visibility(
|
Visibility(
|
||||||
visible: widget.business != null,
|
visible: !patientManagerProvider.personalMode,
|
||||||
child: Center(
|
child: Center(
|
||||||
child: RichText(
|
child: RichText(
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
@@ -462,5 +457,7 @@ class _BuildClaimStatementFileListState
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +1,18 @@
|
|||||||
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
|
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
|
||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.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_claim_statement_generation_services.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_floating_menu.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.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_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/claim_statement_file.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/patients.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/components/claim_statement_window.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/components/claim_statement_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/list_builders/build_claim_statement_files_list.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/list_builders/build_claim_statement_files_list.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class PatientClaimOrStatement extends StatefulWidget {
|
class PatientClaimOrStatement extends StatefulWidget {
|
||||||
final int patientIndex;
|
|
||||||
final Patient selectedPatient;
|
|
||||||
final AppUser signedInUser;
|
|
||||||
final Business? business;
|
|
||||||
final BusinessUser? businessUser;
|
|
||||||
final String type;
|
|
||||||
const PatientClaimOrStatement({
|
const PatientClaimOrStatement({
|
||||||
super.key,
|
super.key,
|
||||||
required this.patientIndex,
|
|
||||||
required this.selectedPatient,
|
|
||||||
required this.signedInUser,
|
|
||||||
required this.business,
|
|
||||||
required this.businessUser,
|
|
||||||
required this.type,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -38,39 +21,16 @@ class PatientClaimOrStatement extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
|
class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
|
||||||
late Future<List<ClaimStatementFile>> futueFiles;
|
|
||||||
late String env;
|
|
||||||
|
|
||||||
void claimOrStatementWindow() {
|
void claimOrStatementWindow() {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
builder: (context) => ClaimStatementWindow(
|
builder: (context) => ClaimStatementWindow(),
|
||||||
selectedPatient: widget.selectedPatient,
|
|
||||||
signedInUser: widget.signedInUser,
|
|
||||||
business: widget.business,
|
|
||||||
businessUser: widget.businessUser,
|
|
||||||
env: env,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
if (widget.business == null) {
|
|
||||||
futueFiles =
|
|
||||||
MIHClaimStatementGenerationApi.getClaimStatementFilesByPatient(
|
|
||||||
widget.signedInUser.app_id);
|
|
||||||
} else {
|
|
||||||
futueFiles =
|
|
||||||
MIHClaimStatementGenerationApi.getClaimStatementFilesByBusiness(
|
|
||||||
widget.business!.business_id);
|
|
||||||
}
|
|
||||||
if (AppEnviroment.getEnv() == "Prod") {
|
|
||||||
env = "Prod";
|
|
||||||
} else {
|
|
||||||
env = "Dev";
|
|
||||||
}
|
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,40 +43,19 @@ class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget getBody() {
|
Widget getBody() {
|
||||||
|
return Consumer2<MzansiProfileProvider, PatientManagerProvider>(
|
||||||
|
builder: (BuildContext context, MzansiProfileProvider profileProvider,
|
||||||
|
PatientManagerProvider patientManagerProvider, Widget? child) {
|
||||||
return Stack(
|
return Stack(
|
||||||
children: [
|
children: [
|
||||||
FutureBuilder(
|
Column(
|
||||||
future: futueFiles,
|
|
||||||
builder: (context, snapshot) {
|
|
||||||
if (snapshot.connectionState == ConnectionState.waiting) {
|
|
||||||
return const Center(
|
|
||||||
child: Mihloadingcircle(),
|
|
||||||
);
|
|
||||||
} else if (snapshot.hasData) {
|
|
||||||
final filesList = snapshot.data!;
|
|
||||||
return Column(
|
|
||||||
children: [
|
children: [
|
||||||
//const Placeholder(),
|
//const Placeholder(),
|
||||||
BuildClaimStatementFileList(
|
BuildClaimStatementFileList(),
|
||||||
files: filesList,
|
|
||||||
signedInUser: widget.signedInUser,
|
|
||||||
selectedPatient: widget.selectedPatient,
|
|
||||||
business: widget.business,
|
|
||||||
businessUser: widget.businessUser,
|
|
||||||
type: widget.type,
|
|
||||||
env: env,
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return const Center(
|
|
||||||
child: Text("Error Loading Notes"),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
Visibility(
|
Visibility(
|
||||||
visible: widget.type != "personal",
|
visible: patientManagerProvider.personalMode,
|
||||||
child: Positioned(
|
child: Positioned(
|
||||||
right: 10,
|
right: 10,
|
||||||
bottom: 10,
|
bottom: 10,
|
||||||
@@ -128,18 +67,22 @@ class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
|
|||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.add,
|
Icons.add,
|
||||||
color: MihColors.getPrimaryColor(
|
color: MihColors.getPrimaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
),
|
),
|
||||||
label: "Generate Claim/ Statement",
|
label: "Generate Claim/ Statement",
|
||||||
labelBackgroundColor: MihColors.getGreenColor(
|
labelBackgroundColor: MihColors.getGreenColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
labelStyle: TextStyle(
|
labelStyle: TextStyle(
|
||||||
color: MihColors.getPrimaryColor(
|
color: MihColors.getPrimaryColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
),
|
),
|
||||||
backgroundColor: MihColors.getGreenColor(
|
backgroundColor: MihColors.getGreenColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
claimOrStatementWindow();
|
claimOrStatementWindow();
|
||||||
},
|
},
|
||||||
@@ -150,5 +93,7 @@ class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,12 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
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_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';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/package_tools/patient_claim_or_statement.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/package_tools/patient_consultation.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/package_tools/patient_consultation.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/package_tools/patient_documents.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/package_tools/patient_documents.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/package_tools/patient_info.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/package_tools/patient_info.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_services/mih_claim_statement_generation_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
@@ -48,6 +50,8 @@ class _PatientProfileState extends State<PatientProfile> {
|
|||||||
await MihPatientServices()
|
await MihPatientServices()
|
||||||
.getPatientConsultationNotes(patientManagerProvider);
|
.getPatientConsultationNotes(patientManagerProvider);
|
||||||
await MihPatientServices().getPatientDocuments(patientManagerProvider);
|
await MihPatientServices().getPatientDocuments(patientManagerProvider);
|
||||||
|
await MIHClaimStatementGenerationApi.getClaimStatementFilesByPatient(
|
||||||
|
patientManagerProvider);
|
||||||
}
|
}
|
||||||
setState(() {
|
setState(() {
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
@@ -137,14 +141,7 @@ class _PatientProfileState extends State<PatientProfile> {
|
|||||||
PatientInfo(),
|
PatientInfo(),
|
||||||
PatientConsultation(),
|
PatientConsultation(),
|
||||||
PatientDocuments(),
|
PatientDocuments(),
|
||||||
// PatientClaimOrStatement(
|
PatientClaimOrStatement(),
|
||||||
// patientIndex: widget.arguments.selectedPatient!.idpatients,
|
|
||||||
// selectedPatient: widget.arguments.selectedPatient!,
|
|
||||||
// signedInUser: widget.arguments.signedInUser,
|
|
||||||
// business: widget.arguments.business,
|
|
||||||
// businessUser: widget.arguments.businessUser,
|
|
||||||
// type: widget.arguments.type,
|
|
||||||
// ),
|
|
||||||
];
|
];
|
||||||
return toolBodies;
|
return toolBodies;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loa
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.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:flutter/material.dart';
|
import 'package:flutter/material.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:supertokens_flutter/http.dart' as http;
|
import 'package:supertokens_flutter/http.dart' as http;
|
||||||
|
|
||||||
import '../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import '../mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
@@ -20,8 +22,9 @@ class MIHClaimStatementGenerationApi {
|
|||||||
///
|
///
|
||||||
/// Returns TBC.
|
/// Returns TBC.
|
||||||
Future<void> generateClaimStatement(
|
Future<void> generateClaimStatement(
|
||||||
|
MzansiProfileProvider profileProvider,
|
||||||
|
PatientManagerProvider patientManagerProvider,
|
||||||
ClaimStatementGenerationArguments data,
|
ClaimStatementGenerationArguments data,
|
||||||
PatientViewArguments args,
|
|
||||||
String env,
|
String env,
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
) async {
|
) async {
|
||||||
@@ -84,19 +87,13 @@ class MIHClaimStatementGenerationApi {
|
|||||||
},
|
},
|
||||||
body: jsonEncode(<String, dynamic>{
|
body: jsonEncode(<String, dynamic>{
|
||||||
"app_id": data.patient_app_id,
|
"app_id": data.patient_app_id,
|
||||||
"business_id": args.business!.business_id,
|
"business_id": profileProvider.business!.business_id,
|
||||||
"file_path": "${data.patient_app_id}/claims-statements/$fileName",
|
"file_path": "${data.patient_app_id}/claims-statements/$fileName",
|
||||||
"file_name": fileName
|
"file_name": fileName
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
if (response2.statusCode == 201) {
|
if (response2.statusCode == 201) {
|
||||||
context.pop(); // end loading circle
|
getClaimStatementFilesByPatient(patientManagerProvider);
|
||||||
context.pop();
|
|
||||||
|
|
||||||
context.pushNamed(
|
|
||||||
'patientManagerPatient',
|
|
||||||
extra: args,
|
|
||||||
);
|
|
||||||
String message =
|
String message =
|
||||||
"The ${data.document_type}: $fileName has been successfully generated and added to ${data.patient_full_name}'s record. You can now access and download it for their use.";
|
"The ${data.document_type}: $fileName has been successfully generated and added to ${data.patient_full_name}'s record. You can now access and download it for their use.";
|
||||||
successPopUp(message, context);
|
successPopUp(message, context);
|
||||||
@@ -114,11 +111,11 @@ class MIHClaimStatementGenerationApi {
|
|||||||
///
|
///
|
||||||
/// Returns List<ClaimStatementFile>.
|
/// Returns List<ClaimStatementFile>.
|
||||||
static Future<List<ClaimStatementFile>> getClaimStatementFilesByPatient(
|
static Future<List<ClaimStatementFile>> getClaimStatementFilesByPatient(
|
||||||
String app_id,
|
PatientManagerProvider patientManagerProvider,
|
||||||
) async {
|
) async {
|
||||||
//print("Patien manager page: $endpoint");
|
//print("Patien manager page: $endpoint");
|
||||||
final response = await http.get(Uri.parse(
|
final response = await http.get(Uri.parse(
|
||||||
"${AppEnviroment.baseApiUrl}/files/claim-statement/patient/$app_id"));
|
"${AppEnviroment.baseApiUrl}/files/claim-statement/patient/${patientManagerProvider.selectedPatient!.app_id}"));
|
||||||
// print("Here");
|
// print("Here");
|
||||||
// print("Body: ${response.body}");
|
// print("Body: ${response.body}");
|
||||||
// print("Code: ${response.statusCode}");
|
// print("Code: ${response.statusCode}");
|
||||||
@@ -132,7 +129,9 @@ 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(patientQueue);
|
print(docList);
|
||||||
|
patientManagerProvider.setClaimsDocuments(
|
||||||
|
patientClaimsDocuments: docList);
|
||||||
return docList;
|
return docList;
|
||||||
} else {
|
} else {
|
||||||
throw Exception(
|
throw Exception(
|
||||||
|
|||||||
Reference in New Issue
Block a user