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'; /* *@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) { // final double contWidth = SizeConfig.realScreenWidth * 0.70; // final double contHeight = SizeConfig.screenHeight * 0.30; return CustomScrollView(primary: false, slivers: [ SliverPadding( padding: const EdgeInsets.fromLTRB(20, 30, 15, 10), sliver: SliverGrid.count( crossAxisSpacing: 10, mainAxisSpacing: 20, crossAxisCount: 2, childAspectRatio: 1.5, children: [ PatientProfileButton( key: key, patient: patient, name: 'Vital Sign', route: VITAL_SIGN_DETAILS, icon: 'heartbeat.png'), PatientProfileButton( key: key, patient: patient, route: LAB_ORDERS, name: 'Lab Order', icon: 'lab.png'), PatientProfileButton( key: key, patient: patient, route: PRESCRIPTIONS, name: 'Prescription', icon: 'note.png'), PatientProfileButton( key: key, patient: patient, route: RADIOLOGY, name: 'Radiology', icon: 'radiology-1.png'), PatientProfileButton( key: key, patient: patient, route: PROGRESS_NOTE, name: 'Progress Notes', icon: 'heartbeat.png'), PatientProfileButton( key: key, patient: patient, route: PATIENT_INSURANCE_APPROVALS, name: 'Insurance Aprovals', icon: 'lab.png'), PatientProfileButton( key: key, patient: patient, route: REFER_PATIENT, name: 'Refer Patient', icon: 'note.png'), PatientProfileButton( key: key, patient: patient, route: PATIENT_ORDERS, name: 'Orders', icon: 'radiology-1.png'), ])) ]); // child: ListView( // children: [ // Padding( // padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 14), // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // AppText( // 'Patient Medical Information ', // fontSize: SizeConfig.textMultiplier * 3, // fontWeight: FontWeight.w700, // color: Hexcolor('#58434F'), // ), // SizedBox( // height: 20, // ), // Row( // mainAxisAlignment: MainAxisAlignment.spaceAround, // children: [ // InkWell( // onTap: () { // navigator(context, VITAL_SIGN_DETAILS); // }, // child: CircleAvatarWidget( // des: 'Vital Sign', // url: url + 'heartbeat.png', // width: (contWidth) / 4.5, // height: (contWidth) / 4.5, // ), // ), // InkWell( // onTap: () { // navigator(context, LAB_ORDERS); // }, // child: CircleAvatarWidget( // des: 'Lab Result', // url: url + 'lab.png', // width: (contWidth) / 4.5, // height: (contWidth) / 4.5, // ), // ), // InkWell( // onTap: () { // navigator(context, PRESCRIPTIONS); // }, // child: CircleAvatarWidget( // des: 'Prescription', // url: url + 'note.png', // width: (contWidth) / 4.5, // height: (contWidth) / 4.5, // ), // ), // InkWell( // //RADIOLOGY // onTap: () { // navigator(context, RADIOLOGY); // }, // child: CircleAvatarWidget( // des: 'Radiology', // url: url + 'radiology-1.png', // width: (contWidth) / 4.5, // height: (contWidth) / 4.5, // ), // ), // ], // ), // Row( // mainAxisAlignment: MainAxisAlignment.spaceAround, // children: [ // Visibility( // visible: selectedPatientType != 0 && selectedPatientType != 5 , // child: InkWell( // onTap: () { // navigator(context, PROGRESS_NOTE); // }, // child: CircleAvatarWidget( // des: 'Progress Notes', // url: url + 'heartbeat.png', // width: (contWidth) / 4.5, // height: (contWidth) / 4.5, // ), // ), // ), // Visibility( // child: InkWell( // onTap: () { // navigator(context, PATIENT_INSURANCE_APPROVALS); // }, // child: CircleAvatarWidget( // des: 'Insurance Aprovals', // url: url + 'lab.png', // width: (contWidth) / 4.5, // height: (contWidth) / 4.5, // ), // ), // ), // Visibility( // visible: selectedPatientType != 0 && selectedPatientType != 5 && selectedPatientType != 2, // child: InkWell( // onTap: () { // navigator(context, PRESCRIPTIONS); // }, // child: CircleAvatarWidget( // des: 'Refer Patient ', // url: url + 'note.png', // width: (contWidth) / 4.5, // height: (contWidth) / 4.5, // ), // ), // ), // Visibility( // visible: selectedPatientType != 0 && selectedPatientType != 5, // child: InkWell( // onTap: () { // navigator(context, PATIENT_ORDERS); // }, // child: CircleAvatarWidget( // des: 'Orders', // url: url + 'radiology-1.png', // width: (contWidth) / 4.5, // height: (contWidth) / 4.5, // ), // ), // ), // ], // ) // ], // ), // ), // ], // ), // width: contWidth, // height: contHeight, //); } } 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: [ Expanded( flex: 1, child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( padding: EdgeInsets.all(5), child: new AppText( this.name, color: Colors.red, fontWeight: FontWeight.w600, textAlign: TextAlign.left, fontSize: 16, ), ) ], ), ), Expanded( flex: 1, 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}); } }