vital sign design

merge-requests/579/head
mosazaid 5 years ago
parent 9468450c4d
commit a3eb9dbb55

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

@ -26,6 +26,12 @@ class VitalSignsViewModel extends BaseViewModel {
String respirationBeatPerMinute = "0"; String respirationBeatPerMinute = "0";
String bloodPressure = "0 / 0"; String bloodPressure = "0 / 0";
String oxygenation = "0 - 0"; String oxygenation = "0 - 0";
String painScore = "-";
String painLocation = "-";
String painCharacter = "-";
String painDuration = "-";
String isPainDone = "-";
String painFrequency = "-";
Future getPatientVitalSign(PatiantInformtion patient) async { Future getPatientVitalSign(PatiantInformtion patient) async {
setState(ViewState.Busy); setState(ViewState.Busy);
@ -90,7 +96,28 @@ class VitalSignsViewModel extends BaseViewModel {
if (oxygenation == "0 - 0" || if (oxygenation == "0 - 0" ||
oxygenation == null || oxygenation == null ||
oxygenation == 'null') { oxygenation == 'null') {
oxygenation = "${element.sAO2.toString()} - ${element.fIO2.toString()}"; oxygenation =
"${element.sAO2.toString()} - ${element.fIO2.toString()}";
}
if (painScore == null || painScore == "-") {
painScore = element.painScore.toString() != 'null'
? element.painScore.toString()
: "-";
painLocation = element.painLocation.toString() != 'null'
? element.painLocation.toString()
: "-";
painCharacter = element.painCharacter.toString() != 'null'
? element.painCharacter.toString()
: "-";
painDuration = element.painDuration.toString() != 'null'
? element.painDuration.toString()
: "-";
isPainDone = element.isPainManagementDone.toString() != 'null'
? element.isPainManagementDone.toString()
: "-";
painFrequency = element.painFrequency.toString() != 'null'
? element.painFrequency.toString()
: "-";
} }
}); });
setState(ViewState.Idle); setState(ViewState.Idle);

@ -0,0 +1,276 @@
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/models/patient/vital_sign/patient-vital-sign-history.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:flutter/material.dart';
class VitalSignDetailPainScale extends StatelessWidget {
final List<VitalSignHistory> vitalList;
VitalSignDetailPainScale(this.vitalList);
@override
Widget build(BuildContext context) {
return BaseView<VitalSignsViewModel>(
builder: (_, model, w) => NetworkBaseView(
baseViewModel: model,
child: SingleChildScrollView(
child: Column(
children: [
...List.generate(
vitalList.length,
(index) => Container(
child: Column(
children: [
Row(
children: [
Expanded(
child: Container(
child: Center(
child: AppText(
TranslationBase.of(context).description,
color: Colors.black,
bold: true,
),
),
),
),
Expanded(
child: Container(
child: Center(
child: AppText(
TranslationBase.of(context).value,
color: Colors.black,
bold: true,
),
),
),
),
Expanded(
child: Container(
child: Center(
child: AppText(
TranslationBase.of(context).date,
color: Colors.black,
bold: true,
),
),
),
)
],
),
SizedBox(
height: 7,
),
Divider(
color: Colors.black,
thickness: 1,
),
SizedBox(
height: 12,
),
Container(
margin: EdgeInsets.symmetric(horizontal: 16),
padding: EdgeInsets.only(left: 8),
child: Row(
children: [
Expanded(
flex: 2,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Expanded(
child: Container(
child: AppText(
TranslationBase.of(context).painScale,
fontSize: SizeConfig.textMultiplier * 1.5,
color: Color(0XFF28353E),
fontWeight: FontWeight.w600,
),
),
),
Expanded(
child: Container(
child: Center(
child: AppText(
"${vitalList[index].painScore ?? "-"}",
fontWeight: FontWeight.w700,
color: Color(0XFF28353E),
fontSize: SizeConfig.textMultiplier * 1.3,
),
),
),
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Expanded(
child: Container(
child: AppText(
"Location",
fontSize: SizeConfig.textMultiplier * 1.5,
color: Color(0XFF28353E),
fontWeight: FontWeight.w600,
),
),
),
Expanded(
child: Container(
child: Center(
child: AppText(
"${vitalList[index].painLocation ?? "-"}",
fontWeight: FontWeight.w700,
color: Color(0XFF28353E),
fontSize: SizeConfig.textMultiplier * 1.3,
),
),
),
),
],
),
Row(
children: [
Expanded(
child: Container(
child: AppText(
"Character",
fontSize: SizeConfig.textMultiplier * 1.5,
color: Color(0XFF28353E),
fontWeight: FontWeight.w600,
),
),
),
Expanded(
child: Container(
child: Center(
child: AppText(
"${vitalList[index].painCharacter ?? "-"}",
fontWeight: FontWeight.w700,
color: Color(0XFF28353E),
fontSize: SizeConfig.textMultiplier * 1.3,
),
),
),
),
],
),
Row(
children: [
Expanded(
child: Container(
child: AppText(
"Duration",
fontSize: SizeConfig.textMultiplier * 1.5,
color: Color(0XFF28353E),
fontWeight: FontWeight.w600,
),
),
),
Expanded(
child: Container(
child: Center(
child: AppText(
"${vitalList[index].painDuration ?? "-"}",
fontWeight: FontWeight.w700,
color: Color(0XFF28353E),
fontSize: SizeConfig.textMultiplier * 1.3,
),
),
),
),
],
),
Row(
children: [
Expanded(
child: Container(
child: AppText(
TranslationBase.of(context).painManagement,
fontSize: SizeConfig.textMultiplier * 1.5,
color: Color(0XFF28353E),
fontWeight: FontWeight.w600,
),
),
),
Expanded(
child: Container(
child: Center(
child: AppText(
"${vitalList[index].isPainManagementDone ?? "-"}",
fontWeight: FontWeight.w700,
color: Color(0XFF28353E),
fontSize: SizeConfig.textMultiplier * 1.3,
),
),
),
),
],
),
Row(
children: [
Expanded(
child: Container(
child: AppText(
"Frequency",
fontSize: SizeConfig.textMultiplier * 1.5,
color: Color(0XFF28353E),
fontWeight: FontWeight.w600,
),
),
),
Expanded(
child: Container(
child: Center(
child: AppText(
"${vitalList[index].painFrequency ?? "-"}",
fontWeight: FontWeight.w700,
color: Color(0XFF28353E),
fontSize: SizeConfig.textMultiplier * 1.3,
),
),
),
),
],
),
],
),
),
Expanded(
child: Container(
padding: EdgeInsets.all(8),
child: Center(
child: AppText(
"${DateUtils.convertDateFromServerFormat(vitalList[index].createdOn, "E , dd MMM, yyyy hh:mm a")}",
fontWeight: FontWeight.w700,
color: Color(0XFF28353E),
fontSize: SizeConfig.textMultiplier * 1.6,
),
),
),
)
],
),
),
SizedBox(
height: 8,
),
],
),
),
),
],
),
),
),
);
}
}

@ -10,7 +10,10 @@ import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-head
import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; 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/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/expandable-widget-header-body.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart'; import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
@ -45,10 +48,10 @@ class VitalSignDetailsScreen extends StatelessWidget {
appBarTitle: TranslationBase.of(context).vitalSign, appBarTitle: TranslationBase.of(context).vitalSign,
body: mode.patientVitalSignsHistory.length > 0 body: mode.patientVitalSignsHistory.length > 0
? Column( ? Column(
children: [ children: [
Expanded( Expanded(
child: Container( child: Container(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Container( Container(
@ -75,7 +78,8 @@ class VitalSignDetailsScreen extends StatelessWidget {
height: MediaQuery.of(context).size.height * 0.23, height: MediaQuery.of(context).size.height * 0.23,
width: double.infinity, width: double.infinity,
padding: EdgeInsets.all(12.0), padding: EdgeInsets.all(12.0),
margin: EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), margin: EdgeInsets.symmetric(
horizontal: 16.0, vertical: 8.0),
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.rectangle, shape: BoxShape.rectangle,
color: Colors.white, color: Colors.white,
@ -99,14 +103,17 @@ class VitalSignDetailsScreen extends StatelessWidget {
children: [ children: [
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment:
CrossAxisAlignment.center,
children: [ children: [
Image.asset( Image.asset(
mode.getBMIStatus() != 1 mode.getBMIStatus() != 1
? '${assetBasePath}underweight_BMI.png' ? '${assetBasePath}underweight_BMI.png'
: '${assetBasePath}underweight_BMI-r.png', : '${assetBasePath}underweight_BMI-r.png',
height: height: MediaQuery.of(context)
MediaQuery.of(context).size.height * 0.10, .size
.height *
0.10,
), ),
const SizedBox( const SizedBox(
height: 4, height: 4,
@ -114,7 +121,8 @@ class VitalSignDetailsScreen extends StatelessWidget {
AppText( AppText(
"${TranslationBase.of(context).bmiUnderWeight}", "${TranslationBase.of(context).bmiUnderWeight}",
fontFamily: 'Poppins', fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 1.15, fontSize:
SizeConfig.textMultiplier * 1.15,
color: mode.getBMIStatus() == 1 color: mode.getBMIStatus() == 1
? Color(0XFFD02127) ? Color(0XFFD02127)
: null, : null,
@ -123,7 +131,8 @@ class VitalSignDetailsScreen extends StatelessWidget {
AppText( AppText(
"(<18.5)", "(<18.5)",
fontFamily: 'Poppins', fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 1.15, fontSize:
SizeConfig.textMultiplier * 1.15,
color: mode.getBMIStatus() == 1 color: mode.getBMIStatus() == 1
? Color(0XFFD02127) ? Color(0XFFD02127)
: null, : null,
@ -133,14 +142,17 @@ class VitalSignDetailsScreen extends StatelessWidget {
)), )),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment:
CrossAxisAlignment.center,
children: [ children: [
Image.asset( Image.asset(
mode.getBMIStatus() != 2 mode.getBMIStatus() != 2
? '${assetBasePath}health_BMI.png' ? '${assetBasePath}health_BMI.png'
: '${assetBasePath}health_BMI-r.png', : '${assetBasePath}health_BMI-r.png',
height: height: MediaQuery.of(context)
MediaQuery.of(context).size.height * 0.10, .size
.height *
0.10,
), ),
const SizedBox( const SizedBox(
height: 4, height: 4,
@ -149,7 +161,9 @@ class VitalSignDetailsScreen extends StatelessWidget {
child: AppText( child: AppText(
"${TranslationBase.of(context).normal}", "${TranslationBase.of(context).normal}",
fontFamily: 'Poppins', fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 1.15, fontSize:
SizeConfig.textMultiplier *
1.15,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
color: mode.getBMIStatus() == 2 color: mode.getBMIStatus() == 2
? Color(0XFFD02127) ? Color(0XFFD02127)
@ -159,7 +173,8 @@ class VitalSignDetailsScreen extends StatelessWidget {
AppText( AppText(
"(18.5-24.9)", "(18.5-24.9)",
fontFamily: 'Poppins', fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 1.15, fontSize:
SizeConfig.textMultiplier * 1.15,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
color: mode.getBMIStatus() == 2 color: mode.getBMIStatus() == 2
? Color(0XFFD02127) ? Color(0XFFD02127)
@ -169,14 +184,17 @@ class VitalSignDetailsScreen extends StatelessWidget {
)), )),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment:
CrossAxisAlignment.center,
children: [ children: [
Image.asset( Image.asset(
mode.getBMIStatus() != 3 mode.getBMIStatus() != 3
? '${assetBasePath}ovrweight_BMI.png' ? '${assetBasePath}ovrweight_BMI.png'
: '${assetBasePath}ovrweight_BMI-r.png', : '${assetBasePath}ovrweight_BMI-r.png',
height: height: MediaQuery.of(context)
MediaQuery.of(context).size.height * 0.10, .size
.height *
0.10,
), ),
const SizedBox( const SizedBox(
height: 4, height: 4,
@ -184,7 +202,8 @@ class VitalSignDetailsScreen extends StatelessWidget {
AppText( AppText(
"${TranslationBase.of(context).bmiOverWeight}", "${TranslationBase.of(context).bmiOverWeight}",
fontFamily: 'Poppins', fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 1.155, fontSize:
SizeConfig.textMultiplier * 1.155,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
color: mode.getBMIStatus() == 3 color: mode.getBMIStatus() == 3
? Color(0XFFD02127) ? Color(0XFFD02127)
@ -193,7 +212,8 @@ class VitalSignDetailsScreen extends StatelessWidget {
AppText( AppText(
"(25-29.9)", "(25-29.9)",
fontFamily: 'Poppins', fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 1.155, fontSize:
SizeConfig.textMultiplier * 1.155,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
color: mode.getBMIStatus() == 3 color: mode.getBMIStatus() == 3
? Color(0XFFD02127) ? Color(0XFFD02127)
@ -203,14 +223,17 @@ class VitalSignDetailsScreen extends StatelessWidget {
)), )),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment:
CrossAxisAlignment.center,
children: [ children: [
Image.asset( Image.asset(
mode.getBMIStatus() != 4 mode.getBMIStatus() != 4
? '${assetBasePath}Obese_BMI.png' ? '${assetBasePath}Obese_BMI.png'
: '${assetBasePath}Obese_BMI-r.png', : '${assetBasePath}Obese_BMI-r.png',
height: height: MediaQuery.of(context)
MediaQuery.of(context).size.height * 0.10, .size
.height *
0.10,
), ),
const SizedBox( const SizedBox(
height: 4, height: 4,
@ -218,7 +241,8 @@ class VitalSignDetailsScreen extends StatelessWidget {
AppText( AppText(
"${TranslationBase.of(context).bmiObese}", "${TranslationBase.of(context).bmiObese}",
fontFamily: 'Poppins', fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 1.15, fontSize:
SizeConfig.textMultiplier * 1.15,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
color: mode.getBMIStatus() == 4 color: mode.getBMIStatus() == 4
? Color(0XFFD02127) ? Color(0XFFD02127)
@ -227,7 +251,8 @@ class VitalSignDetailsScreen extends StatelessWidget {
AppText( AppText(
"(30-34.9)", "(30-34.9)",
fontFamily: 'Poppins', fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 1.15, fontSize:
SizeConfig.textMultiplier * 1.15,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
color: mode.getBMIStatus() == 4 color: mode.getBMIStatus() == 4
? Color(0XFFD02127) ? Color(0XFFD02127)
@ -237,14 +262,17 @@ class VitalSignDetailsScreen extends StatelessWidget {
)), )),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment:
CrossAxisAlignment.center,
children: [ children: [
Image.asset( Image.asset(
mode.getBMIStatus() != 5 mode.getBMIStatus() != 5
? '${assetBasePath}Obese_BMI.png' ? '${assetBasePath}Obese_BMI.png'
: '${assetBasePath}Obese_BMI-r.png', : '${assetBasePath}Obese_BMI-r.png',
height: height: MediaQuery.of(context)
MediaQuery.of(context).size.height * 0.10, .size
.height *
0.10,
), ),
const SizedBox( const SizedBox(
height: 4, height: 4,
@ -254,7 +282,9 @@ class VitalSignDetailsScreen extends StatelessWidget {
child: AppText( child: AppText(
"${TranslationBase.of(context).bmiObeseExtreme}", "${TranslationBase.of(context).bmiObeseExtreme}",
fontFamily: 'Poppins', fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 1.15, fontSize:
SizeConfig.textMultiplier *
1.15,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
color: mode.getBMIStatus() == 5 color: mode.getBMIStatus() == 5
? Color(0XFFD02127) ? Color(0XFFD02127)
@ -264,7 +294,8 @@ class VitalSignDetailsScreen extends StatelessWidget {
AppText( AppText(
"(35<)", "(35<)",
fontFamily: 'Poppins', fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 1.15, fontSize:
SizeConfig.textMultiplier * 1.15,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
color: mode.getBMIStatus() == 5 color: mode.getBMIStatus() == 5
? Color(0XFFD02127) ? Color(0XFFD02127)
@ -280,194 +311,467 @@ class VitalSignDetailsScreen extends StatelessWidget {
Expanded( Expanded(
child: SingleChildScrollView( child: SingleChildScrollView(
child: Container( child: Container(
margin: EdgeInsets.symmetric(horizontal: 16.0, vertical: 16), margin: EdgeInsets.symmetric(
child: GridView.count( horizontal: 16.0, vertical: 16),
shrinkWrap: true, child: Column(
physics: NeverScrollableScrollPhysics(), crossAxisAlignment:
crossAxisSpacing: 6, CrossAxisAlignment.start,
mainAxisSpacing: 6,
crossAxisCount: 3,
children: [ children: [
InkWell( GridView.count(
onTap: () => isNotOneAppointment shrinkWrap: true,
? Navigator.push( physics: NeverScrollableScrollPhysics(),
context, crossAxisSpacing: 6,
FadePage( mainAxisSpacing: 6,
page: VitalSignItemDetailsScreen( crossAxisCount: 3,
pageKey: vitalSignDetails.Height, children: [
pageTitle: InkWell(
TranslationBase.of(context).height, onTap: () => isNotOneAppointment
vitalList: ? Navigator.push(
mode.patientVitalSignsHistory, context,
patient: patient, FadePage(
patientType: patientType, page:
arrivalType: arrivalType, VitalSignItemDetailsScreen(
pageKey: vitalSignDetails
.Height,
pageTitle:
TranslationBase.of(
context)
.height,
vitalList: mode
.patientVitalSignsHistory,
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
),
),
)
: null,
child: Container(
child: VitalSignItem(
des: TranslationBase.of(context)
.height,
imagePath:
"${assetBasePath}height.png",
lastVal: mode.heightCm,
unit: TranslationBase.of(context)
.cm,
),
), ),
), ),
) InkWell(
: null, onTap: () => isNotOneAppointment
child: Container( ? Navigator.push(
child: VitalSignItem( context,
des: TranslationBase.of(context).height, FadePage(
imagePath: "${assetBasePath}height.png", page:
lastVal: mode.heightCm, VitalSignItemDetailsScreen(
unit: TranslationBase.of(context).cm, pageKey: vitalSignDetails
), .Weight,
), pageTitle:
), TranslationBase.of(
InkWell( context)
onTap: () => isNotOneAppointment .weight,
? Navigator.push( vitalList: mode
context, .patientVitalSignsHistory,
FadePage( patient: patient,
page: VitalSignItemDetailsScreen( patientType: patientType,
pageKey: vitalSignDetails.Weight, arrivalType: arrivalType,
pageTitle: ),
TranslationBase.of(context).weight, ),
vitalList: )
mode.patientVitalSignsHistory, : null,
patient: patient, child: VitalSignItem(
patientType: patientType, des: TranslationBase.of(context)
arrivalType: arrivalType, .weight,
imagePath:
"${assetBasePath}weight.png",
unit:
TranslationBase.of(context).kg,
lastVal: mode.weightKg,
), ),
), ),
) InkWell(
: null, onTap: () => isNotOneAppointment
child: VitalSignItem( ? Navigator.push(
des: TranslationBase.of(context).weight, context,
imagePath: "${assetBasePath}weight.png", FadePage(
unit: TranslationBase.of(context).kg, page:
lastVal: mode.weightKg, VitalSignItemDetailsScreen(
), pageKey: vitalSignDetails
), .Temperature,
InkWell( pageTitle:
onTap: () => isNotOneAppointment TranslationBase.of(
? Navigator.push( context)
context, .temperature,
FadePage( vitalList: mode
page: VitalSignItemDetailsScreen( .patientVitalSignsHistory,
pageKey: vitalSignDetails.Temperature, patient: patient,
pageTitle: TranslationBase.of(context) patientType: patientType,
.temperature, arrivalType: arrivalType,
vitalList: ),
mode.patientVitalSignsHistory, ),
patient: patient, )
patientType: patientType, : null,
arrivalType: arrivalType, child: Container(
child: VitalSignItem(
des: TranslationBase.of(context)
.temperature,
imagePath:
"${assetBasePath}temperature.png",
lastVal: mode.temperatureCelcius,
unit: TranslationBase.of(context)
.tempC,
),
), ),
), ),
) InkWell(
: null, onTap: () => isNotOneAppointment
child: Container( ? Navigator.push(
child: VitalSignItem( context,
des: TranslationBase.of(context).temperature, FadePage(
imagePath: "${assetBasePath}temperature.png", page:
lastVal: mode.temperatureCelcius, VitalSignItemDetailsScreen(
unit: TranslationBase.of(context).tempC, pageKey: vitalSignDetails
), .heart,
), pageTitle:
), TranslationBase.of(
InkWell( context)
onTap: () => isNotOneAppointment .heart,
? Navigator.push( vitalList: mode
context, .patientVitalSignsHistory,
FadePage( patient: patient,
page: VitalSignItemDetailsScreen( patientType: patientType,
pageKey: vitalSignDetails.heart, arrivalType: arrivalType,
pageTitle: ),
TranslationBase.of(context).heart, ),
vitalList: )
mode.patientVitalSignsHistory, : null,
patient: patient, child: VitalSignItem(
patientType: patientType, des: TranslationBase.of(context)
arrivalType: arrivalType, .heart,
imagePath:
"${assetBasePath}heart_rate.png",
lastVal: mode.hartRat,
unit:
TranslationBase.of(context).bpm,
), ),
), ),
) InkWell(
: null, onTap: () => isNotOneAppointment
child: VitalSignItem( ? Navigator.push(
des: TranslationBase.of(context).heart, context,
imagePath: "${assetBasePath}heart_rate.png", FadePage(
lastVal: mode.hartRat, page:
unit: TranslationBase.of(context).bpm, VitalSignItemDetailsScreen(
), pageKey: vitalSignDetails
), .Respiration,
InkWell( pageTitle:
onTap: () => isNotOneAppointment TranslationBase.of(
? Navigator.push( context)
context, .respirationRate,
FadePage( vitalList: mode
page: VitalSignItemDetailsScreen( .patientVitalSignsHistory,
pageKey: vitalSignDetails.Respiration, patient: patient,
pageTitle: TranslationBase.of(context) patientType: patientType,
arrivalType: arrivalType,
),
),
)
: null,
child: VitalSignItem(
des: TranslationBase.of(context)
.respirationRate, .respirationRate,
vitalList: imagePath:
mode.patientVitalSignsHistory, "${assetBasePath}respiration_rate.png",
patient: patient, lastVal:
patientType: patientType, mode.respirationBeatPerMinute,
arrivalType: arrivalType, unit: TranslationBase.of(context)
.respirationSigns,
), ),
), ),
) InkWell(
: null, onTap: () => isNotOneAppointment
child: VitalSignItem( ? Navigator.push(
des: TranslationBase.of(context).respirationRate, context,
imagePath: "${assetBasePath}respiration_rate.png", FadePage(
lastVal: mode.respirationBeatPerMinute, page:
unit: VitalSignItemDetailsScreen(
TranslationBase.of(context).respirationSigns, pageKey: vitalSignDetails
), .BloodPressure,
), pageTitle:
InkWell( TranslationBase.of(
onTap: () => isNotOneAppointment context)
? Navigator.push( .bloodPressure,
context, vitalList: mode
FadePage( .patientVitalSignsHistory,
page: VitalSignItemDetailsScreen( patient: patient,
pageKey: vitalSignDetails.BloodPressure, patientType: patientType,
pageTitle: TranslationBase.of(context) arrivalType: arrivalType,
),
),
)
: null,
child: VitalSignItem(
des: TranslationBase.of(context)
.bloodPressure, .bloodPressure,
vitalList: imagePath:
mode.patientVitalSignsHistory, "${assetBasePath}blood_pressure.png",
patient: patient, lastVal: mode.bloodPressure,
patientType: patientType, unit: TranslationBase.of(context)
arrivalType: arrivalType, .sysDias,
), ),
), ),
) InkWell(
: null, onTap: () => isNotOneAppointment
child: VitalSignItem( ? Navigator.push(
des: TranslationBase.of(context).bloodPressure, context,
imagePath: "${assetBasePath}blood_pressure.png", FadePage(
lastVal: mode.bloodPressure, page:
unit: TranslationBase.of(context).sysDias, VitalSignItemDetailsScreen(
), pageKey: vitalSignDetails
), .Oxygenation,
InkWell( pageTitle:
onTap: () => isNotOneAppointment TranslationBase.of(
? Navigator.push( context)
context, .oxygenation,
FadePage( vitalList: mode
page: VitalSignItemDetailsScreen( .patientVitalSignsHistory,
pageKey: vitalSignDetails.Oxygenation, patient: patient,
pageTitle: TranslationBase.of(context) patientType: patientType,
arrivalType: arrivalType,
),
),
)
: null,
child: VitalSignItem(
des: TranslationBase.of(context)
.oxygenation, .oxygenation,
vitalList: imagePath:
mode.patientVitalSignsHistory, "${assetBasePath}oxg.png",
patient: patient, lastVal: mode.oxygenation,
patientType: patientType, unit: "%",
arrivalType: arrivalType,
), ),
), ),
) InkWell(
: null, onTap: () => isNotOneAppointment
child: VitalSignItem( ? Navigator.push(
des: TranslationBase.of(context).oxygenation, context,
imagePath: "${assetBasePath}blood_pressure.png", FadePage(
lastVal: mode.oxygenation, page:
unit: "%", VitalSignItemDetailsScreen(
), pageKey: vitalSignDetails
.PainScale,
pageTitle:
TranslationBase.of(
context)
.painScale,
vitalList: mode
.patientVitalSignsHistory,
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
),
),
)
: null,
child: VitalSignItem(
des: TranslationBase.of(context)
.painScale,
imagePath:
"${assetBasePath}painScale.png",
lastVal: mode.painScore,
unit: "",
),
),
],
), ),
/*RoundedContainer(
width: MediaQuery.of(context).size.width / 2,
margin: EdgeInsets.symmetric(
horizontal: 0.0, vertical: 16),
child: Container(
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.only(top: 8),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Expanded(
child: Container(
child: Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: [
Row(
children: [
AppText(
"${TranslationBase.of(context).painScale}",
fontSize: SizeConfig.textMultiplier * 1.5,
color: Colors.black,
fontWeight: FontWeight.w700,
),
SizedBox(
width: 8,
),
AppText(
"${mode.painScore}",
fontSize: SizeConfig.textMultiplier * 1.3,
color: Colors.grey.shade700,
fontWeight: FontWeight.normal,
),
],
),
Row(
children: [
AppText(
"Location",
fontSize: SizeConfig.textMultiplier * 1.5,
color: Colors.black,
fontWeight: FontWeight.w700,
),
SizedBox(
width: 8,
),
AppText(
"${mode.painLocation}",
fontSize: SizeConfig.textMultiplier * 1.3,
color: Colors.grey.shade700,
fontWeight: FontWeight.normal,
),
],
),
Row(
children: [
AppText(
"Character",
fontSize: SizeConfig.textMultiplier * 1.5,
color: Colors.black,
fontWeight: FontWeight.w700,
),
SizedBox(
width: 8,
),
AppText(
"${mode.painCharacter}",
fontSize: SizeConfig.textMultiplier * 1.3,
color: Colors.grey.shade700,
fontWeight: FontWeight.normal,
),
],
),
Row(
children: [
AppText(
"Duration",
fontSize: SizeConfig.textMultiplier * 1.5,
color: Colors.black,
fontWeight: FontWeight.w700,
),
SizedBox(
width: 8,
),
AppText(
"${mode.painDuration}",
fontSize: SizeConfig.textMultiplier * 1.3,
color: Colors.grey.shade700,
fontWeight: FontWeight.normal,
),
],
),
Row(
children: [
AppText(
TranslationBase.of(context).painManagement,
fontSize: SizeConfig.textMultiplier * 1.5,
color: Colors.black,
fontWeight: FontWeight.w700,
),
SizedBox(
width: 8,
),
AppText(
"${mode.isPainDone}",
fontSize: SizeConfig.textMultiplier * 1.3,
color: Colors.grey.shade700,
fontWeight: FontWeight.normal,
),
],
),
Row(
children: [
AppText(
TranslationBase.of(context).frequency,
fontSize: SizeConfig.textMultiplier * 1.5,
color: Colors.black,
fontWeight: FontWeight.w700,
),
SizedBox(
width: 8,
),
AppText(
"${mode.painFrequency}",
fontSize: SizeConfig.textMultiplier * 1.3,
color: Colors.grey.shade700,
fontWeight: FontWeight.normal,
),
],
),
],
),
),
),
Container(
child: Image.asset(
"${assetBasePath}painScale.png",
width: 40,
height: 40,
))
],
),
),
Container(
child: Column(
children: [
Align(
alignment:
Alignment.topRight,
child: Icon(
EvaIcons.eye,
),
),
Align(
alignment:
Alignment.topLeft,
child: Container(
margin: EdgeInsets.only(
left: 5, right: 5),
child: AppText(
"${TranslationBase.of(context).painScale}",
fontFamily: 'Poppins',
fontSize: SizeConfig
.textMultiplier *
1.3,
fontWeight:
FontWeight.bold,
),
),
),
],
),
),
],
),
),
),*/
], ],
), ),
), ),
@ -475,10 +779,10 @@ class VitalSignDetailsScreen extends StatelessWidget {
), ),
], ],
), ),
),
), ),
), ],
], )
)
: Center( : Center(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
@ -502,4 +806,4 @@ class VitalSignDetailsScreen extends StatelessWidget {
), ),
); );
} }
} }

@ -2,8 +2,8 @@ import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/lookups/patient_lookup.dart'; import 'package:doctor_app_flutter/lookups/patient_lookup.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/vital_sign/patient-vital-sign-data.dart';
import 'package:doctor_app_flutter/models/patient/vital_sign/patient-vital-sign-history.dart'; import 'package:doctor_app_flutter/models/patient/vital_sign/patient-vital-sign-history.dart';
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sign_detail_pain_scale.dart';
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sing_chart_and_detials.dart'; import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sing_chart_and_detials.dart';
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sing_chart_blood_pressure.dart'; import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sing_chart_blood_pressure.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
@ -225,6 +225,10 @@ class VitalSignItemDetailsScreen extends StatelessWidget {
(element) => element.toJson()[chartInfo['viewKey']] != null, (element) => element.toJson()[chartInfo['viewKey']] != null,
); );
if (chartInfo['viewKey'] == 'PainScore') {
return VitalSignDetailPainScale(vitalList);
}
if (vitalListTemp.length != 0 && if (vitalListTemp.length != 0 &&
chartInfo['viewKey'] == 'BloodPressure' || chartInfo['viewKey'] == 'O2') { chartInfo['viewKey'] == 'BloodPressure' || chartInfo['viewKey'] == 'O2') {
return VitalSingChartBloodPressure( return VitalSingChartBloodPressure(

Loading…
Cancel
Save