first step from update_operation_report.dart

merge-requests/862/head
Elham Rababh 4 years ago
parent 469556758b
commit 7684b65e8a

@ -5,8 +5,8 @@ const ONLY_NUMBERS = "[0-9]";
const ONLY_LETTERS = "[a-zA-Z &'\"]";
const ONLY_DATE = "[0-9/]";
const BASE_URL_LIVE_CARE = 'https://livecare.hmg.com/';
const BASE_URL = 'https://hmgwebservices.com/';
// const BASE_URL = 'https://uat.hmgwebservices.com/';
// const BASE_URL = 'https://hmgwebservices.com/';
const BASE_URL = 'https://uat.hmgwebservices.com/';
const PHARMACY_ITEMS_URL = "Services/Lists.svc/REST/GetPharmcyItems_Region_enh";
const PHARMACY_LIST_URL = "Services/Patients.svc/REST/GetPharmcyList";
const PATIENT_PROGRESS_NOTE_URL =
@ -347,6 +347,8 @@ const GET_EPISODE_FOR_INPATIENT =
"/Services/DoctorApplication.svc/REST/DoctorApp_GetEpisodeForInpatient";
const GET_OPERATION_REPORT =
"/Services/DoctorApplication.svc/REST/DoctorApp_GetReservationDetails";
const UPDATE_OPERATION_REPORT =
"/Services/DoctorApplication.svc/REST/DoctorApp_CreateUpdateOperationReport";
var selectedPatientType = 1;

@ -1,6 +1,18 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:doctor_app_flutter/models/operation_report/create_update_operation_report_request_model.dart';
import 'package:doctor_app_flutter/models/operation_report/get_operation_report_model.dart';
class OperationReportService extends BaseService {
List<GetOperationReportModel> get operationReportList => List();
Future updateOperationReport(CreateUpdateOperationReportRequestModel createUpdateOperationReport) async {
await baseAppClient.post(UPDATE_OPERATION_REPORT,
onSuccess: (dynamic response, int statusCode) {
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: createUpdateOperationReport.toJson(),isFallLanguage: true);
}
}

@ -1,3 +1,22 @@
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/service/operation_report_servive.dart';
import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart';
import 'package:doctor_app_flutter/models/operation_report/create_update_operation_report_request_model.dart';
class OperationReportViewModel extends BaseViewModel {}
import '../../locator.dart';
class OperationReportViewModel extends BaseViewModel {
OperationReportService _operationReportService =
locator<OperationReportService>();
Future updateOperationReport(
CreateUpdateOperationReportRequestModel
createUpdateOperationReport) async {
setState(ViewState.BusyLocal);
if (_operationReportService.hasError) {
error = _operationReportService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
}

@ -0,0 +1,108 @@
class CreateUpdateOperationReportRequestModel {
String setupID;
int patientID;
int reservationNo;
int admissionNo;
String preOpDiagmosis;
String postOpDiagmosis;
String surgeon;
String assistant;
String anasthetist;
String operation;
String inasion;
String finding;
String surgeryProcedure;
String postOpInstruction;
int createdBy;
int editedBy;
String complicationDetails;
String bloodLossDetail;
String histopathSpecimen;
String microbiologySpecimen;
String otherSpecimen;
String scrubNurse;
String circulatingNurse;
String bloodTransfusedDetail;
CreateUpdateOperationReportRequestModel(
{this.setupID,
this.patientID,
this.reservationNo,
this.admissionNo,
this.preOpDiagmosis,
this.postOpDiagmosis,
this.surgeon,
this.assistant,
this.anasthetist,
this.operation,
this.inasion,
this.finding,
this.surgeryProcedure,
this.postOpInstruction,
this.createdBy,
this.editedBy,
this.complicationDetails,
this.bloodLossDetail,
this.histopathSpecimen,
this.microbiologySpecimen,
this.otherSpecimen,
this.scrubNurse,
this.circulatingNurse,
this.bloodTransfusedDetail});
CreateUpdateOperationReportRequestModel.fromJson(Map<String, dynamic> json) {
setupID = json['SetupID'];
patientID = json['PatientID'];
reservationNo = json['reservationNo'];
admissionNo = json['AdmissionNo'];
preOpDiagmosis = json['preOpDiagmosis'];
postOpDiagmosis = json['postOpDiagmosis'];
surgeon = json['surgeon'];
assistant = json['assistant'];
anasthetist = json['anasthetist'];
operation = json['operation'];
inasion = json['inasion'];
finding = json['finding'];
surgeryProcedure = json['surgeryProcedure'];
postOpInstruction = json['postOpInstruction'];
createdBy = json['CreatedBy'];
editedBy = json['EditedBy'];
complicationDetails = json['complicationDetails'];
bloodLossDetail = json['bloodLossDetail'];
histopathSpecimen = json['histopathSpecimen'];
microbiologySpecimen = json['microbiologySpecimen'];
otherSpecimen = json['otherSpecimen'];
scrubNurse = json['scrubNurse'];
circulatingNurse = json['circulatingNurse'];
bloodTransfusedDetail = json['BloodTransfusedDetail'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['SetupID'] = this.setupID;
data['PatientID'] = this.patientID;
data['reservationNo'] = this.reservationNo;
data['AdmissionNo'] = this.admissionNo;
data['preOpDiagmosis'] = this.preOpDiagmosis;
data['postOpDiagmosis'] = this.postOpDiagmosis;
data['surgeon'] = this.surgeon;
data['assistant'] = this.assistant;
data['anasthetist'] = this.anasthetist;
data['operation'] = this.operation;
data['inasion'] = this.inasion;
data['finding'] = this.finding;
data['surgeryProcedure'] = this.surgeryProcedure;
data['postOpInstruction'] = this.postOpInstruction;
data['CreatedBy'] = this.createdBy;
data['EditedBy'] = this.editedBy;
data['complicationDetails'] = this.complicationDetails;
data['bloodLossDetail'] = this.bloodLossDetail;
data['histopathSpecimen'] = this.histopathSpecimen;
data['microbiologySpecimen'] = this.microbiologySpecimen;
data['otherSpecimen'] = this.otherSpecimen;
data['scrubNurse'] = this.scrubNurse;
data['circulatingNurse'] = this.circulatingNurse;
data['BloodTransfusedDetail'] = this.bloodTransfusedDetail;
return data;
}
}

@ -6,10 +6,12 @@ import 'package:doctor_app_flutter/core/model/note/CreateNoteModel.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/provider/robot_provider.dart';
import 'package:doctor_app_flutter/core/viewModel/operation_report_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/patient_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/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/models/operation_report/create_update_operation_report_request_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/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart';
@ -27,27 +29,27 @@ import 'package:provider/provider.dart';
import 'package:speech_to_text/speech_recognition_error.dart';
import 'package:speech_to_text/speech_to_text.dart' as stt;
class UpdateOperatiomReport extends StatefulWidget {
class UpdateOperationReport extends StatefulWidget {
final NoteModel note;
final PatientViewModel patientModel;
final OperationReportViewModel operationReportViewModel;
final PatiantInformtion patient;
final int visitType;
final bool isUpdate;
const UpdateOperatiomReport(
const UpdateOperationReport(
{Key key,
this.note,
this.patientModel,
this.operationReportViewModel,
this.patient,
this.visitType,
this.isUpdate})
: super(key: key);
@override
_UpdateOperatiomReportState createState() => _UpdateOperatiomReportState();
_UpdateOperationReportState createState() => _UpdateOperationReportState();
}
class _UpdateOperatiomReportState extends State<UpdateOperatiomReport> {
class _UpdateOperationReportState extends State<UpdateOperationReport> {
int selectedType;
bool isSubmitted = false;
stt.SpeechToText speech = stt.SpeechToText();
@ -55,7 +57,25 @@ class _UpdateOperatiomReportState extends State<UpdateOperatiomReport> {
var event = RobotProvider();
ProjectViewModel projectViewModel;
TextEditingController progressNoteController = TextEditingController();
TextEditingController preOpDiagmosisController = TextEditingController();
TextEditingController postOpDiagmosisNoteController = TextEditingController();
TextEditingController surgeonController = TextEditingController();
TextEditingController assistantNoteController = TextEditingController();
TextEditingController operationController = TextEditingController();
TextEditingController inasionController = TextEditingController();
TextEditingController findingController = TextEditingController();
TextEditingController surgeryProcedureController = TextEditingController();
TextEditingController postOpInstructionController = TextEditingController();
TextEditingController complicationDetailsController = TextEditingController();
TextEditingController bloodLossDetailController = TextEditingController();
TextEditingController histopathSpecimenController = TextEditingController();
TextEditingController microbiologySpecimenController =
TextEditingController();
TextEditingController otherSpecimenController = TextEditingController();
TextEditingController scrubNurseController = TextEditingController();
TextEditingController circulatingNurseController = TextEditingController();
TextEditingController BloodTransfusedDetailController =
TextEditingController();
setSelectedType(int val) {
setState(() {
@ -81,7 +101,7 @@ class _UpdateOperatiomReportState extends State<UpdateOperatiomReport> {
projectViewModel = Provider.of(context);
if (widget.note != null) {
progressNoteController.text = widget.note.notes;
preOpDiagmosisController.text = widget.note.notes;
}
return AppScaffold(
@ -96,15 +116,10 @@ class _UpdateOperatiomReportState extends State<UpdateOperatiomReport> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BottomSheetTitle(
title: widget.visitType == 3
? (widget.isUpdate
? TranslationBase.of(context).noteUpdate
: TranslationBase.of(context).noteAdd) +
TranslationBase.of(context).orderSheet
: (widget.isUpdate
? TranslationBase.of(context).noteUpdate
: TranslationBase.of(context).noteAdd) +
TranslationBase.of(context).progressNote,
title: (widget.isUpdate
? TranslationBase.of(context).noteUpdate
: TranslationBase.of(context).noteAdd) +
TranslationBase.of(context).progressNote,
),
SizedBox(
height: 10.0,
@ -131,14 +146,14 @@ class _UpdateOperatiomReportState extends State<UpdateOperatiomReport> {
.noteAdd) +
TranslationBase.of(context).progressNote,
//TranslationBase.of(context).addProgressNote,
controller: progressNoteController,
controller: preOpDiagmosisController,
maxLines: 35,
minLines: 25,
hasBorder: true,
// isTextFieldHasSuffix: true,
validationError:
progressNoteController.text.isEmpty &&
preOpDiagmosisController.text.isEmpty &&
isSubmitted
? TranslationBase.of(context).emptyMessage
: null,
@ -173,34 +188,17 @@ class _UpdateOperatiomReportState extends State<UpdateOperatiomReport> {
),
),
bottomSheet: Container(
height: progressNoteController.text.isNotEmpty ? 130 : 70,
height: preOpDiagmosisController.text.isNotEmpty ? 130 : 70,
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5),
child: Column(
children: <Widget>[
if (progressNoteController.text.isNotEmpty)
Container(
margin: EdgeInsets.all(5),
child: AppButton(
title: TranslationBase.of(context).clearText,
onPressed: () {
setState(() {
progressNoteController.text = '';
});
},
),
),
Container(
margin: EdgeInsets.all(5),
child: AppButton(
title: widget.visitType == 3
? (widget.isUpdate
? TranslationBase.of(context).noteUpdate
: TranslationBase.of(context).noteAdd) +
TranslationBase.of(context).orderSheet
: (widget.isUpdate
? TranslationBase.of(context).noteUpdate
: TranslationBase.of(context).noteAdd) +
TranslationBase.of(context).progressNote,
title: (widget.isUpdate
? TranslationBase.of(context).noteUpdate
: TranslationBase.of(context).noteAdd) +
TranslationBase.of(context).progressNote,
color: Color(0xff359846),
// disabled: progressNoteController.text.isEmpty,
fontWeight: FontWeight.w700,
@ -208,64 +206,31 @@ class _UpdateOperatiomReportState extends State<UpdateOperatiomReport> {
setState(() {
isSubmitted = true;
});
if (progressNoteController.text.trim().isNotEmpty) {
GifLoaderDialogUtils.showMyDialog(context);
Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
DoctorProfileModel doctorProfile =
DoctorProfileModel.fromJson(profile);
if (widget.isUpdate) {
UpdateNoteReqModel reqModel = UpdateNoteReqModel(
admissionNo: int.parse(widget.patient.admissionNo),
cancelledNote: false,
lineItemNo: widget.note.lineItemNo,
createdBy: widget.note.createdBy,
notes: progressNoteController.text,
verifiedNote: false,
patientTypeID: widget.patient.patientType,
patientOutSA: false,
);
await widget.patientModel
.updatePatientProgressNote(reqModel);
} else {
CreateNoteModel reqModel = CreateNoteModel(
admissionNo:
int.parse(widget.patient.admissionNo),
createdBy: doctorProfile.doctorID,
visitType: widget.visitType,
patientID: widget.patient.patientId,
nursingRemarks: ' ',
patientTypeID: widget.patient.patientType,
patientOutSA: false,
notes: progressNoteController.text);
await widget.patientModel
.createPatientProgressNote(reqModel);
CreateUpdateOperationReportRequestModel
createUpdateOperationReportRequestModel =
CreateUpdateOperationReportRequestModel();
await widget.operationReportViewModel
.updateOperationReport(createUpdateOperationReportRequestModel);
}
if (widget.patientModel.state == ViewState.ErrorLocal) {
Helpers.showErrorToast(widget.patientModel.error);
if (widget.operationReportViewModel.state ==
ViewState.ErrorLocal) {
Helpers.showErrorToast(
widget.operationReportViewModel.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.toJson());
// await widget.operationReportViewModel.(
// progressNoteRequest.toJson());
DrAppToastMsg.showSuccesToast(
"Your Order added Successfully");
Navigator.of(context).pop();
}
GifLoaderDialogUtils.hideDialog(context);
DrAppToastMsg.showSuccesToast(
"Your Order added Successfully");
Navigator.of(context).pop();
} else {
Helpers.showErrorToast("You cant add only spaces");
}
})),
],
),
@ -313,7 +278,7 @@ class _UpdateOperatiomReportState extends State<UpdateOperatiomReport> {
setState(() {
SpeechToText.closeAlertDialog(context);
speech.stop();
progressNoteController.text += reconizedWord + '\n';
preOpDiagmosisController.text += reconizedWord + '\n';
});
} else {
print(result.finalResult);

Loading…
Cancel
Save