import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/util/date-utils.dart'; import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:url_launcher/url_launcher.dart'; class PatientProfileHeaderNewDesignInPatient extends StatelessWidget { final PatiantInformtion patient; final String patientType; final String arrivalType; final double height; PatientProfileHeaderNewDesignInPatient( this.patient, this.patientType, this.arrivalType, {this.height = 0.0}); @override Widget build(BuildContext context) { int gender = 1; if (patient.patientDetails != null) { gender = patient.patientDetails.gender; } else { gender = patient.gender; } return Container( padding: EdgeInsets.only( left: 0, right: 5, bottom: 5, ), decoration: BoxDecoration( color: Colors.white, ), height: height == 0 ? 200 : height, child: Container( padding: EdgeInsets.only(left: 10, right: 10, bottom: 10), // margin: EdgeInsets.only(top: 50), child: Column( children: [ Container( padding: EdgeInsets.only(left: 12.0), child: Row(children: [ IconButton( icon: Icon(Icons.arrow_back_ios), color: Colors.black, //Colors.black, onPressed: () => Navigator.pop(context), ), Expanded( child: AppText( patient.firstName != null ? (Helpers.capitalize(patient.firstName) + " " + Helpers.capitalize(patient.lastName)) : Helpers.capitalize(patient.patientDetails.fullName), fontSize: SizeConfig.textMultiplier * 2.2, fontWeight: FontWeight.bold, fontFamily: 'Poppins', ), ), gender == 1 ? Icon( DoctorApp.male_2, color: Colors.blue, ) : Icon( DoctorApp.female_1, color: Colors.pink, ), Container( margin: EdgeInsets.symmetric(horizontal: 4), child: InkWell( onTap: () { launch("tel://" + patient.mobileNumber); }, child: Icon( Icons.phone, color: Colors.black87, ), ), ), ]), ), Row(children: [ Padding( padding: EdgeInsets.only(left: 12.0), child: Container( width: 60, height: 60, child: Image.asset( gender == 1 ? 'assets/images/male_avatar.png' : 'assets/images/female_avatar.png', fit: BoxFit.cover, ), ), ), SizedBox( width: 10, ), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Row( children: [ AppText( TranslationBase.of(context).fileNumber, fontSize: 1.2 * SizeConfig.textMultiplier, ), AppText(patient.patientId.toString(), fontSize: 1.4 * SizeConfig.textMultiplier, fontWeight: FontWeight.w700), ], ), if(patient.admissionDate!=null) Row( children: [ AppText( AppDateUtils.convertDateFromServerFormat( patient.admissionDate, "hh:mm a"), fontWeight: FontWeight.bold, fontSize: 1.4 * SizeConfig.textMultiplier, ), ], ) ], ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ if(patient.admissionDate!=null) Row( children: [ AppText( "${TranslationBase.of(context).admissionDate}: ", fontSize: 1.2 * SizeConfig.textMultiplier, ), AppText( AppDateUtils.convertDateFromServerFormat( patient.admissionDate, "dd MMM,yyyy"), fontSize: 1.4 * SizeConfig.textMultiplier, fontWeight: FontWeight.w700), ], ), Row( children: [ AppText( patient.nationalityName ?? patient.nationality ?? patient.nationalityId ?? '', fontWeight: FontWeight.bold, fontSize: 1.4 * SizeConfig.textMultiplier, ), patient.nationalityFlagURL != null ? ClipRRect( borderRadius: BorderRadius.circular(20.0), child: Image.network( patient.nationalityFlagURL, height: 25, width: 30, errorBuilder: (BuildContext context, Object exception, StackTrace stackTrace) { return Text('No Image'); }, )) : SizedBox() ], ) ], ), if(patient.admissionDate!=null) Row( children: [ AppText( "${TranslationBase.of(context).numOfDays}: ", fontSize: 1.2 * SizeConfig.textMultiplier, ), AppText( "${DateTime.now().difference(AppDateUtils.getDateTimeFromServerFormat(patient.admissionDate)).inDays + 1}", fontSize: 1.4 * SizeConfig.textMultiplier, fontWeight: FontWeight.w700), ], ), ], ), ), ]), ], ), ), ); } convertDateFormat2(String str) { String newDate; const start = "/Date("; if (str.isNotEmpty) { const end = "+0300)"; final startIndex = str.indexOf(start); final endIndex = str.indexOf(end, startIndex + start.length); var date = new DateTime.fromMillisecondsSinceEpoch( int.parse(str.substring(startIndex + start.length, endIndex))); newDate = date.year.toString() + "/" + date.month.toString().padLeft(2, '0') + "/" + date.day.toString().padLeft(2, '0'); } return newDate.toString(); } isToday(date) { DateTime tempDate = new DateFormat("yyyy-MM-dd").parse(date); return DateFormat("yyyy-MM-dd").format(tempDate) == DateFormat("yyyy-MM-dd").format(DateTime.now()); } myBoxDecoration() { return BoxDecoration( border: Border( top: BorderSide( color: Colors.green, width: 5, ), ), borderRadius: BorderRadius.circular(10)); } }