first step form chart

merge-requests/85/head
Elham Rababah 6 years ago
parent 2d19a83670
commit 6ebee5dbf6

@ -0,0 +1,7 @@
/// Sample linear data type.
class ChartAxis {
final int xAxis;
final int yAxis;
ChartAxis(this.xAxis, this.yAxis);
}

@ -5,6 +5,8 @@
*@return:VitalSignResModel *@return:VitalSignResModel
*@desc: VitalSignResModel class *@desc: VitalSignResModel class
*/ */
import 'package:doctor_app_flutter/util/helpers.dart';
class VitalSignResModel { class VitalSignResModel {
var transNo; var transNo;
var projectID; var projectID;
@ -42,7 +44,7 @@ class VitalSignResModel {
var triageCategory; var triageCategory;
var gCScore; var gCScore;
var lineItemNo; var lineItemNo;
var vitalSignDate; DateTime vitalSignDate;
var actualTimeTaken; var actualTimeTaken;
var sugarLevel; var sugarLevel;
var fBS; var fBS;
@ -168,7 +170,7 @@ class VitalSignResModel {
triageCategory = json['TriageCategory']; triageCategory = json['TriageCategory'];
gCScore = json['GCScore']; gCScore = json['GCScore'];
lineItemNo = json['LineItemNo']; lineItemNo = json['LineItemNo'];
vitalSignDate = json['VitalSignDate']; vitalSignDate = Helpers.convertStringToDate(json['VitalSignDate']);
actualTimeTaken = json['ActualTimeTaken']; actualTimeTaken = json['ActualTimeTaken'];
sugarLevel = json['SugarLevel']; sugarLevel = json['SugarLevel'];
fBS = json['FBS']; fBS = json['FBS'];

@ -1,143 +1,183 @@
import 'package:charts_flutter/flutter.dart' as charts; import 'package:charts_flutter/flutter.dart' as charts;
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/models/chart_axis_model.dart';
import 'package:doctor_app_flutter/models/patient/vital_sign_res_model.dart'; import 'package:doctor_app_flutter/models/patient/vital_sign_res_model.dart';
import 'package:doctor_app_flutter/providers/patients_provider.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/charts/app_line_chart.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class BodyMeasurementsScreen extends StatelessWidget { class BodyMeasurementsScreen extends StatelessWidget {
BodyMeasurementsScreen(); BodyMeasurementsScreen();
List<VitalSignResModel> vitalList; // ;
PatientsProvider patientsProv;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
_seriesData = List<charts.Series<Pollution, String>>(); patientsProv = Provider.of<PatientsProvider>(context);
_seriesPieData = List<charts.Series<Task, String>>(); List<charts.Series> seriesList = generateData();
_seriesLineData = List<charts.Series<Sales, int>>();
_generateData(); // generateData();
return AppScaffold( return AppScaffold(
appBarTitle: 'Body Measurements', appBarTitle: 'Body Measurements',
body: RoundedContainer( body: ListView(
height: SizeConfig.realScreenHeight*0.4, children: <Widget>[
child: Padding( Column(
padding: EdgeInsets.all(8.0), children: <Widget>[
child: Container( RoundedContainer(
child: Center( height: SizeConfig.realScreenHeight * 0.4,
child: Column( child: Padding(
children: <Widget>[ padding: EdgeInsets.all(8.0),
Text( child: Container(
'Body Mass Index', child: Center(
style: TextStyle( child: Text('sss'),
fontSize: 24.0, fontWeight: FontWeight.bold),
),
Expanded(
child: charts.BarChart(
_seriesData,
animate: true,
barGroupingType: charts.BarGroupingType.grouped,
// behaviors: [new charts.SeriesLegend()],
// primaryMeasureAxis: ,
animationDuration: Duration(seconds: 1),
), ),
), ),
], ),
),
Container(
height: SizeConfig.realScreenHeight * 0.4,
child: Center(
child: Expanded(
child: charts.TimeSeriesChart(seriesList,
animate: true,
behaviors: [
new charts.RangeAnnotation([
new charts.RangeAnnotationSegment(
new DateTime(2017, 10, 4),
new DateTime(2017, 10, 15),
charts.RangeAnnotationAxisType.domain),
]),
]),
),
),
), ),
), ],
), ),
), ],
), ),
); );
} }
List<charts.Series<Pollution, String>> _seriesData; generateData() {
List<charts.Series<Task, String>> _seriesPieData; var myFakeMobileData3 = [
List<charts.Series<Sales, int>> _seriesLineData; new LinearSales(0, 15),
new LinearSales(1, 75),
_generateData() { new LinearSales(2, 300),
var data1 = [ new LinearSales(3, 225),
new Pollution(1980, 'USA', 40), ];
final myFakeDesktopData = [
new ChartAxis(10, 35),
new ChartAxis(1, 36),
new ChartAxis(5, 40),
new ChartAxis(17, 35),
new ChartAxis(4, 35),
new ChartAxis(5, 36),
new ChartAxis(15, 35),
new ChartAxis(7, 40),
new ChartAxis(11, 36),
new ChartAxis(2, 35),
new ChartAxis(10, 38),
new ChartAxis(1, 38),
];
final data = [
new TimeSeriesSales(new DateTime(2017, 9, 19), 5),
new TimeSeriesSales(new DateTime(2017, 9, 26), 25),
new TimeSeriesSales(new DateTime(2017, 10, 3), 100),
new TimeSeriesSales(new DateTime(2017, 10, 10), 75),
]; ];
final List<TimeSeriesSales> data1 = [];
_seriesData.add( final List<ChartAxis> myFakeDesktopData1 = [];
charts.Series( List<VitalSignResModel> vitalList = patientsProv.patientVitalSignList;
domainFn: (Pollution pollution, _) => '', if (vitalList.length > 0) {
measureFn: (Pollution pollution, _) => pollution.quantity, // vitalList.sort((VitalSignResModel a, VitalSignResModel b) {
id: '2017', // return a.bodyMassIndex.toInt() - b.bodyMassIndex.toInt();
data: data1, // });
fillPatternFn: (_, __) => charts.FillPatternType.solid, for (int x = vitalList.length - 1; x >= 0; x--) {
fillColorFn: (Pollution pollution, _) => myFakeDesktopData1.add(
charts.ColorUtil.fromDartColor(Color(0xff990099)), new ChartAxis(
), // x,
); vitalList[x].vitalSignDate.day,
_seriesData.add( // 20,
charts.Series( // vitalSign.bodyMassIndex.toInt(),
domainFn: (Pollution pollution, _) => '', // vitalSign.vitalSignDate.toString(),
measureFn: (Pollution pollution, _) => pollution.quantity, // vitalSign.pulseBeatPerMinute!=null?vitalSign.pulseBeatPerMinute.toInt():50,
id: '2017', vitalList[x].bodyMassIndex.toInt(),
data: data1, ),
fillPatternFn: (_, __) => charts.FillPatternType.solid, );
fillColorFn: (Pollution pollution, _) => data1.add(TimeSeriesSales(new DateTime(vitalList[x].vitalSignDate.year,vitalList[x].vitalSignDate.month,vitalList[x].vitalSignDate.day),
charts.ColorUtil.fromDartColor(Color(0xff990099)), vitalList[x].bodyMassIndex.toInt()));
), // data1.add(TimeSeriesSales(vitalList[x].vitalSignDate,vitalList[x].bodyMassIndex.toInt() + x * 15));
); }
_seriesData.add( // vitalList.forEach((VitalSignResModel vitalSign) {
charts.Series(
domainFn: (Pollution pollution, _) => '',
measureFn: (Pollution pollution, _) => pollution.quantity,
id: '2017',
data: data1,
fillPatternFn: (_, __) => charts.FillPatternType.solid,
fillColorFn: (Pollution pollution, _) =>
charts.ColorUtil.fromDartColor(Color(0xff990099)),
),
);
_seriesData.add(
charts.Series(
domainFn: (Pollution pollution, _) => '',
measureFn: (Pollution pollution, _) => pollution.quantity,
id: '2017',
data: data1,
fillPatternFn: (_, __) => charts.FillPatternType.solid,
fillColorFn: (Pollution pollution, _) =>
charts.ColorUtil.fromDartColor(Color(0xff990099)),
),
);
_seriesData.add(
charts.Series(
domainFn: (Pollution pollution, _) => '',
measureFn: (Pollution pollution, _) => pollution.quantity,
id: '2017',
data: data1,
fillPatternFn: (_, __) => charts.FillPatternType.solid,
fillColorFn: (Pollution pollution, _) =>
charts.ColorUtil.fromDartColor(Color(0xff990099)),
),
);
// // print(e);'
// // int x = int.parse(vitalSign.bodyMassIndex);
// myFakeDesktopData1.add(
// new ChartAxis(
// vitalSign.vitalSignDate.day,
// // 20,
// // vitalSign.bodyMassIndex.toInt(),
// // vitalSign.vitalSignDate.toString(),
// // vitalSign.pulseBeatPerMinute!=null?vitalSign.pulseBeatPerMinute.toInt():50,
// vitalSign.bodyMassIndex.toInt(),
// ),
// );
// });
// // map(
// // (VitalSignResModel vitalSign) {
// // print(vitalSign);
// // myFakeDesktopData1.add(
// // ChartAxis(vitalSign.transNo, vitalSign.bodyMassIndex),
// // );
// // },
// // );
// }
}
return [
new charts.Series<TimeSeriesSales, DateTime>(
id: 'Sales',
domainFn: (TimeSeriesSales sales, _) => sales.time,
measureFn: (TimeSeriesSales sales, _) => sales.sales,
data: data1,
)
// charts.Series<ChartAxis, int>(
// id: 'ww',
// // Light shade for even xAxiss, dark shade for odd.
// colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault,
// // dashPatternFn: (ChartAxis yAxis, _) => [2, 4],
// strokeWidthPxFn: (ChartAxis yAxis, _) => 2.5,
// domainFn: (ChartAxis xAxis, _) => xAxis.xAxis,
// measureFn: (ChartAxis yAxis, _) => yAxis.yAxis,
// data: myFakeDesktopData1,
// ),
// new charts.Series<LinearSales, int>(
// id: 'Desktop',
// colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault,
// domainFn: (LinearSales sales, _) => sales.year,
// measureFn: (LinearSales sales, _) => sales.sales,
// data: myFakeDesktopData1,
// )
];
} }
} }
class Pollution { class LinearSales {
String place; final int year;
int year; final int sales;
int quantity;
Pollution(this.year, this.place, this.quantity);
}
class Task {
String task;
double taskvalue;
Color colorval;
Task(this.task, this.taskvalue, this.colorval); LinearSales(this.year, this.sales);
} }
class Sales { /// Sample time series data type.
int yearval; class TimeSeriesSales {
int salesval; final DateTime time;
final int sales;
Sales(this.yearval, this.salesval); TimeSeriesSales(this.time, this.sales);
} }

@ -73,6 +73,7 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
vitalSing = routeArgs['vitalSing']; vitalSing = routeArgs['vitalSing'];
return AppScaffold( return AppScaffold(
appBarTitle: "vital Sing ", appBarTitle: "vital Sing ",
isloading: patientsProv.isLoading,
body: CustomScrollView( body: CustomScrollView(
primary: false, primary: false,
slivers: <Widget>[ slivers: <Widget>[

@ -402,6 +402,10 @@ class _VerifyAccountState extends State<VerifyAccount> {
} }
}).catchError((err) { }).catchError((err) {
print('$err'); print('$err');
changeLoadingStata(false);
print('$err');
helpers.showErrorToast();
}); });
} }
} }

@ -0,0 +1,34 @@
import 'package:flutter/material.dart';
import 'package:charts_flutter/flutter.dart' as charts;
class AppLineChart extends StatelessWidget {
const AppLineChart({
Key key,
@required this.seriesList,
this.chartTitle,
}) : super(key: key);
final List<charts.Series> seriesList;
final String chartTitle;
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: <Widget>[
Text(
'Body Mass Index',
style: TextStyle(fontSize: 24.0, fontWeight: FontWeight.bold),
),
Expanded(
child: charts.LineChart(seriesList,
defaultRenderer: new charts.LineRendererConfig(
includeArea: false, stacked: true),
animate: true),
),
],
),
);
}
}
Loading…
Cancel
Save