TimeSeriesChart as widget

merge-requests/85/head
Elham Rababah 6 years ago
parent 1347198928
commit bd24b7c196

@ -27,6 +27,7 @@ class PatientsProvider with ChangeNotifier {
bool isError = false;
String error = '';
List<VitalSignResModel> patientVitalSignList = [];
List<VitalSignResModel> patientVitalSignOrderdSubList = [];
List<LabOrdersResModel> patientLabResultOrdersList = [];
List<PrescriptionResModel> patientPrescriptionsList = [];
List<RadiologyResModel> patientRadiologyList = [];
@ -117,6 +118,22 @@ class PatientsProvider with ChangeNotifier {
res['List_DoctorPatientVitalSign'].forEach((v) {
patientVitalSignList.add(new VitalSignResModel.fromJson(v));
});
if (patientVitalSignList.length > 0) {
List<VitalSignResModel> patientVitalSignOrderdSubListTemp = [];
patientVitalSignOrderdSubListTemp = patientVitalSignList;
patientVitalSignOrderdSubListTemp
.sort((VitalSignResModel a, VitalSignResModel b) {
return b.vitalSignDate.microsecondsSinceEpoch -
a.vitalSignDate.microsecondsSinceEpoch;
});
patientVitalSignOrderdSubList.clear();
for(int x =0; x< 20;x++ ){
patientVitalSignOrderdSubList.add(patientVitalSignOrderdSubListTemp[x]);
}
var asd="";
}
// patientVitalSignList = res['List_DoctorPatientVitalSign'];
} else {
isError = true;
@ -283,12 +300,12 @@ class PatientsProvider with ChangeNotifier {
}
}
getPatientProgressNote(patient) async{
getPatientProgressNote(patient) async {
setBasicData();
try {
if (await Helpers.checkConnection()) {
final response =await AppClient.post(PATIENT_PROGRESS_NOTE_URL, body: json.encode(patient));
final response = await AppClient.post(PATIENT_PROGRESS_NOTE_URL,
body: json.encode(patient));
final int statusCode = response.statusCode;
isLoading = false;
@ -299,7 +316,7 @@ class PatientsProvider with ChangeNotifier {
var res = json.decode(response.body);
print('$res');
if (res['MessageStatus'] == 1) {
patientProgressNoteList = res['List_GetPregressNoteForInPatient'];
patientProgressNoteList = res['List_GetPregressNoteForInPatient'];
} else {
isError = true;
error = res['ErrorMessage'] ?? res['ErrorEndUserMessage'];
@ -316,12 +333,12 @@ class PatientsProvider with ChangeNotifier {
}
}
getPatientInsuranceApprovals(patient) async{
getPatientInsuranceApprovals(patient) async {
//setBasicData();
try {
if (await Helpers.checkConnection()) {
final response =await AppClient.post(PATIENT_INSURANCE_APPROVALS_URL, body: json.encode(patient));
final response = await AppClient.post(PATIENT_INSURANCE_APPROVALS_URL,
body: json.encode(patient));
final int statusCode = response.statusCode;
isLoading = false;
@ -349,5 +366,4 @@ class PatientsProvider with ChangeNotifier {
handelCatchErrorCase(err);
}
}
}

@ -1,10 +1,9 @@
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/patients/vital_sign_details_wideget.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';
@ -26,33 +25,12 @@ class BodyMeasurementsScreen extends StatelessWidget {
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'),
// ),
// ),
// ),
// ),
RoundedContainer(
height: SizeConfig.realScreenHeight * 0.4,
child: Center(
child: Expanded(
child: charts.TimeSeriesChart(seriesList,
animate: true,
behaviors: [
new charts.RangeAnnotation([
new charts.RangeAnnotationSegment(
vitalList[vitalList.length - 1].vitalSignDate,
vitalList[0].vitalSignDate,
charts.RangeAnnotationAxisType.domain),
]),
]),
),
),
TimeSeriesChart(seriesList: seriesList, vitalList: vitalList),
VitalSignDetailsWidget(
vitalList: vitalList.reversed.toList(),
title1: 'Date',
title2: 'Kg',
viewKey: 'HeightCm',
),
],
),
@ -62,50 +40,21 @@ class BodyMeasurementsScreen extends StatelessWidget {
}
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(2018, 11, 30), 45),
// new TimeSeriesSales(new DateTime(2017, 9, 26), 25),
// new TimeSeriesSales(new DateTime(2017, 10, 3), 100),
// new TimeSeriesSales(new DateTime(2015, 10, 10), 75),
// ];
final List<TimeSeriesSales> data = [];
vitalList = patientsProv.patientVitalSignList;
vitalList = patientsProv.patientVitalSignOrderdSubList;
if (vitalList.length > 0) {
vitalList.sort((VitalSignResModel a, VitalSignResModel b) {
return a.vitalSignDate.microsecondsSinceEpoch -
b.vitalSignDate.microsecondsSinceEpoch;
});
for (int x = vitalList.length - 1; x >= 0; x--) {
data.add(TimeSeriesSales(
new DateTime(
vitalList[x].vitalSignDate.year,
vitalList[x].vitalSignDate.month,
vitalList[x].vitalSignDate.day),
vitalList[x].bodyMassIndex.toInt()));
}
vitalList.forEach(
(element) {
data.add(
TimeSeriesSales(
new DateTime(element.vitalSignDate.year,
element.vitalSignDate.month, element.vitalSignDate.day),
element.bodyMassIndex.toInt(),
),
);
},
);
}
return [
new charts.Series<TimeSeriesSales, DateTime>(
@ -118,6 +67,7 @@ class BodyMeasurementsScreen extends StatelessWidget {
}
}
class LinearSales {
final int year;
final int sales;

@ -0,0 +1,51 @@
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/models/patient/vital_sign_res_model.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart';
import 'package:charts_flutter/flutter.dart' as charts;
class TimeSeriesChart extends StatelessWidget {
const TimeSeriesChart({
Key key,
@required this.seriesList,
@required this.vitalList,
}) : super(key: key);
final List<charts.Series> seriesList;
final List<VitalSignResModel> vitalList;
@override
Widget build(BuildContext context) {
return RoundedContainer(
height: SizeConfig.realScreenHeight * 0.4,
child: Center(
child: Expanded(
child: charts.TimeSeriesChart(
seriesList,
animate: true,
behaviors: [
new charts.RangeAnnotation(
[
new charts.RangeAnnotationSegment(
DateTime(
vitalList[vitalList.length - 1]
.vitalSignDate
.year,
vitalList[vitalList.length - 1]
.vitalSignDate
.month +
3,
vitalList[vitalList.length - 1]
.vitalSignDate
.day),
vitalList[0].vitalSignDate,
charts.RangeAnnotationAxisType.domain),
],
),
],
),
),
),
);
}
}
Loading…
Cancel
Save