diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 260efc69..48168f0a 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -11,7 +11,7 @@ const Map> localizedValues = { 'services': {'en': 'SERVICES', 'ar': 'الخدمات'}, 'mySchedule': {'en': 'My Schedule', 'ar': 'جدولي'}, 'logout': {'en': 'Logout', 'ar': 'تسجيل خروج'}, - + 'respirationRate':{'en': 'Respiration Rate', 'ar': 'معدل التنفس'}, 'bookAppo': {'en': 'Book Appointment', 'ar': 'حجز موعد'}, 'searchBy': {'en': 'Search By:', 'ar': 'البحث عن طريق:'}, 'clinic': {'en': 'Clinic', 'ar': 'العيادة'}, @@ -215,14 +215,15 @@ const Map> localizedValues = { "recieved-requests": {"en": "Recieved Requests", "ar": "الطلبات المستلمة"}, "manage-files": {"en": "Manage Family Files", "ar": "إدارة ملفات العائلة"}, 'oxygenation': {'en': 'Oxygenation', 'ar': 'الأوكسجين'}, - 'bodyMeasurements': {'en': 'Body Measurements', 'ar': 'قياسات الجسم'}, + 'bodyMeasurements': {'en': 'body Mass', 'ar': 'قياسات الجسم'}, 'temperature': {'en': 'Temperature', 'ar': 'درجة الحرارة'}, 'pulse': {'en': 'Pulse', 'ar': 'النبض'}, 'respiration': {'en': 'Respiration', 'ar': 'التنفس'}, 'bloodPressure': {'en': 'Blood Pressure', 'ar': 'ضغط الدم'}, 'painScale': {'en': 'Pain Scale', 'ar': 'مقياس الألم'}, - - + 'weight' : {'en':'Weight','ar':'الوزن'}, + 'height' : {'en':'Height','ar':'الطول'}, + 'heart' :{'en':'Heart','ar':'قلب'}, "request": {"en": "Request", "ar": "طلبات الاضافة"}, "member-name": {"en": "Member Name", "ar": "اسم العضو"}, diff --git a/lib/core/enum/patient_lookup.dart b/lib/core/enum/patient_lookup.dart index dc0da340..08de54b2 100644 --- a/lib/core/enum/patient_lookup.dart +++ b/lib/core/enum/patient_lookup.dart @@ -31,6 +31,9 @@ enum VitalSignDetails { Pulse, Prescriptions, BloodPressure, - Oxygenation, - PainScale + Respiration, + heart, + PainScale, + Weight, + Height } diff --git a/lib/pages/medical/vital_sign/vital_sign_details_screen.dart b/lib/pages/medical/vital_sign/vital_sign_details_screen.dart index 9a999c58..61da0967 100644 --- a/lib/pages/medical/vital_sign/vital_sign_details_screen.dart +++ b/lib/pages/medical/vital_sign/vital_sign_details_screen.dart @@ -9,6 +9,8 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; +import '../../../d_q_icons_icons.dart'; + class VitalSignDetailsScreen extends StatelessWidget { static const String url = "assets/images/"; @@ -21,7 +23,7 @@ class VitalSignDetailsScreen extends StatelessWidget { appBarTitle: 'Vital Sign', baseViewModel: mode, body: mode.vitalSignResModelList.length> 0? Container( - child: Column( + child: ListView( children: [ Row( children: [ @@ -30,18 +32,17 @@ class VitalSignDetailsScreen extends StatelessWidget { context, FadePage( page: VitalSignItemDetailsScreen( - pageKey: VitalSignDetails.BloodPressure, - pageTitle: 'bodyMeasurements', + pageKey: VitalSignDetails.Height, + pageTitle: 'Height', vitalList: mode.vitalSignResModelList, ), ), ), child: Container( child: VitalSignItem( - des: TranslationBase.of(context).bodyMeasurements, - url: url + 'heartbeat.png', - lastVal: - mode.vitalSignResModelList[1].heightCm.toString(), + des: TranslationBase.of(context).height, + icon: DQIcons.height, + lastVal: mode.vitalSignResModelList[mode.vitalSignResModelList.length-1].heightCm.toString(), unit: ' Cm', ), ), @@ -51,23 +52,20 @@ class VitalSignDetailsScreen extends StatelessWidget { context, FadePage( page: VitalSignItemDetailsScreen( - pageKey: VitalSignDetails.Temperature, - pageTitle: 'Temperature', + pageKey: VitalSignDetails.Weight, + pageTitle: 'Weight', vitalList: mode.vitalSignResModelList, ), ), ), - child: Container( - child: VitalSignItem( - des: TranslationBase.of(context).temperature, - url: url + 'heartbeat.png', - lastVal: mode - .vitalSignResModelList[1].temperatureCelcius - .toString(), - unit: 'C', - ), + child: VitalSignItem( + des: TranslationBase.of(context).weight, + icon: DQIcons.weight_scale, + unit: ' Kg', + lastVal: mode.vitalSignResModelList[mode.vitalSignResModelList.length-1].weightKg.toString(), ), ), + ], ), Row( @@ -77,18 +75,18 @@ class VitalSignDetailsScreen extends StatelessWidget { context, FadePage( page: VitalSignItemDetailsScreen( - pageKey: VitalSignDetails.Pulse, - pageTitle: 'Pulse', + pageKey: VitalSignDetails.BodyMeasurements, + pageTitle: 'BMI', vitalList: mode.vitalSignResModelList, ), ), ), child: VitalSignItem( - des: TranslationBase.of(context).pulse, - url: url + 'heartbeat.png', + des: TranslationBase.of(context).bodyMeasurements, + icon: DQIcons.bmi, lastVal: mode.vitalSignResModelList[1].pulseBeatPerMinute .toString(), - unit: 'M', + unit: 'BMI', ), ), InkWell( @@ -96,21 +94,24 @@ class VitalSignDetailsScreen extends StatelessWidget { context, FadePage( page: VitalSignItemDetailsScreen( - pageKey: VitalSignDetails.Prescriptions, - pageTitle: 'Prescriptions', + pageKey: VitalSignDetails.Temperature, + pageTitle: 'Temperature', vitalList: mode.vitalSignResModelList, ), ), ), - child: VitalSignItem( - des: TranslationBase.of(context).respiration, - url: url + 'heartbeat.png', - lastVal: mode - .vitalSignResModelList[1].respirationBeatPerMinute - .toString(), - unit: 'M', + child: Container( + child: VitalSignItem( + des: TranslationBase.of(context).temperature, + icon: DQIcons.thermometer, + lastVal: mode + .vitalSignResModelList[1].temperatureCelcius + .toString(), + unit: 'C', + ), ), ), + ], ), Row( @@ -120,18 +121,18 @@ class VitalSignDetailsScreen extends StatelessWidget { context, FadePage( page: VitalSignItemDetailsScreen( - pageKey: VitalSignDetails.BloodPressure, - pageTitle: 'BloodPressure', + pageKey: VitalSignDetails.heart, + pageTitle: 'Hart ', vitalList: mode.vitalSignResModelList, ), ), ), child: VitalSignItem( - des: TranslationBase.of(context).bloodPressure, - url: url + 'heartbeat.png', - lastVal: mode.vitalSignResModelList[1].bloodPressure + des: TranslationBase.of(context).heart, + icon: DQIcons.heart, + lastVal: mode.vitalSignResModelList[mode.vitalSignResModelList.length-1].pulseBeatPerMinute .toString(), - unit: '', + unit: ' bpm', ), ), InkWell( @@ -139,17 +140,17 @@ class VitalSignDetailsScreen extends StatelessWidget { context, FadePage( page: VitalSignItemDetailsScreen( - pageKey: VitalSignDetails.Oxygenation, - pageTitle: 'Oxygenation', + pageKey: VitalSignDetails.Respiration, + pageTitle: 'Respiration Rate', vitalList: mode.vitalSignResModelList, ), ), ), child: VitalSignItem( - des: TranslationBase.of(context).oxygenation, - url: url + 'heartbeat.png', - lastVal: mode.vitalSignResModelList[1].fIO2.toString(), - unit: '', + des: TranslationBase.of(context).respirationRate, + icon: DQIcons.outline, + lastVal: mode.vitalSignResModelList[mode.vitalSignResModelList.length-1].respirationBeatPerMinute.toString(), + unit: ' bmp', ), ), ], @@ -162,15 +163,18 @@ class VitalSignDetailsScreen extends StatelessWidget { context, FadePage( page: VitalSignItemDetailsScreen( - pageKey: VitalSignDetails.PainScale, - pageTitle: 'PainScale', + pageKey: VitalSignDetails.BloodPressure, + pageTitle: 'BloodPressure', vitalList: mode.vitalSignResModelList, ), ), ), child: VitalSignItem( - des: TranslationBase.of(context).painScale, - url: url + 'heartbeat.png', + des: TranslationBase.of(context).pulse, + icon: DQIcons.blood_pressure, + lastVal: mode.vitalSignResModelList[mode.vitalSignResModelList.length -1].bloodPressure + .toString(), + unit: ' SBP/DBP', ), ), ], diff --git a/lib/pages/medical/vital_sign/vital_sign_item.dart b/lib/pages/medical/vital_sign/vital_sign_item.dart index bf76bbfa..9586fb25 100644 --- a/lib/pages/medical/vital_sign/vital_sign_item.dart +++ b/lib/pages/medical/vital_sign/vital_sign_item.dart @@ -3,23 +3,21 @@ import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; - class VitalSignItem extends StatelessWidget { const VitalSignItem( {Key key, - @required this.url, @required this.des, this.lastVal = 'N/A', this.unit = '', this.height, - this.width}) + this.width, + @required this.icon}) : super(key: key); - final String url; final String des; final String lastVal; final String unit; - + final IconData icon; final double height; final double width; @@ -27,52 +25,64 @@ class VitalSignItem extends StatelessWidget { Widget build(BuildContext context) { return RoundedContainer( margin: 0.025 * SizeConfig.realScreenWidth, - height: 0.14 * SizeConfig.realScreenHeight, + height: 0.15 * SizeConfig.realScreenHeight, width: 0.45 * SizeConfig.realScreenWidth, child: Container( padding: EdgeInsets.all(5), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Expanded( - flex: 2, - child: Text( - des, - style: TextStyle( - fontSize: 1.7 * SizeConfig.textMultiplier, - color: Hexcolor('#B8382C'), - fontWeight: FontWeight.bold), - ), - ), - Expanded( - flex: 1, - child: Column( + Container( + height: 0.10 * SizeConfig.realScreenHeight, + child: Row( children: [ Expanded( - child: Image.asset( - url, - height: SizeConfig.heightMultiplier * 7, - ), - ), - Expanded( - child: RichText( - text: TextSpan( - style: TextStyle(color: Colors.black), - children: [ - new TextSpan(text: lastVal), - new TextSpan( - text: unit, + flex: 2, + child: Align( + alignment: Alignment.topLeft, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + des, style: TextStyle( - color: Hexcolor('#B8382C'), - ), + fontSize: 1.7 * SizeConfig.textMultiplier, + color: Hexcolor('#B8382C'), + fontWeight: FontWeight.bold,), ), - ], + ), ), - )) + ), + Expanded( + flex: 1, + child: Container(child: Icon(icon,size: 40,),), + ) ], ), - ) + ), + Expanded( + child: Container( + width: double.infinity, + child: Align( + alignment: Alignment.topRight, + child: Container( + margin: EdgeInsets.only(left: 5,right: 5), + child: RichText( + text: TextSpan( + style: TextStyle(color: Colors.black), + children: [ + TextSpan(text: lastVal), + TextSpan( + text: unit, + style: TextStyle( + color: Hexcolor('#B8382C'), + ), + ), + ]), + ), + ), + ), + ), + ), ], ), ), diff --git a/lib/pages/medical/vital_sign/vital_sign_item_details_screen.dart b/lib/pages/medical/vital_sign/vital_sign_item_details_screen.dart index 1968fb34..802aae38 100644 --- a/lib/pages/medical/vital_sign/vital_sign_item_details_screen.dart +++ b/lib/pages/medical/vital_sign/vital_sign_item_details_screen.dart @@ -108,19 +108,24 @@ class VitalSignItemDetailsScreen extends StatelessWidget { ]; break; - case VitalSignDetails.Oxygenation: + case VitalSignDetails.Respiration: VSchart = [ { - 'name': 'FIO2', + 'name': 'Respiration Rate', 'title1': 'Date', - 'title2': 'Cm', - 'viewKey': 'FIO2', + 'title2': 'bpm', + 'viewKey': 'RespirationBeatPerMinute', }, + ]; + + break; + case VitalSignDetails.heart: + VSchart = [ { - 'name': 'SAO2', + 'name': 'FIO2', 'title1': 'Date', - 'title2': 'Cm', - 'viewKey': 'SAO2', + 'title2': 'bpm', + 'viewKey': 'PulseBeatPerMinute', }, ]; @@ -136,7 +141,29 @@ class VitalSignItemDetailsScreen extends StatelessWidget { ]; 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: } return AppScaffold( diff --git a/lib/pages/medical/vital_sign/vital_sing_chart_and_detials.dart b/lib/pages/medical/vital_sign/vital_sing_chart_and_detials.dart index 9d395c15..299605ef 100644 --- a/lib/pages/medical/vital_sign/vital_sing_chart_and_detials.dart +++ b/lib/pages/medical/vital_sign/vital_sing_chart_and_detials.dart @@ -63,7 +63,7 @@ class VitalSingChartAndDetials extends StatelessWidget { TimeSeriesSales( new DateTime(element.vitalSignDate.year, element.vitalSignDate.month, element.vitalSignDate.day), - element.toJson()[viewKey].toInt(), + element.toJson()[viewKey]?.toInt(), ), ); }, diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 5969265d..2676bf70 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -352,9 +352,12 @@ class TranslationBase { localizedValues['family-title'][locale.languageCode]; String get oxygenation => localizedValues['oxygenation'][locale.languageCode]; + String get respirationRate => localizedValues['respirationRate'][locale.languageCode]; 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]; @@ -365,6 +368,9 @@ class TranslationBase { String get bloodPressure => localizedValues['bloodPressure'][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 memberName => localizedValues['member-name'][locale.languageCode];