|
|
|
|
@ -4,6 +4,7 @@ import 'package:doctor_app_flutter/config/size_config.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/models/SOAP/GetGetProgressNoteReqModel.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/models/SOAP/GetGetProgressNoteResModel.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/models/SOAP/post_progress_note_request_model.dart';
|
|
|
|
|
@ -44,8 +45,7 @@ class UpdatePlanPage extends StatefulWidget {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class _UpdatePlanPageState extends State<UpdatePlanPage> {
|
|
|
|
|
bool isProgressNoteExpand = false;
|
|
|
|
|
|
|
|
|
|
bool isAddProgress = true;
|
|
|
|
|
|
|
|
|
|
TextEditingController progressNoteController =
|
|
|
|
|
TextEditingController(text: null);
|
|
|
|
|
@ -64,6 +64,17 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
|
|
|
|
|
}
|
|
|
|
|
TextEditingController typeController = TextEditingController();
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
super.initState();
|
|
|
|
|
if(widget.patientProgressNote.planNote !=null ){
|
|
|
|
|
setState(() {
|
|
|
|
|
isAddProgress = true;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
return BaseView<SOAPViewModel>(
|
|
|
|
|
@ -111,166 +122,97 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
|
|
|
|
|
child: Column(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 10,
|
|
|
|
|
),
|
|
|
|
|
HeaderBodyExpandableNotifier(
|
|
|
|
|
headerWidget: Row(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
Texts(TranslationBase
|
|
|
|
|
.of(context)
|
|
|
|
|
.progressNoteSOAP,
|
|
|
|
|
variant: isProgressNoteExpand ? "bodyText" : '',
|
|
|
|
|
bold: isProgressNoteExpand ? true : false,
|
|
|
|
|
color: Colors.black),
|
|
|
|
|
Icon(
|
|
|
|
|
FontAwesomeIcons.asterisk,
|
|
|
|
|
color: Colors.black,
|
|
|
|
|
size: 12,
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
InkWell(
|
|
|
|
|
onTap: () {
|
|
|
|
|
setState(() {
|
|
|
|
|
isProgressNoteExpand = !isProgressNoteExpand;
|
|
|
|
|
});
|
|
|
|
|
Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Container(
|
|
|
|
|
margin: EdgeInsets.only(left: 5, right: 5),
|
|
|
|
|
child: Texts(TranslationBase.of(context).progressNote)),
|
|
|
|
|
if( isAddProgress)
|
|
|
|
|
Container(
|
|
|
|
|
margin: EdgeInsets.only(left: 10, right: 10, top: 15),
|
|
|
|
|
child: AppTextFieldCustom(
|
|
|
|
|
hintText: TranslationBase.of(context).progressNote,
|
|
|
|
|
controller: progressNoteController,
|
|
|
|
|
minLines: 2,
|
|
|
|
|
maxLines: 4,
|
|
|
|
|
inputType: TextInputType.multiline,
|
|
|
|
|
onChanged: (value){
|
|
|
|
|
widget.patientProgressNote.planNote = value;
|
|
|
|
|
},
|
|
|
|
|
child: Icon(isProgressNoteExpand
|
|
|
|
|
? Icons.keyboard_arrow_up
|
|
|
|
|
: Icons.keyboard_arrow_down))
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
bodyWidget: Column(children: [
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 2,
|
|
|
|
|
height: 9,
|
|
|
|
|
),
|
|
|
|
|
Column(
|
|
|
|
|
children: [
|
|
|
|
|
if(widget.patientProgressNote.planNote == null)
|
|
|
|
|
Container(
|
|
|
|
|
margin:
|
|
|
|
|
EdgeInsets.only(left: 10, right: 10, top: 15),
|
|
|
|
|
|
|
|
|
|
child: AppTextFieldCustom(
|
|
|
|
|
hintText: TranslationBase.of(context).progressNote,
|
|
|
|
|
controller: progressNoteController,
|
|
|
|
|
minLines: 2,
|
|
|
|
|
maxLines: 4,
|
|
|
|
|
inputType: TextInputType.multiline,
|
|
|
|
|
onChanged: (value){
|
|
|
|
|
// examination.remark = value;
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 20,
|
|
|
|
|
),
|
|
|
|
|
if ( widget.patientProgressNote.planNote != null)
|
|
|
|
|
Container(
|
|
|
|
|
margin:
|
|
|
|
|
EdgeInsets.only(left: 5, right: 5, top: 15),
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment:
|
|
|
|
|
CrossAxisAlignment.start,
|
|
|
|
|
if ( widget.patientProgressNote.planNote != null && !isAddProgress)
|
|
|
|
|
Container(
|
|
|
|
|
margin:
|
|
|
|
|
EdgeInsets.only(left: 5, right: 5,),
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment:
|
|
|
|
|
CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 8,
|
|
|
|
|
),
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
Texts('Appointment No: '),
|
|
|
|
|
Texts(widget.patientProgressNote.appointmentNo.toString()),
|
|
|
|
|
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
AppText(
|
|
|
|
|
widget.patientProgressNote.createdOn !=null?DateUtils.getDayMonthYearDateFormatted(DateTime.parse(widget.patientProgressNote.createdOn)):DateUtils.getDayMonthYearDateFormatted(DateTime.now()),
|
|
|
|
|
fontWeight: FontWeight
|
|
|
|
|
.bold,
|
|
|
|
|
fontSize: 16,
|
|
|
|
|
)
|
|
|
|
|
Texts('Appointment No: ',fontSize: 12,),
|
|
|
|
|
Texts(widget.patientProgressNote.appointmentNo??'',fontWeight: FontWeight.w600,),
|
|
|
|
|
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
Texts('Condition: '),
|
|
|
|
|
Texts(widget.patientProgressNote.mName.toString()),
|
|
|
|
|
Texts(
|
|
|
|
|
widget.patientProgressNote.createdOn !=null?DateUtils.getDayMonthYearDateFormatted(DateTime.parse(widget.patientProgressNote.createdOn)):DateUtils.getDayMonthYearDateFormatted(DateTime.now()),
|
|
|
|
|
fontWeight: FontWeight.w600,
|
|
|
|
|
fontSize: 14,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
if(widget.patientProgressNote.createdByName !=null)
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment:
|
|
|
|
|
MainAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
AppText(
|
|
|
|
|
TranslationBase.of(context).createdBy,
|
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
|
fontSize: 16,
|
|
|
|
|
),
|
|
|
|
|
AppText(
|
|
|
|
|
widget.patientProgressNote.createdByName??"",
|
|
|
|
|
fontSize: 10,
|
|
|
|
|
color: Colors.grey,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
if(widget.patientProgressNote.editedByName !=null)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment:
|
|
|
|
|
MainAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
AppText(
|
|
|
|
|
TranslationBase.of(context).editedBy,
|
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
|
fontSize: 16,
|
|
|
|
|
),
|
|
|
|
|
AppText(
|
|
|
|
|
widget.patientProgressNote.editedByName??"",
|
|
|
|
|
fontSize: 10,
|
|
|
|
|
color: Colors.grey,
|
|
|
|
|
),
|
|
|
|
|
Texts('Condition: ',fontSize: 12,),
|
|
|
|
|
Texts(widget.patientProgressNote.mName??'',fontWeight: FontWeight.w600),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment:
|
|
|
|
|
MainAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 6,
|
|
|
|
|
),
|
|
|
|
|
Padding(
|
|
|
|
|
padding: const EdgeInsets.all(0.0),
|
|
|
|
|
child: Container(
|
|
|
|
|
width: MediaQuery.of(context)
|
|
|
|
|
.size
|
|
|
|
|
.width *
|
|
|
|
|
0.6,
|
|
|
|
|
child: Texts(
|
|
|
|
|
progressNoteController.text,
|
|
|
|
|
fontSize: 10,
|
|
|
|
|
color: Colors.grey,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
Texts(
|
|
|
|
|
widget.patientProgressNote.createdOn !=null?DateUtils.getHour(DateTime.parse(widget.patientProgressNote.createdOn)):DateUtils.getHour(DateTime.now()),
|
|
|
|
|
fontWeight: FontWeight.w600,
|
|
|
|
|
fontSize: 14,
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
SizedBox(height: 8,),
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Expanded(
|
|
|
|
|
child: Texts(
|
|
|
|
|
progressNoteController.text+"asdasd sdakfjhg gfadsfg dashkfgasd hgd sfnbsd,fbnsdafbasdnzb",
|
|
|
|
|
fontSize: 10,
|
|
|
|
|
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
InkWell(
|
|
|
|
|
onTap: (){
|
|
|
|
|
setState(() {
|
|
|
|
|
isAddProgress = true;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
child: Icon(DoctorApp.edit,size: 18,))
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
]),
|
|
|
|
|
isExpand: isProgressNoteExpand,
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
],
|
|
|
|
|
@ -281,56 +223,62 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
|
|
|
|
|
),
|
|
|
|
|
bottomSheet: Container(
|
|
|
|
|
width: double.maxFinite,
|
|
|
|
|
height: 70,
|
|
|
|
|
child: Container(
|
|
|
|
|
margin: EdgeInsets.all(6),
|
|
|
|
|
child: Column(
|
|
|
|
|
children: [
|
|
|
|
|
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
Expanded(
|
|
|
|
|
child: AppButton(
|
|
|
|
|
title: 'Previous',
|
|
|
|
|
color: Colors.white38,
|
|
|
|
|
fontColor: Colors.black,
|
|
|
|
|
fontWeight: FontWeight.w700,
|
|
|
|
|
loading: model.state == ViewState.BusyLocal,
|
|
|
|
|
onPressed: () async {
|
|
|
|
|
setState(() {
|
|
|
|
|
widget.changePageViewIndex(2);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
height: 90,
|
|
|
|
|
child: Padding(
|
|
|
|
|
padding: const EdgeInsets.all(8.0),
|
|
|
|
|
child: Container(
|
|
|
|
|
margin: EdgeInsets.all(6),
|
|
|
|
|
child: Column(
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
Expanded(
|
|
|
|
|
child: AppButton(
|
|
|
|
|
title: 'Previous',
|
|
|
|
|
color: Colors.grey[300],
|
|
|
|
|
fontColor: Colors.black,
|
|
|
|
|
fontWeight: FontWeight.w400,
|
|
|
|
|
loading: model.state == ViewState.BusyLocal,
|
|
|
|
|
onPressed: () async {
|
|
|
|
|
setState(() {
|
|
|
|
|
widget.changePageViewIndex(2);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
SizedBox(width: 5,),
|
|
|
|
|
Expanded(
|
|
|
|
|
child: AppButton(
|
|
|
|
|
title: TranslationBase.of(context).next,
|
|
|
|
|
fontWeight: FontWeight.w700,
|
|
|
|
|
loading: model.state == ViewState.BusyLocal,
|
|
|
|
|
disabled: progressNoteController.text.isEmpty,
|
|
|
|
|
onPressed: () async {
|
|
|
|
|
SizedBox(width: 5,),
|
|
|
|
|
Expanded(
|
|
|
|
|
child: AppButton(
|
|
|
|
|
title: isAddProgress? TranslationBase.of(context).next: "Finish",
|
|
|
|
|
fontWeight: FontWeight.w400,
|
|
|
|
|
loading: model.state == ViewState.BusyLocal,
|
|
|
|
|
color: Colors.red[700],
|
|
|
|
|
disabled: progressNoteController.text.isEmpty,
|
|
|
|
|
onPressed: () async {
|
|
|
|
|
|
|
|
|
|
if(widget.patientProgressNote.planNote.isEmpty) {
|
|
|
|
|
Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
|
|
|
|
|
DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile);
|
|
|
|
|
setState(() {
|
|
|
|
|
widget.patientProgressNote.createdByName = widget.patientProgressNote.createdByName ?? doctorProfile.doctorName;
|
|
|
|
|
widget.patientProgressNote.editedByName = doctorProfile.doctorName;
|
|
|
|
|
widget.patientProgressNote.createdOn = DateTime.now().toString();
|
|
|
|
|
widget.patientProgressNote.planNote = progressNoteController.text;
|
|
|
|
|
});
|
|
|
|
|
if(isAddProgress) {
|
|
|
|
|
Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
|
|
|
|
|
DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile);
|
|
|
|
|
setState(() {
|
|
|
|
|
widget.patientProgressNote.createdByName = widget.patientProgressNote.createdByName ?? doctorProfile.doctorName;
|
|
|
|
|
widget.patientProgressNote.editedByName = doctorProfile.doctorName;
|
|
|
|
|
widget.patientProgressNote.createdOn = DateTime.now().toString();
|
|
|
|
|
widget.patientProgressNote.planNote = progressNoteController.text;
|
|
|
|
|
isAddProgress = !isAddProgress;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
} else
|
|
|
|
|
submitPlan(model);
|
|
|
|
|
},
|
|
|
|
|
} else{
|
|
|
|
|
var asd ="";
|
|
|
|
|
// submitPlan(model);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
],
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
|