import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/routes.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; import '../../../config/size_config.dart'; import '../../shared/app_texts_widget.dart'; import '../../shared/rounded_container_widget.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; /* *@author: Elham Rababah *@Date:22/4/2020 *@param: *@return:ProfileMedicalInfoWidget *@desc: Profile Medical Info Widget */ class ProfileMedicalInfoWidget extends StatelessWidget { ProfileMedicalInfoWidget({Key key, this.patient}) : super(key: key); PatiantInformtion patient; @override Widget build(BuildContext context) { return SliverGrid.count( crossAxisSpacing: 10, mainAxisSpacing: 20, crossAxisCount: 2, childAspectRatio: 1.5, children: [ PatientProfileButton( key: key, patient: patient, name: TranslationBase.of(context).vitalSign, route: VITAL_SIGN_DETAILS, icon: 'heartbeat.png'), PatientProfileButton( key: key, patient: patient, route: LAB_ORDERS, name: TranslationBase.of(context).labOrder, icon: 'lab.png'), PatientProfileButton( key: key, patient: patient, route: PRESCRIPTIONS, name: TranslationBase.of(context).prescription, icon: 'note.png'), PatientProfileButton( key: key, patient: patient, route: RADIOLOGY, name: TranslationBase.of(context).radiology, icon: 'radiology-1.png'), Visibility( visible: selectedPatientType != 0 && selectedPatientType != 5, child: PatientProfileButton( key: key, patient: patient, route: PROGRESS_NOTE, name: TranslationBase.of(context).progressNote, icon: 'heartbeat.png')), PatientProfileButton( key: key, patient: patient, route: PATIENT_INSURANCE_APPROVALS, name: TranslationBase.of(context).insuranceApprovals, icon: 'lab.png'), Visibility( visible: selectedPatientType != 0 && selectedPatientType != 5 && selectedPatientType != 2, child: PatientProfileButton( key: key, patient: patient, route: REFER_PATIENT, name: TranslationBase.of(context).myReferralPatient, icon: 'note.png')), Visibility( visible: selectedPatientType != 0 && selectedPatientType != 5, child: PatientProfileButton( key: key, patient: patient, route: PATIENT_ORDERS, name: TranslationBase.of(context).orders, icon: 'radiology-1.png')), ]); } } class CircleAvatarWidget extends StatelessWidget { const CircleAvatarWidget( {Key key, @required this.url, @required this.des, this.height, this.width}) : super(key: key); final String url; final String des; final double height; final double width; @override Widget build(BuildContext context) { return Container( child: Column( children: [ Container( height: height, width: width, // width: 50, // height: 50, decoration: new BoxDecoration( // color: Colors.green, // border color shape: BoxShape.circle, border: Border.all(color: Hexcolor('#B7831A'), width: 1.5)), child: CircleAvatar( radius: SizeConfig.imageSizeMultiplier * 12, child: Image.asset(url), backgroundColor: Colors.transparent, ), ), SizedBox( height: 10, ), AppText( des, fontSize: 1.5 * SizeConfig.textMultiplier, textAlign: TextAlign.center, ) ], ), ); } } class PatientProfileButton extends StatelessWidget { final String name; final String icon; final dynamic route; final PatiantInformtion patient; final String url = "assets/images/"; PatientProfileButton( {Key key, this.patient, this.name, this.icon, this.route}) : super(key: key); @override Widget build(BuildContext context) { return new Container( margin: new EdgeInsets.symmetric(horizontal: 4.0), child: InkWell( onTap: () { navigator(context, this.route); }, child: Column(children: [ Container( alignment: Alignment.topLeft, padding: EdgeInsets.all(5), child: new AppText( this.name, color: Colors.red, fontWeight: FontWeight.w600, textAlign: TextAlign.left, fontSize: SizeConfig.textMultiplier * 2, ), ), Container( child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ Container( padding: EdgeInsets.all(10), child: new Image.asset(url + icon)) ], )) ]), ), decoration: BoxDecoration( // border: Border.all(), color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(10)), boxShadow: [ BoxShadow( color: Colors.grey.withOpacity(0.2), spreadRadius: 5, blurRadius: 7, offset: Offset(0, 3), // changes position of shadow ), ], ), padding: EdgeInsets.fromLTRB(5, 10, 5, 5), ); } void navigator(BuildContext context, route) { Navigator.of(context).pushNamed(route, arguments: {'patient': patient}); } }