Merge branch 'diplomatic-quarter-live' of https://gitlab.com/Cloud_Solution/diplomatic-quarter into sultan-patientapp

merge-requests/140/head
Sultan Khan 4 years ago
commit 909401cc7e

@ -7,8 +7,8 @@ import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
const MAX_SMALL_SCREEN = 660;
//const BASE_URL = 'https://uat.hmgwebservices.com/';
const BASE_URL = 'https://hmgwebservices.com/';
const BASE_URL = 'https://uat.hmgwebservices.com/';
// const BASE_URL = 'https://hmgwebservices.com/';
const GET_PROJECT = 'Services/Lists.svc/REST/GetProject';
///Doctor

@ -1034,5 +1034,18 @@ const Map localizedValues = {
"in-patient": {
"en": "In Patient",
"ar": "تنويم"
}
},
"report": {
"en": "Radiology Report",
"ar": "تقرير الاشعة"
},
"open-rad": {
"en": "Open Image",
"ar": "فتح صور الاشعة"
},
"send-copy": {
"en": "Email the Report",
"ar": "أرسل التقرير"
},
};

@ -140,7 +140,7 @@ class BaseAppClient {
parsed['SMSLoginRequired'] == true) {
onSuccess(parsed, statusCode);
} else if (!parsed['IsAuthenticated']) {
await logout();
// await logout();
//helpers.showErrorToast('Your session expired Please login agian');
} else {

@ -1,12 +1,18 @@
import 'dart:ui';
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
@ -21,6 +27,7 @@ import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:provider/provider.dart';
class MyFamily extends StatefulWidget {
final bool isAppbarVisible;
@ -35,15 +42,23 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
var userID;
TabController _tabController;
int _tabIndex = 0;
AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>();
AppointmentRateViewModel appointmentRateViewModel =
locator<AppointmentRateViewModel>();
ProjectViewModel projectViewModel;
AuthenticatedUser user;
@override
void initState() {
_tabController = new TabController(length: 2, vsync: this, initialIndex: 0);
checkUserData();
super.initState();
}
bool expandFlag = false;
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return AppScaffold(
appBarTitle: TranslationBase.of(context).myFamilyFiles,
isShowAppBar: widget.isAppbarVisible,
@ -117,14 +132,14 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
body: Column(
children: <Widget>[
Expanded(
child: TabBarView(
child: (user != null && projectViewModel.isLogin) ? TabBarView(
physics: BouncingScrollPhysics(),
controller: _tabController,
children: [
myFamilyDetails(context),
myFamilyRequest(context)
],
),
) : Container(child:AppText('Loading..')),
)
],
),
@ -540,12 +555,14 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
}
Future<GetAllSharedRecordsByStatusResponse> getFamilyFiles() async {
if (await sharedPref.getObject(FAMILY_FILE) != null) {
// print(await sharedPref.getObject(FAMILY_FILE));
return Future.value(GetAllSharedRecordsByStatusResponse.fromJson(
await sharedPref.getObject(FAMILY_FILE)));
} else {
return familyFileProvider.getSharedRecordByStatus();
if (user != null) {
if (await sharedPref.getObject(FAMILY_FILE) != null) {
// print(await sharedPref.getObject(FAMILY_FILE));
return Future.value(GetAllSharedRecordsByStatusResponse.fromJson(
await sharedPref.getObject(FAMILY_FILE)));
} else {
return familyFileProvider.getSharedRecordByStatus();
}
}
}
@ -592,20 +609,55 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
}
switchUser(user, context) {
GifLoaderDialogUtils.showMyDialog(context);
GifLoaderDialogUtils.showMyDialog(context);
// this
// .familyFileProvider
// .silentLoggin(user)
// .then((value) => loginAfter(value, context));
// Utils.showProgressDialog(context);
this
.familyFileProvider
.silentLoggin(user)
.then((value) => loginAfter(value, context));
.silentLoggin(user is AuthenticatedUser ? null : user,
mainUser: user is AuthenticatedUser)
.then((value) => loginAfter(value, context))
.catchError((err) {
print(err);
AppToast.showErrorToast(message: err);
Navigator.of(context).pop();
});
}
loginAfter(result, context) async{
GifLoaderDialogUtils.hideDialog(context);
var familyFile = await sharedPref.getObject(FAMILY_FILE);
// var familyFile = await sharedPref.getObject(FAMILY_FILE);
// var mainUser = await sharedPref.getObject(MAIN_USER);
// result = CheckActivationCode.fromJson(result);
// this.sharedPref.clear();
// this.sharedPref.setObject(FAMILY_FILE, familyFile);
// this.sharedPref.setObject(MAIN_USER, mainUser);
// result.list.isFamily = true;
// this.sharedPref.setObject(USER_PROFILE, result.list);
// this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID);
// this.sharedPref.setString(TOKEN, result.authenticationTokenID);
//
// authenticatedUserObject.isLogin = true;
// appointmentRateViewModel.isLogin = true;
// projectViewModel.isLogin = true;
// //this.checkIfUserAgreedBefore(result),
// Navigator.of(context).pushNamed(
// HOME,
// );
result = CheckActivationCode.fromJson(result);
var familyFile = await sharedPref.getObject(FAMILY_FILE);
var mainUser = await sharedPref.getObject(MAIN_USER);
this.sharedPref.clear();
this.sharedPref.setObject(FAMILY_FILE, familyFile);
if (mainUser["PatientID"] != result.list.patientID) {
result.list.isFamily = true;
}
this.sharedPref.setObject(MAIN_USER, mainUser);
this.sharedPref.setObject(USER_PROFILE, result.list);
this.sharedPref.setObject(FAMILY_FILE, familyFile);
this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID);
this.sharedPref.setString(TOKEN, result.authenticationTokenID);
//this.checkIfUserAgreedBefore(result),
@ -634,4 +686,17 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
refreshFamily(context)
});
}
checkUserData() async{
if (await this.sharedPref.getObject(USER_PROFILE) != null) {
var data = AuthenticatedUser.fromJson(
await this.sharedPref.getObject(USER_PROFILE));
var data2 = AuthenticatedUser.fromJson(
await this.sharedPref.getObject(MAIN_USER));
print(data2);
setState(() {
this.user = data;
});
}
}
}

@ -74,7 +74,7 @@ class _FeedbackHomePageState extends State<FeedbackHomePage>
controller: _tabController,
indicatorWeight: 5.0,
indicatorSize: TabBarIndicatorSize.label,
indicatorColor: Colors.red[800],
indicatorColor: Theme.of(context).primaryColor,
labelColor: Theme.of(context).primaryColor,
labelPadding:
EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0),

@ -514,7 +514,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
leading: Radio(
value: MessageType.ComplaintOnAnAppointment,
groupValue: model.messageTypeDialog,
activeColor: Colors.red[800],
activeColor: Theme.of(context).primaryColor,
onChanged: (MessageType value) =>
model.setMessageDialogType(value),
),
@ -538,7 +538,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
leading: Radio(
value: MessageType.ComplaintWithoutAppointment,
groupValue: model.messageTypeDialog,
activeColor: Colors.red[800],
activeColor: Theme.of(context).primaryColor,
onChanged: (MessageType value) =>
model.setMessageDialogType(value),
),
@ -562,7 +562,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
leading: Radio(
value: MessageType.Question,
groupValue: model.messageTypeDialog,
activeColor: Colors.red[800],
activeColor: Theme.of(context).primaryColor,
onChanged: (MessageType value) =>
model.setMessageDialogType(value),
),
@ -586,7 +586,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
leading: Radio(
value: MessageType.Compliment,
groupValue: model.messageTypeDialog,
activeColor: Colors.red[800],
activeColor: Theme.of(context).primaryColor,
onChanged: (MessageType value) =>
model.setMessageDialogType(value),
),
@ -610,7 +610,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
leading: Radio(
value: MessageType.Suggestion,
groupValue: model.messageTypeDialog,
activeColor: Colors.red[800],
activeColor: Theme.of(context).primaryColor,
onChanged: (MessageType value) =>
model.setMessageDialogType(value),
),
@ -644,7 +644,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
child: Center(
child: Texts(
TranslationBase.of(context).cancel,
color: Colors.red,
color: Theme.of(context).primaryColor,
),
),
),

@ -43,12 +43,12 @@ class _HomePageState extends State<HomePage> {
ToDoCountProviderModel toDoProvider;
@override
void initState() {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
getToDoCount();
});
super.initState();
}
// void initState() {
// WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
// getToDoCount();
// });
// super.initState();
// }
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/radiology/final_radiology.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/radiology_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
@ -21,7 +22,7 @@ class RadiologyDetailsPage extends StatelessWidget {
lineItem: finalRadiology.invoiceLineItemNo,
invoiceNo: finalRadiology.invoiceNo),
builder: (_, model, widget) => AppScaffold(
appBarTitle: 'Radiology Report',
appBarTitle: TranslationBase.of(context).report,
isShowAppBar: true,
baseViewModel: model,
body: SingleChildScrollView(
@ -45,7 +46,7 @@ class RadiologyDetailsPage extends StatelessWidget {
onTap: () {
launch(model.radImageURL);
},
label: 'Open Radio Image',
label: TranslationBase.of(context).openRad,
backgroundColor: Colors.grey[800],
),
),
@ -54,9 +55,9 @@ class RadiologyDetailsPage extends StatelessWidget {
child: Button(
onTap: () => model.sendRadReportEmail(
finalRadiology: finalRadiology),
label: 'Send Copy',
label: TranslationBase.of(context).sendCopyRad,
loading: model.state == ViewState.BusyLocal,
backgroundColor: Colors.red[800],
backgroundColor: Theme.of(context).primaryColor,
),
)
],

@ -38,7 +38,7 @@ class RadiologyHomePage extends StatelessWidget {
leading: Radio(
value: FilterType.Clinic,
groupValue: model.filterType,
activeColor: Colors.red[800],
activeColor: Theme.of(context).primaryColor,
onChanged: (FilterType value) {
model.setFilterType(value);
},
@ -56,7 +56,7 @@ class RadiologyHomePage extends StatelessWidget {
leading: Radio(
value: FilterType.Hospital,
groupValue: model.filterType,
activeColor: Colors.red[800],
activeColor: Theme.of(context).primaryColor,
onChanged: (FilterType value) {
model.setFilterType(value);
},

@ -37,8 +37,10 @@ const String SENT_REQUEST_URL =
'Services/Authentication.svc/REST/GetAllSharedRecordsByStatus';
const String RECEVIED_REQUEST_URL =
'Services/Authentication.svc/REST/GetAllPendingRecordsByResponseId';
const ACCEPT_REJECT_FAMILY = 'Services/Authentication.svc/REST/Update_FileStatus';
const DEACTIVATE_FAMILY = 'Services/Authentication.svc/REST/DeactivateRequestByRensponse';
const ACCEPT_REJECT_FAMILY =
'Services/Authentication.svc/REST/Update_FileStatus';
const DEACTIVATE_FAMILY =
'Services/Authentication.svc/REST/DeactivateRequestByRensponse';
class FamilyFilesProvider with ChangeNotifier {
bool isLogin = false;
@ -49,7 +51,9 @@ class FamilyFilesProvider with ChangeNotifier {
try {
dynamic localRes;
var request = GetAllSharedRecordsByStatusReq();
var result = await sharedPref.getObject(MAIN_USER);
request.status = 0;
request.patientID = result["PatientID"];
await new BaseAppClient().post(GET_SHARED_RECORD_BY_STATUS,
onSuccess: (dynamic response, int statusCode) {
localRes = response;
@ -57,7 +61,7 @@ class FamilyFilesProvider with ChangeNotifier {
AppToast.showErrorToast(message: error);
throw error;
}, body: request.toJson());
sharedPref.setObject(FAMILY_FILE, localRes);
return Future.value(
GetAllSharedRecordsByStatusResponse.fromJson(localRes));
@ -80,7 +84,7 @@ class FamilyFilesProvider with ChangeNotifier {
return Future.error(error);
}, body: request);
if (localRes != null) {
sharedPref.setObject(FAMILY_FILE, localRes);
// sharedPref.setObject(FAMILY_FILE, localRes);
allSharedRecordsByStatusResponse =
GetAllSharedRecordsByStatusResponse.fromJson(localRes);
return Future.value(allSharedRecordsByStatusResponse);
@ -105,7 +109,7 @@ class FamilyFilesProvider with ChangeNotifier {
//AppToast.showErrorToast(message: error);
//throw error;
}, body: request);
sharedPref.setObject(FAMILY_FILE, localRes);
//sharedPref.setObject(FAMILY_FILE, localRes);
return Future.value(
GetAllSharedRecordsByStatusResponse.fromJson(localRes));
} catch (error) {
@ -251,9 +255,9 @@ class FamilyFilesProvider with ChangeNotifier {
Future<dynamic> silentLoggin(GetAllSharedRecordsByStatusList switchUser,
{onSuccess, mainUser}) async {
Map<String, dynamic> request = {};
if(mainUser ==true){
if (mainUser == true) {
var currentUser =
AuthenticatedUser.fromJson(await sharedPref.getObject(MAIN_USER));
AuthenticatedUser.fromJson(await sharedPref.getObject(MAIN_USER));
//const request = new SwitchUserRequest();
request['LogInTokenID'] = '';
request['PatientOutSA'] = currentUser.outSA; //? 1 : 0;
@ -267,9 +271,9 @@ class FamilyFilesProvider with ChangeNotifier {
request['ZipCode'] = currentUser.outSA == 1 ? "971" : "966";
request['activationCode'] = '0000';
request['isRegister'] = false;
}else {
} else {
var currentUser =
AuthenticatedUser.fromJson(await sharedPref.getObject(USER_PROFILE));
AuthenticatedUser.fromJson(await sharedPref.getObject(USER_PROFILE));
//const request = new SwitchUserRequest();
request['LogInTokenID'] = '';
@ -309,11 +313,11 @@ class FamilyFilesProvider with ChangeNotifier {
await new BaseAppClient().post(ACCEPT_REJECT_FAMILY,
onSuccess: (dynamic response, int statusCode) {
localRes = response;
}, onFailure: (String error, int statusCode) {
AppToast.showErrorToast(message: error);
throw error;
}, body: request);
localRes = response;
}, onFailure: (String error, int statusCode) {
AppToast.showErrorToast(message: error);
throw error;
}, body: request);
return Future.value(localRes);
} catch (error) {
@ -321,17 +325,18 @@ class FamilyFilesProvider with ChangeNotifier {
throw error;
}
}
Future<dynamic> deactivateFamily(request) async {
try {
dynamic localRes;
await new BaseAppClient().post(DEACTIVATE_FAMILY,
onSuccess: (dynamic response, int statusCode) {
localRes = response;
}, onFailure: (String error, int statusCode) {
AppToast.showErrorToast(message: error);
throw error;
}, body: request);
localRes = response;
}, onFailure: (String error, int statusCode) {
AppToast.showErrorToast(message: error);
throw error;
}, body: request);
return Future.value(localRes);
} catch (error) {
@ -339,6 +344,4 @@ class FamilyFilesProvider with ChangeNotifier {
throw error;
}
}
}

@ -866,6 +866,9 @@ String get fileno => localizedValues['fileno'][locale.languageCode];
String get range => localizedValues['range'][locale.languageCode];
String get outpatient => localizedValues['out-patient'][locale.languageCode];
String get inPatient => localizedValues['in-patient'][locale.languageCode];
String get report => localizedValues['report'][locale.languageCode];
String get openRad => localizedValues['open-rad'][locale.languageCode];
String get sendCopyRad => localizedValues['send-copy'][locale.languageCode];
}

@ -155,7 +155,7 @@ class _AppDrawerState extends State<AppDrawer> {
? Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
InkWell(
user.isFamily ==null || user.isFamily ==false ? InkWell(
child: DrawerItem(
TranslationBase.of(context).family,
Icons.group,
@ -169,7 +169,7 @@ class _AppDrawerState extends State<AppDrawer> {
MY_FAMILIY,
);
},
),
) : SizedBox(),
FutureBuilder(
future: getFamilyFiles(), // async work
builder: (BuildContext context,

Loading…
Cancel
Save