Merge branch 'development' into soap-objective-feature-re-design

merge-requests/467/head
mosazaid 5 years ago
commit 25c3bf1bb1

@ -322,4 +322,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: 649616dc336b3659ac6b2b25159d8e488e042b69 PODFILE CHECKSUM: 649616dc336b3659ac6b2b25159d8e488e042b69
COCOAPODS: 1.10.1 COCOAPODS: 1.10.0.rc.1

@ -843,4 +843,11 @@ const Map<String, Map<String, String>> localizedValues = {
"en": "Step", "en": "Step",
"ar": "خطوة" "ar": "خطوة"
}, },
"applyOrRescheduleLeave": {
"en": "Apply Or Reschedule Leave",
"ar": "التقدم بطلب أو إعادة جدولة الإجازة"
},"myQRCode": {
"en": "My QR Code",
"ar": "My QR Code"
},
}; };

@ -119,7 +119,7 @@ class _LoginsreenState extends State<Loginsreen> {
children: <Widget>[ children: <Widget>[
AuthHeader(loginType.knownUser), AuthHeader(loginType.knownUser),
SizedBox( SizedBox(
height: 60, height: 40,
), ),
LoginForm( LoginForm(
changeLoadingStata: changeLoadingStata, changeLoadingStata: changeLoadingStata,

@ -141,7 +141,10 @@ class PatientProfileScreen extends StatelessWidget {
if (patient.episodeNo != 0) if (patient.episodeNo != 0)
BorderedButton( BorderedButton(
"${TranslationBase.of(context).update}\n${TranslationBase.of(context).episode}", "${TranslationBase.of(context).update}\n${TranslationBase.of(context).episode}",
backgroundColor: Colors.red.shade700, backgroundColor:
patient.patientStatusType == 43
? Colors.red.shade700
: Colors.grey.shade700,
textColor: Colors.white, textColor: Colors.white,
vPadding: 8, vPadding: 8,
radius: 30, radius: 30,
@ -155,10 +158,12 @@ class PatientProfileScreen extends StatelessWidget {
height: 30, height: 30,
), ),
handler: () { handler: () {
if (patient.patientStatusType == 43) {
Navigator.of(context).pushNamed( Navigator.of(context).pushNamed(
UPDATE_EPISODE, UPDATE_EPISODE,
arguments: {'patient': patient}); arguments: {'patient': patient});
}, }
}
), ),
], ],
), ),

@ -345,8 +345,9 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
suggestion suggestion
.genericName), .genericName),
padding: padding:
EdgeInsets.all(8.0)), EdgeInsets.all(15.0)),
itemSorter: (a, b) => 1, itemSorter: (a, b) => 1,
suggestionsAmount: 7,
itemFilter: (suggestion, input) => itemFilter: (suggestion, input) =>
suggestion.genericName.toLowerCase().startsWith( suggestion.genericName.toLowerCase().startsWith(
input.toLowerCase()) || input.toLowerCase()) ||
@ -383,6 +384,13 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
SizedBox( SizedBox(
height: spaceBetweenTextFileds, height: spaceBetweenTextFileds,
), ),
Visibility(
visible: _selectedMedication == null
? false
: true,
child: Container(
child: Column(
children: [
Container( Container(
child: Row( child: Row(
children: [ children: [
@ -391,7 +399,8 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
), ),
Radio( Radio(
activeColor: Color(0xFFB9382C), activeColor:
Color(0xFFB9382C),
value: 1, value: 1,
groupValue: selectedType, groupValue: selectedType,
onChanged: (value) { onChanged: (value) {
@ -402,7 +411,8 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
], ],
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(
height: spaceBetweenTextFileds),
Container( Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
width: double.infinity, width: double.infinity,
@ -421,32 +431,39 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
// .digitsOnly // .digitsOnly
], ],
hintText: hintText:
TranslationBase.of(context) TranslationBase.of(
context)
.strength, .strength,
controller: strengthController, controller:
keyboardType: strengthController,
TextInputType.numberWithOptions( keyboardType: TextInputType
.numberWithOptions(
decimal: true, decimal: true,
), ),
onChanged: (String value) { onChanged: (String value) {
setState(() { setState(() {
strengthChar = value.length; strengthChar =
value.length;
}); });
if (strengthChar >= 5) { if (strengthChar >= 5) {
DrAppToastMsg.showErrorToast( DrAppToastMsg
.showErrorToast(
"Only 5 Digits allowed for strength"); "Only 5 Digits allowed for strength");
} }
}, },
onSubmit: (_) { onSubmit: (_) {
if (_selectedMedication != null && if (_selectedMedication !=
null &&
duration != null && duration != null &&
frequency != null && frequency != null &&
strengthController.text != strengthController
.text !=
null) { null) {
model.getBoxQuantity( model.getBoxQuantity(
freq: frequency[ freq: frequency[
'parameterCode'], 'parameterCode'],
duration: duration['id'], duration:
duration['id'],
itemCode: itemCode:
_selectedMedication _selectedMedication
.itemId, .itemId,
@ -479,12 +496,15 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
.width * .width *
0.350, 0.350,
child: InkWell( child: InkWell(
onTap: model.itemMedicineListUnit != onTap:
model.itemMedicineListUnit !=
null null
? () { ? () {
Helpers.hideKeyboard( Helpers
.hideKeyboard(
context); context);
ListSelectDialog dialog = ListSelectDialog
dialog =
ListSelectDialog( ListSelectDialog(
list: model list: model
.itemMedicineListUnit, .itemMedicineListUnit,
@ -492,23 +512,27 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
'description', 'description',
attributeValueId: attributeValueId:
'parameterCode', 'parameterCode',
okText: okText: TranslationBase.of(
TranslationBase.of(
context) context)
.ok, .ok,
okFunction: okFunction:
(selectedValue) { (selectedValue) {
setState(() { setState(
units = selectedValue; () {
units =
selectedValue;
units['isDefault'] = units['isDefault'] =
true; true;
}); });
}, },
); );
showDialog( showDialog(
barrierDismissible: false, barrierDismissible:
context: context, false,
builder: (BuildContext context:
context,
builder:
(BuildContext
context) { context) {
return dialog; return dialog;
}, },
@ -530,82 +554,110 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
], ],
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(
height: spaceBetweenTextFileds),
Container( Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
color: Colors.white, color: Colors.white,
child: InkWell( child: InkWell(
onTap: model.itemMedicineListRoute != null onTap:
model.itemMedicineListRoute !=
null
? () { ? () {
Helpers.hideKeyboard(context); Helpers.hideKeyboard(
ListSelectDialog dialog = context);
ListSelectDialog
dialog =
ListSelectDialog( ListSelectDialog(
list: list: model
model.itemMedicineListRoute, .itemMedicineListRoute,
attributeName: 'description', attributeName:
'description',
attributeValueId: attributeValueId:
'parameterCode', 'parameterCode',
okText: okText:
TranslationBase.of(context) TranslationBase.of(
context)
.ok, .ok,
okFunction: (selectedValue) { okFunction:
(selectedValue) {
setState(() { setState(() {
route = selectedValue; route =
route['isDefault'] = true; selectedValue;
route['isDefault'] =
true;
}); });
if (route == null) { if (route ==
null) {
helpers.showErrorToast( helpers.showErrorToast(
'plase fill'); 'plase fill');
} }
}, },
); );
showDialog( showDialog(
barrierDismissible: false, barrierDismissible:
false,
context: context, context: context,
builder: builder:
(BuildContext context) { (BuildContext
context) {
return dialog; return dialog;
}, },
); );
} }
: null, : null,
child: TextField( child: TextField(
decoration: textFieldSelectorDecoration( decoration:
TranslationBase.of(context).route, textFieldSelectorDecoration(
TranslationBase.of(
context)
.route,
route != null route != null
? route['description'] ? route[
'description']
: null, : null,
true), true),
enabled: false, enabled: false,
), ),
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(
height: spaceBetweenTextFileds),
Container( Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
color: Colors.white, color: Colors.white,
child: InkWell( child: InkWell(
onTap: model.itemMedicineList != null onTap:
model.itemMedicineList != null
? () { ? () {
Helpers.hideKeyboard(context); Helpers.hideKeyboard(
ListSelectDialog dialog = context);
ListSelectDialog
dialog =
ListSelectDialog( ListSelectDialog(
list: model.itemMedicineList, list: model
attributeName: 'description', .itemMedicineList,
attributeName:
'description',
attributeValueId: attributeValueId:
'parameterCode', 'parameterCode',
okText: okText:
TranslationBase.of(context) TranslationBase.of(
context)
.ok, .ok,
okFunction: (selectedValue) { okFunction:
(selectedValue) {
setState(() { setState(() {
frequency = selectedValue; frequency =
frequency['isDefault'] = selectedValue;
frequency[
'isDefault'] =
true; true;
if (_selectedMedication != if (_selectedMedication != null &&
duration !=
null &&
frequency !=
null && null &&
duration != null &&
frequency != null &&
strengthController strengthController
.text != .text !=
null) { null) {
@ -613,13 +665,14 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
freq: frequency[ freq: frequency[
'parameterCode'], 'parameterCode'],
duration: duration:
duration['id'], duration[
'id'],
itemCode: itemCode:
_selectedMedication _selectedMedication
.itemId, .itemId,
strength: double.parse( strength:
strengthController double.parse(
.text)); strengthController.text));
return; return;
} }
@ -627,64 +680,82 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
}, },
); );
showDialog( showDialog(
barrierDismissible: false, barrierDismissible:
false,
context: context, context: context,
builder: builder:
(BuildContext context) { (BuildContext
context) {
return dialog; return dialog;
}, },
); );
} }
: null, : null,
child: TextField( child: TextField(
decoration: textFieldSelectorDecoration( decoration:
TranslationBase.of(context) textFieldSelectorDecoration(
TranslationBase.of(
context)
.frequency, .frequency,
frequency != null frequency != null
? frequency['description'] ? frequency[
'description']
: null, : null,
true), true),
enabled: false, enabled: false,
), ),
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(
height: spaceBetweenTextFileds),
Container( Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
color: Colors.white, color: Colors.white,
child: InkWell( child: InkWell(
onTap: model.medicationDoseTimeList != onTap:
model.medicationDoseTimeList !=
null null
? () { ? () {
Helpers.hideKeyboard(context); Helpers.hideKeyboard(
ListSelectDialog dialog = context);
ListSelectDialog
dialog =
ListSelectDialog( ListSelectDialog(
list: model list: model
.medicationDoseTimeList, .medicationDoseTimeList,
attributeName: 'nameEn', attributeName:
attributeValueId: 'id', 'nameEn',
attributeValueId:
'id',
okText: okText:
TranslationBase.of(context) TranslationBase.of(
context)
.ok, .ok,
okFunction: (selectedValue) { okFunction:
(selectedValue) {
setState(() { setState(() {
doseTime = selectedValue; doseTime =
selectedValue;
}); });
}, },
); );
showDialog( showDialog(
barrierDismissible: false, barrierDismissible:
false,
context: context, context: context,
builder: builder:
(BuildContext context) { (BuildContext
context) {
return dialog; return dialog;
}, },
); );
} }
: null, : null,
child: TextField( child: TextField(
decoration: textFieldSelectorDecoration( decoration:
TranslationBase.of(context) textFieldSelectorDecoration(
TranslationBase.of(
context)
.doseTime, .doseTime,
doseTime != null doseTime != null
? doseTime['nameEn'] ? doseTime['nameEn']
@ -694,8 +765,10 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
), ),
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(
if (model.patientAssessmentList.isNotEmpty) height: spaceBetweenTextFileds),
if (model
.patientAssessmentList.isNotEmpty)
Container( Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
width: double.infinity, width: double.infinity,
@ -703,12 +776,14 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
child: Row( child: Row(
children: [ children: [
Container( Container(
width: MediaQuery.of(context) width:
MediaQuery.of(context)
.size .size
.width * .width *
0.29, 0.29,
child: InkWell( child: InkWell(
onTap: indicationList != null onTap:
indicationList != null
? () { ? () {
Helpers.hideKeyboard( Helpers.hideKeyboard(
context); context);
@ -722,8 +797,10 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
0] 0]
.icdCode10ID .icdCode10ID
.toString(), .toString(),
indication != null indication !=
? indication['name'] null
? indication[
'name']
: null, : null,
false), false),
enabled: true, enabled: true,
@ -732,13 +809,15 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
), ),
), ),
Container( Container(
width: MediaQuery.of(context) width:
MediaQuery.of(context)
.size .size
.width * .width *
0.65, 0.65,
color: Colors.white, color: Colors.white,
child: InkWell( child: InkWell(
onTap: indicationList != null onTap:
indicationList != null
? () { ? () {
Helpers.hideKeyboard( Helpers.hideKeyboard(
context); context);
@ -753,8 +832,10 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
0] 0]
.asciiDesc .asciiDesc
.toString(), .toString(),
indication != null indication !=
? indication['name'] null
? indication[
'name']
: null, : null,
false), false),
enabled: true, enabled: true,
@ -765,16 +846,20 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
], ],
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(
height: spaceBetweenTextFileds),
Container( Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
color: Colors.white, color: Colors.white,
child: InkWell( child: InkWell(
onTap: () => onTap: () => selectDate(
selectDate(context, widget.model), context, widget.model),
child: TextField( child: TextField(
decoration: textFieldSelectorDecoration( decoration:
TranslationBase.of(context).date, textFieldSelectorDecoration(
TranslationBase.of(
context)
.date,
selectedDate != null selectedDate != null
? "${DateUtils.convertStringToDateFormat(selectedDate.toString(), "yyyy-MM-dd")}" ? "${DateUtils.convertStringToDateFormat(selectedDate.toString(), "yyyy-MM-dd")}"
: null, : null,
@ -787,39 +872,51 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
), ),
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(
height: spaceBetweenTextFileds),
Container( Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
color: Colors.white, color: Colors.white,
child: InkWell( child: InkWell(
onTap: model.medicationDurationList != onTap:
model.medicationDurationList !=
null null
? () { ? () {
Helpers.hideKeyboard(context); Helpers.hideKeyboard(
ListSelectDialog dialog = context);
ListSelectDialog
dialog =
ListSelectDialog( ListSelectDialog(
list: model list: model
.medicationDurationList, .medicationDurationList,
attributeName: 'nameEn', attributeName:
attributeValueId: 'id', 'nameEn',
attributeValueId:
'id',
okText: okText:
TranslationBase.of(context) TranslationBase.of(
context)
.ok, .ok,
okFunction: (selectedValue) { okFunction:
(selectedValue) {
setState(() { setState(() {
duration = selectedValue; duration =
if (_selectedMedication != selectedValue;
if (_selectedMedication != null &&
duration !=
null &&
frequency !=
null && null &&
duration != null &&
frequency != null &&
strengthController strengthController
.text != .text !=
null) { null) {
model.getBoxQuantity( model
.getBoxQuantity(
freq: frequency[ freq: frequency[
'parameterCode'], 'parameterCode'],
duration: duration:
duration['id'], duration[
'id'],
itemCode: itemCode:
_selectedMedication _selectedMedication
.itemId, .itemId,
@ -827,7 +924,8 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
strengthController strengthController
.text), .text),
); );
box = model.boxQuintity; box = model
.boxQuintity;
return; return;
} }
@ -835,18 +933,22 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
}, },
); );
showDialog( showDialog(
barrierDismissible: false, barrierDismissible:
false,
context: context, context: context,
builder: builder:
(BuildContext context) { (BuildContext
context) {
return dialog; return dialog;
}, },
); );
} }
: null, : null,
child: TextField( child: TextField(
decoration: textFieldSelectorDecoration( decoration:
TranslationBase.of(context) textFieldSelectorDecoration(
TranslationBase.of(
context)
.duration, .duration,
duration != null duration != null
? duration['nameEn'] ? duration['nameEn']
@ -856,86 +958,108 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
), ),
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(
height: spaceBetweenTextFileds),
Container( Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
color: Colors.white, color: Colors.white,
child: InkWell( child: InkWell(
onTap: model.allMedicationList != null onTap: model.allMedicationList !=
null
? () { ? () {
Helpers.hideKeyboard(context); Helpers.hideKeyboard(
context);
ListSelectDialog dialog = ListSelectDialog dialog =
ListSelectDialog( ListSelectDialog(
list: model.allMedicationList, list: model
.allMedicationList,
attributeName: 'nameEn', attributeName: 'nameEn',
attributeValueId: 'id', attributeValueId: 'id',
okText: okText:
TranslationBase.of(context) TranslationBase.of(
context)
.ok, .ok,
okFunction: (selectedValue) { okFunction:
(selectedValue) {
setState(() { setState(() {
duration = selectedValue; duration =
selectedValue;
}); });
}, },
); );
showDialog( showDialog(
barrierDismissible: false, barrierDismissible:
false,
context: context, context: context,
builder: builder: (BuildContext
(BuildContext context) { context) {
return dialog; return dialog;
}, },
); );
} }
: null, : null,
child: TextField( child: TextField(
decoration: textFieldSelectorDecoration( decoration:
textFieldSelectorDecoration(
"UOM", "UOM",
uom != null ? uom : null, uom != null
? uom
: null,
false), false),
//enabled: false, //enabled: false,
readOnly: true, readOnly: true,
), ),
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(
height: spaceBetweenTextFileds),
Container( Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
color: Colors.white, color: Colors.white,
child: InkWell( child: InkWell(
onTap: model.allMedicationList != null onTap: model.allMedicationList !=
null
? () { ? () {
Helpers.hideKeyboard(context); Helpers.hideKeyboard(
context);
ListSelectDialog dialog = ListSelectDialog dialog =
ListSelectDialog( ListSelectDialog(
list: model.allMedicationList, list: model
.allMedicationList,
attributeName: 'nameEn', attributeName: 'nameEn',
attributeValueId: 'id', attributeValueId: 'id',
okText: okText:
TranslationBase.of(context) TranslationBase.of(
context)
.ok, .ok,
okFunction: (selectedValue) { okFunction:
(selectedValue) {
setState(() { setState(() {
duration = selectedValue; duration =
selectedValue;
}); });
}, },
); );
showDialog( showDialog(
barrierDismissible: false, barrierDismissible:
false,
context: context, context: context,
builder: builder: (BuildContext
(BuildContext context) { context) {
return dialog; return dialog;
}, },
); );
} }
: null, : null,
child: TextField( child: TextField(
decoration: textFieldSelectorDecoration( decoration:
textFieldSelectorDecoration(
"Box Quantity", "Box Quantity",
box != null box != null
? "Box Quantity: " + ? "Box Quantity: " +
model.boxQuintity.toString() model
.boxQuintity
.toString()
: null, : null,
false), false),
//enabled: false, //enabled: false,
@ -943,24 +1067,28 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
), ),
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(
height: spaceBetweenTextFileds),
Container( Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(6.0)), Radius.circular(6.0)),
border: Border.all( border: Border.all(
width: 1.0, width: 1.0,
color: HexColor("#CCCCCC"))), color:
HexColor("#CCCCCC"))),
child: TextFields( child: TextFields(
maxLines: 6, maxLines: 6,
minLines: 4, minLines: 4,
hintText: TranslationBase.of(context) hintText:
TranslationBase.of(context)
.instruction, .instruction,
controller: instructionController, controller: instructionController,
//keyboardType: TextInputType.number, //keyboardType: TextInputType.number,
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(
height: spaceBetweenTextFileds),
Container( Container(
margin: EdgeInsets.all( margin: EdgeInsets.all(
SizeConfig.widthMultiplier * 5), SizeConfig.widthMultiplier * 5),
@ -969,7 +1097,8 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
children: <Widget>[ children: <Widget>[
AppButton( AppButton(
color: Color(0xff359846), color: Color(0xff359846),
title: TranslationBase.of(context) title: TranslationBase.of(
context)
.addMedication, .addMedication,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
onPressed: () { onPressed: () {
@ -996,14 +1125,16 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
} }
if (double.parse( if (double.parse(
strengthController.text) > strengthController
.text) >
1000.0) { 1000.0) {
DrAppToastMsg.showErrorToast( DrAppToastMsg.showErrorToast(
"1000 is the MAX for the strength"); "1000 is the MAX for the strength");
return; return;
} }
if (double.parse( if (double.parse(
strengthController.text) < strengthController
.text) <
0.0) { 0.0) {
DrAppToastMsg.showErrorToast( DrAppToastMsg.showErrorToast(
"strength can't be zero"); "strength can't be zero");
@ -1097,6 +1228,10 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
), ),
), ),
), ),
],
),
),
),
); );
}), }),
), ),

@ -134,9 +134,14 @@ class _EntityListCheckboxSearchWidgetState
children: [ children: [
AppText( AppText(
TranslationBase.of(context) TranslationBase.of(context)
.orderType), .orderType,
fontWeight: FontWeight.w700,
),
Row(
children: [
Radio( Radio(
activeColor: Color(0xFFB9382C), activeColor:
Color(0xFFB9382C),
value: 0, value: 0,
groupValue: selectedType, groupValue: selectedType,
onChanged: (value) { onChanged: (value) {
@ -150,7 +155,8 @@ class _EntityListCheckboxSearchWidgetState
), ),
Text('routine'), Text('routine'),
Radio( Radio(
activeColor: Color(0xFFB9382C), activeColor:
Color(0xFFB9382C),
groupValue: selectedType, groupValue: selectedType,
value: 1, value: 1,
onChanged: (value) { onChanged: (value) {
@ -162,18 +168,21 @@ class _EntityListCheckboxSearchWidgetState
value.toString(); value.toString();
}, },
), ),
Text(TranslationBase.of(context) Text(TranslationBase.of(
context)
.urgent), .urgent),
], ],
), ),
],
),
), ),
), ),
SizedBox( SizedBox(
height: 15.0, height: 2.0,
), ),
Padding( Padding(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
horizontal: 12), horizontal: 12, vertical: 12.0),
child: TextFields( child: TextFields(
hintText: TranslationBase.of(context) hintText: TranslationBase.of(context)
.remarks, .remarks,

@ -622,6 +622,11 @@ class TranslationBase {
String get rescheduleLeaves => String get rescheduleLeaves =>
localizedValues['reschedule-leave'][locale.languageCode]; localizedValues['reschedule-leave'][locale.languageCode];
String get applyOrRescheduleLeave =>
localizedValues['applyOrRescheduleLeave'][locale.languageCode];
String get myQRCode =>
localizedValues['myQRCode'][locale.languageCode];
String get addMedication => String get addMedication =>
localizedValues['addMedication'][locale.languageCode]; localizedValues['addMedication'][locale.languageCode];

@ -319,7 +319,7 @@ class _KnownUserLoginState extends State<KnownUserLogin> {
} }
navigateToHome() { navigateToHome() {
Navigator.of(context).pushNamed(HOME); Navigator.of(context).pushReplacementNamed(HOME);
} }
showErorrMsg(localMsg) { showErorrMsg(localMsg) {

@ -69,17 +69,20 @@ class _LoginFormState extends State<LoginForm> {
return Form( return Form(
key: loginFormKey, key: loginFormKey,
child: Container(
width: SizeConfig.realScreenWidth * 0.90,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[ children: <Widget>[
Container(
width: SizeConfig.realScreenWidth * 0.90,
height: SizeConfig.realScreenHeight * 0.65,
child:
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
buildSizedBox(), buildSizedBox(),
Padding( Padding(
child: AppText( child: AppText(
TranslationBase.of(context).enterCredentials, TranslationBase.of(context).enterCredentials,
fontSize: 18, fontSize: 18,
fontWeight: FontWeight.w600, fontWeight: FontWeight.bold,
), ),
padding: EdgeInsets.only(top: 10, bottom: 10)), padding: EdgeInsets.only(top: 10, bottom: 10)),
Container( Container(
@ -97,7 +100,8 @@ class _LoginFormState extends State<LoginForm> {
padding: EdgeInsets.only(left: 10, top: 10), padding: EdgeInsets.only(left: 10, top: 10),
child: AppText( child: AppText(
TranslationBase.of(context).enterId, TranslationBase.of(context).enterId,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w800,
fontSize: 14,
)), )),
AppTextFormField( AppTextFormField(
labelText: '', labelText: '',
@ -144,7 +148,8 @@ class _LoginFormState extends State<LoginForm> {
padding: EdgeInsets.only(left: 10, top: 10), padding: EdgeInsets.only(left: 10, top: 10),
child: AppText( child: AppText(
TranslationBase.of(context).enterPassword, TranslationBase.of(context).enterPassword,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w800,
fontSize: 14,
)), )),
AppTextFormField( AppTextFormField(
focusNode: focusPass, focusNode: focusPass,
@ -198,6 +203,7 @@ class _LoginFormState extends State<LoginForm> {
focusNode: focusProject, focusNode: focusProject,
controller: projectIdController, controller: projectIdController,
borderColor: Colors.white, borderColor: Colors.white,
suffixIcon: Icons.arrow_drop_down,
onTap: () { onTap: () {
helpers.showCupertinoPicker( helpers.showCupertinoPicker(
context, context,
@ -234,26 +240,33 @@ class _LoginFormState extends State<LoginForm> {
padding: EdgeInsets.only(left: 10, top: 10), padding: EdgeInsets.only(left: 10, top: 10),
child: AppText( child: AppText(
TranslationBase.of(context).selectYourProject, TranslationBase.of(context).selectYourProject,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w800,
fontSize: 14,
)), )),
AppTextFormField( AppTextFormField(
readOnly: true, borderColor: Colors.white readOnly: true, borderColor: Colors.white,
prefix: IconButton(
icon: Icon(Icons.arrow_drop_down),
iconSize: 30,
padding: EdgeInsets.only(bottom: 30),
),
// decoration: buildInputDecoration( // decoration: buildInputDecoration(
// context, // context,
// TranslationBase.of(context) // TranslationBase.of(context)
// .pleaseEnterYourProject, // .pleaseEnterYourProject,
// 'assets/images/password_icon.png') // 'assets/images/password_icon.png')
) )
])), ])),
buildSizedBox(), ]),
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
child: Button( child: Button(
title: TranslationBase.of(context).login, title: TranslationBase.of(context).login,
color: Colors.red[700], color: HexColor('#D02127'),
onTap: () { onTap: () {
login(context, authProv, widget.changeLoadingStata); login(context, authProv, widget.changeLoadingStata);
}, },
@ -283,7 +296,6 @@ class _LoginFormState extends State<LoginForm> {
// ), // ),
], ],
), ),
),
); );
} }

@ -155,7 +155,7 @@ class _VerificationMethodsState extends State<VerificationMethods> {
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Flexible( Flexible(
flex: 4, flex: 3,
child: ListTile( child: ListTile(
title: Text( title: Text(
TranslationBase.of( TranslationBase.of(
@ -164,15 +164,17 @@ class _VerificationMethodsState extends State<VerificationMethods> {
overflow: TextOverflow overflow: TextOverflow
.ellipsis, .ellipsis,
style: TextStyle( style: TextStyle(
fontFamily: 'Poppins', fontFamily:
'Poppins',
fontWeight: fontWeight:
FontWeight.w600, FontWeight.w800,
), fontSize: 14),
), ),
subtitle: AppText( subtitle: AppText(
getType( getType(
user.logInTypeID, user.logInTypeID,
context), context),
fontSize: 14,
) )
// Text( // Text(
// user.editedOn != null // user.editedOn != null
@ -208,6 +210,9 @@ class _VerificationMethodsState extends State<VerificationMethods> {
: '--', : '--',
textAlign: textAlign:
TextAlign.right, TextAlign.right,
fontSize: 14,
fontWeight:
FontWeight.w800,
), ),
subtitle: AppText( subtitle: AppText(
user.editedOn != null user.editedOn != null
@ -223,6 +228,7 @@ class _VerificationMethodsState extends State<VerificationMethods> {
: '--', : '--',
textAlign: textAlign:
TextAlign.right, TextAlign.right,
fontSize: 14,
), ),
)) ))
], ],
@ -487,8 +493,8 @@ class _VerificationMethodsState extends State<VerificationMethods> {
children: [ children: [
Image.asset( Image.asset(
'assets/images/verify-whtsapp.png', 'assets/images/verify-whtsapp.png',
height: SizeConfig.imageSizeMultiplier * 13, height: 60,
width: SizeConfig.imageSizeMultiplier * 16, width: 60,
), ),
], ],
), ),
@ -497,7 +503,8 @@ class _VerificationMethodsState extends State<VerificationMethods> {
), ),
AppText( AppText(
TranslationBase.of(context).verifyWhatsApp, TranslationBase.of(context).verifyWhatsApp,
fontSize: SizeConfig.textMultiplier * 2.2, fontSize: 14,
fontWeight: FontWeight.w600,
) )
], ],
), ),
@ -520,8 +527,8 @@ class _VerificationMethodsState extends State<VerificationMethods> {
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset(
'assets/images/verify-sms.png', 'assets/images/verify-sms.png',
height: SizeConfig.imageSizeMultiplier * 13, height: 60,
width: SizeConfig.imageSizeMultiplier * 16, width: 60,
), ),
projectsProvider.isArabic projectsProvider.isArabic
? SizedBox( ? SizedBox(
@ -532,9 +539,8 @@ class _VerificationMethodsState extends State<VerificationMethods> {
), ),
AppText( AppText(
TranslationBase.of(context).verifySMS, TranslationBase.of(context).verifySMS,
fontSize: projectsProvider.isArabic fontSize: 14,
? SizeConfig.textMultiplier * 1.8 fontWeight: FontWeight.w600,
: SizeConfig.textMultiplier * 2.2,
) )
], ],
), ),
@ -560,15 +566,16 @@ class _VerificationMethodsState extends State<VerificationMethods> {
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset(
'assets/images/verification_fingerprint_icon.png', 'assets/images/verification_fingerprint_icon.png',
height: SizeConfig.imageSizeMultiplier * 13, height: 60,
width: SizeConfig.imageSizeMultiplier * 16, width: 60,
), ),
SizedBox( SizedBox(
height: 20, height: 20,
), ),
AppText( AppText(
TranslationBase.of(context).verifyFingerprint, TranslationBase.of(context).verifyFingerprint,
fontSize: SizeConfig.textMultiplier * 2.2, fontSize: 14,
fontWeight: FontWeight.w600,
) )
], ],
), ),
@ -602,15 +609,16 @@ class _VerificationMethodsState extends State<VerificationMethods> {
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset(
'assets/images/verification_faceid_icon.png', 'assets/images/verification_faceid_icon.png',
height: SizeConfig.imageSizeMultiplier * 13, height: 60,
width: SizeConfig.imageSizeMultiplier * 16, width: 60,
), ),
SizedBox( SizedBox(
height: 20, height: 20,
), ),
AppText( AppText(
TranslationBase.of(context).verifyFaceID, TranslationBase.of(context).verifyFaceID,
fontSize: SizeConfig.textMultiplier * 2.2, fontSize: 14,
fontWeight: FontWeight.w600,
) )
], ],
), ),
@ -640,8 +648,8 @@ class _VerificationMethodsState extends State<VerificationMethods> {
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset(
'assets/images/login/more_icon.png', 'assets/images/login/more_icon.png',
height: SizeConfig.imageSizeMultiplier * 13, height: 60,
width: SizeConfig.imageSizeMultiplier * 16, width: 60,
), ),
projectsProvider.isArabic projectsProvider.isArabic
? SizedBox( ? SizedBox(
@ -652,7 +660,8 @@ class _VerificationMethodsState extends State<VerificationMethods> {
), ),
AppText( AppText(
TranslationBase.of(context).moreVerification, TranslationBase.of(context).moreVerification,
fontSize: SizeConfig.textMultiplier * 2.2, fontSize: 14,
fontWeight: FontWeight.w600,
// textAlign: TextAlign.center, // textAlign: TextAlign.center,
) )
], ],

@ -35,9 +35,6 @@ class MyScheduleWidget extends StatelessWidget {
fontFamily: 'Poppins', fontFamily: 'Poppins',
// fontSize: 18 // fontSize: 18
), ),
SizedBox(
height: 10,
),
AppText( AppText(
' ${workingHoursTable.date.day} ${(DateUtils.getMonth(workingHoursTable.date.month).toString().substring(0, 3))}', ' ${workingHoursTable.date.day} ${(DateUtils.getMonth(workingHoursTable.date.month).toString().substring(0, 3))}',
fontSize: 18, fontSize: 18,

@ -60,20 +60,8 @@ class SMSOTP {
builder: (context) { builder: (context) {
projectProvider = Provider.of(context); projectProvider = Provider.of(context);
return AlertDialog( return AlertDialog(
contentPadding: EdgeInsets.fromLTRB(24.0, 20.0, 0.0, 24.0), contentPadding: EdgeInsets.fromLTRB(24.0, 0.0, 0.0, 24.0),
title: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
IconButton(
icon: Icon(Icons.close),
onPressed: () {
this.isClosed = true;
Navigator.pop(context);
this.onFailure();
},
)
],
),
// shape: RoundedRectangleBorder( // shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.all(Radius.circular(10.0))), // borderRadius: BorderRadius.all(Radius.circular(10.0))),
content: StatefulBuilder(builder: (context, setState) { content: StatefulBuilder(builder: (context, setState) {
@ -89,6 +77,11 @@ class SMSOTP {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Padding(
padding: EdgeInsets.all(10),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
type == 1 type == 1
? Padding( ? Padding(
child: Icon( child: Icon(
@ -104,6 +97,24 @@ class SMSOTP {
), ),
padding: EdgeInsets.only(bottom: 20), padding: EdgeInsets.only(bottom: 20),
), ),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Padding(
padding: EdgeInsets.only(
left: 10, right: 10, bottom: 20),
child: IconButton(
icon: Icon(Icons.close),
iconSize: 40,
onPressed: () {
this.isClosed = true;
Navigator.pop(context);
this.onFailure();
},
))
],
)
])),
Padding( Padding(
padding: EdgeInsets.only(top: 5), padding: EdgeInsets.only(top: 5),
child: AppText( child: AppText(
@ -122,7 +133,7 @@ class SMSOTP {
child: Directionality( child: Directionality(
textDirection: TextDirection.ltr, textDirection: TextDirection.ltr,
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[ children: <Widget>[
Container( Container(
width: SizeConfig.realScreenWidth * 0.15, width: SizeConfig.realScreenWidth * 0.15,
@ -233,22 +244,23 @@ class SMSOTP {
)), )),
), ),
), ),
Padding( Column(
padding: EdgeInsets.only(top: 10), mainAxisAlignment: MainAxisAlignment.start,
child: Row(children: [ crossAxisAlignment: CrossAxisAlignment.start,
Expanded( children: [
child: AppText( AppText(
TranslationBase.of(context).validationMessage + ' ', TranslationBase.of(context).validationMessage + ' ',
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
), fontSize: 14,
), ),
AppText( AppText(
displayTime, displayTime,
color: Colors.red, color: Colors.red,
textAlign: TextAlign.center, textAlign: TextAlign.start,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontSize: 14,
) )
])) ])
], ],
))), ))),
); );

@ -57,7 +57,7 @@ class ProfileWelcomeWidget extends StatelessWidget {
CircleAvatar( CircleAvatar(
// radius: (52) // radius: (52)
child: ClipRRect( child: ClipRRect(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(20),
child: Image.network( child: Image.network(
authProvider.doctorProfile.doctorImageURL, authProvider.doctorProfile.doctorImageURL,
fit: BoxFit.fill, fit: BoxFit.fill,

@ -26,7 +26,7 @@ class StepsWidget extends StatelessWidget {
color: Colors.transparent, color: Colors.transparent,
child: Center( child: Center(
child: Container( child: Container(
width: MediaQuery.of(context).size.width * 0.87, width: MediaQuery.of(context).size.width * 0.86,
child: Divider( child: Divider(
color: Colors.grey, color: Colors.grey,
height: 0.75, height: 0.75,

@ -4,6 +4,7 @@ import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart'; import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.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/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/models/SOAP/GetGetProgressNoteReqModel.dart'; import 'package:doctor_app_flutter/models/SOAP/GetGetProgressNoteReqModel.dart';
import 'package:doctor_app_flutter/models/SOAP/GetGetProgressNoteResModel.dart'; import 'package:doctor_app_flutter/models/SOAP/GetGetProgressNoteResModel.dart';
import 'package:doctor_app_flutter/models/SOAP/post_progress_note_request_model.dart'; import 'package:doctor_app_flutter/models/SOAP/post_progress_note_request_model.dart';
@ -44,8 +45,7 @@ class UpdatePlanPage extends StatefulWidget {
} }
class _UpdatePlanPageState extends State<UpdatePlanPage> { class _UpdatePlanPageState extends State<UpdatePlanPage> {
bool isProgressNoteExpand = false; bool isAddProgress = true;
TextEditingController progressNoteController = TextEditingController progressNoteController =
TextEditingController(text: null); TextEditingController(text: null);
@ -62,7 +62,17 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
)), )),
); );
} }
TextEditingController typeController = TextEditingController();
@override
void initState() {
super.initState();
if(widget.patientProgressNote.planNote !=null ){
setState(() {
isAddProgress = false;
});
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -83,7 +93,9 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
widget.patientProgressNote.createdOn = model.patientProgressNoteList[0].createdOn; widget.patientProgressNote.createdOn = model.patientProgressNoteList[0].createdOn;
widget.patientProgressNote.editedOn = model.patientProgressNoteList[0].editedOn; widget.patientProgressNote.editedOn = model.patientProgressNoteList[0].editedOn;
widget.patientProgressNote.editedByName = model.patientProgressNoteList[0].editedByName; widget.patientProgressNote.editedByName = model.patientProgressNoteList[0].editedByName;
setState(() {
isAddProgress = false;
});
} }
widget.changeLoadingState(false); widget.changeLoadingState(false);
}, },
@ -111,50 +123,15 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
SizedBox(
height: 10,
),
HeaderBodyExpandableNotifier(
headerWidget: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Row(
children: [
Texts(TranslationBase
.of(context)
.progressNoteSOAP,
variant: isProgressNoteExpand ? "bodyText" : '',
bold: isProgressNoteExpand ? true : false,
color: Colors.black),
Icon(
FontAwesomeIcons.asterisk,
color: Colors.black,
size: 12,
)
],
),
InkWell(
onTap: () {
setState(() {
isProgressNoteExpand = !isProgressNoteExpand;
});
},
child: Icon(isProgressNoteExpand
? Icons.keyboard_arrow_up
: Icons.keyboard_arrow_down))
],
),
bodyWidget: Column(children: [
SizedBox(
height: 2,
),
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
if(widget.patientProgressNote.planNote == null)
Container( Container(
margin: margin: EdgeInsets.only(left: 5, right: 5),
EdgeInsets.only(left: 10, right: 10, top: 15), child: Texts(TranslationBase.of(context).progressNote)),
if( isAddProgress)
Container(
margin: EdgeInsets.only(left: 10, right: 10, top: 15),
child: AppTextFieldCustom( child: AppTextFieldCustom(
hintText: TranslationBase.of(context).progressNote, hintText: TranslationBase.of(context).progressNote,
controller: progressNoteController, controller: progressNoteController,
@ -162,115 +139,82 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
maxLines: 4, maxLines: 4,
inputType: TextInputType.multiline, inputType: TextInputType.multiline,
onChanged: (value){ onChanged: (value){
// examination.remark = value; widget.patientProgressNote.planNote = value;
}, },
), ),
), ),
SizedBox( SizedBox(
height: 20, height: 9,
), ),
if ( widget.patientProgressNote.planNote != null) if ( widget.patientProgressNote.planNote != null && !isAddProgress)
Container( Container(
margin: margin:
EdgeInsets.only(left: 5, right: 5, top: 15), EdgeInsets.only(left: 5, right: 5,),
child: Column( child: Column(
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment.start, CrossAxisAlignment.start,
children: [ children: [
SizedBox(
height: 8,
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Row( Row(
children: [ children: [
Texts('Appointment No: '), Texts('Appointment No: ',fontSize: 12,),
Texts(widget.patientProgressNote.appointmentNo.toString()), Texts(widget.patientProgressNote.appointmentNo??'',fontWeight: FontWeight.w600,),
], ],
), ),
AppText( Texts(
widget.patientProgressNote.createdOn !=null?DateUtils.getDayMonthYearDateFormatted(DateTime.parse(widget.patientProgressNote.createdOn)):DateUtils.getDayMonthYearDateFormatted(DateTime.now()), widget.patientProgressNote.createdOn !=null?DateUtils.getDayMonthYearDateFormatted(DateTime.parse(widget.patientProgressNote.createdOn)):DateUtils.getDayMonthYearDateFormatted(DateTime.now()),
fontWeight: FontWeight fontWeight: FontWeight.w600,
.bold, fontSize: 14,
fontSize: 16,
) )
], ],
), ),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Texts('Condition: '),
Texts(widget.patientProgressNote.mName.toString()),
],
),
if(widget.patientProgressNote.createdByName !=null)
Row( Row(
mainAxisAlignment:
MainAxisAlignment.start,
children: [ children: [
AppText( Texts('Condition: ',fontSize: 12,),
TranslationBase.of(context).createdBy, Texts(widget.patientProgressNote.mName??'',fontWeight: FontWeight.w600),
fontWeight: FontWeight.bold,
fontSize: 16,
),
AppText(
widget.patientProgressNote.createdByName??"",
fontSize: 10,
color: Colors.grey,
),
], ],
), ),
if(widget.patientProgressNote.editedByName !=null) Texts(
Row( widget.patientProgressNote.createdOn !=null?DateUtils.getHour(DateTime.parse(widget.patientProgressNote.createdOn)):DateUtils.getHour(DateTime.now()),
mainAxisAlignment: fontWeight: FontWeight.w600,
MainAxisAlignment.start, fontSize: 14,
children: [ )
AppText(
TranslationBase.of(context).editedBy,
fontWeight: FontWeight.bold,
fontSize: 16,
),
AppText(
widget.patientProgressNote.editedByName??"",
fontSize: 10,
color: Colors.grey,
),
], ],
), ),
SizedBox(height: 8,),
Row( Row(
mainAxisAlignment: mainAxisAlignment: MainAxisAlignment.start,
MainAxisAlignment.start,
children: [ children: [
SizedBox( Expanded(
height: 6,
),
Padding(
padding: const EdgeInsets.all(0.0),
child: Container(
width: MediaQuery.of(context)
.size
.width *
0.6,
child: Texts( child: Texts(
progressNoteController.text, progressNoteController.text,
fontSize: 10, fontSize: 10,
color: Colors.grey,
),
), ),
), ),
InkWell(
onTap: (){
setState(() {
isAddProgress = true;
widget.changePageViewIndex(3,isChangeState:false);
});
},
child: Icon(DoctorApp.edit,size: 18,))
], ],
), ),
], ],
), ),
) )
], ],
)
]),
isExpand: isProgressNoteExpand,
), ),
], ],
@ -281,20 +225,21 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
), ),
bottomSheet: Container( bottomSheet: Container(
width: double.maxFinite, width: double.maxFinite,
height: 70, height: 90,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Container( child: Container(
margin: EdgeInsets.all(6), margin: EdgeInsets.all(6),
child: Column( child: Column(
children: [ children: [
Row( Row(
children: [ children: [
Expanded( Expanded(
child: AppButton( child: AppButton(
title: 'Previous', title: 'Previous',
color: Colors.white38, color: Colors.grey[300],
fontColor: Colors.black, fontColor: Colors.black,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w400,
loading: model.state == ViewState.BusyLocal, loading: model.state == ViewState.BusyLocal,
onPressed: () async { onPressed: () async {
setState(() { setState(() {
@ -306,13 +251,14 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
SizedBox(width: 5,), SizedBox(width: 5,),
Expanded( Expanded(
child: AppButton( child: AppButton(
title: TranslationBase.of(context).next, title: isAddProgress? TranslationBase.of(context).next: "Finish",
fontWeight: FontWeight.w700, fontWeight: FontWeight.w400,
loading: model.state == ViewState.BusyLocal, loading: model.state == ViewState.BusyLocal,
color: Colors.red[700],
disabled: progressNoteController.text.isEmpty, disabled: progressNoteController.text.isEmpty,
onPressed: () async { onPressed: () async {
if(widget.patientProgressNote.planNote.isEmpty) { if(isAddProgress) {
Map profile = await sharedPref.getObj(DOCTOR_PROFILE); Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile); DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile);
setState(() { setState(() {
@ -320,10 +266,13 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
widget.patientProgressNote.editedByName = doctorProfile.doctorName; widget.patientProgressNote.editedByName = doctorProfile.doctorName;
widget.patientProgressNote.createdOn = DateTime.now().toString(); widget.patientProgressNote.createdOn = DateTime.now().toString();
widget.patientProgressNote.planNote = progressNoteController.text; widget.patientProgressNote.planNote = progressNoteController.text;
isAddProgress = !isAddProgress;
}); });
} else
submitPlan(model); submitPlan(model);
} else{
Navigator.of(context).pop();
}
}, },
), ),
), ),
@ -335,6 +284,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
), ),
), ),
), ),
),
); );
} }
@ -361,7 +311,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
if (model.state == ViewState.ErrorLocal) { if (model.state == ViewState.ErrorLocal) {
helpers.showErrorToast(model.error); helpers.showErrorToast(model.error);
} else { } else {
Navigator.of(context).pop(); widget.changePageViewIndex(4,isChangeState:false);
} }
} else { } else {
helpers.showErrorToast(TranslationBase.of(context).progressNoteErrorMsg); helpers.showErrorToast(TranslationBase.of(context).progressNoteErrorMsg);

@ -38,9 +38,13 @@ class _UpdateSoapIndexState extends State<UpdateSoapIndex>
GetPatientProgressNoteResModel patientProgressNote = GetPatientProgressNoteResModel patientProgressNote =
GetPatientProgressNoteResModel(); GetPatientProgressNoteResModel();
changePageViewIndex(pageIndex) { changePageViewIndex(pageIndex,{isChangeState = true}) {
if (pageIndex != _currentIndex) changeLoadingState(true); if (pageIndex != _currentIndex && isChangeState)
changeLoadingState(true);
_controller.jumpToPage(pageIndex); _controller.jumpToPage(pageIndex);
setState(() {
_currentIndex = pageIndex;
});
} }
bool _isLoading = true; bool _isLoading = true;
@ -95,7 +99,7 @@ class _UpdateSoapIndexState extends State<UpdateSoapIndex>
child: StepsWidget( child: StepsWidget(
index: _currentIndex, index: _currentIndex,
changeCurrentTab: changePageViewIndex, changeCurrentTab: changePageViewIndex,
height: MediaQuery.of(context).size.height * 0.20, height: 135,//MediaQuery.of(context).size.height * 0.17,
), ),
), ),
Container( Container(

@ -45,10 +45,12 @@ class _AppDrawerState extends State<AppDrawer> {
flex: 4, flex: 4,
child: ListView(padding: EdgeInsets.zero, children: <Widget>[ child: ListView(padding: EdgeInsets.zero, children: <Widget>[
Container( Container(
margin: EdgeInsets.symmetric(horizontal: 20), margin: EdgeInsets.symmetric(horizontal: 15),
// height: SizeConfig.heightMultiplier * 50, // height: SizeConfig.heightMultiplier * 50,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [ children: [
Container( Container(
child: Image.asset( child: Image.asset(
@ -56,7 +58,23 @@ class _AppDrawerState extends State<AppDrawer> {
), ),
margin: EdgeInsets.only(top: 10, bottom: 10), margin: EdgeInsets.only(top: 10, bottom: 10),
), ),
SizedBox(height: 10), Container(
child: InkWell(
onTap: (){
Navigator.pop(context);
},
child: Icon(
DoctorApp.close_1,
size: 20,
),
),
margin: EdgeInsets.only(top: 20, bottom: 10),
)
],
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
),
SizedBox(height: 5),
if (authProvider.doctorProfile != null) if (authProvider.doctorProfile != null)
InkWell( InkWell(
onTap: () { onTap: () {
@ -80,7 +98,7 @@ class _AppDrawerState extends State<AppDrawer> {
), ),
), ),
Padding( Padding(
padding: EdgeInsets.only(top: 5), padding: EdgeInsets.only(top: 0),
child: AppText( child: AppText(
authProvider.doctorProfile?.clinicDescription, authProvider.doctorProfile?.clinicDescription,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
@ -91,13 +109,10 @@ class _AppDrawerState extends State<AppDrawer> {
], ],
), ),
), ),
SizedBox(height: 10), SizedBox(height: 40),
InkWell( InkWell(
child: DrawerItem( child: DrawerItem(
TranslationBase.of(context).rescheduleLeaves, TranslationBase.of(context).applyOrRescheduleLeave,
// " or " +
// TranslationBase.of(context).leaves,
DoctorApp.reschedule__1, DoctorApp.reschedule__1,
// subTitle: , // subTitle: ,
), ),
@ -111,19 +126,15 @@ class _AppDrawerState extends State<AppDrawer> {
)); ));
}, },
), ),
SizedBox(height: 15),
SizedBox(height: 10),
InkWell( InkWell(
child: DrawerItem( child: DrawerItem(
'My QR Code', TranslationBase.of(context).myQRCode,
// " or " +
// TranslationBase.of(context).leaves,
DoctorApp.qr_code_3, DoctorApp.qr_code_3,
// subTitle: , // subTitle: ,
), ),
), ),
SizedBox(height: 15),
InkWell( InkWell(
child: Container( child: Container(
height: 80, height: 80,
@ -138,14 +149,12 @@ class _AppDrawerState extends State<AppDrawer> {
), ),
), ),
SizedBox( SizedBox(
height: 40, height: 130,
), ),
Container( Container(
margin: EdgeInsets.symmetric(horizontal: 20), margin: EdgeInsets.symmetric(horizontal: 20),
child: Column( child: Column(
children: [ children: [
InkWell( InkWell(
child: DrawerItem( child: DrawerItem(
projectsProvider.isArabic projectsProvider.isArabic
@ -159,6 +168,7 @@ class _AppDrawerState extends State<AppDrawer> {
projectsProvider.changeLanguage('ar'); projectsProvider.changeLanguage('ar');
}, },
), ),
SizedBox(height: 10),
InkWell( InkWell(
child: DrawerItem( child: DrawerItem(
TranslationBase.of(context).logout, DoctorApp.logout_1), TranslationBase.of(context).logout, DoctorApp.logout_1),
@ -193,13 +203,13 @@ class _AppDrawerState extends State<AppDrawer> {
style: TextStyle( style: TextStyle(
color: Color(0xFF989898), color: Color(0xFF989898),
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontSize: SizeConfig.textMultiplier * 2, fontSize: 14,
fontFamily: 'Poppins',), fontFamily: 'Poppins',),
children: <TextSpan>[ children: <TextSpan>[
TextSpan(text: ' Cloud Solutions', TextSpan(text: ' Cloud Solutions',
style: TextStyle( style: TextStyle(
color: Color(0xFF2E303A), color: Color(0xFF2E303A),
fontSize: SizeConfig.textMultiplier * 2, fontSize: 15,
fontFamily: 'Poppins',), fontFamily: 'Poppins',),
) )
] ]

@ -37,23 +37,23 @@ class _BottomNavBarState extends State<BottomNavBar> {
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [ children: [
BottomNavigationItem( BottomNavigationItem(
icon: DoctorApp.home_icon_active, icon: DoctorApp.home_1,
activeIcon: DoctorApp.home_active, activeIcon: DoctorApp.home_active_1,
changeIndex: _changeIndex, changeIndex: _changeIndex,
index: _index, index: _index,
currentIndex: 0, currentIndex: 0,
name: TranslationBase.of(context).home, name: TranslationBase.of(context).home,
), ),
BottomNavigationItem( BottomNavigationItem(
icon: DoctorApp.schedule_icon, icon: DoctorApp.schedule_1,
activeIcon: DoctorApp.scdedule_icon_active_1, activeIcon: DoctorApp.schedule_active_1,
changeIndex: _changeIndex, changeIndex: _changeIndex,
index: _index, index: _index,
currentIndex: 1, currentIndex: 1,
name: TranslationBase.of(context).mySchedule, name: TranslationBase.of(context).mySchedule,
), ),
BottomNavigationItem( BottomNavigationItem(
icon: DoctorApp.qr_code, icon: DoctorApp.qr_reader,
activeIcon: DoctorApp.qr_reader_active_1, activeIcon: DoctorApp.qr_reader_active_1,
changeIndex: _changeIndex, changeIndex: _changeIndex,
index: _index, index: _index,
@ -61,7 +61,7 @@ class _BottomNavBarState extends State<BottomNavBar> {
name: TranslationBase.of(context).qr, name: TranslationBase.of(context).qr,
), ),
BottomNavigationItem( BottomNavigationItem(
icon: DoctorApp.message_icon, icon: DoctorApp.dr_reply_1,
activeIcon: DoctorApp.dr_reply_active_1, activeIcon: DoctorApp.dr_reply_active_1,
changeIndex: _changeIndex, changeIndex: _changeIndex,
index: _index, index: _index,

@ -34,19 +34,10 @@ class BottomNavigationItem extends StatelessWidget {
children: <Widget>[ children: <Widget>[
SizedBox(height: 15,), SizedBox(height: 15,),
Container( Container(
// decoration: BoxDecoration(boxShadow: [
// BoxShadow(
// color: currentIndex == index
// ? Color.fromRGBO(78, 62, 253, 0.4)
// : Color.fromRGBO(78, 62, 253, 0),
// blurRadius: 9.0,
// spreadRadius: -4.0,
// offset: Offset(0.0, 2.0))
// ]),
child: Icon(currentIndex == index ? activeIcon : icon, child: Icon(currentIndex == index ? activeIcon : icon,
/*color: currentIndex == index color: currentIndex == index
? Theme.of(context).primaryColor ? Color(0xFF333C45)
: Theme.of(context).dividerColor,*/ : Theme.of(context).dividerColor,
size: 22.0), size: 22.0),
), ),
SizedBox(height: 5,), SizedBox(height: 5,),

@ -1,4 +1,5 @@
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/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart'; import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@ -89,7 +90,7 @@ class DoctorCardInsurance extends StatelessWidget {
child: Padding( child: Padding(
padding: const EdgeInsets.all(5.0), padding: const EdgeInsets.all(5.0),
child: Texts( child: Texts(
'$patientOut', '$patientOut'.replaceAll(" ", ""),
color: Colors.white, color: Colors.white,
fontSize: 13.0, fontSize: 13.0,
), ),
@ -102,7 +103,7 @@ class DoctorCardInsurance extends StatelessWidget {
Expanded( Expanded(
child: Texts( child: Texts(
doctorName, doctorName,
bold: true, fontWeight: FontWeight.w700,
)), )),
], ],
), ),
@ -153,11 +154,13 @@ class DoctorCardInsurance extends StatelessWidget {
children: <Widget>[ children: <Widget>[
Texts( Texts(
'Clinic: ', 'Clinic: ',
color: Colors.grey[500], //fontWeight: FontWeight.w600,
//color: Colors.grey[500],
), ),
Expanded( Expanded(
child: Texts( child: Texts(
clinic, clinic,
fontWeight: FontWeight.w700,
), ),
) )
], ],
@ -167,19 +170,24 @@ class DoctorCardInsurance extends StatelessWidget {
children: <Widget>[ children: <Widget>[
Texts( Texts(
'Approval No: ', 'Approval No: ',
color: Colors.grey[500], //color: Colors.grey[500],
), ),
Texts( Texts(
branch, branch,
fontWeight: FontWeight.w700,
) )
], ],
) )
]), ]),
), ),
), ),
Icon( Padding(
EvaIcons.eye, padding:
size: 38.0, const EdgeInsets.symmetric(horizontal: 15.0),
child: Icon(
DoctorApp.view,
size: 22.0,
),
) )
], ],
), ),

@ -26,7 +26,7 @@ class _DrawerItemState extends State<DrawerItem> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
margin: EdgeInsets.only(top: 5, bottom: 5, left: 0, right: 0), margin: EdgeInsets.only(top: 0, bottom: 5, left: 0, right: 0),
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
@ -49,16 +49,9 @@ class _DrawerItemState extends State<DrawerItem> {
color:widget.color ??Color(0xFF2E303A), color:widget.color ??Color(0xFF2E303A),
fontSize: 14, fontSize: 14,
fontFamily: 'Poppins', fontFamily: 'Poppins',
fontWeight: FontWeight.bold, fontWeight: FontWeight.w600,
), ),
), ),
AppText(
widget.subTitle,
visibility: !widget.subTitle.isNullOrEmpty(),
color: widget.color ?? Colors.black,
marginLeft: 5,
fontSize: SizeConfig.textMultiplier * 2.5,
),
], ],
), ),
), ),

@ -18,14 +18,14 @@ class HeaderBodyExpandableNotifier extends StatefulWidget {
class _HeaderBodyExpandableNotifierState class _HeaderBodyExpandableNotifierState
extends State<HeaderBodyExpandableNotifier> { extends State<HeaderBodyExpandableNotifier> {
@override @override
Widget build(BuildContext context) { void initState() {
setState(() { super.initState();
if (widget.isExpand == true) {
widget.expandFlag = widget.isExpand;
widget.controller.expanded = true;
} }
}); @override
Widget build(BuildContext context) {
return ExpandableNotifier( return ExpandableNotifier(
child: Padding( child: Padding(

@ -137,14 +137,29 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
items[index]), items[index]),
activeColor: Colors.red[800], activeColor: Colors.red[800],
onChanged: (bool newValue) { onChanged: (bool newValue) {
// setState(() { setState(() {
// if (widget if (widget
// .isServiceSelected(items[index])) { .isServiceSelected(
// widget.removeHistory(items[index]); items[index])) {
// } else { widget.removeAllergy(
// widget.addHistory(items[index]); items[index]);
// } } else {
// }); // TODO add Allergy
MySelectedAllergy
mySelectedAllergy =
new MySelectedAllergy(
selectedAllergy:
items[index],
selectedAllergySeverity:
_selectedAllergySeverity,
remark: null,
isChecked: true,
isExpanded: true);
widget.addAllergy(
mySelectedAllergy);
}
});
}), }),
InkWell( InkWell(
onTap: () { onTap: () {

Loading…
Cancel
Save