merge-update-with-lab-changes
haroon amjad 5 years ago
parent 22c6a8ce42
commit 89e1aa70c0

@ -1516,7 +1516,7 @@ const Map localizedValues = {
"RRTRequestSuccess": { "en": "Request has been sent successfully, You will be contacted soon.", "ar": "تم إرسال الطلب بنجاح ، وسيتم الاتصال بك باسرع وقت ممكن" }, "RRTRequestSuccess": { "en": "Request has been sent successfully, You will be contacted soon.", "ar": "تم إرسال الطلب بنجاح ، وسيتم الاتصال بك باسرع وقت ممكن" },
"rateDoctorAppo": { "en": "Rate DR & Appointment", "ar": "معدل الدكتور والتعيين" }, "rateDoctorAppo": { "en": "Rate DR & Appointment", "ar": "معدل الدكتور والتعيين" },
"invoice": { "en": "Invoice", "ar": "الفاتورة" }, "invoice": { "en": "Invoice", "ar": "الفاتورة" },
"requestedDate": { "en": "Reqeusted Date", "ar": "التاريخ " }, "requestedDate": { "en": "Requested Date", "ar": "التاريخ " },
"callDuration": { "en": "Call Duration", "ar": "مدة الاتصال" }, "callDuration": { "en": "Call Duration", "ar": "مدة الاتصال" },
"alreadyRated": { "en": "This appointment has been previously evaluated.", "ar": "تم تقييم هذا الموعد مسبقاً" }, "alreadyRated": { "en": "This appointment has been previously evaluated.", "ar": "تم تقييم هذا الموعد مسبقاً" },
"insuranceCompany": { "en": "Insurance Company", "ar": "شركة تأمين" }, "insuranceCompany": { "en": "Insurance Company", "ar": "شركة تأمين" },
@ -1526,4 +1526,5 @@ const Map localizedValues = {
"otherInfo": {"en": "Other details", "ar": "تفاصيل أخرى"}, "otherInfo": {"en": "Other details", "ar": "تفاصيل أخرى"},
"medicalReport": {"en": "Medical Report", "ar": "تقرير طبي"}, "medicalReport": {"en": "Medical Report", "ar": "تقرير طبي"},
"insuredPatient": {"en": "Insured Patient", "ar": "هل لدى المريض تامين؟"}, "insuredPatient": {"en": "Insured Patient", "ar": "هل لدى المريض تامين؟"},
"rateDoctor": {"en": "Rate Doctor", "ar": "تقييم الطبيب"},
}; };

@ -307,7 +307,7 @@ class _BookConfirmState extends State<BookConfirm> {
AppoitmentAllHistoryResultList appo; AppoitmentAllHistoryResultList appo;
widget.service.insertLiveCareScheduleAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, docObject.serviceID, widget.selectedTime, widget.selectedDate, context).then((res) { widget.service.insertLiveCareScheduleAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, docObject.serviceID, widget.selectedTime, widget.selectedDate, context).then((res) {
if (res['MessageStatus'] == 1) { if (res['MessageStatus'] == 1) {
AppToast.showSuccessToast(message: "Appointment Booked Successfully"); AppToast.showSuccessToast(message: TranslationBase.of(context).bookedSuccess);
print(res['AppointmentNo']); print(res['AppointmentNo']);
Future.delayed(new Duration(milliseconds: 500), () { Future.delayed(new Duration(milliseconds: 500), () {

@ -451,7 +451,7 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
.insertAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, CovidTimeSlots.selectedTime, CovidTimeSlots.selectedDate, context, widget.selectedProcedure.procedureID) .insertAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, CovidTimeSlots.selectedTime, CovidTimeSlots.selectedDate, context, widget.selectedProcedure.procedureID)
.then((res) { .then((res) {
if (res['MessageStatus'] == 1) { if (res['MessageStatus'] == 1) {
AppToast.showSuccessToast(message: "Appointment Booked Successfully"); AppToast.showSuccessToast(message: TranslationBase.of(context).bookedSuccess);
getToDoCount(); getToDoCount();
getPatientShare(context, res['AppointmentNo'], docObject.clinicID, docObject.projectID, docObject); getPatientShare(context, res['AppointmentNo'], docObject.clinicID, docObject.projectID, docObject);
} else { } else {

@ -75,13 +75,14 @@ class _ErOptionsState extends State<ErOptions> {
), ),
InkWell( InkWell(
onTap: () { onTap: () {
Navigator.push(context, FadePage(page: DdServicesPage())); // Navigator.push(context, FadePage(page: DdServicesPage()));
}, },
child: MedicalProfileItem( child: MedicalProfileItem(
title: "ED", title: "ED",
imagePath: 'assets/images/new-design/AM.PNG', imagePath: 'assets/images/new-design/AM.PNG',
subTitle: TranslationBase.of(context).service, subTitle: TranslationBase.of(context).service,
isPngImage: true, isPngImage: true,
isEnable: false,
), ),
), ),
InkWell( InkWell(

@ -162,13 +162,19 @@ class _SchedulePageState extends State<SchedulePage> {
weeks[index][index2]['WorkingHours'], weeks[index][index2]['WorkingHours'],
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
), ),
) ),
Icon(projectViewModel.isArabic
? Icons
.arrow_back_ios_outlined
: Icons
.arrow_forward_ios_outlined, size: 16.0),
], ],
) )
]))), ]))),
) ),
], ],
)))); )
)));
}, },
)), )),
PageViewIndicator( PageViewIndicator(

@ -179,33 +179,7 @@ class PrescriptionDetailsPage extends StatelessWidget {
AppToast.showSuccessToast(message: TranslationBase.of(context).reminderSuccess); AppToast.showSuccessToast(message: TranslationBase.of(context).reminderSuccess);
}, },
); );
return; return;
showGeneralDialog(
barrierColor: Colors.black.withOpacity(0.5),
transitionBuilder: (context, a1, a2, widget) {
final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0;
return Transform(
transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
child: Opacity(
opacity: a1.value,
child: PrescriptionReminderDialog(
eventId: prescriptionReport.itemID.toString(),
title: "${prescriptionReport.itemDescriptionN} Prescription Reminder",
description: "${prescriptionReport.itemDescriptionN} ${prescriptionReport.frequencyN} ${prescriptionReport.routeN} ",
startDate: startDate,
endDate: endDate,
location: prescriptionReport.remarks,
days: 1,
),
),
);
},
transitionDuration: Duration(milliseconds: 500),
barrierDismissible: true,
barrierLabel: '',
context: context,
pageBuilder: (context, animation1, animation2) {});
}, },
iconData: Icons.notifications_active, iconData: Icons.notifications_active,
color: Color(0xffEAEAEA), color: Color(0xffEAEAEA),

@ -1,20 +1,16 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/DoctorView.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
import 'package:diplomaticquarterapp/pages/rateAppointment/rate_appointment_clinic.dart'; import 'package:diplomaticquarterapp/pages/rateAppointment/rate_appointment_clinic.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/drawer/app_drawer_widget.dart';
import 'package:diplomaticquarterapp/widgets/input/text_field.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
class RateAppointmentDoctor extends StatefulWidget { class RateAppointmentDoctor extends StatefulWidget {
@override @override
@ -30,93 +26,51 @@ class _RateAppointmentDoctorState extends State<RateAppointmentDoctor> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BaseView<AppointmentRateViewModel>( return BaseView<AppointmentRateViewModel>(
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
isShowAppBar: true,
showNewAppBar: true,
showNewAppBarTitle: true,
baseViewModel: model, baseViewModel: model,
body: Scaffold( appBarTitle: TranslationBase.of(context).rateDoctor,
backgroundColor: Colors.grey[200], body: SingleChildScrollView(
appBar: AppBar(
elevation: 0,
textTheme: TextTheme(
headline6:
TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
),
title: Text(TranslationBase.of(context).rate),
leading: Builder(
builder: (BuildContext context) {
return IconButton(
icon: Icon(Icons.menu),
color: Colors.white,
onPressed: () => Scaffold.of(context).openDrawer(),
);
},
),
centerTitle: true,
),
drawer: SafeArea(child: AppDrawer()),
body: FractionallySizedBox(
widthFactor: 1,
child: SingleChildScrollView(
child: Container( child: Container(
padding: EdgeInsets.all(12), padding: EdgeInsets.all(12),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
SizedBox( SizedBox(
height: 25, //5598 height: 25, //5598
), ),
Texts( Text(
TranslationBase.of(context).lastVisit, TranslationBase.of(context).lastVisit,
bold: true, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 23 / 16),
color: Colors.black,
), ),
SizedBox( SizedBox(
height: 25, height: 25,
), ),
Container( Container(
width: double.infinity, child: DoctorView(
decoration: BoxDecoration( doctor: getDoctorObject(model),
borderRadius: BorderRadius.circular(15), isLiveCareAppointment: false,
color: Colors.white, isShowFlag: false,
shape: BoxShape.rectangle,
border: Border.all(color: Colors.white, width: 0.5),
),
child: Column(
children: <Widget>[
SizedBox(
height: 8,
),
LargeAvatar(
name: model.appointmentDetails.doctorName,
url: model.appointmentDetails.doctorImageURL,
width: 110,
height: 110,
),
SizedBox(
height: 22,
),
Texts(
TranslationBase.of(context).dr + " " + model.appointmentDetails.doctorName,
bold: true,
),
SizedBox(
height: 4,
),
Texts(
model.appointmentDetails.clinicName != null ? model.appointmentDetails.clinicName : "",
bold: true,
),
SizedBox(
height: 8,
)
],
), ),
), ),
SizedBox( SizedBox(
height: 12, height: 12,
), ),
Center( Container(
child: Texts( width: double.infinity,
child: Card(
elevation: 0,
shape: cardRadius(10),
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).tapTitle, TranslationBase.of(context).tapTitle,
textAlign: TextAlign.center, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 23 / 16),
)), ),
SizedBox( SizedBox(
height: 12, height: 12,
), ),
@ -129,10 +83,8 @@ class _RateAppointmentDoctorState extends State<RateAppointmentDoctor> {
duration: Duration(milliseconds: 1000), duration: Duration(milliseconds: 1000),
switchInCurve: Curves.elasticOut, switchInCurve: Curves.elasticOut,
switchOutCurve: Curves.elasticIn, switchOutCurve: Curves.elasticIn,
transitionBuilder: transitionBuilder: (Widget child, Animation<double> animation) {
(Widget child, Animation<double> animation) { return ScaleTransition(child: child, scale: animation);
return ScaleTransition(
child: child, scale: animation);
}, },
child: Container( child: Container(
key: ValueKey<int>(rating), key: ValueKey<int>(rating),
@ -143,60 +95,76 @@ class _RateAppointmentDoctorState extends State<RateAppointmentDoctor> {
rating = index + 1; rating = index + 1;
}); });
}, },
color: rating >= (index + 1) color: rating >= (index + 1) ? Color.fromRGBO(255, 186, 0, 1.0) : Colors.grey[400],
? Color.fromRGBO(255, 186, 0, 1.0)
: Colors.grey[400],
// Theme.of(context).hintColor, // Theme.of(context).hintColor,
icon: Icon(rating >= (index + 1) icon: Icon(rating >= (index + 1) ? Icons.star : Icons.star)),
? EvaIcons.star
: EvaIcons.star)),
), ),
), ),
) )
], ],
), ),
],
),
),
),
),
SizedBox( SizedBox(
height: 12, height: 12,
), ),
Form( Card(
key: formKey, elevation: 0,
child: TextFields( shape: cardRadius(10),
child: Padding(
padding: EdgeInsets.all(8.0),
child: TextField(
maxLines: 5,
decoration: InputDecoration.collapsed(
hintText: TranslationBase.of(context).notes, hintText: TranslationBase.of(context).notes,
minLines: 4, hintStyle: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 23 / 16)),
maxLines: 4,
// validator: (value) {
// if (value.isEmpty)
// return 'Please enter your note';
// else if (rating == 0) return 'Rating cannot be \"0\"';
// return null;
// },
onChanged: (value) { onChanged: (value) {
setState(() { setState(() {
note = value; note = value;
}); });
}, },
))),
],
), ),
), ),
SizedBox(
height: 12,
), ),
Container( bottomSheet: Container(
width: double.infinity, color: Colors.white,
child: Column( padding: EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21),
children: <Widget>[ child: Row(
Container( mainAxisSize: MainAxisSize.min,
width: MediaQuery.of(context).size.width * 0.9, children: [
child: SecondaryButton( Expanded(
onTap: () async { child: DefaultButton(
TranslationBase.of(context).later,
() {
Navigator.pushReplacement(
context,
FadePage(
page: LandingPage(),
),
);
},
color: Color(0xffEAEAEA),
textColor: Color(0xff2B353E),
),
),
SizedBox(width: 10),
Expanded(
child: DefaultButton(
TranslationBase.of(context).next,
() {
final form = formKey.currentState; final form = formKey.currentState;
if (form.validate() && rating>0 ) { if (form.validate() && rating > 0) {
form.save(); form.save();
Navigator.push( Navigator.push(
context, context,
FadePage( FadePage(
page: RateAppointmentClinic( page: RateAppointmentClinic(
appointmentDetails: appointmentDetails: model.appointmentDetails,
model.appointmentDetails,
doctorNote: note, doctorNote: note,
doctorRate: rating, doctorRate: rating,
), ),
@ -204,40 +172,26 @@ class _RateAppointmentDoctorState extends State<RateAppointmentDoctor> {
); );
} }
}, },
label: TranslationBase.of(context).next, // iconData: Icons.notifications_active,
disabled: (model.state == ViewState.BusyLocal || rating==0), color: Color(0xff359846),
loading: model.state == ViewState.BusyLocal,
textColor: Theme.of(context).backgroundColor),
), ),
SizedBox(
height: 12,
), ),
InkWell(
onTap: () {
Navigator.pushReplacement(
context,
FadePage(
page: LandingPage(),
),
);
},
child: Texts(
TranslationBase.of(context).later,
decoration: TextDecoration.underline,
color: HexColor('#151DFE'),
fontSize: 18,
),
)
],
),
)
], ],
), ),
), ),
), ),
),
),
),
); );
} }
DoctorList getDoctorObject(AppointmentRateViewModel model) {
DoctorList doctor = new DoctorList();
doctor.name = model.appointmentDetails.doctorName;
doctor.doctorImageURL = model.appointmentDetails.doctorImageURL;
doctor.clinicName = model.appointmentDetails.clinicName;
doctor.projectName = model.appointmentDetails.projectName;
doctor.actualDoctorRate = 5;
return doctor;
}
} }

@ -2322,6 +2322,8 @@ class TranslationBase {
String get insuredPatientReferral => localizedValues["insuredPatient"][locale.languageCode]; String get insuredPatientReferral => localizedValues["insuredPatient"][locale.languageCode];
String get rateDoctor => localizedValues["rateDoctor"][locale.languageCode];
} }
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> { class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

Loading…
Cancel
Save