import 'dart:async'; import 'package:doctor_app_flutter/core/enum/view_state.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/core/viewModel/LiveCarePatientViewModel.dart'; import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart'; import 'package:doctor_app_flutter/routes.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/patients/patient_search/patient_search_header.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; import 'package:doctor_app_flutter/widgets/patients/patient_card/PatientCard.dart'; import 'package:doctor_app_flutter/widgets/shared/app_loader_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/errors/error_message.dart'; import 'package:doctor_app_flutter/widgets/shared/text_fields/app_text_field_custom_serach.dart'; import 'package:flutter/material.dart'; class LiveCarePatientScreen extends StatefulWidget { @override _LiveCarePatientScreenState createState() => _LiveCarePatientScreenState(); } class _LiveCarePatientScreenState extends State { final _controller = TextEditingController(); Timer? timer; LiveCarePatientViewModel? _liveCareViewModel; @override void initState() { super.initState(); timer = Timer.periodic(Duration(seconds: 10), (Timer t) { if (_liveCareViewModel != null) { _liveCareViewModel!.getPendingPatientERForDoctorApp(isFromTimer: true); } }); } @override void dispose() { _liveCareViewModel!.isLogin(0); _liveCareViewModel = null; timer?.cancel(); super.dispose(); } @override Widget build(BuildContext context) { return BaseView( onModelReady: (model) async { _liveCareViewModel = model; await model.getPendingPatientERForDoctorApp(); await model.isLogin(1); }, builder: (_, model, w) => AppScaffold( baseViewModel: model, isShowAppBar: true, appBar: PatientSearchHeader( title: "LiveCare Patients", ), body: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( padding: EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5), decoration: BoxDecoration( color: Colors.white, ), child: Container(), ), SizedBox( height: 20, ), AppTextFieldCustomSearch( searchController: _controller, onChangeFun: (value) { model.searchData(value); }, marginTop: 5, suffixIcon: IconButton( icon: Icon( DoctorApp.filter_1, color: Colors.black, ), iconSize: 20, onPressed: () {}, ), onFieldSubmitted: () {}, ), model.state == ViewState.Idle ? Expanded( child: Container( child: model.filterData.isEmpty ? Center( child: ErrorMessage( error: TranslationBase.of(context).youDontHaveAnyPatient, ), ) : ListView.builder( scrollDirection: Axis.vertical, shrinkWrap: true, itemCount: model.filterData.length, itemBuilder: (BuildContext ctxt, int index) { // // // String jsonString = ''' // { // "PatientID": 1231755, // "SetupID": "010266", // "PatientType": 1, // "FirstName": "TAMER", // "MiddleName": "MUSA", // "LastName": "FANASHEH", // "FirstNameN": "", // "MiddleNameN": "موسى", // "LastNameN": "", // "Gender": 1, // "DateofBirth": "/Date(558910800000+0300)/", // "DateofBirthN": "25/01/1408", // "NationalityID": "JOR", // "PhoneResi": "", // "PhoneOffice": "", // "MobileNumber": "0537503378", // "FaxNumber": "", // "EmailAddress": "sultan.khan@cloudsolutions.com.sa", // "IsEmailAlertRequired": true, // "IsSMSAlertRequired": true, // "PreferredLanguage": "1", // "EmergencyContactName": "MOH", // "EmergencyContactNo": "0507845867", // "PatientIdentificationType": 2, // "PatientIdentificationNo": "2344670985", // "ProjectID": 15, // "ReceiveHealthSummaryReport": true, // "NoShowCount": 0, // "IsPatientHasMobileDeviceToken": true, // "EditedBy": 102, // "IsIVRStopped": true, // "CRSClientIdentifierID": null, // "CRSVerificationStatus": null, // "CRSVerifiedBy": null, // "CRSVerificationStatusDesc": "Sent for Manual Verification", // "CRSVerificationStatusDescN": "Sent for Manual Verification", // "NumberPosition": 1, // "Status": 2, // "IsPrivilegedMember": null, // "Address": "gffffff al malga", // "Age": 36, // "EmaiLAddress": "sultan.khan@cloudsolutions.com.sa", // "GenderDescription": "Male", // "GenderImage": "https://hmgwebservices.com/Images/GenderAvtar/Male.jpg", // "IsPatientDataVerified": false, // "IsPatientPrivilegedMember": false, // "NationalityDescription": "Jordanian", // "NationalityFlagURL": "https://hmgwebservices.com/Images/flag/JOR.png", // "POBox": "", // "PatientDataVerified": 3, // "PatientName": "TAMER MUSA FANASHEH", // "PatientTypeDescription": "Permanent File", // "PatientTypeDescriptionN": null, // "StatusDscription": "Active ", // "TempAddress": "", // "UpcomingAppointmentsNumber": 0, // "ZipCode": "966" // } // '''; // // Map jsonObject = json.decode(jsonString); // // // return Padding( padding: EdgeInsets.all(8.0), child: PatientCard( patientInfo: PatiantInformtion.fromJson(model.filterData[index].toJson()), patientType: "0", arrivalType: "0", isFromSearch: false, isInpatient: false, isFromLiveCare: true, onTap: () { // TODO change the parameter to daynamic Navigator.of(context).pushNamed(PATIENTS_PROFILE, arguments: { "patient": PatiantInformtion.fromJson(model.filterData[index].toJson()), "patientType": "0", "isSearch": false, "isInpatient": false, "arrivalType": "0", "isSearchAndOut": false, "isFromLiveCare": true, }); // AppPermissionsUtils.requestVideoCallPermission( // context: context, // onTapGrant: () { // locator().openVideo(model.startCallRes!, PatiantInformtion.fromJson(jsonObject), // model.startCallRes != null ? model.startCallRes!.isRecording! : true, callConnected, callDisconnected); // }); }, // isFromSearch: widget.isSearch, ), ); })), ) : Expanded( child: AppLoaderWidget( containerColor: Colors.transparent, )), // AppButton( // fontWeight: FontWeight.w700, // color:AppGlobal.appGreenColor[600], // title: TranslationBase.of(context).initiateCall, // disabled: model.state == ViewState.BusyLocal, // onPressed: () async { // AppPermissionsUtils.requestVideoCallPermission(context: context,onTapGrant: (){ // locator().openVideo(model.startCallRes, PatiantInformtion( // vcId: 454353, // fullName: "test mosa" // ), callConnected, callDisconnected); // }); // // }, // ), ], ), ), ); } callConnected() {} callDisconnected() {} }