Merge branch 'sort_out_patient' into 'development'

first step form sort

See merge request Cloud_Solution/doctor_app_flutter!751
merge-requests/753/merge
Mohammad Aljammal 5 years ago
commit e4a7f4e105

@ -75,6 +75,14 @@ class PatientSearchViewModel extends BaseViewModel {
}
}
sortOutPatient({bool isDes = false}){
if(isDes)
filterData.sort((PatiantInformtion a, PatiantInformtion b)=>b.appointmentDateWithDateTimeForm.compareTo(a.appointmentDateWithDateTimeForm));
else
filterData.sort((PatiantInformtion a, PatiantInformtion b)=>AppDateUtils.convertStringToDate(a.appointmentDate).compareTo(AppDateUtils.convertStringToDate(b.appointmentDate)));
setState(ViewState.Idle);
}
getPatientFileInformation(PatientSearchRequestModel patientSearchRequestModel,
{bool isLocalBusy = false}) async {
setState(ViewState.Busy);
@ -169,6 +177,14 @@ class PatientSearchViewModel extends BaseViewModel {
}
}
sortInPatient({bool isDes = false}){
if(isDes)
filteredInPatientItems.sort((PatiantInformtion a, PatiantInformtion b)=>b.admissionDateWithDateTimeForm.compareTo(a.admissionDateWithDateTimeForm));
else
filteredInPatientItems.sort((PatiantInformtion a, PatiantInformtion b)=>a.admissionDateWithDateTimeForm.compareTo(b.admissionDateWithDateTimeForm));
setState(ViewState.Idle);
}
Future setDefaultInPatientList() async {
setState(ViewState.BusyLocal);
await getDoctorProfile();

@ -1,10 +1,13 @@
// TODO : it have to be changed.
import 'package:doctor_app_flutter/util/date-utils.dart';
class PatiantInformtion {
final PatiantInformtion patientDetails;
int genderInt;
dynamic age;
String appointmentDate;
DateTime appointmentDateWithDateTimeForm;
dynamic appointmentNo;
dynamic appointmentType;
String arrivalTime;
@ -52,6 +55,7 @@ class PatiantInformtion {
int patientMRN;
String admissionNo;
String admissionDate;
DateTime admissionDateWithDateTimeForm;
String createdOn;
String roomId;
String bedId;
@ -148,7 +152,8 @@ class PatiantInformtion {
this.dischargeDate,
this.status,
this.vcId,
this.voipToken});
this.voipToken,
this.admissionDateWithDateTimeForm, this.appointmentDateWithDateTimeForm});
factory PatiantInformtion.fromJson(Map<String, dynamic> json) =>
PatiantInformtion(
@ -254,5 +259,11 @@ class PatiantInformtion {
consultationNotes: json['ConsultationNotes'],
patientStatus: json['PatientStatus'],
voipToken: json['VoipToken'],
admissionDateWithDateTimeForm: json["AdmissionDate"] != null
? AppDateUtils.convertStringToDate(json["AdmissionDate"])
: json["admissionDate"] != null ? AppDateUtils.convertStringToDate(
json["admissionDate"]) : null,
appointmentDateWithDateTimeForm: json["AppointmentDate"]!= null?AppDateUtils.convertStringToDate(json["AppointmentDate"]):null
);
}

@ -7,8 +7,10 @@ import 'package:doctor_app_flutter/widgets/shared/app_loader_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/errors/error_message.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_container.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';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../routes.dart';
@ -24,6 +26,8 @@ class InPatientPage extends StatefulWidget {
class _InPatientPageState extends State<InPatientPage> {
TextEditingController _searchController = TextEditingController();
bool isSortDes = true;
@override
void dispose() {
_searchController.dispose();
@ -47,20 +51,45 @@ class _InPatientPageState extends State<InPatientPage> {
),
Container(
margin: EdgeInsets.all(16.0),
child: AppTextFieldCustom(
hintText: TranslationBase.of(context).searchPatientName,
isTextFieldHasSuffix: true,
suffixIcon: IconButton(
icon: Icon(
Icons.search,
color: Colors.black,
child: Stack(
children: [
AppTextFieldCustom(
hintText: TranslationBase.of(context).searchPatientName,
isTextFieldHasSuffix: true,
suffixIcon: IconButton(
icon: Icon(
Icons.search,
color: Colors.black,
),
onPressed: () {},
),
controller: _searchController,
onChanged: (value) {
model.filterSearchResults(value);
}),
Positioned(
right: 35,
top:5,
child: IconButton(
icon: Icon(
isSortDes
? FontAwesomeIcons.sortAmountDown
: FontAwesomeIcons.sortAmountUp,
color: Colors.black,
),
iconSize: 20,
// padding: EdgeInsets.only(bottom: 30),
onPressed: () {
GifLoaderDialogUtils.showMyDialog(context);
model.sortInPatient(isDes: isSortDes);
isSortDes = !isSortDes;
GifLoaderDialogUtils.hideDialog(context);
},
),
onPressed: () {},
),
controller: _searchController,
onChanged: (value) {
model.filterSearchResults(value);
}),
)
],
),
),
model.state == ViewState.Idle?model.filteredInPatientItems.length > 0
? Expanded(

@ -77,6 +77,7 @@ class _OutPatientsScreenState extends State<OutPatientsScreen> {
PatientModel patient;
OutPatientFilterType outPatientFilterType = OutPatientFilterType.Today;
bool isSortDes = true;
@override
Widget build(BuildContext context) {
@ -201,7 +202,7 @@ class _OutPatientsScreenState extends State<OutPatientsScreen> {
SizedBox(height: 18.5),
Container(
width: SizeConfig.screenWidth * 0.9,
height: 75,
height: 85,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(6.0)),
border: Border.all(
@ -218,37 +219,61 @@ class _OutPatientsScreenState extends State<OutPatientsScreen> {
TranslationBase.of(context).searchPatientName,
fontSize: 13,
)),
AppTextFormField(
// focusNode: focusProject,
controller: _controller,
borderColor: Colors.white,
prefix: IconButton(
icon: Icon(
_activeLocation != 0
? DoctorApp.filter_1
: FontAwesomeIcons.slidersH,
color: Colors.black,
Stack(
children: [
AppTextFormField(
// focusNode: focusProject,
controller: _controller,
borderColor: Colors.white,
prefix: IconButton(
icon: Icon(
_activeLocation != 0
? DoctorApp.filter_1
: FontAwesomeIcons.slidersH,
color: Colors.black,
),
iconSize: 20,
padding: EdgeInsets.only(bottom: 30),
onPressed: _activeLocation != 0
? null
: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(BuildContext context) =>
FilterDatePage(
outPatientFilterType:
outPatientFilterType,
patientSearchViewModel:
model,
)));
},
),
onChanged: (String str) {
model.searchData(str);
}),
Positioned(
right: 25,
child: IconButton(
icon: Icon(
isSortDes
? FontAwesomeIcons.sortAmountDown
: FontAwesomeIcons.sortAmountUp,
color: Colors.black,
),
iconSize: 20,
padding: EdgeInsets.only(bottom: 30),
onPressed: () {
model.sortOutPatient(isDes: isSortDes);
isSortDes = !isSortDes;
},
),
iconSize: 20,
padding: EdgeInsets.only(bottom: 30),
onPressed: _activeLocation != 0
? null
: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) =>
FilterDatePage(
outPatientFilterType:
outPatientFilterType,
patientSearchViewModel:
model,
)));
},
),
onChanged: (String str) {
model.searchData(str);
}),
)
],
),
])),
SizedBox(
height: 10.0,

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save