6 step from fix screen

merge-requests/896/head
Elham Rababh 4 years ago
parent 28d8449345
commit 359b337b27

@ -1,16 +1,16 @@
import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart';
class MySelectedExamination {
MasterKeyModel selectedExamination;
String remark;
MasterKeyModel? selectedExamination;
String? remark;
bool isNormal;
bool isAbnormal;
bool notExamined;
bool isNew;
bool isLocal;
int createdBy;
String createdOn;
String editedOn;
int? createdBy;
String? createdOn;
String? editedOn;
MySelectedExamination({
this.selectedExamination,

@ -1,8 +1,8 @@
import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart';
class MySelectedHistory {
MasterKeyModel selectedHistory;
String remark;
MasterKeyModel? selectedHistory;
String? remark;
bool? isChecked;
bool? isLocal;

@ -25,7 +25,7 @@ class AddExaminationPage extends StatefulWidget {
}
class _AddExaminationPageState extends State<AddExaminationPage> {
List<MySelectedExamination> mySelectedExaminationLocal;
late List<MySelectedExamination> mySelectedExaminationLocal;
@override
initState() {

@ -20,7 +20,7 @@ class AddExaminationWidget extends StatefulWidget {
final bool Function(MasterKeyModel) isServiceSelected;
bool isExpand;
final VoidCallback expandClick;
final List<MySelectedExamination> mySelectedExamination;
final List<MySelectedExamination>? mySelectedExamination;
AddExaminationWidget({
required this.item,
@ -44,13 +44,13 @@ class _AddExaminationWidgetState extends State<AddExaminationWidget> {
@override
void initState() {
if (getSelectedExam(widget.item) != null) {
examination = getSelectedExam(widget.item);
examination = getSelectedExam(widget.item)!;
status = examination.isNormal
? 1
: examination.isAbnormal
? 2
: 3;
remarksController.text = examination.remark;
remarksController.text = examination!.remark!;
} else {
examination.selectedExamination = widget.item;
}
@ -75,7 +75,7 @@ class _AddExaminationWidgetState extends State<AddExaminationWidget> {
Checkbox(
value:widget.isServiceSelected(widget.item),
activeColor: Colors.red[800],
onChanged: (bool newValue) {
onChanged: (bool ?newValue) {
onExamTap();
}),
Container(
@ -274,11 +274,11 @@ class _AddExaminationWidgetState extends State<AddExaminationWidget> {
});
}
MySelectedExamination getSelectedExam(MasterKeyModel masterKey) {
Iterable<MySelectedExamination> exam = widget.mySelectedExamination.where(
MySelectedExamination? getSelectedExam(MasterKeyModel masterKey) {
Iterable<MySelectedExamination> exam = widget.mySelectedExamination!.where(
(element) =>
masterKey.id == element.selectedExamination.id &&
masterKey.typeId == element.selectedExamination.typeId);
masterKey.id == element.selectedExamination!.id &&
masterKey.typeId == element.selectedExamination!.typeId);
if (exam.length > 0) {
return exam.first;
}

@ -73,7 +73,7 @@ class ExaminationItemCard extends StatelessWidget {
SizedBox(
height: 4,
),
if (examination.remark.isNotEmpty)
if (examination.remark!.isNotEmpty)
RemarkText(remark: examination.remark),
],
),

@ -19,7 +19,7 @@ class ExaminationsListSearchWidget extends StatefulWidget {
{required this.removeExamination,
required this.addExamination,
required this.isServiceSelected,
required this.masterList, this.mySelectedExamination});
required this.masterList, required this.mySelectedExamination});
@override
_ExaminationsListSearchWidgetState createState() => _ExaminationsListSearchWidgetState();

@ -71,7 +71,7 @@ class _UpdateObjectivePageState extends State<UpdateObjectivePage>
await model.getMasterLookup(MasterKeysService.PhysicalExamination);
}
model.patientPhysicalExamList.forEach((element) {
MasterKeyModel examMaster = model.getOneMasterKey(
MasterKeyModel? examMaster = model.getOneMasterKey(
masterKeys: MasterKeysService.PhysicalExamination,
id: element.examId,
);
@ -152,7 +152,7 @@ class _UpdateObjectivePageState extends State<UpdateObjectivePage>
.map((examination) {
return ExaminationItemCard(examination, () {
removeExamination(
examination.selectedExamination);
examination!.selectedExamination!);
});
}).toList(),
),
@ -181,7 +181,7 @@ class _UpdateObjectivePageState extends State<UpdateObjectivePage>
.map((examination) {
return ExaminationItemCard(examination, () {
removeExamination(
examination.selectedExamination);
examination.selectedExamination!);
});
}).toList(),
)
@ -205,7 +205,7 @@ class _UpdateObjectivePageState extends State<UpdateObjectivePage>
submitUpdateObjectivePage(SOAPViewModel model) async {
if (mySelectedExamination.isNotEmpty) {
if(!model.isAddExamInProgress && widget.patientInfo.admissionNo != null &&
widget.patientInfo.admissionNo.isNotEmpty) {
widget.patientInfo.admissionNo!.isNotEmpty) {
Navigator.of(context).pop();
}else{
widget.changeLoadingState(true);
@ -230,8 +230,8 @@ class _UpdateObjectivePageState extends State<UpdateObjectivePage>
createdOn: exam.createdOn ?? DateTime.now().toIso8601String(),
editedBy: doctorProfile.doctorID,
editedOn: DateTime.now().toIso8601String(),
examId: exam.selectedExamination.id,
examType: exam.selectedExamination.typeId,
examId: exam.selectedExamination!.id,
examType: exam.selectedExamination!.typeId,
isAbnormal: exam.isAbnormal,
isNormal: exam.isNormal,
notExamined: exam.notExamined,
@ -248,13 +248,13 @@ class _UpdateObjectivePageState extends State<UpdateObjectivePage>
isNew: exam.isNew,
);
if (widget.patientInfo.admissionNo != null &&
widget.patientInfo.admissionNo.isNotEmpty) {
widget.patientInfo.admissionNo!.isNotEmpty) {
listHisProgNotePhysicalExaminationVM.admissionNo =
int.parse(widget.patientInfo.admissionNo);
int.parse(widget.patientInfo.admissionNo!);
} else {
listHisProgNotePhysicalExaminationVM.admissionNo = 0;
}
postPhysicalExamRequestModel.listHisProgNotePhysicalExaminationVM
postPhysicalExamRequestModel.listHisProgNotePhysicalExaminationVM!
.add(listHisProgNotePhysicalExaminationVM);
});
@ -268,13 +268,13 @@ class _UpdateObjectivePageState extends State<UpdateObjectivePage>
widget.changeLoadingState(false);
Helpers.showErrorToast(model.error);
if(widget.patientInfo.admissionNo != null &&
widget.patientInfo.admissionNo.isNotEmpty) {
widget.patientInfo.admissionNo!.isNotEmpty) {
// Navigator.of(context).pop();
model.isAddExamInProgress = false;
}
} else {
if(widget.patientInfo.admissionNo != null &&
widget.patientInfo.admissionNo.isNotEmpty) {
widget.patientInfo.admissionNo!.isNotEmpty) {
// Navigator.of(context).pop();
widget.changeLoadingState(false);
model.isAddExamInProgress = false;
@ -322,9 +322,8 @@ class _UpdateObjectivePageState extends State<UpdateObjectivePage>
mySelectedExaminationLocal.forEach((element) {
if ((mySelectedExamination.singleWhere(
(it) =>
it.selectedExamination.id ==
element.selectedExamination.id,
orElse: () => null)) ==
it.selectedExamination!.id ==
element.selectedExamination!.id)) ==
null) {
mySelectedExamination.insert(0,element);
}
@ -335,16 +334,16 @@ class _UpdateObjectivePageState extends State<UpdateObjectivePage>
mySelectedExamination.forEach((element) {
if ((mySelectedExaminationLocal.singleWhere(
(it) =>
it.selectedExamination.id ==
element.selectedExamination.id,
orElse: () => null)) ==
it.selectedExamination!.id ==
element.selectedExamination!.id,
)) ==
null) {
removedList.add(element);
}
});
removedList.forEach((element) {
removeExamination(element.selectedExamination);
removeExamination(element.selectedExamination!);
});
Navigator.of(context).pop();
}

@ -37,7 +37,8 @@ class UpdatePlanPage extends StatefulWidget {
required this.changeLoadingState,
required this.currentIndex,
required this.sOAPViewModel,
this.changeStateFun});
required this.changeStateFun});
@override
_UpdatePlanPageState createState() => _UpdatePlanPageState();
@ -90,7 +91,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage>
///TODO set progressNote in model;
if (widget.sOAPViewModel.patientProgressNoteList.isNotEmpty) {
progressNoteController.text = Helpers.parseHtmlString(
widget.sOAPViewModel.patientProgressNoteList[0].planNote);
widget.sOAPViewModel!.patientProgressNoteList[0]!.planNote!);
patientProgressNote.planNote = progressNoteController.text;
patientProgressNote.createdByName =
@ -126,7 +127,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage>
if (widget.sOAPViewModel.patientProgressNoteList.isNotEmpty) {
progressNoteController.text = Helpers.parseHtmlString(
widget.sOAPViewModel.patientProgressNoteList[0].planNote);
widget.sOAPViewModel.patientProgressNoteList[0].planNote!);
patientProgressNote.planNote = progressNoteController.text;
patientProgressNote.createdByName =
widget.sOAPViewModel.patientProgressNoteList[0].createdByName;
@ -253,7 +254,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage>
.getDayMonthYearDateFormatted(
DateTime.parse(
patientProgressNote
.createdOn))
.createdOn!))
: AppDateUtils
.getDayMonthYearDateFormatted(
DateTime.now()),
@ -288,7 +289,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage>
? AppDateUtils.getHour(
DateTime.parse(
patientProgressNote
.createdOn))
.createdOn!))
: AppDateUtils.getHour(
DateTime.now()),
fontWeight: FontWeight.w600,
@ -385,7 +386,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage>
.getPatientProgressNote(getGetProgressNoteReqModel);
if (widget.sOAPViewModel.patientProgressNoteList.isNotEmpty) {
progressNoteController.text = Helpers.parseHtmlString(
widget.sOAPViewModel.patientProgressNoteList[0].planNote);
widget.sOAPViewModel.patientProgressNoteList[0].planNote!);
patientProgressNote.planNote = progressNoteController.text;
patientProgressNote.createdByName =
widget.sOAPViewModel.patientProgressNoteList[0].createdByName;

@ -9,7 +9,7 @@ class SOAPStepHeader extends StatelessWidget {
const SOAPStepHeader({
Key? key,
required this.currentIndex,
required this.changePageViewIndex, this.patientInfo,
required this.changePageViewIndex, required this.patientInfo,
}) : super(key: key);
final int currentIndex;

@ -4,8 +4,8 @@ import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
class BottomSheetDialogButton extends StatelessWidget {
final Function onTap;
final String label;
final VoidCallback? onTap;
final String? label;
double headerHeight = SizeConfig.heightMultiplier * 12;

@ -3,9 +3,9 @@ import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:flutter/material.dart';
class RemarkText extends StatelessWidget {
final String remark;
final String? remark;
const RemarkText({
Key key, this.remark,
Key? key, this.remark,
}) : super(key: key);
@override

@ -7,8 +7,8 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:hexcolor/hexcolor.dart';
class RemoveButton extends StatelessWidget {
final Function onTap;
final String label;
final VoidCallback? onTap;
final String? label;
const RemoveButton({Key? key, this.onTap, this.label}) : super(key: key);

@ -4,10 +4,10 @@ import 'package:flutter/material.dart';
class StepDetailsWidget extends StatelessWidget {
final String stepLabel;
final double marginLeft;
final double? marginLeft;
const StepDetailsWidget({
Key key, this.stepLabel, this.marginLeft = 0,
Key? key, required this.stepLabel, this.marginLeft = 0,
}) : super(key: key);
@override

@ -6,9 +6,9 @@ import 'package:hexcolor/hexcolor.dart';
class StatusLabel extends StatelessWidget {
const StatusLabel({
Key key,
this.stepId,
this.selectedStepId,
Key? key,
required this.stepId,
required this.selectedStepId,
}) : super(key: key);
final int stepId;

@ -17,10 +17,10 @@ class StepsWidget extends StatelessWidget {
StepsWidget(
{Key? key,
this.index,
this.changeCurrentTab,
required this.index,
required this.changeCurrentTab,
this.height = 0.0,
this.patientInfo});
required this.patientInfo});
@override
Widget build(BuildContext context) {
@ -52,7 +52,7 @@ class StepsWidget extends StatelessWidget {
child: Container(
width: MediaQuery.of(context).size.width *
(patientInfo.admissionNo == null ||
patientInfo.admissionNo.isEmpty
patientInfo.admissionNo!.isEmpty
? 0.9
: 0.85),
child: Divider(
@ -115,7 +115,7 @@ class StepsWidget extends StatelessWidget {
Positioned(
top: circleTop,
left: patientInfo.admissionNo == null ||
patientInfo.admissionNo.isEmpty
patientInfo.admissionNo!.isEmpty
? MediaQuery.of(context).size.width * 0.25
: MediaQuery.of(context).size.width * 0.71,
child: InkWell(
@ -167,7 +167,7 @@ class StepsWidget extends StatelessWidget {
),
),
if (patientInfo.admissionNo == null ||
patientInfo.admissionNo.isEmpty)
patientInfo.admissionNo!.isEmpty)
Positioned(
top: circleTop,
left: MediaQuery.of(context).size.width * 0.47,
@ -222,7 +222,7 @@ class StepsWidget extends StatelessWidget {
),
),
if (patientInfo.admissionNo == null ||
patientInfo.admissionNo.isEmpty)
patientInfo.admissionNo!.isEmpty)
Positioned(
top: circleTop,
right: 0,
@ -289,7 +289,7 @@ class StepsWidget extends StatelessWidget {
child: Center(
child: Container(
width: MediaQuery.of(context).size.width * (patientInfo.admissionNo == null ||
patientInfo.admissionNo.isEmpty?0.9:0.85),
patientInfo.admissionNo!.isEmpty?0.9:0.85),
child: Divider(
color: Colors.grey,
height: 0.75,
@ -349,7 +349,7 @@ class StepsWidget extends StatelessWidget {
Positioned(
top: circleTop,
right: MediaQuery.of(context).size.width * (patientInfo.admissionNo == null ||
patientInfo.admissionNo.isEmpty?0.25:0.71),
patientInfo.admissionNo!.isEmpty?0.25:0.71),
child: InkWell(
onTap: () => index >= 2 ? changeCurrentTab(1) : null,
child: Column(
@ -396,7 +396,7 @@ class StepsWidget extends StatelessWidget {
),
),
if (patientInfo.admissionNo == null ||
patientInfo.admissionNo.isEmpty)
patientInfo.admissionNo!.isEmpty)
Positioned(
top: circleTop,
right: MediaQuery.of(context).size.width * 0.50,
@ -451,7 +451,7 @@ class StepsWidget extends StatelessWidget {
),
),
if (patientInfo.admissionNo == null ||
patientInfo.admissionNo.isEmpty)
patientInfo.admissionNo!.isEmpty)
Positioned(
top: circleTop,
left: 0,

@ -100,7 +100,7 @@ class _AddAllergiesState extends State<AddAllergies> {
isServiceSelected: (master) =>
isServiceSelected(master),
getServiceSelectedAllergy: (master) =>
getSelectedAllergy(master),
getSelectedAllergy(master)!, hintSearchText: '', buttonName: '',
),
),
),

@ -27,12 +27,12 @@ class AddAllergiesItem extends StatefulWidget {
const AddAllergiesItem(
{Key? key,
this.model,
this.removeAllergy,
this.addAllergy,
this.isServiceSelected,
this.getServiceSelectedAllergy,
this.item})
required this.model,
required this.removeAllergy,
required this.addAllergy,
required this.isServiceSelected,
required this.getServiceSelectedAllergy,
required this.item})
: super(key: key);
@override
@ -40,7 +40,7 @@ class AddAllergiesItem extends StatefulWidget {
}
class _AddAllergiesItemState extends State<AddAllergiesItem> {
MasterKeyModel _selectedAllergySeverity;
late MasterKeyModel _selectedAllergySeverity;
bool isSubmitted = false;
@override
@ -48,7 +48,7 @@ class _AddAllergiesItemState extends State<AddAllergiesItem> {
ProjectViewModel projectViewModel = Provider.of(context);
bool isSelected = widget.isServiceSelected(widget.item);
MySelectedAllergy mySelectedAllergy;
MySelectedAllergy mySelectedAllergy =MySelectedAllergy() ;
if (isSelected) {
mySelectedAllergy = widget.getServiceSelectedAllergy(widget.item);
}
@ -58,8 +58,8 @@ class _AddAllergiesItemState extends State<AddAllergiesItem> {
text: isSelected
? mySelectedAllergy.selectedAllergySeverity != null
? projectViewModel.isArabic
? mySelectedAllergy.selectedAllergySeverity.nameAr
: mySelectedAllergy.selectedAllergySeverity.nameEn
? mySelectedAllergy.selectedAllergySeverity!.nameAr
: mySelectedAllergy.selectedAllergySeverity!.nameEn
: null
: null);
return HeaderBodyExpandableNotifier(
@ -71,7 +71,7 @@ class _AddAllergiesItemState extends State<AddAllergiesItem> {
Checkbox(
value: widget.isServiceSelected(widget.item),
activeColor: Colors.red[800],
onChanged: (bool newValue) {
onChanged: (bool ?newValue) {
onTapItem();
}),
InkWell(
@ -97,12 +97,12 @@ class _AddAllergiesItemState extends State<AddAllergiesItem> {
if (mySelectedAllergy != null) {
setState(() {
mySelectedAllergy.isExpanded =
mySelectedAllergy.isExpanded ? false : true;
mySelectedAllergy.isExpanded! ? false : true;
});
}
},
child: Icon(
(mySelectedAllergy != null ? mySelectedAllergy.isExpanded : false)
(mySelectedAllergy!.isExpanded!)
? EvaIcons.arrowIosUpwardOutline
: EvaIcons.arrowIosDownwardOutline,
color: Color(0xFF575757),
@ -142,14 +142,14 @@ class _AddAllergiesItemState extends State<AddAllergiesItem> {
}
: null,
isTextFieldHasSuffix: true,
hintText: TranslationBase.of(context).selectSeverity + "*",
hintText: TranslationBase.of(context).selectSeverity! + "*",
enabled: false,
maxLines: 1,
minLines: 1,
height: Helpers.getTextFieldHeight(),
validationError: mySelectedAllergy != null &&
mySelectedAllergy.selectedAllergySeverity == null &&
mySelectedAllergy.hasValidationError
mySelectedAllergy!.hasValidationError!
? TranslationBase.of(context).severityValidationError
: null,
controller: severityController,

@ -25,15 +25,15 @@ class MasterKeyCheckboxSearchAllergiesWidget extends StatefulWidget {
MasterKeyCheckboxSearchAllergiesWidget(
{Key? key,
this.model,
this.addSelectedAllergy,
this.removeAllergy,
this.masterList,
this.addAllergy,
this.isServiceSelected,
this.buttonName,
this.hintSearchText,
this.getServiceSelectedAllergy})
required this.model,
required this.addSelectedAllergy,
required this.removeAllergy,
required this.masterList,
required this.addAllergy,
required this.isServiceSelected,
required this.buttonName,
required this.hintSearchText,
required this.getServiceSelectedAllergy})
: super(key: key);
@override
@ -80,7 +80,7 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
icon: Icon(
Icons.search,
color: Colors.black,
)),
), onPressed: () { },),
),
DividerWithSpacesAround(),
SizedBox(
@ -127,8 +127,8 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
if (query.isNotEmpty) {
List<MasterKeyModel> dummyListData = [];
dummySearchList.forEach((items) {
if (items.nameAr.toLowerCase().contains(query.toLowerCase()) ||
items.nameEn.toLowerCase().contains(query.toLowerCase())) {
if (items.nameAr!.toLowerCase().contains(query.toLowerCase()) ||
items.nameEn!.toLowerCase().contains(query.toLowerCase())) {
dummyListData.add(items);
}
});

@ -77,11 +77,11 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
AppText(
projectViewModel.isArabic
? selectedAllergy
.selectedAllergySeverity.nameAr
.selectedAllergySeverity!.nameAr
: selectedAllergy
.selectedAllergySeverity.nameEn
.selectedAllergySeverity!.nameEn!
.toUpperCase(),
textDecoration: selectedAllergy.isChecked
textDecoration: selectedAllergy!.isChecked!
? null
: TextDecoration.lineThrough,
color: Color(0xFFCC9B14),
@ -132,7 +132,7 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
.toList();
if (allergy.length > 0) {
if (allergy.first.isLocal) {
if (allergy!.first!.isLocal!) {
setState(() {
widget.myAllergiesList.remove(allergy.first);
});
@ -165,9 +165,8 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
mySelectedAllergy.forEach((element) {
if ((widget.myAllergiesList.singleWhere(
(it) =>
it.selectedAllergy.id ==
element.selectedAllergy.id,
orElse: () => null)) ==
it.selectedAllergy!.id ==
element.selectedAllergy!.id,)) ==
null) {
widget.myAllergiesList.add(element);
}
@ -178,9 +177,8 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
widget.myAllergiesList.forEach((element) {
if ((mySelectedAllergy.singleWhere(
(it) =>
it.selectedAllergy.id ==
element.selectedAllergy.id,
orElse: () => null)) ==
it.selectedAllergy!.id ==
element.selectedAllergy!.id)) ==
null) {
removedList.add(element);
}

@ -59,7 +59,7 @@ class _AddHistoryDialogState extends State<AddHistoryDialog> {
baseViewModel: model,
isShowAppBar: true,
appBar:
BottomSheetTitle(title: TranslationBase.of(context).addHistory),
BottomSheetTitle(title: TranslationBase.of(context).addHistory!),
body: Center(
child: Container(
child: Column(

@ -70,9 +70,9 @@ class _UpdateHistoryWidgetState extends State<UpdateHistoryWidget> with TickerPr
letterSpacing: -0.48,),
width: MediaQuery.of(context).size.width * 0.5,
),
if (myHistory.isChecked)
if (myHistory!.isChecked!)
RemoveButton(
onTap: () => removeHistory(myHistory.selectedHistory),
onTap: () => removeHistory(myHistory!.selectedHistory!),
)
],
),
@ -97,7 +97,7 @@ class _UpdateHistoryWidgetState extends State<UpdateHistoryWidget> with TickerPr
.toList();
if (history.length > 0){
if (history.first.isLocal) {
if (history!.first!.isLocal!) {
setState(() {
widget.myHistoryList.remove(history.first);
});

Loading…
Cancel
Save