/* *@author: Amjad Amireh Merge to Elham rababah *@Date:27/4/2020 *@param: *@return:PatientsScreen *@desc: */ import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/models/patient/patient_model.dart'; import 'package:doctor_app_flutter/models/patient/topten_users_res_model.dart'; import 'package:doctor_app_flutter/providers/patients_provider.dart'; import 'package:doctor_app_flutter/routes.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; //************* import '../../config/size_config.dart'; import 'package:hexcolor/hexcolor.dart'; //******** import '../../widgets/shared/app_scaffold_widget.dart'; import '../../widgets/shared/card_with_bg_widget.dart'; import 'package:doctor_app_flutter/config/config.dart'; class PatientsScreen extends StatefulWidget { @override _PatientsScreenState createState() => _PatientsScreenState(); } class _PatientsScreenState extends State { List litems; //******************* List responseModelList; List _locations = ['Today', 'Tomorrow', 'Next Week']; int _activeLocation = 0; //******************* bool _isInit = true; var _isLoading = true; var _hasError; //*******Amjad add to search box****** final _controller = TextEditingController(); //************** PatientModel patient; @override void didChangeDependencies() { final routeArgs = ModalRoute.of(context).settings.arguments as Map; //PatientModel patient = routeArgs['patientSearchForm']; patient = routeArgs['patientSearchForm']; //PatiantInformtion patiantInfo = routeArgs['patientSearchForm']; print(patient.TokenID + "EEEEEE"); String patientType = routeArgs['selectedType']; print("**************patiant Type**************"); print(patientType); print("**************test**************"); if (_isInit) { // setState(() {}); PatientsProvider patientsProv = Provider.of(context); patientsProv.getPatientList(patient, patientType).then((res) { // print('MessageStatus${res['MessageStatus']}'); print('List_MyInPatient${(res['List_MyInPatient'])}'); setState(() { int val2 = int.parse(patientType); litems = res[SERVICES_PATIANT2[val2]]; //******************** final List parsed = litems; responseModelList = new ModelResponse.fromJson(parsed).list; //******************** _isLoading = false; _hasError = res['ErrorEndUserMessage']; }); print(res); }).catchError((error) { print(error); }); } _isInit = false; super.didChangeDependencies(); } @override Widget build(BuildContext context) { PatientsProvider patientsProv = Provider.of(context); return AppScaffold( appBarTitle: 'Patients', //***********Modify by amjad (create List view to insert all new data webservise in scroll )************* body: Container( child: ListView(scrollDirection: Axis.vertical, children: [ Container( //child:litems == null?Column():Column(children: [ child: litems == null ? Column() : Column( children: [ //*********change to test screen************* */ // child:Column(children: [ Padding( padding: EdgeInsets.only( top: MediaQuery.of(context).size.height * 0.03), child: _locationBar(context), ), SizedBox(height: 10.0), Container( width: SizeConfig.screenWidth * 0.80, child: TextField( controller: _controller, onSubmitted: (value) { // fetch all the news related to the keyword if (value.isNotEmpty) { // vm.search(value); } }, decoration: buildInputDecoration(context, 'Search patiant'), ), ), Column( children: responseModelList.map((PatiantInformtion item) { return InkWell( child: CardWithBgWidget( widget: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText( item.nationalityName, fontSize: 2.5 * SizeConfig.textMultiplier, ), SizedBox( height: 8, ), AppText(item.lastName, fontSize: 2.5 * SizeConfig.textMultiplier), SizedBox( height: 8, ), AppText(item.middleName, fontSize: 2.5 * SizeConfig.textMultiplier), ], ), ), onTap: () { Navigator.of(context).pushNamed( PATIENTS_PROFILE, arguments: {"patient": item}); }, ); }).toList(), ), ], )) ]))); } //***********amjad update************* InputDecoration buildInputDecoration(BuildContext context, hint) { return InputDecoration( prefixIcon: Icon(Icons.search, color: Colors.red), filled: true, fillColor: Colors.white, //Image.asset(asset), /* icon: Padding( padding: const EdgeInsets.all(8.0), child: Icon(Icons.search), ),*/ hintText: hint, hintStyle: TextStyle(fontSize: 2 * SizeConfig.textMultiplier), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.all(Radius.circular(20)), borderSide: BorderSide(color: Hexcolor('#CCCCCC')), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.all(Radius.circular(10.0)), borderSide: BorderSide(color: Theme.of(context).primaryColor), )); } //************* Widget _locationBar(BuildContext _context) { //********* //********* return Container( height: MediaQuery.of(context).size.height * 0.065, width: SizeConfig.screenWidth * 0.80, decoration: BoxDecoration( color: Color(0Xff59434f), //Color.fromARGB(89, 67, 79,0), borderRadius: BorderRadius.circular(20)), child: Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.center, children: _locations.map((l) { bool _isActive = _locations[_activeLocation] == l ? true : false; return Column(mainAxisSize: MainAxisSize.min, children: [ InkWell( child: Text( l, style: TextStyle( fontSize: 15, color: Colors.white, fontWeight: FontWeight.bold), ), onTap: () { print(l); print(_locations.indexOf(l)); setState(() { _activeLocation = _locations.indexOf(l); }); }), _isActive ? Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), color: Colors.white), height: 3, width: 80, ) : Container() ]); }).toList(), )); } } //***********************