Merge branch 'Er_signin' into 'development'
Er signin See merge request Cloud_Solution/doctor_app_flutter!999development
commit
bc7f3e9f35
@ -0,0 +1,25 @@
|
||||
class DoctorErSignAssessmentReqModel {
|
||||
String setupID;
|
||||
int signInType;
|
||||
int loginDoctorID;
|
||||
int patientID;
|
||||
|
||||
DoctorErSignAssessmentReqModel(
|
||||
{this.setupID, this.signInType, this.loginDoctorID, this.patientID});
|
||||
|
||||
DoctorErSignAssessmentReqModel.fromJson(Map<String, dynamic> json) {
|
||||
setupID = json['SetupID'];
|
||||
signInType = json['SignInType'];
|
||||
loginDoctorID = json['LoginDoctorID'];
|
||||
patientID = json['PatientID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['SetupID'] = this.setupID;
|
||||
data['SignInType'] = this.signInType;
|
||||
data['LoginDoctorID'] = this.loginDoctorID;
|
||||
data['PatientID'] = this.patientID;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
import 'package:doctor_app_flutter/config/config.dart';
|
||||
import 'package:doctor_app_flutter/core/model/ER_sign_in/doctor_ER_sign_assessment_req_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/Prescriptions.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/get_medication_for_inpatient_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/get_medication_for_inpatient_request_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/perscription_pharmacy.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/post_prescrition_req_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_entity_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_in_patient.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_report.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_report_enh.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_req_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/prescriptions_order.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/request_get_list_pharmacy_for_prescriptions.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/request_prescription_report.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/request_prescription_report_enh.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/Allergy/get_allergies_res_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/Assessment/get_assessment_res_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/calculate_box_request_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/search_drug/get_medication_response_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/search_drug/item_by_medicine_request_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/search_drug/search_drug_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/search_drug/search_drug_request_model.dart';
|
||||
import 'package:doctor_app_flutter/core/service/base/lookup-service.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/Assessment/get_assessment_req_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/patient/vital_sign/patient-vital-sign-data.dart';
|
||||
import 'package:doctor_app_flutter/utils/date-utils.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
|
||||
class ERSignInService extends LookupService {
|
||||
|
||||
|
||||
Future signInERPatient({DoctorErSignAssessmentReqModel doctorErSignAssessmentReqModel}) async {
|
||||
|
||||
|
||||
hasError = false;
|
||||
|
||||
await baseAppClient.post(DOCTOR_ER_SIGN_ASSESSMENT,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: doctorErSignAssessmentReqModel.toJson());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
import 'package:doctor_app_flutter/core/enum/filter_type.dart';
|
||||
import 'package:doctor_app_flutter/core/enum/view_state.dart';
|
||||
import 'package:doctor_app_flutter/core/model/ER_sign_in/doctor_ER_sign_assessment_req_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/Prescriptions.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/get_medication_for_inpatient_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/perscription_pharmacy.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/post_prescrition_req_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_entity_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_report.dart';
|
||||
import 'package:doctor_app_flutter/core/model/Prescriptions/prescription_report_enh.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/Allergy/get_allergies_res_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/SOAP/Assessment/get_assessment_res_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
|
||||
import 'package:doctor_app_flutter/core/model/patient/vital_sign/patient-vital-sign-data.dart';
|
||||
import 'package:doctor_app_flutter/core/service/patient_medical_file/ER_signin/ER_signin_service.dart';
|
||||
import 'package:doctor_app_flutter/core/service/patient_medical_file/prescription/prescription_service.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart';
|
||||
import 'package:doctor_app_flutter/locator.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
|
||||
class ERSignInViewModel extends BaseViewModel {
|
||||
bool hasError = false;
|
||||
|
||||
ERSignInService _ERSignInService = locator<ERSignInService>();
|
||||
|
||||
Future signInERPatient({int patientId, int signInType}) async {
|
||||
hasError = false;
|
||||
await getDoctorProfile();
|
||||
DoctorErSignAssessmentReqModel doctorErSignAssessmentReqModel = new DoctorErSignAssessmentReqModel(setupID:"010266", signInType:signInType, loginDoctorID:doctorProfile.doctorID, patientID: patientId );
|
||||
setState(ViewState.BusyLocal);
|
||||
await _ERSignInService.signInERPatient(doctorErSignAssessmentReqModel: doctorErSignAssessmentReqModel);
|
||||
if (_ERSignInService.hasError) {
|
||||
error = _ERSignInService.error;
|
||||
setState(ViewState.ErrorLocal);
|
||||
} else
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,227 @@
|
||||
import 'package:barcode_scan2/barcode_scan2.dart';
|
||||
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||
import 'package:doctor_app_flutter/core/enum/view_state.dart';
|
||||
import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
|
||||
import 'package:doctor_app_flutter/core/service/AnalyticsService.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/ER_sign_in/ER_sign_in_view_model.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/scan_qr_view_model.dart';
|
||||
import 'package:doctor_app_flutter/locator.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/patient_search/patient_search_header.dart';
|
||||
import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart';
|
||||
import 'package:doctor_app_flutter/utils/utils.dart';
|
||||
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.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/divider_with_spaces_around.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../routes.dart';
|
||||
import '../base/base_view.dart';
|
||||
|
||||
Utils helpers = Utils();
|
||||
|
||||
class ErSignInScreen extends StatefulWidget {
|
||||
@override
|
||||
_ErSignInScreenState createState() => _ErSignInScreenState();
|
||||
}
|
||||
|
||||
class _ErSignInScreenState extends State<ErSignInScreen> {
|
||||
ProjectViewModel projectViewModel;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
projectViewModel = Provider.of(context);
|
||||
|
||||
return BaseView<ERSignInViewModel>(
|
||||
builder: (_, model, w) => AppScaffold(
|
||||
baseViewModel: model,
|
||||
isShowAppBar: true,
|
||||
appBar: PatientSearchHeader(title: "ER Sign In",)
|
||||
,
|
||||
body: Center(
|
||||
child: Container(
|
||||
margin: EdgeInsets.only(top: SizeConfig.realScreenHeight / 7),
|
||||
child: FractionallySizedBox(
|
||||
widthFactor: 0.9,
|
||||
child: ListView(
|
||||
children: [
|
||||
AppText(
|
||||
TranslationBase.of(context).startScanning,
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.bold,
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
SizedBox(
|
||||
height: 7,
|
||||
),
|
||||
AppText(TranslationBase.of(context).scanERQrCode,
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.w400,
|
||||
textAlign: TextAlign.center),
|
||||
SizedBox(
|
||||
height: 15,
|
||||
),
|
||||
Container(
|
||||
height: 150,
|
||||
child: Image.asset('assets/images/qr_code.png'),
|
||||
),
|
||||
SizedBox(
|
||||
height: 35,
|
||||
),
|
||||
AppButton(
|
||||
title: TranslationBase.of(context).scanQr,
|
||||
onPressed: () async {
|
||||
await locator<AnalyticsService>().logEvent(
|
||||
eventCategory: "ErSigninScreen",
|
||||
eventAction: "Scan QR",
|
||||
);
|
||||
_scanQrAndGetPatient(context, model);
|
||||
},
|
||||
icon: Image.asset('assets/images/qr_code_white.png'),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
_scanQrAndGetPatient(BuildContext context, ERSignInViewModel model) async {
|
||||
var result = (await BarcodeScanner.scan()).rawContent;
|
||||
if (result != "") {
|
||||
try{
|
||||
List<String> listOfParams = result.split(',');
|
||||
int patientID = 0;
|
||||
if (listOfParams[0].length != 0)
|
||||
patientID = int.parse(listOfParams[0]);
|
||||
showMyDialog(context:context, firstAction: (){
|
||||
signInERPatient(context: context, model: model, patientId: patientID, signInType: 1);
|
||||
} , secondAction: (){
|
||||
signInERPatient(context: context, model: model, patientId: patientID, signInType: 2);
|
||||
|
||||
} );
|
||||
}catch(e){
|
||||
Utils.showErrorToast("Please Enter Valid Code");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
signInERPatient ({BuildContext context, ERSignInViewModel model, patientId, signInType}) async {
|
||||
GifLoaderDialogUtils.showMyDialog(context);
|
||||
await model.signInERPatient(patientId:patientId, signInType: signInType );
|
||||
if(model.state == ViewState.ErrorLocal) {
|
||||
Utils.showErrorToast(model.error);
|
||||
} else {
|
||||
/// TODO Elham* Create this in Utils
|
||||
DrAppToastMsg.showSuccesToast("Add successfully");
|
||||
}
|
||||
GifLoaderDialogUtils.hideDialog(context);
|
||||
Navigator.of(context).pop();
|
||||
|
||||
}
|
||||
|
||||
/// TODO Elham* Make this as custom Dialog
|
||||
showMyDialog({BuildContext context, Function firstAction,Function secondAction, }) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (ctx) => Center(
|
||||
child: Container(
|
||||
width: MediaQuery.of(context).size.width * 0.8,
|
||||
height: 250,
|
||||
child: AppScaffold(
|
||||
isShowAppBar: false,
|
||||
body: Container(
|
||||
color: Colors.white,
|
||||
child: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
// SizedBox(height: 20,),
|
||||
SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
AppText(
|
||||
"Select option",
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Colors.black,
|
||||
fontSize: 16,
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
DividerWithSpacesAround(),
|
||||
SizedBox(
|
||||
height: 12,
|
||||
),
|
||||
|
||||
Container(
|
||||
padding: EdgeInsets.all(20),
|
||||
color: Colors.white,
|
||||
child: AppText(
|
||||
projectViewModel.isArabic
|
||||
? "الرجاء اختيار الإجراء الذي تريد القيام به"
|
||||
: 'Please choose the action you want to do ',
|
||||
fontSize: 15,
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
|
||||
SizedBox(
|
||||
height: 8,
|
||||
),
|
||||
DividerWithSpacesAround(),
|
||||
FractionallySizedBox(
|
||||
widthFactor: 0.75,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
FlatButton(
|
||||
child: AppText(
|
||||
"Sing In",
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Colors.black,
|
||||
fontSize: 16,
|
||||
), //Text("Cancel"),
|
||||
onPressed: () async {
|
||||
await firstAction();
|
||||
|
||||
|
||||
}),
|
||||
FlatButton(
|
||||
child: AppText(
|
||||
"Sing Out",
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Colors.black,
|
||||
fontSize: 16,
|
||||
), //Text("Confirm", ),
|
||||
onPressed: () async {
|
||||
await secondAction();
|
||||
})
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue