From e9ec2e2faf46a0d655cf60cf8f07272dc63690ee Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Wed, 1 Sep 2021 15:21:34 +0300 Subject: [PATCH] Ambulance request APIs revamped --- lib/core/model/er/PatientER_RC.dart | 200 ++++++++++++++++++ lib/core/service/er/am_service.dart | 8 +- .../viewModels/er/am_request_view_model.dart | 3 +- .../AmbulanceRequestIndex.dart | 10 + .../BillAmount.dart | 78 +++---- .../PickupLocation.dart | 158 ++++++-------- .../SelectTransportationMethod.dart | 121 +++++------ .../AmbulanceRequestIndexPages/Summary.dart | 133 ++++++++---- 8 files changed, 459 insertions(+), 252 deletions(-) create mode 100644 lib/core/model/er/PatientER_RC.dart diff --git a/lib/core/model/er/PatientER_RC.dart b/lib/core/model/er/PatientER_RC.dart new file mode 100644 index 00000000..f5afc1d6 --- /dev/null +++ b/lib/core/model/er/PatientER_RC.dart @@ -0,0 +1,200 @@ +import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart'; + +class PatientER_RC { + double versionID; + int channel; + int languageID; + String iPAdress; + String generalid; + bool patientOutSA; + String sessionID; + bool isDentalAllowedBackend; + int deviceTypeID; + String patientID; + String tokenID; + int patientTypeID; + int patientType; + int orderServiceID; + String patientIdentificationID; + dynamic patientOutSa; + int projectID; + int lineItemNo; + TransportationDetails transportationDetails; + PatientERTransportationMethod patientERTransportationMethod; + + PatientER_RC( + {this.versionID, + this.channel, + this.languageID, + this.iPAdress, + this.generalid, + this.patientOutSA, + this.sessionID, + this.isDentalAllowedBackend, + this.deviceTypeID, + this.patientID, + this.tokenID, + this.patientTypeID, + this.patientType, + this.orderServiceID, + this.patientIdentificationID, + this.patientOutSa, + this.projectID, + this.lineItemNo, + this.transportationDetails}); + + PatientER_RC.fromJson(Map json) { + versionID = json['VersionID']; + channel = json['Channel']; + languageID = json['LanguageID']; + iPAdress = json['IPAdress']; + generalid = json['generalid']; + patientOutSA = json['PatientOutSA']; + sessionID = json['SessionID']; + isDentalAllowedBackend = json['isDentalAllowedBackend']; + deviceTypeID = json['DeviceTypeID']; + patientID = json['PatientID']; + tokenID = json['TokenID']; + patientTypeID = json['PatientTypeID']; + patientType = json['PatientType']; + orderServiceID = json['OrderServiceID']; + patientIdentificationID = json['PatientIdentificationID']; + patientOutSa = json['patientOutSa']; + projectID = json['projectID']; + lineItemNo = json['lineItemNo']; + transportationDetails = json['transportationDetails'] != null + ? new TransportationDetails.fromJson(json['transportationDetails']) + : null; + } + + Map toJson() { + final Map data = new Map(); + data['VersionID'] = this.versionID; + data['Channel'] = this.channel; + data['LanguageID'] = this.languageID; + data['IPAdress'] = this.iPAdress; + data['generalid'] = this.generalid; + data['PatientOutSA'] = this.patientOutSA; + data['SessionID'] = this.sessionID; + data['isDentalAllowedBackend'] = this.isDentalAllowedBackend; + data['DeviceTypeID'] = this.deviceTypeID; + data['PatientID'] = this.patientID; + data['TokenID'] = this.tokenID; + data['PatientTypeID'] = this.patientTypeID; + data['PatientType'] = this.patientType; + data['OrderServiceID'] = this.orderServiceID; + data['PatientIdentificationID'] = this.patientIdentificationID; + data['patientOutSa'] = this.patientOutSa; + data['projectID'] = this.projectID; + data['lineItemNo'] = this.lineItemNo; + if (this.transportationDetails != null) { + data['transportationDetails'] = this.transportationDetails.toJson(); + } + return data; + } +} + +class TransportationDetails { + int direction; + int haveAppointment; + int tripType; + int pickupUrgency; + int pickupSpot; + String pickupDateTime; + String transportationType; + int ambulate; + String notes; + int requesterFileNo; + String requesterMobileNo; + bool requesterIsOutSA; + String pickupLocationName; + String dropoffLocationName; + String pickupLatitude; + String pickupLongitude; + String dropoffLatitude; + String dropoffLongitude; + String appointmentNo; + String appointmentClinicName; + String appointmentDoctorName; + String appointmentBranch; + String appointmentTime; + + TransportationDetails( + {this.direction, + this.haveAppointment, + this.tripType, + this.pickupUrgency, + this.pickupSpot, + this.pickupDateTime, + this.transportationType, + this.ambulate, + this.notes, + this.requesterFileNo, + this.requesterMobileNo, + this.requesterIsOutSA, + this.pickupLocationName, + this.dropoffLocationName, + this.pickupLatitude, + this.pickupLongitude, + this.dropoffLatitude, + this.dropoffLongitude, + this.appointmentNo, + this.appointmentClinicName, + this.appointmentDoctorName, + this.appointmentBranch, + this.appointmentTime}); + + TransportationDetails.fromJson(Map json) { + direction = json['direction']; + haveAppointment = json['haveAppointment']; + tripType = json['tripType']; + pickupUrgency = json['pickupUrgency']; + pickupSpot = json['pickupSpot']; + pickupDateTime = json['pickupDateTime']; + transportationType = json['transportationType']; + ambulate = json['ambulate']; + notes = json['notes']; + requesterFileNo = json['requesterFileNo']; + requesterMobileNo = json['requesterMobileNo']; + requesterIsOutSA = json['requesterIsOutSA']; + pickupLocationName = json['pickupLocationName']; + dropoffLocationName = json['dropoffLocationName']; + pickupLatitude = json['pickup_Latitude']; + pickupLongitude = json['pickup_Longitude']; + dropoffLatitude = json['dropoff_Latitude']; + dropoffLongitude = json['dropoff_Longitude']; + appointmentNo = json['appointmentNo']; + appointmentClinicName = json['appointmentClinicName']; + appointmentDoctorName = json['appointmentDoctorName']; + appointmentBranch = json['appointmentBranch']; + appointmentTime = json['appointmentTime']; + } + + Map toJson() { + final Map data = new Map(); + data['direction'] = this.direction; + data['haveAppointment'] = this.haveAppointment; + data['tripType'] = this.tripType; + data['pickupUrgency'] = this.pickupUrgency; + data['pickupSpot'] = this.pickupSpot; + data['pickupDateTime'] = this.pickupDateTime; + data['transportationType'] = this.transportationType; + data['ambulate'] = this.ambulate; + data['notes'] = this.notes; + data['requesterFileNo'] = this.requesterFileNo; + data['requesterMobileNo'] = this.requesterMobileNo; + data['requesterIsOutSA'] = this.requesterIsOutSA; + data['pickupLocationName'] = this.pickupLocationName; + data['dropoffLocationName'] = this.dropoffLocationName; + data['pickup_Latitude'] = this.pickupLatitude; + data['pickup_Longitude'] = this.pickupLongitude; + data['dropoff_Latitude'] = this.dropoffLatitude; + data['dropoff_Longitude'] = this.dropoffLongitude; + data['appointmentNo'] = this.appointmentNo; + data['appointmentClinicName'] = this.appointmentClinicName; + data['appointmentDoctorName'] = this.appointmentDoctorName; + data['appointmentBranch'] = this.appointmentBranch; + data['appointmentTime'] = this.appointmentTime; + return data; + } +} diff --git a/lib/core/service/er/am_service.dart b/lib/core/service/er/am_service.dart index 22db55a3..895fcc0a 100644 --- a/lib/core/service/er/am_service.dart +++ b/lib/core/service/er/am_service.dart @@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/core/enum/OrderService.dart'; import 'package:diplomaticquarterapp/core/model/er/PatientAllPresOrders.dart'; import 'package:diplomaticquarterapp/core/model/er/PatientER.dart'; +import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart'; import 'package:diplomaticquarterapp/core/model/er/PickUpRequestPresOrder.dart'; import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart'; import 'package:flutter/cupertino.dart'; @@ -103,14 +104,17 @@ class AmService extends BaseService { }, body: body); } - Future insertERPressOrder({@required PatientER patientER}) async { + Future insertERPressOrder({@required PatientER_RC patientER}) async { hasError = false; + var body = patientER.toJson(); + print(body); + await baseAppClient.post(INSERT_TRANSPORTATION_ORDER_RC, onSuccess: (dynamic response, int statusCode) {}, onFailure: (String error, int statusCode) { hasError = true; super.error = error; - }, body: patientER.toJson()); + }, body: body); } } diff --git a/lib/core/viewModels/er/am_request_view_model.dart b/lib/core/viewModels/er/am_request_view_model.dart index 5f6d40d5..6a5bd4b2 100644 --- a/lib/core/viewModels/er/am_request_view_model.dart +++ b/lib/core/viewModels/er/am_request_view_model.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/er/PatientAllPresOrders.dart'; import 'package:diplomaticquarterapp/core/model/er/PatientER.dart'; +import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart'; import 'package:diplomaticquarterapp/core/model/er/PickUpRequestPresOrder.dart'; import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart'; import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart'; @@ -95,7 +96,7 @@ class AmRequestViewModel extends BaseViewModel { getPatientAllPresOrdersList(); } - Future insertERPressOrder({@required PatientER patientER}) async { + Future insertERPressOrder({@required PatientER_RC patientER}) async { setState(ViewState.Busy); await _amService.insertERPressOrder(patientER: patientER); if (_amService.hasError) { diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart index 22098d4f..2c3bcf8a 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart @@ -1,4 +1,5 @@ import 'package:diplomaticquarterapp/core/model/er/PatientER.dart'; +import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart'; import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart'; import 'package:diplomaticquarterapp/pages/ErService/widgets/StepsWidget.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; @@ -29,6 +30,10 @@ class _AmbulanceRequestIndexPageState extends State { PageController pageController; PatientER _patientER = PatientER(); + PatientER_RC _patientER_RC = PatientER_RC(); + + TransportationDetails transportationDetails = new TransportationDetails(); + _changeCurrentTab(int tab) { setState(() { currentIndex = tab; @@ -41,6 +46,7 @@ class _AmbulanceRequestIndexPageState extends State { void initState() { super.initState(); pageController = new PageController(); + _patientER_RC.transportationDetails = transportationDetails; } @override @@ -143,21 +149,25 @@ class _AmbulanceRequestIndexPageState extends State { SelectTransportationMethod( changeCurrentTab: _changeCurrentTab, patientER: _patientER, + patientER_RC: _patientER_RC, amRequestViewModel: widget.amRequestViewModel, ), PickupLocation( changeCurrentTab: _changeCurrentTab, patientER: _patientER, + patientER_RC: _patientER_RC, amRequestViewModel: widget.amRequestViewModel, ), BillAmount( changeCurrentTab: _changeCurrentTab, patientER: _patientER, + patientER_RC: _patientER_RC, amRequestViewModel: widget.amRequestViewModel, ), Summary( changeCurrentTab: _changeCurrentTab, patientER: _patientER, + patientER_RC: _patientER_RC, amRequestViewModel: widget.amRequestViewModel, ), ], diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart index 3a89a551..67b9d82b 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart @@ -1,5 +1,6 @@ import 'package:diplomaticquarterapp/core/enum/Ambulate.dart'; import 'package:diplomaticquarterapp/core/model/er/PatientER.dart'; +import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart'; import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart'; import 'package:diplomaticquarterapp/pages/Blood/new_text_Field.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; @@ -9,17 +10,13 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; - class BillAmount extends StatefulWidget { final Function changeCurrentTab; final PatientER patientER; + final PatientER_RC patientER_RC; final AmRequestViewModel amRequestViewModel; - BillAmount( - {Key key, - this.changeCurrentTab, - this.patientER, - this.amRequestViewModel}); + BillAmount({Key key, this.changeCurrentTab, this.patientER, this.patientER_RC, this.amRequestViewModel}); @override _BillAmountState createState() => _BillAmountState(); @@ -27,23 +24,19 @@ class BillAmount extends StatefulWidget { class _BillAmountState extends State { Ambulate _ambulate = Ambulate.None; - String note =""; - + String note = ""; @override void initState() { - - if(widget.patientER.ambulate!=null) - { - setState(() { - _ambulate = widget.patientER.ambulate; - note = widget.patientER.requesterNote; - }); - } + // if (widget.patientER_RC.transportationDetails.ambulate != null) { + // setState(() { + // _ambulate = widget.patientER.ambulate; + // note = widget.patientER.requesterNote; + // }); + // } super.initState(); } - @override Widget build(BuildContext context) { return AppScaffold( @@ -61,9 +54,7 @@ class _BillAmountState extends State { height: 10, ), Table( - border: TableBorder.symmetric( - inside: BorderSide(width: 1.0, color: Colors.grey[300]), - outside: BorderSide(width: 1.0, color: Colors.grey[300])), + border: TableBorder.symmetric(inside: BorderSide(width: 1.0, color: Colors.grey[300]), outside: BorderSide(width: 1.0, color: Colors.grey[300])), children: [ TableRow( children: [ @@ -96,7 +87,7 @@ class _BillAmountState extends State { child: Padding( padding: const EdgeInsets.all(8.0), child: Texts( - TranslationBase.of(context).sar+' ${widget.patientER.patientERTransportationMethod.price}', + TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.price}', color: Colors.black, textAlign: TextAlign.start, fontSize: 15, @@ -126,7 +117,7 @@ class _BillAmountState extends State { child: Padding( padding: const EdgeInsets.all(8.0), child: Texts( - TranslationBase.of(context).sar+' ${widget.patientER.patientERTransportationMethod.priceVAT}', + TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.priceVAT}', color: Colors.black, fontSize: 15, textAlign: TextAlign.start, @@ -167,7 +158,7 @@ class _BillAmountState extends State { child: Padding( padding: const EdgeInsets.all(8.0), child: Texts( - TranslationBase.of(context).sar+' ${widget.patientER.patientERTransportationMethod.priceTotal}', + TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.priceTotal}', color: Colors.black, fontSize: 15, textAlign: TextAlign.start, @@ -181,8 +172,13 @@ class _BillAmountState extends State { SizedBox( height: 10, ), - Texts(TranslationBase.of(context).selectAmbulate,bold: true,), - SizedBox(height: 5,), + Texts( + TranslationBase.of(context).selectAmbulate, + bold: true, + ), + SizedBox( + height: 5, + ), Row( children: [ Expanded( @@ -196,8 +192,7 @@ class _BillAmountState extends State { decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), - border: - Border.all(color: Colors.grey, width: 0.5), + border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: ListTile( @@ -226,8 +221,7 @@ class _BillAmountState extends State { decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), - border: - Border.all(color: Colors.grey, width: 0.5), + border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: ListTile( @@ -235,7 +229,6 @@ class _BillAmountState extends State { leading: Radio( value: Ambulate.Walker, groupValue: _ambulate, - onChanged: (value) { setState(() { _ambulate = value; @@ -248,7 +241,9 @@ class _BillAmountState extends State { ), ], ), - SizedBox(height: 5,), + SizedBox( + height: 5, + ), Row( children: [ Expanded( @@ -262,8 +257,7 @@ class _BillAmountState extends State { decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), - border: - Border.all(color: Colors.grey, width: 0.5), + border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: ListTile( @@ -271,7 +265,6 @@ class _BillAmountState extends State { leading: Radio( value: Ambulate.Stretcher, groupValue: _ambulate, - onChanged: (value) { setState(() { _ambulate = value; @@ -293,8 +286,7 @@ class _BillAmountState extends State { decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), - border: - Border.all(color: Colors.grey, width: 0.5), + border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: ListTile( @@ -302,7 +294,6 @@ class _BillAmountState extends State { leading: Radio( value: Ambulate.None, groupValue: _ambulate, - onChanged: (value) { setState(() { _ambulate = value; @@ -315,17 +306,18 @@ class _BillAmountState extends State { ), ], ), - SizedBox(height: 12,), + SizedBox( + height: 12, + ), NewTextFields( hintText: TranslationBase.of(context).notes, initialValue: note, - onChanged: (value){ + onChanged: (value) { setState(() { note = value; }); }, ), - SizedBox( height: 100, ), @@ -342,9 +334,9 @@ class _BillAmountState extends State { textColor: Colors.white, onTap: () { setState(() { - widget.patientER.ambulate = _ambulate; - widget.patientER.requesterNote = note; - widget.patientER.selectedAmbulate = _ambulate.selectAmbulateNumber(); + widget.patientER_RC.transportationDetails.ambulate = _ambulate.selectAmbulateNumber(); + widget.patientER_RC.transportationDetails.notes = note; + // widget.patientER.selectedAmbulate = _ambulate.selectAmbulateNumber(); widget.changeCurrentTab(3); }); }, diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart index cde9e248..ce4eb2f7 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart @@ -1,5 +1,6 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/er/PatientER.dart'; +import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart'; import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart'; @@ -28,13 +29,10 @@ enum HaveAppointment { YES, NO } class PickupLocation extends StatefulWidget { final Function changeCurrentTab; final PatientER patientER; + final PatientER_RC patientER_RC; final AmRequestViewModel amRequestViewModel; - PickupLocation( - {Key key, - this.changeCurrentTab, - this.patientER, - this.amRequestViewModel}); + PickupLocation({Key key, this.changeCurrentTab, this.patientER, this.patientER_RC, this.amRequestViewModel}); @override _PickupLocationState createState() => _PickupLocationState(); @@ -77,7 +75,7 @@ class _PickupLocationState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - if (widget.patientER.direction == 1) + if (widget.patientER_RC.transportationDetails.direction == 1) Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -112,8 +110,7 @@ class _PickupLocationState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Expanded( - child: Texts(getSelectFromMapName(context))), + Expanded(child: Texts(getSelectFromMapName(context))), Icon( FontAwesomeIcons.mapMarkerAlt, size: 24, @@ -179,8 +176,7 @@ class _PickupLocationState extends State { decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), - border: - Border.all(color: Colors.grey, width: 0.5), + border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: ListTile( @@ -213,8 +209,7 @@ class _PickupLocationState extends State { decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), - border: - Border.all(color: Colors.grey, width: 0.5), + border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: ListTile( @@ -254,11 +249,9 @@ class _PickupLocationState extends State { SizedBox( height: 8, ), - InkWell( onTap: () { - confirmSelectHospitalDialog( - widget.amRequestViewModel.hospitals); + confirmSelectHospitalDialog(widget.amRequestViewModel.hospitals); }, child: Container( padding: EdgeInsets.all(12), @@ -271,8 +264,7 @@ class _PickupLocationState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Texts(getHospitalName( - TranslationBase.of(context).pickupLocation)), + Texts(getHospitalName(TranslationBase.of(context).pickupLocation)), Icon( Icons.arrow_drop_down, size: 24, @@ -284,7 +276,7 @@ class _PickupLocationState extends State { ), ], ), - if (widget.patientER.direction == 0) + if (widget.patientER_RC.transportationDetails.direction == 0) Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -294,8 +286,7 @@ class _PickupLocationState extends State { ), InkWell( onTap: () { - confirmSelectHospitalDialog( - widget.amRequestViewModel.hospitals); + confirmSelectHospitalDialog(widget.amRequestViewModel.hospitals); }, child: Container( padding: EdgeInsets.all(12), @@ -308,8 +299,7 @@ class _PickupLocationState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Texts(getHospitalName( - TranslationBase.of(context).pickupLocation)), + Texts(getHospitalName(TranslationBase.of(context).pickupLocation)), Icon( Icons.arrow_drop_down, size: 24, @@ -354,8 +344,7 @@ class _PickupLocationState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Expanded( - child: Texts(getSelectFromMapName(context))), + Expanded(child: Texts(getSelectFromMapName(context))), Icon( FontAwesomeIcons.mapMarkerAlt, size: 24, @@ -387,77 +376,59 @@ class _PickupLocationState extends State { textColor: Colors.white, onTap: () { if (_result == null || _selectedHospital == null) - AppToast.showErrorToast( - message: TranslationBase.of(context).selectAll); + AppToast.showErrorToast(message: TranslationBase.of(context).selectAll); else setState(() { - widget.patientER.pickupSpot = _isInsideHome ? 1 : 0; - if (widget.patientER.direction == 0) { - - widget.patientER.dropoffLocationLattitude = - _result.geometry.location.lat.toString(); - widget.patientER.dropoffLocationLongitude = - _result.geometry.location.lng.toString(); - widget.patientER.pickupLocationLattitude = - _selectedHospital.latitude; - widget.patientER.pickupLocationLongitude = - _selectedHospital.longitude; + widget.patientER_RC.transportationDetails.pickupSpot = _isInsideHome ? 1 : 0; + if (widget.patientER_RC.transportationDetails.direction == 0) { + widget.patientER_RC.transportationDetails.dropoffLatitude = _result.geometry.location.lat.toString(); + widget.patientER_RC.transportationDetails.dropoffLongitude = _result.geometry.location.lng.toString(); + widget.patientER_RC.transportationDetails.pickupLatitude = _selectedHospital.latitude; + widget.patientER_RC.transportationDetails.pickupLongitude = _selectedHospital.longitude; } else { - widget.patientER.pickupLocationLattitude = - _selectedHospital.latitude; - widget.patientER.pickupLocationLongitude = - _selectedHospital.longitude; - widget.patientER.dropoffLocationLattitude = - _result.geometry.location.lat.toString(); - widget.patientER.dropoffLocationLongitude = - _result.geometry.location.lng.toString(); + widget.patientER_RC.transportationDetails.pickupLatitude = _selectedHospital.latitude; + widget.patientER_RC.transportationDetails.pickupLongitude = _selectedHospital.longitude; + widget.patientER_RC.transportationDetails.dropoffLatitude = _result.geometry.location.lat.toString(); + widget.patientER_RC.transportationDetails.dropoffLongitude = _result.geometry.location.lng.toString(); } - widget.patientER.latitude = - widget.patientER.pickupLocationLattitude; - widget.patientER.longitude = - widget.patientER.pickupLocationLongitude; - widget.patientER.dropoffLocationName = widget.patientER.direction == 0?_result.formattedAddress:_selectedHospital.name; - widget.patientER.createdBy = - widget.amRequestViewModel.user.patientID; - widget.patientER.isOutPatient = - widget.amRequestViewModel.user.outSA; - widget.patientER.patientIdentificationID = - widget.amRequestViewModel.user.patientIdentificationNo; - widget.patientER.pickupDateTime = - DateUtil.convertDateToStringLocation(DateTime.now()); - widget.patientER.pickupLocationName = widget.patientER.direction == 0?_selectedHospital.name:_result.formattedAddress; - widget.patientER.projectID = - widget.amRequestViewModel.user.projectID; - widget.patientER.requesterFileNo = - widget.amRequestViewModel.user.patientID; - widget.patientER.requesterIsOutSA = false; - widget.patientER.lineItemNo = 0; - widget.patientER.requesterMobileNo = - widget.amRequestViewModel.user.mobileNumber; + // widget.patientER.latitude = + // widget.patientER.pickupLocationLattitude; + // widget.patientER.longitude = + // widget.patientER.pickupLocationLongitude; + + widget.patientER_RC.transportationDetails.dropoffLocationName = widget.patientER.direction == 0 ? _result.formattedAddress : _selectedHospital.name; + // widget.patientER_RC.crea = + // widget.amRequestViewModel.user.patientID; + widget.patientER_RC.patientOutSA = widget.amRequestViewModel.user.outSA == 0 ? true : false; + widget.patientER_RC.patientOutSa = widget.amRequestViewModel.user.outSA; + + widget.patientER_RC.patientIdentificationID = widget.amRequestViewModel.user.patientIdentificationNo; + widget.patientER_RC.transportationDetails.pickupDateTime = DateUtil.convertDateToStringLocation(DateTime.now()); + widget.patientER_RC.transportationDetails.pickupLocationName = widget.patientER.direction == 0 ? _selectedHospital.name : _result.formattedAddress; + widget.patientER_RC.projectID = widget.amRequestViewModel.user.projectID; + widget.patientER_RC.patientID = widget.amRequestViewModel.user.patientID.toString(); + widget.patientER_RC.transportationDetails.requesterIsOutSA = false; + // widget.patientER.lineItemNo = 0; + widget.patientER_RC.transportationDetails.requesterMobileNo = widget.amRequestViewModel.user.mobileNumber; if (_haveAppointment == HaveAppointment.YES) { - widget.patientER.appointmentNo = - myAppointment.appointmentNo.toString(); - widget.patientER.appointmentClinicName = - myAppointment.clinicName; - widget.patientER.appointmentDoctorName = - myAppointment.doctorNameObj; - widget.patientER.appointmentBranch = - myAppointment.projectName; - widget.patientER.appointmentTime = - myAppointment.appointmentDate; - widget.patientER.haveAppointment = true; + widget.patientER_RC.transportationDetails.appointmentNo = myAppointment.appointmentNo.toString(); + widget.patientER_RC.transportationDetails.appointmentClinicName = myAppointment.clinicName; + widget.patientER_RC.transportationDetails.appointmentDoctorName = myAppointment.doctorNameObj; + widget.patientER_RC.transportationDetails.appointmentBranch = myAppointment.projectName; + widget.patientER_RC.transportationDetails.appointmentTime = myAppointment.appointmentDate; + widget.patientER_RC.transportationDetails.haveAppointment = 1; } else { - widget.patientER.appointmentNo = "0"; - widget.patientER.appointmentClinicName = null; - widget.patientER.appointmentDoctorName = null; - widget.patientER.appointmentBranch = null; - widget.patientER.appointmentTime = null; - widget.patientER.haveAppointment = false; + widget.patientER_RC.transportationDetails.appointmentNo = "0"; + widget.patientER_RC.transportationDetails.appointmentClinicName = ""; + widget.patientER_RC.transportationDetails.appointmentDoctorName = ""; + widget.patientER_RC.transportationDetails.appointmentBranch = ""; + widget.patientER_RC.transportationDetails.appointmentTime = ""; + widget.patientER_RC.transportationDetails.haveAppointment = 0; } - widget.patientER.pickupSpot = _isInsideHome ? 1 : 0; + widget.patientER_RC.transportationDetails.pickupSpot = _isInsideHome ? 1 : 0; widget.changeCurrentTab(2); }); }, @@ -487,27 +458,21 @@ class _PickupLocationState extends State { } String getSelectFromMapName(context) { - return _result != null - ? _result.formattedAddress - : TranslationBase.of(context).selectMap; + return _result != null ? _result.formattedAddress : TranslationBase.of(context).selectMap; } getAppointment() { GifLoaderDialogUtils.showMyDialog(context); widget.amRequestViewModel.getAppointmentHistory().then((value) { - if (widget.amRequestViewModel.state == ViewState.Error || - widget.amRequestViewModel.state == ViewState.ErrorLocal) { + if (widget.amRequestViewModel.state == ViewState.Error || widget.amRequestViewModel.state == ViewState.ErrorLocal) { AppToast.showErrorToast(message: widget.amRequestViewModel.error); - } else if (widget - .amRequestViewModel.appoitmentAllHistoryResultList.length > - 0) { + } else if (widget.amRequestViewModel.appoitmentAllHistoryResultList.length > 0) { GifLoaderDialogUtils.hideDialog(context); Navigator.push( context, FadePage( page: AvailableAppointmentsPage( - appointmentsAllHistoryList: - widget.amRequestViewModel.appoitmentAllHistoryResultList, + appointmentsAllHistoryList: widget.amRequestViewModel.appoitmentAllHistoryResultList, ), ), ).then((value) { @@ -527,8 +492,7 @@ class _PickupLocationState extends State { setState(() { _haveAppointment = HaveAppointment.NO; }); - AppToast.showErrorToast( - message: TranslationBase.of(context).noAppointment); + AppToast.showErrorToast(message: TranslationBase.of(context).noAppointment); } }).catchError((e) { GifLoaderDialogUtils.hideDialog(context); diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart index 5bfac450..aad8eb3b 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart @@ -1,5 +1,6 @@ import 'package:diplomaticquarterapp/core/enum/OrderService.dart'; import 'package:diplomaticquarterapp/core/model/er/PatientER.dart'; +import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart'; import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; @@ -17,23 +18,17 @@ enum Way { OneWay, TwoWays } class SelectTransportationMethod extends StatefulWidget { final Function changeCurrentTab; final PatientER patientER; + final PatientER_RC patientER_RC; final AmRequestViewModel amRequestViewModel; - SelectTransportationMethod( - {Key key, - this.changeCurrentTab, - this.patientER, - this.amRequestViewModel}); + SelectTransportationMethod({Key key, this.changeCurrentTab, this.patientER, this.patientER_RC, this.amRequestViewModel}); @override - _SelectTransportationMethodState createState() => - _SelectTransportationMethodState(); + _SelectTransportationMethodState createState() => _SelectTransportationMethodState(); } -class _SelectTransportationMethodState - extends State { - PatientERTransportationMethod _erTransportationMethod = - PatientERTransportationMethod(); +class _SelectTransportationMethodState extends State { + PatientERTransportationMethod _erTransportationMethod = PatientERTransportationMethod(); Direction _direction = Direction.FromHospital; Way _way = Way.OneWay; @@ -42,18 +37,23 @@ class _SelectTransportationMethodState @override void initState() { super.initState(); - if (widget.patientER.direction != null) { - _direction = widget.patientER.direction == 0 - ? Direction.ToHospital - : Direction.FromHospital; - _way = widget.patientER.tripType == 1 ? Way.OneWay : Way.TwoWays; - _erTransportationMethod = widget.amRequestViewModel - .amRequestModeList[(widget.patientER.selectedAmbulate - 1)]; + // if (widget.patientER.direction != null) { + // _direction = widget.patientER.direction == 0 ? Direction.ToHospital : Direction.FromHospital; + // _way = widget.patientER.tripType == 1 ? Way.OneWay : Way.TwoWays; + // _erTransportationMethod = widget.amRequestViewModel.amRequestModeList[(widget.patientER.selectedAmbulate - 1)]; + // } else { + // if (widget.amRequestViewModel.amRequestModeList.length != 0) _erTransportationMethod = widget.amRequestViewModel.amRequestModeList[widget.amRequestViewModel.amRequestModeList.length - 1]; + // } + + //RC API Revamp + if (widget.patientER_RC.transportationDetails.direction != null) { + _direction = widget.patientER_RC.transportationDetails.direction == 0 ? Direction.ToHospital : Direction.FromHospital; + _way = widget.patientER_RC.transportationDetails.tripType == 1 ? Way.OneWay : Way.TwoWays; + _erTransportationMethod = widget.amRequestViewModel.amRequestModeList[(widget.patientER_RC.transportationDetails.ambulate - 1)]; } else { - if (widget.amRequestViewModel.amRequestModeList.length != 0) - _erTransportationMethod = widget.amRequestViewModel.amRequestModeList[ - widget.amRequestViewModel.amRequestModeList.length - 1]; + if (widget.amRequestViewModel.amRequestModeList.length != 0) _erTransportationMethod = widget.amRequestViewModel.amRequestModeList[widget.amRequestViewModel.amRequestModeList.length - 1]; } + } @override @@ -78,8 +78,7 @@ class _SelectTransportationMethodState (index) => InkWell( onTap: () { setState(() { - _erTransportationMethod = - widget.amRequestViewModel.amRequestModeList[index]; + _erTransportationMethod = widget.amRequestViewModel.amRequestModeList[index]; }); }, child: Container( @@ -95,14 +94,9 @@ class _SelectTransportationMethodState Expanded( flex: 3, child: ListTile( - title: Texts(projectViewModel.isArabic - ? widget.amRequestViewModel - .amRequestModeList[index].textN - : widget.amRequestViewModel - .amRequestModeList[index].text), + title: Texts(projectViewModel.isArabic ? widget.amRequestViewModel.amRequestModeList[index].textN : widget.amRequestViewModel.amRequestModeList[index].text), leading: Radio( - value: widget - .amRequestViewModel.amRequestModeList[index], + value: widget.amRequestViewModel.amRequestModeList[index], groupValue: _erTransportationMethod, onChanged: (value) { setState(() { @@ -114,8 +108,7 @@ class _SelectTransportationMethodState ), Expanded( flex: 1, - child: Texts(TranslationBase.of(context).sar + - ' ${widget.amRequestViewModel.amRequestModeList[index].price}'), + child: Texts(TranslationBase.of(context).sar + ' ${widget.amRequestViewModel.amRequestModeList[index].price}'), ) ], ), @@ -181,8 +174,7 @@ class _SelectTransportationMethodState color: Colors.white, ), child: ListTile( - title: - Texts(TranslationBase.of(context).fromHospital), + title: Texts(TranslationBase.of(context).fromHospital), leading: Radio( value: Direction.FromHospital, groupValue: _direction, @@ -211,7 +203,7 @@ class _SelectTransportationMethodState height: 5, ), Container( - margin: EdgeInsets.only(bottom:65 ), + margin: EdgeInsets.only(bottom: 65), child: Row( children: [ Expanded( @@ -225,13 +217,11 @@ class _SelectTransportationMethodState decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), - border: - Border.all(color: Colors.grey, width: 0.5), + border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: ListTile( - title: - Texts(TranslationBase.of(context).oneDirec), + title: Texts(TranslationBase.of(context).oneDirec), leading: Radio( value: Way.OneWay, groupValue: _way, @@ -256,13 +246,11 @@ class _SelectTransportationMethodState decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), - border: - Border.all(color: Colors.grey, width: 0.5), + border: Border.all(color: Colors.grey, width: 0.5), color: Colors.white, ), child: ListTile( - title: - Texts(TranslationBase.of(context).twoDirec), + title: Texts(TranslationBase.of(context).twoDirec), leading: Radio( value: Way.TwoWays, groupValue: _way, @@ -300,28 +288,33 @@ class _SelectTransportationMethodState textColor: Colors.white, onTap: () { setState(() { - widget.patientER.transportationMethodId = (widget - .amRequestViewModel.amRequestModeList - .indexOf(_erTransportationMethod) + - 1); - widget.patientER.direction = - _direction == Direction.ToHospital ? 1 : 0; - widget.patientER.tripType = _way == Way.TwoWays ? 0 : 1; - widget.patientER.selectedAmbulate = (widget - .amRequestViewModel.amRequestModeList - .indexOf(_erTransportationMethod) + - 1); - widget.patientER.patientERTransportationMethod = - _erTransportationMethod; - widget.patientER.orderServiceID = - _orderService.getIdOrderService(); - widget.patientER.pickupUrgency = 1; - widget.patientER.lineItemNo = 1; - widget.patientER.cost = _erTransportationMethod.price.toDouble(); - widget.patientER.vAT = _erTransportationMethod.priceVAT ?? 0; - widget.patientER.totalPrice = - _erTransportationMethod.priceTotal.toDouble(); + // widget.patientER.transportationMethodId = (widget.amRequestViewModel.amRequestModeList.indexOf(_erTransportationMethod) + 1); + // widget.patientER.direction = _direction == Direction.ToHospital ? 1 : 0; + // widget.patientER.tripType = _way == Way.TwoWays ? 0 : 1; + // widget.patientER.selectedAmbulate = (widget.amRequestViewModel.amRequestModeList.indexOf(_erTransportationMethod) + 1); + // widget.patientER.patientERTransportationMethod = _erTransportationMethod; + // widget.patientER.orderServiceID = _orderService.getIdOrderService(); + // widget.patientER.pickupUrgency = 1; + // widget.patientER.lineItemNo = 1; + // widget.patientER.cost = _erTransportationMethod.price.toDouble(); + // widget.patientER.vAT = _erTransportationMethod.priceVAT ?? 0; + // widget.patientER.totalPrice = _erTransportationMethod.priceTotal.toDouble(); + // widget.changeCurrentTab(1); + + // widget.patientER_RC.transportationDetails.id = (widget.amRequestViewModel.amRequestModeList.indexOf(_erTransportationMethod) + 1); + widget.patientER_RC.transportationDetails.direction = _direction == Direction.ToHospital ? 1 : 0; + widget.patientER_RC.transportationDetails.tripType = _way == Way.TwoWays ? 0 : 1; + widget.patientER_RC.transportationDetails.ambulate = (widget.amRequestViewModel.amRequestModeList.indexOf(_erTransportationMethod) + 1); + widget.patientER_RC.transportationDetails.transportationType = _erTransportationMethod.id.toString(); + widget.patientER_RC.patientERTransportationMethod = _erTransportationMethod; + widget.patientER_RC.transportationDetails.pickupUrgency = 1; + // widget.patientER.orderServiceID = _orderService.getIdOrderService(); + // widget.patientER.lineItemNo = 1; + // widget.patientER.cost = _erTransportationMethod.price.toDouble(); + // widget.patientER.vAT = _erTransportationMethod.priceVAT ?? 0; + // widget.patientER.totalPrice = _erTransportationMethod.priceTotal.toDouble(); widget.changeCurrentTab(1); + }); }, label: TranslationBase.of(context).next, diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart index 867b6583..d595fd6b 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart @@ -1,4 +1,6 @@ +import 'package:diplomaticquarterapp/core/enum/Ambulate.dart'; import 'package:diplomaticquarterapp/core/model/er/PatientER.dart'; +import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart'; import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; @@ -6,14 +8,14 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:diplomaticquarterapp/core/enum/Ambulate.dart'; class Summary extends StatefulWidget { final Function changeCurrentTab; final PatientER patientER; + final PatientER_RC patientER_RC; final AmRequestViewModel amRequestViewModel; - Summary({Key key, this.changeCurrentTab, this.patientER, this.amRequestViewModel}); + Summary({Key key, this.changeCurrentTab, this.patientER, this.patientER_RC, this.amRequestViewModel}); @override _SummaryState createState() => _SummaryState(); @@ -32,7 +34,9 @@ class _SummaryState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts(TranslationBase.of(context).rrtSummary), - SizedBox(height: 5,), + SizedBox( + height: 5, + ), Container( width: double.infinity, padding: EdgeInsets.all(10), @@ -43,54 +47,95 @@ class _SummaryState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Texts(TranslationBase.of(context).transportMethod,color: Colors.grey,), - Texts('${widget.patientER.patientERTransportationMethod.text}',bold: true,), - SizedBox(height: 8,), - - Texts(TranslationBase.of(context).directions,color: Colors.grey,), - Texts(widget.patientER.direction ==0? TranslationBase.of(context).toHospital:TranslationBase.of(context).fromHospital,bold: true,), - SizedBox(height: 8,), - - Texts(TranslationBase.of(context).pickupLocation,color: Colors.grey,), - Texts('${widget.patientER.pickupLocationName}',bold: true,), - SizedBox(height: 8,), - - Texts(TranslationBase.of(context).dropoffLocation,color: Colors.grey,), - Texts('${widget.patientER.dropoffLocationName}',bold: true,), - SizedBox(height: 8,), - - Texts(TranslationBase.of(context).selectAmbulate,color: Colors.grey,), - Texts('${widget.patientER.ambulate.getAmbulateTitle(context)}',bold: true,), - SizedBox(height: 8,), - - Texts(TranslationBase.of(context).notes,color: Colors.grey,), - Texts('${widget.patientER.requesterNote?? '---'}',bold: true,), - SizedBox(height: 8,), + Texts( + TranslationBase.of(context).transportMethod, + color: Colors.grey, + ), + Texts( + '${widget.patientER_RC.patientERTransportationMethod.text}', + bold: true, + ), + SizedBox( + height: 8, + ), + Texts( + TranslationBase.of(context).directions, + color: Colors.grey, + ), + Texts( + widget.patientER_RC.transportationDetails.direction == 0 ? TranslationBase.of(context).toHospital : TranslationBase.of(context).fromHospital, + bold: true, + ), + SizedBox( + height: 8, + ), + Texts( + TranslationBase.of(context).pickupLocation, + color: Colors.grey, + ), + Texts( + '${widget.patientER_RC.transportationDetails.pickupLocationName}', + bold: true, + ), + SizedBox( + height: 8, + ), + Texts( + TranslationBase.of(context).dropoffLocation, + color: Colors.grey, + ), + Texts( + '${widget.patientER_RC.transportationDetails.dropoffLocationName}', + bold: true, + ), + SizedBox( + height: 8, + ), + Texts( + TranslationBase.of(context).selectAmbulate, + color: Colors.grey, + ), + Texts( + '${widget.patientER_RC.transportationDetails.ambulate}', + bold: true, + ), + SizedBox( + height: 8, + ), + Texts( + TranslationBase.of(context).notes, + color: Colors.grey, + ), + Texts( + '${widget.patientER_RC.transportationDetails.notes ?? '---'}', + bold: true, + ), + SizedBox( + height: 8, + ), ], ), ), - SizedBox(height: 20,), - Texts(TranslationBase.of(context).billAmount,textAlign: TextAlign.start,), - SizedBox(height: 5,), + SizedBox( + height: 20, + ), + Texts( + TranslationBase.of(context).billAmount, + textAlign: TextAlign.start, + ), + SizedBox( + height: 5, + ), Container( - height: 55, padding: EdgeInsets.all(10), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular(8) - ), + decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Texts(TranslationBase.of(context).patientShareTotal+':'), - Texts(TranslationBase.of(context).sar+' ${widget.patientER.patientERTransportationMethod.priceTotal}') - ], + children: [Texts(TranslationBase.of(context).patientShareTotal + ':'), Texts(TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.priceTotal}')], ), ), SizedBox(height: 130), - - ], ), ), @@ -99,15 +144,13 @@ class _SummaryState extends State { padding: EdgeInsets.all(15), width: double.maxFinite, height: 90, - child:SecondaryButton( + child: SecondaryButton( color: Colors.grey[800], textColor: Colors.white, label: TranslationBase.of(context).send, onTap: () async { - await widget.amRequestViewModel.insertERPressOrder(patientER: widget.patientER); - - } - ), + await widget.amRequestViewModel.insertERPressOrder(patientER: widget.patientER_RC); + }), ), ); }