diff --git a/lib/config/config.dart b/lib/config/config.dart index 58ade1bc..2592d1b2 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -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 diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index b75baf2e..b1ed5307 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -999,4 +999,28 @@ const Map localizedValues = { "searchItemError": {"en": "Item name should be more than 3 character ", "ar": "يجب أن يكون اسم العنصر أكثر من 3 أحرف"}, "YouCanFind": {"en": "YouCanFind", "ar": "باستطاعتك العثور على "}, "ItemInSearch": {"en": " Item In Search", "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": "تنويم" + } }; diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index 8d522b1d..3f64afa3 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -147,7 +147,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { _firebaseMessaging.getToken().then((String token) { sharedPref.setString(PUSH_TOKEN, token); - if (token != null && DEVICE_TOKEN == "") { + if (token != null) { DEVICE_TOKEN = token; checkUserStatus(token); } @@ -410,9 +410,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { SETTINGS, ); else - Navigator.of(context).pushNamed( - WELCOME_LOGIN, - ); + login(); }, //do something, ) ], @@ -553,4 +551,15 @@ class _LandingPageState extends State with WidgetsBindingObserver { _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, + ); + } + } } diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index 229e0a0f..87eaf1ce 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -370,7 +370,7 @@ class _ConfirmLogin extends State { if (authenticated == true) { - if(user.logInType==2 || user.logInType ==3){ + if(user !=null && (user.logInType==2 || user.logInType ==3)){ this.checkActivationCode(); }else{ var request = this.getCommonRequest(type: type); diff --git a/lib/pages/medical/labs/labs_home_page.dart b/lib/pages/medical/labs/labs_home_page.dart index 68dc180e..f459a057 100644 --- a/lib/pages/medical/labs/labs_home_page.dart +++ b/lib/pages/medical/labs/labs_home_page.dart @@ -40,7 +40,7 @@ class LabsHomePage 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); }, @@ -57,7 +57,7 @@ class LabsHomePage 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), ), diff --git a/lib/pages/medical/radiology/radiology_home_page.dart b/lib/pages/medical/radiology/radiology_home_page.dart index 995ac485..a7c4fcc5 100644 --- a/lib/pages/medical/radiology/radiology_home_page.dart +++ b/lib/pages/medical/radiology/radiology_home_page.dart @@ -85,6 +85,7 @@ class RadiologyHomePage extends StatelessWidget { ), ), child: DoctorCard( + isInOutPatient: radiology.isInOutPatient, name: radiology.doctorName, profileUrl: radiology.doctorImageURL, subName: '${radiology.projectName} \n${TranslationBase.of(context).billNo} ${radiology.invoiceNo}', diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index c5fc8852..12c7ff6e 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -855,6 +855,14 @@ String get fileno => localizedValues['fileno'][locale.languageCode]; String get searchItemError => localizedValues['searchItemError'][locale.languageCode]; String get youCanFind => localizedValues['YouCanFind'][locale.languageCode]; String get itemInSearch => localizedValues['ItemInSearch'][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]; } diff --git a/lib/widgets/data_display/medical/LabResultWidget.dart b/lib/widgets/data_display/medical/LabResultWidget.dart index 225b4076..6ad51c36 100644 --- a/lib/widgets/data_display/medical/LabResultWidget.dart +++ b/lib/widgets/data_display/medical/LabResultWidget.dart @@ -1,5 +1,6 @@ import 'package:diplomaticquarterapp/core/model/labs/lab_result.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/material.dart'; import 'package:provider/provider.dart'; @@ -32,7 +33,7 @@ class LabResultWidget extends StatelessWidget { //TODO model.getPatientLabResult(patientLabOrder: widget.patientLabOrder); }, child: Texts( - 'Flow Chart', + TranslationBase.of(context).showMoreBtn, decoration: TextDecoration.underline, color: Colors.blue, ), @@ -44,13 +45,13 @@ class LabResultWidget extends StatelessWidget { inside: BorderSide( width: 2.0, color: Colors.grey[300]), ), - children: fullData(patientLabResultList), + children: fullData(patientLabResultList,context), ), ], ), ); } - List fullData(List labResultList) { + List fullData(List labResultList,context) { List tableRow = []; tableRow.add( TableRow( @@ -58,7 +59,7 @@ class LabResultWidget extends StatelessWidget { Container( child: Container( decoration: BoxDecoration( - color: Color(0xff515B5D), + color: Theme.of(context).primaryColor, borderRadius: BorderRadius.only( topLeft: projectViewModel.isArabic ? Radius.circular(0.0) @@ -70,7 +71,7 @@ class LabResultWidget extends StatelessWidget { ), child: Center( child: Texts( - 'Description', + TranslationBase.of(context).description, color: Colors.white, ), ), @@ -80,17 +81,17 @@ class LabResultWidget extends StatelessWidget { Container( child: Container( decoration: BoxDecoration( - color: Color(0xff515B5D), + color: Theme.of(context).primaryColor, ), child: Center( - child: Texts('Value', color: Colors.white), + child: Texts(TranslationBase.of(context).value, color: Colors.white), ), height: 60), ), Container( child: Container( decoration: BoxDecoration( - color: Color(0xff515B5D), + color: Theme.of(context).primaryColor, borderRadius: BorderRadius.only( topLeft: projectViewModel.isArabic ? Radius.circular(10.0) @@ -101,7 +102,7 @@ class LabResultWidget extends StatelessWidget { ), ), child: Center( - child: Texts('Range', color: Colors.white), + child: Texts(TranslationBase.of(context).range, color: Colors.white), ), height: 60), ), diff --git a/lib/widgets/data_display/medical/doctor_card.dart b/lib/widgets/data_display/medical/doctor_card.dart index 4fdaa1ab..732a8934 100644 --- a/lib/widgets/data_display/medical/doctor_card.dart +++ b/lib/widgets/data_display/medical/doctor_card.dart @@ -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/data_display/text.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/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:provider/provider.dart'; class DoctorCard extends StatelessWidget { final String name; @@ -26,22 +29,22 @@ class DoctorCard extends StatelessWidget { this.billNo, this.onTap, this.onEmailTap, - this.isInOutPatient}); + this.isInOutPatient}); @override Widget build(BuildContext context) { + ProjectViewModel projectViewModel = Provider.of(context); return Container( margin: EdgeInsets.all(10), decoration: BoxDecoration( - border: Border.all( - width: 0.5, - color: Theme.of(context).primaryColor, - ), - borderRadius: BorderRadius.all( - Radius.circular(8.0), - ), - color: Colors.white - ), + border: Border.all( + width: 0.5, + color: Theme.of(context).primaryColor, + ), + borderRadius: BorderRadius.all( + Radius.circular(8.0), + ), + color: Colors.white), child: InkWell( onTap: onTap, child: Column( @@ -50,18 +53,34 @@ class DoctorCard extends StatelessWidget { Row( children: [ Container( - width: 20, - height: date == null ? 100 : 130, + width:projectViewModel.isArabic? 27:20, + height: date == null ? projectViewModel.isArabic? 170 :100 : 150, decoration: BoxDecoration( - color: !isInOutPatient? Colors.red[900]: Theme.of(context).primaryColor, - borderRadius: BorderRadius.only( - topLeft: Radius.circular(8), - bottomLeft: Radius.circular(8))), + color: !isInOutPatient + ? Colors.red[900] + : Theme.of(context).primaryColor, + 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( quarterTurns: 3, child: Center( child: Text( - !isInOutPatient? 'In Patient'.toUpperCase():'OutPatient'.toUpperCase(), + !isInOutPatient + ? TranslationBase.of(context) + .inPatient + .toUpperCase() + : TranslationBase.of(context) + .outpatient + .toUpperCase(), style: TextStyle(color: Colors.white), ), )), @@ -116,14 +135,14 @@ class DoctorCard extends StatelessWidget { ), ), ), - if(onEmailTap!=null) - InkWell( - onTap: onEmailTap, - child: Icon( - Icons.email, - color: Colors.red, - ), - ) + if (onEmailTap != null) + InkWell( + onTap: onEmailTap, + child: Icon( + Icons.email, + color: Colors.red, + ), + ) ], ), ), diff --git a/lib/widgets/data_display/medical/laboratory_result_widget.dart b/lib/widgets/data_display/medical/laboratory_result_widget.dart index f763def1..d16019b6 100644 --- a/lib/widgets/data_display/medical/laboratory_result_widget.dart +++ b/lib/widgets/data_display/medical/laboratory_result_widget.dart @@ -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/project_view_model.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:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -41,139 +43,139 @@ class _LaboratoryResultWidgetState extends State { @override Widget build(BuildContext context) { projectViewModel = Provider.of(context); - return Container( - margin: EdgeInsets.all(15), - child: Column( - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, + return BaseView( + onModelReady: (model) => + model.getPatientLabResult(patientLabOrder: widget.patientLabOrder), + builder: (_, model, w) => NetworkBaseView( + baseViewModel: model, + child: Container( + margin: EdgeInsets.all(15), + child: Column( children: [ - Container( - margin: EdgeInsets.all(15), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: Container( - decoration: BoxDecoration( - shape: BoxShape.rectangle, - 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: [ - 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: [ - Icon( - Icons.email, - color: Colors.white, - ), - Texts( - 'Send a copy', + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + margin: EdgeInsets.all(15), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Container( + decoration: BoxDecoration( + shape: BoxShape.rectangle, 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: [ + 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: [ + 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: [ + 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, + ), + ) + ], ), - ) - ], - ), - ), - 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: [ - 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, + ), + ), + if (_isShowMore) + AnimatedContainer( + padding: EdgeInsets.all(10.0), + margin: EdgeInsets.only(left: 5, right: 5), + decoration: BoxDecoration( + shape: BoxShape.rectangle, 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, ), - ), - ), - 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( - onModelReady: (model) => model.getPatientLabResult( - patientLabOrder: widget.patientLabOrder), - builder: (_, model, w) => NetworkBaseView( - baseViewModel: model, - child: Container( + Container( child: Column( children: [ InkWell( onTap: () { setState( - () { + () { _isShowMoreGeneral = !_isShowMoreGeneral; }, ); @@ -189,13 +191,13 @@ class _LaboratoryResultWidgetState extends State { )), child: Row( children: [ - Expanded(child: Texts('General Result')), + Expanded(child: Texts(TranslationBase.of(context).generalResult)), Container( width: 25, height: 25, decoration: BoxDecoration( shape: BoxShape.circle, - color: Colors.red[900]), + color: Theme.of(context).primaryColor), child: Icon( _isShowMoreGeneral ? Icons.keyboard_arrow_up @@ -224,11 +226,12 @@ class _LaboratoryResultWidgetState extends State { child: Container( width: double.infinity, child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, children: [ ...List.generate( model.labResultLists.length, - (index) => LabResultWidget( + (index) => LabResultWidget( filterName: model .labResultLists[index].filterName, patientLabResultList: model @@ -242,15 +245,13 @@ class _LaboratoryResultWidgetState extends State { ), ], ), - ), - ), - ) + ) + ], + ), ], ), - ], + ), ), ); } - - }