Merge branch 'fix_insurance_update' into 'diplomatic-quarter-live'
fix LabResult See merge request Cloud_Solution/diplomatic-quarter!166dq_and_master
commit
735ed91f9c
@ -0,0 +1,42 @@
|
||||
import 'package:diplomaticquarterapp/core/model/labs/patient_lab_orders.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/medical/labs_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
|
||||
import 'lab_result_chart_and_detials.dart';
|
||||
|
||||
class FlowChartPage extends StatelessWidget {
|
||||
final PatientLabOrders patientLabOrder;
|
||||
final String filterName;
|
||||
|
||||
FlowChartPage({this.patientLabOrder, this.filterName});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BaseView<LabsViewModel>(
|
||||
onModelReady: (model) => model.getPatientLabOrdersResults(
|
||||
patientLabOrder: patientLabOrder, procedure: filterName),
|
||||
builder: (context, model, w) => AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: filterName,
|
||||
baseViewModel: model,
|
||||
body: SingleChildScrollView(
|
||||
child: model.labOrdersResultsList.isNotEmpty
|
||||
? Container(
|
||||
child: LabResultChartAndDetails(
|
||||
name: filterName,
|
||||
labResult: model.labOrdersResultsList,
|
||||
),
|
||||
)
|
||||
: Container(
|
||||
child: Center(
|
||||
child: Texts('no Data'),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,112 @@
|
||||
import 'package:diplomaticquarterapp/core/model/labs/lab_result.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hexcolor/hexcolor.dart';
|
||||
|
||||
class LabResultDetailsWidget extends StatefulWidget {
|
||||
final List<LabResult> labResult;
|
||||
|
||||
LabResultDetailsWidget({
|
||||
this.labResult,
|
||||
});
|
||||
|
||||
@override
|
||||
_VitalSignDetailsWidgetState createState() => _VitalSignDetailsWidgetState();
|
||||
}
|
||||
|
||||
class _VitalSignDetailsWidgetState extends State<LabResultDetailsWidget> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.transparent,
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(10.0), topRight: Radius.circular(10.0)),
|
||||
border: Border.all(color: Colors.grey, width: 1),
|
||||
),
|
||||
margin: EdgeInsets.all(20),
|
||||
child: Container(
|
||||
color: Colors.transparent,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Table(
|
||||
border: TableBorder.symmetric(
|
||||
inside: BorderSide(width: 2.0, color: Colors.grey[300]),
|
||||
),
|
||||
children: fullData(),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
List<TableRow> fullData() {
|
||||
List<TableRow> tableRow = [];
|
||||
tableRow.add(TableRow(children: [
|
||||
Container(
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Theme.of(context).primaryColor,
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(10.0),
|
||||
),
|
||||
),
|
||||
child: Center(
|
||||
child: Texts(
|
||||
TranslationBase.of(context).date,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
height: 60,
|
||||
),
|
||||
),
|
||||
Container(
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Theme.of(context).primaryColor,
|
||||
borderRadius: BorderRadius.only(
|
||||
topRight: Radius.circular(10.0),
|
||||
),
|
||||
),
|
||||
child: Center(
|
||||
child: Texts(TranslationBase.of(context).labResult, color: Colors.white),
|
||||
),
|
||||
height: 60),
|
||||
)
|
||||
]));
|
||||
widget.labResult.forEach((vital) {
|
||||
tableRow.add(TableRow(children: [
|
||||
Container(
|
||||
child: Container(
|
||||
padding: EdgeInsets.all(10),
|
||||
color: Colors.white,
|
||||
child: Center(
|
||||
child: Texts(
|
||||
// '${DateUtil.getWeekDay(vital.vitalSignDate.weekday)}, ${vital.vitalSignDate.day} ${DateUtil.getMonth(vital.vitalSignDate.month)}, ${vital.vitalSignDate.year} ',
|
||||
'${vital.sampleCollectedOn}',
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
child: Container(
|
||||
padding: EdgeInsets.all(10),
|
||||
color: Colors.white,
|
||||
child: Center(
|
||||
child: Texts(
|
||||
'${vital.resultValue}',
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
]));
|
||||
});
|
||||
return tableRow;
|
||||
}
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
import 'package:diplomaticquarterapp/core/model/labs/lab_result.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_expandable_notifier.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:charts_flutter/flutter.dart' as charts;
|
||||
|
||||
import 'Lab_Result_details_wideget.dart';
|
||||
|
||||
class LabResultChartAndDetails extends StatelessWidget {
|
||||
LabResultChartAndDetails({
|
||||
Key key,
|
||||
@required this.labResult,
|
||||
@required this.name,
|
||||
}) : super(key: key);
|
||||
|
||||
final List<LabResult> labResult;
|
||||
final String name;
|
||||
|
||||
List<TimeSeriesSales> _timeSeriesData = [];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
children: <Widget>[
|
||||
AppExpandableNotifier(
|
||||
headerWidget: AppTimeSeriesChart(
|
||||
seriesList: generateData(),
|
||||
chartName: name,
|
||||
startDate: DateUtil.convertStringToDateTime(labResult[0].sampleCollectedOn),
|
||||
endDate: DateTime.now(),
|
||||
),
|
||||
bodyWidget: LabResultDetailsWidget(
|
||||
labResult: labResult,
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
generateData() {
|
||||
if (labResult.length > 0) {
|
||||
int x =0;
|
||||
labResult.forEach(
|
||||
(element) {
|
||||
try {
|
||||
var resultValueDouble =double.parse(element.resultValue);
|
||||
var resultValueInt = resultValueDouble.toInt();
|
||||
_timeSeriesData.add(
|
||||
TimeSeriesSales(
|
||||
DateUtil.convertStringToDateTime(element.sampleCollectedOn),
|
||||
resultValueInt,
|
||||
),
|
||||
);
|
||||
|
||||
} catch (e) {
|
||||
print(e);
|
||||
}
|
||||
|
||||
},
|
||||
);
|
||||
}
|
||||
return [
|
||||
new charts.Series<TimeSeriesSales, DateTime>(
|
||||
id: 'Sales',
|
||||
colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault,
|
||||
domainFn: (TimeSeriesSales sales, _) => sales.time,
|
||||
measureFn: (TimeSeriesSales sales, _) => sales.sales,
|
||||
data: _timeSeriesData,
|
||||
)
|
||||
];
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue