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': 'الخدمات'},
'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<String, Map<String, String>> 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": "اسم العضو"},

@ -31,6 +31,9 @@ enum VitalSignDetails {
Pulse,
Prescriptions,
BloodPressure,
Oxygenation,
PainScale
Respiration,
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: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: <Widget>[
Row(
children: <Widget>[
@ -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',
),
),
],

@ -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: <Widget>[
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: <Widget>[
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'),
),
),
]),
),
),
),
),
),
],
),
),

@ -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(

@ -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(),
),
);
},

@ -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];

Loading…
Cancel
Save