add prescription & add lab test changes

merge-requests/461/head
hussam al-habibeh 5 years ago
parent 76b80600c6
commit c72d612646

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

Loading…
Cancel
Save