done vital sign

merge-update-with-lab-changes
Mohammad Aljammal 6 years ago
parent 32e2732c43
commit a5e63817f2

@ -11,7 +11,7 @@ const Map<String, Map<String, String>> localizedValues = {
'services': {'en': 'SERVICES', 'ar': 'الخدمات'}, 'services': {'en': 'SERVICES', 'ar': 'الخدمات'},
'mySchedule': {'en': 'My Schedule', 'ar': 'جدولي'}, 'mySchedule': {'en': 'My Schedule', 'ar': 'جدولي'},
'logout': {'en': 'Logout', 'ar': 'تسجيل خروج'}, 'logout': {'en': 'Logout', 'ar': 'تسجيل خروج'},
'respirationRate':{'en': 'Respiration Rate', 'ar': 'معدل التنفس'},
'bookAppo': {'en': 'Book Appointment', 'ar': 'حجز موعد'}, 'bookAppo': {'en': 'Book Appointment', 'ar': 'حجز موعد'},
'searchBy': {'en': 'Search By:', 'ar': 'البحث عن طريق:'}, 'searchBy': {'en': 'Search By:', 'ar': 'البحث عن طريق:'},
'clinic': {'en': 'Clinic', 'ar': 'العيادة'}, 'clinic': {'en': 'Clinic', 'ar': 'العيادة'},
@ -215,14 +215,15 @@ const Map<String, Map<String, String>> localizedValues = {
"recieved-requests": {"en": "Recieved Requests", "ar": "الطلبات المستلمة"}, "recieved-requests": {"en": "Recieved Requests", "ar": "الطلبات المستلمة"},
"manage-files": {"en": "Manage Family Files", "ar": "إدارة ملفات العائلة"}, "manage-files": {"en": "Manage Family Files", "ar": "إدارة ملفات العائلة"},
'oxygenation': {'en': 'Oxygenation', 'ar': 'الأوكسجين'}, 'oxygenation': {'en': 'Oxygenation', 'ar': 'الأوكسجين'},
'bodyMeasurements': {'en': 'Body Measurements', 'ar': 'قياسات الجسم'}, 'bodyMeasurements': {'en': 'body Mass', 'ar': 'قياسات الجسم'},
'temperature': {'en': 'Temperature', 'ar': 'درجة الحرارة'}, 'temperature': {'en': 'Temperature', 'ar': 'درجة الحرارة'},
'pulse': {'en': 'Pulse', 'ar': 'النبض'}, 'pulse': {'en': 'Pulse', 'ar': 'النبض'},
'respiration': {'en': 'Respiration', 'ar': 'التنفس'}, 'respiration': {'en': 'Respiration', 'ar': 'التنفس'},
'bloodPressure': {'en': 'Blood Pressure', 'ar': 'ضغط الدم'}, 'bloodPressure': {'en': 'Blood Pressure', 'ar': 'ضغط الدم'},
'painScale': {'en': 'Pain Scale', 'ar': 'مقياس الألم'}, 'painScale': {'en': 'Pain Scale', 'ar': 'مقياس الألم'},
'weight' : {'en':'Weight','ar':'الوزن'},
'height' : {'en':'Height','ar':'الطول'},
'heart' :{'en':'Heart','ar':'قلب'},
"request": {"en": "Request", "ar": "طلبات الاضافة"}, "request": {"en": "Request", "ar": "طلبات الاضافة"},
"member-name": {"en": "Member Name", "ar": "اسم العضو"}, "member-name": {"en": "Member Name", "ar": "اسم العضو"},

@ -31,6 +31,9 @@ enum VitalSignDetails {
Pulse, Pulse,
Prescriptions, Prescriptions,
BloodPressure, BloodPressure,
Oxygenation, Respiration,
PainScale heart,
PainScale,
Weight,
Height
} }

@ -9,6 +9,8 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../../../d_q_icons_icons.dart';
class VitalSignDetailsScreen extends StatelessWidget { class VitalSignDetailsScreen extends StatelessWidget {
static const String url = "assets/images/"; static const String url = "assets/images/";
@ -21,7 +23,7 @@ class VitalSignDetailsScreen extends StatelessWidget {
appBarTitle: 'Vital Sign', appBarTitle: 'Vital Sign',
baseViewModel: mode, baseViewModel: mode,
body: mode.vitalSignResModelList.length> 0? Container( body: mode.vitalSignResModelList.length> 0? Container(
child: Column( child: ListView(
children: <Widget>[ children: <Widget>[
Row( Row(
children: <Widget>[ children: <Widget>[
@ -30,18 +32,17 @@ class VitalSignDetailsScreen extends StatelessWidget {
context, context,
FadePage( FadePage(
page: VitalSignItemDetailsScreen( page: VitalSignItemDetailsScreen(
pageKey: VitalSignDetails.BloodPressure, pageKey: VitalSignDetails.Height,
pageTitle: 'bodyMeasurements', pageTitle: 'Height',
vitalList: mode.vitalSignResModelList, vitalList: mode.vitalSignResModelList,
), ),
), ),
), ),
child: Container( child: Container(
child: VitalSignItem( child: VitalSignItem(
des: TranslationBase.of(context).bodyMeasurements, des: TranslationBase.of(context).height,
url: url + 'heartbeat.png', icon: DQIcons.height,
lastVal: lastVal: mode.vitalSignResModelList[mode.vitalSignResModelList.length-1].heightCm.toString(),
mode.vitalSignResModelList[1].heightCm.toString(),
unit: ' Cm', unit: ' Cm',
), ),
), ),
@ -51,23 +52,20 @@ class VitalSignDetailsScreen extends StatelessWidget {
context, context,
FadePage( FadePage(
page: VitalSignItemDetailsScreen( page: VitalSignItemDetailsScreen(
pageKey: VitalSignDetails.Temperature, pageKey: VitalSignDetails.Weight,
pageTitle: 'Temperature', pageTitle: 'Weight',
vitalList: mode.vitalSignResModelList, vitalList: mode.vitalSignResModelList,
), ),
), ),
), ),
child: Container(
child: VitalSignItem( child: VitalSignItem(
des: TranslationBase.of(context).temperature, des: TranslationBase.of(context).weight,
url: url + 'heartbeat.png', icon: DQIcons.weight_scale,
lastVal: mode unit: ' Kg',
.vitalSignResModelList[1].temperatureCelcius lastVal: mode.vitalSignResModelList[mode.vitalSignResModelList.length-1].weightKg.toString(),
.toString(),
unit: 'C',
),
), ),
), ),
], ],
), ),
Row( Row(
@ -77,18 +75,18 @@ class VitalSignDetailsScreen extends StatelessWidget {
context, context,
FadePage( FadePage(
page: VitalSignItemDetailsScreen( page: VitalSignItemDetailsScreen(
pageKey: VitalSignDetails.Pulse, pageKey: VitalSignDetails.BodyMeasurements,
pageTitle: 'Pulse', pageTitle: 'BMI',
vitalList: mode.vitalSignResModelList, vitalList: mode.vitalSignResModelList,
), ),
), ),
), ),
child: VitalSignItem( child: VitalSignItem(
des: TranslationBase.of(context).pulse, des: TranslationBase.of(context).bodyMeasurements,
url: url + 'heartbeat.png', icon: DQIcons.bmi,
lastVal: mode.vitalSignResModelList[1].pulseBeatPerMinute lastVal: mode.vitalSignResModelList[1].pulseBeatPerMinute
.toString(), .toString(),
unit: 'M', unit: 'BMI',
), ),
), ),
InkWell( InkWell(
@ -96,21 +94,24 @@ class VitalSignDetailsScreen extends StatelessWidget {
context, context,
FadePage( FadePage(
page: VitalSignItemDetailsScreen( page: VitalSignItemDetailsScreen(
pageKey: VitalSignDetails.Prescriptions, pageKey: VitalSignDetails.Temperature,
pageTitle: 'Prescriptions', pageTitle: 'Temperature',
vitalList: mode.vitalSignResModelList, vitalList: mode.vitalSignResModelList,
), ),
), ),
), ),
child: Container(
child: VitalSignItem( child: VitalSignItem(
des: TranslationBase.of(context).respiration, des: TranslationBase.of(context).temperature,
url: url + 'heartbeat.png', icon: DQIcons.thermometer,
lastVal: mode lastVal: mode
.vitalSignResModelList[1].respirationBeatPerMinute .vitalSignResModelList[1].temperatureCelcius
.toString(), .toString(),
unit: 'M', unit: 'C',
),
), ),
), ),
], ],
), ),
Row( Row(
@ -120,18 +121,18 @@ class VitalSignDetailsScreen extends StatelessWidget {
context, context,
FadePage( FadePage(
page: VitalSignItemDetailsScreen( page: VitalSignItemDetailsScreen(
pageKey: VitalSignDetails.BloodPressure, pageKey: VitalSignDetails.heart,
pageTitle: 'BloodPressure', pageTitle: 'Hart ',
vitalList: mode.vitalSignResModelList, vitalList: mode.vitalSignResModelList,
), ),
), ),
), ),
child: VitalSignItem( child: VitalSignItem(
des: TranslationBase.of(context).bloodPressure, des: TranslationBase.of(context).heart,
url: url + 'heartbeat.png', icon: DQIcons.heart,
lastVal: mode.vitalSignResModelList[1].bloodPressure lastVal: mode.vitalSignResModelList[mode.vitalSignResModelList.length-1].pulseBeatPerMinute
.toString(), .toString(),
unit: '', unit: ' bpm',
), ),
), ),
InkWell( InkWell(
@ -139,17 +140,17 @@ class VitalSignDetailsScreen extends StatelessWidget {
context, context,
FadePage( FadePage(
page: VitalSignItemDetailsScreen( page: VitalSignItemDetailsScreen(
pageKey: VitalSignDetails.Oxygenation, pageKey: VitalSignDetails.Respiration,
pageTitle: 'Oxygenation', pageTitle: 'Respiration Rate',
vitalList: mode.vitalSignResModelList, vitalList: mode.vitalSignResModelList,
), ),
), ),
), ),
child: VitalSignItem( child: VitalSignItem(
des: TranslationBase.of(context).oxygenation, des: TranslationBase.of(context).respirationRate,
url: url + 'heartbeat.png', icon: DQIcons.outline,
lastVal: mode.vitalSignResModelList[1].fIO2.toString(), lastVal: mode.vitalSignResModelList[mode.vitalSignResModelList.length-1].respirationBeatPerMinute.toString(),
unit: '', unit: ' bmp',
), ),
), ),
], ],
@ -162,15 +163,18 @@ class VitalSignDetailsScreen extends StatelessWidget {
context, context,
FadePage( FadePage(
page: VitalSignItemDetailsScreen( page: VitalSignItemDetailsScreen(
pageKey: VitalSignDetails.PainScale, pageKey: VitalSignDetails.BloodPressure,
pageTitle: 'PainScale', pageTitle: 'BloodPressure',
vitalList: mode.vitalSignResModelList, vitalList: mode.vitalSignResModelList,
), ),
), ),
), ),
child: VitalSignItem( child: VitalSignItem(
des: TranslationBase.of(context).painScale, des: TranslationBase.of(context).pulse,
url: url + 'heartbeat.png', icon: DQIcons.blood_pressure,
lastVal: mode.vitalSignResModelList[mode.vitalSignResModelList.length -1].bloodPressure
.toString(),
unit: ' SBP/DBP',
), ),
), ),
], ],

@ -3,23 +3,21 @@ import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
class VitalSignItem extends StatelessWidget { class VitalSignItem extends StatelessWidget {
const VitalSignItem( const VitalSignItem(
{Key key, {Key key,
@required this.url,
@required this.des, @required this.des,
this.lastVal = 'N/A', this.lastVal = 'N/A',
this.unit = '', this.unit = '',
this.height, this.height,
this.width}) this.width,
@required this.icon})
: super(key: key); : super(key: key);
final String url;
final String des; final String des;
final String lastVal; final String lastVal;
final String unit; final String unit;
final IconData icon;
final double height; final double height;
final double width; final double width;
@ -27,52 +25,64 @@ class VitalSignItem extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return RoundedContainer( return RoundedContainer(
margin: 0.025 * SizeConfig.realScreenWidth, margin: 0.025 * SizeConfig.realScreenWidth,
height: 0.14 * SizeConfig.realScreenHeight, height: 0.15 * SizeConfig.realScreenHeight,
width: 0.45 * SizeConfig.realScreenWidth, width: 0.45 * SizeConfig.realScreenWidth,
child: Container( child: Container(
padding: EdgeInsets.all(5), padding: EdgeInsets.all(5),
child: Row( child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
height: 0.10 * SizeConfig.realScreenHeight,
child: Row(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
flex: 2, flex: 2,
child: Align(
alignment: Alignment.topLeft,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text( child: Text(
des, des,
style: TextStyle( style: TextStyle(
fontSize: 1.7 * SizeConfig.textMultiplier, fontSize: 1.7 * SizeConfig.textMultiplier,
color: Hexcolor('#B8382C'), color: Hexcolor('#B8382C'),
fontWeight: FontWeight.bold), fontWeight: FontWeight.bold,),
),
),
), ),
), ),
Expanded( Expanded(
flex: 1, flex: 1,
child: Column( child: Container(child: Icon(icon,size: 40,),),
children: <Widget>[ )
Expanded( ],
child: Image.asset(
url,
height: SizeConfig.heightMultiplier * 7,
), ),
), ),
Expanded( Expanded(
child: Container(
width: double.infinity,
child: Align(
alignment: Alignment.topRight,
child: Container(
margin: EdgeInsets.only(left: 5,right: 5),
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
style: TextStyle(color: Colors.black), style: TextStyle(color: Colors.black),
children: [ children: [
new TextSpan(text: lastVal), TextSpan(text: lastVal),
new TextSpan( TextSpan(
text: unit, text: unit,
style: TextStyle( style: TextStyle(
color: Hexcolor('#B8382C'), color: Hexcolor('#B8382C'),
), ),
), ),
], ]),
),
),
),
), ),
))
],
), ),
)
], ],
), ),
), ),

@ -108,19 +108,24 @@ class VitalSignItemDetailsScreen extends StatelessWidget {
]; ];
break; break;
case VitalSignDetails.Oxygenation: case VitalSignDetails.Respiration:
VSchart = [ VSchart = [
{ {
'name': 'FIO2', 'name': 'Respiration Rate',
'title1': 'Date', 'title1': 'Date',
'title2': 'Cm', 'title2': 'bpm',
'viewKey': 'FIO2', 'viewKey': 'RespirationBeatPerMinute',
}, },
];
break;
case VitalSignDetails.heart:
VSchart = [
{ {
'name': 'SAO2', 'name': 'FIO2',
'title1': 'Date', 'title1': 'Date',
'title2': 'Cm', 'title2': 'bpm',
'viewKey': 'SAO2', 'viewKey': 'PulseBeatPerMinute',
}, },
]; ];
@ -136,7 +141,29 @@ class VitalSignItemDetailsScreen extends StatelessWidget {
]; ];
break; break;
case VitalSignDetails.Weight:
VSchart = [
{
'name': 'Weight Kg',
'title1': 'Date',
'title2': 'Kg',
'viewKey': 'WeightKg',
},
];
break;
case VitalSignDetails.Height:
VSchart = [
{
'name': 'Height Cm',
'title1': 'Date',
'title2': 'Cm',
'viewKey': 'HeightCm',
},
];
break;
default: default:
} }
return AppScaffold( return AppScaffold(

@ -63,7 +63,7 @@ class VitalSingChartAndDetials extends StatelessWidget {
TimeSeriesSales( TimeSeriesSales(
new DateTime(element.vitalSignDate.year, new DateTime(element.vitalSignDate.year,
element.vitalSignDate.month, element.vitalSignDate.day), element.vitalSignDate.month, element.vitalSignDate.day),
element.toJson()[viewKey].toInt(), element.toJson()[viewKey]?.toInt(),
), ),
); );
}, },

@ -352,9 +352,12 @@ class TranslationBase {
localizedValues['family-title'][locale.languageCode]; localizedValues['family-title'][locale.languageCode];
String get oxygenation => localizedValues['oxygenation'][locale.languageCode]; String get oxygenation => localizedValues['oxygenation'][locale.languageCode];
String get respirationRate => localizedValues['respirationRate'][locale.languageCode];
String get bodyMeasurements => String get bodyMeasurements =>
localizedValues['bodyMeasurements'][locale.languageCode]; localizedValues ['bodyMeasurements'][locale.languageCode];
String get height =>
localizedValues ['height'][locale.languageCode];
String get temperature => localizedValues['temperature'][locale.languageCode]; String get temperature => localizedValues['temperature'][locale.languageCode];
@ -365,6 +368,9 @@ class TranslationBase {
String get bloodPressure => String get bloodPressure =>
localizedValues['bloodPressure'][locale.languageCode]; localizedValues['bloodPressure'][locale.languageCode];
String get painScale => localizedValues['painScale'][locale.languageCode]; String get painScale => localizedValues['painScale'][locale.languageCode];
String get heart => localizedValues['heart'][locale.languageCode];
String get weight => localizedValues['weight'][locale.languageCode];
String get request => localizedValues['request'][locale.languageCode]; String get request => localizedValues['request'][locale.languageCode];
String get memberName => localizedValues['member-name'][locale.languageCode]; String get memberName => localizedValues['member-name'][locale.languageCode];

Loading…
Cancel
Save