|
|
|
@ -1,3 +1,4 @@
|
|
|
|
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/core/viewModel/patient-vital-sign-viewmodel.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/lookups/patient_lookup.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
|
|
|
@ -9,13 +10,15 @@ import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:hexcolor/hexcolor.dart';
|
|
|
|
|
|
|
|
|
|
class VitalSignDetailsScreen extends StatelessWidget {
|
|
|
|
|
|
|
|
|
|
int appointmentNo;
|
|
|
|
|
int projectID;
|
|
|
|
|
bool isNotOneAppointment;
|
|
|
|
|
VitalSignDetailsScreen({this.appointmentNo, this.projectID,this.isNotOneAppointment=true});
|
|
|
|
|
|
|
|
|
|
VitalSignDetailsScreen(
|
|
|
|
|
{this.appointmentNo, this.projectID, this.isNotOneAppointment = true});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
@ -23,10 +26,11 @@ class VitalSignDetailsScreen extends StatelessWidget {
|
|
|
|
|
PatiantInformtion patient = routeArgs['patient'];
|
|
|
|
|
String from = routeArgs['from'];
|
|
|
|
|
String to = routeArgs['to'];
|
|
|
|
|
String imageBasePath = 'assets/images/';
|
|
|
|
|
String imageBasePath = 'assets/images/';
|
|
|
|
|
|
|
|
|
|
return BaseView<VitalSignsViewModel>(
|
|
|
|
|
onModelReady: (model) => model.getPatientVitalSignHistory(patient, from, to),
|
|
|
|
|
onModelReady: (model) =>
|
|
|
|
|
model.getPatientVitalSignHistory(patient, from, to),
|
|
|
|
|
builder: (_, mode, widget) => AppScaffold(
|
|
|
|
|
isShowAppBar: true,
|
|
|
|
|
baseViewModel: mode,
|
|
|
|
@ -38,16 +42,19 @@ class VitalSignDetailsScreen extends StatelessWidget {
|
|
|
|
|
Row(
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
InkWell(
|
|
|
|
|
onTap: () =>isNotOneAppointment? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.Height,
|
|
|
|
|
pageTitle: TranslationBase.of(context).height,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
):null,
|
|
|
|
|
onTap: () => isNotOneAppointment
|
|
|
|
|
? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.Height,
|
|
|
|
|
pageTitle:
|
|
|
|
|
TranslationBase.of(context).height,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
: null,
|
|
|
|
|
child: Container(
|
|
|
|
|
child: VitalSignItem(
|
|
|
|
|
des: TranslationBase.of(context).height,
|
|
|
|
@ -58,16 +65,19 @@ class VitalSignDetailsScreen extends StatelessWidget {
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
InkWell(
|
|
|
|
|
onTap: () => isNotOneAppointment ? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.Weight,
|
|
|
|
|
pageTitle: TranslationBase.of(context).weight,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
):null,
|
|
|
|
|
onTap: () => isNotOneAppointment
|
|
|
|
|
? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.Weight,
|
|
|
|
|
pageTitle:
|
|
|
|
|
TranslationBase.of(context).weight,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
: null,
|
|
|
|
|
child: VitalSignItem(
|
|
|
|
|
des: TranslationBase.of(context).weight,
|
|
|
|
|
imagePath: "${imageBasePath}vital_weight.png",
|
|
|
|
@ -80,17 +90,20 @@ class VitalSignDetailsScreen extends StatelessWidget {
|
|
|
|
|
Row(
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
InkWell(
|
|
|
|
|
onTap: () => isNotOneAppointment ? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.BodyMeasurements,
|
|
|
|
|
pageTitle: TranslationBase.of(context)
|
|
|
|
|
.bodyMeasurements,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
): null,
|
|
|
|
|
onTap: () => isNotOneAppointment
|
|
|
|
|
? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey:
|
|
|
|
|
vitalSignDetails.BodyMeasurements,
|
|
|
|
|
pageTitle: TranslationBase.of(context)
|
|
|
|
|
.bodyMeasurements,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
: null,
|
|
|
|
|
child: VitalSignItem(
|
|
|
|
|
des: TranslationBase.of(context).body,
|
|
|
|
|
imagePath: "${imageBasePath}vital_body_mass.png",
|
|
|
|
@ -99,21 +112,24 @@ class VitalSignDetailsScreen extends StatelessWidget {
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
InkWell(
|
|
|
|
|
onTap: () => isNotOneAppointment ? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.Temperature,
|
|
|
|
|
pageTitle:
|
|
|
|
|
TranslationBase.of(context).temperature,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
):null,
|
|
|
|
|
onTap: () => isNotOneAppointment
|
|
|
|
|
? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.Temperature,
|
|
|
|
|
pageTitle: TranslationBase.of(context)
|
|
|
|
|
.temperature,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
: null,
|
|
|
|
|
child: Container(
|
|
|
|
|
child: VitalSignItem(
|
|
|
|
|
des: TranslationBase.of(context).temperature,
|
|
|
|
|
imagePath: "${imageBasePath}vital_temperature.png",
|
|
|
|
|
imagePath:
|
|
|
|
|
"${imageBasePath}vital_temperature.png",
|
|
|
|
|
lastVal: mode.temperatureCelcius,
|
|
|
|
|
unit: TranslationBase.of(context).tempC,
|
|
|
|
|
),
|
|
|
|
@ -124,16 +140,19 @@ class VitalSignDetailsScreen extends StatelessWidget {
|
|
|
|
|
Row(
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
InkWell(
|
|
|
|
|
onTap: () => isNotOneAppointment ? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.heart,
|
|
|
|
|
pageTitle: TranslationBase.of(context).heart,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
):null,
|
|
|
|
|
onTap: () => isNotOneAppointment
|
|
|
|
|
? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.heart,
|
|
|
|
|
pageTitle:
|
|
|
|
|
TranslationBase.of(context).heart,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
: null,
|
|
|
|
|
child: VitalSignItem(
|
|
|
|
|
des: TranslationBase.of(context).heart,
|
|
|
|
|
imagePath: "${imageBasePath}vital_heart_rate.png",
|
|
|
|
@ -142,17 +161,19 @@ class VitalSignDetailsScreen extends StatelessWidget {
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
InkWell(
|
|
|
|
|
onTap: () => isNotOneAppointment ? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.Respiration,
|
|
|
|
|
pageTitle:
|
|
|
|
|
TranslationBase.of(context).respirationRate,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
):null,
|
|
|
|
|
onTap: () => isNotOneAppointment
|
|
|
|
|
? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.Respiration,
|
|
|
|
|
pageTitle: TranslationBase.of(context)
|
|
|
|
|
.respirationRate,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
: null,
|
|
|
|
|
child: VitalSignItem(
|
|
|
|
|
des: TranslationBase.of(context).respirationRate,
|
|
|
|
|
imagePath: "${imageBasePath}vital_respiration.png",
|
|
|
|
@ -166,19 +187,23 @@ class VitalSignDetailsScreen extends StatelessWidget {
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
InkWell(
|
|
|
|
|
onTap: () => isNotOneAppointment ? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.BloodPressure,
|
|
|
|
|
pageTitle: TranslationBase.of(context).bloodPressure,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
):null,
|
|
|
|
|
onTap: () => isNotOneAppointment
|
|
|
|
|
? Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: VitalSignItemDetailsScreen(
|
|
|
|
|
pageKey: vitalSignDetails.BloodPressure,
|
|
|
|
|
pageTitle: TranslationBase.of(context)
|
|
|
|
|
.bloodPressure,
|
|
|
|
|
vitalList: mode.patientVitalSignsHistory,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
: null,
|
|
|
|
|
child: VitalSignItem(
|
|
|
|
|
des: TranslationBase.of(context).bloodPressure,
|
|
|
|
|
imagePath: "${imageBasePath}vital_blood-pressure.png",
|
|
|
|
|
imagePath:
|
|
|
|
|
"${imageBasePath}vital_blood-pressure.png",
|
|
|
|
|
lastVal: mode.bloodPressure,
|
|
|
|
|
unit: TranslationBase.of(context).sysDias,
|
|
|
|
|
),
|
|
|
|
@ -189,7 +214,12 @@ class VitalSignDetailsScreen extends StatelessWidget {
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
: Center(
|
|
|
|
|
child: AppText('No Data'),
|
|
|
|
|
child: AppText(
|
|
|
|
|
TranslationBase.of(context).vitalSignEmptyMsg,
|
|
|
|
|
fontWeight: FontWeight.normal,
|
|
|
|
|
color: HexColor("#B8382B"),
|
|
|
|
|
fontSize: SizeConfig.textMultiplier * 2.5,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|