Merge branch 'development' of https://gitlab.com/Cloud_Solution/doctor_app_flutter into get_pending_orders

 Conflicts:
	lib/core/viewModel/PatientRegistrationViewModel.dart
	lib/screens/patients/register_patient/RegisterPatientPage.dart
merge-requests/878/head
hussam al-habibeh 4 years ago
commit 9eadc0f0b1

@ -1,5 +1,5 @@
class AllSpecialLabResultModel {
int actualDoctorRate;
dynamic actualDoctorRate;
dynamic admissionDate;
dynamic admissionNumber;
dynamic appointmentDate;

@ -14,6 +14,10 @@ class PatientRegistrationViewModel extends BaseViewModel {
PatientRegistrationService _patientRegistrationService =
locator<PatientRegistrationService>();
GetPatientInfoResponseModel get getPatientInfoResponseModel =>_patientRegistrationService.getPatientInfoResponseModel;
CheckPatientForRegistrationModel checkPatientForRegistrationModel ;
GetPatientInfoResponseModel get getPatientInfoResponseModel =>
_patientRegistrationService.getPatientInfoResponseModel;
@ -21,6 +25,8 @@ class PatientRegistrationViewModel extends BaseViewModel {
Future checkPatientForRegistration(
CheckPatientForRegistrationModel registrationModel) async {
checkPatientForRegistrationModel = registrationModel;
checkPatientForRegistrationModel =CheckPatientForRegistrationModel.fromJson(registrationModel.toJson());
setState(ViewState.BusyLocal);
await _patientRegistrationService
.checkPatientForRegistration(registrationModel);
@ -34,6 +40,104 @@ class PatientRegistrationViewModel extends BaseViewModel {
Future getPatientInfo(
GetPatientInfoRequestModel getPatientInfoRequestModel) async {
setState(ViewState.BusyLocal);
/// TODO Elham* return call service when it working
_patientRegistrationService.getPatientInfoResponseModel = GetPatientInfoResponseModel.fromJson({
"Date": null,
"LanguageID": 0,
"ServiceName": 0,
"Time": null,
"AndroidLink": null,
"AuthenticationTokenID": null,
"Data": null,
"Dataw": false,
"DietType": 0,
"ErrorCode": null,
"ErrorEndUserMessage": null,
"ErrorEndUserMessageN": null,
"ErrorMessage": null,
"ErrorType": 0,
"FoodCategory": 0,
"IOSLink": null,
"IsAuthenticated": false,
"MealOrderStatus": 0,
"MealType": 0,
"MessageStatus": 1,
"NumberOfResultRecords": 0,
"PatientBlodType": null,
"SuccessMsg": null,
"SuccessMsgN": null,
"VidaUpdatedResponse": null,
"AccessTokenObject": null,
"Age": 33,
"ClientIdentifierId": null,
"CreatedBy": 0,
"DateOfBirth": "07/31/1988",
"FirstNameAr": "سفيان",
"FirstNameEn": "SUFIAN",
"Gender": "M",
"GenderAr": null,
"GenderEn": null,
"HealthId": "30000018540264",
"IdNumber": "1062938285",
"IdType": "NationalId",
"IsHijri": false,
"IsInstertedOrUpdated": 0,
"IsNull": 0,
"IsPatientExistNHIC": 0,
"IsRecordLockedByCurrentUser": false,
"LastNameAr": "عثمان",
"LastNameEn": "OTHMAN",
"List_ActiveAccessToken": null,
"MaritalStatus": "غير معروف",
"MaritalStatusCode": "U",
"NationalDateOfBirth": "18/12/1408",
"Nationality": "السعودية",
"NationalityCode": "SAU",
"Occupation": "طالب",
"PCDTransactionDataResultList": null,
"PCD_GetVidaPatientForManualVerificationList": null,
"PCD_NHIC_HMG_PatientDetailsMatchCalulationList": null,
"PCD_ReturnValue": 0,
"PatientStatus": "-",
"PlaceofBirth": "فينا",
"PractitionerStatusCode": null,
"PractitionerStatusDescAr": null,
"PractitionerStatusDescEn": null,
"RowCount": 0,
"SecondNameAr": "عبدالهادي",
"SecondNameEn": "ABDULHADI",
"ThirdNameAr": "احمد",
"ThirdNameEn": "A",
"YakeenVidaPatientDataStatisticsByPatientIdList": null,
"YakeenVidaPatientDataStatisticsList": null,
"YakeenVidaPatientDataStatisticsPrefferedList": null,
"accessToken": null,
"categoryCode": 0,
"categoryNameAr": null,
"categoryNameEn": null,
"constraintCode": 0,
"constraintNameAr": null,
"constraintNameEn": null,
"content": null,
"errorList": null,
"licenseExpiryDate": null,
"licenseIssuedDate": null,
"licenseStatusCode": null,
"licenseStatusDescAr": null,
"licenseStatusDescEn": null,
"organizations": null,
"registrationNumber": null,
"specialtyCode": 0,
"specialtyNameAr": null,
"specialtyNameEn": null
});
// await _patientRegistrationService.
// getPatientInfo(getPatientInfoRequestModel);
// if (_patientRegistrationService.hasError) {
// error = _patientRegistrationService.error;
// setState(ViewState.ErrorLocal);
// } else
// setState(ViewState.Idle);
await _patientRegistrationService
.getPatientInfo(getPatientInfoRequestModel);
if (_patientRegistrationService.hasError) {

@ -3,6 +3,7 @@ import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/profile/lab_result/special_lab_result_details_page.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
@ -174,7 +175,9 @@ class _AllLabSpecialResultState extends State<AllLabSpecialResult> {
clinic: model
.allSpecialLabList[index].clinicDescription,
appointmentDate:
model.allSpecialLabList[index].orderDate,
AppDateUtils.getDateTimeFromServerFormat(
model.allSpecialLabList[index].createdOn,
),
orderNo: model.allSpecialLabList[index].orderNo,
isShowTime: false,
),

@ -56,11 +56,10 @@ class _RegisterConfirmationPatientPageState
extends State<RegisterConfirmationPatientPage> {
bool isSubmitted = false;
ProjectViewModel projectViewModel;
TextEditingController firstName = TextEditingController(text: "Elham");
TextEditingController middleName = TextEditingController(text: "Ali");
TextEditingController lastName = TextEditingController(text: "Rababah");
TextEditingController emailAddressController =
TextEditingController(text: "Elham@Rababah.com");
TextEditingController firstName;
TextEditingController middleName ;
TextEditingController lastName;
TextEditingController emailAddressController;
@override
@ -132,7 +131,7 @@ class _RegisterConfirmationPatientPageState
fontSize: 12,
color: Colors.black),
AppText(
"123456",
"${widget.model.getPatientInfoResponseModel.healthId}",
fontSize: 12,
color: Colors.grey[600],
),
@ -148,7 +147,8 @@ class _RegisterConfirmationPatientPageState
fontSize: 12,
color: Colors.black),
AppText(
"ss",
"${widget.model.getPatientInfoResponseModel.idNumber}",
fontSize: 12,
color: Colors.grey[600],
),
@ -176,7 +176,7 @@ class _RegisterConfirmationPatientPageState
fontSize: 12,
color: Colors.black),
AppText(
"Jordanian",
"${widget.model.getPatientInfoResponseModel.nationality}",
fontSize: 12,
color: Colors.grey[600],
),
@ -192,7 +192,8 @@ class _RegisterConfirmationPatientPageState
fontSize: 12,
color: Colors.black),
AppText(
"--",
"${widget.model.getPatientInfoResponseModel.occupation}",
fontSize: 12,
color: Colors.grey[600],
),
@ -220,7 +221,8 @@ class _RegisterConfirmationPatientPageState
fontSize: 12,
color: Colors.black),
AppText(
"075XXXXXX",
"${widget.model.checkPatientForRegistrationModel.patientMobileNumber}",
fontSize: 12,
color: Colors.grey[600],
),

@ -99,6 +99,9 @@ class _RegisterPatientPageState extends State<RegisterPatientPage>
},
scrollDirection: Axis.horizontal,
children: <Widget>[
RegisterSearchPatientPage(changePageViewIndex: changePageViewIndex,model: model),
RegisterConfirmationPatientPage(model: model,),
RegisterSearchPatientPage(
changePageViewIndex: changePageViewIndex,
),

@ -22,8 +22,10 @@ import 'package:flutter/material.dart';
class RegisterSearchPatientPage extends StatefulWidget {
final Function changePageViewIndex;
final PatientRegistrationViewModel model;
const RegisterSearchPatientPage({Key key, this.changePageViewIndex})
const RegisterSearchPatientPage({Key key, this.changePageViewIndex, this.model})
: super(key: key);
@override
@ -50,41 +52,40 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
Widget build(BuildContext context) {
final screenSize = MediaQuery.of(context).size;
return BaseView<PatientRegistrationViewModel>(
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: false,
body: Column(
children: [
Expanded(
child: Container(
width: double.infinity,
margin: EdgeInsets.all(16.0),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
"Please enter mobile number or Identification number",
fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 2.2,
fontWeight: FontWeight.w800,
),
SizedBox(
height: 10,
),
AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: "Country",
isTextFieldHasSuffix: true,
validationError: countryError,
dropDownText: _selectedCountry != null
? _selectedCountry['nameEn']
: "Saudi Arabia",
enabled: false,
/*onClick: model.dietTypesList != null && model.dietTypesList.length > 0
return AppScaffold(
baseViewModel: widget.model,
isShowAppBar: false,
body: Column(
children: [
Expanded(
child: Container(
width: double.infinity,
margin: EdgeInsets.all(16.0),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
"Please enter mobile number or Identification number",
fontFamily: 'Poppins',
fontSize: SizeConfig.textMultiplier * 2.2,
fontWeight: FontWeight.w800,
),
SizedBox(
height: 10,
),
AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: "Country",
isTextFieldHasSuffix: true,
validationError: countryError,
dropDownText: _selectedCountry != null
? _selectedCountry['nameEn']
: "Saudi Arabia",
enabled: false,
/*onClick: widget.model.dietTypesList != null && widget.model.dietTypesList.length > 0
? () {
openListDialogField('nameEn', 'id', model.dietTypesList, (selectedValue) {
openListDialogField('nameEn', 'id', widget.model.dietTypesList, (selectedValue) {
setState(() {
_selectedCountry = selectedValue;
});
@ -95,185 +96,184 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
await model
.getDietTypes(patient.patientId)
.then((_) => GifLoaderDialogUtils.hideDialog(context));
if (model.state == ViewState.Idle && model.dietTypesList.length > 0) {
openListDialogField('nameEn', 'id', model.dietTypesList, (selectedValue) {
if (widget.model.state == ViewState.Idle && widget.model.dietTypesList.length > 0) {
openListDialogField('nameEn', 'id', widget.model.dietTypesList, (selectedValue) {
setState(() {
_selectedCountry = selectedValue;
});
});
} else if (model.state == ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(model.error);
} else if (widget.model.state == ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(widget.model.error);
} else {
DrAppToastMsg.showErrorToast("Empty List");
}
},*/
),
SizedBox(
height: 10,
),
Row(
children: [
Container(
width: MediaQuery.of(context).size.width * 0.3,
),
SizedBox(
height: 10,
),
Row(
children: [
Container(
width: MediaQuery.of(context).size.width * 0.3,
child: AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: "Code",
inputType: TextInputType.phone,
controller: _phoneCode,
validationError: phoneError,
),
),
Expanded(
child: Container(
// width: MediaQuery.of(context).size.width*0.7,
child: AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: "Code",
hintText: "Phone Number",
inputType: TextInputType.phone,
controller: _phoneCode,
controller: _phoneController,
validationError: phoneError,
),
),
Expanded(
child: Container(
// width: MediaQuery.of(context).size.width*0.7,
child: AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: "Phone Number",
inputType: TextInputType.phone,
controller: _phoneController,
validationError: phoneError,
),
),
),
],
),
SizedBox(
height: 10,
),
AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: "ID Number",
inputType: TextInputType.phone,
controller: _idController,
validationError: idError,
),
SizedBox(
height: 12,
),
AppText(
"Calender",
fontSize: SizeConfig.textMultiplier * 1.8,
fontWeight: FontWeight.w800,
),
SizedBox(
height: 10,
),
AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: "Birthdate",
dropDownText: _birthDate != null
? "${AppDateUtils.convertStringToDateFormat(_birthDate.toString(), "yyyy/MM/dd")}"
: null,
enabled: false,
isTextFieldHasSuffix: true,
validationError: birthdateError,
suffixIcon: IconButton(
icon: Icon(
Icons.calendar_today,
color: Colors.black,
),
onPressed: null,
),
onClick: () {
if (_birthDate == null) {
_birthDate = DateTime.now();
}
_selectDate(context, _birthDate, (picked) {
setState(() {
_birthDate = picked;
});
});
},
],
),
SizedBox(
height: 10,
),
AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: "ID Number",
inputType: TextInputType.phone,
controller: _idController,
validationError: idError,
),
SizedBox(
height: 12,
),
AppText(
"Calender",
fontSize: SizeConfig.textMultiplier * 1.8,
fontWeight: FontWeight.w800,
),
SizedBox(
height: 10,
),
AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: "Birthdate",
dropDownText: _birthDate != null
? "${AppDateUtils.convertStringToDateFormat(_birthDate.toString(), "yyyy/MM/dd")}"
: null,
enabled: false,
isTextFieldHasSuffix: true,
validationError: birthdateError,
suffixIcon: IconButton(
icon: Icon(
Icons.calendar_today,
color: Colors.black,
),
onPressed: null,
),
],
),
onClick: () {
if (_birthDate == null) {
_birthDate = DateTime.now();
}
_selectDate(context, _birthDate, (picked) {
setState(() {
_birthDate = picked;
});
});
},
),
],
),
),
),
],
),
bottomSheet: Container(
height: 60,
margin: EdgeInsets.symmetric(vertical: 16, horizontal: 16),
child: Row(
children: [
Expanded(
child: Container(
child: AppButton(
title: TranslationBase.of(context).cancel,
hasBorder: true,
vPadding: 12,
hPadding: 8,
borderColor: Color(0xFFeaeaea),
color: Color(0xFFeaeaea),
fontColor: Colors.black,
fontSize: 2.2,
onPressed: () {
Navigator.of(context).pop();
},
),
),
],
),
bottomSheet: Container(
height: 60,
margin: EdgeInsets.symmetric(vertical: 16, horizontal: 16),
child: Row(
children: [
Expanded(
child: Container(
child: AppButton(
title: TranslationBase.of(context).cancel,
hasBorder: true,
vPadding: 12,
hPadding: 8,
borderColor: Color(0xFFeaeaea),
color: Color(0xFFeaeaea),
fontColor: Colors.black,
fontSize: 2.2,
onPressed: () {
Navigator.of(context).pop();
},
),
),
SizedBox(
width: 8,
),
Expanded(
child: Container(
child: AppButton(
title: TranslationBase.of(context).next,
hasBorder: true,
vPadding: 12,
hPadding: 8,
borderColor: Color(0xFFB8382B),
color: Color(0xFFB8382B),
fontColor: Colors.white,
fontSize: 2.0,
onPressed: () async {
GifLoaderDialogUtils.showMyDialog(context);
CheckPatientForRegistrationModel
checkPatientForRegistrationModel =
CheckPatientForRegistrationModel(
patientIdentificationID:
int.parse(_idController.text),
patientMobileNumber:
int.parse(_phoneController.text),
zipCode: _phoneCode.text,
isHijri: 0,
patientID: 0,
isRegister: false,
isDentalAllowedBackend: false,
patientOutSA: 0,
generalid: GENERAL_ID,
dOB:
"${AppDateUtils.convertStringToDateFormat(_birthDate.toString(), "yyyy/MM/dd")}");
await model.checkPatientForRegistration(
checkPatientForRegistrationModel);
GetPatientInfoRequestModel getPatientInfoRequestModel =
GetPatientInfoRequestModel(
//TODO Elham* this return the static to dynamic
patientIdentificationID:"1062938285", //_idController.text,
isHijri: 0,
isDentalAllowedBackend: false,
patientOutSA: 0,
generalid: GENERAL_ID,
sessionID: null,
dOB:"31/07/1988",//"${AppDateUtils.convertStringToDateFormat(_birthDate.toString(), "dd/MM/yyyy")}"
),
SizedBox(
width: 8,
),
Expanded(
child: Container(
child: AppButton(
title: TranslationBase.of(context).next,
hasBorder: true,
vPadding: 12,
hPadding: 8,
borderColor: Color(0xFFB8382B),
color: Color(0xFFB8382B),
fontColor: Colors.white,
fontSize: 2.0,
onPressed: () async {
GifLoaderDialogUtils.showMyDialog(context);
CheckPatientForRegistrationModel
checkPatientForRegistrationModel =
CheckPatientForRegistrationModel(
patientIdentificationID:
int.parse(_idController.text),
patientMobileNumber:
int.parse(_phoneController.text),
zipCode: _phoneCode.text,
isHijri: 0,
patientID: 0,
isRegister: false,
isDentalAllowedBackend: false,
patientOutSA: 0,
generalid: GENERAL_ID,
dOB:
"${AppDateUtils.convertStringToDateFormat(_birthDate.toString(), "yyyy/MM/dd")}");
await widget.model.checkPatientForRegistration(
checkPatientForRegistrationModel);
GetPatientInfoRequestModel getPatientInfoRequestModel =
GetPatientInfoRequestModel(
//TODO Elham* this return the static to dynamic
patientIdentificationID:"1062938285", //_idController.text,
isHijri: 0,
isDentalAllowedBackend: false,
patientOutSA: 0,
generalid: GENERAL_ID,
sessionID: null,
dOB:"31/07/1988",//"${AppDateUtils.convertStringToDateFormat(_birthDate.toString(), "dd/MM/yyyy")}"
);
await model.getPatientInfo(getPatientInfoRequestModel);
if (model.state == ViewState.ErrorLocal) {
Helpers.showErrorToast(model.error);
} else {
widget.changePageViewIndex(1);
}
);
await widget.model.getPatientInfo(getPatientInfoRequestModel);
if (widget.model.state == ViewState.ErrorLocal) {
Helpers.showErrorToast(widget.model.error);
} else {
widget.changePageViewIndex(1);
}
GifLoaderDialogUtils.hideDialog(context);
},
),
GifLoaderDialogUtils.hideDialog(context);
},
),
),
],
),
),
],
),
),
);

@ -692,7 +692,7 @@ packages:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0-nullsafety.3"
version: "1.3.0-nullsafety.4"
mime:
dependency: transitive
description:
@ -1026,7 +1026,7 @@ packages:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.10.0-nullsafety.1"
version: "1.10.0-nullsafety.2"
sticky_headers:
dependency: "direct main"
description:
@ -1231,5 +1231,5 @@ packages:
source: hosted
version: "2.2.1"
sdks:
dart: ">=2.10.2 <2.11.0"
dart: ">=2.10.2 <=2.11.0-213.1.beta"
flutter: ">=1.22.2 <2.0.0"

Loading…
Cancel
Save