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

# Conflicts:
#	lib/config/localized_values.dart
#	lib/uitl/translations_delegate_base.dart
merge-update-with-lab-changes
Sultan Khan 5 years ago
commit 0f80224016

Binary file not shown.

@ -0,0 +1,9 @@
{\rtf1\ansi\ansicpg1252\cocoartf2513
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
\f0\fs24 \cf0 keyPassword=HmGsa123\
storePassword=HmGsa123}

@ -0,0 +1,4 @@
storePassword=HmGsa123
keyPassword=HmGsa123
keyAlias=DQKey
storeFile=DQKey.jks

@ -105,6 +105,12 @@ const GET_CITIES_REQUEST = 'Services/Lists.svc/REST/GetAllCities';
const GET_BLOOD_REQUEST = const GET_BLOOD_REQUEST =
'services/PatientVarification.svc/REST/BloodDonation_GetBloodGroupDetails'; 'services/PatientVarification.svc/REST/BloodDonation_GetBloodGroupDetails';
const SAVE_BLOOD_REQUEST =
'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType';
const GET_BLOOD_AGREEMENT = 'Services/PatientVarification.svc/REST/CheckUserAgreementForBloodDonation';
const SAVE_BLOOD_AGREEMENT = 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation';
///Reports ///Reports
const REPORTS = 'Services/Doctors.svc/REST/GetPatientMedicalReportStatusInfo'; const REPORTS = 'Services/Doctors.svc/REST/GetPatientMedicalReportStatusInfo';
const INSERT_REQUEST_FOR_MEDICAL_REPORT = const INSERT_REQUEST_FOR_MEDICAL_REPORT =

@ -1010,5 +1010,29 @@ const Map localizedValues = {
"view-terms": { "view-terms": {
"en": "To view the terms and conditions", "en": "To view the terms and conditions",
"ar": "عرض الشروط والأحكام" "ar": "عرض الشروط والأحكام"
},
"InvoiceNo": {"en": " Invoice No", "ar": "رقم الفاتورة"},
"SpecialResult": {"en": " Special Result", "ar": "نتيجة خاصة"},
"GeneralResult": {"en": "General Result", "ar": "نتيجة عامة"},
"show-more-btn": {
"en": "Flow Chart",
"ar": "النتائج التراكمية"
},
"value": {
"en": "Value",
"ar": "القيمة"
},
"range": {
"en": "Range",
"ar": "المدى"
},
"out-patient": {
"en": "Out Patient",
"ar": "عيادات خارجية"
},
"in-patient": {
"en": "In Patient",
"ar": "تنويم"
} }
}; };

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/blooddonation/get_all_cities.dart'; import 'package:diplomaticquarterapp/core/model/blooddonation/get_all_cities.dart';
import '../base_service.dart'; import '../base_service.dart';
@ -25,4 +26,52 @@ class BloodDonationService extends BaseService {
super.error = error; super.error = error;
}, body: body); }, body: body);
} }
Future bloodDonationSave(request) async {
var localRes;
try {
await baseAppClient.post(SAVE_BLOOD_REQUEST,
onSuccess: (dynamic response, int statusCode) {
localRes = response;
}, onFailure: (String error, int statusCode) {
localRes = error;
return Future.value(error);
}, body: request);
return Future.value(localRes);
} catch (error) {
throw error;
}
}
Future getAgreement() async {
var localRes;
try {
await baseAppClient.post(GET_BLOOD_AGREEMENT,
onSuccess: (dynamic response, int statusCode) {
localRes = response;
}, onFailure: (String error, int statusCode) {
localRes = error;
return Future.value(error);
}, body: {});
return Future.value(localRes);
} catch (error) {
throw error;
}
}
Future saveAgreement(request) async {
var localRes;
try {
await baseAppClient.post(SAVE_BLOOD_AGREEMENT,
onSuccess: (dynamic response, int statusCode) {
localRes = response;
}, onFailure: (String error, int statusCode) {
localRes = error;
return Future.value(error);
}, body: request);
return Future.value(localRes);
} catch (error) {
throw error;
}
}
} }

@ -2,6 +2,7 @@ import 'dart:convert';
import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/medical/vital_sign_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
@ -23,6 +24,7 @@ AppSharedPreferences sharedPref = new AppSharedPreferences();
/// ///
AuthenticatedUserObject authenticatedUserObject = AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>(); locator<AuthenticatedUserObject>();
VitalSignService _vitalSignService = locator<VitalSignService>();
class BaseAppClient { class BaseAppClient {
post(String endPoint, post(String endPoint,
@ -165,6 +167,8 @@ class BaseAppClient {
await sharedPref.remove(LOGIN_TOKEN_ID); await sharedPref.remove(LOGIN_TOKEN_ID);
await authenticatedUserObject.getUser(); await authenticatedUserObject.getUser();
Provider.of<ProjectViewModel>(AppGlobal.context, listen: false).isLogin = false; Provider.of<ProjectViewModel>(AppGlobal.context, listen: false).isLogin = false;
_vitalSignService.weightKg ="";
_vitalSignService.heightCm="";
Navigator.of(AppGlobal.context).pushReplacementNamed(HOME); Navigator.of(AppGlobal.context).pushReplacementNamed(HOME);
} }

@ -163,4 +163,5 @@ class MyBalanceViewModel extends BaseViewModel {
setState(ViewState.Idle); setState(ViewState.Idle);
} }
} }
} }

@ -7,8 +7,10 @@ import 'package:diplomaticquarterapp/core/model/blooddonation/get_all_cities.dar
import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart'; import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/patient_info.dart'; import 'package:diplomaticquarterapp/core/model/my_balance/patient_info.dart';
import 'package:diplomaticquarterapp/core/service/blood/blood_details_servies.dart'; import 'package:diplomaticquarterapp/core/service/blood/blood_details_servies.dart';
import 'package:diplomaticquarterapp/core/service/blood/blood_donation_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/blooddonation/blood_details_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/blooddonation/blood_details_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart'; import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/pages/Blood/user_agreement_page.dart'; import 'package:diplomaticquarterapp/pages/Blood/user_agreement_page.dart';
@ -18,10 +20,12 @@ import 'package:diplomaticquarterapp/pages/medical/balance/dialogs/SelectCiteisD
import 'package:diplomaticquarterapp/pages/medical/balance/dialogs/SelectHospitalDialog.dart'; import 'package:diplomaticquarterapp/pages/medical/balance/dialogs/SelectHospitalDialog.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.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/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.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/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@ -55,8 +59,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
Gender gender = Gender.Male;//Gender.NON; Gender gender = Gender.Male;//Gender.NON;
Blood blood = Blood.Aminus;//Blood.NON; Blood blood = Blood.Aminus;//Blood.NON;
//HospitalsModel _selectedHospital; //HospitalsModel _selectedHospital;
CitiesModel _selectedHospital; var _selectedHospital = new CitiesModel();
String amount = ""; String amount = "";
String email; String email;
PatientInfo _selectedPatientInfo; PatientInfo _selectedPatientInfo;
@ -65,12 +68,14 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
AdvanceModel advanceModel = AdvanceModel(); AdvanceModel advanceModel = AdvanceModel();
List_BloodGroupDetailsModel bloodDetails=List_BloodGroupDetailsModel(); List_BloodGroupDetailsModel bloodDetails=List_BloodGroupDetailsModel();
AppSharedPreferences sharedPref = AppSharedPreferences(); AppSharedPreferences sharedPref = AppSharedPreferences();
BloodDonationService _bloodDonationService = locator<BloodDonationService>();
AuthenticatedUser authUser; AuthenticatedUser authUser;
var checkedValue = false; var checkedValue = false;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
getAuthUser(); getAuthUser();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -134,37 +139,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
), ),
), ),
), ),
// if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
// SizedBox(
// height: 12,
// ),
// if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
// InkWell(
// onTap: () {
// model.getFamilyFiles().then((value) {
// confirmSelectFamilyDialog(model
// .getAllSharedRecordsByStatusResponse
// .getAllSharedRecordsByStatusList);
// }).showProgressBar(
// text: "Loading",
// backgroundColor: Colors.blue.withOpacity(0.6));
// },
// child: Container(
// padding: EdgeInsets.all(12),
// width: double.infinity,
// height: 65,
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(12),
// color: Colors.white),
// child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// Texts(getFamilyMembersName()),
// Icon(Icons.arrow_drop_down)
// ],
// ),
// ),
// ),
SizedBox( SizedBox(
height: 12, height: 12,
), ),
@ -233,7 +208,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
width: 10, width: 10,
), ),
Text( Text(
'I agree to the terms and conditions ', TranslationBase.of(context).iAgreeToTheTermsAndConditions,
style: Theme.of(context).textTheme.subtitle1.copyWith(color: checkedValue? Colors.red : Colors.black), style: Theme.of(context).textTheme.subtitle1.copyWith(color: checkedValue? Colors.red : Colors.black),
), ),
], ],
@ -267,7 +242,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
image: Image.asset( image: Image.asset(
'assets/images/BloodChrt_EN.png'), 'assets/images/BloodChrt_EN.png'),
buttonCancelText: buttonCancelText:
Text('cancel'), Text(TranslationBase.of(context).cancel),
buttonCancelColor: buttonCancelColor:
Colors.grey, Colors.grey,
onlyCancelButton: true, onlyCancelButton: true,
@ -298,10 +273,20 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
child: SecondaryButton( child: SecondaryButton(
textColor: Colors.white, textColor: Colors.white,
color: checkedValue== false ?Colors.white24:Color.fromRGBO(63, 72, 74, 1,), color: checkedValue== false ?Colors.white24:Color.fromRGBO(63, 72, 74, 1,),
label: "Save", label: TranslationBase.of(context).save,
// //
onTap: (){ onTap: (){
Map<String, dynamic> request = Map();
request["BloodGroup"] = getBlood();//'O-';
request['CellNumber'] =authUser.mobileNumber;//m'537503378';
request['City'] = _selectedHospital.description; //'Riyadh';
request['CityCode'] =_selectedHospital.iD ;
request['Gender']= gender.index ==0 ? 1 : 2;
request['NationalID'] = authUser.nationalityID;
request['ZipCode'] = authUser.outSA ==1 ? '971' :'966';
saveBloodDonation(request);
bloodDetails.city=_selectedHospital.toString(); bloodDetails.city=_selectedHospital.toString();
// bloodDetails. // bloodDetails.
@ -543,11 +528,15 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
} }
String getHospitalName() { String getHospitalName() {
if (_selectedHospital != null) if (_selectedHospital.description !=null)
return _selectedHospital.description; return _selectedHospital.description;
else else
return {
"Riyadh"; _selectedHospital.iD =1;
_selectedHospital.description='Riyadh';
return _selectedHospital.description;
}
// "Riyadh";
// return List_BloodGroupDetailsModel.fromJson(0).city.toString();//"Select City";//TranslationBase.of(context).selectHospital; // return List_BloodGroupDetailsModel.fromJson(0).city.toString();//"Select City";//TranslationBase.of(context).selectHospital;
} }
@ -562,6 +551,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
if (await this.sharedPref.getObject(USER_PROFILE) != null) { if (await this.sharedPref.getObject(USER_PROFILE) != null) {
var data = AuthenticatedUser.fromJson( var data = AuthenticatedUser.fromJson(
await this.sharedPref.getObject(USER_PROFILE)); await this.sharedPref.getObject(USER_PROFILE));
getBloodDonationAgreement();
setState(() { setState(() {
authUser = data; authUser = data;
}); });
@ -577,6 +567,28 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
//================ //================
saveBloodDonation(request){
GifLoaderDialogUtils.showMyDialog(context);
_bloodDonationService.bloodDonationSave(request).then((result)=>
{
GifLoaderDialogUtils.hideDialog(context),
AppToast.showSuccessToast(message: result['ErrorEndUserMessage']),
saveBloodDonationAgreement()
});
}
getBloodDonationAgreement(){
_bloodDonationService.getAgreement().then((result)=> {
checkedValue = result['IsAgreed']
});
}
saveBloodDonationAgreement(){
Map<String, dynamic> request = Map();
request['IsAgreed'] = checkedValue;
_bloodDonationService.saveAgreement(request).then((result)=> {
});
}
} }

@ -203,6 +203,7 @@ class _AppointmentDetailsState extends State<AppointmentDetails>
MaterialPageRoute( MaterialPageRoute(
builder: (context) => BookConfirm( builder: (context) => BookConfirm(
doctor: getDoctorObject(), doctor: getDoctorObject(),
isLiveCareAppointment: widget.appo.isLiveCareAppointment,
selectedDate: DocAvailableAppointments.selectedDate, selectedDate: DocAvailableAppointments.selectedDate,
selectedTime: DocAvailableAppointments.selectedTime))); selectedTime: DocAvailableAppointments.selectedTime)));
} }

@ -42,13 +42,13 @@ class HomePage extends StatefulWidget {
class _HomePageState extends State<HomePage> { class _HomePageState extends State<HomePage> {
ToDoCountProviderModel toDoProvider; ToDoCountProviderModel toDoProvider;
// @override @override
// void initState() { void initState() {
// WidgetsBinding.instance.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
// getToDoCount(); getToDoCount();
// }); });
// super.initState(); super.initState();
// } }
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>(); AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();
@ -57,7 +57,7 @@ class _HomePageState extends State<HomePage> {
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
toDoProvider = Provider.of<ToDoCountProviderModel>(context); toDoProvider = Provider.of<ToDoCountProviderModel>(context);
return BaseView<DashboardViewModel>( return BaseView<DashboardViewModel>(
onModelReady: (model) => {},//model.getPatientRadOrders(), onModelReady: (model) => model.getPatientRadOrders(),
builder: (_, model, wi) => AppScaffold( builder: (_, model, wi) => AppScaffold(
isShowDecPage: false, isShowDecPage: false,
body: Container( body: Container(

@ -145,9 +145,9 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
_firebaseMessaging.requestNotificationPermissions(); _firebaseMessaging.requestNotificationPermissions();
} }
_firebaseMessaging.getToken().then((String token) { _firebaseMessaging.getToken().then((String token) async {
sharedPref.setString(PUSH_TOKEN, token); sharedPref.setString(PUSH_TOKEN, token);
if (token != null && DEVICE_TOKEN == "") { if (token != null && await sharedPref.getObject(USER_PROFILE) ==null) {
DEVICE_TOKEN = token; DEVICE_TOKEN = token;
checkUserStatus(token); checkUserStatus(token);
} }
@ -410,9 +410,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
SETTINGS, SETTINGS,
); );
else else
Navigator.of(context).pushNamed( login();
WELCOME_LOGIN,
);
}, //do something, }, //do something,
) )
], ],
@ -553,4 +551,15 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
_changeCurrentTab(2); _changeCurrentTab(2);
} }
} }
login() async {
var data = await sharedPref.getObject(IMEI_USER_DATA);
sharedPref.remove(REGISTER_DATA_FOR_LOGIIN);
if (data != null) {
Navigator.of(context).pushNamed(CONFIRM_LOGIN);
} else {
Navigator.of(context).pushNamed(
WELCOME_LOGIN,
);
}
}
} }

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

@ -85,6 +85,7 @@ class RadiologyHomePage extends StatelessWidget {
), ),
), ),
child: DoctorCard( child: DoctorCard(
isInOutPatient: radiology.isInOutPatient,
name: radiology.doctorName, name: radiology.doctorName,
profileUrl: radiology.doctorImageURL, profileUrl: radiology.doctorImageURL,
subName: '${radiology.projectName} \n${TranslationBase.of(context).billNo} ${radiology.invoiceNo}', subName: '${radiology.projectName} \n${TranslationBase.of(context).billNo} ${radiology.invoiceNo}',

@ -464,7 +464,7 @@ class AuthProvider with ChangeNotifier {
try { try {
await new BaseAppClient().post(PROFILE_SETTING, await new BaseAppClient().post(PROFILE_SETTING,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
localRes = response; //CheckActivationCode.fromJson(); localRes = response;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
localRes = error; localRes = error;
return Future.value(error); return Future.value(error);

@ -858,7 +858,14 @@ String get fileno => localizedValues['fileno'][locale.languageCode];
String get bloodDonation => localizedValues['blood-donation'][locale.languageCode]; String get bloodDonation => localizedValues['blood-donation'][locale.languageCode];
String get bloodInstruction => localizedValues['blood-instruction'][locale.languageCode]; String get bloodInstruction => localizedValues['blood-instruction'][locale.languageCode];
String get bloodTermsNcondition => localizedValues['view-terms'][locale.languageCode]; String get bloodTermsNcondition => localizedValues['view-terms'][locale.languageCode];
String get invoiceNo => localizedValues['InvoiceNo'][locale.languageCode];
String get specialResult => localizedValues['SpecialResult'][locale.languageCode];
String get generalResult => localizedValues['GeneralResult'][locale.languageCode];
String get showMoreBtn => localizedValues['show-more-btn'][locale.languageCode];
String get value => localizedValues['value'][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];
} }

@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/core/model/labs/lab_result.dart'; import 'package:diplomaticquarterapp/core/model/labs/lab_result.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -32,7 +33,7 @@ class LabResultWidget extends StatelessWidget {
//TODO model.getPatientLabResult(patientLabOrder: widget.patientLabOrder); //TODO model.getPatientLabResult(patientLabOrder: widget.patientLabOrder);
}, },
child: Texts( child: Texts(
'Flow Chart', TranslationBase.of(context).showMoreBtn,
decoration: TextDecoration.underline, decoration: TextDecoration.underline,
color: Colors.blue, color: Colors.blue,
), ),
@ -44,13 +45,13 @@ class LabResultWidget extends StatelessWidget {
inside: BorderSide( inside: BorderSide(
width: 2.0, color: Colors.grey[300]), width: 2.0, color: Colors.grey[300]),
), ),
children: fullData(patientLabResultList), children: fullData(patientLabResultList,context),
), ),
], ],
), ),
); );
} }
List<TableRow> fullData(List<LabResult> labResultList) { List<TableRow> fullData(List<LabResult> labResultList,context) {
List<TableRow> tableRow = []; List<TableRow> tableRow = [];
tableRow.add( tableRow.add(
TableRow( TableRow(
@ -58,7 +59,7 @@ class LabResultWidget extends StatelessWidget {
Container( Container(
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xff515B5D), color: Theme.of(context).primaryColor,
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(
topLeft: projectViewModel.isArabic topLeft: projectViewModel.isArabic
? Radius.circular(0.0) ? Radius.circular(0.0)
@ -70,7 +71,7 @@ class LabResultWidget extends StatelessWidget {
), ),
child: Center( child: Center(
child: Texts( child: Texts(
'Description', TranslationBase.of(context).description,
color: Colors.white, color: Colors.white,
), ),
), ),
@ -80,17 +81,17 @@ class LabResultWidget extends StatelessWidget {
Container( Container(
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xff515B5D), color: Theme.of(context).primaryColor,
), ),
child: Center( child: Center(
child: Texts('Value', color: Colors.white), child: Texts(TranslationBase.of(context).value, color: Colors.white),
), ),
height: 60), height: 60),
), ),
Container( Container(
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xff515B5D), color: Theme.of(context).primaryColor,
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(
topLeft: projectViewModel.isArabic topLeft: projectViewModel.isArabic
? Radius.circular(10.0) ? Radius.circular(10.0)
@ -101,7 +102,7 @@ class LabResultWidget extends StatelessWidget {
), ),
), ),
child: Center( child: Center(
child: Texts('Range', color: Colors.white), child: Texts(TranslationBase.of(context).range, color: Colors.white),
), ),
height: 60), height: 60),
), ),

@ -1,3 +1,5 @@
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart'; import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/StarRating.dart'; import 'package:diplomaticquarterapp/widgets/others/StarRating.dart';
@ -5,6 +7,7 @@ import 'package:diplomaticquarterapp/widgets/others/rounded_container_widget.dar
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
class DoctorCard extends StatelessWidget { class DoctorCard extends StatelessWidget {
final String name; final String name;
@ -26,22 +29,22 @@ class DoctorCard extends StatelessWidget {
this.billNo, this.billNo,
this.onTap, this.onTap,
this.onEmailTap, this.onEmailTap,
this.isInOutPatient}); this.isInOutPatient});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return Container( return Container(
margin: EdgeInsets.all(10), margin: EdgeInsets.all(10),
decoration: BoxDecoration( decoration: BoxDecoration(
border: Border.all( border: Border.all(
width: 0.5, width: 0.5,
color: Theme.of(context).primaryColor, color: Theme.of(context).primaryColor,
), ),
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(8.0), Radius.circular(8.0),
), ),
color: Colors.white color: Colors.white),
),
child: InkWell( child: InkWell(
onTap: onTap, onTap: onTap,
child: Column( child: Column(
@ -50,18 +53,34 @@ class DoctorCard extends StatelessWidget {
Row( Row(
children: <Widget>[ children: <Widget>[
Container( Container(
width: 20, width:projectViewModel.isArabic? 27:20,
height: date == null ? 100 : 130, height: date == null ? projectViewModel.isArabic? 170 :100 : 150,
decoration: BoxDecoration( decoration: BoxDecoration(
color: !isInOutPatient? Colors.red[900]: Theme.of(context).primaryColor, color: !isInOutPatient
borderRadius: BorderRadius.only( ? Colors.red[900]
topLeft: Radius.circular(8), : Theme.of(context).primaryColor,
bottomLeft: Radius.circular(8))), borderRadius: BorderRadius.only(
topLeft: projectViewModel.isArabic
? Radius.circular(0)
: Radius.circular(8),
bottomLeft: projectViewModel.isArabic
? Radius.circular(0)
: Radius.circular(8),
topRight: projectViewModel.isArabic? Radius.circular(8):Radius.circular(0),
bottomRight: projectViewModel.isArabic? Radius.circular(8):Radius.circular(0),
),
),
child: RotatedBox( child: RotatedBox(
quarterTurns: 3, quarterTurns: 3,
child: Center( child: Center(
child: Text( child: Text(
!isInOutPatient? 'In Patient'.toUpperCase():'OutPatient'.toUpperCase(), !isInOutPatient
? TranslationBase.of(context)
.inPatient
.toUpperCase()
: TranslationBase.of(context)
.outpatient
.toUpperCase(),
style: TextStyle(color: Colors.white), style: TextStyle(color: Colors.white),
), ),
)), )),
@ -116,14 +135,14 @@ class DoctorCard extends StatelessWidget {
), ),
), ),
), ),
if(onEmailTap!=null) if (onEmailTap != null)
InkWell( InkWell(
onTap: onEmailTap, onTap: onEmailTap,
child: Icon( child: Icon(
Icons.email, Icons.email,
color: Colors.red, color: Colors.red,
), ),
) )
], ],
), ),
), ),

@ -3,6 +3,8 @@ import 'package:diplomaticquarterapp/core/model/labs/patient_lab_orders.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/labs_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/labs_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart'; import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -41,139 +43,139 @@ class _LaboratoryResultWidgetState extends State<LaboratoryResultWidget> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
projectViewModel = Provider.of(context); projectViewModel = Provider.of(context);
return Container( return BaseView<LabsViewModel>(
margin: EdgeInsets.all(15), onModelReady: (model) =>
child: Column( model.getPatientLabResult(patientLabOrder: widget.patientLabOrder),
children: <Widget>[ builder: (_, model, w) => NetworkBaseView(
Column( baseViewModel: model,
crossAxisAlignment: CrossAxisAlignment.start, child: Container(
margin: EdgeInsets.all(15),
child: Column(
children: <Widget>[ children: <Widget>[
Container( Column(
margin: EdgeInsets.all(15), crossAxisAlignment: CrossAxisAlignment.start,
child: Row( children: <Widget>[
mainAxisAlignment: MainAxisAlignment.spaceBetween, Container(
children: <Widget>[ margin: EdgeInsets.all(15),
Expanded( child: Row(
child: Container( mainAxisAlignment: MainAxisAlignment.spaceBetween,
decoration: BoxDecoration( children: <Widget>[
shape: BoxShape.rectangle, Expanded(
color: Colors.white, child: Container(
borderRadius: BorderRadius.all( decoration: BoxDecoration(
Radius.circular(5.0), shape: BoxShape.rectangle,
)),
padding: EdgeInsets.all(10.0),
margin: EdgeInsets.only(left: 5, right: 5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Texts('Invoice No'),
Texts(widget.billNo),
],
),
),
),
InkWell(
onTap: widget.onTap,
child: Container(
margin: EdgeInsets.only(left: 5, right: 5),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
color: Colors.red[800],
borderRadius: BorderRadius.all(
Radius.circular(5.0),
)),
child: Container(
padding: EdgeInsets.all(10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Icon(
Icons.email,
color: Colors.white,
),
Texts(
'Send a copy',
color: Colors.white, color: Colors.white,
) borderRadius: BorderRadius.all(
], Radius.circular(5.0),
)),
padding: EdgeInsets.all(10.0),
margin: EdgeInsets.only(left: 5, right: 5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Texts(TranslationBase.of(context).invoiceNo),
Texts(widget.billNo),
],
),
), ),
), ),
InkWell(
onTap: widget.onTap,
child: Container(
margin: EdgeInsets.only(left: 5, right: 5),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
color: Theme.of(context).primaryColor,
borderRadius: BorderRadius.all(
Radius.circular(5.0),
)),
child: Container(
padding: EdgeInsets.all(10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Icon(
Icons.email,
color: Colors.white,
),
Texts(
TranslationBase.of(context).sendCopy,
color: Colors.white,
)
],
),
),
),
)
],
),
),
SizedBox(
height: 10,
),
InkWell(
onTap: () {
setState(() {
_isShowMore = !_isShowMore;
});
},
child: Container(
padding: EdgeInsets.all(10.0),
margin: EdgeInsets.only(left: 5, right: 5),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(5.0),
)),
child: Row(
children: <Widget>[
Expanded(child: Texts(TranslationBase.of(context).specialResult)),
Container(
width: 25,
height: 25,
decoration: BoxDecoration(
shape: BoxShape.circle, color: Theme.of(context).primaryColor),
child: Icon(
_isShowMore
? Icons.keyboard_arrow_up
: Icons.keyboard_arrow_down,
color: Colors.white,
size: 22,
),
)
],
), ),
) ),
], ),
), if (_isShowMore)
), AnimatedContainer(
SizedBox( padding: EdgeInsets.all(10.0),
height: 10, margin: EdgeInsets.only(left: 5, right: 5),
), decoration: BoxDecoration(
InkWell( shape: BoxShape.rectangle,
onTap: () {
setState(() {
_isShowMore = !_isShowMore;
});
},
child: Container(
padding: EdgeInsets.all(10.0),
margin: EdgeInsets.only(left: 5, right: 5),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(5.0),
)),
child: Row(
children: <Widget>[
Expanded(child: Texts('Special Result')),
Container(
width: 25,
height: 25,
decoration: BoxDecoration(
shape: BoxShape.circle, color: Colors.red[900]),
child: Icon(
_isShowMore
? Icons.keyboard_arrow_up
: Icons.keyboard_arrow_down,
color: Colors.white, color: Colors.white,
size: 22, borderRadius: BorderRadius.only(
), bottomLeft: Radius.circular(5.0),
) bottomRight: Radius.circular(5.0),
], )),
duration: Duration(milliseconds: 7000),
child: Container(
width: double.infinity,
child: Html(
data: widget.details ?? 'No Data',
)),
),
SizedBox(
height: 12,
), ),
), Container(
),
if (_isShowMore)
AnimatedContainer(
padding: EdgeInsets.all(10.0),
margin: EdgeInsets.only(left: 5, right: 5),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
color: Colors.white,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(5.0),
bottomRight: Radius.circular(5.0),
)),
duration: Duration(milliseconds: 7000),
child: Container(
width: double.infinity,
child: Html(
data: widget.details ?? 'No Data',
)),
),
SizedBox(
height: 12,
),
BaseView<LabsViewModel>(
onModelReady: (model) => model.getPatientLabResult(
patientLabOrder: widget.patientLabOrder),
builder: (_, model, w) => NetworkBaseView(
baseViewModel: model,
child: Container(
child: Column( child: Column(
children: [ children: [
InkWell( InkWell(
onTap: () { onTap: () {
setState( setState(
() { () {
_isShowMoreGeneral = !_isShowMoreGeneral; _isShowMoreGeneral = !_isShowMoreGeneral;
}, },
); );
@ -189,13 +191,13 @@ class _LaboratoryResultWidgetState extends State<LaboratoryResultWidget> {
)), )),
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Expanded(child: Texts('General Result')), Expanded(child: Texts(TranslationBase.of(context).generalResult)),
Container( Container(
width: 25, width: 25,
height: 25, height: 25,
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.circle, shape: BoxShape.circle,
color: Colors.red[900]), color: Theme.of(context).primaryColor),
child: Icon( child: Icon(
_isShowMoreGeneral _isShowMoreGeneral
? Icons.keyboard_arrow_up ? Icons.keyboard_arrow_up
@ -224,11 +226,12 @@ class _LaboratoryResultWidgetState extends State<LaboratoryResultWidget> {
child: Container( child: Container(
width: double.infinity, width: double.infinity,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
...List.generate( ...List.generate(
model.labResultLists.length, model.labResultLists.length,
(index) => LabResultWidget( (index) => LabResultWidget(
filterName: model filterName: model
.labResultLists[index].filterName, .labResultLists[index].filterName,
patientLabResultList: model patientLabResultList: model
@ -242,15 +245,13 @@ class _LaboratoryResultWidgetState extends State<LaboratoryResultWidget> {
), ),
], ],
), ),
), )
), ],
) ),
], ],
), ),
], ),
), ),
); );
} }
} }

@ -1,6 +1,7 @@
import 'dart:io'; import 'dart:io';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/service/medical/vital_sign_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart'; import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart';
@ -39,8 +40,9 @@ class _AppDrawerState extends State<AppDrawer> {
var familyFileProvider = FamilyFilesProvider(); var familyFileProvider = FamilyFilesProvider();
AuthenticatedUser user; AuthenticatedUser user;
AuthenticatedUser mainUser; AuthenticatedUser mainUser;
AuthenticatedUserObject authenticatedUserObject = AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();
locator<AuthenticatedUserObject>(); VitalSignService _vitalSignService = locator<VitalSignService>();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -408,6 +410,8 @@ class _AppDrawerState extends State<AppDrawer> {
authenticatedUserObject.logout(); authenticatedUserObject.logout();
projectProvider.isLogin = false; projectProvider.isLogin = false;
await authenticatedUserObject.getUser(); await authenticatedUserObject.getUser();
_vitalSignService.heightCm ="";
_vitalSignService.weightKg ="";
await sharedPref.clear(); await sharedPref.clear();
this.user = null; this.user = null;
Navigator.of(context).pushNamed(HOME); Navigator.of(context).pushNamed(HOME);

Loading…
Cancel
Save