You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
297 lines
12 KiB
Dart
297 lines
12 KiB
Dart
import 'package:doctor_app_flutter/config/config.dart';
|
|
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
|
|
import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart';
|
|
import 'package:doctor_app_flutter/models/SOAP/my_selected_allergy.dart';
|
|
import 'package:doctor_app_flutter/models/SOAP/post_allergy_request_model.dart';
|
|
import 'package:doctor_app_flutter/screens/base/base_view.dart';
|
|
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
|
|
import 'package:doctor_app_flutter/widgets/patients/profile/SOAP/subjective/add_allergies_widget.dart';
|
|
import 'package:doctor_app_flutter/widgets/patients/profile/SOAP/subjective/add_history_widget.dart';
|
|
import 'package:doctor_app_flutter/widgets/patients/profile/SOAP/subjective/add_medication_widget.dart';
|
|
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
|
|
import 'package:doctor_app_flutter/widgets/shared/TextFields.dart';
|
|
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
|
|
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
|
import 'package:doctor_app_flutter/widgets/shared/expandable-widget-header-body.dart';
|
|
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
|
|
class SubjectivePage extends StatefulWidget {
|
|
final Function changePageViewIndex;
|
|
final List<MySelectedAllergy> myAllergiesList;
|
|
final List<MasterKeyModel> myHistoryList ;
|
|
|
|
SubjectivePage({Key key, this.changePageViewIndex, this.myAllergiesList, this.myHistoryList});
|
|
|
|
@override
|
|
_SubjectivePageState createState() => _SubjectivePageState();
|
|
}
|
|
|
|
class _SubjectivePageState extends State<SubjectivePage> {
|
|
bool isChiefExpand = false;
|
|
bool isHistoryExpand = false;
|
|
bool isAllergiesExpand = false;
|
|
List<MasterKeyModel> myHistoryList = List();
|
|
TextEditingController illnessController = TextEditingController();
|
|
TextEditingController complaintsController = TextEditingController();
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return BaseView<SOAPViewModel>(
|
|
// onModelReady: (model) => model.getMasterLookup(MasterKeysService.Allergies),
|
|
builder: (_, model, w) => AppScaffold(
|
|
isShowAppBar: false,
|
|
baseViewModel: model,
|
|
body: SingleChildScrollView(
|
|
physics: ScrollPhysics(),
|
|
child: Center(
|
|
child: FractionallySizedBox(
|
|
widthFactor: 0.9,
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.start,
|
|
children: [
|
|
SizedBox(
|
|
height: 30,
|
|
),
|
|
HeaderBodyExpandableNotifier(
|
|
headerWidget: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
Row(
|
|
children: [
|
|
Texts('CHIEF COMPLAINTS',
|
|
variant: isChiefExpand ? "bodyText" : '',
|
|
bold: isChiefExpand ? true : false,
|
|
color: Colors.black),
|
|
Icon(
|
|
FontAwesomeIcons.asterisk,
|
|
color: AppGlobal.appPrimaryColor,
|
|
size: 12,
|
|
)
|
|
],
|
|
),
|
|
InkWell(
|
|
onTap: () {
|
|
setState(() {
|
|
isChiefExpand = !isChiefExpand;
|
|
});
|
|
},
|
|
child: Icon(
|
|
isChiefExpand ? EvaIcons.minus : EvaIcons.plus))
|
|
],
|
|
),
|
|
bodyWidget: Column(children: [
|
|
SizedBox(
|
|
height: 20,
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.only(left: 10, right: 10, top: 15),
|
|
child: TextFields(
|
|
hintText: "Add Chief Complaints",
|
|
fontSize: 13.5,
|
|
// hintColor: Colors.black,
|
|
fontWeight: FontWeight.w600,
|
|
maxLines: 25,
|
|
minLines: 13,
|
|
controller: complaintsController,
|
|
validator: (value) {
|
|
if (value == null)
|
|
return TranslationBase
|
|
.of(context)
|
|
.emptyMessage;
|
|
else
|
|
return null;
|
|
}),
|
|
),
|
|
SizedBox(
|
|
height: 20,
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.only(left: 10, right: 10, top: 15),
|
|
child: TextFields(
|
|
hintText: "History of Present Illness",
|
|
fontSize: 13.5,
|
|
// hintColor: Colors.black,
|
|
fontWeight: FontWeight.w600,
|
|
maxLines: 25,
|
|
minLines: 13,
|
|
controller: illnessController,
|
|
validator: (value) {
|
|
if (value == null)
|
|
return TranslationBase
|
|
.of(context)
|
|
.emptyMessage;
|
|
else
|
|
return null;
|
|
}),
|
|
),
|
|
SizedBox(
|
|
height: 20,
|
|
),
|
|
AddMedication(),
|
|
]),
|
|
isExpand: isChiefExpand,
|
|
),
|
|
|
|
SizedBox(
|
|
height: 30,
|
|
),
|
|
Container(
|
|
width: double.infinity,
|
|
height: 1,
|
|
color: Color(0xffCCCCCC),
|
|
),
|
|
SizedBox(
|
|
height: 30,
|
|
),
|
|
HeaderBodyExpandableNotifier(
|
|
headerWidget: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
Row(
|
|
children: [
|
|
Texts('History'.toUpperCase(),
|
|
variant: isHistoryExpand ? "bodyText" : '',
|
|
bold: isHistoryExpand ? true : false,
|
|
color: Colors.black),
|
|
Icon(
|
|
FontAwesomeIcons.asterisk,
|
|
color: AppGlobal.appPrimaryColor,
|
|
size: 12,
|
|
)
|
|
],
|
|
),
|
|
InkWell(
|
|
onTap: () {
|
|
setState(() {
|
|
isHistoryExpand = !isHistoryExpand;
|
|
});
|
|
},
|
|
child: Icon(isHistoryExpand
|
|
? EvaIcons.minus
|
|
: EvaIcons.plus))
|
|
],
|
|
),
|
|
bodyWidget: Column(
|
|
children: [
|
|
AddHistoryWidget(myHistoryList: myHistoryList)
|
|
],
|
|
),
|
|
isExpand: isHistoryExpand,
|
|
),
|
|
SizedBox(
|
|
height: 30,
|
|
),
|
|
Container(
|
|
width: double.infinity,
|
|
height: 1,
|
|
color: Color(0xffCCCCCC),
|
|
),
|
|
SizedBox(
|
|
height: 30,
|
|
),
|
|
HeaderBodyExpandableNotifier(
|
|
headerWidget: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
Row(
|
|
children: [
|
|
Texts('Allergies'.toUpperCase(),
|
|
variant: isAllergiesExpand ? "bodyText" : '',
|
|
bold: isAllergiesExpand ? true : false,
|
|
color: Colors.black),
|
|
Icon(
|
|
FontAwesomeIcons.asterisk,
|
|
color: AppGlobal.appPrimaryColor,
|
|
size: 12,
|
|
)
|
|
],
|
|
),
|
|
InkWell(
|
|
onTap: () {
|
|
setState(() {
|
|
isAllergiesExpand = !isAllergiesExpand;
|
|
});
|
|
},
|
|
child: Icon(isAllergiesExpand
|
|
? EvaIcons.minus
|
|
: EvaIcons.plus))
|
|
],
|
|
),
|
|
bodyWidget:Column(
|
|
children: [
|
|
AddAllergiesWidget(myAllergiesList: widget.myAllergiesList,),
|
|
SizedBox(
|
|
height: 30,
|
|
),
|
|
],
|
|
)
|
|
,
|
|
isExpand: isAllergiesExpand,
|
|
),
|
|
SizedBox(
|
|
height: 30,
|
|
),
|
|
Container(
|
|
width: double.infinity,
|
|
height: 1,
|
|
color: Color(0xffCCCCCC),
|
|
),
|
|
SizedBox(
|
|
height: 30,
|
|
),
|
|
AppButton(
|
|
title: TranslationBase
|
|
.of(context)
|
|
.next,
|
|
|
|
onPressed: () async {
|
|
addSubjectiveInfo(model: model,
|
|
myAllergiesList: widget.myAllergiesList,
|
|
myHistoryList: myHistoryList);
|
|
|
|
},
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),),);
|
|
}
|
|
|
|
addSubjectiveInfo(
|
|
{SOAPViewModel model, List<MySelectedAllergy> myAllergiesList, List<
|
|
MasterKeyModel> myHistoryList }) async {
|
|
PostAllergyRequestModel postAllergyRequestModel = new PostAllergyRequestModel();
|
|
widget.myAllergiesList.forEach((allergy) {
|
|
if(postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM ==null)
|
|
postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM = [];
|
|
postAllergyRequestModel.listHisProgNotePatientAllergyDiseaseVM.add(
|
|
ListHisProgNotePatientAllergyDiseaseVM(
|
|
allergyDiseaseId: allergy.selectedAllergy.id,
|
|
allergyDiseaseType: allergy.selectedAllergy.typeId,
|
|
patientMRN: 2500477,
|
|
episodeId: 200011502,
|
|
appointmentNo: 2016053271,
|
|
severity: allergy.selectedAllergySeverity.id,
|
|
remarks: allergy.remark,
|
|
createdBy: 1485,
|
|
createdOn: "2020-08-14T20:37:22.780Z",
|
|
editedBy: 1485,
|
|
editedOn: "2020-08-14T20:37:22.780Z",
|
|
isChecked: false,
|
|
isUpdatedByNurse: false
|
|
));
|
|
});
|
|
await model.postAllergy(postAllergyRequestModel);
|
|
|
|
|
|
widget.changePageViewIndex(1);
|
|
|
|
print(postAllergyRequestModel);
|
|
|
|
}
|
|
|
|
}
|