import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart'; import 'package:doctor_app_flutter/models/patient/radiology/radiology_req_model.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/patients/profile/radiology/radiology_report_screen.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart'; import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart'; import 'package:flutter/material.dart'; import '../../../../config/shared_pref_kay.dart'; import '../../../../config/size_config.dart'; import '../../../../models/patient/patiant_info_model.dart'; import '../../../../util/dr_app_shared_pref.dart'; import '../../../../widgets/shared/app_scaffold_widget.dart'; import '../../../../widgets/shared/app_texts_widget.dart'; DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); /* *@author: Elham Rababah *@Date:26/4/2020 *@param: *@return:RadiologyScreen *@desc: RadiologyScreen class */ class RadiologyScreen extends StatefulWidget { @override _RadiologyScreenState createState() => _RadiologyScreenState(); } class _RadiologyScreenState extends State { /* *@author: Elham Rababah *@Date:28/4/2020 *@param: context *@return: *@desc: getRadiologyList Function */ getRadiologyList(context, PatientViewModel model) async { final routeArgs = ModalRoute.of(context).settings.arguments as Map; PatiantInformtion patient = routeArgs['patient']; String token = await sharedPref.getString(TOKEN); String type = await sharedPref.getString(SLECTED_PATIENT_TYPE); int inOutpatientType = 1; if (type == '0') { inOutpatientType = 2; } print(type); RadiologyReqModel radiologyReqModel = RadiologyReqModel( patientID: patient.patientId, projectID: patient.projectId, tokenID: token, patientTypeID: patient.patientType, languageID: 2, ); model.getPatientRadiology(radiologyReqModel.toJson()); } @override Widget build(BuildContext context) { return BaseView( onModelReady: (model) => getRadiologyList(context, model), builder: (_, model, w) => AppScaffold( baseViewModel: model, appBarTitle: TranslationBase .of(context) .radiology, body: model.patientRadiologyList.length == 0 ? DrAppEmbeddedError( error: TranslationBase .of(context) .youDoNotHaveAnyItem) : Container( margin: EdgeInsets.fromLTRB( SizeConfig.realScreenWidth * 0.05, 0, SizeConfig.realScreenWidth * 0.05, 0), child: Container( margin: EdgeInsets.symmetric(vertical: 10), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all( Radius.circular(20.0), ), ), child: ListView.builder( itemCount: model.patientRadiologyList.length, itemBuilder: (BuildContext context, int index) { return InkWell( onTap: () { Navigator.push( context, MaterialPageRoute( builder: (context) => RadiologyReportScreen( reportData: model .patientRadiologyList[index] .reportData, )), ); }, child: Container( padding: EdgeInsets.all(10), margin: EdgeInsets.all(10), decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(10)), border: Border( bottom: BorderSide( color: Colors.grey, width: 0.5), top: BorderSide( color: Colors.grey, width: 0.5), left: BorderSide( color: Colors.grey, width: 0.5), right: BorderSide( color: Colors.grey, width: 0.5), ), ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ LargeAvatar( url: model .patientRadiologyList[index] .doctorImageURL, ), Expanded( child: Padding( padding: const EdgeInsets.fromLTRB( 8, 0, 0, 0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText( '${model.patientRadiologyList[index].doctorName}', fontSize: 2.5 * SizeConfig .textMultiplier, fontWeight: FontWeight.bold), SizedBox( height: 8, ), AppText( 'Invoice No:${model.patientRadiologyList[index].invoiceNo}', fontSize: 2 * SizeConfig .textMultiplier, ), SizedBox( height: 8, ), AppText( ' ${model.patientRadiologyList[index].clinicName}', fontSize: 2 * SizeConfig .textMultiplier, color: Theme.of(context) .primaryColor, ), SizedBox( height: 8, ), ], ), ), ) ], ), ], ), ), ); }), ), ), ),); } }