Dental updates & fixes, Update to stores VersionID 18.3

merge-update-with-lab-changes
haroon amjad 7 months ago
parent 4564b42018
commit c1212c2c6a

@ -22,12 +22,13 @@ var PACKAGES_ORDER_HISTORY = '/api/orders/items';
var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara';
// var BASE_URL = 'http://10.50.100.198:2018/';
// var BASE_URL = 'https://uat.hmgwebservices.com/';
// var BASE_URL = 'https://hmgwebservices.com/';
var BASE_URL = 'https://hmgwebservices.com/';
// var BASE_URL = 'http://10.201.204.103/';
// var BASE_URL = 'https://orash.cloudsolutions.com.sa/';
// var BASE_URL = 'https://vidauat.cloudsolutions.com.sa/';
// var BASE_URL = 'https://vidamergeuat.cloudsolutions.com.sa/';
var BASE_URL = 'https://webservices.hmg.com/';
// var BASE_URL = 'https://webservices.hmg.com/';
// var BASE_URL = 'http://10.50.100.198:4422/';
@ -353,7 +354,7 @@ var CAN_PAY_FOR_FOR_WALKIN_APPOINTMENT = 'Services/Doctors.svc/REST/CanPayForWal
var CHANNEL = 3;
var GENERAL_ID = 'Cs2020@2016\$2958';
var IP_ADDRESS = '10.20.10.20';
var VERSION_ID = 18.2;
var VERSION_ID = 18.3;
var SETUP_ID = '91877';
var LANGUAGE = 2;
// var PATIENT_OUT_SA = 0;

@ -28,11 +28,7 @@ class DentalComplaints extends StatefulWidget {
bool isDoctorNameSearch;
bool isFromHospitalSearchPage;
DentalComplaints(
{required this.searchInfo,
this.onSelectedMethod,
this.isDoctorNameSearch = false,
this.isFromHospitalSearchPage = false});
DentalComplaints({required this.searchInfo, this.onSelectedMethod, this.isDoctorNameSearch = false, this.isFromHospitalSearchPage = false});
@override
_DentalComplaintsState createState() => _DentalComplaintsState();
@ -53,6 +49,8 @@ class _DentalComplaintsState extends State<DentalComplaints> {
late ProjectViewModel projectViewModel;
bool isDoctorsList = false;
@override
void initState() {
WidgetsBinding.instance.addPostFrameCallback((_) => checkIfHasDentalPlan());
@ -71,36 +69,66 @@ class _DentalComplaintsState extends State<DentalComplaints> {
backgroundColor: CustomColors.appBackgroudGreyColor,
body: Container(
child: !hasDentalPlan
? ListView.separated(
itemCount: complaintsList.length,
itemBuilder: (BuildContext context, int index) {
return Container(
child: DentalComplaintCard(
listDentalChiefComplain: complaintsList[index],
languageID: languageID,
isDoctorNameSearch: widget.isDoctorNameSearch,
onSelectedMethod: widget.onSelectedMethod,
isFromHospitalSearchPage: widget.isFromHospitalSearchPage,
onDoctorFetched: widget.isFromHospitalSearchPage
? (doctorsList) {
Navigator.pop(context, doctorsList);
}
: null,
)..logAnalytics = () {
final info = widget.searchInfo;
locator<GAnalytics>()
.appointment
.book_appointment_chief_complaints(appointment_type: 'regular', hospital: info.hospital, clinic: info.clinic, treatment: complaintsList[index]);
},
);
},
separatorBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.only(left: 14, right: 14),
child: mDivider(CustomColors.devider),
);
},
)
? isDoctorsList
? Container(
child: SingleChildScrollView(
child: Column(
children: [
...List.generate(
patientDoctorAppointmentListHospital.length,
(index) => Padding(
padding: const EdgeInsets.all(14.0),
child: AppExpandableNotifier(
isExpand: true,
title:
patientDoctorAppointmentListHospital[index].filterName! + " - " + patientDoctorAppointmentListHospital[index].distanceInKMs! + " " + TranslationBase.of(context).km,
bodyWidget: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: patientDoctorAppointmentListHospital[index].patientDoctorAppointmentList!.map((doctor) {
return DoctorView(
doctor: doctor,
isLiveCareAppointment: false,
isContinueDentalPlan: hasDentalPlan,
);
}).toList(),
)),
),
)
],
),
),
)
: ListView.separated(
itemCount: complaintsList.length,
itemBuilder: (BuildContext context, int index) {
return Container(
child: DentalComplaintCard(
listDentalChiefComplain: complaintsList[index],
languageID: languageID,
isDoctorNameSearch: widget.isDoctorNameSearch,
onSelectedMethod: widget.onSelectedMethod,
isFromHospitalSearchPage: widget.isFromHospitalSearchPage,
onDoctorFetched: widget.isFromHospitalSearchPage
? (doctorsList) {
Navigator.pop(context, doctorsList);
}
: null,
)..logAnalytics = () {
final info = widget.searchInfo;
locator<GAnalytics>()
.appointment
.book_appointment_chief_complaints(appointment_type: 'regular', hospital: info.hospital, clinic: info.clinic, treatment: complaintsList[index]);
},
);
},
separatorBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.only(left: 14, right: 14),
child: mDivider(CustomColors.devider),
);
},
)
: Container(
child: SingleChildScrollView(
child: Column(
@ -284,9 +312,36 @@ class _DentalComplaintsState extends State<DentalComplaints> {
GifLoaderDialogUtils.hideDialog(context);
if (res['MessageStatus'] == 1) {
setState(() {
res['List_DentalChiefComplain'].forEach((v) {
complaintsList.add(new ListDentalChiefComplain.fromJson(v));
});
if (res['DoctorList'].length != 0) {
isDoctorsList = true;
doctorsList.clear();
res['DoctorList'].forEach((v) {
doctorsList.add(new DoctorList.fromJson(v));
});
doctorsList.forEach((element) {
List<PatientDoctorAppointmentList> doctorByHospital = patientDoctorAppointmentListHospital
.where(
(elementClinic) => elementClinic.filterName == element.projectName,
)
.toList();
if (doctorByHospital.length != 0) {
patientDoctorAppointmentListHospital[patientDoctorAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList!.add(element);
} else {
patientDoctorAppointmentListHospital.add(PatientDoctorAppointmentList(
filterName: element.projectName,
distanceInKMs: element.projectDistanceInKiloMeters.toString(),
projectTopName: element.projectTopName,
projectBottomName: element.projectBottomName,
patientDoctorAppointment: element));
}
});
} else {
isDoctorsList = false;
res['List_DentalChiefComplain'].forEach((v) {
complaintsList.add(new ListDentalChiefComplain.fromJson(v));
});
}
});
} else {}
}).catchError((err) {

@ -539,7 +539,8 @@ class _DoctorProfileState extends State<DoctorProfile> with TickerProviderStateM
} else {
if (DocAvailableAppointments.areSlotsAvailable) {
if (projectViewModel.isLogin) {
if (widget.isDoctorNameSearch && widget.doctor.clinicID == 17 && projectViewModel.user!.age! > 12) {
// if (widget.isDoctorNameSearch && widget.doctor.clinicID == 17 && projectViewModel.user!.age! > 12) {
if (widget.isDoctorNameSearch && widget.doctor.clinicID == 17) {
navigateToDentalComplaints(context);
} else if (widget.isDoctorNameSearch && widget.doctor.clinicID == 253) {
navigateToLaserClinic(context);

@ -640,14 +640,7 @@ class _SearchByClinicState extends State<SearchByClinic> {
List<PatientDoctorAppointmentList> _patientDoctorAppointmentListHospital = [];
DoctorsListService service = new DoctorsListService();
service
.getDoctorsList(
clinicID,
projectDropdownValue != "" ? int.parse(projectDropdownValue!) : 0,
nearestAppo,
languageID,
context)
.then((res) async {
service.getDoctorsList(clinicID, projectDropdownValue != "" ? int.parse(projectDropdownValue!) : 0, nearestAppo, languageID, context).then((res) async {
GifLoaderDialogUtils.hideDialog(context);
RegionList regionHospitalList = RegionList();
@ -661,21 +654,12 @@ class _SearchByClinicState extends State<SearchByClinic> {
if (nearestAppo) {
doctorsList.forEach((element) {
List<PatientDoctorAppointmentList> doctorByHospital =
_patientDoctorAppointmentListHospital
.where((elementClinic) =>
elementClinic.filterName ==
element.getProjectCompleteName())
.toList();
_patientDoctorAppointmentListHospital.where((elementClinic) => elementClinic.filterName == element.getProjectCompleteName()).toList();
if (doctorByHospital.length != 0) {
_patientDoctorAppointmentListHospital[
_patientDoctorAppointmentListHospital
.indexOf(doctorByHospital[0])]
.patientDoctorAppointmentList!
.add(element);
_patientDoctorAppointmentListHospital[_patientDoctorAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList!.add(element);
} else {
_patientDoctorAppointmentListHospital
.add(PatientDoctorAppointmentList(
_patientDoctorAppointmentListHospital.add(PatientDoctorAppointmentList(
filterName: element.getProjectCompleteName(),
distanceInKMs: element.projectDistanceInKiloMeters.toString(),
projectTopName: element.projectTopName,
@ -685,20 +669,16 @@ class _SearchByClinicState extends State<SearchByClinic> {
));
}
});
navigateToSearchResultsForNearestAppointment(
context, doctorsList, _patientDoctorAppointmentListHospital);
navigateToSearchResultsForNearestAppointment(context, doctorsList, _patientDoctorAppointmentListHospital);
return;
}
regionHospitalList = await DoctorMapper.getMappedDoctor(doctorsList,
isArabic: isArabic);
regionHospitalList = await DoctorMapper.getMappedDoctor(doctorsList, isArabic: isArabic);
var lat = await sharedPref.getDouble(USER_LAT);
var lng = await sharedPref.getDouble(USER_LONG);
var isLocationEnabled =
(lat != null && lat != 0.0) && (lng != null && lng != 0.0);
regionHospitalList = await DoctorMapper.sortList(
isLocationEnabled, regionHospitalList);
var isLocationEnabled = (lat != null && lat != 0.0) && (lng != null && lng != 0.0);
regionHospitalList = await DoctorMapper.sortList(isLocationEnabled, regionHospitalList);
setState(() {});
} else {
@ -733,10 +713,7 @@ class _SearchByClinicState extends State<SearchByClinic> {
});
}
navigateToSearchResultsForNearestAppointment(
context,
List<DoctorList> docList,
List<PatientDoctorAppointmentList> patientDoctorAppointmentListHospital) {
navigateToSearchResultsForNearestAppointment(context, List<DoctorList> docList, List<PatientDoctorAppointmentList> patientDoctorAppointmentListHospital) {
Navigator.push(
context,
FadePage(
@ -744,8 +721,7 @@ class _SearchByClinicState extends State<SearchByClinic> {
isLiveCareAppointment: false,
isDoctorNameSearch: true,
doctorsList: docList,
patientDoctorAppointmentListHospital:
patientDoctorAppointmentListHospital,
patientDoctorAppointmentListHospital: patientDoctorAppointmentListHospital,
isDoctorSearchResult: true,
)));
}

@ -47,6 +47,7 @@ class _UserLoginAgreementPageState extends State<UserLoginAgreementPage> {
bool isPageLoaded = false;
bool isTermsAndConditionsPage = true;
bool acceptTerms = false;
@override
void initState() {
@ -155,9 +156,13 @@ class _UserLoginAgreementPageState extends State<UserLoginAgreementPage> {
onPressed: isPageLoaded
? () {
if (isTermsAndConditionsPage) {
setState(() {
isTermsAndConditionsPage = false;
});
if (acceptTerms) {
setState(() {
isTermsAndConditionsPage = false;
});
} else {
AppToast.showErrorToast(message: TranslationBase.of(context).pleaseAcceptTerms);
}
} else {
addUsageAgreement();
}
@ -654,6 +659,23 @@ class _UserLoginAgreementPageState extends State<UserLoginAgreementPage> {
style: TextStyle(fontSize: 16, fontFamily: (projectViewModel.isArabic ? 'Cairo' : 'Poppins'), color: Color(0xff2B353E), letterSpacing: -1.44, height: 35 / 24),
),
mHeight(24.0),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Checkbox(
value: acceptTerms,
onChanged: (v) {
setState(() => acceptTerms = v!);
}),
Expanded(
child: Text(
TranslationBase.of(context).termsConditionsRead,
style: TextStyle(
fontSize: 16, fontFamily: (projectViewModel.isArabic ? 'Cairo' : 'Poppins'), fontWeight: FontWeight.w700, color: Color(0xff2B353E), letterSpacing: -1.44, height: 35 / 24),
),
),
],
),
mHeight(150.0),
],
),

Loading…
Cancel
Save