fix bugs in patient search

pull/168/head
Elham Rababah 5 years ago
parent 4d31d5e0e4
commit 53862ec1b3

@ -232,4 +232,9 @@ const Map<String, Map<String, String>> localizedValues = {
'en': 'Add Details Of Patient To search',
'ar': ' أضف تفاصيل المريض للبحث'
},
"welcome": {'en': 'Welcome', 'ar': ' أهلا بك'},
'youDoNotHaveAnyItem': {
'en': 'You don\'t have any Items',
'ar': 'لا يوجد اي نتائج'
},
};

@ -100,7 +100,9 @@ class _DashboardScreenState extends State<DashboardScreen> {
Row(
children: <Widget>[
AppText(
"Welcome",
TranslationBase
.of(context)
.welcome,
fontSize: SizeConfig.textMultiplier * 1.7,
color: Colors.white,
)
@ -110,63 +112,75 @@ class _DashboardScreenState extends State<DashboardScreen> {
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
AppText(
'Dr. ${authProvider.doctorProfile
.doctorName}',
'Dr. ${authProvider.doctorProfile.doctorName}',
fontWeight: FontWeight.bold,
fontSize: SizeConfig.textMultiplier * 2.5,
color: Colors.white,
)
],
),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(
child: AppText(
authProvider.selectedClinicName !=
null
? authProvider.selectedClinicName
: authProvider.doctorProfile
.clinicDescription,
fontSize:
SizeConfig.textMultiplier * 1.7,
color: Colors.white,
SizedBox(
height: 4,
),
InkWell(
onTap: () async {
showCupertinoPicker(
decKey: '',
context: context,
actionList: projectsProvider
.doctorClinicsList);
},
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(
child: AppText(
authProvider.selectedClinicName !=
null
? authProvider.selectedClinicName
: authProvider.doctorProfile
.clinicDescription,
fontSize:
SizeConfig.textMultiplier * 1.7,
color: Colors.white,
textAlign: TextAlign.center,
),
alignment: projectsProvider.isArabic
? Alignment.topRight
: Alignment.topLeft,
),
alignment: projectsProvider.isArabic
? Alignment.topRight
: Alignment.topLeft,
),
Row(
mainAxisAlignment:
MainAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
InkWell(
onTap: () async {
showCupertinoPicker(
decKey: '',
context: context,
actionList: projectsProvider
.doctorClinicsList);
},
child: Container(
margin: EdgeInsets.only(
left: 5, top: 5, right: 10),
child: Icon(
DoctorApp.sync_icon,
Row(
mainAxisAlignment:
MainAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
InkWell(
child: Container(
margin: EdgeInsets.only(
left: 5,
top: projectsProvider
.isArabic ? 0 : 5,
right: 10,
bottom: projectsProvider
.isArabic ? 15 : 7),
child: Icon(
DoctorApp.sync_icon,
color: Colors.white,
size: SizeConfig
.textMultiplier *
1.8,
)),
),
],
),
]),
),
color: Colors.white,
size: SizeConfig
.textMultiplier *
1.8,
)),
),
],
),
])
],
),
Expanded(
@ -650,6 +664,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
.of(context)
.searchPatient,
color: Colors.black,
textAlign: TextAlign.center,
)
],
),
@ -671,6 +686,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
TranslationBase
.of(context)
.doctorReply,
textAlign: TextAlign.center,
color: Colors.black,
)
],
@ -886,6 +902,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
children: actionList
.map((e) => Flexible(
child: Container(
height: 50,
child: InkWell(
onTap: () =>
changeClinic(e.clinicID, context),
@ -894,8 +911,6 @@ class _DashboardScreenState extends State<DashboardScreen> {
fontSize:
SizeConfig.textMultiplier *
1.9,
)),
),
))

@ -7,6 +7,7 @@
*@desc:
*/
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/patient_model.dart';
@ -14,23 +15,16 @@ import 'package:doctor_app_flutter/models/patient/topten_users_res_model.dart';
import 'package:doctor_app_flutter/providers/patients_provider.dart';
import 'package:doctor_app_flutter/providers/project_provider.dart';
import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/profile_medical_info_widget.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart';
import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart';
import 'package:doctor_app_flutter/widgets/shared/profile_image_widget.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
import '../../config/size_config.dart';
import 'package:hexcolor/hexcolor.dart';
import '../../widgets/shared/app_scaffold_widget.dart';
import '../../widgets/shared/card_with_bg_widget.dart';
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
class PatientsScreen extends StatefulWidget {
@override
@ -38,12 +32,12 @@ class PatientsScreen extends StatefulWidget {
}
class _PatientsScreenState extends State<PatientsScreen> {
List<dynamic> litems;
List<dynamic> lItems;
List parsed;
List date;
List unfilterDate;
List unFilterDate;
Color sideColor = Colors.black;
List<PatiantInformtion> responseModelList;
@ -60,7 +54,7 @@ class _PatientsScreenState extends State<PatientsScreen> {
bool _isInit = true;
String patientType;
String patientTypetitle;
String patientTypeTitle;
var _isLoading = false;
bool _isError = true;
@ -83,9 +77,9 @@ class _PatientsScreenState extends State<PatientsScreen> {
patientType = routeArgs['selectedType'];
if (!projectsProvider.isArabic)
patientTypetitle = SERVICES_PATIANT_HEADER[int.parse(patientType)];
patientTypeTitle = SERVICES_PATIANT_HEADER[int.parse(patientType)];
else
patientTypetitle = SERVICES_PATIANT_HEADER_AR[int.parse(patientType)];
patientTypeTitle = SERVICES_PATIANT_HEADER_AR[int.parse(patientType)];
print(patientType);
@ -101,8 +95,8 @@ class _PatientsScreenState extends State<PatientsScreen> {
_isLoading = false;
if (res['MessageStatus'] == 1) {
int val2 = int.parse(patientType);
litems = res[SERVICES_PATIANT2[val2]];
parsed = litems;
lItems = res[SERVICES_PATIANT2[val2]];
parsed = lItems;
responseModelList = new ModelResponse.fromJson(parsed).list;
responseModelList2 = responseModelList;
_isError = false;
@ -314,12 +308,12 @@ class _PatientsScreenState extends State<PatientsScreen> {
PatientsProvider patientsProv = Provider.of<PatientsProvider>(context);
return AppScaffold(
appBarTitle: patientTypetitle,
appBarTitle: patientTypeTitle,
body: _isLoading
? DrAppCircularProgressIndeicator()
: _isError
? DrAppEmbeddedError(error: error)
: litems == null
: lItems == null || lItems.length == 0
? DrAppEmbeddedError(
error: TranslationBase.of(context).youDontHaveAnyPatient)
: Container(
@ -327,7 +321,7 @@ class _PatientsScreenState extends State<PatientsScreen> {
scrollDirection: Axis.vertical,
children: <Widget>[
Container(
child: litems == null
child: lItems == null
? Column(
children: <Widget>[
Container(
@ -373,214 +367,235 @@ class _PatientsScreenState extends State<PatientsScreen> {
height: 10.0,
),
Container(
//===============
decoration: BoxDecoration(
color: Color(0Xffffffff),
borderRadius:
BorderRadius.circular(20)),
//================
margin:
EdgeInsets.fromLTRB(15, 0, 15, 0),
child: Column(
child: (responseModelList.length > 0)
? Column(
// mainAxisAlignment: MainAxisAlignment.center,
children: responseModelList
.map((PatiantInformtion item) {
return Container(
decoration: myBoxDecoration(),
child: InkWell(
child: CardWithBgWidgetNew(
//CardWithBgWidget(
widget: Column(
children: <Widget>[
Container(
// decoration: myBoxDecoration(),
child: Row(
children: <Widget>[
Column(
mainAxisAlignment:
MainAxisAlignment
.start,
children: <
Widget>[
Container(
decoration:
BoxDecoration(
gradient: LinearGradient(
begin: Alignment(
-1,
-1),
end: Alignment(
1,
1),
colors: [
Colors.grey[100],
Colors.grey[200],
]),
boxShadow: [
BoxShadow(
color: Color.fromRGBO(
0,
0,
0,
0.08),
offset: Offset(0.0,
5.0),
blurRadius:
16.0)
],
borderRadius:
BorderRadius.all(
Radius.circular(50.0)),
),
width: 80,
height: 80,
child: Icon(
item.genderDescription ==
"Male"
? DoctorApp
.male
: DoctorApp
.female_icon,
size: 80,
)),
child: Row(
children: <Widget>[
Column(
mainAxisAlignment:
MainAxisAlignment
.start,
children: <Widget>[
Container(
decoration:
BoxDecoration(
gradient: LinearGradient(
begin:
Alignment(
-1,
-1),
end:
Alignment(
1, 1),
colors: [
Colors.grey[
100],
Colors.grey[
200],
]),
boxShadow: [
BoxShadow(
color: Color
.fromRGBO(
0,
0,
0,
0.08),
offset:
Offset(
0.0,
5.0),
blurRadius:
16.0)
],
borderRadius: BorderRadius
.all(Radius
.circular(
50.0)),
),
SizedBox(
width: 10,
),
Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: <
Widget>[
AppText(
item.firstName +
" " +
item.lastName,
fontSize: 2.0 *
SizeConfig
.textMultiplier,
fontWeight:
FontWeight
.bold,
backGroundcolor:
Colors
.white,
),
SizedBox(
height: 8,
width: 80,
height: 80,
child: Icon(
item
.genderDescription ==
"Male"
? DoctorApp
.male
: DoctorApp
.female_icon,
size: 80,
)),
],
),
SizedBox(
width: 10,
),
Expanded(
child: Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: <Widget>[
SizedBox(
height: 15,
),
AppText(
item.firstName +
" " +
item.lastName,
fontSize: 2.0 *
SizeConfig
.textMultiplier,
fontWeight:
FontWeight.bold,
backGroundcolor:
Colors.white,
),
SizedBox(
height: 8,
),
AppText(
TranslationBase
.of(
context)
.fileNo +
item.patientId
.toString(),
fontSize: 2.0 *
SizeConfig
.textMultiplier,
fontWeight:
FontWeight.bold,
backGroundcolor:
Colors.white,
),
AppText(
TranslationBase
.of(
context)
.age +
item.age
.toString(),
fontSize: 2.0 *
SizeConfig
.textMultiplier,
fontWeight:
FontWeight.bold,
backGroundcolor:
Colors.white,
),
SizedBox(
height: 8,
),
SERVICES_PATIANT2[
int.parse(
patientType)] ==
"List_MyOutPatient"
? Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: <
Widget>[
Container(
height:
20,
width: 80,
decoration:
BoxDecoration(
borderRadius:
BorderRadius
.circular(
50),
color: Hexcolor(
"#20A169"),
),
child:
AppText(
TranslationBase.of(
context)
.fileNo +
item.patientId
.toString(),
fontSize: 2.0 *
SizeConfig
.textMultiplier,
item
.startTime,
color: Colors
.white,
fontSize:
2 * SizeConfig
.textMultiplier,
textAlign:
TextAlign
.center,
fontWeight:
FontWeight
.bold,
backGroundcolor:
Colors
.white,
FontWeight
.bold,
),
// SizedBox(
// height: 8,
// ),
),
SizedBox(
width: 60,
),
Container(
child:
AppText(
TranslationBase.of(
context)
.age +
item.age
.toString(),
fontSize: 2.0 *
convertDateFormat2(
item
.appointmentDate
.toString()),
fontSize:
2.0 *
SizeConfig
.textMultiplier,
fontWeight:
FontWeight
.bold,
backGroundcolor:
Colors
.white,
),
SizedBox(
height: 8,
FontWeight
.bold,
),
SERVICES_PATIANT2[
int.parse(patientType)] ==
"List_MyOutPatient"
? Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <
Widget>[
Container(
height:
20,
width:
80,
decoration:
BoxDecoration(
borderRadius: BorderRadius.circular(50),
color: Hexcolor("#20A169"),
),
child:
AppText(
item.startTime,
color: Colors.white,
fontSize: 2 * SizeConfig.textMultiplier,
textAlign: TextAlign.center,
fontWeight: FontWeight.bold,
),
),
SizedBox(
width:
60,
),
Container(
child:
AppText(
convertDateFormat2(item.appointmentDate.toString()),
fontSize: 2.0 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
)
],
)
: AppText(
item.nationalityName ??
item.nationalityNameN,
fontSize:
2.5 *
SizeConfig.textMultiplier,
),
],
),
// Divider(color: Colors.grey)
],
),
)
],
)
: AppText(
item
.nationalityName ??
item
.nationalityNameN,
fontSize: 2.5 *
SizeConfig
.textMultiplier,
),
SizedBox(
height: 15,
),
],
),
// Divider(color: Colors.grey)
],
),
),
// Divider(color: Colors.grey)
],
),
onTap: () {
Navigator.of(context)
.pushNamed(
PATIENTS_PROFILE,
arguments: {
PATIENTS_PROFILE,
arguments: {
"patient": item
});
},
),
);
}).toList(),
)
: Center(
child: DrAppEmbeddedError(
error: TranslationBase
.of(context)
.youDontHaveAnyPatient),
),
),
],
@ -611,8 +626,11 @@ class _PatientsScreenState extends State<PatientsScreen> {
Widget _locationBar(BuildContext _context) {
return Container(
height: MediaQuery.of(context).size.height * 0.065,
width: SizeConfig.screenWidth * 0.9,
height: MediaQuery
.of(context)
.size
.height * 0.065,
width: SizeConfig.screenWidth * 0.95,
decoration: BoxDecoration(
color: Color(0Xffffffff), borderRadius: BorderRadius.circular(20)),
child: Row(
@ -639,9 +657,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
color: _isActive
? Colors.white
: Colors.black, //Colors.black,
// backgroundColor:_isActive
// ? Hexcolor("#B8382B")
// : Colors.white,//sideColor,
fontWeight: FontWeight.bold,
),
@ -677,7 +692,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
return BoxDecoration(
border: Border(
bottom: BorderSide(
// <--- top side
color: Colors.grey,
width: 1.0,
),

@ -1,6 +1,7 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/models/patient/insurance_aprovals_request.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart';
@ -15,7 +16,6 @@ import '../../../util/dr_app_shared_pref.dart';
import '../../../widgets/shared/app_scaffold_widget.dart';
import '../../../widgets/shared/app_texts_widget.dart';
import '../../../widgets/shared/dr_app_circular_progress_Indeicator.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
@ -475,6 +475,7 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
}
convertDateFormat(String str) {
if (str == null) return '';
const start = "/Date(";
const end = "+0300)";

@ -81,7 +81,7 @@ class _RadiologyScreenState extends State<RadiologyScreen> {
? DrAppEmbeddedError(error: patientsProv.error)
: patientsProv.patientRadiologyList.length == 0
? DrAppEmbeddedError(
error: TranslationBase.of(context).errorNoVitalSign)
error: TranslationBase.of(context).youDoNotHaveAnyItem)
: Container(
margin: EdgeInsets.fromLTRB(
SizeConfig.realScreenWidth * 0.05,

File diff suppressed because one or more lines are too long

@ -182,7 +182,8 @@ class TranslationBase {
localizedValues['pleaseEnterTheCode'][locale.languageCode];
String get youDontHaveAnyPatient =>
localizedValues['youDon\'tHaveAnyPatient'][locale.languageCode];
String get youDoNotHaveAnyItem =>
localizedValues['youDoNotHaveAnyItem'][locale.languageCode];
String get age => localizedValues['age'][locale.languageCode];
String get today => localizedValues['today'][locale.languageCode];
String get tomorrow => localizedValues['tomorrow'][locale.languageCode];
@ -262,6 +263,8 @@ class TranslationBase {
String get searchPatientImageCaptionBody =>
localizedValues['searchPatientImageCaptionBody'][locale.languageCode];
String get welcome => localizedValues['welcome'][locale.languageCode];
}
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -284,14 +284,13 @@ class _MyReferralPatientWidgetState extends State<MyReferralPatientWidget> {
Form(
key: _formKey,
child: TextFields(
controller:answerController,
maxLines: 2,
minLines: 2,
hintText:
TranslationBase.of(context).answerThePatient,
fontWeight: FontWeight.normal,
initialValue: widget.myReferralPatientModel
.referredDoctorRemarks ??
'',
readOnly: _isLoading,
validator: (value) {
if (value.isEmpty)

@ -164,15 +164,17 @@ class PatientProfileButton extends StatelessWidget {
fontSize: SizeConfig.textMultiplier * 2,
),
),
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Container(
padding: EdgeInsets.all(10),
child: new Image.asset(url + icon))
],
))
Expanded(
child: Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Container(
padding: EdgeInsets.all(10),
child: new Image.asset(url + icon))
],
)),
)
]),
),
decoration: BoxDecoration(

@ -15,7 +15,7 @@ class AppButton extends StatefulWidget {
final double fontSize;
final double padding;
AppButton({@required this.onPressed, this.title, this.icon, this.color, this.fontSize = 2, this.padding = 5});
AppButton({@required this.onPressed, this.title, this.icon, this.color, this.fontSize = 2, this.padding = 13});
_AppButtonState createState() => _AppButtonState();

Loading…
Cancel
Save