development-3.3_voipCall
haroon amjad 2 years ago
parent 2b13d43757
commit c50100613a

@ -126,6 +126,7 @@ class BaseAppClient {
onFailure(Utils.generateContactAdminMsg(), statusCode);
} else {
var parsed = json.decode(response.body.toString());
print("Response : $parsed");
if (parsed['ErrorType'] == 4) {
helpers.navigateToUpdatePage(parsed['ErrorEndUserMessage'], parsed['AndroidLink'], parsed['IOSLink']);
}

@ -23,6 +23,7 @@ class AdmissionRequest {
bool isDietType;
int dietType;
String dietRemarks;
String diagnosis;
bool isPhysicalActivityModification;
String physicalActivityModificationComments;
int orStatus;
@ -66,6 +67,7 @@ class AdmissionRequest {
this.isDietType,
this.dietType,
this.dietRemarks,
this.diagnosis,
this.isPhysicalActivityModification = false,
this.physicalActivityModificationComments = "",
this.orStatus = 1,
@ -109,9 +111,9 @@ class AdmissionRequest {
isDietType = json['isDietType'];
dietType = json['dietType'];
dietRemarks = json['dietRemarks'];
diagnosis = json['diagnosis'];
isPhysicalActivityModification = json['isPhysicalActivityModification'];
physicalActivityModificationComments =
json['physicalActivityModificationComments'];
physicalActivityModificationComments = json['physicalActivityModificationComments'];
orStatus = json['orStatus'];
mainLineOfTreatment = json['mainLineOfTreatment'];
estimatedCost = json['estimatedCost'];
@ -164,16 +166,14 @@ class AdmissionRequest {
data['transportComments'] = this.transportComments;
data['isPhysioAppointmentNeeded'] = this.isPhysioAppointmentNeeded;
data['physioAppointmentComments'] = this.physioAppointmentComments;
data['isOPDFollowupAppointmentNeeded'] =
this.isOPDFollowupAppointmentNeeded;
data['isOPDFollowupAppointmentNeeded'] = this.isOPDFollowupAppointmentNeeded;
data['opdFollowUpComments'] = this.opdFollowUpComments;
data['isDietType'] = this.isDietType;
data['dietType'] = this.dietType;
data['dietRemarks'] = this.dietRemarks;
data['isPhysicalActivityModification'] =
this.isPhysicalActivityModification;
data['physicalActivityModificationComments'] =
this.physicalActivityModificationComments;
data['diagnosis'] = this.diagnosis;
data['isPhysicalActivityModification'] = this.isPhysicalActivityModification;
data['physicalActivityModificationComments'] = this.physicalActivityModificationComments;
data['orStatus'] = this.orStatus;
data['mainLineOfTreatment'] = this.mainLineOfTreatment;
data['estimatedCost'] = this.estimatedCost;
@ -189,8 +189,7 @@ class AdmissionRequest {
// this.admissionRequestDiagnoses.map((v) => v.toJson()).toList();
}
if (this.admissionRequestProcedures != null) {
data['admissionRequestProcedures'] =
this.admissionRequestProcedures.map((v) => v.toJson()).toList();
data['admissionRequestProcedures'] = this.admissionRequestProcedures.map((v) => v.toJson()).toList();
}
data['appointmentNo'] = this.appointmentNo;
data['episodeID'] = this.episodeID;

@ -72,136 +72,70 @@ class _DischargedPatientState extends State<DischargedPatient> {
model.filterData.length,
(index) => InkWell(
onTap: () {
Navigator.of(context).pushNamed(
PATIENTS_PROFILE,
arguments: {
"patient":
model.filterData[index],
"patientType": "1",
"isSearch": false,
"isInpatient": true,
"isDischargedPatient": true
});
Navigator.of(context).pushNamed(PATIENTS_PROFILE,
arguments: {"patient": model.filterData[index], "patientType": "1", "isSearch": false, "isInpatient": true, "isDischargedPatient": true});
},
child: Container(
width: double.maxFinite,
margin: EdgeInsets.all(8),
padding: EdgeInsets.only(
left: 0,
right: 5,
bottom: 5,
top: 5),
padding: EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5),
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(15),
borderRadius: BorderRadius.circular(15),
color: Colors.white,
),
child: Column(
children: [
Padding(
padding: EdgeInsets.only(
left: 12.0),
padding: EdgeInsets.only(left: 12.0),
child: Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(children: [
Container(
width: 170,
child: AppText(
(Utils.capitalize(model
.filterData[
index]
.firstName) +
" " +
Utils.capitalize(model
.filterData[
index]
.lastName)),
(Utils.capitalize(model.filterData[index].firstName) + " " + Utils.capitalize(model.filterData[index].lastName)),
fontSize: 16,
fontWeight:
FontWeight
.bold,
fontFamily:
'Poppins',
textOverflow:
TextOverflow
.ellipsis,
fontWeight: FontWeight.bold,
fontFamily: 'Poppins',
textOverflow: TextOverflow.ellipsis,
),
),
model.filterData[index]
.gender ==
1
model.filterData[index].gender == 1
? Icon(
DoctorApp
.male_2,
color: Colors
.blue,
DoctorApp.male_2,
color: Colors.blue,
)
: Icon(
DoctorApp
.female_1,
color: Colors
.pink,
DoctorApp.female_1,
color: Colors.pink,
),
]),
Row(
children: [
AppText(
model.filterData[index].nationalityName !=
null
? model
.filterData[
index]
.nationalityName
.trim()
: model.filterData[index].nationality !=
null
? model
.filterData[
index]
.nationality
.trim()
: model.filterData[index].nationalityId !=
null
model.filterData[index].nationalityName != null
? model.filterData[index].nationalityName.trim()
: model.filterData[index].nationality != null
? model.filterData[index].nationality.trim()
: model.filterData[index].nationalityId != null
? model.filterData[index].nationalityId
: "",
fontWeight:
FontWeight
.bold,
fontWeight: FontWeight.bold,
fontSize: 14,
textOverflow:
TextOverflow
.ellipsis,
textOverflow: TextOverflow.ellipsis,
),
model.filterData[index].nationality !=
null ||
model.filterData[index].nationalityId !=
null
model.filterData[index].nationality != null || model.filterData[index].nationalityId != null
? ClipRRect(
borderRadius:
BorderRadius.circular(
20.0),
child: Image
.network(
model.filterData[index].nationalityFlagURL !=
null
? model.filterData[index].nationalityFlagURL
: '',
height:
25,
width:
30,
errorBuilder: (BuildContext context,
Object
exception,
StackTrace
stackTrace) {
borderRadius: BorderRadius.circular(20.0),
child: Image.network(
model.filterData[index].nationalityFlagURL != null ? model.filterData[index].nationalityFlagURL : '',
height: 25,
width: 30,
errorBuilder: (BuildContext context, Object exception, StackTrace stackTrace) {
return AppText(
'',
fontSize:
10,
fontSize: 10,
);
},
))
@ -213,26 +147,16 @@ class _DischargedPatientState extends State<DischargedPatient> {
Row(
children: <Widget>[
Column(
mainAxisAlignment:
MainAxisAlignment
.start,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Padding(
padding:
EdgeInsets.only(
left: 12.0),
padding: EdgeInsets.only(left: 12.0),
child: Container(
width: 60,
height: 60,
child:
Image.asset(
model.filterData[index]
.gender ==
1
? 'assets/images/male_avatar.png'
: 'assets/images/female_avatar.png',
fit: BoxFit
.cover,
child: Image.asset(
model.filterData[index].gender == 1 ? 'assets/images/male_avatar.png' : 'assets/images/female_avatar.png',
fit: BoxFit.cover,
),
),
),
@ -243,118 +167,57 @@ class _DischargedPatientState extends State<DischargedPatient> {
),
Expanded(
child: Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
child: RichText(
text:
text: new TextSpan(
style: new TextStyle(fontSize: 2.0 * SizeConfig.textMultiplier, color: Colors.black),
children: <TextSpan>[
new TextSpan(text: TranslationBase.of(context).fileNumber, style: TextStyle(fontSize: 14, fontFamily: 'Poppins')),
new TextSpan(
style: new TextStyle(
fontSize: 2.0 *
SizeConfig
.textMultiplier,
color: Colors
.black),
children: <
TextSpan>[
new TextSpan(
text: TranslationBase.of(context)
.fileNumber,
style: TextStyle(
fontSize:
14,
fontFamily:
'Poppins')),
new TextSpan(
text: model
.filterData[
index]
.patientId
.toString(),
style: TextStyle(
fontWeight: FontWeight
.w700,
fontFamily:
'Poppins',
fontSize:
15)),
text: model.filterData[index].patientId.toString(),
style: TextStyle(fontWeight: FontWeight.w700, fontFamily: 'Poppins', fontSize: 15)),
],
),
),
),
Container(
child: RichText(
text:
new TextSpan(
style:
new TextStyle(
fontSize: 2.0 *
SizeConfig
.textMultiplier,
color: Colors
.black,
fontFamily:
'Poppins',
text: new TextSpan(
style: new TextStyle(
fontSize: 2.0 * SizeConfig.textMultiplier,
color: Colors.black,
fontFamily: 'Poppins',
),
children: <
TextSpan>[
children: <TextSpan>[
new TextSpan(
text: model.filterData[index].admissionDate ==
null
? ""
: TranslationBase.of(context).admissionDate +
" : ",
style: TextStyle(
fontSize:
14)),
text: model.filterData[index].admissionDate == null ? "" : TranslationBase.of(context).admissionDate + " : ",
style: TextStyle(fontSize: 14)),
new TextSpan(
text: model.filterData[index].admissionDate ==
null
text: model.filterData[index].admissionDate == null
? ""
: "${AppDateUtils.convertDateFromServerFormat(model.filterData[index].admissionDate.toString(), 'yyyy-MM-dd')}",
style: TextStyle(
fontWeight:
FontWeight.w700,
fontSize: 15)),
style: TextStyle(fontWeight: FontWeight.w700, fontSize: 15)),
],
),
),
),
Container(
child: RichText(
text:
new TextSpan(
style:
new TextStyle(
fontSize: 2.0 *
SizeConfig
.textMultiplier,
color: Colors
.black,
fontFamily:
'Poppins',
text: new TextSpan(
style: new TextStyle(
fontSize: 2.0 * SizeConfig.textMultiplier,
color: Colors.black,
fontFamily: 'Poppins',
),
children: <
TextSpan>[
new TextSpan(
text: model.filterData[index].dischargeDate ==
null
? ""
: "Discharge Date : ",
style: TextStyle(
fontSize:
14)),
children: <TextSpan>[
new TextSpan(text: model.filterData[index].dischargeDate == null ? "" : "Discharge Date : ", style: TextStyle(fontSize: 14)),
new TextSpan(
text: model.filterData[index].dischargeDate ==
null
text: model.filterData[index].dischargeDate == null
? ""
: "${AppDateUtils.convertDateFromServerFormat(model.filterData[index].dischargeDate.toString(), 'yyyy-MM-dd')}",
style: TextStyle(
fontWeight:
FontWeight.w700,
fontSize: 15)),
style: TextStyle(fontWeight: FontWeight.w700, fontSize: 15)),
],
),
),
@ -364,17 +227,12 @@ class _DischargedPatientState extends State<DischargedPatient> {
AppText(
"${TranslationBase.of(context).numOfDays}: ",
fontSize: 14,
fontWeight:
FontWeight
.w300,
fontWeight: FontWeight.w300,
),
AppText(
"${AppDateUtils.convertStringToDate(model.filterData[index].dischargeDate).difference(AppDateUtils.getDateTimeFromServerFormat(model.filterData[index].admissionDate)).inDays + 1}",
fontSize:
15,
fontWeight:
FontWeight
.w700),
fontSize: 15,
fontWeight: FontWeight.w700),
],
),
],

@ -26,12 +26,10 @@ import '../../../../routes.dart';
class AdmissionRequestFirstScreen extends StatefulWidget {
@override
_AdmissionRequestThirdScreenState createState() =>
_AdmissionRequestThirdScreenState();
_AdmissionRequestThirdScreenState createState() => _AdmissionRequestThirdScreenState();
}
class _AdmissionRequestThirdScreenState
extends State<AdmissionRequestFirstScreen> {
class _AdmissionRequestThirdScreenState extends State<AdmissionRequestFirstScreen> {
final _dietTypeRemarksController = TextEditingController();
final _sickLeaveCommentsController = TextEditingController();
final _postMedicalHistoryController = TextEditingController();
@ -92,8 +90,7 @@ class _AdmissionRequestThirdScreenState
height: 15,
),
Container(
margin:
EdgeInsets.symmetric(vertical: 0, horizontal: 16),
margin: EdgeInsets.symmetric(vertical: 0, horizontal: 16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -120,45 +117,27 @@ class _AdmissionRequestThirdScreenState
: _selectedClinic['clinicNameEnglish']
: null,
enabled: false,
onClick: model.clinicList != null &&
model.clinicList.length > 0
onClick: model.clinicList != null && model.clinicList.length > 0
? () {
openListDialogField(
projectViewModel.isArabic
? 'clinicNameArabic'
: 'clinicNameEnglish',
'clinicID',
model.clinicList, (selectedValue) {
openListDialogField(projectViewModel.isArabic ? 'clinicNameArabic' : 'clinicNameEnglish', 'clinicID', model.clinicList, (selectedValue) {
setState(() {
_selectedClinic = selectedValue;
});
});
}
: () async {
GifLoaderDialogUtils.showMyDialog(
context);
await model.getClinics().then((_) =>
GifLoaderDialogUtils.hideDialog(
context));
if (model.state == ViewState.Idle &&
model.clinicList.length > 0) {
openListDialogField(
projectViewModel.isArabic
? 'clinicNameArabic'
: 'clinicNameEnglish',
'clinicID',
model.clinicList, (selectedValue) {
GifLoaderDialogUtils.showMyDialog(context);
await model.getClinics().then((_) => GifLoaderDialogUtils.hideDialog(context));
if (model.state == ViewState.Idle && model.clinicList.length > 0) {
openListDialogField(projectViewModel.isArabic ? 'clinicNameArabic' : 'clinicNameEnglish', 'clinicID', model.clinicList, (selectedValue) {
setState(() {
_selectedClinic = selectedValue;
});
});
} else if (model.state ==
ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(
model.error);
} else if (model.state == ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(model.error);
} else {
DrAppToastMsg.showErrorToast(
"Empty List");
DrAppToastMsg.showErrorToast("Empty List");
}
},
),
@ -169,47 +148,31 @@ class _AdmissionRequestThirdScreenState
height: screenSize.height * 0.075,
hintText: TranslationBase.of(context).doctor,
isTextFieldHasSuffix: true,
dropDownText: _selectedDoctor != null
? _selectedDoctor['DoctorName']
: null,
dropDownText: _selectedDoctor != null ? _selectedDoctor['DoctorName'] : null,
enabled: false,
validationError: doctorError,
onClick: _selectedClinic != null
? model.doctorsList != null &&
model.doctorsList.length > 0
? model.doctorsList != null && model.doctorsList.length > 0
? () {
openListDialogField('DoctorName',
'DoctorID', model.doctorsList,
(selectedValue) {
openListDialogField('DoctorName', 'DoctorID', model.doctorsList, (selectedValue) {
setState(() {
_selectedDoctor = selectedValue;
});
});
}
: () async {
GifLoaderDialogUtils.showMyDialog(
context);
await model
.getClinicDoctors(
_selectedClinic['clinicID'])
.then((_) => GifLoaderDialogUtils
.hideDialog(context));
if (model.state == ViewState.Idle &&
model.doctorsList.length > 0) {
openListDialogField('DoctorName',
'DoctorID', model.doctorsList,
(selectedValue) {
GifLoaderDialogUtils.showMyDialog(context);
await model.getClinicDoctors(_selectedClinic['clinicID']).then((_) => GifLoaderDialogUtils.hideDialog(context));
if (model.state == ViewState.Idle && model.doctorsList.length > 0) {
openListDialogField('DoctorName', 'DoctorID', model.doctorsList, (selectedValue) {
setState(() {
_selectedDoctor = selectedValue;
});
});
} else if (model.state ==
ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(
model.error);
} else if (model.state == ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(model.error);
} else {
DrAppToastMsg.showErrorToast(
"Empty List");
DrAppToastMsg.showErrorToast("Empty List");
}
}
: null,
@ -241,8 +204,7 @@ class _AdmissionRequestThirdScreenState
_patientPregnant = newValue;
});
},
controlAffinity:
ListTileControlAffinity.leading,
controlAffinity: ListTileControlAffinity.leading,
contentPadding: EdgeInsets.all(0),
),
CheckboxListTile(
@ -266,8 +228,7 @@ class _AdmissionRequestThirdScreenState
height: 8,
),
AppTextFieldCustom(
hintText:
TranslationBase.of(context).sickLeaveComments,
hintText: TranslationBase.of(context).sickLeaveComments,
controller: _sickLeaveCommentsController,
minLines: 2,
maxLines: 4,
@ -282,45 +243,29 @@ class _AdmissionRequestThirdScreenState
hintText: TranslationBase.of(context).dietType,
isTextFieldHasSuffix: true,
validationError: dietTypeError,
dropDownText: _selectedDietType != null
? _selectedDietType['nameEn']
: null,
dropDownText: _selectedDietType != null ? _selectedDietType['nameEn'] : null,
enabled: false,
onClick: model.dietTypesList != null &&
model.dietTypesList.length > 0
onClick: model.dietTypesList != null && model.dietTypesList.length > 0
? () {
openListDialogField(
'nameEn', 'id', model.dietTypesList,
(selectedValue) {
openListDialogField('nameEn', 'id', model.dietTypesList, (selectedValue) {
setState(() {
_selectedDietType = selectedValue;
});
});
}
: () async {
GifLoaderDialogUtils.showMyDialog(
context);
await model
.getDietTypes(patient.patientId)
.then((_) =>
GifLoaderDialogUtils.hideDialog(
context));
if (model.state == ViewState.Idle &&
model.dietTypesList.length > 0) {
openListDialogField(
'nameEn', 'id', model.dietTypesList,
(selectedValue) {
GifLoaderDialogUtils.showMyDialog(context);
await model.getDietTypes(patient.patientId).then((_) => GifLoaderDialogUtils.hideDialog(context));
if (model.state == ViewState.Idle && model.dietTypesList.length > 0) {
openListDialogField('nameEn', 'id', model.dietTypesList, (selectedValue) {
setState(() {
_selectedDietType = selectedValue;
});
});
} else if (model.state ==
ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(
model.error);
} else if (model.state == ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(model.error);
} else {
DrAppToastMsg.showErrorToast(
"Empty List");
DrAppToastMsg.showErrorToast("Empty List");
}
},
),
@ -328,8 +273,7 @@ class _AdmissionRequestThirdScreenState
height: 10,
),
AppTextFieldCustom(
hintText:
TranslationBase.of(context).dietTypeRemarks,
hintText: TranslationBase.of(context).dietTypeRemarks,
controller: _dietTypeRemarksController,
minLines: 4,
maxLines: 6,
@ -339,8 +283,7 @@ class _AdmissionRequestThirdScreenState
height: 10,
),
AppTextFieldCustom(
hintText: TranslationBase.of(context)
.pastMedicalHistory,
hintText: TranslationBase.of(context).pastMedicalHistory,
controller: _postMedicalHistoryController,
minLines: 4,
maxLines: 6,
@ -351,8 +294,7 @@ class _AdmissionRequestThirdScreenState
height: 10,
),
AppTextFieldCustom(
hintText: TranslationBase.of(context)
.pastSurgicalHistory,
hintText: TranslationBase.of(context).pastSurgicalHistory,
controller: _postSurgicalHistoryController,
minLines: 2,
maxLines: 4,
@ -385,80 +327,56 @@ class _AdmissionRequestThirdScreenState
_sickLeaveCommentsController.text != "" &&
_postMedicalHistoryController.text != "" &&
_postSurgicalHistoryController.text != "") {
model.admissionRequestData.patientMRN =
patient.patientMRN;
model.admissionRequestData.appointmentNo =
patient.appointmentNo;
model.admissionRequestData.patientMRN = patient.patientMRN;
model.admissionRequestData.appointmentNo = patient.appointmentNo;
model.admissionRequestData.episodeID = patient.episodeNo;
model.admissionRequestData.admissionRequestNo = 0;
model.admissionRequestData.admitToClinic =
_selectedClinic['clinicID'];
model.admissionRequestData.mrpDoctorID =
_selectedDoctor['DoctorID'];
model.admissionRequestData.admitToClinic = _selectedClinic['clinicID'];
model.admissionRequestData.mrpDoctorID = _selectedDoctor['DoctorID'];
model.admissionRequestData.isPregnant = _patientPregnant;
model.admissionRequestData.isSickLeaveRequired =
_isSickLeaveRequired;
model.admissionRequestData.sickLeaveComments =
_sickLeaveCommentsController.text;
model.admissionRequestData.isDietType =
_selectedDietType != null ? true : false;
model.admissionRequestData.dietType =
_selectedDietType != null
? _selectedDietType['id']
: 0;
model.admissionRequestData.dietRemarks =
_dietTypeRemarksController.text;
model.admissionRequestData.pastMedicalHistory =
_postMedicalHistoryController.text;
model.admissionRequestData.pastSurgicalHistory =
_postSurgicalHistoryController.text;
model.admissionRequestData.isSickLeaveRequired = _isSickLeaveRequired;
model.admissionRequestData.sickLeaveComments = _sickLeaveCommentsController.text;
model.admissionRequestData.isDietType = _selectedDietType != null ? true : false;
model.admissionRequestData.dietType = _selectedDietType != null ? _selectedDietType['id'] : 0;
model.admissionRequestData.dietRemarks = _dietTypeRemarksController.text;
model.admissionRequestData.diagnosis = "0";
model.admissionRequestData.pastMedicalHistory = _postMedicalHistoryController.text;
model.admissionRequestData.pastSurgicalHistory = _postSurgicalHistoryController.text;
Navigator.of(context)
.pushNamed(PATIENT_ADMISSION_REQUEST_2, arguments: {
'patient': patient,
'patientType': patientType,
'arrivalType': arrivalType,
'admission-data': model.admissionRequestData
});
.pushNamed(PATIENT_ADMISSION_REQUEST_2, arguments: {'patient': patient, 'patientType': patientType, 'arrivalType': arrivalType, 'admission-data': model.admissionRequestData});
} else {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context).pleaseFill);
DrAppToastMsg.showErrorToast(TranslationBase.of(context).pleaseFill);
setState(() {
if (_selectedClinic == null) {
clinicError =
TranslationBase.of(context).fieldRequired;
clinicError = TranslationBase.of(context).fieldRequired;
} else {
clinicError = null;
}
if (_selectedDoctor == null) {
doctorError =
TranslationBase.of(context).fieldRequired;
doctorError = TranslationBase.of(context).fieldRequired;
} else {
doctorError = null;
}
if (_sickLeaveCommentsController.text == "") {
sickLeaveCommentError =
TranslationBase.of(context).fieldRequired;
sickLeaveCommentError = TranslationBase.of(context).fieldRequired;
} else {
sickLeaveCommentError = null;
}
if (_selectedDietType == null) {
dietTypeError =
TranslationBase.of(context).fieldRequired;
dietTypeError = TranslationBase.of(context).fieldRequired;
} else {
dietTypeError = null;
}
if (_postMedicalHistoryController.text == "") {
medicalHistoryError =
TranslationBase.of(context).fieldRequired;
medicalHistoryError = TranslationBase.of(context).fieldRequired;
} else {
medicalHistoryError = null;
}
if (_postSurgicalHistoryController.text == "") {
surgicalHistoryError =
TranslationBase.of(context).fieldRequired;
surgicalHistoryError = TranslationBase.of(context).fieldRequired;
} else {
surgicalHistoryError = null;
}
@ -470,8 +388,7 @@ class _AdmissionRequestThirdScreenState
);
}
void openListDialogField(String attributeName, String attributeValueId,
List<dynamic> list, Function(dynamic selectedValue) okFunction) {
void openListDialogField(String attributeName, String attributeValueId, List<dynamic> list, Function(dynamic selectedValue) okFunction) {
ListSelectDialog dialog = ListSelectDialog(
list: list,
attributeName: attributeName,

@ -26,8 +26,7 @@ class AddMedication extends StatefulWidget {
final Function addMedicationFun;
TextEditingController medicationController;
AddMedication({Key key, this.addMedicationFun, this.medicationController})
: super(key: key);
AddMedication({Key key, this.addMedicationFun, this.medicationController}) : super(key: key);
@override
_AddMedicationState createState() => _AddMedicationState();
@ -45,8 +44,7 @@ class _AddMedicationState extends State<AddMedication> {
TextEditingController frequencyController = TextEditingController();
GetMedicationResponseModel _selectedMedication;
GlobalKey key =
new GlobalKey<AutoCompleteTextFieldState<GetMedicationResponseModel>>();
GlobalKey key = new GlobalKey<AutoCompleteTextFieldState<GetMedicationResponseModel>>();
bool isFormSubmitted = false;
@override
@ -65,359 +63,248 @@ class _AddMedicationState extends State<AddMedication> {
),
body: Center(
child: Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
height: 10,
),
Expanded(
child: FractionallySizedBox(
widthFactor: 0.9,
child: SingleChildScrollView(
child: Column(
children: [
SizedBox(
height: SizeConfig.heightMultiplier *
(SizeConfig.isHeightVeryShort
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
SizedBox(
height: 10,
),
Expanded(
child: FractionallySizedBox(
widthFactor: 0.9,
child: SingleChildScrollView(
child: Column(
children: [
SizedBox(
height: SizeConfig.heightMultiplier *
(SizeConfig.isHeightVeryShort
? 2
: SizeConfig.isHeightShort
? 2
: SizeConfig.isHeightShort
? 2
: 2),
),
Container(
// height: screenSize.height * 0.070,
child: InkWell(
onTap: model.allMedicationList != null
? () {
setState(() {
_selectedMedication = null;
});
}
: null,
child: _selectedMedication == null
? CustomAutoCompleteTextField(
isShowError: isFormSubmitted &&
_selectedMedication == null,
child: AutoCompleteTextField<
GetMedicationResponseModel>(
decoration: TextFieldsUtils
.textFieldSelectorDecoration(
TranslationBase.of(
context)
.searchMedicineNameHere,
null,
true,
suffixIcon:
Icons.search),
itemSubmitted: (item) =>
setState(() =>
_selectedMedication =
item),
key: key,
suggestions:
model.allMedicationList,
itemBuilder: (context,
suggestion) =>
new Padding(
child: AppText(suggestion
.description +
'/' +
suggestion
.genericName),
padding: EdgeInsets.all(
8.0)),
itemSorter: (a, b) => 1,
itemFilter: (suggestion,
input) =>
suggestion.genericName.toLowerCase().startsWith(
input.toLowerCase()) ||
suggestion.description
.toLowerCase()
.startsWith(input
.toLowerCase()) ||
suggestion.keywords
.toLowerCase()
.startsWith(input
.toLowerCase()),
),
)
: AppTextFieldCustom(
height:
Utils.getTextFieldHeight(),
hintText: _selectedMedication !=
null
? _selectedMedication
.description +
(' (${_selectedMedication.genericName} )')
: TranslationBase.of(context)
.searchMedicineNameHere,
minLines: 1,
maxLines: 1,
isTextFieldHasSuffix: true,
suffixIcon: IconButton(
icon: Icon(
Icons.search,
color: Colors.grey.shade600,
)),
enabled: false,
),
),
),
if (_selectedMedication != null)
Column(
children: [
SizedBox(
height: 3,
),
Container(
width: MediaQuery.of(context)
.size
.width *
0.7,
child: AppText(
_selectedMedication.description +
(' (${_selectedMedication.genericName} )'),
color: Color(0xFF575757),
fontSize: 10,
fontWeight: FontWeight.w700,
letterSpacing: -0.4,
: 2),
),
Container(
// height: screenSize.height * 0.070,
child: InkWell(
onTap: model.allMedicationList != null
? () {
setState(() {
_selectedMedication = null;
});
}
: null,
child: _selectedMedication == null
? CustomAutoCompleteTextField(
isShowError: isFormSubmitted && _selectedMedication == null,
child: AutoCompleteTextField<GetMedicationResponseModel>(
decoration: TextFieldsUtils.textFieldSelectorDecoration(TranslationBase.of(context).searchMedicineNameHere, null, true, suffixIcon: Icons.search),
itemSubmitted: (item) => setState(() => _selectedMedication = item),
key: key,
suggestions: model.allMedicationList,
itemBuilder: (context, suggestion) => new Padding(child: AppText(suggestion.description + '/' + suggestion.genericName), padding: EdgeInsets.all(8.0)),
itemSorter: (a, b) => 1,
itemFilter: (suggestion, input) =>
suggestion.genericName.toLowerCase().startsWith(input.toLowerCase()) ||
suggestion.description.toLowerCase().startsWith(input.toLowerCase()) ||
suggestion.keywords.toLowerCase().startsWith(input.toLowerCase()),
),
)
: AppTextFieldCustom(
height: Utils.getTextFieldHeight(),
hintText: _selectedMedication != null
? _selectedMedication.description + (' (${_selectedMedication.genericName} )')
: TranslationBase.of(context).searchMedicineNameHere,
minLines: 1,
maxLines: 1,
isTextFieldHasSuffix: true,
suffixIcon: IconButton(
icon: Icon(
Icons.search,
color: Colors.grey.shade600,
)),
enabled: false,
),
],
),
),
if (_selectedMedication != null)
Column(
children: [
SizedBox(
height: 3,
),
SizedBox(
height: 5,
),
AppTextFieldCustom(
height: Utils.getTextFieldHeight(),
enabled: false,
onClick: model.medicationDoseTimeList !=
null
? () {
MasterKeyDailog dialog =
MasterKeyDailog(
list:
model.medicationDoseTimeList,
okText:
TranslationBase.of(context)
.ok,
selectedValue:
_selectedMedicationDose,
okFunction: (selectedValue) {
setState(() {
_selectedMedicationDose =
selectedValue;
Container(
width: MediaQuery.of(context).size.width * 0.7,
child: AppText(
_selectedMedication.description + (' (${_selectedMedication.genericName} )'),
color: Color(0xFF575757),
fontSize: 10,
fontWeight: FontWeight.w700,
letterSpacing: -0.4,
),
),
],
),
SizedBox(
height: 5,
),
AppTextFieldCustom(
height: Utils.getTextFieldHeight(),
enabled: false,
onClick: model.medicationDoseTimeList != null
? () {
MasterKeyDailog dialog = MasterKeyDailog(
list: model.medicationDoseTimeList,
okText: TranslationBase.of(context).ok,
selectedValue: _selectedMedicationDose,
okFunction: (selectedValue) {
setState(() {
_selectedMedicationDose = selectedValue;
doseController
.text = projectViewModel
.isArabic
? _selectedMedicationDose
.nameAr
: _selectedMedicationDose
.nameEn;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
}
: null,
hintText:
TranslationBase.of(context).doseTime,
maxLines: 1,
minLines: 1,
isTextFieldHasSuffix: true,
controller: doseController,
validationError: isFormSubmitted &&
_selectedMedicationDose == null
? TranslationBase.of(context)
.emptyMessage
: null,
),
SizedBox(
height: 5,
),
AppTextFieldCustom(
height: Utils.getTextFieldHeight(),
enabled: false,
isTextFieldHasSuffix: true,
onClick: model.medicationStrengthList !=
null
? () {
MasterKeyDailog dialog =
MasterKeyDailog(
list:
model.medicationStrengthList,
okText:
TranslationBase.of(context)
.ok,
selectedValue:
_selectedMedicationStrength,
okFunction: (selectedValue) {
setState(() {
_selectedMedicationStrength =
selectedValue;
doseController.text = projectViewModel.isArabic ? _selectedMedicationDose.nameAr : _selectedMedicationDose.nameEn;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
}
: null,
hintText: TranslationBase.of(context).doseTime,
maxLines: 1,
minLines: 1,
isTextFieldHasSuffix: true,
controller: doseController,
validationError: isFormSubmitted && _selectedMedicationDose == null ? TranslationBase.of(context).emptyMessage : null,
),
SizedBox(
height: 5,
),
AppTextFieldCustom(
height: Utils.getTextFieldHeight(),
enabled: false,
isTextFieldHasSuffix: true,
onClick: model.medicationStrengthList != null
? () {
MasterKeyDailog dialog = MasterKeyDailog(
list: model.medicationStrengthList,
okText: TranslationBase.of(context).ok,
selectedValue: _selectedMedicationStrength,
okFunction: (selectedValue) {
setState(() {
_selectedMedicationStrength = selectedValue;
strengthController
.text = projectViewModel
.isArabic
? _selectedMedicationStrength
.nameAr
: _selectedMedicationStrength
.nameEn;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
}
: null,
hintText:
TranslationBase.of(context).strength,
maxLines: 1,
minLines: 1,
controller: strengthController,
validationError: isFormSubmitted &&
_selectedMedicationStrength == null
? TranslationBase.of(context)
.emptyMessage
: null,
),
SizedBox(
height: 5,
),
SizedBox(
height: 5,
),
AppTextFieldCustom(
height: Utils.getTextFieldHeight(),
enabled: false,
isTextFieldHasSuffix: true,
onClick: model.medicationRouteList != null
? () {
MasterKeyDailog dialog =
MasterKeyDailog(
list: model.medicationRouteList,
selectedValue:
_selectedMedicationRoute,
okText:
TranslationBase.of(context)
.ok,
okFunction: (selectedValue) {
setState(() {
_selectedMedicationRoute =
selectedValue;
strengthController.text = projectViewModel.isArabic ? _selectedMedicationStrength.nameAr : _selectedMedicationStrength.nameEn;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
}
: null,
hintText: TranslationBase.of(context).strength,
maxLines: 1,
minLines: 1,
controller: strengthController,
validationError: isFormSubmitted && _selectedMedicationStrength == null ? TranslationBase.of(context).emptyMessage : null,
),
SizedBox(
height: 5,
),
SizedBox(
height: 5,
),
AppTextFieldCustom(
height: Utils.getTextFieldHeight(),
enabled: false,
isTextFieldHasSuffix: true,
onClick: model.medicationRouteList != null
? () {
MasterKeyDailog dialog = MasterKeyDailog(
list: model.medicationRouteList,
selectedValue: _selectedMedicationRoute,
okText: TranslationBase.of(context).ok,
okFunction: (selectedValue) {
setState(() {
_selectedMedicationRoute = selectedValue;
routeController
.text = projectViewModel
.isArabic
? _selectedMedicationRoute
.nameAr
: _selectedMedicationRoute
.nameEn;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
}
: null,
hintText: TranslationBase.of(context).route,
maxLines: 1,
minLines: 1,
controller: routeController,
validationError: isFormSubmitted &&
_selectedMedicationRoute == null
? TranslationBase.of(context)
.emptyMessage
: null,
),
SizedBox(
height: 5,
),
SizedBox(
height: 5,
),
AppTextFieldCustom(
height: Utils.getTextFieldHeight(),
onClick: model.medicationFrequencyList !=
null
? () {
MasterKeyDailog dialog =
MasterKeyDailog(
list:
model.medicationFrequencyList,
okText:
TranslationBase.of(context)
.ok,
selectedValue:
_selectedMedicationFrequency,
okFunction: (selectedValue) {
setState(() {
_selectedMedicationFrequency =
selectedValue;
routeController.text = projectViewModel.isArabic ? _selectedMedicationRoute.nameAr : _selectedMedicationRoute.nameEn;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
}
: null,
hintText: TranslationBase.of(context).route,
maxLines: 1,
minLines: 1,
controller: routeController,
validationError: isFormSubmitted && _selectedMedicationRoute == null ? TranslationBase.of(context).emptyMessage : null,
),
SizedBox(
height: 5,
),
SizedBox(
height: 5,
),
AppTextFieldCustom(
height: Utils.getTextFieldHeight(),
onClick: model.medicationFrequencyList != null
? () {
MasterKeyDailog dialog = MasterKeyDailog(
list: model.medicationFrequencyList,
okText: TranslationBase.of(context).ok,
selectedValue: _selectedMedicationFrequency,
okFunction: (selectedValue) {
setState(() {
_selectedMedicationFrequency = selectedValue;
frequencyController
.text = projectViewModel
.isArabic
? _selectedMedicationFrequency
.nameAr
: _selectedMedicationFrequency
.nameEn;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
}
: null,
hintText:
TranslationBase.of(context).frequency,
enabled: false,
maxLines: 1,
minLines: 1,
isTextFieldHasSuffix: true,
controller: frequencyController,
validationError: isFormSubmitted &&
_selectedMedicationFrequency == null
? TranslationBase.of(context)
.emptyMessage
: null,
),
SizedBox(
height: SizeConfig.heightMultiplier *
(SizeConfig.isHeightVeryShort
? 20
: SizeConfig.isHeightShort
? 15
: 10),
),
],
frequencyController.text = projectViewModel.isArabic ? _selectedMedicationFrequency.nameAr : _selectedMedicationFrequency.nameEn;
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
}
: null,
hintText: TranslationBase.of(context).frequency,
enabled: false,
maxLines: 1,
minLines: 1,
isTextFieldHasSuffix: true,
controller: frequencyController,
validationError: isFormSubmitted && _selectedMedicationFrequency == null ? TranslationBase.of(context).emptyMessage : null,
),
SizedBox(
height: SizeConfig.heightMultiplier *
(SizeConfig.isHeightVeryShort
? 20
: SizeConfig.isHeightShort
? 15
: 10),
),
)),
),
]),
],
),
)),
),
]),
),
),
bottomSheet: model.state != ViewState.Idle
@ -435,8 +322,7 @@ class _AddMedicationState extends State<AddMedication> {
_selectedMedicationStrength != null &&
_selectedMedicationRoute != null &&
_selectedMedicationFrequency != null) {
widget.medicationController.text = widget
.medicationController.text +
widget.medicationController.text = widget.medicationController.text +
'${_selectedMedication.description} (${TranslationBase.of(context).doseTime} ) ${doseController.text} (${TranslationBase.of(context).strength}) ${strengthController.text} (${TranslationBase.of(context).route}) ${routeController.text} (${TranslationBase.of(context).frequency}) ${frequencyController.text} \n \n';
Navigator.of(context).pop();
}

@ -39,7 +39,7 @@ class _MasterKeyDailogState extends State<MasterKeyDailog> {
Widget cancelButton = ElevatedButton(
child: AppText(
TranslationBase.of(context).cancel,
color: Colors.grey,
color: Colors.white,
fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * (SizeConfig.isWidthLarge ? 3.5 : 5),
),
onPressed: () {
@ -48,7 +48,7 @@ class _MasterKeyDailogState extends State<MasterKeyDailog> {
Widget continueButton = ElevatedButton(
child: AppText(
this.widget.okText,
color: Colors.grey,
color: Colors.white,
fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * (SizeConfig.isWidthLarge ? 3.5 : 5),
),
onPressed: () {

Loading…
Cancel
Save