find_us
Mohammad Aljammal 5 years ago
parent db79f299b6
commit 20f9f6f06c

@ -49,6 +49,13 @@ const GET_PATIENT_AppointmentHistory =
const GET_PATIENT_VITAL_SIGN =
'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign';
///Er Nearest
const GET_NEAREST_HOSPITAL=
'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime';
///Reports
const REPORTS = 'Services/Doctors.svc/REST/GetPatientMedicalReportStatusInfo';
const INSERT_REQUEST_FOR_MEDICAL_REPORT =

@ -3,7 +3,7 @@ class ProjectAvgERWaitingTime {
int projectID;
int avgTimeInMinutes;
String avgTimeInHHMM;
double distanceInKilometers;
int distanceInKilometers;
String latitude;
String longitude;
String phoneNumber;

@ -0,0 +1,39 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/model/er/projectavgerwaitingtime.dart';
import '../base_service.dart';
class ErService extends BaseService {
List<ProjectAvgERWaitingTime> projectAvgERWaitingTimeModelList = List();
Map<String, dynamic> body = Map();
String Latitude = "";
String Longitude = "";
String PhoneNumber = "";
Future getProjectAvgERWaitingTimeOrders({int id, int projectID}) async {
hasError = false;
if (id != null && projectID != null) {
body['ID'] = id;
body['ProjectID'] = projectID;
}
await baseAppClient.post(GET_NEAREST_HOSPITAL,
onSuccess: (dynamic response, int statusCode) {
projectAvgERWaitingTimeModelList.clear();
response['List_ProjectAvgERWaitingTime'].forEach((vital) {
projectAvgERWaitingTimeModelList
.add(ProjectAvgERWaitingTime.fromJson(vital));
});
projectAvgERWaitingTimeModelList.forEach((element) {
Latitude = '${element.latitude}';
Longitude = '${element.longitude}';
PhoneNumber = '${element.phoneNumber}';
});
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: body);
}
}

@ -0,0 +1,34 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/er/projectavgerwaitingtime.dart';
import 'package:diplomaticquarterapp/core/service/er/er_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart';
import '../../../locator.dart';
class NearHospitalViewModel extends BaseViewModel {
ErService _erService = locator<ErService>();
List<ProjectAvgERWaitingTime> get ProjectAvgERWaitingTimeModeList =>
_erService.projectAvgERWaitingTimeModelList;
getProjectAvgERWaitingTimeOrders({int id, int projectID}) async {
setState(ViewState.Busy);
if (id != null && projectID != null) {
await _erService.getProjectAvgERWaitingTimeOrders(id: id,projectID: projectID);
} else {
await _erService.getProjectAvgERWaitingTimeOrders();
}
if (_erService.hasError) {
error = _erService.error;
setState(ViewState.Error);
} else
setState(ViewState.Idle);
}
}

@ -5,6 +5,7 @@ import 'package:get_it/get_it.dart';
import 'core/service/appointment_rate_service.dart';
import 'core/service/dashboard_service.dart';
import 'core/service/er/er_service.dart';
import 'core/service/feedback/feedback_service.dart';
import 'core/service/hospital_service.dart';
import 'core/service/medical/labs_service.dart';
@ -14,6 +15,7 @@ import 'core/service/medical/prescriptions_service.dart';
import 'core/service/medical/radiology_service.dart';
import 'core/service/medical/vital_sign_service.dart';
import 'core/viewModels/appointment_rate_view_model.dart';
import 'core/viewModels/er/near_hospital_view_model.dart';
import 'core/viewModels/feedback/feedback_view_model.dart';
import 'core/service/medical/reports_service.dart';
import 'core/viewModels/hospital_view_model.dart';
@ -50,6 +52,7 @@ void setupLocator() {
locator.registerLazySingleton(() => DashboardService());
locator.registerLazySingleton(() => AppointmentRateService());
locator.registerLazySingleton(() => QrService());
locator.registerLazySingleton(() => ErService());
/// View Model
locator.registerFactory(() => HospitalViewModel());
@ -66,5 +69,6 @@ void setupLocator() {
locator.registerFactory(() => DashboardViewModel());
locator.registerFactory(() => AppointmentRateViewModel());
locator.registerFactory(() => QrViewModel());
locator.registerFactory(() => NearHospitalViewModel());
}

@ -1,147 +1,339 @@
import 'package:diplomaticquarterapp/core/viewModels/er/near_hospital_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/location_util.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import '../../uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/pages/ErService/widgets/card_common.dart';
import 'widgets/card_position.dart';
class NearestEr extends StatefulWidget {
final bool isAppbar;
const NearestEr({Key key, this.isAppbar}) : super(key: key);
@override
_NearestErState createState() => _NearestErState();
}
class NearestEr extends StatelessWidget {
class _NearestErState extends State<NearestEr> {
LocationUtils locationUtils;
@override
void initState() {
locationUtils =
new LocationUtils(isShowConfirmDialog: true, context: context);
WidgetsBinding.instance
.addPostFrameCallback((_) => locationUtils.getCurrentLocation());
static const String url = "assets/images/";
super.initState();
}
int appointmentNo;
int projectID;
NearestEr({this.appointmentNo, this.projectID});
@override
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: widget.isAppbar,
appBarTitle: TranslationBase.of(context).bookAppo,
body: Container(
margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),
child: ListView(
children: <Widget>[
Text(TranslationBase.of(context).searchBy,
style: TextStyle(
fontSize: 24.0,
letterSpacing: 1.0,
fontWeight: FontWeight.bold,
color: new Color(0xFF60686b))),
Container(
margin: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: CardPosition(
text: "Olaya Hospital",
image: 'assets/images/new-design/find_us_icon.png',
subText: TranslationBase.of(context).requestA,
type: 3,
),
flex: 0,
),
Expanded(
child: CardPosition(
image: 'assets/images/new-design/find_us_icon.png',
text: "Takhassusi Hospital",
subText: TranslationBase.of(context).locationa,
type: 5),
flex: 0,
)
],
),
Row(
mainAxisSize: MainAxisSize.max,
return BaseView<NearHospitalViewModel>(
onModelReady: appointmentNo != null && projectID != null
? (model) => model.getProjectAvgERWaitingTimeOrders(
id: appointmentNo, projectID: projectID)
: (model) => model.getProjectAvgERWaitingTimeOrders(),
builder: (_, mode, widget) => AppScaffold(
isShowAppBar: true,
appBarTitle: 'Nearest ER',
baseViewModel: mode,
body: mode.ProjectAvgERWaitingTimeModeList.length > 0
? Container(
child: ListView(
children: <Widget>[
Text(TranslationBase.of(context).searchBy,
style: TextStyle(
fontSize: 24.0,
letterSpacing: 1.0,
fontWeight: FontWeight.bold,
color: new Color(0xFF60686b))),
Container(
margin: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: CardPosition(
image: 'assets/images/new-design/find_us_icon.png',
text: "Arryan Hospital",
subText: TranslationBase.of(context).requestA,
type: 4,
),
flex: 0,
Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: CardPosition(
text: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].projectName,
image: 'assets/images/new-design/find_us_icon.png',
subText: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].distanceInKilometers,
type: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].iD,
),
flex: 0,
),
Expanded(
child: CardPosition(
// mode
// .vitalSignResModelList[
// mode.vitalSignResModelList.length - 1]
// .heightCm
// .toString()
text: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].projectName,
image: 'assets/images/new-design/find_us_icon.png',
subText: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].distanceInKilometers,
type: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].iD,
),
flex: 0,
)
],
),
Expanded(
child: CardPosition(
image: 'assets/images/new-design/find_us_icon.png',
text: "Suwaidi Hospital",
subText: TranslationBase.of(context).locationa,
type: 6),
flex: 0,
)
],
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: CardPosition(
image: 'assets/images/new-design/find_us_icon.png',
text: "Al Qassim Hospital",
subText: TranslationBase.of(context).requestA,
type: 7,
),
flex: 0,
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: CardPosition(
// mode
// .vitalSignResModelList[
// mode.vitalSignResModelList.length - 1]
// .heightCm
// .toString()
text: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].projectName,
image: 'assets/images/new-design/find_us_icon.png',
subText: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].distanceInKilometers,
type: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].iD,
),
flex: 0,
),
Expanded(
child: CardPosition(
// mode
// .vitalSignResModelList[
// mode.vitalSignResModelList.length - 1]
// .heightCm
// .toString()
text: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].projectName,
image: 'assets/images/new-design/find_us_icon.png',
subText: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].distanceInKilometers,
type: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].iD,
),
flex: 0,
)
],
),
Expanded(
child: CardPosition(
image: 'assets/images/new-design/find_us_icon.png',
text: "Khobar Hospital",
subText: TranslationBase.of(context).locationa,
type: 8),
flex: 0,
)
],
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: CardPosition(
image: 'assets/images/new-design/find_us_icon.png',
text: "Dubai Hospital",
subText: TranslationBase.of(context).requestA,
type: 1,
),
flex: 0,
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: CardPosition(
// mode
// .vitalSignResModelList[
// mode.vitalSignResModelList.length - 1]
// .heightCm
// .toString()
text: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].projectName,
image: 'assets/images/new-design/find_us_icon.png',
subText: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].distanceInKilometers,
type: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].iD,
),
flex: 0,
),
Expanded(
child: CardPosition(
// mode
// .vitalSignResModelList[
// mode.vitalSignResModelList.length - 1]
// .heightCm
// .toString()
text: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].projectName,
image: 'assets/images/new-design/find_us_icon.png',
subText: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].distanceInKilometers,
type: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].iD,
),
flex: 0,
)
],
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: CardPosition(
text: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].projectName,
image: 'assets/images/new-design/find_us_icon.png',
subText: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].distanceInKilometers.toString(),
type: mode.ProjectAvgERWaitingTimeModeList[mode.ProjectAvgERWaitingTimeModeList.length-1].iD.toString(),
),
flex: 0,
),
],
),
],
),
],
)
),
],
)
),
],
),
)
: Center(
child: Texts('No Data'),
),
),
);
}
}
//class NearestEr extends StatefulWidget {
// static const String url = "assets/images/";
// final bool isAppbar;
//
//
// const NearestEr({Key key, this.isAppbar}) : super(key: key);
// @override
// _NearestErState createState() => _NearestErState();
//}
//
//class _NearestErState extends State<NearestEr> {
// LocationUtils locationUtils;
// @override
// void initState() {
// locationUtils =
// new LocationUtils(isShowConfirmDialog: true, context: context);
// WidgetsBinding.instance
// .addPostFrameCallback((_) => locationUtils.getCurrentLocation());
//
// super.initState();
// }
// @override
// Widget build(BuildContext context) {
// return AppScaffold(
// isShowAppBar: widget.isAppbar,
// appBarTitle: TranslationBase.of(context).bookAppo,
// body: Container(
// margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),
// child: ListView(
//
// children: <Widget>[
// Text(TranslationBase.of(context).searchBy,
// style: TextStyle(
// fontSize: 24.0,
// letterSpacing: 1.0,
// fontWeight: FontWeight.bold,
// color: new Color(0xFF60686b))),
// Container(
// margin: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0),
//
// child: Column(
// mainAxisAlignment: MainAxisAlignment.center,
// children: <Widget>[
// Row(
// mainAxisSize: MainAxisSize.min,
// mainAxisAlignment: MainAxisAlignment.center,
// children: <Widget>[
// Expanded(
// child: CardPosition(
// text: "Olaya Hospital",
// image: 'assets/images/new-design/find_us_icon.png',
//
// subText: TranslationBase.of(context).requestA,
// type: 3,
// ),
// flex: 0,
//
// ),
// Expanded(
// child: CardPosition(
// image: 'assets/images/new-design/find_us_icon.png',
// text: "Takhassusi Hospital",
// subText: TranslationBase.of(context).locationa,
// type: 5),
// flex: 0,
//
// )
// ],
// ),
// Row(
// mainAxisSize: MainAxisSize.max,
// mainAxisAlignment: MainAxisAlignment.center,
// children: <Widget>[
// Expanded(
// child: CardPosition(
// image: 'assets/images/new-design/find_us_icon.png',
// text: "Arryan Hospital",
// subText: TranslationBase.of(context).requestA,
// type: 4,
// ),
// flex: 0,
// ),
// Expanded(
// child: CardPosition(
// image: 'assets/images/new-design/find_us_icon.png',
// text: "Suwaidi Hospital",
// subText: TranslationBase.of(context).locationa,
// type: 6),
// flex: 0,
// )
// ],
// ),
// Row(
// mainAxisSize: MainAxisSize.max,
// mainAxisAlignment: MainAxisAlignment.center,
// children: <Widget>[
// Expanded(
// child: CardPosition(
// image: 'assets/images/new-design/find_us_icon.png',
// text: "Al Qassim Hospital",
// subText: TranslationBase.of(context).requestA,
// type: 7,
// ),
// flex: 0,
// ),
// Expanded(
// child: CardPosition(
// image: 'assets/images/new-design/find_us_icon.png',
// text: "Khobar Hospital",
// subText: TranslationBase.of(context).locationa,
// type: 8),
// flex: 0,
//
// )
// ],
// ),
// Row(
// mainAxisSize: MainAxisSize.max,
// mainAxisAlignment: MainAxisAlignment.center,
// children: <Widget>[
// Expanded(
// child: CardPosition(
// image: 'assets/images/new-design/find_us_icon.png',
// text: "Dubai Hospital",
// subText: TranslationBase.of(context).requestA,
// type: 1,
//
// ),
// flex: 0,
// ),
//
// ],
// ),
// ],
// )
// ),
// ],
// ),
// ),
// );
// }
//}

@ -65,11 +65,16 @@ class CardCommonEr extends StatelessWidget {
else{
print("=========Nearest ER===========");
// Navigator.push(
// context,
//
// FadePage(
// // page: NearestEr(isAppbar: true,)));
// page: NearestEr()));
Navigator.push(
context,
FadePage(
page: NearestEr(isAppbar: true,)));
page: NearestEr()));
}

@ -1,7 +1,6 @@
//import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import '../NearestEr.dart';
@ -68,20 +67,13 @@ class CardPosition extends StatelessWidget {
else{
print("=========Nearest ER===========");
Navigator.push(
context,
FadePage(
page: NearestEr(isAppbar: true,)));
// Navigator.push(
// context,
// MaterialPageRoute(
// builder: (context) => NearestEr(isAppbar: true,)));
//
}
}
//NearestEr(isAppbar: true,)
// Navigator.push(
// context,
// MaterialPageRoute(
// builder: (context) => Search(
// type: type,
// )));
}
}

Loading…
Cancel
Save