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/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: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: [ 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, ), ), 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), ), ), ), ), ), ); } }