add modification on so

merge-requests/259/head
Elham Rababah 4 years ago
parent 763d6bb49f
commit 9674eb89d9

@ -590,4 +590,11 @@ const Map<String, Map<String, String>> localizedValues = {
'allergicTO': {'en': "ALLERGIC TO ", 'ar':" حساس من" },
'normal': {'en': "Normal", 'ar':"عادي" },
'abnormal': {'en': "Abnormal", 'ar':" غير عادي" },
'nameOrICD': {'en': "Name or ICD", 'ar':"الاسم او  ICD" },
'dType': {'en': "Type", 'ar':"النوع" },
'addAssessmentDetails': {'en': "Add Assessment Details", 'ar':"أضف تفاصيل التقييم" },
'progressNoteSOAP': {'en': "Progress Note", 'ar':"ملاحظة التقدم" },
'addProgressNote': {'en': "Add Progress Note", 'ar':"أضف ملاحظة التقدم" },
'createdBy': {'en': "Created By :", 'ar':"أضيفت : " },
'editedBy': {'en': "Edited By :", 'ar':"عدلت : " },
};

@ -29,7 +29,7 @@ class SOAPService extends LookupService {
List<GetAllergiesResModel> patientAllergiesList = [];
List<GetHistoryResModel> patientHistoryList = [];
List<GetPhysicalExamResModel> patientPhysicalExamList = [];
List<GetGetProgressNoteResModel> patientProgressNoteList = [];
List<GetPatientProgressNoteResModel> patientProgressNoteList = [];
List<GetAssessmentResModel> patientAssessmentList = [];
int episodeID;
@ -284,7 +284,7 @@ class SOAPService extends LookupService {
print("Success");
patientProgressNoteList.clear();
response['ProgressNoteList']['entityList'].forEach((v) {
patientProgressNoteList.add(GetGetProgressNoteResModel.fromJson(v));
patientProgressNoteList.add(GetPatientProgressNoteResModel.fromJson(v));
});
}, onFailure: (String error, int statusCode) {

@ -74,7 +74,7 @@ class SOAPViewModel extends BaseViewModel {
List<GetPhysicalExamResModel> get patientPhysicalExamList =>
_SOAPService.patientPhysicalExamList;
List<GetGetProgressNoteResModel> get patientProgressNoteList =>
List<GetPatientProgressNoteResModel> get patientProgressNoteList =>
_SOAPService.patientProgressNoteList;
List<GetAssessmentResModel> get patientAssessmentList =>
@ -253,6 +253,7 @@ class SOAPViewModel extends BaseViewModel {
masterKeys: MasterKeysService.Allergies,
id: element.allergyDiseaseId,
typeId: element.allergyDiseaseType);
if(selectedAllergy != null)
allergiesString +=
(isArabic ? selectedAllergy.nameAr : selectedAllergy.nameEn )+ ' , ';
});

@ -1,15 +1,39 @@
class GetGetProgressNoteResModel {
class GetPatientProgressNoteResModel {
int appointmentNo;
int createdBy;
String createdByName;
String createdOn;
String dName;
String editedByName;
String editedOn;
int episodeId;
String mName;
int patientMRN;
String planNote;
GetGetProgressNoteResModel(
{this.appointmentNo, this.episodeId, this.patientMRN, this.planNote});
GetPatientProgressNoteResModel(
{this.appointmentNo,
this.createdBy,
this.createdByName,
this.createdOn,
this.dName,
this.editedByName,
this.editedOn,
this.episodeId,
this.mName,
this.patientMRN,
this.planNote});
GetGetProgressNoteResModel.fromJson(Map<String, dynamic> json) {
GetPatientProgressNoteResModel.fromJson(Map<String, dynamic> json) {
appointmentNo = json['appointmentNo'];
createdBy = json['createdBy'];
createdByName = json['createdByName'];
createdOn = json['createdOn'];
dName = json['dName'];
editedByName = json['editedByName'];
editedOn = json['editedOn'];
episodeId = json['episodeId'];
mName = json['mName'];
patientMRN = json['patientMRN'];
planNote = json['planNote'];
}
@ -17,7 +41,14 @@ class GetGetProgressNoteResModel {
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['appointmentNo'] = this.appointmentNo;
data['createdBy'] = this.createdBy;
data['createdByName'] = this.createdByName;
data['createdOn'] = this.createdOn;
data['dName'] = this.dName;
data['editedByName'] = this.editedByName;
data['editedOn'] = this.editedOn;
data['episodeId'] = this.episodeId;
data['mName'] = this.mName;
data['patientMRN'] = this.patientMRN;
data['planNote'] = this.planNote;
return data;

@ -616,6 +616,21 @@ class TranslationBase {
String get patientNoDetailErrMsg =>
localizedValues['patientNoDetailErrMsg'][locale.languageCode];
String get nameOrICD =>
localizedValues['nameOrICD'][locale.languageCode];
String get dType =>
localizedValues['dType'][locale.languageCode];
String get addAssessmentDetails =>
localizedValues['addAssessmentDetails'][locale.languageCode];
String get progressNoteSOAP =>
localizedValues['progressNoteSOAP'][locale.languageCode];
String get addProgressNote =>
localizedValues['addProgressNote'][locale.languageCode];
String get createdBy =>
localizedValues['createdBy'][locale.languageCode];
String get editedBy =>
localizedValues['editedBy'][locale.languageCode];
}
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -1,15 +1,16 @@
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/enum/master_lookup_key.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/models/SOAP/GetAssessmentReqModel.dart';
import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart';
import 'package:doctor_app_flutter/models/SOAP/my_selected_assement.dart';
import 'package:doctor_app_flutter/models/SOAP/post_assessment_request_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/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';
@ -22,6 +23,7 @@ import 'package:doctor_app_flutter/widgets/shared/expandable-widget-header-body.
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'custom_validation_error.dart';
@ -44,6 +46,7 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
bool isAssessmentExpand = false;
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<SOAPViewModel>(
onModelReady: (model) async{
@ -78,19 +81,23 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
masterKeys: MasterKeysService.DiagnosisCondition,
id: element.conditionID,
);
MySelectedAssessment temMySelectedAssessment = MySelectedAssessment(
appointmentId: element.appointmentNo,
remark: element.remarks,
selectedDiagnosisType: diagnosisType,
selectedDiagnosisCondition: diagnosisCondition,
selectedICD: selectedICD,
doctorID: element.doctorID,
doctorName: element.doctorName,
createdBy: element.createdBy,
icdCode10ID: element.icdCode10ID
);
if(diagnosisCondition !=null &&diagnosisType !=null && diagnosisCondition!=null) {
MySelectedAssessment temMySelectedAssessment = MySelectedAssessment(
appointmentId: element.appointmentNo,
remark: element.remarks,
selectedDiagnosisType: diagnosisType,
selectedDiagnosisCondition: diagnosisCondition,
selectedICD: selectedICD,
doctorID: element.doctorID,
doctorName: element.doctorName,
createdBy: element.createdBy,
createdOn: element.createdOn,
icdCode10ID: element.icdCode10ID
);
widget.mySelectedAssessmentList.add(temMySelectedAssessment);
}
widget.mySelectedAssessmentList.add(temMySelectedAssessment);
});
}
@ -197,13 +204,14 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
CrossAxisAlignment.start,
children: [
AppText(
"12".toUpperCase(),
assessment.createdOn !=null?DateTime.parse(assessment.createdOn).day.toString():DateTime.now().day,
fontWeight: FontWeight
.bold,
fontSize: 16,
),
AppText(
"DEC".toUpperCase(),
Helpers.getMonth(assessment.createdOn !=null?DateTime.parse(assessment.createdOn).month:DateTime.now().month).toUpperCase(),
fontSize: 10,
color: Colors.grey,
),
@ -239,7 +247,9 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
MainAxisAlignment.start,
children: [
AppText(
assessment
projectViewModel.isArabic?assessment
.selectedDiagnosisCondition
.nameAr : assessment
.selectedDiagnosisCondition
.nameEn,
fontWeight: FontWeight
@ -253,13 +263,15 @@ class _UpdateAssessmentPageState extends State<UpdateAssessmentPage> {
MainAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context).type +':',
TranslationBase.of(context).dType+':',
fontWeight: FontWeight
.bold,
fontSize: 16,
),
AppText(
assessment
projectViewModel.isArabic?assessment
.selectedDiagnosisType
.nameAr:assessment
.selectedDiagnosisType
.nameEn,
fontSize: 10,
@ -438,6 +450,8 @@ class _AddAssessmentDetailsState extends State<AddAssessmentDetails> {
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
remarkController.text = widget.mySelectedAssessment.remark ?? "";
appointmentIdController.text =
widget.mySelectedAssessment.appointmentId.toString();
@ -498,7 +512,7 @@ class _AddAssessmentDetailsState extends State<AddAssessmentDetails> {
height: 16,
),
AppText(
"Add Assessment Details".toUpperCase(),
TranslationBase.of(context).addAssessmentDetails.toUpperCase(),
fontWeight: FontWeight.bold,
fontSize: 16,
),
@ -538,7 +552,7 @@ class _AddAssessmentDetailsState extends State<AddAssessmentDetails> {
}
: null,
child: widget.mySelectedAssessment.selectedICD == null ? AutoCompleteTextField<MasterKeyModel>(
decoration: textFieldSelectorDecoration("Name or ICD", widget.mySelectedAssessment.selectedICD != null ? widget.mySelectedAssessment.selectedICD.nameEn : null, true,icon: EvaIcons.search),
decoration: textFieldSelectorDecoration(TranslationBase.of(context).nameOrICD, widget.mySelectedAssessment.selectedICD != null ? widget.mySelectedAssessment.selectedICD.nameEn : null, true,icon: EvaIcons.search),
itemSubmitted: (item) => setState(() => widget.mySelectedAssessment.selectedICD = item),
key: key,
suggestions: model.listOfICD10,
@ -553,7 +567,7 @@ class _AddAssessmentDetailsState extends State<AddAssessmentDetails> {
): TextField(
decoration: textFieldSelectorDecoration(
widget.mySelectedAssessment.selectedICD != null ? widget.mySelectedAssessment.selectedICD.code :"Name or ICD",
widget.mySelectedAssessment.selectedICD != null ? widget.mySelectedAssessment.selectedICD.nameEn : null, true,icon: EvaIcons.search),
widget.mySelectedAssessment.selectedICD != null ? projectViewModel.isArabic?widget.mySelectedAssessment.selectedICD.nameAr:widget.mySelectedAssessment.selectedICD.nameEn : null, true,icon: EvaIcons.search),
enabled: false,
),
),
@ -595,10 +609,12 @@ class _AddAssessmentDetailsState extends State<AddAssessmentDetails> {
: null,
child: TextField(
decoration: textFieldSelectorDecoration(
"Condition",
TranslationBase.of(context).condition,
widget.mySelectedAssessment
.selectedDiagnosisCondition != null
? widget.mySelectedAssessment
? projectViewModel.isArabic?widget.mySelectedAssessment
.selectedDiagnosisCondition
.nameAr:widget.mySelectedAssessment
.selectedDiagnosisCondition
.nameEn
: null,
@ -645,10 +661,11 @@ class _AddAssessmentDetailsState extends State<AddAssessmentDetails> {
: null,
child: TextField(
decoration: textFieldSelectorDecoration(
"Type",
TranslationBase.of(context).dType,
widget.mySelectedAssessment
.selectedDiagnosisType != null
? widget.mySelectedAssessment
?projectViewModel.isArabic?widget.mySelectedAssessment
.selectedDiagnosisType.nameAr: widget.mySelectedAssessment
.selectedDiagnosisType.nameEn
: null,
true),
@ -764,7 +781,8 @@ class _AddAssessmentDetailsState extends State<AddAssessmentDetails> {
if (model.state == ViewState.ErrorLocal) {
helpers.showErrorToast(model.error);
helpers
.showErrorToast(model.error);
} else {
mySelectedAssessment.icdCode10ID = mySelectedAssessment.selectedICD.code;

@ -3,9 +3,11 @@ import 'package:doctor_app_flutter/config/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/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';
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/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';
@ -22,8 +24,14 @@ class UpdatePlanPage extends StatefulWidget {
final Function changePageViewIndex;
final PatiantInformtion patientInfo;
final Function changeLoadingState;
GetPatientProgressNoteResModel patientProgressNote;
UpdatePlanPage({Key key, this.changePageViewIndex, this.patientInfo, this.changeLoadingState});
UpdatePlanPage(
{Key key,
this.changePageViewIndex,
this.patientInfo,
this.changeLoadingState,
this.patientProgressNote});
@override
_UpdatePlanPageState createState() => _UpdatePlanPageState();
@ -32,7 +40,6 @@ class UpdatePlanPage extends StatefulWidget {
class _UpdatePlanPageState extends State<UpdatePlanPage> {
bool isProgressNoteExpand = false;
List<dynamic> progressNoteList;
TextEditingController progressNoteController =
TextEditingController(text: null);
@ -64,6 +71,12 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
if (model.patientProgressNoteList.isNotEmpty) {
progressNoteController.text = helpers
.parseHtmlString(model.patientProgressNoteList[0].planNote);
widget.patientProgressNote.planNote = progressNoteController.text;
widget.patientProgressNote.createdByName = model.patientProgressNoteList[0].createdByName;
widget.patientProgressNote.createdOn = model.patientProgressNoteList[0].createdOn;
widget.patientProgressNote.editedOn = model.patientProgressNoteList[0].editedOn;
widget.patientProgressNote.editedByName = model.patientProgressNoteList[0].editedByName;
}
widget.changeLoadingState(false);
},
@ -87,7 +100,9 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
children: [
Row(
children: [
Texts('Progress Note',
Texts(TranslationBase
.of(context)
.progressNoteSOAP,
variant: isProgressNoteExpand ? "bodyText" : '',
bold: isProgressNoteExpand ? true : false,
color: Colors.black),
@ -115,22 +130,24 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
),
Column(
children: [
if(model.patientProgressNoteList.isEmpty || progressNoteController.text !='')
Container(
margin:
EdgeInsets.only(left: 10, right: 10, top: 15),
child: TextFields(
hintText: "Add Progress Note",
fontSize: 13.5,
onTapTextFields: () {
openProgressNote(context);
},
readOnly: true,
// hintColor: Colors.black,
suffixIcon: EvaIcons.plusCircleOutline,
suffixIconColor: AppGlobal.appPrimaryColor,
fontWeight: FontWeight.w600,
// controller: messageController,
if(model.patientProgressNoteList.isEmpty)
Container(
margin:
EdgeInsets.only(left: 10, right: 10, top: 15),
child: TextFields(
hintText: TranslationBase
.of(context)
.addProgressNote,
fontSize: 13.5,
onTapTextFields: () {
openProgressNote(context);
},
readOnly: true,
// hintColor: Colors.black,
suffixIcon: EvaIcons.plusCircleOutline,
suffixIconColor: AppGlobal.appPrimaryColor,
fontWeight: FontWeight.w600,
// controller: messageController,
validator: (value) {
if (value == null)
return TranslationBase.of(context)
@ -161,12 +178,14 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
CrossAxisAlignment.start,
children: [
AppText(
"12".toUpperCase(),
fontWeight: FontWeight.bold,
widget.patientProgressNote.createdOn !=null?DateTime.parse(widget.patientProgressNote.createdOn).day.toString():DateTime.now().day.toString(),
fontWeight: FontWeight
.bold,
fontSize: 16,
),
AppText(
"DEC".toUpperCase(),
Helpers.getMonth(widget.patientProgressNote.createdOn !=null?(DateTime.parse(widget.patientProgressNote.createdOn).month):DateTime.now().month).toUpperCase(),
fontSize: 10,
color: Colors.grey,
),
@ -209,12 +228,12 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
MainAxisAlignment.start,
children: [
AppText(
"Created By : ",
TranslationBase.of(context).createdBy,
fontWeight: FontWeight.bold,
fontSize: 16,
),
AppText(
"Anas Abdullah on 12 De",
widget.patientProgressNote.createdByName??"",
fontSize: 10,
color: Colors.grey,
),
@ -225,12 +244,12 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
MainAxisAlignment.start,
children: [
AppText(
"Edited By : ",
TranslationBase.of(context).editedBy,
fontWeight: FontWeight.bold,
fontSize: 16,
),
AppText(
"Rahim on 13 Dec",
widget.patientProgressNote.editedByName??"",
fontSize: 10,
color: Colors.grey,
),
@ -321,7 +340,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
height: 16,
),
AppText(
"Add Progress Note",
TranslationBase.of(context).addProgressNote,
fontWeight: FontWeight.bold,
fontSize: 16,
),
@ -331,7 +350,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
Container(
margin: EdgeInsets.only(left: 0, right: 0, top: 15),
child: TextFields(
hintText: "Add progress note here",
hintText: TranslationBase.of(context).addProgressNote,
fontSize: 13.5,
// hintColor: Colors.black,
fontWeight: FontWeight.w600,
@ -350,7 +369,7 @@ class _UpdatePlanPageState extends State<UpdatePlanPage> {
height: 10,
),
AppButton(
title: "Add".toUpperCase(),
title: TranslationBase.of(context).add.toUpperCase(),
onPressed: () {
setState(() {
print(progressNoteController.text);

@ -1,4 +1,5 @@
import 'package:doctor_app_flutter/core/viewModel/doctor_replay_view_model.dart';
import 'package:doctor_app_flutter/models/SOAP/GetGetProgressNoteResModel.dart';
import 'package:doctor_app_flutter/models/SOAP/my_selected_allergy.dart';
import 'package:doctor_app_flutter/models/SOAP/my_selected_assement.dart';
import 'package:doctor_app_flutter/models/SOAP/my_selected_examination.dart';
@ -33,6 +34,8 @@ class _UpdateSoapIndexState extends State<UpdateSoapIndex>
List<MySelectedHistory> myHistoryList = List();
List<MySelectedExamination> mySelectedExamination = List();
List<MySelectedAssessment> mySelectedAssessment = List();
GetPatientProgressNoteResModel patientProgressNote = GetPatientProgressNoteResModel();
changePageViewIndex(pageIndex) {
_controller.jumpToPage(pageIndex);
}
@ -126,6 +129,7 @@ class _UpdateSoapIndexState extends State<UpdateSoapIndex>
UpdatePlanPage(
changePageViewIndex: changePageViewIndex,
patientInfo: patient,
patientProgressNote: patientProgressNote,
changeLoadingState:changeLoadingState
)

Loading…
Cancel
Save