import 'package:doctor_app_flutter/config/config.dart'; 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/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/shared/Text.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:intl/intl.dart'; class PatientCard extends StatelessWidget { final PatiantInformtion patientInfo; final Function onTap; final String patientType; const PatientCard({Key key, this.patientInfo, this.onTap, this.patientType}) : super(key: key); @override Widget build(BuildContext context) { return Container( width: SizeConfig.screenWidth * 0.95, padding: EdgeInsets.only(left: 10, right: 10, bottom: 10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), color: Colors.white), margin: EdgeInsets.all(5), child: InkWell( child: Column( children: [ SERVICES_PATIANT2[int.parse(patientType)] == "patientArrivalList" ? Container(height: 5, color: Colors.green[800]) : Container(), SizedBox( height: 10, ), SERVICES_PATIANT2[int.parse(patientType)] == "patientArrivalList" ? Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ AppText( TranslationBase.of(context).arrivedP, color: Colors.green[800], fontWeight: FontWeight.bold, ), isToday(patientInfo.arrivedOn) == false ? AppText(DateUtils.convertStringToDateFormat( patientInfo.arrivedOn, 'mm-dd-yyyy hh:mm')) : AppText(DateUtils.convertStringToDateFormat( patientInfo.arrivedOn, 'hh:mm')) ], ) : SizedBox(), Padding( padding: EdgeInsets.only(left: 12.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Row(children: [ AppText( patientInfo.firstName + " " + patientInfo.lastName, fontSize: SizeConfig.textMultiplier * 2.5, fontWeight: FontWeight.bold, backGroundcolor: Colors.white, ), patientInfo.gender == 1 ? Icon( DoctorApp.male_2, color: Colors.blue, ) : Icon( DoctorApp.female_1, color: Colors.pink, ), ]), AppText( patientInfo.nationalityName ?? patientInfo.nationality, fontWeight: FontWeight.bold, ) ], )), Row(children: [ Column( mainAxisAlignment: MainAxisAlignment.start, children: [ Padding( padding: EdgeInsets.only(left: 12.0), child: Container( decoration: BoxDecoration( boxShadow: [ BoxShadow( color: Color.fromRGBO(0, 0, 0, 0.08), offset: Offset(0.0, 5.0), blurRadius: 16.0) ], borderRadius: BorderRadius.all(Radius.circular(35.0)), color: Color(0xffCCCCCC), ), width: 70, height: 70, child: Icon( patientInfo.gender == 1 ? DoctorApp.male : DoctorApp.female_icon, size: 70, color: Colors.white, ), ), ), ], ), SizedBox( width: 10, ), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( child: RichText( text: new TextSpan( style: new TextStyle( fontSize: 2.0 * SizeConfig.textMultiplier, color: Colors.black), children: [ new TextSpan( text: TranslationBase.of(context).fileNo, style: TextStyle( fontSize: 2.2 * SizeConfig.textMultiplier)), new TextSpan( text: patientInfo.patientId.toString(), style: TextStyle( fontWeight: FontWeight.w700, )), ], ), ), ), Container( child: RichText( text: new TextSpan( style: new TextStyle( fontSize: 2.0 * SizeConfig.textMultiplier, color: Colors.black), children: [ new TextSpan( text: TranslationBase.of(context).age + " : ", ), new TextSpan( text: "${DateUtils.getAgeByBirthday(patientInfo.dateofBirth, context)}", style: TextStyle( fontWeight: FontWeight.w700, )), ], ), ), ), if (SERVICES_PATIANT2[int.parse(patientType)] == "List_MyOutPatient") Container( child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ AppText( TranslationBase.of(context).appointmentDate + " : ", fontSize: 14, ), Container( height: 15, width: 60, decoration: BoxDecoration( borderRadius: BorderRadius.circular(25), color: HexColor("#20A169"), ), child: AppText( patientInfo.startTime, color: Colors.white, fontSize: 1.5 * SizeConfig.textMultiplier, textAlign: TextAlign.center, fontWeight: FontWeight.bold, ), ), SizedBox( width: 3.5, ), Container( child: AppText( convertDateFormat2( patientInfo.appointmentDate.toString()), fontSize: 1.5 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold, ), ), SizedBox( height: 0.5, ) ], ), margin: EdgeInsets.only( top: 8, ), ) ])) ]), ], ), onTap: onTap, )); // ]), // TableRow(children: [ // SizedBox( // height: 5, // ), // SizedBox( // height: 5, // ) // ]), // TableRow(children: [ // Container( // child: RichText( // text: new TextSpan( // style: new TextStyle( // fontSize: 2.0 * SizeConfig.textMultiplier, // color: Colors.black), // children: [ // new TextSpan( // text: TranslationBase.of(context) // .nationality + // " : ", // style: TextStyle( // fontWeight: FontWeight.w700, // fontSize: 2.2 * // SizeConfig.textMultiplier)), // // , // ], // ), // ), // ), // Container( // child: RichText( // text: new TextSpan( // style: new TextStyle( // fontSize: 2.0 * SizeConfig.textMultiplier, // color: Colors.black), // children: [ // new TextSpan( // text: // TranslationBase.of(context).gender + // " : ", // style: TextStyle( // fontWeight: FontWeight.w700, // )), // new TextSpan( // text: // patientInfo.gender.toString() == '1' // ? 'Male' // : 'Female'), // ], // ), // ), // ), // ]), // ], //), // ), // Divider(color: Colors.grey) //], //), //], //), // onTap: onTap, // ), //); } convertDateFormat2(String str) { String timeConvert; const start = "/Date("; 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))); String 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)); } }