@ -1,21 +1,29 @@
import ' package:diplomaticquarterapp/config/size_config.dart ' ;
import ' package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart ' ;
import ' package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart ' ;
import ' package:diplomaticquarterapp/core/viewModels/project_view_model.dart ' ;
import ' package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart ' ;
import ' package:diplomaticquarterapp/pages/base/base_view.dart ' ;
import ' package:diplomaticquarterapp/services/authentication/auth_provider.dart ' ;
import ' package:diplomaticquarterapp/services/clinic_services/get_clinic_service.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 ' ;
import ' package:diplomaticquarterapp/widgets/data_display/medical/time_line_new_widget.dart ' ;
import ' package:diplomaticquarterapp/widgets/dialogs/radio_selection_dialog.dart ' ;
import ' package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart ' ;
import ' package:flutter/cupertino.dart ' ;
import ' package:flutter/material.dart ' ;
import ' package:provider/provider.dart ' ;
import ' package:url_launcher/url_launcher.dart ' ;
class MedicalProfilePageNew extends StatefulWidget {
Function onTap ;
String a ;
MedicalProfilePageNew ( { this . onTap } ) ;
@ override
_MedicalProfilePageState createState ( ) = > _MedicalProfilePageState ( ) ;
}
@ -25,11 +33,15 @@ class _MedicalProfilePageState extends State<MedicalProfilePageNew> {
List < Medical > medical = List ( ) ;
ProjectViewModel projectViewModel ;
List < HospitalsModel > projectsList = [ ] ;
HospitalsModel _selectedHospital ;
@ override
Widget build ( BuildContext context ) {
projectViewModel = Provider . of ( context ) ;
var appoCountProvider = Provider . of < ToDoCountProviderModel > ( context ) ;
List < Widget > myMedicalList = Utils . myMedicalList ( projectViewModel: projectViewModel , context: context , count: appoCountProvider . count , isLogin: projectViewModel . isLogin ) ;
List < Widget > myMedicalList =
Utils . myMedicalList ( projectViewModel: projectViewModel , context: context , count: appoCountProvider . count , isLogin: projectViewModel . isLogin , onWeCareClick: openWeCareProjectSelection ) ;
return BaseView < MedicalViewModel > (
onModelReady: ( model ) = > model . getAppointmentHistory ( isForTimeLine: true ) ,
builder: ( _ , model , widget1 ) = > AppScaffold (
@ -99,6 +111,62 @@ class _MedicalProfilePageState extends State<MedicalProfilePageNew> {
) ,
) ;
}
openWeCareProjectSelection ( ) {
int _selectedHospitalIndex = - 1 ;
int languageID = projectViewModel . isArabic ? 1 : 2 ;
GifLoaderDialogUtils . showMyDialog ( context ) ;
ClinicListService service = new ClinicListService ( ) ;
List < HospitalsModel > projectsListLocal = [ ] ;
service . getProjectsList ( languageID , context ) . then ( ( res ) {
if ( res [ ' MessageStatus ' ] = = 1 ) {
setState ( ( ) {
res [ ' ListProject ' ] . forEach ( ( v ) {
projectsListLocal . add ( new HospitalsModel . fromJson ( v ) ) ;
} ) ;
projectsList = projectsListLocal ;
} ) ;
GifLoaderDialogUtils . hideDialog ( context ) ;
List < RadioSelectionDialogModel > list = [
for ( int i = 0 ; i < projectsList . length ; i + + ) RadioSelectionDialogModel ( projectsList [ i ] . name + ' ${ projectsList [ i ] . distanceInKilometers } ' + TranslationBase . of ( context ) . km , i ) ,
] ;
showDialog (
context: context ,
builder: ( cxt ) = > RadioSelectionDialog (
buttonText: TranslationBase . of ( context ) . confirm ,
listData: list ,
selectedIndex: _selectedHospitalIndex ,
isScrollable: true ,
onValueSelected: ( index ) {
_selectedHospitalIndex = index ;
_selectedHospital = projectsList [ index ] ;
openWeCareURL ( _selectedHospital . iD ) ;
/ / setState ( ( ) { } ) ;
} ,
) ,
) ;
}
} ) . catchError ( ( err ) {
GifLoaderDialogUtils . hideDialog ( context ) ;
} ) . catchError ( ( err ) {
print ( err ) ;
} ) ;
}
openWeCareURL ( int projectID ) {
GifLoaderDialogUtils . showMyDialog ( context ) ;
ClinicListService service = new ClinicListService ( ) ;
service . getWeCareURL ( projectID ) . then ( ( res ) {
print ( res [ " Consent_VirtualJurny_Url_GetByProjectIDList " ] [ 0 ] [ " Url " ] ) ;
Uri uri = Uri . parse ( res [ " Consent_VirtualJurny_Url_GetByProjectIDList " ] [ 0 ] [ " Url " ] ) ;
GifLoaderDialogUtils . hideDialog ( context ) ;
launchUrl ( uri , mode: LaunchMode . inAppWebView ) ;
} ) . catchError ( ( err ) {
GifLoaderDialogUtils . hideDialog ( context ) ;
print ( err ) ;
AppToast . showErrorToast ( message: err . toString ( ) ) ;
} ) ;
}
}
class Medical {