Conflicts:
	lib/screens/profile_screen.dart
merge-requests/123/merge
hussam al-habibeh 6 years ago
commit b63d8906bc

@ -56,4 +56,61 @@ const Map<String, Map<String, String>> localizedValues = {
'en': 'Only Arrived Patient',
'ar': 'المريض الذي حضر للموعد'
},
'searchMedicineNameHere': {
'en': 'Search Medicine Name Here',
'ar': 'ابحث عن الدواء هنا'
},
'youCanFind': {'en': 'You Can Find', 'ar': 'تستطيع ان تجد '},
'itemsInSearch': {'en': 'items in search', 'ar': 'عناصر في البحث'},
'qrReader': {'en': 'QR Reader', 'ar': 'قارىء رمز الQR'},
'startScanning': {'en': 'Start Scanning', 'ar': 'بدء المسح'},
'scanQrCode': {
'en': 'scan Qr code to retrieve patient profile',
'ar': 'مسح رمزاال QR لاسترداد ملف تعريف المريض '
},
'scanQr': {'en': 'Scan Qr', 'ar': 'اقراء ال QR'},
'profile': {'en': 'Profile', 'ar': 'ملفي الشخصي'},
'gender': {'en': 'Gender', 'ar': 'الجنس'},
'clinic': {'en': 'Clinic', 'ar': 'العيادة'},
'hospital': {'en': 'Hospital', 'ar': 'المستشفى'},
'speciality': {'en': 'Speciality', 'ar': 'التخصص'},
'errorMessage': {'en': 'Something went wrong', 'ar': 'حدث خطأ ما'},
'patientProfile': {'en': 'Patient Profile', 'ar': 'ملف المريض'},
'vitalSign': {'en': 'Vital Sign', 'ar': 'المؤشرات الحيوية'},
'labOrder': {'en': 'Lab Order', 'ar': 'نتائج التحاليل'},
'prescription': {'en': 'Prescription', 'ar': 'الوصفات'},
'insuranceApprovals': {'en': 'Insurance Approvals', 'ar': 'موافقات التأمين'},
'bodyMeasurements': {'en': 'Body Measurements', 'ar': 'قياسات الجسم'},
'temperature': {'en': 'Temperature', 'ar': 'درجة الحرارة'},
'pulse': {'en': 'Pulse', 'ar': 'النبض'},
'respiration': {'en': 'Respiration', 'ar': 'التنفس'},
'bloodPressure': {'en': 'Blood Pressure', 'ar': 'ضغط الدم'},
'oxygenation': {'en': 'Oxygenation', 'ar': 'الأوكسجين'},
'painScale': {'en': 'Pain Scale', 'ar': 'مقياس الألم'},
'errorNoVitalSign': {
'en': 'You don\'t have any Vital Sign',
'ar': 'ليس لديك اي اعراض حيوية'
},
'labOrders': {'en': 'Lab Orders', 'ar': 'الفحوصات الطبية'},
'errorNoLabOrders': {
'en': 'You don\'t have any lab orders',
'ar': 'ليس لديك اي فحوصات طبية'
},
'answerThePatient': {'en': 'answer the patient', 'ar': 'اجب المريض '},
'pleaseEnterAnswer': {
'en': 'please enter answer',
'ar': 'الرجاء ادخال اجابة '
},
'replay': {'en': 'Replay', 'ar': 'تاكيد'},
'progressNote': {'en': 'Progress Note', 'ar': 'ملاحظة التقدم'},
'searchNote': {'en': 'Search Note', 'ar': 'بحث عن ملاحظة'},
'errorNoProgressNote': {
'en': 'You don\'t have any Progress Note',
'ar': 'ليس لديك اي ملاحظة تقدم '
},
'invoiceNo:': {'en': 'Invoice No :', 'ar': 'رقم الفاتورة'},
'generalResult': {'en': 'General Result :', 'ar': 'النتيجة العامة'},
'description': {'en': 'Description', 'ar': 'الوصف'},
'value': {'en': 'Value', 'ar': 'القيمة'},
'range': {'en': 'range', 'ar': 'النطاق'},
};

@ -1,11 +1,15 @@
const PATIENT_TYPE = const [
{"text": "outPatiant", "val": "0"},
{"text": "InPatiant", "val": "1"},
{"text": "Discharge", "val": "2"},
{"text": "Referrd", "val": "3"},
{"text": "Referral Discharge", "val": "4"},
{"text": "Tomorrow Patient", "val": "5"},
{"text": "Referral", "val": "6"},
{"text": "outPatiant", "text_ar": "المريض الخارجي", "val": "0"},
{"text": "InPatiant", "text_ar": "المريض المنوم", "val": "1"},
{"text": "Discharge", "text_ar": "المريض المعافى", "val": "2"},
{"text": "Referrd", "text_ar": "المريض المحول الي", "val": "3"},
{
"text": "Referral Discharge",
"text_ar": "المريض المحال المعافى",
"val": "4"
},
{"text": "Tomorrow Patient", "text_ar": "مريض الغد", "val": "5"},
{"text": "Referral", "text_ar": "المريض المحول مني", "val": "6"},
];
const LOCATIONS = const [

@ -15,6 +15,7 @@ import 'package:doctor_app_flutter/widgets/shared/card_with_bg_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import '../routes.dart';
@ -55,7 +56,7 @@ class _QrReaderScreenState extends State<QrReaderScreen> {
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "QR Reader",
appBarTitle: TranslationBase.of(context).qrReader,
body: Center(
child: Container(
margin: EdgeInsets.only(top: SizeConfig.realScreenHeight / 7),
@ -64,7 +65,7 @@ class _QrReaderScreenState extends State<QrReaderScreen> {
child: ListView(
children: [
AppText(
'Start Scanning',
TranslationBase.of(context).startScanning,
fontSize: 18,
fontWeight: FontWeight.bold,
textAlign: TextAlign.center,
@ -72,12 +73,10 @@ class _QrReaderScreenState extends State<QrReaderScreen> {
SizedBox(
height: 7,
),
AppText(
'scan Qr code to retrieve patient profile',
AppText(TranslationBase.of(context).scanQrCode,
fontSize: 14,
fontWeight: FontWeight.w400,
textAlign: TextAlign.center
),
textAlign: TextAlign.center),
SizedBox(
height: 15,
),
@ -92,24 +91,31 @@ class _QrReaderScreenState extends State<QrReaderScreen> {
onTap: () {
_scanQrAndGetPatient(context);
},
title: 'Scan Qr',
title: TranslationBase.of(context).scanQr,
loading: isLoading,
icon: Image.asset('assets/images/qr_code_white.png'),
),
isError ? Container(
margin: EdgeInsets.only(top: 8),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6.0),
color: Theme.of(context).errorColor.withOpacity(0.06),
),
padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 12.0),
child: Row(
children: <Widget>[
Expanded(child: AppText(error ?? "Something went wrong.", color: Theme.of(context).errorColor)),
],
),
):Container(),
isError
? Container(
margin: EdgeInsets.only(top: 8),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6.0),
color: Theme.of(context).errorColor.withOpacity(0.06),
),
padding: EdgeInsets.symmetric(
vertical: 8.0, horizontal: 12.0),
child: Row(
children: <Widget>[
Expanded(
child: AppText(
error ??
TranslationBase.of(context)
.errorMessage,
color: Theme.of(context).errorColor)),
],
),
)
: Container(),
],
),
),
@ -118,7 +124,6 @@ class _QrReaderScreenState extends State<QrReaderScreen> {
);
}
_scanQrAndGetPatient(BuildContext context) async {
/// When give qr we will change this method to get data
/// var result = await BarcodeScanner.scan();
@ -151,7 +156,8 @@ class _QrReaderScreenState extends State<QrReaderScreen> {
case "0":
if (response['List_MyOutPatient'] != null) {
setState(() {
patientList = ModelResponse.fromJson(response['List_MyOutPatient']).list;
patientList =
ModelResponse.fromJson(response['List_MyOutPatient']).list;
isLoading = false;
});
Navigator.of(context).pushNamed(PATIENTS_PROFILE, arguments: {
@ -168,7 +174,8 @@ class _QrReaderScreenState extends State<QrReaderScreen> {
case "1":
if (response['List_MyInPatient'] != null) {
setState(() {
patientList = ModelResponse.fromJson(response['List_MyInPatient']).list;
patientList =
ModelResponse.fromJson(response['List_MyInPatient']).list;
isLoading = false;
error = "";
});
@ -189,10 +196,10 @@ class _QrReaderScreenState extends State<QrReaderScreen> {
isLoading = false;
isError = true;
});
DrAppToastMsg.showErrorToast(response['ErrorEndUserMessage'] ?? response['ErrorMessage']);
DrAppToastMsg.showErrorToast(
response['ErrorEndUserMessage'] ?? response['ErrorMessage']);
}
}).catchError((error){
}).catchError((error) {
setState(() {
isLoading = false;
});

@ -419,7 +419,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
child: DashboardItemIconText(
widget.iconURL + 'qr-code.svg',
"",
"QR Reader",
TranslationBase.of(context).qrReader,
showBorder: true,
backgroundColor: Colors.white,
valueFontColor: Colors.black,

@ -17,7 +17,7 @@ class MyReferralPatient extends StatelessWidget {
Widget build(BuildContext context) {
referralPatientProvider = Provider.of(context);
return AppScaffold(
appBarTitle: 'My Referral Patient',
appBarTitle: TranslationBase.of(context).myReferralPatient,
body: referralPatientProvider.isLoading
? DrAppCircularProgressIndeicator()
: referralPatientProvider.isError
@ -43,11 +43,12 @@ class MyReferralPatient extends StatelessWidget {
children: <Widget>[
SizedBox(
height: 10,
),
Container(
child: Column(
children: referralPatientProvider.listMyReferralPatientModel.map((item) {
children: referralPatientProvider
.listMyReferralPatientModel
.map((item) {
return MyReferralPatientWidget(
myReferralPatientModel: item,
);

@ -9,58 +9,59 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
class MyReferredPatient extends StatelessWidget {
MyReferredPatientProvider referredPatientProvider;
@override
Widget build(BuildContext context) {
referredPatientProvider = Provider.of(context);
return AppScaffold(
appBarTitle: 'My Referred Patient',
appBarTitle: TranslationBase.of(context).myReferredPatient,
body: referredPatientProvider.isLoading
? DrAppCircularProgressIndeicator()
: referredPatientProvider.isError
? Center(
child: AppText(
referredPatientProvider.error,
color: Theme.of(context).errorColor,
),
)
: referredPatientProvider.listMyReferredPatientModel.length == 0
? Center(
child: AppText(
TranslationBase.of(context).errorNoSchedule,
color: Theme.of(context).errorColor,
),
)
: Container(
padding: EdgeInsetsDirectional.fromSTEB(20, 0, 20, 0),
child: ListView(
children: <Widget>[
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
SizedBox(
height: 10,
),
Container(
child: Column(
//children: referredPatientProvider.listMyReferralPatientModel.map((item) {
children: referredPatientProvider.listMyReferredPatientModel.map((item) {
return MyReferredPatientWidget(
myReferredPatientModel: item,
);
}).toList(),
? Center(
child: AppText(
referredPatientProvider.error,
color: Theme.of(context).errorColor,
),
),
],
),
],
),
),
)
: referredPatientProvider.listMyReferredPatientModel.length == 0
? Center(
child: AppText(
TranslationBase.of(context).errorNoSchedule,
color: Theme.of(context).errorColor,
),
)
: Container(
padding: EdgeInsetsDirectional.fromSTEB(20, 0, 20, 0),
child: ListView(
children: <Widget>[
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
SizedBox(
height: 10,
),
Container(
child: Column(
//children: referredPatientProvider.listMyReferralPatientModel.map((item) {
children: referredPatientProvider
.listMyReferredPatientModel
.map((item) {
return MyReferredPatientWidget(
myReferredPatientModel: item,
);
}).toList(),
),
),
],
),
],
),
),
);
}
}

@ -14,6 +14,7 @@ import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indei
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../util/extenstions.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
DrAppSharedPreferances sharedPref = DrAppSharedPreferances();
@ -46,22 +47,21 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "Search Medicine",
appBarTitle: TranslationBase.of(context).searchMedicine,
body: Column(
children: <Widget>[
Padding(
padding: EdgeInsets.only(
bottom: SizeConfig.heightMultiplier * 1,
right: SizeConfig.heightMultiplier * 2,
left: SizeConfig.heightMultiplier * 2,
top: SizeConfig.heightMultiplier * 3),
child: AppTextFormField(
hintText: 'Search Medicine Name Here..',
controller: myController,
onSaved: (value) {},
inputFormatter: ONLY_LETTERS),
),
Padding(
padding: EdgeInsets.only(
bottom: SizeConfig.heightMultiplier * 1,
right: SizeConfig.heightMultiplier * 2,
left: SizeConfig.heightMultiplier * 2,
top: SizeConfig.heightMultiplier * 3),
child: AppTextFormField(
hintText: TranslationBase.of(context).searchMedicineNameHere,
controller: myController,
onSaved: (value) {},
inputFormatter: ONLY_LETTERS),
),
Container(
margin: EdgeInsets.only(
bottom: SizeConfig.heightMultiplier * 1,
@ -72,7 +72,7 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title: "Search",
title: TranslationBase.of(context).search,
color: Color(PRIMARY_COLOR),
onPressed: () {
searchMedicine(context);
@ -87,9 +87,9 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
"You find " +
TranslationBase.of(context).youCanFind +
(data == null ? "0" : data.length.toString()) +
" items in search",
TranslationBase.of(context).itemsInSearch,
fontWeight: FontWeight.bold,
margin: 5,
),
@ -127,7 +127,9 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
ChangeNotifierProvider(
create: (_) => MedicineProvider(),
child: PharmaciesListScreen(
itemID: data[index]["ItemID"], url: data[index]["ProductImageBase64"]),
itemID: data[index]["ItemID"],
url: data[index]
["ProductImageBase64"]),
),
),
);

@ -1,5 +1,6 @@
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/models/patient/patient_model.dart';
import 'package:doctor_app_flutter/providers/project_provider.dart';
import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
@ -19,6 +20,7 @@ import '../../widgets/patients/dynamic_elements.dart';
import '../../config/config.dart';
import '../../models/doctor_profile_model.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:provider/provider.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
Helpers helpers = Helpers();
@ -36,6 +38,8 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
String _selectedType = '1';
String _selectedLocation = '1';
String error = '';
ProjectProvider projectsProvider;
String itemText = '';
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
bool _autoValidate = false;
@ -113,6 +117,7 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
@override
Widget build(BuildContext context) {
projectsProvider = Provider.of(context);
return AppScaffold(
appBarTitle: TranslationBase.of(context).searchPatient,
body: ListView(
@ -175,12 +180,19 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
return Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
AppText(
item['text'],
fontSize:
SizeConfig.textMultiplier *
2.1,
),
!projectsProvider.isArabic
? AppText(
item['text'],
fontSize: SizeConfig
.textMultiplier *
2.1,
)
: AppText(
item['text_ar'],
fontSize: SizeConfig
.textMultiplier *
2.1,
),
],
);
}).toList();
@ -193,9 +205,12 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
})
},
items: PATIENT_TYPE.map((item) {
!projectsProvider.isArabic
? itemText = item['text']
: itemText = item['text_ar'];
return DropdownMenuItem(
child: Text(
'${item['text']}',
itemText,
textAlign: TextAlign.end,
),
value: item['val'],

@ -15,6 +15,7 @@ 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();
@ -77,7 +78,7 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "Insurance Approvals",
appBarTitle: TranslationBase.of(context).insuranceApprovals,
body: patientsProv.isLoading
? DrAppCircularProgressIndeicator()
: patientsProv.isError
@ -128,9 +129,12 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
: approvalsList[index][
"ApprovalStatusDescption"]
.toString()
.contains("Cancelled")
? DoctorApp.reject_icon
: DoctorApp.pending_icon,
.contains(
"Cancelled")
? DoctorApp
.reject_icon
: DoctorApp
.pending_icon,
color: approvalsList[index][
"ApprovalStatusDescption"]
.toString()
@ -139,13 +143,18 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
: approvalsList[index][
"ApprovalStatusDescption"]
.toString()
.contains("Cancelled")
.contains(
"Cancelled")
? Colors.red
: Colors.yellow,
),
AppText(approvalsList[index]["ApprovalStatusDescption"],
fontSize: SizeConfig.textMultiplier * 1.5,
color: approvalsList[index][
AppText(
approvalsList[index][
"ApprovalStatusDescption"],
fontSize: SizeConfig
.textMultiplier *
1.5,
color: approvalsList[index][
"ApprovalStatusDescption"]
.toString()
.contains("Approved")
@ -153,9 +162,11 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
: approvalsList[index][
"ApprovalStatusDescption"]
.toString()
.contains("Cancelled")
.contains(
"Cancelled")
? Colors.red
: Colors.yellow,)
: Colors.yellow,
)
],
),
Expanded(
@ -204,31 +215,30 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
backgroundColor:
Color(PRIMARY_COLOR),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
AppText(
approvalsList[index]
["ApprovalNo"]
.toString(),
color: Colors.white,
fontSize: 19,
fontWeight:
FontWeight.bold,
marginTop: 10,
marginLeft: 10,
marginRight: 10,
marginBottom: 2,
),
AppText(
"Approval No:",
color: Colors.white,
fontSize: 16,
marginTop: 2,
marginLeft: 10,
marginBottom: 15,
marginRight: 10,
),
AppText(
approvalsList[index]
["ApprovalNo"]
.toString(),
color: Colors.white,
fontSize: 19,
fontWeight: FontWeight.bold,
marginTop: 10,
marginLeft: 10,
marginRight: 10,
marginBottom: 2,
),
AppText(
"Approval No:",
color: Colors.white,
fontSize: 16,
marginTop: 2,
marginLeft: 10,
marginBottom: 15,
marginRight: 10,
),
Row(
children: <Widget>[
Expanded(
@ -241,24 +251,34 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
AppText(
"PRODUCER NAME",
fontSize: 10,
color: Colors.white,
color:
Colors.white,
marginLeft: SizeConfig
.widthMultiplier *
3,
),
AppText(checkList(approvalsList[index]["ApporvalDetails"])?
approvalsList[index]
AppText(
checkList(approvalsList[
index]
[
"ApporvalDetails"][0]
[
"ProcedureName"] : "",
"ApporvalDetails"])
? approvalsList[
index]
[
"ApporvalDetails"][0]
[
"ProcedureName"]
: "",
fontSize: 12,
fontWeight: FontWeight.bold,
fontWeight:
FontWeight
.bold,
marginLeft: SizeConfig
.widthMultiplier *
3,
marginTop: 3,
color: Colors.white,
color:
Colors.white,
),
],
),
@ -273,22 +293,26 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
AppText(
"STATUS",
fontSize: 10,
color: Colors.white,
color:
Colors.white,
marginLeft: SizeConfig
.widthMultiplier *
9,
),
AppText(
approvalsList[index]
[
approvalsList[
index][
"ApprovalStatusDescption"],
fontSize: 12,
fontWeight: FontWeight.bold,
fontWeight:
FontWeight
.bold,
marginLeft: SizeConfig
.widthMultiplier *
9,
marginTop: 3,
color: Colors.white,
color:
Colors.white,
),
],
),
@ -307,7 +331,8 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
AppText(
"RECEIPT ON",
fontSize: 10,
color: Colors.white,
color:
Colors.white,
marginLeft: SizeConfig
.widthMultiplier *
3,
@ -316,16 +341,25 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
1.5,
),
AppText(
convertDateFormat( approvalsList[index]
["ReceiptOn"]),
convertDateFormat(
approvalsList[
index]
[
"ReceiptOn"]),
fontSize: 12,
fontWeight: FontWeight.bold,
fontWeight:
FontWeight
.bold,
marginLeft: SizeConfig
.widthMultiplier *
3,
marginTop: 3,
marginBottom: SizeConfig.heightMultiplier*2,
color: Colors.white,
marginBottom:
SizeConfig
.heightMultiplier *
2,
color:
Colors.white,
),
],
),
@ -340,7 +374,8 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
AppText(
"EXPIRY DATE",
fontSize: 10,
color: Colors.white,
color:
Colors.white,
marginTop: SizeConfig
.heightMultiplier *
1.5,
@ -351,16 +386,23 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
AppText(
convertDateFormat(
approvalsList[
index][
index]
[
"ExpiryDate"]),
fontSize: 12,
fontWeight: FontWeight.bold,
fontWeight:
FontWeight
.bold,
marginLeft: SizeConfig
.widthMultiplier *
9,
marginTop: 3,
marginBottom: SizeConfig.heightMultiplier*2,
color: Colors.white,
marginBottom:
SizeConfig
.heightMultiplier *
2,
color:
Colors.white,
),
],
),
@ -434,7 +476,8 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
return newDate.toString();
}
bool checkList(List list){
bool checkList(List list) {
return list.length > 0 ? true : false;
}
}

@ -18,6 +18,7 @@ import '../../../../widgets/shared/card_with_bg_widget.dart';
import '../../../../widgets/shared/dr_app_circular_progress_Indeicator.dart';
import '../../../../widgets/shared/profile_image_widget.dart';
import 'lab_result_secreen.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
@ -72,13 +73,14 @@ class _LabOrdersScreenState extends State<LabOrdersScreen> {
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "Lab Orders",
appBarTitle: TranslationBase.of(context).labOrders,
body: patientsProv.isLoading
? DrAppCircularProgressIndeicator()
: patientsProv.isError
? DrAppEmbeddedError(error: patientsProv.error)
: patientsProv.patientLabResultOrdersList.length == 0
? DrAppEmbeddedError(error: 'You don\'t have any Orders')
? DrAppEmbeddedError(
error: TranslationBase.of(context).errorNoLabOrders)
: Container(
margin: EdgeInsets.fromLTRB(
SizeConfig.realScreenWidth * 0.05,

@ -12,6 +12,7 @@ import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
class LabResult extends StatefulWidget {
final LabOrdersResModel labOrders;
@ -40,13 +41,14 @@ class _LabResultState extends State<LabResult> {
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "Lab Orders",
appBarTitle: TranslationBase.of(context).labOrders,
body: patientsProv.isLoading
? DrAppCircularProgressIndeicator()
: patientsProv.isError
? DrAppEmbeddedError(error: patientsProv.error)
: patientsProv.labResultList.length == 0
? DrAppEmbeddedError(error: 'You don\'t have any Orders')
? DrAppEmbeddedError(
error: TranslationBase.of(context).errorNoLabOrders)
: Container(
margin: EdgeInsets.fromLTRB(
SizeConfig.realScreenWidth * 0.05,
@ -57,25 +59,25 @@ class _LabResultState extends State<LabResult> {
children: <Widget>[
CardWithBgWidgetNew(
widget: Row(
mainAxisAlignment:
MainAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
AppText(
' Invoice No :',
fontSize:
2 * SizeConfig.textMultiplier,
TranslationBase.of(context).invoiceNo,
fontSize: 2 * SizeConfig.textMultiplier,
color: Colors.grey[800],
),
AppText(
' ${widget.labOrders.invoiceNo}',
fontSize:
2 * SizeConfig.textMultiplier,
fontSize: 2 * SizeConfig.textMultiplier,
color: Colors.grey[800],
),
],
),
),
CardWithBgWidgetNew(widget: LabResultWidget(labResult: patientsProv.labResultList,))
CardWithBgWidgetNew(
widget: LabResultWidget(
labResult: patientsProv.labResultList,
))
],
),
),

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import '../../../widgets/patients/profile/patient_profile_widget.dart';
import '../../../widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
class PatientProfileScreen extends StatelessWidget {
const PatientProfileScreen({Key key}) : super(key: key);
@ -9,7 +10,7 @@ class PatientProfileScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: 'Patient Profile',
appBarTitle: TranslationBase.of(context).patientProfile,
body: PatientProfileWidget(),
);
}

@ -17,6 +17,7 @@ import '../../../../widgets/shared/app_scaffold_widget.dart';
import '../../../../widgets/shared/app_texts_widget.dart';
import '../../../../widgets/shared/dr_app_circular_progress_Indeicator.dart';
import '../../../../widgets/shared/errors/dr_app_embedded_error.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
@ -83,7 +84,7 @@ class _PrescriptionScreenState extends State<PrescriptionScreen> {
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "Prescriptions",
appBarTitle: TranslationBase.of(context).prescription,
body: patientsProv.isLoading
? DrAppCircularProgressIndeicator()
: patientsProv.isError

@ -14,6 +14,7 @@ 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();
@ -75,14 +76,14 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "Progress Note",
appBarTitle: TranslationBase.of(context).progressNote,
body: patientsProv.isLoading
? DrAppCircularProgressIndeicator()
: patientsProv.isError
? DrAppEmbeddedError(error: patientsProv.error)
: notesList == null
? DrAppEmbeddedError(
error: 'You don\'t have any Progress Note')
error: TranslationBase.of(context).errorNoProgressNote)
: Column(
children: <Widget>[
Container(
@ -93,8 +94,8 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
onChanged: (String str) {
this.searchData(str);
},
decoration:
buildInputDecoration(context, 'Search Note'),
decoration: buildInputDecoration(context,
TranslationBase.of(context).searchNote),
),
),
Expanded(
@ -116,7 +117,8 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
ExpansionTile(
title: Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
AppText(
notesList[index]
@ -138,12 +140,12 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
),
children: <Widget>[
Divider(
color: Colors.black,
height: 20,
thickness: 1,
indent: 0,
endIndent: 0,
),
color: Colors.black,
height: 20,
thickness: 1,
indent: 0,
endIndent: 0,
),
AppText(
notesList[index]["Notes"],
margin: 5,
@ -182,7 +184,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
if (strExist) {
filteredNotesList = null;
filteredNotesList = patientsProv.patientProgressNoteList
filteredNotesList = patientsProv.patientProgressNoteList
.where((note) =>
note["DoctorName"].toString().contains(str.toUpperCase()))
.toList();

@ -15,6 +15,7 @@ import '../../../../widgets/shared/app_texts_widget.dart';
import '../../../../widgets/shared/card_with_bg_widget.dart';
import '../../../../widgets/shared/dr_app_circular_progress_Indeicator.dart';
import '../../../../widgets/shared/profile_image_widget.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
@ -75,116 +76,124 @@ class _RadiologyScreenState extends State<RadiologyScreen> {
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "Radiology",
appBarTitle: TranslationBase.of(context).radiology,
body: patientsProv.isLoading
? DrAppCircularProgressIndeicator()
: patientsProv.isError
? DrAppEmbeddedError(error: patientsProv.error)
: patientsProv.patientRadiologyList.length == 0
? DrAppEmbeddedError(error: 'You don\'t have any Vital Sign')
: Container(
margin: EdgeInsets.fromLTRB(
SizeConfig.realScreenWidth * 0.05,
0,
SizeConfig.realScreenWidth * 0.05,
0),
child: Container(
margin: EdgeInsets.symmetric(vertical: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(20.0),
),
),
child: ListView.builder(
itemCount: patientsProv.patientRadiologyList.length,
itemBuilder: (BuildContext context, int index) {
return InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => RadiologyReportScreen(reportData: patientsProv.patientRadiologyList[index].reportData,)),);
},
child: Container(
padding: EdgeInsets.all(10),
margin: EdgeInsets.all(10),
decoration: BoxDecoration(
borderRadius:
BorderRadius.all(Radius.circular(10)),
border: Border(
bottom: BorderSide(
color: Colors.grey, width: 0.5),
top: BorderSide(
color: Colors.grey, width: 0.5),
left: BorderSide(
color: Colors.grey, width: 0.5),
right: BorderSide(
color: Colors.grey, width: 0.5),
),
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Row(
children: <Widget>[
LargeAvatar(
url: patientsProv
.patientRadiologyList[index]
.doctorImageURL,
),
Expanded(
child: Padding(
padding:
const EdgeInsets.fromLTRB(
8, 0, 0, 0),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
AppText(
'${patientsProv.patientRadiologyList[index].doctorName}',
fontSize: 2.5 *
SizeConfig
.textMultiplier,
fontWeight:
FontWeight.bold),
SizedBox(
height: 8,
),
AppText(
'Invoice No:${patientsProv.patientRadiologyList[index].invoiceNo}',
fontSize: 2 *
SizeConfig
.textMultiplier,
),
SizedBox(
height: 8,
),
AppText(
' ${patientsProv.patientRadiologyList[index].clinicName}',
fontSize: 2 *
SizeConfig
.textMultiplier,
color: Theme.of(context)
.primaryColor,
),
SizedBox(
height: 8,
? DrAppEmbeddedError(error: patientsProv.error)
: patientsProv.patientRadiologyList.length == 0
? DrAppEmbeddedError(
error: TranslationBase.of(context).errorNoVitalSign)
: Container(
margin: EdgeInsets.fromLTRB(
SizeConfig.realScreenWidth * 0.05,
0,
SizeConfig.realScreenWidth * 0.05,
0),
child: Container(
margin: EdgeInsets.symmetric(vertical: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(20.0),
),
),
child: ListView.builder(
itemCount: patientsProv.patientRadiologyList.length,
itemBuilder: (BuildContext context, int index) {
return InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
RadiologyReportScreen(
reportData: patientsProv
.patientRadiologyList[index]
.reportData,
)),
);
},
child: Container(
padding: EdgeInsets.all(10),
margin: EdgeInsets.all(10),
decoration: BoxDecoration(
borderRadius:
BorderRadius.all(Radius.circular(10)),
border: Border(
bottom: BorderSide(
color: Colors.grey, width: 0.5),
top: BorderSide(
color: Colors.grey, width: 0.5),
left: BorderSide(
color: Colors.grey, width: 0.5),
right: BorderSide(
color: Colors.grey, width: 0.5),
),
],
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Row(
children: <Widget>[
LargeAvatar(
url: patientsProv
.patientRadiologyList[index]
.doctorImageURL,
),
Expanded(
child: Padding(
padding:
const EdgeInsets.fromLTRB(
8, 0, 0, 0),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
AppText(
'${patientsProv.patientRadiologyList[index].doctorName}',
fontSize: 2.5 *
SizeConfig
.textMultiplier,
fontWeight:
FontWeight.bold),
SizedBox(
height: 8,
),
AppText(
'Invoice No:${patientsProv.patientRadiologyList[index].invoiceNo}',
fontSize: 2 *
SizeConfig
.textMultiplier,
),
SizedBox(
height: 8,
),
AppText(
' ${patientsProv.patientRadiologyList[index].clinicName}',
fontSize: 2 *
SizeConfig
.textMultiplier,
color: Theme.of(context)
.primaryColor,
),
SizedBox(
height: 8,
),
],
),
),
)
],
),
],
),
),
),
)
],
),
],
);
}),
),
),
),
);
}),
),
),
);
}
}

@ -14,6 +14,7 @@ import '../../../../routes.dart';
import '../../../../screens/patients/profile/vital_sign/vital_sign_item.dart';
import '../../../../util/dr_app_shared_pref.dart';
import '../../../../widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
@ -30,9 +31,9 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
PatientsProvider patientsProv;
var _isInit = true;
/*
*@author: Elham Rababah
*@Date:28/4/2020
/*
*@author: Elham Rababah
*@Date:28/4/2020
*@param: context
*@return:
*@desc: getVitalSignList Function
@ -76,7 +77,7 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
vitalSing = routeArgs['vitalSing'];
return AppScaffold(
appBarTitle: "vital Sing",
appBarTitle: TranslationBase.of(context).vitalSign,
body: patientsProv.isLoading
? DrAppCircularProgressIndeicator()
: patientsProv.isError
@ -101,9 +102,13 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
},
child: Container(
child: VitalSignItem(
des: 'Body Measurements',
des: TranslationBase.of(context)
.bodyMeasurements,
url: url + 'heartbeat.png',
lastVal: patientsProv.patientVitalSignOrderdSubList[0].heightCm.toString(),
lastVal: patientsProv
.patientVitalSignOrderdSubList[0]
.heightCm
.toString(),
unit: 'Cm',
),
),
@ -115,16 +120,18 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
arguments: {
'title': 'Temperature',
'key': vitalSignDetails.temperature,
});
},
child: Container(
child: VitalSignItem(
des: 'Temperature',
des: TranslationBase.of(context)
.temperature,
url: url + 'heartbeat.png',
lastVal: patientsProv.patientVitalSignOrderdSubList[0].temperatureCelcius.toString(),
lastVal: patientsProv
.patientVitalSignOrderdSubList[0]
.temperatureCelcius
.toString(),
unit: 'C',
),
),
),
@ -142,10 +149,13 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
});
},
child: VitalSignItem(
des: 'Pulse',
des: TranslationBase.of(context).pulse,
url: url + 'heartbeat.png',
lastVal: patientsProv.patientVitalSignOrderdSubList[0].pulseBeatPerMinute.toString(),
unit: 'M',
lastVal: patientsProv
.patientVitalSignOrderdSubList[0]
.pulseBeatPerMinute
.toString(),
unit: 'M',
),
),
InkWell(
@ -158,11 +168,14 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
});
},
child: VitalSignItem(
des: 'Respiration',
des:
TranslationBase.of(context).respiration,
url: url + 'heartbeat.png',
lastVal: patientsProv.patientVitalSignOrderdSubList[0].respirationBeatPerMinute.toString(),
unit: 'M',
lastVal: patientsProv
.patientVitalSignOrderdSubList[0]
.respirationBeatPerMinute
.toString(),
unit: 'M',
),
),
],
@ -179,10 +192,14 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
});
},
child: VitalSignItem(
des: 'Blood Pressure',
des: TranslationBase.of(context)
.bloodPressure,
url: url + 'heartbeat.png',
lastVal: patientsProv.patientVitalSignOrderdSubList[0].bloodPressure.toString(),
unit: '',
lastVal: patientsProv
.patientVitalSignOrderdSubList[0]
.bloodPressure
.toString(),
unit: '',
),
),
InkWell(
@ -195,10 +212,13 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
});
},
child: VitalSignItem(
des: 'Oxygenation',
des:
TranslationBase.of(context).oxygenation,
url: url + 'heartbeat.png',
lastVal: patientsProv.patientVitalSignOrderdSubList[0].fIO2.toString(),
unit: '',
lastVal: patientsProv
.patientVitalSignOrderdSubList[0].fIO2
.toString(),
unit: '',
),
),
],
@ -216,7 +236,7 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
});
},
child: VitalSignItem(
des: 'Pain Scale',
des: TranslationBase.of(context).painScale,
url: url + 'heartbeat.png',
),
),

@ -1,7 +1,4 @@
import 'package:doctor_app_flutter/models/doctor_profile_model.dart';
import 'package:doctor_app_flutter/widgets/shared/app_drawer_widget.dart';
//////////////
import 'package:flutter/material.dart';
import '../config/size_config.dart';
@ -9,12 +6,13 @@ import '../widgets/shared/app_scaffold_widget.dart';
import '../widgets/shared/drawer_item_widget.dart';
import '../widgets/shared/profile_image_widget.dart';
import '../widgets/shared/rounded_container_widget.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
class ProfileScreen extends StatefulWidget {
ProfileScreen({Key key, this.title,this.doctorProfileall}) : super(key: key);
ProfileScreen({Key key, this.title, this.doctorProfileall}) : super(key: key);
final String title;
DoctorProfileModel doctorProfileall ;
DoctorProfileModel doctorProfileall;
@override
_ProfileScreenState createState() => _ProfileScreenState();
@ -22,19 +20,19 @@ class ProfileScreen extends StatefulWidget {
class _ProfileScreenState extends State<ProfileScreen> {
//**************************
DoctorProfileModel doctorProfile ;
//AppDrawer dr;
DoctorProfileModel doctorProfile;
//AppDrawer dr;
//******************
@override
Widget build(BuildContext context) {
Map arg=ModalRoute.of(context).settings.arguments as Map;//ModalRoute.of(context).settings.arguments;
doctorProfile = arg['doctorProfileall'];
print("******************");
//print(doctorProfile.doctorName);
print("******************");
Map arg = ModalRoute.of(context).settings.arguments
as Map; //ModalRoute.of(context).settings.arguments;
doctorProfile = arg['doctorProfileall'];
print("******************");
//print(doctorProfile.doctorName);
print("******************");
return AppScaffold(
appBarTitle: 'Profile',
appBarTitle: TranslationBase.of(context).profile,
body: ListView(padding: EdgeInsets.zero, children: <Widget>[
Container(
height:MediaQuery.of(context).size.height * 0.35, //SizeConfig.heightMultiplier * 35,
@ -54,37 +52,35 @@ class _ProfileScreenState extends State<ProfileScreen> {
),
),
),
),
RoundedContainer(
child: ListView(
children: <Widget>[
DrawerItem(
"Gender"
,
TranslationBase.of(context).gender,
Icons.person_pin,
color: Colors.black,
subTitle: doctorProfile.genderDescription//"Male"
subTitle: doctorProfile.genderDescription //"Male"
,
),
DrawerItem(TranslationBase.of(context).clinic, Icons.build,
color: Colors.black,
subTitle:
doctorProfile.clinicDescription //"Neurology Clinic",
),
DrawerItem(
"Clinic",
Icons.build,
color: Colors.black,
subTitle: doctorProfile.clinicDescription//"Neurology Clinic",
),
DrawerItem(
"Hospital",
TranslationBase.of(context).hospital,
Icons.local_hospital,
color: Colors.black,
subTitle: doctorProfile.projectName,//"Al-Takkassussi",
subTitle: doctorProfile.projectName, //"Al-Takkassussi",
),
DrawerItem(
"Speciality",
TranslationBase.of(context).speciality,
Icons.crop_square,
color: Colors.black,
subTitle: doctorProfile.doctorRate==0 ?"being bad":"being great",
subTitle: doctorProfile.doctorRate == 0
? "being bad"
: "being great",
),
],
),

@ -86,6 +86,61 @@ class TranslationBase {
String get search => localizedValues['search'][locale.languageCode];
String get onlyArrivedPatient =>
localizedValues['onlyArrivedPatient'][locale.languageCode];
String get searchMedicineNameHere =>
localizedValues['searchMedicineNameHere'][locale.languageCode];
String get youCanFind => localizedValues['youCanFind'][locale.languageCode];
String get itemsInSearch =>
localizedValues['itemsInSearch'][locale.languageCode];
String get qrReader => localizedValues['qrReader'][locale.languageCode];
String get startScanning =>
localizedValues['startScanning'][locale.languageCode];
String get scanQrCode => localizedValues['scanQrCode'][locale.languageCode];
String get scanQr => localizedValues['scanQr'][locale.languageCode];
String get profile => localizedValues['profile'][locale.languageCode];
String get gender => localizedValues['gender'][locale.languageCode];
String get clinic => localizedValues['clinic'][locale.languageCode];
String get hospital => localizedValues['hospital'][locale.languageCode];
String get speciality => localizedValues['speciality'][locale.languageCode];
String get errorMessage =>
localizedValues['errorMessage'][locale.languageCode];
String get patientProfile =>
localizedValues['patientProfile'][locale.languageCode];
String get vitalSign => localizedValues['vitalSign'][locale.languageCode];
String get labOrder => localizedValues['labOrder'][locale.languageCode];
String get prescription =>
localizedValues['prescription'][locale.languageCode];
String get insuranceApprovals =>
localizedValues['insuranceApprovals'][locale.languageCode];
String get bodyMeasurements =>
localizedValues['bodyMeasurements'][locale.languageCode];
String get temperature => localizedValues['temperature'][locale.languageCode];
String get pulse => localizedValues['pulse'][locale.languageCode];
String get respiration => localizedValues['respiration'][locale.languageCode];
String get bloodPressure =>
localizedValues['bloodPressure'][locale.languageCode];
String get oxygenation => localizedValues['oxygenation'][locale.languageCode];
String get painScale => localizedValues['painScale'][locale.languageCode];
String get errorNoVitalSign =>
localizedValues['errorNoVitalSign'][locale.languageCode];
String get labOrders => localizedValues['labOrders'][locale.languageCode];
String get errorNoLabOrders =>
localizedValues['errorNoLabOrders'][locale.languageCode];
String get answerThePatient =>
localizedValues['answerThePatient'][locale.languageCode];
String get pleaseEnterAnswer =>
localizedValues['pleaseEnterAnswer'][locale.languageCode];
String get replay => localizedValues['replay'][locale.languageCode];
String get progressNote =>
localizedValues['progressNote'][locale.languageCode];
String get searchNote => localizedValues['searchNote'][locale.languageCode];
String get errorNoProgressNote =>
localizedValues['errorNoProgressNote'][locale.languageCode];
String get invoiceNo => localizedValues['invoiceNo:'][locale.languageCode];
String get generalResult =>
localizedValues['generalResult'][locale.languageCode];
String get description => localizedValues['description'][locale.languageCode];
String get value => localizedValues['value'][locale.languageCode];
String get range => localizedValues['range'][locale.languageCode];
}
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -6,6 +6,7 @@ import 'package:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
class LabResultWidget extends StatefulWidget {
final List<LabResult> labResult;
@ -30,7 +31,7 @@ class _LabResultWidgetState extends State<LabResultWidget> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
'General Result',
TranslationBase.of(context).generalResult,
fontSize: 2.5 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
@ -57,23 +58,18 @@ class _LabResultWidgetState extends State<LabResultWidget> {
margin: EdgeInsets.only(top: 10),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(10)),
),
child: Column(
children: widget.labResult.map((result) {
return Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.all(Radius.circular(10)),
borderRadius: BorderRadius.all(Radius.circular(10)),
border: Border(
bottom: BorderSide(
color: Colors.grey, width: 0.5),
top: BorderSide(
color: Colors.grey, width: 0.5),
left: BorderSide(
color: Colors.grey, width: 0.5),
right: BorderSide(
color: Colors.grey, width: 0.5),
bottom:
BorderSide(color: Colors.grey, width: 0.5),
top: BorderSide(color: Colors.grey, width: 0.5),
left: BorderSide(color: Colors.grey, width: 0.5),
right: BorderSide(color: Colors.grey, width: 0.5),
),
),
margin: EdgeInsets.only(top: 10),
@ -92,7 +88,8 @@ class _LabResultWidgetState extends State<LabResultWidget> {
),
child: Center(
child: Texts(
'Description',
TranslationBase.of(context)
.description,
color: Colors.white,
),
),
@ -103,7 +100,9 @@ class _LabResultWidgetState extends State<LabResultWidget> {
child: Container(
color: Hexcolor('#515B5D'),
child: Center(
child: Texts('Value', color: Colors.white),
child: Texts(
TranslationBase.of(context).value,
color: Colors.white),
),
height: 60),
),
@ -116,7 +115,9 @@ class _LabResultWidgetState extends State<LabResultWidget> {
),
),
child: Center(
child: Texts('Range', color: Colors.white),
child: Texts(
TranslationBase.of(context).range,
color: Colors.white),
),
height: 60),
),
@ -143,8 +144,7 @@ class _LabResultWidgetState extends State<LabResultWidget> {
Expanded(
child: Container(
child: Center(
child: Texts(
'${result.resultValue}',
child: Texts('${result.resultValue}',
color: Colors.grey[800]),
),
height: 60),

@ -11,6 +11,7 @@ import 'package:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
class MyReferralPatientWidget extends StatefulWidget {
final MyReferralPatientModel myReferralPatientModel;
@ -31,7 +32,8 @@ class _MyReferralPatientWidgetState extends State<MyReferralPatientWidget> {
@override
void initState() {
answerController = new TextEditingController(text: widget.myReferralPatientModel.referredDoctorRemarks ?? '');
answerController = new TextEditingController(
text: widget.myReferralPatientModel.referredDoctorRemarks ?? '');
super.initState();
}
@ -59,260 +61,285 @@ class _MyReferralPatientWidgetState extends State<MyReferralPatientWidget> {
Icon(_showDetails
? Icons.keyboard_arrow_up
: Icons.keyboard_arrow_down),
],
),
),
!_showDetails
? Container()
: AnimatedContainer(
duration: Duration(milliseconds: 200),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
SizedBox(height: 5,),
Divider(color: Color(0xFF000000),height: 0.5,),
Table(
border: TableBorder.symmetric(inside: BorderSide(width: 0.5),),
children: [
TableRow(
duration: Duration(milliseconds: 200),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
SizedBox(
height: 5,
),
Divider(
color: Color(0xFF000000),
height: 0.5,
),
Table(
border: TableBorder.symmetric(
inside: BorderSide(width: 0.5),
),
children: [
Container(
margin: EdgeInsets.all(2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
'File No',
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
SizedBox(height: 5,),
AppText(
'${widget.myReferralPatientModel.referringDoctor}',
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
)
],
TableRow(children: [
Container(
margin: EdgeInsets.all(2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context).fileNo,
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
SizedBox(
height: 5,
),
AppText(
'${widget.myReferralPatientModel.referringDoctor}',
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
)
],
),
),
),
Container(
margin: EdgeInsets.only(left: 4,top: 2.5,right: 2.5,bottom: 2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
'Referring Doctor',
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
SizedBox(height: 5,),
AppText(
widget.myReferralPatientModel
.referringClinicDescription,
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
)
],
Container(
margin: EdgeInsets.only(
left: 4, top: 2.5, right: 2.5, bottom: 2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context)
.referralDoctor,
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
SizedBox(
height: 5,
),
AppText(
widget.myReferralPatientModel
.referringClinicDescription,
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
)
],
),
),
),
]
),
TableRow(
children: [
Container(
margin: EdgeInsets.all(2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
AppText(
'Referring Clinic',
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
SizedBox(height: 5,),
AppText(
'${widget.myReferralPatientModel.referringClinicDescription}',
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
)
],
]),
TableRow(children: [
Container(
margin: EdgeInsets.all(2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context)
.referringClinic,
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
SizedBox(
height: 5,
),
AppText(
'${widget.myReferralPatientModel.referringClinicDescription}',
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
)
],
),
),
),
Container(
margin: EdgeInsets.only(left: 4,top: 2.5,right: 2.5,bottom: 2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
AppText(
'Frequency',
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
Container(
margin: EdgeInsets.only(
left: 4, top: 2.5, right: 2.5, bottom: 2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context).frequency,
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
SizedBox(
height: 5,
),
AppText(
widget.myReferralPatientModel
.frequencyDescription,
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
)
],
),
)
]),
TableRow(
children: [
Container(
margin: EdgeInsets.all(2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context).priority,
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
SizedBox(
height: 5,
),
AppText(
'${widget.myReferralPatientModel.priorityDescription}',
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
)
],
),
SizedBox(height: 5,),
AppText(
widget.myReferralPatientModel
.frequencyDescription,
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
)
],
),
)
]
),
TableRow(
children: [
Container(
margin: EdgeInsets.all(2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
AppText(
'Priority',
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
SizedBox(height: 5,),
AppText(
'${widget.myReferralPatientModel.priorityDescription}',
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
Container(
margin: EdgeInsets.only(
left: 4,
top: 2.5,
right: 2.5,
bottom: 2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context)
.maxResponseTime,
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
SizedBox(
height: 5,
),
AppText(
Helpers.getDateFormatted(widget
.myReferralPatientModel
.mAXResponseTime),
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
)
],
),
)
],
),
),
Container(
margin: EdgeInsets.only(left: 4,top: 2.5,right: 2.5,bottom: 2.5),
padding: EdgeInsets.all(5),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
AppText(
'Max Response Time',
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
SizedBox(height: 5,),
AppText(
Helpers.getDateFormatted(widget
.myReferralPatientModel
.mAXResponseTime),
fontSize:
1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
)
],
],
),
Divider(
color: Color(0xFF000000),
height: 0.5,
),
SizedBox(
height: 5,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context)
.clinicDetailsandRemarks,
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
textAlign: TextAlign.start,
),
)
],
),
],
),
Divider(color: Color(0xFF000000),height: 0.5,),
SizedBox(
height: 5,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
'Clinic Details and Remarks',
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
textAlign: TextAlign.start,),
Texts(
'${widget.myReferralPatientModel.referringDoctorRemarks}',
style: "bodyText1",
readMore: true,
Texts(
'${widget.myReferralPatientModel.referringDoctorRemarks}',
style: "bodyText1",
readMore: true,
textAlign: TextAlign.start,
maxLength: 100)
],
),
SizedBox(
height: 5,
),
AppText(
TranslationBase.of(context).answerSuggestions,
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
textAlign: TextAlign.start,
maxLength: 100)
],
),
SizedBox(
height: 5,
),
AppText(
'Answer/Suggestions',
fontSize: 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
textAlign: TextAlign.start,
),
SizedBox(
height: 5,
),
Form(
key: _formKey,
child: TextFields(
maxLines: 2,
minLines: 2,
hintText: 'Answer the patient',
fontWeight: FontWeight.normal,
initialValue: widget.myReferralPatientModel.referredDoctorRemarks ?? '',
readOnly: _isLoading,
validator: (value) {
if (value.isEmpty)
return "please enter answer";
else
return null;
},
),
),
SizedBox(height: 10.0),
SizedBox(height: 10.0),
Container(
width: double.infinity,
margin: EdgeInsets.only(left: 10,right: 10),
child: Button(
onTap: () async {
final form = _formKey.currentState;
if (form.validate()) {
setState(() {
_isLoading = true;
});
try {
await Provider.of<MyReferralPatientProvider>(context, listen: false).replay(answerController.text.toString(), widget.myReferralPatientModel);
setState(() {
_isLoading = false;
});
DrAppToastMsg.showSuccesToast('Reply Successfully');
} catch (e) {
setState(() {
_isLoading = false;
});
DrAppToastMsg.showErrorToast(e);
}
}
},
title: 'Reply',
loading: _isLoading,
),
SizedBox(
height: 5,
),
Form(
key: _formKey,
child: TextFields(
maxLines: 2,
minLines: 2,
hintText:
TranslationBase.of(context).answerThePatient,
fontWeight: FontWeight.normal,
initialValue: widget.myReferralPatientModel
.referredDoctorRemarks ??
'',
readOnly: _isLoading,
validator: (value) {
if (value.isEmpty)
return TranslationBase.of(context)
.pleaseEnterAnswer;
else
return null;
},
),
),
SizedBox(height: 10.0),
SizedBox(height: 10.0),
Container(
width: double.infinity,
margin: EdgeInsets.only(left: 10, right: 10),
child: Button(
onTap: () async {
final form = _formKey.currentState;
if (form.validate()) {
setState(() {
_isLoading = true;
});
try {
await Provider.of<MyReferralPatientProvider>(
context,
listen: false)
.replay(answerController.text.toString(),
widget.myReferralPatientModel);
setState(() {
_isLoading = false;
});
DrAppToastMsg.showSuccesToast(
'Reply Successfully');
} catch (e) {
setState(() {
_isLoading = false;
});
DrAppToastMsg.showErrorToast(e);
}
}
},
title: TranslationBase.of(context).replay,
loading: _isLoading,
),
)
],
),
)
],
),
)
],
),
),

@ -8,6 +8,7 @@ import 'package:hexcolor/hexcolor.dart';
import '../../../config/size_config.dart';
import '../../shared/app_texts_widget.dart';
import '../../shared/rounded_container_widget.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
/*
*@author: Elham Rababah
@ -32,26 +33,26 @@ class ProfileMedicalInfoWidget extends StatelessWidget {
PatientProfileButton(
key: key,
patient: patient,
name: 'Vital Sign',
name: TranslationBase.of(context).vitalSign,
route: VITAL_SIGN_DETAILS,
icon: 'heartbeat.png'),
PatientProfileButton(
key: key,
patient: patient,
route: LAB_ORDERS,
name: 'Lab Order',
name: TranslationBase.of(context).labOrder,
icon: 'lab.png'),
PatientProfileButton(
key: key,
patient: patient,
route: PRESCRIPTIONS,
name: 'Prescription',
name: TranslationBase.of(context).prescription,
icon: 'note.png'),
PatientProfileButton(
key: key,
patient: patient,
route: RADIOLOGY,
name: 'Radiology',
name: TranslationBase.of(context).radiology,
icon: 'radiology-1.png'),
Visibility(
visible: selectedPatientType != 0 && selectedPatientType != 5,
@ -65,7 +66,7 @@ class ProfileMedicalInfoWidget extends StatelessWidget {
key: key,
patient: patient,
route: PATIENT_INSURANCE_APPROVALS,
name: 'Insurance Aprovals',
name: TranslationBase.of(context).insuranceApprovals,
icon: 'lab.png'),
Visibility(
visible: selectedPatientType != 0 &&
@ -304,13 +305,13 @@ class PatientProfileButton extends StatelessWidget {
),
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Container(
padding: EdgeInsets.all(10),
child: new Image.asset(url + icon))
],
))
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Container(
padding: EdgeInsets.all(10),
child: new Image.asset(url + icon))
],
))
]),
),
decoration: BoxDecoration(

Loading…
Cancel
Save