Medical Reminder

merge-update-with-lab-changes
devmirza121 4 years ago
parent a7dccb76bf
commit 69b1dd6533

@ -15,8 +15,8 @@ const PACKAGES_CUSTOMER = '/api/customers';
const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items'; const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items';
const PACKAGES_ORDERS = '/api/orders'; const PACKAGES_ORDERS = '/api/orders';
const PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara'; const PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara';
// const BASE_URL = 'https://uat.hmgwebservices.com/'; const BASE_URL = 'https://uat.hmgwebservices.com/';
const BASE_URL = 'https://hmgwebservices.com/'; // const BASE_URL = 'https://hmgwebservices.com/';
// Pharmacy UAT URLs // Pharmacy UAT URLs
// const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; // const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/';

@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/models/header_model.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/reminder_dialog.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/reminder_dialog.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/reminder_dialog_prescription.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/reminder_dialog_prescription.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart'; import 'package:diplomaticquarterapp/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart';
import 'package:diplomaticquarterapp/uitl/LocalNotification.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
@ -32,7 +33,6 @@ class PrescriptionDetailsPage extends StatelessWidget {
return AppScaffold( return AppScaffold(
isShowAppBar: true, isShowAppBar: true,
showNewAppBar: true, showNewAppBar: true,
backgroundColor: Color(0xffF8F8F8),
showNewAppBarTitle: true, showNewAppBarTitle: true,
appBarTitle: TranslationBase.of(context).prescriptions, appBarTitle: TranslationBase.of(context).prescriptions,
body: Column( body: Column(
@ -197,49 +197,24 @@ class PrescriptionDetailsPage extends StatelessWidget {
child: DefaultButton( child: DefaultButton(
TranslationBase.of(context).addReminder, TranslationBase.of(context).addReminder,
() { () {
DateTime startDate = DateTime.now(); setTheNotificatoin(context);
DateTime endDate = DateTime(startDate.year, startDate.month, startDate.day + prescriptionReport.days); // DateTime startDate = DateTime.now();
// DateTime endDate = DateTime(startDate.year, startDate.month, startDate.day + prescriptionReport.days);
showReminderDialog( //
context, // showReminderDialog(
endDate, // context,
"", // endDate,
prescriptionReport.itemID.toString(), // "",
"", // prescriptionReport.itemID.toString(),
"", // "",
title: "${prescriptionReport.itemDescriptionN} Prescription Reminder", // "",
description: "${prescriptionReport.itemDescriptionN} ${prescriptionReport.frequencyN} ${prescriptionReport.routeN} ", // title: "${prescriptionReport.itemDescriptionN} Prescription Reminder",
onSuccess: () { // description: "${prescriptionReport.itemDescriptionN} ${prescriptionReport.frequencyN} ${prescriptionReport.routeN} ",
AppToast.showSuccessToast(message: TranslationBase.of(context).reminderSuccess); // onSuccess: () {
}, // 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(0xffD02127), color: Color(0xffD02127),
@ -253,4 +228,25 @@ class PrescriptionDetailsPage extends StatelessWidget {
), ),
); );
} }
setTheNotificatoin(BuildContext context) {
DateTime startDate = DateUtil.convertStringToDate(prescriptionReport.startDate);
DateTime actualDate = DateTime(startDate.year, startDate.month, startDate.day, 8, 0);
if(prescriptionReport?.frequencyNumber==null)
prescriptionReport.frequencyNumber=2;
for (int i = 0; i < prescriptionReport.days; i++) {
for (int j = 0; j < prescriptionReport.frequencyNumber??2; j++) {
if (j != 0) {
actualDate.add(new Duration(hours: 8));
}
LocalNotification.getInstance().scheduleNotification(
scheduledNotificationDateTime: actualDate,
title: "${prescriptionReport.itemDescriptionN} Prescription Reminder",
description: "${prescriptionReport.itemDescriptionN} ${prescriptionReport.frequencyN} ${prescriptionReport.routeN} ");
}
actualDate.add(new Duration(days: i + 1));
}
AppToast.showSuccessToast(message: TranslationBase.of(context).reminderSuccess);
}
} }

@ -10,15 +10,17 @@ final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterL
class LocalNotification { class LocalNotification {
Function(String payload) _onNotificationClick; Function(String payload) _onNotificationClick;
static LocalNotification _instance; static LocalNotification _instance;
static LocalNotification getInstance(){
static LocalNotification getInstance() {
return _instance; return _instance;
} }
static init({Function(String payload) onNotificationClick}){
if(_instance == null){ static init({Function(String payload) onNotificationClick}) {
if (_instance == null) {
_instance = LocalNotification(); _instance = LocalNotification();
_instance._onNotificationClick = onNotificationClick; _instance._onNotificationClick = onNotificationClick;
_instance._initialize(); _instance._initialize();
}else{ } else {
// assert(false,(){ // assert(false,(){
// //TODO fix it // //TODO fix it
// "LocalNotification Already Initialized"; // "LocalNotification Already Initialized";
@ -26,7 +28,7 @@ class LocalNotification {
} }
} }
_initialize(){ _initialize() {
var initializationSettingsAndroid = new AndroidInitializationSettings('app_icon'); var initializationSettingsAndroid = new AndroidInitializationSettings('app_icon');
var initializationSettingsIOS = IOSInitializationSettings(onDidReceiveLocalNotification: null); var initializationSettingsIOS = IOSInitializationSettings(onDidReceiveLocalNotification: null);
var initializationSettings = InitializationSettings(initializationSettingsAndroid, initializationSettingsIOS); var initializationSettings = InitializationSettings(initializationSettingsAndroid, initializationSettingsIOS);
@ -34,11 +36,12 @@ class LocalNotification {
} }
var _random = new Random(); var _random = new Random();
_randomNumber({int from = 100000}){
_randomNumber({int from = 100000}) {
return _random.nextInt(from); return _random.nextInt(from);
} }
_vibrationPattern(){ _vibrationPattern() {
var vibrationPattern = Int64List(4); var vibrationPattern = Int64List(4);
vibrationPattern[0] = 0; vibrationPattern[0] = 0;
vibrationPattern[1] = 1000; vibrationPattern[1] = 1000;
@ -50,10 +53,11 @@ class LocalNotification {
Future showNow({@required String title, @required String subtitle, String payload}) { Future showNow({@required String title, @required String subtitle, String payload}) {
Future.delayed(Duration(seconds: 1)).then((result) async { Future.delayed(Duration(seconds: 1)).then((result) async {
var androidPlatformChannelSpecifics = AndroidNotificationDetails('com.hmg.local_notification', 'HMG', 'HMG', importance: Importance.Max, priority: Priority.High, ticker: 'ticker', vibrationPattern: _vibrationPattern()); var androidPlatformChannelSpecifics =
AndroidNotificationDetails('com.hmg.local_notification', 'HMG', 'HMG', importance: Importance.Max, priority: Priority.High, ticker: 'ticker', vibrationPattern: _vibrationPattern());
var iOSPlatformChannelSpecifics = IOSNotificationDetails(); var iOSPlatformChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics = NotificationDetails(androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics); var platformChannelSpecifics = NotificationDetails(androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.show(_randomNumber(), title, subtitle, platformChannelSpecifics, payload: payload).catchError((err){ await flutterLocalNotificationsPlugin.show(_randomNumber(), title, subtitle, platformChannelSpecifics, payload: payload).catchError((err) {
print(err); print(err);
}); });
}); });
@ -81,11 +85,9 @@ class LocalNotification {
ledOffMs: 500); ledOffMs: 500);
var iOSPlatformChannelSpecifics = IOSNotificationDetails(sound: 'slow_spring_board.aiff'); var iOSPlatformChannelSpecifics = IOSNotificationDetails(sound: 'slow_spring_board.aiff');
///change it to be as ionic // /change it to be as ionic
// var platformChannelSpecifics = NotificationDetails( var platformChannelSpecifics = NotificationDetails(androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
// androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics); await flutterLocalNotificationsPlugin.schedule(0, title, description, scheduledNotificationDateTime, platformChannelSpecifics);
// await flutterLocalNotificationsPlugin.schedule(0, title, description,
// scheduledNotificationDateTime, platformChannelSpecifics);
} }
///Repeat notification every day at approximately 10:00:00 am ///Repeat notification every day at approximately 10:00:00 am

Loading…
Cancel
Save