Merge branch 'development' into feature-ucaf

# Conflicts:
#	lib/config/localized_values.dart
#	lib/util/translations_delegate_base.dart
merge-requests/276/head
mosazaid 5 years ago
commit cca4e33fce

@ -215,7 +215,7 @@ const Map<String, Map<String, String>> localizedValues = {
'en': 'Please fill all fields..!',
'ar': 'الرجاء ملأ جميع الحقول..!'
},
'replay2': {'en': 'Replay', 'ar': 'رد الطبيب'},
'replay2': {'en': 'Reply', 'ar': 'رد الطبيب'},
'logout': {'en': 'Logout', 'ar': 'تسجيل خروج'},
'pharmaciesList': {'en': 'Pharmacies List', 'ar': 'قائمة الصيدليات'},
'price': {'en': 'Price', 'ar': 'السعر'},
@ -674,7 +674,15 @@ const Map<String, Map<String, String>> localizedValues = {
'en': "Referral Remark : ",
'ar': "ملاحظة الإحالة :"
},
'icd': {'en': "ICD", 'ar': "التصنيف الدولي للأمراض"
// 'icd': {'en': "ICD", 'ar': " "
},
'ICDName': {
'en': "ICDName",
'ar': "اسم ال ICD"
},
'icd': {'en': "ICD", 'ar': "التصنيف الدولي للأمراض"},
'days': {'en': "Days", 'ar': "أيام"},
'months': {'en': "Months", 'ar': "أشهر"},
'years': {'en': "Years", 'ar': "سنين"},
'hr': {'en': "HR", 'ar': "س"},
'min': {'en': "Min", 'ar': "د"}
// 'icd': {'en': "ICD", 'ar': " "}
};

@ -43,7 +43,7 @@ class VitalSignsService extends BaseService {
Map<String, dynamic> body = Map();
body['PatientMRN'] = patient.patientMRN;
body['AppointmentNo'] = patient.appointmentNo;
body['EpisodeID'] = patient.episodeNo;
// body['EpisodeID'] = patient.episodeNo;
body['PatientTypeID'] = 1;
body['PatientType'] = 1;
body['DeviceTypeID'] = 1;

@ -41,97 +41,109 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
thickness: 1.0,
color: Colors.grey,
),
if (model.medicalFileList.length != 0)
ListView.builder(
//physics: ,
physics: NeverScrollableScrollPhysics(),
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: model
.medicalFileList[0].entityList[0].timelines.length,
itemBuilder: (BuildContext ctxt, int index) {
return Padding(
padding: EdgeInsets.symmetric(
horizontal: 12.0, vertical: 8.0),
child: InkWell(
child: Container(
child: Column(
children: [
Row(
children: [
AppText(
TranslationBase.of(context).branch +
": ",
fontWeight: FontWeight.w700,
),
AppText(model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.projectName),
],
),
Row(
children: [
AppText(
TranslationBase.of(context)
.doctorName
.toUpperCase() +
": ",
fontWeight: FontWeight.w700,
),
Expanded(
child: AppText(
(model.medicalFileList.length != 0 &&
model.medicalFileList != null)
? ListView.builder(
//physics: ,
physics: NeverScrollableScrollPhysics(),
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: model.medicalFileList[0].entityList[0]
.timelines.length,
itemBuilder: (BuildContext ctxt, int index) {
return Padding(
padding: EdgeInsets.symmetric(
horizontal: 12.0, vertical: 8.0),
child: InkWell(
child: Container(
child: Column(
children: [
Row(
children: [
AppText(
TranslationBase.of(context).branch +
": ",
fontWeight: FontWeight.w700,
),
AppText(model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.projectName),
],
),
Row(
children: [
AppText(
TranslationBase.of(context)
.doctorName
.toUpperCase() +
": ",
fontWeight: FontWeight.w700,
),
Expanded(
child: AppText(
model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.doctorName,
fontWeight: FontWeight.w700,
),
),
],
),
Row(
children: [
AppText(
TranslationBase.of(context)
.clinicName +
": ",
fontWeight: FontWeight.w700,
),
AppText(
model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.doctorName,
fontWeight: FontWeight.w700,
.clinicName,
),
),
],
),
Row(
children: [
AppText(
TranslationBase.of(context)
.clinicName +
": ",
fontWeight: FontWeight.w700,
),
AppText(
model.medicalFileList[0].entityList[0]
.timelines[index].clinicName,
),
],
),
SizedBox(height: 10.0),
Divider(
height: 1.0,
thickness: 1.0,
color: Colors.grey.shade400,
)
],
],
),
SizedBox(height: 10.0),
Divider(
height: 1.0,
thickness: 1.0,
color: Colors.grey.shade400,
)
],
),
),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
MedicalFileDetails(
age: patient.age,
firstName: patient.firstName,
lastName: patient.lastName,
gender: patient.genderDescription,
encounterNumber: index,
pp: patient.patientMRN,
)),
);
},
),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => MedicalFileDetails(
age: patient.age,
firstName: patient.firstName,
lastName: patient.lastName,
gender: patient.genderDescription,
encounterNumber: index,
pp: patient.patientMRN,
)),
);
},
);
})
: Center(
child: Container(
child: AppText(
'THERES NO MEDICAL FILE FOR THIS Patient',
),
);
})
),
)
],
),
),

@ -76,7 +76,9 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
if ((_patientSearchFormValues.From == "0" ||
_patientSearchFormValues.To == "0") &&
_selectedType == "7") {
_selectedType == "7" || ((_patientSearchFormValues.From == "0" ||
_patientSearchFormValues.To == "0") &&
_selectedType == "6") ) {
// helpers.showErrorToast("Please Choose The Dates");
} else {
setState(() {

@ -17,6 +17,7 @@ import 'package:doctor_app_flutter/models/patient/patient_model.dart';
import 'package:doctor_app_flutter/models/patient/topten_users_res_model.dart';
import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart';
@ -615,9 +616,8 @@ class _PatientsScreenState extends State<PatientsScreen> {
.white,
),
AppText(
item
.age
.toString(),
" ${DateUtils.getAgeByBirthday(item.dateofBirth)}",
fontSize: 1.8 *
SizeConfig
.textMultiplier,

@ -117,6 +117,12 @@ class _PatientsOrdersState extends State<PatientsOrdersScreen> {
marginBottom: 5,
fontWeight: FontWeight.bold,
),
AppText(
notesList[index]
["AdmissionNo"],
marginLeft: 10,
color: Colors.grey[600],
),
AppText(
convertDateFormat(
notesList[index]
@ -128,18 +134,24 @@ class _PatientsOrdersState extends State<PatientsOrdersScreen> {
),
),
children: <Widget>[
Divider(
color: Colors.black,
height: 20,
thickness: 1,
indent: 0,
endIndent: 0,
),
AppText(
notesList[index]["Notes"],
margin: 5,
)
],
Divider(
color: Colors.black,
height: 20,
thickness: 1,
indent: 0,
endIndent: 0,
),
Row(
mainAxisAlignment:
MainAxisAlignment.start,
children: [
AppText(
notesList[index]["Notes"],
margin: 5,
),
],
)
],
),
],
));

@ -22,6 +22,7 @@ import 'package:doctor_app_flutter/widgets/shared/dialogs/dailog-list-select.dar
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:flutter/services.dart';
addPrescriptionForm(context, PrescriptionViewModel model,
PatiantInformtion patient, prescription) {
@ -101,6 +102,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
TextEditingController instructionController = TextEditingController();
DateTime selectedDate;
dynamic selectedDrug;
int strengthChar;
GetMedicationResponseModel _selectedMedication;
GlobalKey key =
new GlobalKey<AutoCompleteTextFieldState<GetMedicationResponseModel>>();
@ -525,21 +527,33 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
Container(
width:
MediaQuery.of(context).size.width *
0.650,
0.550,
child: TextFields(
inputFormatters: [
LengthLimitingTextInputFormatter(4)
],
hintText: TranslationBase.of(context)
.strength,
controller: strengthController,
keyboardType: TextInputType.number,
validator: (value) {
if (value.isEmpty &&
strengthController.text.length >
4)
return TranslationBase.of(context)
.emptyMessage;
else
return null;
onChanged: (String value) {
setState(() {
strengthChar = value.length;
});
if (strengthChar >= 4) {
DrAppToastMsg.showErrorToast(
"Only 4 Digits allowed for strength");
}
},
// validator: (value) {
// if (value.isEmpty &&
// strengthController.text.length >
// 4)
// return TranslationBase.of(context)
// .emptyMessage;
// else
// return null;
// },
),
),
SizedBox(
@ -548,7 +562,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
Container(
width:
MediaQuery.of(context).size.width *
0.250,
0.350,
child: InkWell(
onTap: unitsList != null
? () {

@ -22,6 +22,7 @@ import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dialogs/dailog-list-select.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:hexcolor/hexcolor.dart';
class NewPrescriptionScreen extends StatefulWidget {
@ -32,15 +33,21 @@ class NewPrescriptionScreen extends StatefulWidget {
class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
PersistentBottomSheetController _controller;
final _scaffoldKey = GlobalKey<ScaffoldState>();
TextEditingController strengthController = TextEditingController();
int testNum = 0;
int strengthChar;
PatiantInformtion patient;
dynamic route;
dynamic doseTime;
dynamic frequencyUpdate;
dynamic updatedDuration;
dynamic units;
List<dynamic> doseTimeList;
List<dynamic> routeList;
List<dynamic> frequencyList;
List<dynamic> durationList;
List<dynamic> unitsList;
@override
void initState() {
@ -48,7 +55,12 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
routeList = List();
doseTimeList = List();
frequencyList = List();
durationList = List();
unitsList = List();
dynamic unit1 = {"id": 1, "name": "MG"};
dynamic unit2 = {"id": 2, "name": "MCG"};
dynamic unit3 = {"id": 3, "name": "GM"};
dynamic frequency1 = {"id": 2, "name": "2 Times a day"};
dynamic frequency2 = {"id": 3, "name": "3 Times a day"};
dynamic frequency3 = {"id": 4, "name": "4 Times a day"};
@ -115,7 +127,39 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
dynamic route25 = {"id": 37, "name": "Inserted into Vagina"};
dynamic route26 = {"id": 36, "name": "Inserted into Rectum"};
dynamic route27 = {"id": 31, "name": "In Each Nostril"};
dynamic duration1 = {"id": 1, "name": "For 1 Day"};
dynamic duration2 = {"id": 2, "name": "For 2 Days"};
dynamic duration3 = {"id": 3, "name": "For 3 Days"};
dynamic duration4 = {"id": 4, "name": "For 4 Days"};
dynamic duration5 = {"id": 5, "name": "For 5 Days"};
dynamic duration6 = {"id": 6, "name": "For 6 Days"};
dynamic duration7 = {"id": 7, "name": "For 7 Days"};
dynamic duration8 = {"id": 8, "name": "For 8 Days"};
dynamic duration9 = {"id": 9, "name": "For 9 Days"};
dynamic duration10 = {"id": 10, "name": "For 10 Days"};
dynamic duration11 = {"id": 14, "name": "For 14 Days"};
dynamic duration12 = {"id": 21, "name": "For 21 Days"};
dynamic duration13 = {"id": 30, "name": "For 30 Days"};
dynamic duration14 = {"id": 45, "name": "For 45 Days"};
dynamic duration15 = {"id": 60, "name": "For 60 Days"};
dynamic duration16 = {"id": 90, "name": "For 90 Days"};
durationList.add(duration1);
durationList.add(duration2);
durationList.add(duration3);
durationList.add(duration4);
durationList.add(duration5);
durationList.add(duration6);
durationList.add(duration7);
durationList.add(duration8);
durationList.add(duration9);
durationList.add(duration10);
durationList.add(duration11);
durationList.add(duration12);
durationList.add(duration13);
durationList.add(duration14);
durationList.add(duration15);
durationList.add(duration16);
frequencyList.add(frequency1);
frequencyList.add(frequency2);
frequencyList.add(frequency3);
@ -182,6 +226,9 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
routeList.add(route25);
routeList.add(route26);
routeList.add(route27);
unitsList.add(unit1);
unitsList.add(unit2);
unitsList.add(unit3);
}
Widget build(BuildContext context) {
@ -442,7 +489,7 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
context)
.size
.height *
0.282,
0.295,
width: MediaQuery.of(
context)
.size
@ -582,13 +629,18 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
children: [
Expanded(
child:
AppText(
model
.prescriptionList[0]
.entityList[index]
.remarks,
fontSize:
14.0,
Container(
height:
30,
child:
AppText(
model
.prescriptionList[0]
.entityList[index]
.remarks,
fontSize:
11.5,
),
),
),
],
@ -792,213 +844,389 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
builder: (BuildContext context) {
return StatefulBuilder(builder: (BuildContext context,
StateSetter setState /*You can rename this!*/) {
return Container(
height: MediaQuery.of(context).size.height * 0.73,
child: Form(
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 20.0, vertical: 12.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
drugName.toUpperCase(),
fontWeight: FontWeight.w900,
),
SizedBox(
height: 30.0,
),
Column(
children: [
Container(
height:
MediaQuery.of(context).size.height * 0.070,
child: InkWell(
onTap: routeList != null
? () {
ListSelectDialog dialog =
ListSelectDialog(
list: routeList,
attributeName: 'name',
attributeValueId: 'id',
okText:
TranslationBase.of(context).ok,
okFunction: (selectedValue) {
setState(() {
route = selectedValue;
});
if (route == null) {
route = route['id'];
}
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
}
: null,
child: TextField(
decoration: textFieldSelectorDecoration(
TranslationBase.of(context).route,
route != null ? route['name'] : null,
true),
enabled: false,
),
return DraggableScrollableSheet(
initialChildSize: 0.90,
maxChildSize: 0.90,
minChildSize: 0.6,
builder:
(BuildContext context, ScrollController scrollController) {
return Container(
height: MediaQuery.of(context).size.height * 1.0,
child: Form(
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 20.0, vertical: 12.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
drugName.toUpperCase(),
fontWeight: FontWeight.w900,
),
),
SizedBox(
height: 12.0,
),
Container(
height:
MediaQuery.of(context).size.height * 0.070,
child: InkWell(
onTap: doseTimeList != null
? () {
ListSelectDialog dialog =
ListSelectDialog(
list: doseTimeList,
attributeName: 'name',
attributeValueId: 'id',
okText:
TranslationBase.of(context).ok,
okFunction: (selectedValue) {
setState(() {
doseTime = selectedValue;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
}
: null,
child: TextField(
decoration: textFieldSelectorDecoration(
TranslationBase.of(context).doseTime,
doseTime != null
? doseTime['name']
: null,
true),
enabled: false,
),
SizedBox(
height: 10.0,
),
),
SizedBox(
height: 12.0,
),
Container(
height:
MediaQuery.of(context).size.height * 0.070,
child: InkWell(
onTap: frequencyList != null
? () {
ListSelectDialog dialog =
ListSelectDialog(
list: frequencyList,
attributeName: 'name',
attributeValueId: 'id',
okText:
TranslationBase.of(context).ok,
okFunction: (selectedValue) {
setState(() {
frequencyUpdate = selectedValue;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
}
: null,
child: TextField(
decoration: textFieldSelectorDecoration(
TranslationBase.of(context).frequency,
frequencyUpdate != null
? frequencyUpdate['name']
Column(
children: [
Container(
height: MediaQuery.of(context).size.height *
0.070,
width: double.infinity,
child: Row(
children: [
Container(
width: MediaQuery.of(context)
.size
.width *
0.550,
child: TextFields(
inputFormatters: [
LengthLimitingTextInputFormatter(
4)
],
hintText:
TranslationBase.of(context)
.strength,
controller: strengthController,
keyboardType: TextInputType.number,
onChanged: (String value) {
setState(() {
strengthChar = value.length;
});
if (strengthChar >= 4) {
DrAppToastMsg.showErrorToast(
"Only 4 Digits allowed for strength");
}
},
// validator: (value) {
// if (value.isEmpty &&
// strengthController.text.length >
// 4)
// return TranslationBase.of(context)
// .emptyMessage;
// else
// return null;
// },
),
),
SizedBox(
width: 10.0,
),
Container(
width: MediaQuery.of(context)
.size
.width *
0.3200,
child: InkWell(
onTap: unitsList != null
? () {
ListSelectDialog dialog =
ListSelectDialog(
list: unitsList,
attributeName: 'name',
attributeValueId: 'id',
okText:
TranslationBase.of(
context)
.ok,
okFunction:
(selectedValue) {
setState(() {
units = selectedValue;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext
context) {
return dialog;
},
);
}
: null,
child: TextField(
decoration:
textFieldSelectorDecoration(
'UNIT Type',
units != null
? units['name']
: null,
true),
enabled: false,
),
),
),
],
),
),
Container(
height: MediaQuery.of(context).size.height *
0.070,
child: InkWell(
onTap: routeList != null
? () {
ListSelectDialog dialog =
ListSelectDialog(
list: routeList,
attributeName: 'name',
attributeValueId: 'id',
okText:
TranslationBase.of(context)
.ok,
okFunction: (selectedValue) {
setState(() {
route = selectedValue;
});
if (route == null) {
route = route['id'];
}
},
);
showDialog(
barrierDismissible: false,
context: context,
builder:
(BuildContext context) {
return dialog;
},
);
}
: null,
true),
enabled: false,
),
),
),
SizedBox(
height: 12.0,
),
Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.all(Radius.circular(6.0)),
border: Border.all(
width: 1.0, color: HexColor("#CCCCCC"))),
child: TextFields(
hintText: remarks,
controller: remarksController,
maxLines: 7,
minLines: 4,
),
),
SizedBox(
height: 12.0,
),
SizedBox(
height: MediaQuery.of(context).size.height * 0.12,
),
Container(
margin: EdgeInsets.all(
SizeConfig.widthMultiplier * 2),
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title: 'update prescription'.toUpperCase(),
onPressed: () {
updatePrescription(
doseUnit: doseUnit,
doseStreangth: doseStreangth,
duration: duration,
startDate: startDate,
doseId: dose,
frequencyId: frequency,
routeId: rouat,
patient: patient,
model: model,
drugId: drugId,
remarks: remarksController.text,
route: route != null
? route['id'].toString()
: rouat,
frequency: frequencyUpdate != null
? frequencyUpdate['id'].toString()
: frequency,
dose: doseTime != null
? doseTime['id'].toString()
: dose,
enteredRemarks: enteredRemarks);
Navigator.pop(context);
},
child: TextField(
decoration: textFieldSelectorDecoration(
TranslationBase.of(context).route,
route != null
? route['name']
: null,
true),
enabled: false,
),
),
),
SizedBox(
height: 12.0,
),
Container(
height: MediaQuery.of(context).size.height *
0.070,
child: InkWell(
onTap: doseTimeList != null
? () {
ListSelectDialog dialog =
ListSelectDialog(
list: doseTimeList,
attributeName: 'name',
attributeValueId: 'id',
okText:
TranslationBase.of(context)
.ok,
okFunction: (selectedValue) {
setState(() {
doseTime = selectedValue;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder:
(BuildContext context) {
return dialog;
},
);
}
: null,
child: TextField(
decoration: textFieldSelectorDecoration(
TranslationBase.of(context)
.doseTime,
doseTime != null
? doseTime['name']
: null,
true),
enabled: false,
),
),
),
SizedBox(
height: 12.0,
),
Container(
height: MediaQuery.of(context).size.height *
0.070,
child: InkWell(
onTap: frequencyList != null
? () {
ListSelectDialog dialog =
ListSelectDialog(
list: frequencyList,
attributeName: 'name',
attributeValueId: 'id',
okText:
TranslationBase.of(context)
.ok,
okFunction: (selectedValue) {
setState(() {
frequencyUpdate =
selectedValue;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder:
(BuildContext context) {
return dialog;
},
);
}
: null,
child: TextField(
decoration: textFieldSelectorDecoration(
TranslationBase.of(context)
.frequency,
frequencyUpdate != null
? frequencyUpdate['name']
: null,
true),
enabled: false,
),
),
),
SizedBox(
height: 12.0,
),
Container(
height: MediaQuery.of(context).size.height *
0.070,
child: InkWell(
onTap: durationList != null
? () {
ListSelectDialog dialog =
ListSelectDialog(
list: durationList,
attributeName: 'name',
attributeValueId: 'id',
okText:
TranslationBase.of(context)
.ok,
okFunction: (selectedValue) {
setState(() {
updatedDuration =
selectedValue;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder:
(BuildContext context) {
return dialog;
},
);
}
: null,
child: TextField(
decoration: textFieldSelectorDecoration(
TranslationBase.of(context)
.duration,
updatedDuration != null
? updatedDuration['name']
.toString()
: null,
true),
enabled: false,
),
),
),
SizedBox(
height: 12.0,
),
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(6.0)),
border: Border.all(
width: 1.0,
color: HexColor("#CCCCCC"))),
child: TextFields(
hintText: remarks,
controller: remarksController,
maxLines: 7,
minLines: 4,
),
),
SizedBox(
height: 12.0,
),
SizedBox(
height: MediaQuery.of(context).size.height *
0.12,
),
Container(
margin: EdgeInsets.all(
SizeConfig.widthMultiplier * 2),
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title: 'update prescription'
.toUpperCase(),
onPressed: () {
updatePrescription(
newDoseStreangth:
strengthController
.text.isNotEmpty
? strengthController
.text
: doseStreangth,
newUnit: units != null
? units['id'].toString()
: doseUnit,
doseUnit: doseUnit,
doseStreangth: doseStreangth,
duration: duration,
startDate: startDate,
doseId: dose,
frequencyId: frequency,
routeId: rouat,
patient: patient,
model: model,
newDuration: updatedDuration !=
null
? updatedDuration['id']
.toString()
: duration,
drugId: drugId,
remarks: remarksController.text,
route: route != null
? route['id'].toString()
: rouat,
frequency: frequencyUpdate != null
? frequencyUpdate['id']
.toString()
: frequency,
dose: doseTime != null
? doseTime['id'].toString()
: dose,
enteredRemarks: enteredRemarks);
Navigator.pop(context);
},
),
],
),
),
],
),
),
],
],
),
),
],
),
),
));
));
});
});
});
}
@ -1016,7 +1244,10 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
String startDate,
String doseUnit,
String doseStreangth,
String newDoseStreangth,
String duration,
String newDuration,
String newUnit,
String enteredRemarks,
PatiantInformtion patient}) async {
//PrescriptionViewModel model = PrescriptionViewModel();
@ -1031,10 +1262,13 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
sss.add(PrescriptionRequestModel(
covered: true,
dose: int.parse(
doseStreangth), //frequency.isNotEmpty ? int.parse(dose) : 1,
dose: newDoseStreangth.isNotEmpty
? int.parse(newDoseStreangth)
: int.parse(
doseStreangth), //frequency.isNotEmpty ? int.parse(dose) : 1,
itemId: drugId,
doseUnitId: int.parse(doseUnit),
doseUnitId:
newUnit.isNotEmpty ? int.parse(newUnit) : int.parse(doseUnit),
route: route.isNotEmpty ? int.parse(route) : int.parse(routeId),
frequency: frequency.isNotEmpty
? int.parse(frequency)
@ -1043,7 +1277,9 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
approvalRequired: true,
icdcode10Id: "test2",
doseTime: dose.isNotEmpty ? int.parse(dose) : int.parse(doseId),
duration: int.parse(duration),
duration: newDuration.isNotEmpty
? int.parse(newDuration)
: int.parse(duration),
doseStartDate: startDate));
updatePrescriptionReqModel.prescriptionRequestModel = sss;
//postProcedureReqModel.procedures = controlsProcedure;

@ -1,14 +1,14 @@
import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/procedure/ControlsModel.dart';
import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart';
import 'package:doctor_app_flutter/core/model/procedure/post_procedure_req_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/update_procedure_request_model.dart';
import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/models/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/procedures/entity_list_checkbox_search_widget.dart';
@ -16,17 +16,12 @@ import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
import 'package:doctor_app_flutter/widgets/shared/TextFields.dart';
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dialogs/dailog-list-select.dart';
import 'package:doctor_app_flutter/widgets/shared/divider_with_spaces_around.dart';
import 'package:doctor_app_flutter/widgets/shared/master_key_checkbox_search_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
@ -46,6 +41,7 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
}
TextEditingController procedureController = TextEditingController();
@override
Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
@ -269,8 +265,16 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
.spaceBetween,
children: [
Container(
height: 120.0,
width: 45.0,
height: MediaQuery.of(
context)
.size
.height *
0.18,
width: MediaQuery.of(
context)
.size
.width *
0.135,
child: Column(
children: [
AppText(
@ -312,8 +316,16 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
),
Expanded(
child: Container(
height: 120,
width: 325.0,
height: MediaQuery.of(
context)
.size
.height *
0.2,
width: MediaQuery.of(
context)
.size
.width *
0.05,
child: Column(
children: [
Row(
@ -415,26 +427,35 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
children: [
Expanded(
child:
AppText(
model
.procedureList[
0]
.entityList[
index]
.remarks
.toString(),
fontSize:
13.5,
Container(
height: MediaQuery.of(context)
.size
.height *
0.052,
width: MediaQuery.of(context)
.size
.width *
0.10,
child:
AppText(
model
.procedureList[0]
.entityList[index]
.remarks
.toString(),
fontSize:
11.5,
),
),
),
],
),
SizedBox(
height: 10.0,
height: 20.0,
),
Divider(
height: 5.0,
height: 1.0,
thickness: 1.0,
color:
Colors.grey,

@ -1,3 +1,5 @@
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:flutter/cupertino.dart';
import 'package:intl/intl.dart';
class DateUtils {
@ -32,7 +34,7 @@ class DateUtils {
return date;
}
static String differenceBetweenDateAndCurrentInYearMonthDay(DateTime firstDate) {
static String differenceBetweenDateAndCurrentInYearMonthDay(DateTime firstDate, BuildContext context) {
DateTime now = DateTime.now();
// now = now.add(Duration(days: 400, minutes: 0));
var difference = firstDate.difference(now);
@ -49,12 +51,10 @@ class DateUtils {
final monthAgo = new DateTime(now.year, now.month - 1, firstDate.day);
days = now.difference(monthAgo).inDays + 1;
}
return "$days Days, $months Months, $years Years";
return "$days ${TranslationBase.of(context).days}, $months ${TranslationBase.of(context).months}, $years ${TranslationBase.of(context).years}";
}
static String differenceBetweenDateAndCurrent(DateTime firstDate) {
static String differenceBetweenDateAndCurrent(DateTime firstDate, BuildContext context) {
DateTime now = DateTime.now();
// DateTime now = nows.add(Duration(days: 400, minutes: 25, hours: 0));
var difference = now.difference(firstDate);
@ -67,10 +67,10 @@ class DateUtils {
double hoursInOneDay = difference.inHours / difference.inDays;
return "$days Days, $hours HR, $minutes Min";
return "$days ${TranslationBase.of(context).days}, $hours ${TranslationBase.of(context).hr}, $minutes ${TranslationBase.of(context).min}";
}
static String differenceBetweenServerDateAndCurrent(String str) {
static String differenceBetweenServerDateAndCurrent(String str, BuildContext context) {
const start = "/Date(";
const end = "+0300)";
@ -81,7 +81,7 @@ class DateUtils {
var date = new DateTime.fromMillisecondsSinceEpoch(
int.parse(str.substring(startIndex + start.length, endIndex)));
return differenceBetweenDateAndCurrent(date);
return differenceBetweenDateAndCurrent(date, context);
}
/// get month by
@ -216,5 +216,23 @@ class DateUtils {
return 12;
}
}
static String getAgeByBirthday(dynamic birthday){
// https://leechy.dev/calculate-dates-diff-in-dart
DateTime birthDate = DateUtils.getDateTimeFromServerFormat(birthday);
final now = DateTime.now();
int years = now.year - birthDate .year;
int months = now.month - birthDate.month;
int days = now.day - birthDate.day;
if (months < 0 || (months == 0 && days < 0)) {
years--;
months += (days < 0 ? 11 : 12);
}
if (days < 0) {
final monthAgo = new DateTime(now.year, now.month - 1, birthDate.day);
days = now.difference(monthAgo).inDays + 1;
}
return "$years Yr $months Mnth $days Day";
}
}

@ -29,7 +29,7 @@ class DrAppToastMsg {
icon: ICON.CLOSE,
fontSize: 16,
imageSize: 35,
timeInSeconds: 185,
timeInSeconds: 9000,
textColor: Colors.white);
}

@ -1045,6 +1045,8 @@ class TranslationBase {
String get chiefComplaintErrorMsg =>
localizedValues['chiefComplaintErrorMsg'][locale.languageCode];
String get ICDName =>
localizedValues['ICDName'][locale.languageCode];
String get referralStatus =>
localizedValues['referralStatus'][locale.languageCode];
@ -1053,6 +1055,11 @@ class TranslationBase {
localizedValues['referralRemark'][locale.languageCode];
String get icd => localizedValues['icd'][locale.languageCode];
String get days => localizedValues['days'][locale.languageCode];
String get hr => localizedValues['hr'][locale.languageCode];
String get min => localizedValues['min'][locale.languageCode];
String get months => localizedValues['months'][locale.languageCode];
String get years => localizedValues['years'][locale.languageCode];
}
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -18,23 +18,7 @@ import './profile_medical_info_widget.dart';
class PatientProfileWidget extends StatelessWidget {
PatiantInformtion patient;
String getPatientAge(dynamic birthday){
// https://leechy.dev/calculate-dates-diff-in-dart
DateTime birthDate = DateUtils.getDateTimeFromServerFormat(birthday);
final now = DateTime.now();
int years = now.year - birthDate .year;
int months = now.month - birthDate.month;
int days = now.day - birthDate.day;
if (months < 0 || (months == 0 && days < 0)) {
years--;
months += (days < 0 ? 11 : 12);
}
if (days < 0) {
final monthAgo = new DateTime(now.year, now.month - 1, birthDate.day);
days = now.difference(monthAgo).inDays + 1;
}
return "$years Yr $months Mnth $days Day";
}
@override
Widget build(BuildContext context) {
@ -133,7 +117,7 @@ class PatientProfileWidget extends StatelessWidget {
height: 4,
),
AppText(
"${DateUtils.convertDateFromServerFormat(patient.dateofBirth, 'dd-MM-yyyy')} / ${getPatientAge(patient.dateofBirth)/*patient.age*/}",
"${DateUtils.convertDateFromServerFormat(patient.dateofBirth, 'dd-MM-yyyy')} / ${DateUtils.getAgeByBirthday(patient.dateofBirth)/*patient.age*/}",
fontWeight: FontWeight.normal,
fontSize: 1.6 * SizeConfig.textMultiplier,
),
@ -313,7 +297,7 @@ class PatientProfileWidget extends StatelessWidget {
patient.createdOn != null
? DateUtils
.differenceBetweenServerDateAndCurrent(
patient.createdOn)
patient.createdOn, context)
: "",
color: Colors.black,
fontWeight: FontWeight.normal,

@ -210,7 +210,7 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
assessment.createdOn !=null?DateTime.parse(assessment.createdOn).day.toString():DateTime.now().day.toString(),
fontWeight: FontWeight
.bold,
fontSize: 16,
fontSize: 13,
),
AppText(
Helpers.getMonth(assessment.createdOn !=null?DateTime.parse(assessment.createdOn).month:DateTime.now().month).toUpperCase(),
@ -225,6 +225,32 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
crossAxisAlignment: CrossAxisAlignment
.start,
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context).ICDName +" : ",
fontWeight: FontWeight
.bold,
fontSize: 13,
),
Container(
width: MediaQuery
.of(context)
.size
.width * 0.29,
child: AppText(
assessment
.selectedICD.description
.toString(),
fontSize: 10,
color: Colors.grey,
),
),
],
),
Row(
mainAxisAlignment:
MainAxisAlignment.start,
@ -233,7 +259,7 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
TranslationBase.of(context).appointmentNo,
fontWeight: FontWeight
.bold,
fontSize: 16,
fontSize: 13,
),
AppText(
assessment
@ -248,15 +274,21 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
mainAxisAlignment:
MainAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context).condition + " : ",
fontWeight: FontWeight
.bold,
fontSize: 13,
),
AppText(
projectViewModel.isArabic?assessment
.selectedDiagnosisCondition
.nameAr : assessment
.selectedDiagnosisCondition
.nameEn,
fontWeight: FontWeight
.bold,
fontSize: 16,
fontSize: 10,
color: Colors.grey,
),
],
),
@ -268,7 +300,7 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
TranslationBase.of(context).dType+' : ',
fontWeight: FontWeight
.bold,
fontSize: 16,
fontSize: 13,
),
AppText(
projectViewModel.isArabic?assessment
@ -290,7 +322,7 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
TranslationBase.of(context).doc,
fontWeight: FontWeight
.bold,
fontSize: 16,
fontSize: 13,
),
AppText(
assessment.doctorName??'',
@ -309,11 +341,17 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
SizedBox(
height: 6,
),
AppText(
TranslationBase.of(context).remarks + " : ",
fontWeight: FontWeight
.bold,
fontSize: 13,
),
Container(
width: MediaQuery
.of(context)
.size
.width * 0.5,
.width * 0.38,
child: AppText(
assessment.remark ?? "",
fontSize: 10,
@ -335,7 +373,7 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
"ICD : ".toUpperCase(),
fontWeight: FontWeight
.bold,
fontSize: 16,
fontSize: 13,
),
Container(
child: AppText(
@ -520,7 +558,7 @@ class _AddAssessmentDetailsState extends State<AddAssessmentDetails> {
AppText(
TranslationBase.of(context).addAssessmentDetails.toUpperCase(),
fontWeight: FontWeight.bold,
fontSize: 16,
fontSize: 13,
),
SizedBox(
height: 16,

Loading…
Cancel
Save