Updates & fixes

development_v2.5
haroon amjad 2 years ago
parent 3709ebcb32
commit 442a94ac08

@ -408,7 +408,7 @@ var UPDATE_COVID_QUESTIONNAIRE = 'Services/Doctors.svc/REST/COVID19_Questionnar
var CHANNEL = 3; var CHANNEL = 3;
var GENERAL_ID = 'Cs2020@2016\$2958'; var GENERAL_ID = 'Cs2020@2016\$2958';
var IP_ADDRESS = '10.20.10.20'; var IP_ADDRESS = '10.20.10.20';
var VERSION_ID = 9.5; var VERSION_ID = 9.6;
var SETUP_ID = '91877'; var SETUP_ID = '91877';
var LANGUAGE = 2; var LANGUAGE = 2;
// var PATIENT_OUT_SA = 0; // var PATIENT_OUT_SA = 0;
@ -729,7 +729,7 @@ var SEND_DENTAL_APPOINTMENT_INVOICE_EMAIL =
"Services/Notifications.svc/REST/SendInvoiceForDental"; "Services/Notifications.svc/REST/SendInvoiceForDental";
var GET_TAMARA_PLAN = var GET_TAMARA_PLAN =
'https://mdlaboratories.com/tamara/Home/GetInstallments'; 'https://mdlaboratories.com/tamaralive/Home/GetInstallments';
var UPDATE_TAMARA_STATUS = var UPDATE_TAMARA_STATUS =
'Services/PayFort_Serv.svc/REST/Tamara_UpdateRequestStatus'; 'Services/PayFort_Serv.svc/REST/Tamara_UpdateRequestStatus';

@ -1385,9 +1385,9 @@ const Map localizedValues = {
"ancillary-orders": {"en": "Ancillary Orders", "ar": "الطلبات الاضافية"}, "ancillary-orders": {"en": "Ancillary Orders", "ar": "الطلبات الاضافية"},
"onlineCheckInAgreement": { "onlineCheckInAgreement": {
"en": "en":
"The online check-in is for non-life threatening situation. Call the red crescent (number) or go to the nearest emergency department if there are: \n\nsigns of stroke or heart attack \nhistory of seizure or syncope \nthere is limb or life threatening injury \npicture of severe injuries", "The online check-in is for non-life threatening situation. Call the red crescent (997) or go to the nearest emergency department if there are: \n\nsigns of stroke or heart attack \nhistory of seizure or syncope \nthere is limb or life threatening injury \npicture of severe injuries",
"ar": "ar":
"تسجيل الذهاب الى الطوارئ عبر الإنترنت هو فقط للحالات التي لا تهدد الحياة يجب الاتصال بالهلال الأحمر (رقم) أو الذهاب إلى أقرب قسم طوارئ إذا كان هناك علامات السكتة الدماغية أو النوبة القلبية او هناك نوبة تشنج او حالة فقدان الوعي او وجود إصابة تهدد أحد الأطراف او تهدد الحياة او وجود إصابات خطيرة" "تسجيل الذهاب الى الطوارئ عبر الإنترنت هو فقط للحالات التي لا تهدد الحياة يجب الاتصال بالهلال الأحمر (997) أو الذهاب إلى أقرب قسم طوارئ إذا كان هناك علامات السكتة الدماغية أو النوبة القلبية او هناك نوبة تشنج او حالة فقدان الوعي او وجود إصابة تهدد أحد الأطراف او تهدد الحياة او وجود إصابات خطيرة"
}, },
"MRN": {"en": "MRN", "ar": "رقم الملف الطبي"}, "MRN": {"en": "MRN", "ar": "رقم الملف الطبي"},
"appointment-date": {"en": "Appointment Date", "ar": "تاريخ الموعد"}, "appointment-date": {"en": "Appointment Date", "ar": "تاريخ الموعد"},

@ -454,7 +454,8 @@ class BaseAppClient {
url += '?' + queryString; url += '?' + queryString;
} }
// print("URL : $url"); debugPrint("URL : $url");
// print("Body : ${json.encode(body)}");
if (await Utils.checkConnection()) { if (await Utils.checkConnection()) {
final response = await http.get( final response = await http.get(

@ -21,6 +21,8 @@ class TamaraRequestModel {
String longitude; String longitude;
String latitude; String latitude;
String appointmentNo; String appointmentNo;
var serviceID;
var liveServiceID;
TamaraRequestModel( TamaraRequestModel(
{this.merchantReference, {this.merchantReference,
@ -44,7 +46,9 @@ class TamaraRequestModel {
this.deviceToken, this.deviceToken,
this.longitude, this.longitude,
this.latitude, this.latitude,
this.appointmentNo}); this.appointmentNo,
this.serviceID,
this.liveServiceID});
TamaraRequestModel.fromJson(Map<String, dynamic> json) { TamaraRequestModel.fromJson(Map<String, dynamic> json) {
merchantReference = json['Merchant_Reference']; merchantReference = json['Merchant_Reference'];
@ -69,6 +73,8 @@ class TamaraRequestModel {
longitude = json['Longitude']; longitude = json['Longitude'];
latitude = json['Latitude']; latitude = json['Latitude'];
appointmentNo = json['AppointmentNo']; appointmentNo = json['AppointmentNo'];
serviceID = json['Service_ID'];
liveServiceID = json['Live_ServiceID'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -95,6 +101,8 @@ class TamaraRequestModel {
data['Longitude'] = this.longitude; data['Longitude'] = this.longitude;
data['Latitude'] = this.latitude; data['Latitude'] = this.latitude;
data['AppointmentNo'] = this.appointmentNo; data['AppointmentNo'] = this.appointmentNo;
data['Service_ID'] = this.serviceID;
data['Live_ServiceID'] = this.liveServiceID;
return data; return data;
} }
} }

@ -147,6 +147,8 @@ class _BookSuccessState extends State<BookSuccess> {
case 50: case 50:
return _getConfirmAppoButtons(); return _getConfirmAppoButtons();
break; break;
case 90:
return _getQRButtons();
} }
} }
@ -339,6 +341,9 @@ class _BookSuccessState extends State<BookSuccess> {
case 50: case 50:
return _getConfirmAppo(); return _getConfirmAppo();
break; break;
case 90:
return _getQRAppo();
} }
} }
@ -362,6 +367,9 @@ class _BookSuccessState extends State<BookSuccess> {
case 50: case 50:
return 'Confirm LiveCare'; return 'Confirm LiveCare';
break; break;
case 90:
return 'QR Code';
break;
} }
} }
@ -428,6 +436,7 @@ class _BookSuccessState extends State<BookSuccess> {
setOnlineCheckInForAppointment() { setOnlineCheckInForAppointment() {
DoctorsListService service = new DoctorsListService(); DoctorsListService service = new DoctorsListService();
GifLoaderDialogUtils.showMyDialog(context);
service.setOnlineCheckInForAppointment(widget.patientShareResponse.appointmentNo.toString(), widget.patientShareResponse.projectID, context).then((res) { service.setOnlineCheckInForAppointment(widget.patientShareResponse.appointmentNo.toString(), widget.patientShareResponse.projectID, context).then((res) {
AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList(); AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList();
appo.clinicID = widget.docObject.clinicID; appo.clinicID = widget.docObject.clinicID;
@ -438,8 +447,9 @@ class _BookSuccessState extends State<BookSuccess> {
appo.doctorID = widget.patientShareResponse.doctorID; appo.doctorID = widget.patientShareResponse.doctorID;
appo.appointmentDate = widget.patientShareResponse.appointmentDate; appo.appointmentDate = widget.patientShareResponse.appointmentDate;
insertLiveCareVIDARequest(appo, isMoveHome: false); insertLiveCareVIDARequest(appo, isMoveHome: false);
GifLoaderDialogUtils.hideDialog(context);
}).catchError((err) { }).catchError((err) {
// GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: err); AppToast.showErrorToast(message: err);
print(err); print(err);
}); });
@ -587,7 +597,7 @@ class _BookSuccessState extends State<BookSuccess> {
authenticatedUser, authenticatedUser,
widget.browser, widget.browser,
widget.patientShareResponse.isLiveCareAppointment, widget.patientShareResponse.isLiveCareAppointment,
widget.patientShareResponse.serviceID.toString(), "2",
"", "",
widget.patientShareResponse.appointmentDate, widget.patientShareResponse.appointmentDate,
widget.patientShareResponse.appointmentNo, widget.patientShareResponse.appointmentNo,

@ -45,7 +45,7 @@ class _QRCodeState extends State<QRCode> {
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
_bytes = base64.decode(widget.appoQR.split(',').last); // _bytes = base64.decode(widget.appoQR.split(',').last);
widget.authUser = new AuthenticatedUser(); widget.authUser = new AuthenticatedUser();
FlutterNfcKit.nfcAvailability.then((value) { FlutterNfcKit.nfcAvailability.then((value) {
@ -194,16 +194,16 @@ class _QRCodeState extends State<QRCode> {
], ],
), ),
), ),
Container( // Container(
margin: EdgeInsets.only(left: 20.0, right: 20.0, top: 15.0), // margin: EdgeInsets.only(left: 20.0, right: 20.0, top: 15.0),
alignment: Alignment.bottomCenter, // alignment: Alignment.bottomCenter,
child: Column( // child: Column(
mainAxisAlignment: MainAxisAlignment.end, // mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[ // children: <Widget>[
DefaultButton(TranslationBase.of(context).sendEmail.toUpperCase(), () => {sendEmail()}) // DefaultButton(TranslationBase.of(context).sendEmail.toUpperCase(), () => {sendEmail()})
], // ],
), // ),
), // ),
], ],
), ),
), ),

@ -807,7 +807,7 @@ class _ToDoState extends State<ToDo> with SingleTickerProviderStateMixin {
} }
getAppoQR(context, AppoitmentAllHistoryResultList appo) { getAppoQR(context, AppoitmentAllHistoryResultList appo) {
GifLoaderDialogUtils.showMyDialog(context); // GifLoaderDialogUtils.showMyDialog(context);
PatientShareResponse patientShareResponse = new PatientShareResponse(); PatientShareResponse patientShareResponse = new PatientShareResponse();
patientShareResponse.doctorNameObj = appo.doctorNameObj; patientShareResponse.doctorNameObj = appo.doctorNameObj;
@ -819,15 +819,15 @@ class _ToDoState extends State<ToDo> with SingleTickerProviderStateMixin {
patientShareResponse.projectID = appo.projectID; patientShareResponse.projectID = appo.projectID;
patientShareResponse.isFollowup = appo.isFollowup; patientShareResponse.isFollowup = appo.isFollowup;
DoctorsListService service = new DoctorsListService(); // DoctorsListService service = new DoctorsListService();
service.generateAppointmentQR(patientShareResponse, context).then((res) { // service.generateAppointmentQR(patientShareResponse, context).then((res) {
GifLoaderDialogUtils.hideDialog(context); // GifLoaderDialogUtils.hideDialog(context);
navigateToQR(context, res['AppointmentQR'], patientShareResponse, appo); navigateToQR(context, "", patientShareResponse, appo);
projectViewModel.analytics.todoList.to_do_list_check_in(appo); projectViewModel.analytics.todoList.to_do_list_check_in(appo);
}).catchError((err) { // }).catchError((err) {
GifLoaderDialogUtils.hideDialog(context); // GifLoaderDialogUtils.hideDialog(context);
print(err); // print(err);
}); // });
} }
Future navigateToQR(context, String appoQR, PatientShareResponse patientShareResponse, AppoitmentAllHistoryResultList appintment) async { Future navigateToQR(context, String appoQR, PatientShareResponse patientShareResponse, AppoitmentAllHistoryResultList appintment) async {

@ -228,7 +228,7 @@ class _Register extends State<Register> {
TextField( TextField(
enabled: isEnable, enabled: isEnable,
scrollPadding: EdgeInsets.zero, scrollPadding: EdgeInsets.zero,
keyboardType: isNumber ? TextInputType.number : TextInputType.datetime, keyboardType: isNumber ? TextInputType.numberWithOptions(signed: true) : TextInputType.datetime,
controller: _controller, controller: _controller,
onChanged: (value) => {validateForm()}, onChanged: (value) => {validateForm()},
style: TextStyle( style: TextStyle(

@ -28,7 +28,8 @@ var _InAppBrowserOptions = InAppBrowserClassOptions(
applePayAPIEnabled: true, applePayAPIEnabled: true,
)), )),
crossPlatform: InAppBrowserOptions(hideUrlBar: true, toolbarTopBackgroundColor: Colors.black), crossPlatform: InAppBrowserOptions(hideUrlBar: true, toolbarTopBackgroundColor: Colors.black),
ios: IOSInAppBrowserOptions(hideToolbarBottom: true, toolbarBottomBackgroundColor: Colors.white, presentationStyle: IOSUIModalPresentationStyle.OVER_FULL_SCREEN)); android: AndroidInAppBrowserOptions(),
ios: IOSInAppBrowserOptions(hideToolbarBottom: true, toolbarBottomBackgroundColor: Colors.white, closeButtonColor: Colors.white, presentationStyle: IOSUIModalPresentationStyle.OVER_FULL_SCREEN));
class MyInAppBrowser extends InAppBrowser { class MyInAppBrowser extends InAppBrowser {
_PAYMENT_TYPE paymentType; _PAYMENT_TYPE paymentType;
@ -223,6 +224,8 @@ class MyInAppBrowser extends InAppBrowser {
tamaraRequestModel.deviceToken = await AppSharedPreferences().getString(PUSH_TOKEN); tamaraRequestModel.deviceToken = await AppSharedPreferences().getString(PUSH_TOKEN);
tamaraRequestModel.latitude = this.lat.toString(); tamaraRequestModel.latitude = this.lat.toString();
tamaraRequestModel.longitude = this.long.toString(); tamaraRequestModel.longitude = this.long.toString();
tamaraRequestModel.serviceID = servID;
tamaraRequestModel.liveServiceID = LiveServID;
service.tamaraInsertRequest(tamaraRequestModel, context).then((res) { service.tamaraInsertRequest(tamaraRequestModel, context).then((res) {
if (context != null) GifLoaderDialogUtils.hideDialog(context); if (context != null) GifLoaderDialogUtils.hideDialog(context);

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_nfc_kit/flutter_nfc_kit.dart'; import 'package:flutter_nfc_kit/flutter_nfc_kit.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
@ -6,7 +8,7 @@ void showNfcReader(BuildContext context, {Function onNcfScan, VoidCallback onCan
showModalBottomSheet( showModalBottomSheet(
context: context, context: context,
enableDrag: false, enableDrag: false,
isDismissible: false, isDismissible: true,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(topLeft: Radius.circular(12), topRight: Radius.circular(12)), borderRadius: BorderRadius.only(topLeft: Radius.circular(12), topRight: Radius.circular(12)),
), ),
@ -57,8 +59,9 @@ class _NfcLayoutState extends State<NfcLayout> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
// return SizedBox();
(mainWidget == null && !_reading) ? mainWidget = scanNfc() : mainWidget = doneNfc(); (mainWidget == null && !_reading) ? mainWidget = scanNfc() : mainWidget = doneNfc();
return AnimatedSwitcher(duration: Duration(milliseconds: 500), child: mainWidget); return Platform.isAndroid ? AnimatedSwitcher(duration: Duration(milliseconds: 500), child: mainWidget) : SizedBox.shrink();
} }
Widget scanNfc() { Widget scanNfc() {

@ -1,7 +1,7 @@
name: diplomaticquarterapp name: diplomaticquarterapp
description: A new Flutter application. description: A new Flutter application.
version: 4.5.001+4050001 version: 4.5.004+4050004
environment: environment:
sdk: ">=2.7.0 <3.0.0" sdk: ">=2.7.0 <3.0.0"

Loading…
Cancel
Save