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

 Conflicts:
	lib/screens/patients/register_patient/RegisterPatientPage.dart
merge-requests/878/head
hussam al-habibeh 4 years ago
commit 08df479b37

@ -372,12 +372,13 @@ const GET_ADMISSION_ORDERS =
///Patient Registration Services
const CHECK_PATIENT_FOR_REGISTRATION =
"Authentication.svc/REST/CheckPatientForRegisteration";
"Services/Authentication.svc/REST/CheckPatientForRegisteration";
const SEND_ACTIVATION_CODE_BY_OTP_NOT_TYPE =
"Authentication.svc/REST/SendActivationCodebyOTPNotificationType";
"Services/Authentication.svc/REST/SendActivationCodebyOTPNotificationType";
const CHECK_ACTIVATION_CODE_FOR_PATIENT =
"Authentication.svc/REST/CheckActivationCode";
const PATIENT_REGISTRATION = "Authentication.svc/REST/PatientRegistration";
"Services/Authentication.svc/REST/CheckActivationCode";
const PATIENT_REGISTRATION = "Services/Authentication.svc/REST/PatientRegistration";
const GET_PATIENT_INFO= "Services/NHIC.svc/REST/GetPatientInfo";
var selectedPatientType = 1;

@ -0,0 +1,60 @@
class GetPatientInfoRequestModel {
String patientIdentificationID;
String dOB;
int isHijri;
double versionID;
int channel;
int languageID;
String iPAdress;
String generalid;
int patientOutSA;
Null sessionID;
bool isDentalAllowedBackend;
int deviceTypeID;
GetPatientInfoRequestModel(
{this.patientIdentificationID,
this.dOB,
this.isHijri,
this.versionID,
this.channel,
this.languageID,
this.iPAdress,
this.generalid,
this.patientOutSA,
this.sessionID,
this.isDentalAllowedBackend,
this.deviceTypeID});
GetPatientInfoRequestModel.fromJson(Map<String, dynamic> json) {
patientIdentificationID = json['PatientIdentificationID'];
dOB = json['DOB'];
isHijri = json['IsHijri'];
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'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['PatientIdentificationID'] = this.patientIdentificationID;
data['DOB'] = this.dOB;
data['IsHijri'] = this.isHijri;
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;
return data;
}
}

@ -0,0 +1,374 @@
class GetPatientInfoResponseModel {
dynamic date;
int languageID;
int serviceName;
dynamic time;
dynamic androidLink;
dynamic authenticationTokenID;
dynamic data;
bool dataw;
int dietType;
dynamic errorCode;
dynamic errorEndUserMessage;
dynamic errorEndUserMessageN;
dynamic errorMessage;
int errorType;
int foodCategory;
dynamic iOSLink;
bool isAuthenticated;
int mealOrderStatus;
int mealType;
int messageStatus;
int numberOfResultRecords;
dynamic patientBlodType;
dynamic successMsg;
dynamic successMsgN;
dynamic vidaUpdatedResponse;
dynamic accessTokenObject;
int age;
dynamic clientIdentifierId;
int createdBy;
String dateOfBirth;
String firstNameAr;
String firstNameEn;
String gender;
dynamic genderAr;
dynamic genderEn;
String healthId;
String idNumber;
String idType;
bool isHijri;
int isInstertedOrUpdated;
int isNull;
int isPatientExistNHIC;
bool isRecordLockedByCurrentUser;
String lastNameAr;
String lastNameEn;
dynamic listActiveAccessToken;
String maritalStatus;
String maritalStatusCode;
String nationalDateOfBirth;
String nationality;
String nationalityCode;
String occupation;
dynamic pCDTransactionDataResultList;
dynamic pCDGetVidaPatientForManualVerificationList;
dynamic pCDNHICHMGPatientDetailsMatchCalulationList;
int pCDReturnValue;
String patientStatus;
String placeofBirth;
dynamic practitionerStatusCode;
dynamic practitionerStatusDescAr;
dynamic practitionerStatusDescEn;
int rowCount;
String secondNameAr;
String secondNameEn;
String thirdNameAr;
String thirdNameEn;
dynamic yakeenVidaPatientDataStatisticsByPatientIdList;
dynamic yakeenVidaPatientDataStatisticsList;
dynamic yakeenVidaPatientDataStatisticsPrefferedList;
dynamic accessToken;
int categoryCode;
dynamic categoryNameAr;
dynamic categoryNameEn;
int constraintCode;
dynamic constraintNameAr;
dynamic constraintNameEn;
dynamic content;
dynamic errorList;
dynamic licenseExpiryDate;
dynamic licenseIssuedDate;
dynamic licenseStatusCode;
dynamic licenseStatusDescAr;
dynamic licenseStatusDescEn;
dynamic organizations;
dynamic registrationNumber;
int specialtyCode;
dynamic specialtyNameAr;
dynamic specialtyNameEn;
GetPatientInfoResponseModel(
{this.date,
this.languageID,
this.serviceName,
this.time,
this.androidLink,
this.authenticationTokenID,
this.data,
this.dataw,
this.dietType,
this.errorCode,
this.errorEndUserMessage,
this.errorEndUserMessageN,
this.errorMessage,
this.errorType,
this.foodCategory,
this.iOSLink,
this.isAuthenticated,
this.mealOrderStatus,
this.mealType,
this.messageStatus,
this.numberOfResultRecords,
this.patientBlodType,
this.successMsg,
this.successMsgN,
this.vidaUpdatedResponse,
this.accessTokenObject,
this.age,
this.clientIdentifierId,
this.createdBy,
this.dateOfBirth,
this.firstNameAr,
this.firstNameEn,
this.gender,
this.genderAr,
this.genderEn,
this.healthId,
this.idNumber,
this.idType,
this.isHijri,
this.isInstertedOrUpdated,
this.isNull,
this.isPatientExistNHIC,
this.isRecordLockedByCurrentUser,
this.lastNameAr,
this.lastNameEn,
this.listActiveAccessToken,
this.maritalStatus,
this.maritalStatusCode,
this.nationalDateOfBirth,
this.nationality,
this.nationalityCode,
this.occupation,
this.pCDTransactionDataResultList,
this.pCDGetVidaPatientForManualVerificationList,
this.pCDNHICHMGPatientDetailsMatchCalulationList,
this.pCDReturnValue,
this.patientStatus,
this.placeofBirth,
this.practitionerStatusCode,
this.practitionerStatusDescAr,
this.practitionerStatusDescEn,
this.rowCount,
this.secondNameAr,
this.secondNameEn,
this.thirdNameAr,
this.thirdNameEn,
this.yakeenVidaPatientDataStatisticsByPatientIdList,
this.yakeenVidaPatientDataStatisticsList,
this.yakeenVidaPatientDataStatisticsPrefferedList,
this.accessToken,
this.categoryCode,
this.categoryNameAr,
this.categoryNameEn,
this.constraintCode,
this.constraintNameAr,
this.constraintNameEn,
this.content,
this.errorList,
this.licenseExpiryDate,
this.licenseIssuedDate,
this.licenseStatusCode,
this.licenseStatusDescAr,
this.licenseStatusDescEn,
this.organizations,
this.registrationNumber,
this.specialtyCode,
this.specialtyNameAr,
this.specialtyNameEn});
GetPatientInfoResponseModel.fromJson(Map<String, dynamic> json) {
date = json['Date'];
languageID = json['LanguageID'];
serviceName = json['ServiceName'];
time = json['Time'];
androidLink = json['AndroidLink'];
authenticationTokenID = json['AuthenticationTokenID'];
data = json['Data'];
dataw = json['Dataw'];
dietType = json['DietType'];
errorCode = json['ErrorCode'];
errorEndUserMessage = json['ErrorEndUserMessage'];
errorEndUserMessageN = json['ErrorEndUserMessageN'];
errorMessage = json['ErrorMessage'];
errorType = json['ErrorType'];
foodCategory = json['FoodCategory'];
iOSLink = json['IOSLink'];
isAuthenticated = json['IsAuthenticated'];
mealOrderStatus = json['MealOrderStatus'];
mealType = json['MealType'];
messageStatus = json['MessageStatus'];
numberOfResultRecords = json['NumberOfResultRecords'];
patientBlodType = json['PatientBlodType'];
successMsg = json['SuccessMsg'];
successMsgN = json['SuccessMsgN'];
vidaUpdatedResponse = json['VidaUpdatedResponse'];
accessTokenObject = json['AccessTokenObject'];
age = json['Age'];
clientIdentifierId = json['ClientIdentifierId'];
createdBy = json['CreatedBy'];
dateOfBirth = json['DateOfBirth'];
firstNameAr = json['FirstNameAr'];
firstNameEn = json['FirstNameEn'];
gender = json['Gender'];
genderAr = json['GenderAr'];
genderEn = json['GenderEn'];
healthId = json['HealthId'];
idNumber = json['IdNumber'];
idType = json['IdType'];
isHijri = json['IsHijri'];
isInstertedOrUpdated = json['IsInstertedOrUpdated'];
isNull = json['IsNull'];
isPatientExistNHIC = json['IsPatientExistNHIC'];
isRecordLockedByCurrentUser = json['IsRecordLockedByCurrentUser'];
lastNameAr = json['LastNameAr'];
lastNameEn = json['LastNameEn'];
listActiveAccessToken = json['List_ActiveAccessToken'];
maritalStatus = json['MaritalStatus'];
maritalStatusCode = json['MaritalStatusCode'];
nationalDateOfBirth = json['NationalDateOfBirth'];
nationality = json['Nationality'];
nationalityCode = json['NationalityCode'];
occupation = json['Occupation'];
pCDTransactionDataResultList = json['PCDTransactionDataResultList'];
pCDGetVidaPatientForManualVerificationList =
json['PCD_GetVidaPatientForManualVerificationList'];
pCDNHICHMGPatientDetailsMatchCalulationList =
json['PCD_NHIC_HMG_PatientDetailsMatchCalulationList'];
pCDReturnValue = json['PCD_ReturnValue'];
patientStatus = json['PatientStatus'];
placeofBirth = json['PlaceofBirth'];
practitionerStatusCode = json['PractitionerStatusCode'];
practitionerStatusDescAr = json['PractitionerStatusDescAr'];
practitionerStatusDescEn = json['PractitionerStatusDescEn'];
rowCount = json['RowCount'];
secondNameAr = json['SecondNameAr'];
secondNameEn = json['SecondNameEn'];
thirdNameAr = json['ThirdNameAr'];
thirdNameEn = json['ThirdNameEn'];
yakeenVidaPatientDataStatisticsByPatientIdList =
json['YakeenVidaPatientDataStatisticsByPatientIdList'];
yakeenVidaPatientDataStatisticsList =
json['YakeenVidaPatientDataStatisticsList'];
yakeenVidaPatientDataStatisticsPrefferedList =
json['YakeenVidaPatientDataStatisticsPrefferedList'];
accessToken = json['accessToken'];
categoryCode = json['categoryCode'];
categoryNameAr = json['categoryNameAr'];
categoryNameEn = json['categoryNameEn'];
constraintCode = json['constraintCode'];
constraintNameAr = json['constraintNameAr'];
constraintNameEn = json['constraintNameEn'];
content = json['content'];
errorList = json['errorList'];
licenseExpiryDate = json['licenseExpiryDate'];
licenseIssuedDate = json['licenseIssuedDate'];
licenseStatusCode = json['licenseStatusCode'];
licenseStatusDescAr = json['licenseStatusDescAr'];
licenseStatusDescEn = json['licenseStatusDescEn'];
organizations = json['organizations'];
registrationNumber = json['registrationNumber'];
specialtyCode = json['specialtyCode'];
specialtyNameAr = json['specialtyNameAr'];
specialtyNameEn = json['specialtyNameEn'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['Date'] = this.date;
data['LanguageID'] = this.languageID;
data['ServiceName'] = this.serviceName;
data['Time'] = this.time;
data['AndroidLink'] = this.androidLink;
data['AuthenticationTokenID'] = this.authenticationTokenID;
data['Data'] = this.data;
data['Dataw'] = this.dataw;
data['DietType'] = this.dietType;
data['ErrorCode'] = this.errorCode;
data['ErrorEndUserMessage'] = this.errorEndUserMessage;
data['ErrorEndUserMessageN'] = this.errorEndUserMessageN;
data['ErrorMessage'] = this.errorMessage;
data['ErrorType'] = this.errorType;
data['FoodCategory'] = this.foodCategory;
data['IOSLink'] = this.iOSLink;
data['IsAuthenticated'] = this.isAuthenticated;
data['MealOrderStatus'] = this.mealOrderStatus;
data['MealType'] = this.mealType;
data['MessageStatus'] = this.messageStatus;
data['NumberOfResultRecords'] = this.numberOfResultRecords;
data['PatientBlodType'] = this.patientBlodType;
data['SuccessMsg'] = this.successMsg;
data['SuccessMsgN'] = this.successMsgN;
data['VidaUpdatedResponse'] = this.vidaUpdatedResponse;
data['AccessTokenObject'] = this.accessTokenObject;
data['Age'] = this.age;
data['ClientIdentifierId'] = this.clientIdentifierId;
data['CreatedBy'] = this.createdBy;
data['DateOfBirth'] = this.dateOfBirth;
data['FirstNameAr'] = this.firstNameAr;
data['FirstNameEn'] = this.firstNameEn;
data['Gender'] = this.gender;
data['GenderAr'] = this.genderAr;
data['GenderEn'] = this.genderEn;
data['HealthId'] = this.healthId;
data['IdNumber'] = this.idNumber;
data['IdType'] = this.idType;
data['IsHijri'] = this.isHijri;
data['IsInstertedOrUpdated'] = this.isInstertedOrUpdated;
data['IsNull'] = this.isNull;
data['IsPatientExistNHIC'] = this.isPatientExistNHIC;
data['IsRecordLockedByCurrentUser'] = this.isRecordLockedByCurrentUser;
data['LastNameAr'] = this.lastNameAr;
data['LastNameEn'] = this.lastNameEn;
data['List_ActiveAccessToken'] = this.listActiveAccessToken;
data['MaritalStatus'] = this.maritalStatus;
data['MaritalStatusCode'] = this.maritalStatusCode;
data['NationalDateOfBirth'] = this.nationalDateOfBirth;
data['Nationality'] = this.nationality;
data['NationalityCode'] = this.nationalityCode;
data['Occupation'] = this.occupation;
data['PCDTransactionDataResultList'] = this.pCDTransactionDataResultList;
data['PCD_GetVidaPatientForManualVerificationList'] =
this.pCDGetVidaPatientForManualVerificationList;
data['PCD_NHIC_HMG_PatientDetailsMatchCalulationList'] =
this.pCDNHICHMGPatientDetailsMatchCalulationList;
data['PCD_ReturnValue'] = this.pCDReturnValue;
data['PatientStatus'] = this.patientStatus;
data['PlaceofBirth'] = this.placeofBirth;
data['PractitionerStatusCode'] = this.practitionerStatusCode;
data['PractitionerStatusDescAr'] = this.practitionerStatusDescAr;
data['PractitionerStatusDescEn'] = this.practitionerStatusDescEn;
data['RowCount'] = this.rowCount;
data['SecondNameAr'] = this.secondNameAr;
data['SecondNameEn'] = this.secondNameEn;
data['ThirdNameAr'] = this.thirdNameAr;
data['ThirdNameEn'] = this.thirdNameEn;
data['YakeenVidaPatientDataStatisticsByPatientIdList'] =
this.yakeenVidaPatientDataStatisticsByPatientIdList;
data['YakeenVidaPatientDataStatisticsList'] =
this.yakeenVidaPatientDataStatisticsList;
data['YakeenVidaPatientDataStatisticsPrefferedList'] =
this.yakeenVidaPatientDataStatisticsPrefferedList;
data['accessToken'] = this.accessToken;
data['categoryCode'] = this.categoryCode;
data['categoryNameAr'] = this.categoryNameAr;
data['categoryNameEn'] = this.categoryNameEn;
data['constraintCode'] = this.constraintCode;
data['constraintNameAr'] = this.constraintNameAr;
data['constraintNameEn'] = this.constraintNameEn;
data['content'] = this.content;
data['errorList'] = this.errorList;
data['licenseExpiryDate'] = this.licenseExpiryDate;
data['licenseIssuedDate'] = this.licenseIssuedDate;
data['licenseStatusCode'] = this.licenseStatusCode;
data['licenseStatusDescAr'] = this.licenseStatusDescAr;
data['licenseStatusDescEn'] = this.licenseStatusDescEn;
data['organizations'] = this.organizations;
data['registrationNumber'] = this.registrationNumber;
data['specialtyCode'] = this.specialtyCode;
data['specialtyNameAr'] = this.specialtyNameAr;
data['specialtyNameEn'] = this.specialtyNameEn;
return data;
}
}

@ -1,11 +1,15 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/CheckActivationCodeModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/CheckPatientForRegistrationModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/GetPatientInfoRequestModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/GetPatientInfoResponseModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/PatientRegistrationModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/SendActivationCodebyOTPNotificationTypeForRegistrationModel.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
class PatientRegistrationService extends BaseService {
GetPatientInfoResponseModel getPatientInfoResponseModel;
checkPatientForRegistration(
CheckPatientForRegistrationModel registrationModel) async {
hasError = false;
@ -17,6 +21,19 @@ class PatientRegistrationService extends BaseService {
}, body: registrationModel.toJson());
}
getPatientInfo(GetPatientInfoRequestModel getPatientInfoRequestMode) async {
hasError = false;
await baseAppClient.post(GET_PATIENT_INFO,
onSuccess: (dynamic response, int statusCode) {
getPatientInfoResponseModel =
GetPatientInfoResponseModel.fromJson(response);
print("ddd");
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: getPatientInfoRequestMode.toJson());
}
sendActivationCodeByOTPNotificationType(
{SendActivationCodeByOTPNotificationTypeForRegistrationModel
registrationModel,

@ -1,6 +1,8 @@
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/CheckActivationCodeModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/CheckPatientForRegistrationModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/GetPatientInfoRequestModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/GetPatientInfoResponseModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/PatientRegistrationModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/SendActivationCodebyOTPNotificationTypeForRegistrationModel.dart';
import 'package:doctor_app_flutter/core/service/PatientRegistrationService.dart';
@ -12,14 +14,33 @@ class PatientRegistrationViewModel extends BaseViewModel {
PatientRegistrationService _patientRegistrationService =
locator<PatientRegistrationService>();
GetPatientInfoResponseModel get getPatientInfoResponseModel =>_patientRegistrationService.getPatientInfoResponseModel;
CheckPatientForRegistrationModel checkPatientForRegistrationModel ;
Future checkPatientForRegistration(
CheckPatientForRegistrationModel registrationModel) async {
setState(ViewState.Busy);
checkPatientForRegistrationModel =registrationModel;
setState(ViewState.BusyLocal);
await _patientRegistrationService
.checkPatientForRegistration(registrationModel);
if (_patientRegistrationService.hasError) {
error = _patientRegistrationService.error;
setState(ViewState.Error);
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
Future getPatientInfo(
GetPatientInfoRequestModel getPatientInfoRequestModel) async {
setState(ViewState.BusyLocal);
await _patientRegistrationService.
getPatientInfo(getPatientInfoRequestModel);
if (_patientRegistrationService.hasError) {
error = _patientRegistrationService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}

@ -2,10 +2,12 @@ import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/PatientRegistrationModel.dart';
import 'package:doctor_app_flutter/core/model/note/CreateNoteModel.dart';
import 'package:doctor_app_flutter/core/model/note/note_model.dart';
import 'package:doctor_app_flutter/core/model/note/update_note_model.dart';
import 'package:doctor_app_flutter/core/provider/robot_provider.dart';
import 'package:doctor_app_flutter/core/viewModel/PatientRegistrationViewModel.dart';
import 'package:doctor_app_flutter/core/viewModel/operation_report_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
@ -36,15 +38,13 @@ import 'CustomEditableText.dart';
class RegisterConfirmationPatientPage extends StatefulWidget {
final OperationReportViewModel operationReportViewModel;
final PatiantInformtion patient;
final int visitType;
final bool isUpdate;
final PatientRegistrationViewModel model;
const RegisterConfirmationPatientPage(
{Key key,
this.operationReportViewModel,
this.patient,
this.visitType,
this.isUpdate})
this.patient, this.model})
: super(key: key);
@override
@ -54,11 +54,7 @@ class RegisterConfirmationPatientPage extends StatefulWidget {
class _RegisterConfirmationPatientPageState
extends State<RegisterConfirmationPatientPage> {
int selectedType;
bool isSubmitted = false;
stt.SpeechToText speech = stt.SpeechToText();
var reconizedWord;
var event = RobotProvider();
ProjectViewModel projectViewModel;
TextEditingController firstName = TextEditingController(text: "Elham");
TextEditingController middleName = TextEditingController(text: "Ali");
@ -66,14 +62,12 @@ class _RegisterConfirmationPatientPageState
TextEditingController emailAddressController =
TextEditingController(text: "Elham@Rababah.com");
setSelectedType(int val) {
setState(() {
selectedType = val;
});
}
@override
void initState() {
firstName = TextEditingController(text: widget.model.getPatientInfoResponseModel.firstNameEn);
middleName = TextEditingController(text: "");
lastName = TextEditingController(text: widget.model.getPatientInfoResponseModel.lastNameEn);
super.initState();
}
@ -308,6 +302,76 @@ class _RegisterConfirmationPatientPageState
),
),
),
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);
PatientRegistrationModel
patientRegistrationModel =
PatientRegistrationModel(
// patientIdentificationID:
// int.parse(_idController.text),
// patientMobileNumber:
// int.parse(_phoneController.text),
// zipCode: _phoneCode.text,
isHijri: 0,
isDentalAllowedBackend: false,
patientOutSA: 0,
generalid: GENERAL_ID,
// dOB:
// "${AppDateUtils.convertStringToDateFormat(_birthDate.toString(), "yyyy/MM/dd")}"
);
await widget.model.registrationPatient(
patientRegistrationModel);
if(widget.model.state == ViewState.ErrorLocal){
Helpers.showErrorToast(widget.model.error);
} else {
Navigator.of(context).pop();
}
GifLoaderDialogUtils.hideDialog(context);
},
),
),
),
],
),
),
);
}

@ -99,8 +99,8 @@ class _RegisterPatientPageState extends State<RegisterPatientPage>
},
scrollDirection: Axis.horizontal,
children: <Widget>[
RegisterSearchPatientPage(),
ActivationPage(),
RegisterSearchPatientPage(changePageViewIndex: changePageViewIndex,),
ActivationPage(model: model,),
RegisterConfirmationPatientPage(),
]),
),
@ -108,7 +108,7 @@ class _RegisterPatientPageState extends State<RegisterPatientPage>
],
),
)),
pagerButtons(model),
// pagerButtons(model),
],
),
),
@ -162,8 +162,6 @@ class _RegisterPatientPageState extends State<RegisterPatientPage>
);
default:
return Container(
// height: 100,
color: Colors.red,
padding: EdgeInsets.symmetric(vertical: 16, horizontal: 16),
child: Row(
children: [

@ -1,20 +1,30 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/CheckPatientForRegistrationModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/GetPatientInfoRequestModel.dart';
import 'package:doctor_app_flutter/core/model/PatientRegistration/PatientRegistrationModel.dart';
import 'package:doctor_app_flutter/core/viewModel/PatientRegistrationViewModel.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dialogs/dailog-list-select.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
import 'package:flutter/material.dart';
class RegisterSearchPatientPage extends StatefulWidget {
const RegisterSearchPatientPage({Key key}) : super(key: key);
final Function changePageViewIndex;
const RegisterSearchPatientPage({Key key, this.changePageViewIndex})
: super(key: key);
@override
_RegisterSearchPatientPageState createState() =>
@ -25,10 +35,12 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
String countryError;
dynamic _selectedCountry;
final _phoneController = TextEditingController();
TextEditingController _phoneController = TextEditingController();
TextEditingController _phoneCode = TextEditingController(text: "966");
String phoneError;
final _idController = TextEditingController();
TextEditingController _idController = TextEditingController();
String idError;
DateTime _birthDate;
@ -68,7 +80,7 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
validationError: countryError,
dropDownText: _selectedCountry != null
? _selectedCountry['nameEn']
: null,
: "Saudi Arabia",
enabled: false,
/*onClick: model.dietTypesList != null && model.dietTypesList.length > 0
? () {
@ -99,12 +111,31 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
SizedBox(
height: 10,
),
AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: "Phone Number",
inputType: TextInputType.phone,
controller: _phoneController,
validationError: phoneError,
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: "Phone Number",
inputType: TextInputType.phone,
controller: _phoneController,
validationError: phoneError,
),
),
),
],
),
SizedBox(
height: 10,
@ -131,7 +162,7 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
height: screenSize.height * 0.075,
hintText: "Birthdate",
dropDownText: _birthDate != null
? "${AppDateUtils.convertStringToDateFormat(_birthDate.toString(), "yyyy-MM-dd")}"
? "${AppDateUtils.convertStringToDateFormat(_birthDate.toString(), "yyyy/MM/dd")}"
: null,
enabled: false,
isTextFieldHasSuffix: true,
@ -161,6 +192,89 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
),
],
),
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")}"
);
await model.getPatientInfo(getPatientInfoRequestModel);
if (model.state == ViewState.ErrorLocal) {
Helpers.showErrorToast(model.error);
} else {
widget.changePageViewIndex(1);
}
GifLoaderDialogUtils.hideDialog(context);
},
),
),
),
],
),
),
),
);
}
@ -170,8 +284,8 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
final DateTime picked = await showDatePicker(
context: context,
initialDate: dateTime,
firstDate: DateTime.now(),
lastDate: DateTime(2040),
firstDate: DateTime(DateTime.now().year - 150),
lastDate: DateTime(DateTime.now().year + 150),
initialEntryMode: DatePickerEntryMode.calendar,
);
if (picked != null && picked != dateTime) {

Loading…
Cancel
Save