import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/labs/patient_lab_orders.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/labs_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart'; import 'package:diplomaticquarterapp/widgets/Loader/gif_loader_container.dart'; import 'package:diplomaticquarterapp/widgets/charts/show_chart.dart'; import 'package:diplomaticquarterapp/widgets/data_display/medical/LabResult/full_screen_lab_result_graph.dart'; import 'package:diplomaticquarterapp/widgets/data_display/medical/LabResult/lab_result_graph.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'lab_result_chart_and_detials.dart'; class FlowChartPage extends StatelessWidget { final PatientLabOrders? patientLabOrder; final String? filterName; FlowChartPage({this.patientLabOrder, this.filterName}); ProjectViewModel? projectViewModel; @override Widget build(BuildContext context) { projectViewModel = Provider.of(context); return BaseView( onModelReady: (model) => model.getPatientLabOrdersResults( patientLabOrder: patientLabOrder, procedure: filterName, isVidaPlus: Utils.isVidaPlusProject( projectViewModel!, int.parse(patientLabOrder!.projectID!))), builder: (context, model, w) => SizedBox( height: MediaQuery.sizeOf(context).height * .75, child: (model.state == ViewState.Busy) ? Material( color: Colors.grey.withOpacity(0.6), shape: RoundedRectangleBorder( borderRadius: BorderRadius.only( topLeft: Radius.circular(20), topRight: Radius.circular(20))), child: Center( child: Container( child: GifLoaderContainer(), margin: EdgeInsets.only( bottom: MediaQuery.of(context).size.height * 0.09)), ), ) : SingleChildScrollView( child: model.labOrdersResultsList.isNotEmpty ? Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Padding( padding: const EdgeInsets.only( top: 16.0, right: 16.0, bottom: 10), child: GestureDetector( onTap: () => Navigator.pop(context), child: Align( alignment: Alignment.centerRight, child: Icon( Icons.close, color: Colors.black, size: 28, ), ), ), ), Container( width: double.infinity, padding: EdgeInsets.only( left: 17, top: 12, right: 13, bottom: 12), margin: EdgeInsets.only(left: 21, right: 21, top: 21), decoration: BoxDecoration( shape: BoxShape.rectangle, color: Colors.white, borderRadius: BorderRadius.all( Radius.circular(10.0), ), boxShadow: [ BoxShadow( color: Color(0xff000000).withOpacity(.05), //spreadRadius: 5, blurRadius: 27, offset: Offset(0, -3), ), ], ), // child: LineChartCurved( // title: filterName, // labResult: model.labOrdersResultsList, // ), // child: ShowChart( // title: filterName!, // timeSeries: model.timeSeries, // indexes: model.timeSeries.length ~/ 5.5 ?? 0, // ), child: Column( children: [ SizedBox( height: MediaQuery.sizeOf(context).height / 4, child: DynamicResultChart( dataPoints: model.threePointGraphValue, thresholds: model.threshold, width: MediaQuery.sizeOf(context).width - 77, scrollDirection: Axis.horizontal, height: MediaQuery.sizeOf(context).height / 4, ), ), InkWell( onTap: () { model.createFullGraphDatPoints(() { Navigator.push(context, MaterialPageRoute(builder: (_) { return FullScreenGraph( completeeGraphValues: model.completeeGraphValues, threshold: model.threshold, ); })); }); }, child: Text(TranslationBase.of(context) .seeAllGraphValues), ) ], ), ), LabResultChartAndDetails( name: filterName!, labResult: model.labOrdersResultsList, ), ], ) : Center( child: Container( padding: EdgeInsets.only( top: MediaQuery.of(context).size.height * 0.32), child: Center( child: getNoDataWidget(context), ), ), ), ), ), ); } }