diff --git a/lib/providers/patients_provider.dart b/lib/providers/patients_provider.dart index dbf68203..a70be1aa 100644 --- a/lib/providers/patients_provider.dart +++ b/lib/providers/patients_provider.dart @@ -27,6 +27,7 @@ class PatientsProvider with ChangeNotifier { bool isError = false; String error = ''; List patientVitalSignList = []; + List patientVitalSignOrderdSubList = []; List patientLabResultOrdersList = []; List patientPrescriptionsList = []; List 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 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); } } - } diff --git a/lib/screens/patients/profile/vital_sign/body_measurements_screen.dart b/lib/screens/patients/profile/vital_sign/body_measurements_screen.dart index c3b88614..769b40f9 100644 --- a/lib/screens/patients/profile/vital_sign/body_measurements_screen.dart +++ b/lib/screens/patients/profile/vital_sign/body_measurements_screen.dart @@ -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: [ Column( children: [ - // 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 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( @@ -118,6 +67,7 @@ class BodyMeasurementsScreen extends StatelessWidget { } } + class LinearSales { final int year; final int sales; diff --git a/lib/widgets/shared/charts/app_time_series_chart.dart b/lib/widgets/shared/charts/app_time_series_chart.dart new file mode 100644 index 00000000..128c81cd --- /dev/null +++ b/lib/widgets/shared/charts/app_time_series_chart.dart @@ -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 seriesList; + final List 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), + ], + ), + ], + ), + ), + ), + ); + } +}