bug fixes

merge-update-with-lab-changes
Sultan Khan 5 years ago
parent 57d87dfc03
commit 9e31a3c560

@ -3,15 +3,17 @@ import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart'; import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart'; import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/models/DoctorScheduleResponse.dart';
class MedicalService extends BaseService { class MedicalService extends BaseService {
List<AppoitmentAllHistoryResultList> appoitmentAllHistoryResultList = List(); List<AppoitmentAllHistoryResultList> appoitmentAllHistoryResultList = List();
List<DoctorScheduleResponse> doctorScheduleResponse = List();
getAppointmentHistory({bool isActiveAppointment = false}) async { getAppointmentHistory({bool isActiveAppointment = false}) async {
hasError = false; hasError = false;
super.error = ""; super.error = "";
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
if(isActiveAppointment) { if (isActiveAppointment) {
body['IsActiveAppointment'] = true; body['IsActiveAppointment'] = true;
body['isDentalAllowedBackend'] = false; body['isDentalAllowedBackend'] = false;
} }
@ -37,12 +39,30 @@ class MedicalService extends BaseService {
body['RequesterMobileNo'] = user.mobileNumber; body['RequesterMobileNo'] = user.mobileNumber;
body['RequesterIsOutSA'] = user.outSA; body['RequesterIsOutSA'] = user.outSA;
await baseAppClient.post(GET_PATIENT_APPOINTMENT_HISTORY, await baseAppClient.post(GET_PATIENT_APPOINTMENT_HISTORY,
onSuccess: (response, statusCode) async { onSuccess: (response, statusCode) async {},
onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: body);
}
Future<Map> getSchedule(DoctorList doctorRequest) async {
Map<String, dynamic> request;
request = {
'DoctorID': doctorRequest.doctorID,
'ProjectID': doctorRequest.projectID,
'ClinicID': doctorRequest.clinicID,
'DoctorWorkingHoursDays': 7
};
dynamic localRes;
await baseAppClient.post(DOCTOR_SCHEDULE_URL,
onSuccess: (response, statusCode) async {
localRes = response;
}, onFailure: (String error, int statusCode) {
throw error;
}, body: request);
}, onFailure: (String error, int statusCode) { localRes['List_DoctorWorkingHoursTable'].forEach((item) =>
hasError = true; {doctorScheduleResponse.add(DoctorScheduleResponse.fromJson(item))});
super.error = error;
}, body: body);
} }
} }

@ -4,17 +4,33 @@ import 'package:diplomaticquarterapp/core/service/medical/medical_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart'; import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/models/DoctorScheduleResponse.dart';
class MedicalViewModel extends BaseViewModel { class MedicalViewModel extends BaseViewModel {
MedicalService _medicalService = locator<MedicalService>(); MedicalService _medicalService = locator<MedicalService>();
List<AppoitmentAllHistoryResultList> get appoitmentAllHistoryResultList => List<AppoitmentAllHistoryResultList> get appoitmentAllHistoryResultList =>
_medicalService.appoitmentAllHistoryResultList; _medicalService.appoitmentAllHistoryResultList;
List<DoctorScheduleResponse> get getDoctorScheduleList =>
_medicalService.doctorScheduleResponse;
getAppointmentHistory() async { getAppointmentHistory() async {
if (authenticatedUserObject.isLogin) { if (authenticatedUserObject.isLogin) {
setState(ViewState.Busy); setState(ViewState.Busy);
await _medicalService.getAppointmentHistory(); await _medicalService.getAppointmentHistory();
if (_medicalService.hasError) {
error = _medicalService.error;
setState(ViewState.Error);
} else
setState(ViewState.Idle);
}
}
getDoctorSchedule(DoctorList doctorRequest) async {
if (authenticatedUserObject.isLogin) {
setState(ViewState.Busy);
await _medicalService.getSchedule(doctorRequest);
if (_medicalService.hasError) { if (_medicalService.hasError) {
error = _medicalService.error; error = _medicalService.error;
setState(ViewState.Error); setState(ViewState.Error);

@ -34,8 +34,8 @@ class _AnicllaryOrdersState extends State<AnicllaryOrdersDetails>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BaseView<AnciallryOrdersViewModel>( return BaseView<AnciallryOrdersViewModel>(
onModelReady: (model) => onModelReady: (model) => model.getOrdersDetails(
model.getOrdersDetails(widget.appoNo, widget.orderNo, widget.projectID), widget.appoNo, widget.orderNo, widget.projectID),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
baseViewModel: model, baseViewModel: model,
@ -70,9 +70,12 @@ class _AnicllaryOrdersState extends State<AnicllaryOrdersDetails>
label: TranslationBase.of(context).payNow, label: TranslationBase.of(context).payNow,
backgroundColor: Colors.red[800], backgroundColor: Colors.red[800],
onTap: () { onTap: () {
Navigator.push(context, Navigator.push(
FadePage(page: OrdersPayment(), context,
),); FadePage(
page: OrdersPayment(),
),
);
}, },
) )
], ],
@ -146,11 +149,11 @@ class _AnicllaryOrdersState extends State<AnicllaryOrdersDetails>
), ),
Row( Row(
children: [ children: [
Texts( // Texts(
TranslationBase.of(context).invoiceDate, // TranslationBase.of(context).invoiceDate,
// fontWeight: FontWeight.bold, // // fontWeight: FontWeight.bold,
color: Colors.red[500], // color: Colors.red[500],
), // ),
Texts(" : "), Texts(" : "),
Texts( Texts(
DateUtil.getDayMonthYearDateFormatted( DateUtil.getDayMonthYearDateFormatted(
@ -223,13 +226,10 @@ class _AnicllaryOrdersState extends State<AnicllaryOrdersDetails>
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [
Row( Row(
children: [ children: [],
],
), ),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [
Texts( Texts(
TranslationBase.of(context).price, TranslationBase.of(context).price,
@ -248,19 +248,19 @@ class _AnicllaryOrdersState extends State<AnicllaryOrdersDetails>
color: Colors.grey[500], color: Colors.grey[500],
fontSize: 14, fontSize: 14,
), ),
] ), ]),
], ],
), ),
Divider( Divider(
color: Colors.black26, color: Colors.black26,
), ),
], ],
)); ));
} }
Widget getAncillaryDetails(model) { Widget getAncillaryDetails(model) {
Map newMap = groupBy(model.ancillaryListsDetails[0].ancillaryOrderProcDetailsList, Map newMap = groupBy(
model.ancillaryListsDetails[0].ancillaryOrderProcDetailsList,
(obj) => obj.procedureCategoryName); (obj) => obj.procedureCategoryName);
print(newMap); print(newMap);
@ -325,6 +325,4 @@ class _AnicllaryOrdersState extends State<AnicllaryOrdersDetails>
}).toList(), }).toList(),
); );
} }
} }

@ -7,9 +7,10 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
class SchedulePage extends StatefulWidget { class SchedulePage extends StatefulWidget {
final DoctorList doctorList; final DoctorList doctorList;
@ -24,6 +25,7 @@ class _SchedulePageState extends State<SchedulePage> {
PageController _pageController = PageController(); PageController _pageController = PageController();
double currentPage = 0; double currentPage = 0;
int selectedindex = 0; int selectedindex = 0;
bool isLoading = true;
List<DoctorScheduleResponse> doctorScheduleResponse = []; List<DoctorScheduleResponse> doctorScheduleResponse = [];
final List<Widget> introWidgetsList = <Widget>[ final List<Widget> introWidgetsList = <Widget>[
Text('Hello'), Text('Hello'),
@ -33,7 +35,7 @@ class _SchedulePageState extends State<SchedulePage> {
@override @override
void initState() { void initState() {
getSchedule(widget.doctorList); //getSchedule(widget.doctorList, context);
// _pageController.addListener(() { // _pageController.addListener(() {
// setState(() { // setState(() {
// currentPage = _pageController.page; // currentPage = _pageController.page;
@ -44,103 +46,118 @@ class _SchedulePageState extends State<SchedulePage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( return BaseView<MedicalViewModel>(
appBarTitle: TranslationBase.of(context).schedule, onModelReady: (model) => model.getDoctorSchedule(widget.doctorList),
isShowAppBar: true, builder: (_, model, widget) => AppScaffold(
body: SizedBox( appBarTitle: TranslationBase.of(context).schedule,
height: MediaQuery.of(context).size.height, isShowAppBar: true,
child: Stack( isLoading: true,
children: [ body: SizedBox(
Container( height: MediaQuery.of(context).size.height,
child: PageView.builder( child: Stack(
controller: _pageController, children: [
itemCount: 3, Container(
onPageChanged: (index) { child: PageView.builder(
setState(() { controller: _pageController,
this.currentPage = index.toDouble(); itemCount: 3,
}); onPageChanged: (index) {
}, setState(() {
itemBuilder: (context, index) { this.currentPage = index.toDouble();
return Container( });
child: ListView.builder( },
itemCount: doctorScheduleResponse.length, itemBuilder: (context, index) {
itemBuilder: (context, index) => ClipRRect( return Container(
borderRadius: const BorderRadius.all( child: ListView.builder(
Radius.circular(20.0)), itemCount: model.getDoctorScheduleList.length,
child: Container( itemBuilder: (context, index) => ClipRRect(
padding: EdgeInsets.only( borderRadius: const BorderRadius.all(
left: 10, Radius.circular(20.0)),
right: 10, child: Container(
top: 25, padding: EdgeInsets.only(
bottom: 25), left: 10,
height: 100, right: 10,
margin: EdgeInsets.all(10), top: 20,
decoration: BoxDecoration( bottom: 20),
boxShadow: [ margin: EdgeInsets.only(
BoxShadow( left: 20,
color: Colors.green, right: 20,
spreadRadius: 3), top: 7,
], bottom: 7),
borderRadius: const BorderRadius.all( decoration: BoxDecoration(
Radius.circular(10.0)), boxShadow: [
color: Colors.white), BoxShadow(
child: Row( color: Colors.green,
children: [ offset: Offset(-10, 0)),
Expanded( ],
child: Row(children: [ borderRadius:
Column( const BorderRadius.all(
children: [ Radius.circular(10.0)),
Texts( color: Colors.white),
doctorScheduleResponse[index] child: Row(
.dayName, children: [
color: HexColor('#0bb690'), Expanded(
), child: Row(children: [
Texts( Column(
DateUtil children: [
.getDayMonthYearDateFormatted( Texts(
DateUtil model
.convertStringToDate( .getDoctorScheduleList[
doctorScheduleResponse[
index] index]
.date, .dayName,
color:
HexColor('#0bb690'),
), ),
), Texts(
color: HexColor('#0bb690'), DateUtil
.getDayMonthYearDateFormatted(
DateUtil
.convertStringToDate(
model
.getDoctorScheduleList[
index]
.date,
),
),
color:
HexColor('#0bb690'),
)
],
) )
], ]),
),
Expanded(
child: Texts(
model
.getDoctorScheduleList[
index]
.workingHours,
color: HexColor('#0bb690'),
),
) )
]), ],
), )))));
Expanded( },
child: Texts( )),
doctorScheduleResponse[index] PageViewIndicator(
.workingHours, isActive: true,
color: HexColor('#0bb690'), currentPage: this.currentPage,
), length: introWidgetsList.length,
) )
], ],
))))); ))));
},
)),
PageViewIndicator(
isActive: true,
currentPage: this.currentPage,
length: introWidgetsList.length,
)
],
)));
} }
getSchedule(DoctorList doctor) { //getSchedule(DoctorList doctor, BuildContext context) {
// GifLoaderDialogUtils.showMyDialog(AppGlobal.context); //GifLoaderDialogUtils.showMyDialog(context);
service = new DoctorsListService(); //service = new DoctorsListService();
service.getSchedule(doctor).then((value) { // service.getSchedule(doctor).then((value) {
doctorScheduleResponse.clear(); // doctorScheduleResponse.clear();
setState(() { // setState(() {
value['List_DoctorWorkingHoursTable'].forEach((item) => { // value['List_DoctorWorkingHoursTable'].forEach((item) => {
doctorScheduleResponse.add(DoctorScheduleResponse.fromJson(item)) // doctorScheduleResponse.add(DoctorScheduleResponse.fromJson(item))
}); // });
}); // GifLoaderDialogUtils.hideDialog(context);
}); // });
} // });
// }
} }

@ -471,9 +471,8 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
}) })
} }
}); });
// familyFileProvider.getSharedRecordByStatus();
} }
familyFileProvider.getSharedRecordByStatus();
} }
} }

@ -1,51 +1,16 @@
import 'dart:math';
import 'package:badges/badges.dart';
import 'package:diplomaticquarterapp/core/service/medical/vital_sign_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/MyAppointments.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_approval_screen.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_card_screen.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/patient_sick_leave_page.dart';
import 'package:diplomaticquarterapp/pages/medical/reports/monthly_reports.dart';
import 'package:diplomaticquarterapp/pages/medical/smart_watch_health_data/smart_watch_instructions.dart';
import 'package:diplomaticquarterapp/pages/vaccine/my_vaccines_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_home_page.dart';
import 'package:diplomaticquarterapp/pages/medical/radiology/radiology_home_page.dart';
import 'package:diplomaticquarterapp/pages/medical/vital_sign/vital_sign_details_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/reports/report_home_page.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/medical_profile_item.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/time_line_widget.dart'; import 'package:diplomaticquarterapp/widgets/data_display/medical/time_line_widget.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/alert_dialog.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/sliver_app_bar_delegate.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_card_screen.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../locator.dart';
import '../../uitl/gif_loader_dialog_utils.dart';
import 'active_medications/ActiveMedicationsPage.dart';
import 'allergies_page.dart';
import 'ask_doctor/ask_doctor_home_page.dart';
import 'balance/my_balance_page.dart';
import 'doctor/doctor_home_page.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_approval_screen.dart';
import 'eye/EyeHomePage.dart';
import 'eye/EyeMeasurementsPage.dart';
import 'labs/labs_home_page.dart';
import 'my_trackers/my_trackers.dart';
class MedicalProfilePage extends StatefulWidget { class MedicalProfilePage extends StatefulWidget {
@override @override

@ -14,7 +14,7 @@ import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
class DoctorsListService extends BaseService { class DoctorsListService extends BaseService {
AppSharedPreferences sharedPref = AppSharedPreferences(); AppSharedPreferences sharedPref = AppSharedPreferences();
@ -1498,22 +1498,4 @@ class DoctorsListService extends BaseService {
}, body: request); }, body: request);
return Future.value(localRes); return Future.value(localRes);
} }
Future<Map> getSchedule(DoctorList doctorRequest) async {
Map<String, dynamic> request;
request = {
'DoctorID': doctorRequest.doctorID,
'ProjectID': doctorRequest.projectID,
'ClinicID': doctorRequest.clinicID,
'DoctorWorkingHoursDays': 7
};
dynamic localRes;
await baseAppClient.post(DOCTOR_SCHEDULE_URL,
onSuccess: (response, statusCode) async {
localRes = response;
}, onFailure: (String error, int statusCode) {
throw error;
}, body: request);
return Future.value(localRes);
}
} }

Loading…
Cancel
Save