ipd-changes-for-vida-plus
Sultan Khan 6 years ago
commit fa80d62e7d

@ -18,7 +18,7 @@ PODS:
- Firebase/Messaging (6.33.0):
- Firebase/CoreOnly
- FirebaseMessaging (~> 4.7.0)
- firebase_core (0.5.2):
- firebase_core (0.5.3):
- Firebase/CoreOnly (~> 6.33.0)
- Flutter
- firebase_core_web (0.1.0):
@ -250,7 +250,7 @@ SPEC CHECKSUMS:
connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191
device_info: d7d233b645a32c40dfdc212de5cf646ca482f175
Firebase: 8db6f2d1b2c5e2984efba4949a145875a8f65fe5
firebase_core: 350ba329d1641211bc6183a3236893cafdacfea7
firebase_core: 5d6a02f3d85acd5f8321c2d6d62877626a670659
firebase_core_web: d501d8b946b60c8af265428ce483b0fff5ad52d1
firebase_messaging: 0aea2cd5885b65e19ede58ee3507f485c992cc75
FirebaseCore: d889d9e12535b7f36ac8bfbf1713a0836a3012cd
@ -292,4 +292,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: 649616dc336b3659ac6b2b25159d8e488e042b69
COCOAPODS: 1.10.0.rc.1
COCOAPODS: 1.10.1

@ -4,7 +4,7 @@ class GetProcedureReqModel {
int pageSize;
int pageIndex;
List<String> search;
dynamic categoryId;
dynamic category;
String vidaAuthTokenID;
GetProcedureReqModel(
@ -13,7 +13,7 @@ class GetProcedureReqModel {
this.pageSize,
this.pageIndex,
this.search,
this.categoryId,
this.category,
this.vidaAuthTokenID});
GetProcedureReqModel.fromJson(Map<String, dynamic> json) {
@ -22,7 +22,7 @@ class GetProcedureReqModel {
pageSize = json['PageSize'];
pageIndex = json['PageIndex'];
search = json['Search'].cast<String>();
categoryId = json['CategoryId'];
category = json['Category'];
vidaAuthTokenID = json['VidaAuthTokenID'];
}
@ -33,7 +33,7 @@ class GetProcedureReqModel {
data['PageSize'] = this.pageSize;
data['PageIndex'] = this.pageIndex;
data['Search'] = this.search;
data['CategoryId'] = this.categoryId;
data['Category'] = this.category;
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
return data;
}

@ -198,9 +198,9 @@ class PatientReferralService extends LookupService {
Map<String, dynamic> body = Map();
body['PatientMRN'] = pendingReferral.patientID;
body['AppointmentNo'] = pendingReferral.sourceAppointmentNo;
body['SetupID'] = pendingReferral.sourceSetupID;
body['ProjectID'] = pendingReferral.sourceProjectId;
body['AppointmentNo'] = pendingReferral.targetAppointmentNo;
body['SetupID'] = pendingReferral.targetSetupID;
body['ProjectID'] = pendingReferral.targetProjectId;
body['IsAccepted'] = isAccepted;
body['PatientName'] = pendingReferral.patientName;
body['ReferralResponse'] = pendingReferral.remarksFromSource;

@ -106,8 +106,8 @@ class UcafService extends LookupService {
hasError = false;
Map<String, dynamic> body = Map();
body['PatientMRN'] = patient.patientMRN;
// body['AppointmentNo'] = patient.appointmentNo;
// body['EpisodeID'] = patient.episodeNo;
body['AppointmentNo'] = patient.appointmentNo;
body['EpisodeID'] = patient.episodeNo;
await baseAppClient.post (GET_ORDER_PROCEDURE,
onSuccess: (dynamic response, int statusCode) {

@ -73,13 +73,14 @@ class ProcedureService extends BaseService {
}, body: Map());
}
Future getProcedureCategory({String categoryName}) async {
Future getProcedureCategory({String categoryName, String categoryID}) async {
_getProcedureCategoriseReqModel = GetProcedureReqModel(
search: [categoryName],
search: [""],
patientMRN: 0,
pageIndex: 1,
pageIndex: 0,
clinicId: 0,
pageSize: 300,
pageSize: 0,
category: categoryID,
);
hasError = false;
_categoriesList.clear();

@ -29,11 +29,12 @@ class ProcedureViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
Future getProcedureCategory({String categoryName}) async {
Future getProcedureCategory({String categoryName, String categoryID}) async {
hasError = false;
//_insuranceCardService.clearInsuranceCard();
setState(ViewState.BusyLocal);
await _procedureService.getProcedureCategory(categoryName: categoryName);
setState(ViewState.Busy);
await _procedureService.getProcedureCategory(
categoryName: categoryName, categoryID: categoryID);
if (_procedureService.hasError) {
error = _procedureService.error;
setState(ViewState.ErrorLocal);

@ -54,6 +54,7 @@ class PatiantInformtion {
String genderDescription;
String nursingStationName;
String startTime;
String visitType;
PatiantInformtion({
this.list,
@ -105,7 +106,9 @@ class PatiantInformtion {
this.genderInt,
this.isSigned,
this.medicationOrders,
this.nationality,this.patientMRN
this.nationality,
this.patientMRN,
this.visitType,
});
factory PatiantInformtion.fromJson(Map<String, dynamic> json) =>
@ -159,6 +162,7 @@ class PatiantInformtion {
medicationOrders :json['medicationOrders'],
nationality :json['nationality']??json['NationalityNameN'],
patientMRN :json['patientMRN'] ?? json['PatientMRN'],
visitType :json['visitType'] ?? json['visitType'],
);
}

@ -46,6 +46,10 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
bool isFormSubmitted = false;
FocusNode _nodeText1 = FocusNode();
FocusNode _nodeText2 = FocusNode();
FocusNode _nodeText3 = FocusNode();
var _patientSearchFormValues = PatientModel(
FirstName: "0",
MiddleName: "0",
@ -110,7 +114,11 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
@override
Widget build(BuildContext context) {
projectsProvider = Provider.of(context);
return AppScaffold(
return GestureDetector(
onTap: (){
FocusScope.of(context).requestFocus(new FocusNode());
},
child: AppScaffold(
appBarTitle: TranslationBase.of(context).searchPatient,
body: ListView(
children: <Widget>[
@ -344,7 +352,9 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
TranslationBase.of(context).phoneNumber,
borderColor: Colors.white,
textInputType: TextInputType.number,
textInputAction: TextInputAction.done,
inputFormatter: ONLY_NUMBERS,
focusNode: _nodeText1,
onSaved: (value) {
value == null || value == ''
? _patientSearchFormValues
@ -378,6 +388,7 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
borderColor: Colors.white,
textInputType: TextInputType.number,
inputFormatter: ONLY_NUMBERS,
focusNode: _nodeText2,
onSaved: (value) {
value == null || value==''
? _patientSearchFormValues.setPatientID =
@ -407,6 +418,7 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
TranslationBase.of(context).patientFile,
borderColor: Colors.white,
textInputType: TextInputType.number,
focusNode: _nodeText3,
inputFormatter: ONLY_NUMBERS,
onSaved: (value) {},
),
@ -478,6 +490,7 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
),
),
],
));
)),
);
}
}

@ -1,12 +1,3 @@
/*
*@author: Amjad Amireh Merge to Elham rababah
*@Date:27/4/2020
*@param:
*@return:PatientsScreen
*@desc:
*/
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
@ -19,6 +10,7 @@ import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/PatientCard.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_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';
@ -93,14 +85,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
}
}
/*
*@author: Amjad Amireh
*@Date:5/5/2020
*@param:
*@return:Convert time from Milesecond to date with time
*@desc:
*/
convertDate(String str) {
String timeConvert;
const start = "/Date(";
@ -129,14 +113,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
return newDateformat.toString();
}
/*
*@author: Amjad Amireh
*@Date:5/5/2020
*@param:
*@return:Convert time from Milesecond to date
*@desc:
*/
convertDateFormat(String str) {
String timeConvert;
const start = "/Date(";
@ -156,24 +132,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
return newDate.toString();
}
convertDateFormat2(String str) {
String timeConvert;
const start = "/Date(";
const end = "+0300)";
final startIndex = str.indexOf(start);
final endIndex = str.indexOf(end, startIndex + start.length);
var date = new DateTime.fromMillisecondsSinceEpoch(
int.parse(str.substring(startIndex + start.length, endIndex)));
String newDate = date.year.toString() +
"/" +
date.month.toString().padLeft(2, '0') +
"/" +
date.day.toString().padLeft(2, '0');
return newDate.toString();
}
filterBooking(String str) {
this.responseModelList = this.responseModelList2;
@ -228,14 +186,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
return TranslationBase.of(context).all;
}
/*
*@author: Amjad Amireh Modified New design
*@Date:21/5/2020
*@param:
*@return:PatientsScreen
*@desc:
*/
@override
Widget build(BuildContext context) {
_locations = [
@ -401,309 +351,8 @@ class _PatientsScreenState extends State<PatientsScreen> {
children: responseModelList
.map((PatiantInformtion
item) {
return Container(
decoration:
myBoxDecoration(),
child: InkWell(
child: Row(
children: <Widget>[
Column(
mainAxisAlignment:
MainAxisAlignment
.start,
children: <
Widget>[
Padding(
padding: EdgeInsets
.only(
left:
12.0),
child:
Container(
decoration:
BoxDecoration(
boxShadow: [
BoxShadow(
color: Color.fromRGBO(
0,
0,
0,
0.08),
offset: Offset(0.0,
5.0),
blurRadius:
16.0)
],
borderRadius:
BorderRadius.all(
Radius.circular(35.0)),
color: Color(
0xffCCCCCC),
),
width: 70,
height: 70,
child: Icon(
item.genderDescription ==
"Male"
? DoctorApp
.male
: DoctorApp
.female_icon,
size: 70,
color: Colors
.white,
),
),
),
],
),
SizedBox(
width: 10,
),
Expanded(
child: Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: [
Column(
children: [
SizedBox(
height:
10.0,
),
AppText(
item.firstName +
" " +
item.lastName,
fontSize:
2.0 * SizeConfig.textMultiplier,
fontWeight:
FontWeight.bold,
backGroundcolor:
Colors.white,
),
SizedBox(
height:
5,
),
],
),
Row(
mainAxisAlignment:
MainAxisAlignment
.spaceAround,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <
Widget>[
Wrap(
children: [
AppText(
TranslationBase.of(context).fileNo,
fontSize: 1.8 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
),
AppText(
item.patientId.toString(),
fontSize: 1.8 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
backGroundcolor: Colors.white,
),
SizedBox(
width: 10,
),
],
),
SizedBox(
height:
2.5,
),
Container(
child:
AppText(
TranslationBase.of(context).nationality + " : " + (item.nationalityName ?? item.nationality),
fontSize: 1.8 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
),
margin:
EdgeInsets.only(right: projectsProvider.isArabic ? 0 : 10, left: projectsProvider.isArabic ? 10 : 0),
),
SizedBox(
width:
10,
),
SizedBox(
height:
15.5,
),
SERVICES_PATIANT2[int.parse(patientType)] == "List_MyOutPatient"
? Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(
height: 15,
width: 60,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(25),
color: HexColor("#20A169"),
),
child: AppText(
item.startTime,
color: Colors.white,
fontSize: 1.5 * SizeConfig.textMultiplier,
textAlign: TextAlign.center,
fontWeight: FontWeight.bold,
),
),
SizedBox(
width: 3.5,
),
Container(
child: AppText(
convertDateFormat2(item.appointmentDate.toString()),
fontSize: 1.5 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
),
SizedBox(
height: 0.5,
)
],
)
: SizedBox(
height: 5,
),
],
),
Expanded(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
// mainAxisAlignment:
// MainAxisAlignment
// .spaceBetween,
children: <
Widget>[
SizedBox(
height:
0.5,
),
SizedBox(
height:
0,
),
Wrap(
children: [
AppText(
TranslationBase
.of(
context)
.age2,
fontSize: 1.8 *
SizeConfig
.textMultiplier,
fontWeight: FontWeight
.bold,
backGroundcolor: Colors
.white,
),
AppText(
" ${DateUtils.getAgeByBirthday(item.dateofBirth, context)}",
fontSize: 1.8 *
SizeConfig
.textMultiplier,
fontWeight: FontWeight
.w300,
backGroundcolor: Colors
.white,
),
SizedBox(
width: 10,
),
],
),
SizedBox(
height:
2.5,
),
Wrap(
children: [
AppText(
TranslationBase.of(context).gender2,
fontSize: 1.8 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
),
AppText(
item.gender.toString() == '1' ? 'Male' : 'Female',
fontSize: 1.8 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w300,
backGroundcolor: Colors.white,
),
],
),
SizedBox(
height:
8,
),
SERVICES_PATIANT2[int.parse(patientType)] == "List_MyOutPatient"
? Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(
height: 15,
width: 60,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(25),
color: HexColor("#20A169"),
),
child: AppText(
item.startTime,
color: Colors.white,
fontSize: 1.5 * SizeConfig.textMultiplier,
textAlign: TextAlign.center,
fontWeight: FontWeight.bold,
),
),
SizedBox(
width: 3.5,
),
Container(
child: AppText(
convertDateFormat2(item.appointmentDate.toString()),
fontSize: 1.5 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
),
SizedBox(
height: 25.5,
),
],
)
: SizedBox(
height: 15,
),
],
),
),
],
),
],
),
),
// Divider(color: Colors.grey)
],
),
return PatientCard(patientInfo: item,
patientType: patientType,
onTap: () {
Navigator.of(context)
.pushNamed(
@ -714,9 +363,7 @@ class _PatientsScreenState extends State<PatientsScreen> {
"from" : patient.getFrom,
"to" : patient.getTo,
});
},
),
);
},);
}).toList(),
)
: Center(
@ -754,8 +401,7 @@ class _PatientsScreenState extends State<PatientsScreen> {
}
Widget _locationBar(BuildContext _context) {
return Expanded(
child: Container(
return Container(
height: MediaQuery.of(context).size.height * 0.0619,
width: SizeConfig.screenWidth * 0.94,
decoration: BoxDecoration(
@ -774,7 +420,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
return Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
InkWell(
child: Center(
child: Expanded(
child: Container(
height: MediaQuery.of(context).size.height * 0.058,
width: SizeConfig.screenWidth * 0.2334,
@ -801,7 +446,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
),
)),
),
),
onTap: () {
filterBooking(item.toString());
@ -824,18 +468,11 @@ class _PatientsScreenState extends State<PatientsScreen> {
]);
}).toList(),
),
),
);
}
myBoxDecoration() {
return BoxDecoration(
border: Border(
bottom: BorderSide(
color: Color(0xffCCCCCC),
width: 0.5,
),
),
);
}
}

@ -157,6 +157,7 @@ class MyReferralDetailScreen extends StatelessWidget {
} else {
DrAppToastMsg.showSuccesToast(TranslationBase.of(context).referralSuccessMsgAccept);
Navigator.pop(context);
Navigator.pop(context);
}
},
),
@ -180,6 +181,7 @@ class MyReferralDetailScreen extends StatelessWidget {
} else {
DrAppToastMsg.showSuccesToast(TranslationBase.of(context).referralSuccessMsgReject);
Navigator.pop(context);
Navigator.pop(context);
}
},
),

@ -209,6 +209,10 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
) =>
NetworkBaseView(
baseViewModel: model,
child: GestureDetector(
onTap: (){
FocusScope.of(context).requestFocus(new FocusNode());
},
child: DraggableScrollableSheet(
initialChildSize: 0.90,
maxChildSize: 0.90,
@ -243,6 +247,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
child: InkWell(
onTap: model.allMedicationList != null
? () {
Helpers.hideKeyboard(context);
setState(() {
_selectedMedication = null;
});
@ -338,7 +343,9 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
0.550,
child: TextFields(
inputFormatters: [
LengthLimitingTextInputFormatter(4)
LengthLimitingTextInputFormatter(4),
WhitelistingTextInputFormatter
.digitsOnly
],
hintText: TranslationBase.of(context)
.strength,
@ -375,6 +382,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
onTap: model.medicationStrengthList !=
null
? () {
Helpers.hideKeyboard(context);
ListSelectDialog dialog =
ListSelectDialog(
list: model
@ -422,6 +430,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
child: InkWell(
onTap: model.medicationRouteList != null
? () {
Helpers.hideKeyboard(context);
ListSelectDialog dialog =
ListSelectDialog(
list: model.medicationRouteList,
@ -466,6 +475,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
child: InkWell(
onTap: model.medicationFrequencyList != null
? () {
Helpers.hideKeyboard(context);
ListSelectDialog dialog =
ListSelectDialog(
list:
@ -507,6 +517,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
child: InkWell(
onTap: model.medicationDoseTimeList != null
? () {
Helpers.hideKeyboard(context);
ListSelectDialog dialog =
ListSelectDialog(
list:
@ -543,27 +554,25 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
),
),
SizedBox(height: spaceBetweenTextFileds),
//model.patientAssessmentList.forEach((element) { }).
Column(
children: model.patientAssessmentList
.map((element) {
return Container(
if (model.patientAssessmentList.isNotEmpty)
Container(
height: screenSize.height * 0.070,
child: InkWell(
onTap: indicationList != null
? () {
Helpers.hideKeyboard(context);
ListSelectDialog dialog =
ListSelectDialog(
list: indicationList,
attributeName: 'name',
attributeValueId: 'id',
okText: TranslationBase.of(
context)
okText:
TranslationBase.of(context)
.ok,
okFunction: (selectedValue) {
setState(() {
indication =
selectedValue;
indication = selectedValue;
});
},
);
@ -578,9 +587,9 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
}
: null,
child: TextField(
decoration:
textFieldSelectorDecoration(
element.icdCode10ID
decoration: textFieldSelectorDecoration(
model.patientAssessmentList[0]
.icdCode10ID
.toString(),
indication != null
? indication['name']
@ -590,9 +599,57 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
readOnly: true,
),
),
);
}).toList(),
),
//model.patientAssessmentList.forEach((element) { }).
// Column(
// children: model.patientAssessmentList
// .map((element) {
// return Container(
// height: screenSize.height * 0.070,
// child: InkWell(
// onTap: indicationList != null
// ? () {
// ListSelectDialog dialog =
// ListSelectDialog(
// list: indicationList,
// attributeName: 'name',
// attributeValueId: 'id',
// okText: TranslationBase.of(
// context)
// .ok,
// okFunction: (selectedValue) {
// setState(() {
// indication =
// selectedValue;
// });
// },
// );
// showDialog(
// barrierDismissible: false,
// context: context,
// builder:
// (BuildContext context) {
// return dialog;
// },
// );
// }
// : null,
// child: TextField(
// decoration:
// textFieldSelectorDecoration(
// element.icdCode10ID
// .toString(),
// indication != null
// ? indication['name']
// : null,
// true),
// enabled: true,
// readOnly: true,
// ),
// ),
// );
// }).toList(),
// ),
SizedBox(height: spaceBetweenTextFileds),
Container(
@ -622,6 +679,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
child: InkWell(
onTap: model.medicationDurationList != null
? () {
Helpers.hideKeyboard(context);
ListSelectDialog dialog =
ListSelectDialog(
list:
@ -783,10 +841,12 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
);
}),
),
),
);
}
selectDate(BuildContext context, PrescriptionViewModel model) async {
Helpers.hideKeyboard(context);
DateTime selectedDate;
selectedDate = DateTime.now();
final DateTime picked = await showDatePicker(

@ -375,7 +375,7 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
FontWeight
.w700,
fontSize:
17.0,
15.0,
),
Expanded(
child: AppText(
@ -419,6 +419,14 @@ class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
),
Row(
children: [
AppText(
'Doctor Remarks : ',
fontWeight:
FontWeight
.w700,
fontSize:
13.0,
),
Expanded(
child:
Container(

@ -9,6 +9,7 @@ import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
import 'package:doctor_app_flutter/widgets/shared/TextFields.dart';
@ -103,6 +104,10 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
(BuildContext context, MedicineViewModel model, Widget child) =>
NetworkBaseView(
baseViewModel: model,
child: GestureDetector(
onTap: (){
FocusScope.of(context).requestFocus(new FocusNode());
},
child: DraggableScrollableSheet(
initialChildSize: 0.95,
maxChildSize: 0.99,
@ -214,7 +219,9 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
0.55,
child: TextFields(
inputFormatters: [
LengthLimitingTextInputFormatter(4)
LengthLimitingTextInputFormatter(4),
WhitelistingTextInputFormatter
.digitsOnly
],
hintText: widget.doseStreangth,
fontSize: 15.0,
@ -251,6 +258,7 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
onTap: model.medicationStrengthList !=
null
? () {
Helpers.hideKeyboard(context);
ListSelectDialog dialog =
ListSelectDialog(
list: model
@ -301,6 +309,7 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
child: InkWell(
onTap: model.medicationRouteList != null
? () {
Helpers.hideKeyboard(context);
ListSelectDialog dialog =
ListSelectDialog(
list: model.medicationRouteList,
@ -347,6 +356,7 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
child: InkWell(
onTap: model.medicationDoseTimeList != null
? () {
Helpers.hideKeyboard(context);
ListSelectDialog dialog =
ListSelectDialog(
list:
@ -391,6 +401,7 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
child: InkWell(
onTap: model.medicationFrequencyList != null
? () {
Helpers.hideKeyboard(context);
ListSelectDialog dialog =
ListSelectDialog(
list:
@ -436,6 +447,7 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
child: InkWell(
onTap: model.medicationDurationList != null
? () {
Helpers.hideKeyboard(context);
ListSelectDialog dialog =
ListSelectDialog(
list:
@ -565,6 +577,7 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
));
}),
),
),
);
});
}

@ -147,7 +147,17 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
selectedCategory = selectedValue;
model.getProcedureCategory(
categoryName: selectedCategory[
'categoryName']);
'categoryName'],
categoryID: selectedCategory[
'categoryId'] <=
9
? "0" +
selectedCategory[
'categoryId']
.toString()
: selectedCategory[
'categoryId']
.toString());
});
},
);
@ -221,7 +231,7 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
setSelectedType(value);
},
),
Text(TranslationBase.of(context).regular),
Text('routine'),
Radio(
activeColor: Color(0xFFB9382C),
groupValue: selectedType,

@ -37,6 +37,13 @@ class EntityListCheckboxSearchWidget extends StatefulWidget {
class _EntityListCheckboxSearchWidgetState
extends State<EntityListCheckboxSearchWidget> {
int selectedType;
setSelectedType(int val) {
setState(() {
selectedType = val;
});
}
List<EntityList> items = List();
@override

@ -259,11 +259,11 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
),
Expanded(
child: Container(
height: MediaQuery.of(
context)
.size
.height *
0.21,
// height: MediaQuery.of(
// context)
// .size
// .height *
// 0.21,
width: MediaQuery.of(
context)
.size
@ -281,7 +281,7 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
FontWeight
.w700,
fontSize:
15.0,
13.0,
),
AppText(
model
@ -292,7 +292,7 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
.procedureId
.toString(),
fontSize:
13.0,
12.0,
),
SizedBox(
width: 12.0,
@ -305,17 +305,17 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
FontWeight
.w700,
fontSize:
14.0,
13.0,
),
Expanded(
child:
AppText(
model.procedureList[0].entityList[index].orderType ==
1
? 'Regular'
? 'Routine'
: 'Urgent',
fontSize:
13.0,
11.5,
color: Color(
0xFFB9382C),
),

@ -135,7 +135,17 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
model.getProcedureCategory(
categoryName:
selectedCategory[
'categoryName']);
'categoryName'],
categoryID: selectedCategory[
'categoryId'] <=
9
? "0" +
selectedCategory[
'categoryId']
.toString()
: selectedCategory[
'categoryId']
.toString());
});
},
);
@ -212,7 +222,7 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
setSelectedType(value);
},
),
Text(TranslationBase.of(context).regular),
Text('routine'),
],
),
),

@ -113,7 +113,11 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
model2.getReasons(18),
model2.getCoveringDoctors()
},
builder: (_, model2, w) => AppScaffold(
builder: (_, model2, w) => GestureDetector(
onTap: (){
FocusScope.of(context).requestFocus(new FocusNode());
},
child: AppScaffold(
baseViewModel: model2,
isShowAppBar: false,
body: Center(
@ -832,6 +836,7 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
),
),
),
),
)));
}

@ -83,7 +83,11 @@ class _SickLeaveScreenState extends State<SickLeaveScreen> {
builder: (_, model, w) => BaseView<SickLeaveViewModel>(
onModelReady: (model2) => model2.preSickLeaveStatistics(
widget.appointmentNo, widget.patientMRN),
builder: (_, model2, w) => AppScaffold(
builder: (_, model2, w) => GestureDetector(
onTap: (){
FocusScope.of(context).requestFocus(new FocusNode());
},
child: AppScaffold(
baseViewModel: model2,
isShowAppBar: false,
body: Center(
@ -391,6 +395,7 @@ class _SickLeaveScreenState extends State<SickLeaveScreen> {
),
),
),
),
)));
}

@ -408,4 +408,9 @@ class Helpers {
)),
);
}
/// hides the keyboard if its already open
static hideKeyboard(BuildContext context) {
FocusScope.of(context).unfocus();
}
}

@ -0,0 +1,244 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_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/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
class PatientCard extends StatelessWidget {
final PatiantInformtion patientInfo;
final Function onTap;
final String patientType;
const PatientCard({Key key, this.patientInfo, this.onTap, this.patientType}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.all(10),
decoration: myBoxDecoration(),
margin: EdgeInsets.only(bottom: 12),
child: InkWell(
child: Row(
children: <Widget>[
Column(
mainAxisAlignment:
MainAxisAlignment
.start,
children: <
Widget>[
Padding(
padding: EdgeInsets
.only(
left:
12.0),
child:
Container(
decoration:
BoxDecoration(
boxShadow: [
BoxShadow(
color: Color.fromRGBO(
0,
0,
0,
0.08),
offset: Offset(0.0,
5.0),
blurRadius:
16.0)
],
borderRadius:
BorderRadius.all(
Radius.circular(35.0)),
color: Color(
0xffCCCCCC),
),
width: 70,
height: 70,
child: Icon(
patientInfo.genderDescription ==
"Male"
? DoctorApp
.male
: DoctorApp
.female_icon,
size: 70,
color: Colors
.white,
),
),
),
],
),
SizedBox(
width: 10,
),
Expanded(
child: Column(
crossAxisAlignment:CrossAxisAlignment.start,
children: [
AppText(
patientInfo.firstName +
" " +
patientInfo.lastName,
fontSize:
2.0 * SizeConfig.textMultiplier,
fontWeight:
FontWeight.bold,
backGroundcolor:
Colors.white,
),
SizedBox(height: 12,),
Table(
border: TableBorder.symmetric(
// inside: BorderSide(width: 2.0, color: Colors.white),
),
// defaultVerticalAlignment:TableCellVerticalAlignment.middle ,
children: [
TableRow(children: [
Container(
child: RichText(
text: new TextSpan(
style: new TextStyle(
fontSize: 2.0 * SizeConfig.textMultiplier, color: Colors.black),
children: <TextSpan>[
new TextSpan(
text: TranslationBase.of(context).fileNo,
style: TextStyle(fontWeight: FontWeight.w700, fontSize: 2.2 * SizeConfig.textMultiplier)),
new TextSpan(text: patientInfo.patientId.toString()),
],),),
),
Container(
child: RichText(
text: new TextSpan(
style: new TextStyle(
fontSize: 2.0 * SizeConfig.textMultiplier, color: Colors.black),
children: <TextSpan>[
new TextSpan(
text: TranslationBase.of(context).age+ " : ",
style: TextStyle(fontWeight: FontWeight.w700, )),
new TextSpan(text: "${DateUtils.getAgeByBirthday(patientInfo.dateofBirth, context)}"),
],),),
),
]
),
TableRow(children: [
SizedBox(height: 5,),
SizedBox(height: 5,)
]),
TableRow(children: [
Container(
child: RichText(
text: new TextSpan(
style: new TextStyle(
fontSize: 2.0 * SizeConfig.textMultiplier, color: Colors.black),
children: <TextSpan>[
new TextSpan(
text: TranslationBase.of(context).nationality + " : ",
style: TextStyle(fontWeight: FontWeight.w700, fontSize: 2.2 * SizeConfig.textMultiplier)),
new TextSpan(text: (patientInfo.nationalityName ?? patientInfo.nationality)),
],),),
),
Container(
child: RichText(
text: new TextSpan(
style: new TextStyle(
fontSize: 2.0 * SizeConfig.textMultiplier, color: Colors.black),
children: <TextSpan>[
new TextSpan(
text: TranslationBase.of(context).gender + " : ",
style: TextStyle(fontWeight: FontWeight.w700, )),
new TextSpan(text: patientInfo.gender.toString() == '1' ? 'Male' : 'Female'),
],),),
),
]
),
],
),
if(SERVICES_PATIANT2[int.parse(patientType)] == "List_MyOutPatient")
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
height: 15,
width: 60,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(25),
color: HexColor("#20A169"),
),
child: AppText(
patientInfo.startTime,
color: Colors.white,
fontSize: 1.5 * SizeConfig.textMultiplier,
textAlign: TextAlign.center,
fontWeight: FontWeight.bold,
),
),
SizedBox(
width: 3.5,
),
Container(
child: AppText(
convertDateFormat2(patientInfo.appointmentDate.toString()),
fontSize: 1.5 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
),
SizedBox(
height: 0.5,
)
],
),
margin: EdgeInsets.only(top: 8,),
)
],
),
),
// Divider(color: Colors.grey)
],
),
onTap: onTap,
),
);
}
convertDateFormat2(String str) {
String timeConvert;
const start = "/Date(";
const end = "+0300)";
final startIndex = str.indexOf(start);
final endIndex = str.indexOf(end, startIndex + start.length);
var date = new DateTime.fromMillisecondsSinceEpoch(
int.parse(str.substring(startIndex + start.length, endIndex)));
String newDate = date.year.toString() +
"/" +
date.month.toString().padLeft(2, '0') +
"/" +
date.day.toString().padLeft(2, '0');
return newDate.toString();
}
myBoxDecoration() {
return BoxDecoration(
border: Border(
bottom: BorderSide(
color: Color(0xffCCCCCC),
width: 0.5,
),
),
);
}
}

@ -43,7 +43,7 @@ class PatientHeaderWidgetNoAvatar extends StatelessWidget {
],
),
AppText(
"NEW VISIT",
patient.visitType ?? "",
fontWeight: FontWeight.bold,
fontSize: SizeConfig.textMultiplier * 2.0,
),

@ -54,7 +54,7 @@ class TextFields extends StatefulWidget {
this.focus = false,
this.maxLengthEnforced = true,
this.suffixIconColor,
this.inputAction,
this.inputAction = TextInputAction.done,
this.onSubmit,
this.keepPadding = true,
this.textCapitalization = TextCapitalization.none,

@ -17,7 +17,7 @@ class AppTextFormField extends FormField<String> {
TextInputType textInputType,
String hintText,
FocusNode focusNode,
TextInputAction textInputAction,
TextInputAction textInputAction=TextInputAction.done,
ValueChanged<String> onFieldSubmitted,
IconButton prefix,
String labelText,
@ -38,10 +38,10 @@ class AppTextFormField extends FormField<String> {
focusNode: focusNode,
keyboardType: textInputType,
readOnly: readOnly,
inputFormatters: [
FilteringTextInputFormatter.allow(
RegExp(inputFormatter)),
],
// inputFormatters: [
// FilteringTextInputFormatter.allow(
// RegExp(inputFormatter)),
// ],
onChanged: onChanged ??
(value) {
state.didChange(value);

@ -559,7 +559,7 @@ packages:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0-nullsafety.4"
version: "1.3.0-nullsafety.3"
mime:
dependency: transitive
description:
@ -830,7 +830,7 @@ packages:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.10.0-nullsafety.2"
version: "1.10.0-nullsafety.1"
stream_channel:
dependency: transitive
description:
@ -965,5 +965,5 @@ packages:
source: hosted
version: "2.2.1"
sdks:
dart: ">=2.10.0 <=2.11.0-213.1.beta"
dart: ">=2.10.0 <2.11.0"
flutter: ">=1.22.0 <2.0.0"

Loading…
Cancel
Save