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

@ -1,143 +1,183 @@
import 'package:charts_flutter/flutter.dart' as charts;
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/providers/patients_provider.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:flutter/material.dart';
import 'package:provider/provider.dart';
class BodyMeasurementsScreen extends StatelessWidget {
BodyMeasurementsScreen();
List<VitalSignResModel> vitalList;
// ;
PatientsProvider patientsProv;
@override
Widget build(BuildContext context) {
_seriesData = List<charts.Series<Pollution, String>>();
_seriesPieData = List<charts.Series<Task, String>>();
_seriesLineData = List<charts.Series<Sales, int>>();
_generateData();
patientsProv = Provider.of<PatientsProvider>(context);
List<charts.Series> seriesList = generateData();
// generateData();
return AppScaffold(
appBarTitle: 'Body Measurements',
body: RoundedContainer(
height: SizeConfig.realScreenHeight*0.4,
child: Padding(
padding: EdgeInsets.all(8.0),
child: Container(
child: Center(
child: Column(
children: <Widget>[
Text(
'Body Mass Index',
style: TextStyle(
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),
body: ListView(
children: <Widget>[
Column(
children: <Widget>[
RoundedContainer(
height: SizeConfig.realScreenHeight * 0.4,
child: Padding(
padding: EdgeInsets.all(8.0),
child: Container(
child: Center(
child: Text('sss'),
),
),
],
),
),
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;
List<charts.Series<Task, String>> _seriesPieData;
List<charts.Series<Sales, int>> _seriesLineData;
_generateData() {
var data1 = [
new Pollution(1980, 'USA', 40),
generateData() {
var myFakeMobileData3 = [
new LinearSales(0, 15),
new LinearSales(1, 75),
new LinearSales(2, 300),
new LinearSales(3, 225),
];
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),
];
_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)),
),
);
_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)),
),
);
_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)),
),
);
final List<TimeSeriesSales> data1 = [];
}
}
final List<ChartAxis> myFakeDesktopData1 = [];
List<VitalSignResModel> vitalList = patientsProv.patientVitalSignList;
if (vitalList.length > 0) {
// vitalList.sort((VitalSignResModel a, VitalSignResModel b) {
// return a.bodyMassIndex.toInt() - b.bodyMassIndex.toInt();
// });
for (int x = vitalList.length - 1; x >= 0; x--) {
myFakeDesktopData1.add(
new ChartAxis(
// x,
vitalList[x].vitalSignDate.day,
// 20,
// vitalSign.bodyMassIndex.toInt(),
// vitalSign.vitalSignDate.toString(),
// vitalSign.pulseBeatPerMinute!=null?vitalSign.pulseBeatPerMinute.toInt():50,
vitalList[x].bodyMassIndex.toInt(),
),
);
data1.add(TimeSeriesSales(new DateTime(vitalList[x].vitalSignDate.year,vitalList[x].vitalSignDate.month,vitalList[x].vitalSignDate.day),
vitalList[x].bodyMassIndex.toInt()));
// data1.add(TimeSeriesSales(vitalList[x].vitalSignDate,vitalList[x].bodyMassIndex.toInt() + x * 15));
}
// vitalList.forEach((VitalSignResModel vitalSign) {
class Pollution {
String place;
int year;
int quantity;
// // 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(),
// ),
// );
// });
Pollution(this.year, this.place, this.quantity);
// // 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 Task {
String task;
double taskvalue;
Color colorval;
class LinearSales {
final int year;
final int sales;
Task(this.task, this.taskvalue, this.colorval);
LinearSales(this.year, this.sales);
}
class Sales {
int yearval;
int salesval;
/// Sample time series data type.
class TimeSeriesSales {
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'];
return AppScaffold(
appBarTitle: "vital Sing ",
isloading: patientsProv.isLoading,
body: CustomScrollView(
primary: false,
slivers: <Widget>[

@ -402,6 +402,10 @@ class _VerifyAccountState extends State<VerifyAccount> {
}
}).catchError((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