Merge branch 'in-patient-changes' into 'development'

vital sign design

See merge request Cloud_Solution/doctor_app_flutter!579
merge-requests/580/head
Mohammad Aljammal 5 years ago
commit 1081f71e80

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

@ -25,6 +25,13 @@ class VitalSignsViewModel extends BaseViewModel {
String hartRat = "0"; String hartRat = "0";
String respirationBeatPerMinute = "0"; String respirationBeatPerMinute = "0";
String bloodPressure = "0 / 0"; String bloodPressure = "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);
@ -86,6 +93,32 @@ class VitalSignsViewModel extends BaseViewModel {
bloodPressure == 'null') { bloodPressure == 'null') {
bloodPressure = element.bloodPressure.toString(); bloodPressure = element.bloodPressure.toString();
} }
if (oxygenation == "0 - 0" ||
oxygenation == null ||
oxygenation == 'null') {
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);
} }

@ -36,5 +36,6 @@ enum vitalSignDetails {
heart, heart,
PainScale, PainScale,
Weight, Weight,
Height Height,
Oxygenation,
} }

@ -259,6 +259,14 @@ class LineChartCurvedBloodPressure extends StatelessWidget {
), ),
); );
return [lineChartBarData1, lineChartBarData2]; List<LineChartBarData> lineChartData = List();
if(spots.isNotEmpty){
lineChartData.add(lineChartBarData1);
}
if(spots2.isNotEmpty){
lineChartData.add(lineChartBarData2);
}
return lineChartData;
// return [lineChartBarData1, lineChartBarData2];
} }
} }

@ -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)
@ -278,181 +309,480 @@ class VitalSignDetailsScreen extends StatelessWidget {
), ),
), ),
Expanded( Expanded(
child: Container( child: SingleChildScrollView(
margin: EdgeInsets.symmetric(horizontal: 16.0, vertical: 4), child: Container(
child: GridView.count( margin: EdgeInsets.symmetric(
shrinkWrap: true, horizontal: 16.0, vertical: 16),
physics: NeverScrollableScrollPhysics(), child: Column(
crossAxisSpacing: 6, crossAxisAlignment:
mainAxisSpacing: 6, CrossAxisAlignment.start,
childAspectRatio: 1.0 / 1.0, children: [
crossAxisCount: 3, GridView.count(
children: [ shrinkWrap: true,
InkWell( physics: NeverScrollableScrollPhysics(),
onTap: () => isNotOneAppointment crossAxisSpacing: 6,
? Navigator.push( mainAxisSpacing: 6,
context, crossAxisCount: 3,
FadePage( children: [
page: VitalSignItemDetailsScreen( InkWell(
pageKey: vitalSignDetails.Height, onTap: () => isNotOneAppointment
pageTitle: ? Navigator.push(
TranslationBase.of(context).height, context,
vitalList: FadePage(
mode.patientVitalSignsHistory, page:
patient: patient, VitalSignItemDetailsScreen(
patientType: patientType, pageKey: vitalSignDetails
arrivalType: arrivalType, .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(
) onTap: () => isNotOneAppointment
: null, ? Navigator.push(
child: Container( context,
child: VitalSignItem( FadePage(
des: TranslationBase.of(context).height, page:
imagePath: "${assetBasePath}height.png", VitalSignItemDetailsScreen(
lastVal: mode.heightCm, pageKey: vitalSignDetails
unit: TranslationBase.of(context).cm, .Weight,
), pageTitle:
), TranslationBase.of(
), context)
InkWell( .weight,
onTap: () => isNotOneAppointment vitalList: mode
? Navigator.push( .patientVitalSignsHistory,
context, patient: patient,
FadePage( patientType: patientType,
page: VitalSignItemDetailsScreen( arrivalType: arrivalType,
pageKey: vitalSignDetails.Weight, ),
pageTitle: ),
TranslationBase.of(context).weight, )
vitalList: : null,
mode.patientVitalSignsHistory, child: VitalSignItem(
patient: patient, des: TranslationBase.of(context)
patientType: patientType, .weight,
arrivalType: arrivalType, imagePath:
"${assetBasePath}weight.png",
unit:
TranslationBase.of(context).kg,
lastVal: mode.weightKg,
),
), ),
), InkWell(
) onTap: () => isNotOneAppointment
: null, ? Navigator.push(
child: VitalSignItem( context,
des: TranslationBase.of(context).weight, FadePage(
imagePath: "${assetBasePath}weight.png", page:
unit: TranslationBase.of(context).kg, VitalSignItemDetailsScreen(
lastVal: mode.weightKg, pageKey: vitalSignDetails
), .Temperature,
), pageTitle:
InkWell( TranslationBase.of(
onTap: () => isNotOneAppointment context)
? Navigator.push( .temperature,
context, vitalList: mode
FadePage( .patientVitalSignsHistory,
page: VitalSignItemDetailsScreen( patient: patient,
pageKey: vitalSignDetails.Temperature, patientType: patientType,
pageTitle: TranslationBase.of(context) arrivalType: arrivalType,
.temperature, ),
vitalList: ),
mode.patientVitalSignsHistory, )
patient: patient, : null,
patientType: patientType, child: Container(
arrivalType: arrivalType, child: VitalSignItem(
des: TranslationBase.of(context)
.temperature,
imagePath:
"${assetBasePath}temperature.png",
lastVal: mode.temperatureCelcius,
unit: TranslationBase.of(context)
.tempC,
),
),
), ),
), InkWell(
) onTap: () => isNotOneAppointment
: null, ? Navigator.push(
child: Container( context,
child: VitalSignItem( FadePage(
des: TranslationBase.of(context).temperature, page:
imagePath: "${assetBasePath}temperature.png", VitalSignItemDetailsScreen(
lastVal: mode.temperatureCelcius, pageKey: vitalSignDetails
unit: TranslationBase.of(context).tempC, .heart,
), pageTitle:
), TranslationBase.of(
), context)
InkWell( .heart,
onTap: () => isNotOneAppointment vitalList: mode
? Navigator.push( .patientVitalSignsHistory,
context, patient: patient,
FadePage( patientType: patientType,
page: VitalSignItemDetailsScreen( arrivalType: arrivalType,
pageKey: vitalSignDetails.heart, ),
pageTitle: ),
TranslationBase.of(context).heart, )
vitalList: : null,
mode.patientVitalSignsHistory, child: VitalSignItem(
patient: patient, des: TranslationBase.of(context)
patientType: patientType, .heart,
arrivalType: arrivalType, imagePath:
"${assetBasePath}heart_rate.png",
lastVal: mode.hartRat,
unit:
TranslationBase.of(context).bpm,
),
), ),
), InkWell(
) onTap: () => isNotOneAppointment
: null, ? Navigator.push(
child: VitalSignItem( context,
des: TranslationBase.of(context).heart, FadePage(
imagePath: "${assetBasePath}heart_rate.png", page:
lastVal: mode.hartRat, VitalSignItemDetailsScreen(
unit: TranslationBase.of(context).bpm, pageKey: vitalSignDetails
), .Respiration,
), pageTitle:
InkWell( TranslationBase.of(
onTap: () => isNotOneAppointment context)
? Navigator.push( .respirationRate,
context, vitalList: mode
FadePage( .patientVitalSignsHistory,
page: VitalSignItemDetailsScreen( patient: patient,
pageKey: vitalSignDetails.Respiration, patientType: patientType,
pageTitle: TranslationBase.of(context) arrivalType: arrivalType,
.respirationRate, ),
vitalList: ),
mode.patientVitalSignsHistory, )
patient: patient, : null,
patientType: patientType, child: VitalSignItem(
arrivalType: arrivalType, des: TranslationBase.of(context)
.respirationRate,
imagePath:
"${assetBasePath}respiration_rate.png",
lastVal:
mode.respirationBeatPerMinute,
unit: TranslationBase.of(context)
.respirationSigns,
),
), ),
), InkWell(
) onTap: () => isNotOneAppointment
: null, ? Navigator.push(
child: VitalSignItem( context,
des: TranslationBase.of(context).respirationRate, FadePage(
imagePath: "${assetBasePath}respiration_rate.png", page:
lastVal: mode.respirationBeatPerMinute, VitalSignItemDetailsScreen(
unit: pageKey: vitalSignDetails
TranslationBase.of(context).respirationSigns, .BloodPressure,
pageTitle:
TranslationBase.of(
context)
.bloodPressure,
vitalList: mode
.patientVitalSignsHistory,
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
),
),
)
: null,
child: VitalSignItem(
des: TranslationBase.of(context)
.bloodPressure,
imagePath:
"${assetBasePath}blood_pressure.png",
lastVal: mode.bloodPressure,
unit: TranslationBase.of(context)
.sysDias,
),
),
InkWell(
onTap: () => isNotOneAppointment
? Navigator.push(
context,
FadePage(
page:
VitalSignItemDetailsScreen(
pageKey: vitalSignDetails
.Oxygenation,
pageTitle:
TranslationBase.of(
context)
.oxygenation,
vitalList: mode
.patientVitalSignsHistory,
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
),
),
)
: null,
child: VitalSignItem(
des: TranslationBase.of(context)
.oxygenation,
imagePath:
"${assetBasePath}oxg.png",
lastVal: mode.oxygenation,
unit: "%",
),
),
InkWell(
onTap: () => isNotOneAppointment
? Navigator.push(
context,
FadePage(
page:
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(
InkWell( width: MediaQuery.of(context).size.width / 2,
onTap: () => isNotOneAppointment margin: EdgeInsets.symmetric(
? Navigator.push( horizontal: 0.0, vertical: 16),
context, child: Container(
FadePage( padding: EdgeInsets.all(5),
page: VitalSignItemDetailsScreen( child: Column(
pageKey: vitalSignDetails.BloodPressure, crossAxisAlignment:
pageTitle: TranslationBase.of(context) CrossAxisAlignment.start,
.bloodPressure, children: [
vitalList: Container(
mode.patientVitalSignsHistory, padding: EdgeInsets.only(top: 8),
patient: patient, child: Row(
patientType: patientType, crossAxisAlignment:
arrivalType: arrivalType, 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,
),
),
),
],
),
),
],
), ),
), ),
) ),*/
: null, ],
child: VitalSignItem( ),
des: TranslationBase.of(context).bloodPressure,
imagePath: "${assetBasePath}blood_pressure.png",
lastVal: mode.bloodPressure,
unit: TranslationBase.of(context).sysDias,
),
),
],
), ),
), ),
), ),
], ],
), ),
),
), ),
), ],
], )
)
: Center( : Center(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
@ -476,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';
@ -141,6 +141,21 @@ class VitalSignItemDetailsScreen extends StatelessWidget {
}, },
]; ];
break;
case vitalSignDetails.Oxygenation:
VSchart = [
{
'name': 'Oxygenation',
'nameAr': 'الأوكسجين',
'title1': 'Date',
'title2': 'SAO2',
'title3': 'FIO2',
'title2Ar': 'SAO2',
'title3Ar': 'FIO2',
'viewKey': 'O2',
},
];
break; break;
case vitalSignDetails.Weight: case vitalSignDetails.Weight:
VSchart = [ VSchart = [
@ -210,8 +225,12 @@ 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'] == 'BloodPressure' || chartInfo['viewKey'] == 'O2') {
return VitalSingChartBloodPressure( return VitalSingChartBloodPressure(
vitalList: vitalList, vitalList: vitalList,
name: projectViewModel.isArabic name: projectViewModel.isArabic
@ -224,8 +243,8 @@ class VitalSignItemDetailsScreen extends StatelessWidget {
title3: projectViewModel.isArabic title3: projectViewModel.isArabic
? chartInfo['title3Ar'] ? chartInfo['title3Ar']
: chartInfo['title3'], : chartInfo['title3'],
viewKey1: 'BloodPressureHigher', viewKey1: chartInfo['viewKey'] == 'BloodPressure' ? 'BloodPressureHigher' : 'SAO2',
viewKey2: 'BloodPressureLower', viewKey2: chartInfo['viewKey'] == 'BloodPressure' ? 'BloodPressureLower' : 'FIO2',
); );
} }

Loading…
Cancel
Save