update progress_note

merge-requests/537/head
Elham Rababah 5 years ago
parent 0909879ccf
commit f2011301c6

@ -251,6 +251,7 @@ const SEND_PRESCRIPTION_EMAIL =
const GET_PRESCRIPTION_REPORT_ENH =
'Services/Patients.svc/REST/GetPrescriptionReport_enh';
const GET_PHARMACY_LIST = "Services/Patients.svc/REST/GetPharmcyList";
const UPDATE_PROGRESS_NOTE_FOR_INPATIENT = "Services/DoctorApplication.svc/REST/UpdateProgressNoteForInPatient";
var selectedPatientType = 1;

@ -0,0 +1,92 @@
class NoteModel {
String setupID;
int projectID;
int patientID;
int patientType;
String admissionNo;
int lineItemNo;
int visitType;
String notes;
String assessmentDate;
String visitTime;
int status;
String nursingRemarks;
String createdOn;
String editedOn;
int createdBy;
int admissionClinicID;
String admissionClinicName;
Null doctorClinicName;
String doctorName;
String visitTypeDesc;
NoteModel(
{this.setupID,
this.projectID,
this.patientID,
this.patientType,
this.admissionNo,
this.lineItemNo,
this.visitType,
this.notes,
this.assessmentDate,
this.visitTime,
this.status,
this.nursingRemarks,
this.createdOn,
this.editedOn,
this.createdBy,
this.admissionClinicID,
this.admissionClinicName,
this.doctorClinicName,
this.doctorName,
this.visitTypeDesc});
NoteModel.fromJson(Map<String, dynamic> json) {
setupID = json['SetupID'];
projectID = json['ProjectID'];
patientID = json['PatientID'];
patientType = json['PatientType'];
admissionNo = json['AdmissionNo'];
lineItemNo = json['LineItemNo'];
visitType = json['VisitType'];
notes = json['Notes'];
assessmentDate = json['AssessmentDate'];
visitTime = json['VisitTime'];
status = json['Status'];
nursingRemarks = json['NursingRemarks'];
createdOn = json['CreatedOn'];
editedOn = json['EditedOn'];
createdBy = json['CreatedBy'];
admissionClinicID = json['AdmissionClinicID'];
admissionClinicName = json['AdmissionClinicName'];
doctorClinicName = json['DoctorClinicName'];
doctorName = json['DoctorName'];
visitTypeDesc = json['VisitTypeDesc'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['SetupID'] = this.setupID;
data['ProjectID'] = this.projectID;
data['PatientID'] = this.patientID;
data['PatientType'] = this.patientType;
data['AdmissionNo'] = this.admissionNo;
data['LineItemNo'] = this.lineItemNo;
data['VisitType'] = this.visitType;
data['Notes'] = this.notes;
data['AssessmentDate'] = this.assessmentDate;
data['VisitTime'] = this.visitTime;
data['Status'] = this.status;
data['NursingRemarks'] = this.nursingRemarks;
data['CreatedOn'] = this.createdOn;
data['EditedOn'] = this.editedOn;
data['CreatedBy'] = this.createdBy;
data['AdmissionClinicID'] = this.admissionClinicID;
data['AdmissionClinicName'] = this.admissionClinicName;
data['DoctorClinicName'] = this.doctorClinicName;
data['DoctorName'] = this.doctorName;
data['VisitTypeDesc'] = this.visitTypeDesc;
return data;
}
}

@ -0,0 +1,80 @@
class UpdateNoteReqModel {
int projectID;
int createdBy;
int admissionNo;
int lineItemNo;
String notes;
bool verifiedNote;
bool cancelledNote;
int languageID;
String stamp;
String iPAdress;
double versionID;
int channel;
String tokenID;
String sessionID;
bool isLoginForDoctorApp;
bool patientOutSA;
int patientTypeID;
UpdateNoteReqModel(
{this.projectID,
this.createdBy,
this.admissionNo,
this.lineItemNo,
this.notes,
this.verifiedNote,
this.cancelledNote,
this.languageID,
this.stamp,
this.iPAdress,
this.versionID,
this.channel,
this.tokenID,
this.sessionID,
this.isLoginForDoctorApp,
this.patientOutSA,
this.patientTypeID});
UpdateNoteReqModel.fromJson(Map<String, dynamic> json) {
projectID = json['ProjectID'];
createdBy = json['CreatedBy'];
admissionNo = json['AdmissionNo'];
lineItemNo = json['LineItemNo'];
notes = json['Notes'];
verifiedNote = json['VerifiedNote'];
cancelledNote = json['CancelledNote'];
languageID = json['LanguageID'];
stamp = json['stamp'];
iPAdress = json['IPAdress'];
versionID = json['VersionID'];
channel = json['Channel'];
tokenID = json['TokenID'];
sessionID = json['SessionID'];
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
patientOutSA = json['PatientOutSA'];
patientTypeID = json['PatientTypeID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ProjectID'] = this.projectID;
data['CreatedBy'] = this.createdBy;
data['AdmissionNo'] = this.admissionNo;
data['LineItemNo'] = this.lineItemNo;
data['Notes'] = this.notes;
data['VerifiedNote'] = this.verifiedNote;
data['CancelledNote'] = this.cancelledNote;
data['LanguageID'] = this.languageID;
data['stamp'] = this.stamp;
data['IPAdress'] = this.iPAdress;
data['VersionID'] = this.versionID;
data['Channel'] = this.channel;
data['TokenID'] = this.tokenID;
data['SessionID'] = this.sessionID;
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
data['PatientOutSA'] = this.patientOutSA;
data['PatientTypeID'] = this.patientTypeID;
return data;
}
}

@ -1,6 +1,8 @@
import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/core/model/note/note_model.dart';
import 'package:doctor_app_flutter/core/model/note/update_note_model.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:doctor_app_flutter/models/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/models/doctor/request_schedule.dart';
@ -51,9 +53,9 @@ class PatientService extends BaseService {
List<LabResult> get labResultList => _labResultList;
// TODO: replace var with model
var _patientProgressNoteList = [];
List<NoteModel> _patientProgressNoteList = [];
get patientProgressNoteList => _patientProgressNoteList;
List<NoteModel> get patientProgressNoteList => _patientProgressNoteList;
// TODO: replace var with model
var _insuranceApporvalsList = [];
@ -277,7 +279,10 @@ class PatientService extends BaseService {
PATIENT_PROGRESS_NOTE_URL,
onSuccess: (dynamic response, int statusCode) {
_patientProgressNoteList = [];
_patientProgressNoteList = response['List_GetPregressNoteForInPatient'];
// _patientProgressNoteList =
response['List_GetPregressNoteForInPatient'].forEach((v) {
_patientProgressNoteList.add(new NoteModel.fromJson(v));
});
},
onFailure: (String error, int statusCode) {
hasError = true;
@ -287,6 +292,23 @@ class PatientService extends BaseService {
);
}
Future updatePatientProgressNote(UpdateNoteReqModel req) async {
hasError = false;
await baseAppClient.post(
PATIENT_PROGRESS_NOTE_URL,
onSuccess: (dynamic response, int statusCode) {
print("ok");
},
onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
},
body: req.toJson(),
);
}
Future getClinicsList() async {
hasError = false;

@ -1,4 +1,6 @@
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/note/note_model.dart';
import 'package:doctor_app_flutter/core/model/note/update_note_model.dart';
import 'package:doctor_app_flutter/core/service/patient_service.dart';
import 'package:doctor_app_flutter/models/patient/lab_orders/lab_orders_res_model.dart';
import 'package:doctor_app_flutter/models/patient/lab_result/lab_result.dart';
@ -39,7 +41,7 @@ class PatientViewModel extends BaseViewModel {
get insuranceApporvalsList => _patientService.insuranceApporvalsList;
get patientProgressNoteList => _patientService.patientProgressNoteList;
List<NoteModel> get patientProgressNoteList => _patientService.patientProgressNoteList;
List<dynamic> get clinicsList => _patientService.clinicsList;
@ -146,6 +148,16 @@ class PatientViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
Future updatePatientProgressNote(UpdateNoteReqModel req) async {
setState(ViewState.BusyLocal);
await _patientService.getPatientProgressNote(req);
if (_patientService.hasError) {
error = _patientService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
Future getClinicsList() async {
setState(ViewState.Busy);
await _patientService.getClinicsList();

@ -1,3 +1,4 @@
import 'package:doctor_app_flutter/core/model/note/note_model.dart';
import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/models/patient/progress_note_request.dart';
@ -31,7 +32,7 @@ class ProgressNoteScreen extends StatefulWidget {
}
class _ProgressNoteState extends State<ProgressNoteScreen> {
var notesList;
List<NoteModel> notesList;
var filteredNotesList;
final _controller = TextEditingController();
var _isInit = true;
@ -80,8 +81,10 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AddNoteOrder(
builder: (context) => UpdateNoteOrder(
patientModel: model,
patient: patient,
visitType: widget.visitType,
)),
);
},label: 'Add a New Order',),
@ -128,7 +131,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
),
Expanded(
child: AppText(
notesList[index]["DoctorName"]??'',fontWeight: FontWeight.w600),
notesList[index].doctorName??'',fontWeight: FontWeight.w600),
),
],
),
@ -137,11 +140,11 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
children: [
AppText(
notesList[index]
["CreatedOn"] !=
.createdOn !=
null
? DateUtils
.getDayMonthYearDateFormatted(
DateUtils.getDateTimeFromServerFormat(notesList[index]["CreatedOn"] ))
DateUtils.getDateTimeFromServerFormat(notesList[index].createdOn))
: DateUtils
.getDayMonthYearDateFormatted(
DateTime.now()),
@ -150,11 +153,11 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
),
AppText(
notesList[index]
["CreatedOn"] !=
.createdOn !=
null
? DateUtils
.getHour(
DateUtils.getDateTimeFromServerFormat(notesList[index]["CreatedOn"] ))
DateUtils.getDateTimeFromServerFormat(notesList[index].createdOn ))
: DateUtils
.getHour(
DateTime.now()),
@ -174,12 +177,24 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
children: [
Expanded(
child: AppText(
notesList[index]["Notes"],
notesList[index].notes,
fontSize: 10,
),
),
InkWell(
onTap: () {},
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => UpdateNoteOrder(
note: notesList[index],
patientModel: model,
patient: patient,
visitType: widget.visitType,
)),
);
},
child: Icon(
DoctorApp.edit,
size: 18,
@ -195,57 +210,6 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
),
],
);
// RoundedContainer(
// backgroundColor: Colors.white,
// child: Column(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: <Widget>[
// ExpansionTile(
// title: Container(
// child: Column(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: <Widget>[
// AppText(
// notesList[index]
// ["DoctorName"],
// marginTop: 10,
// marginLeft: 10,
// marginBottom: 5,
// fontWeight: FontWeight.bold,
// ),
// AppText(
// convertDateFormat(
// notesList[index]
// ["AssessmentDate"]),
// marginLeft: 10,
// color: Colors.grey[600],
// ),
// ],
// ),
// ),
// children: <Widget>[
// Divider(
// color: Colors.black,
// height: 20,
// thickness: 1,
// indent: 0,
// endIndent: 0,
// ),
// Row(mainAxisAlignment: MainAxisAlignment.start,
// children: [
// AppText(
// notesList[index]["Notes"],
// margin: 5,
// ),
// ],
// )
// ],
// ),
// ],
// ));
}),
),
),
@ -273,24 +237,24 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
));
}
searchData(String str, PatientViewModel model) {
var strExist = str.length > 0 ? true : false;
if (strExist) {
filteredNotesList = null;
filteredNotesList = model.patientProgressNoteList
.where((note) =>
note["DoctorName"].toString().contains(str.toUpperCase()))
.toList();
setState(() {
notesList = filteredNotesList;
});
} else {
setState(() {
notesList = model.patientProgressNoteList;
});
}
}
// searchData(String str, PatientViewModel model) {
// var strExist = str.length > 0 ? true : false;
//
// if (strExist) {
// filteredNotesList = null;
// filteredNotesList = model.patientProgressNoteList
// .where((note) =>
// note["DoctorName"].toString().contains(str.toUpperCase()))
// .toList();
// setState(() {
// notesList = filteredNotesList;
// });
// } else {
// setState(() {
// notesList = model.patientProgressNoteList;
// });
// }
// }
convertDateFormat(String str) {
const start = "/Date(";

@ -1,34 +1,44 @@
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/medical_file_model.dart';
import 'package:doctor_app_flutter/core/model/note/note_model.dart';
import 'package:doctor_app_flutter/core/model/note/update_note_model.dart';
import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/progress_note_request.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart';
import 'package:doctor_app_flutter/screens/procedures/entity_list_checkbox_search_widget.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/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
import 'package:flutter/material.dart';
class AddNoteOrder extends StatefulWidget {
// final ProcedureViewModel model;
// final PatiantInformtion patient;
//
// const AddNoteOrder({Key key, this.model, this.patient})
// : super(key: key);
class UpdateNoteOrder extends StatefulWidget {
final NoteModel note;
final PatientViewModel patientModel;
final PatiantInformtion patient;
final int visitType;
const UpdateNoteOrder(
{Key key, this.note, this.patientModel, this.patient, this.visitType})
: super(key: key);
@override
_AddNoteOrderState createState() =>
_AddNoteOrderState();
_UpdateNoteOrderState createState() =>
_UpdateNoteOrderState();
}
class _AddNoteOrderState extends State<AddNoteOrder> {
class _UpdateNoteOrderState extends State<UpdateNoteOrder> {
int selectedType;
ProcedureViewModel model;
PatiantInformtion patient;
TextEditingController progressNoteController = TextEditingController();
@ -40,16 +50,22 @@ class _AddNoteOrderState extends State<AddNoteOrder> {
@override
Widget build(BuildContext context) {
return BaseView<ProcedureViewModel>(
// onModelReady: (model) => model.getProcedureCategory(
// categoryName: "Radiology", categoryID: "03"),
builder: (BuildContext context, ProcedureViewModel model, Widget child) =>
if (widget.note != null) {
progressNoteController.text = widget.note.notes;
}
return BaseView<PatientViewModel>(
builder: (BuildContext context, PatientViewModel model, Widget child) =>
AppScaffold(
isShowAppBar: false,
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
backgroundColor: Theme
.of(context)
.scaffoldBackgroundColor,
body: SingleChildScrollView(
child: Container(
height: MediaQuery.of(context).size.height * 1.0,
height: MediaQuery
.of(context)
.size
.height * 1.0,
child: Padding(
padding: EdgeInsets.all(0.0),
child: Column(
@ -92,9 +108,34 @@ class _AddNoteOrderState extends State<AddNoteOrder> {
AppButton(
title: 'Add Progress Note',
color: Color(0xff359846),
disabled: progressNoteController.text.isEmpty,
fontWeight: FontWeight.w700,
onPressed: () {
onPressed: () async {
UpdateNoteReqModel reqModel = UpdateNoteReqModel(
admissionNo: int.parse(widget.patient.admissionNo),
cancelledNote: false,
lineItemNo: 30,
notes
:progressNoteController.text, verifiedNote: false);
GifLoaderDialogUtils.showMyDialog(context);
await model.updatePatientProgressNote(reqModel);
if (model.state == ViewState.ErrorLocal) {
Helpers.showErrorToast("Error");
} else {
ProgressNoteRequest progressNoteRequest = ProgressNoteRequest(
visitType: widget.visitType,
// if equal 5 then this will return progress note
admissionNo: int.parse(widget.patient.admissionNo),
projectID: widget.patient.projectId,
patientTypeID: widget.patient.patientType,
languageID: 2);
await widget.patientModel.getPatientProgressNote(
progressNoteRequest);
}
GifLoaderDialogUtils.hideDialog(context);
Navigator.of(context).pop();
},
),
],

Loading…
Cancel
Save