add doctor profile

merge-requests/606/head
Elham Rababah 5 years ago
parent 3e2323fbc0
commit 05a3ca7300

@ -559,7 +559,7 @@ class _HomeScreenState extends State<HomeScreen> {
isSearch: false, isSearch: false,
isInpatient: false, isInpatient: false,
patientSearchRequestModel: patientSearchRequestModel:
PatientSearchRequestModel(from: date, to: date), PatientSearchRequestModel(from: date, to: date,doctorID: authProvider.doctorProfile.doctorID),
selectedPatientType: selectedPatientType:
PatientType.OutPatient, PatientType.OutPatient,
isSearchWithKeyInfo: false, isSearchWithKeyInfo: false,

@ -1,6 +1,7 @@
import 'package:doctor_app_flutter/core/enum/patient_type.dart'; import 'package:doctor_app_flutter/core/enum/patient_type.dart';
import 'package:doctor_app_flutter/core/model/PatientSearchRequestModel.dart'; import 'package:doctor_app_flutter/core/model/PatientSearchRequestModel.dart';
import 'package:doctor_app_flutter/core/viewModel/PatientSearchViewModel.dart'; import 'package:doctor_app_flutter/core/viewModel/PatientSearchViewModel.dart';
import 'package:doctor_app_flutter/core/viewModel/auth_view_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/patient_search/patients_screen_new.dart'; import 'package:doctor_app_flutter/screens/patients/patient_search/patients_screen_new.dart';
import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart';
@ -12,6 +13,7 @@ import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart'; import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
class PatientSearchScreenNew extends StatefulWidget { class PatientSearchScreenNew extends StatefulWidget {
@override @override
@ -26,9 +28,11 @@ class _PatientSearchScreenNewState extends State<PatientSearchScreenNew> {
TextEditingController middleNameInfoController = TextEditingController(); TextEditingController middleNameInfoController = TextEditingController();
TextEditingController lastNameFileInfoController = TextEditingController(); TextEditingController lastNameFileInfoController = TextEditingController();
PatientType selectedPatientType = PatientType.inPatient; PatientType selectedPatientType = PatientType.inPatient;
AuthViewModel authProvider;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
authProvider =Provider.of(context);
return BaseView<PatientSearchViewModel>( return BaseView<PatientSearchViewModel>(
onModelReady: (model) async {}, onModelReady: (model) async {},
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
@ -248,7 +252,7 @@ class _PatientSearchScreenNewState extends State<PatientSearchScreenNew> {
isFormSubmitted = true; isFormSubmitted = true;
}); });
PatientSearchRequestModel patientSearchRequestModel = PatientSearchRequestModel patientSearchRequestModel =
PatientSearchRequestModel(); PatientSearchRequestModel(doctorID: authProvider.doctorProfile.doctorID);
if (showOther) { if (showOther) {
patientSearchRequestModel.firstName = firstNameInfoController.text.trim().isEmpty?"0":firstNameInfoController.text.trim(); patientSearchRequestModel.firstName = firstNameInfoController.text.trim().isEmpty?"0":firstNameInfoController.text.trim();
patientSearchRequestModel.middleName = middleNameInfoController.text.trim().isEmpty?"0":middleNameInfoController.text.trim(); patientSearchRequestModel.middleName = middleNameInfoController.text.trim().isEmpty?"0":middleNameInfoController.text.trim();

@ -100,187 +100,194 @@ class _PatientsScreenNewState extends State<PatientsScreenNew> {
title: "Search for ${widget.searchKey}", title: "Search for ${widget.searchKey}",
), ),
baseViewModel: model, baseViewModel: model,
body: Container( body: Column(
color: Colors.grey[200], children: [
child: ListView( if(!widget.isInpatient && !widget.isSearch)
scrollDirection: Axis.vertical,
children: <Widget>[
Container( Container(
child: Column( // color: Colors.red,
children: <Widget>[ height: screenSize.height * 0.070,
if(!widget.isInpatient && !widget.isSearch) decoration: TextFieldsUtils
Container( .containerBorderDecoration(
// color: Colors.red, Color(0Xffffffff),
height: screenSize.height * 0.070, Color(0xFFCCCCCC),
decoration: TextFieldsUtils borderRadius: 4,
.containerBorderDecoration( borderWidth: 0),
Color(0Xffffffff), child: Row(
Color(0xFFCCCCCC), mainAxisSize: MainAxisSize.max,
borderRadius: 4, crossAxisAlignment: CrossAxisAlignment.center,
borderWidth: 0), children: _locations.map((item) {
child: Row( bool _isActive = _locations[_activeLocation] == item
mainAxisSize: MainAxisSize.max, ? true
crossAxisAlignment: CrossAxisAlignment.center, : false;
children: _locations.map((item) {
bool _isActive = _locations[_activeLocation] == item
? true
: false;
return Expanded( return Expanded(
child: InkWell( child: InkWell(
onTap: () async { onTap: () async {
setState(() { setState(() {
_activeLocation = _locations.indexOf(item); _activeLocation = _locations.indexOf(item);
}); });
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
await model.getPatientBasedOnDate(item: item, await model.getPatientBasedOnDate(item: item,
selectedPatientType: widget.selectedPatientType, selectedPatientType: widget.selectedPatientType,
patientSearchRequestModel: widget patientSearchRequestModel: widget
.patientSearchRequestModel, .patientSearchRequestModel,
isSearchWithKeyInfo: widget.isSearchWithKeyInfo); isSearchWithKeyInfo: widget.isSearchWithKeyInfo);
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
}, },
child: Center( child: Center(
child: Container( child: Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
decoration: TextFieldsUtils.containerBorderDecoration( decoration: TextFieldsUtils.containerBorderDecoration(
_isActive _isActive
? Color(0xFFD02127 /*B8382B*/) ? Color(0xFFD02127 /*B8382B*/)
: Color(0xFFEAEAEA), : Color(0xFFEAEAEA),
_isActive ? Color(0xFFD02127) : Color(0xFFEAEAEA), _isActive ? Color(0xFFD02127) : Color(0xFFEAEAEA),
borderRadius: 4, borderRadius: 4,
borderWidth: 0), borderWidth: 0),
child: Center( child: Center(
child: AppText( child: AppText(
item, item,
fontSize: SizeConfig.textMultiplier * 1.8, fontSize: SizeConfig.textMultiplier * 1.8,
color: _isActive ? Colors.white : Color(0xFF2B353E), color: _isActive ? Colors.white : Color(0xFF2B353E),
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
),
),
),
),
), ),
); ),
}).toList(), ),
), ),
), ),
);
}).toList(),
),
),
SizedBox(height: 18.5), SizedBox(height: 18.5),
Container( Container(
width: SizeConfig.screenWidth * 0.9, width: SizeConfig.screenWidth * 0.9,
height: 75, height: 75,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(6.0)), Radius.circular(6.0)),
border: Border.all( border: Border.all(
width: 1.0, width: 1.0,
color: HexColor("#CCCCCC"), color: HexColor("#CCCCCC"),
),
color: Colors.white),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(
left: 10, top: 10),
child: AppText(
TranslationBase.of(
context)
.searchPatientName,
fontSize: 13,
)),
AppTextFormField(
// focusNode: focusProject,
controller: _controller,
borderColor: Colors.white,
prefix: IconButton(
icon: Icon(
DoctorApp.filter_1,
color: Colors.black,
),
iconSize: 20,
padding:
EdgeInsets.only(
bottom: 30),
),
onChanged: (String str) {
model.searchData(str);
}),
])),
SizedBox(
height: 10.0,
),
SizedBox(
height: 10.0,
), ),
color: Colors.white),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(
left: 10, top: 10),
child: AppText(
TranslationBase.of(
context)
.searchPatientName,
fontSize: 13,
)),
AppTextFormField(
// focusNode: focusProject,
controller: _controller,
borderColor: Colors.white,
prefix: IconButton(
icon: Icon(
DoctorApp.filter_1,
color: Colors.black,
),
iconSize: 20,
padding:
EdgeInsets.only(
bottom: 30),
),
onChanged: (String str) {
model.searchData(str);
}),
])),
SizedBox(
height: 10.0,
),
Expanded(
child: Container(
// color: Colors.grey[200],
child: ListView(
scrollDirection: Axis.vertical,
children: <Widget>[
Container( Container(
child: model.patientList.isNotEmpty child: Column(
? Column( children: <Widget>[
// mainAxisAlignment: MainAxisAlignment.center,
children: model.filterData SizedBox(
.map((PatiantInformtion height: 10.0,
item) {
return PatientCard(
patientInfo: item,
patientType:
patientType,
arrivalType:
arrivalType,
isInpatient:
widget.isInpatient,
onTap: () {
// TODO change the parameter to daynamic
Navigator.of(context)
.pushNamed(
PATIENTS_PROFILE,
arguments: {
"patient": item,
"patientType":
"1",
"from": widget.patientSearchRequestModel.from,
"to": widget.patientSearchRequestModel.from,
"isSearch":
widget.isSearch,
"isInpatient":
widget.isInpatient,
"arrivalType":
"7",
});
},
isFromSearch: widget.isSearch,
);
}).toList(),
)
: Center(
child: Column(
crossAxisAlignment:
CrossAxisAlignment
.center,
children: [
SizedBox(
height: 100,
),
Image.asset(
'assets/images/no-data.png'),
Padding(
padding:
const EdgeInsets
.all(8.0),
child: AppText(
TranslationBase.of(
context)
.youDontHaveAnyPatient),
)
],
), ),
)), Container(
child: model.patientList.isNotEmpty
? Column(
// mainAxisAlignment: MainAxisAlignment.center,
children: model.filterData
.map((PatiantInformtion
item) {
return PatientCard(
patientInfo: item,
patientType:
patientType,
arrivalType:
arrivalType,
isInpatient:
widget.isInpatient,
onTap: () {
// TODO change the parameter to daynamic
Navigator.of(context)
.pushNamed(
PATIENTS_PROFILE,
arguments: {
"patient": item,
"patientType":
"1",
"from": widget.patientSearchRequestModel.from,
"to": widget.patientSearchRequestModel.from,
"isSearch":
widget.isSearch,
"isInpatient":
widget.isInpatient,
"arrivalType":
"7",
});
},
isFromSearch: widget.isSearch,
);
}).toList(),
)
: Center(
child: Column(
crossAxisAlignment:
CrossAxisAlignment
.center,
children: [
SizedBox(
height: 100,
),
Image.asset(
'assets/images/no-data.png'),
Padding(
padding:
const EdgeInsets
.all(8.0),
child: AppText(
TranslationBase.of(
context)
.youDontHaveAnyPatient),
)
],
),
)),
],
),
)
], ],
), ),
) ),
], ),
), ],
) )
), ),
); );

Loading…
Cancel
Save