diff --git a/lib/core/service/SOAP_service.dart b/lib/core/service/SOAP_service.dart index 8c7631a3..9679293b 100644 --- a/lib/core/service/SOAP_service.dart +++ b/lib/core/service/SOAP_service.dart @@ -2,6 +2,8 @@ import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/models/SOAP/ChiefComplaint/GetChiefComplaintResModel.dart'; import 'package:doctor_app_flutter/models/SOAP/GeneralGetReqForSOAP.dart'; import 'package:doctor_app_flutter/models/SOAP/GetAllergiesResModel.dart'; +import 'package:doctor_app_flutter/models/SOAP/GetHistoryReqModel.dart'; +import 'package:doctor_app_flutter/models/SOAP/GetHistoryResModel.dart'; import 'package:doctor_app_flutter/models/SOAP/get_Allergies_request_model.dart'; import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/models/SOAP/post_allergy_request_model.dart'; @@ -17,6 +19,7 @@ import 'base/lookup-service.dart'; class SOAPService extends LookupService { List patientChiefComplaintList = []; List patientAllergiesList = []; + List patientHistoryList = []; Future getAllergies(GetAllergiesRequestModel getAllergiesRequestModel) async { await baseAppClient.post( @@ -199,15 +202,19 @@ class SOAPService extends LookupService { } Future getPatientHistories( - PostHistoriesRequestModel getPatientHistoriesRequestModel) async { + GetHistoryReqModel getHistoryReqModel) async { hasError = false; await baseAppClient.post (GET_HISTORY, onSuccess: (dynamic response, int statusCode) { print("Success"); + patientHistoryList.clear(); + response['List_History']['entityList'].forEach((v) { + patientHistoryList.add(GetHistoryResModel.fromJson(v)); + }); }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; - }, body: getPatientHistoriesRequestModel.toJson()); + }, body: getHistoryReqModel.toJson()); } Future getPatientChiefComplaint( diff --git a/lib/core/viewModel/SOAP_view_model.dart b/lib/core/viewModel/SOAP_view_model.dart index bcc98a7b..8a3b787e 100644 --- a/lib/core/viewModel/SOAP_view_model.dart +++ b/lib/core/viewModel/SOAP_view_model.dart @@ -4,6 +4,8 @@ import 'package:doctor_app_flutter/core/service/SOAP_service.dart'; import 'package:doctor_app_flutter/models/SOAP/ChiefComplaint/GetChiefComplaintResModel.dart'; import 'package:doctor_app_flutter/models/SOAP/GeneralGetReqForSOAP.dart'; import 'package:doctor_app_flutter/models/SOAP/GetAllergiesResModel.dart'; +import 'package:doctor_app_flutter/models/SOAP/GetHistoryReqModel.dart'; +import 'package:doctor_app_flutter/models/SOAP/GetHistoryResModel.dart'; import 'package:doctor_app_flutter/models/SOAP/get_Allergies_request_model.dart'; import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/models/SOAP/post_allergy_request_model.dart'; @@ -57,6 +59,8 @@ class SOAPViewModel extends BaseViewModel { List get patientAllergiesList => _SOAPService.patientAllergiesList; + List get patientHistoryList => + _SOAPService.patientHistoryList; Future getAllergies(GetAllergiesRequestModel getAllergiesRequestModel) async { setState(ViewState.Busy); @@ -210,9 +214,9 @@ class SOAPViewModel extends BaseViewModel { setState(ViewState.Idle); } - Future getPatientHistories(PostHistoriesRequestModel getPatientHistoriesRequestModel) async { + Future getPatientHistories(GetHistoryReqModel getHistoryReqModel) async { setState(ViewState.Busy); - await _SOAPService.getPatientHistories(getPatientHistoriesRequestModel); + await _SOAPService.getPatientHistories(getHistoryReqModel); if (_SOAPService.hasError) { error = _SOAPService.error; setState(ViewState.Busy); diff --git a/lib/models/SOAP/GetHistoryReqModel.dart b/lib/models/SOAP/GetHistoryReqModel.dart new file mode 100644 index 00000000..9b852e9b --- /dev/null +++ b/lib/models/SOAP/GetHistoryReqModel.dart @@ -0,0 +1,18 @@ +class GetHistoryReqModel { + int patientMRN; + int historyType; + + GetHistoryReqModel({this.patientMRN, this.historyType}); + + GetHistoryReqModel.fromJson(Map json) { + patientMRN = json['PatientMRN']; + historyType = json['HistoryType']; + } + + Map toJson() { + final Map data = new Map(); + data['PatientMRN'] = this.patientMRN; + data['HistoryType'] = this.historyType; + return data; + } +} diff --git a/lib/models/SOAP/GetHistoryResModel.dart b/lib/models/SOAP/GetHistoryResModel.dart new file mode 100644 index 00000000..c4b4f129 --- /dev/null +++ b/lib/models/SOAP/GetHistoryResModel.dart @@ -0,0 +1,40 @@ +class GetHistoryResModel { + int appointmentNo; + int episodeId; + int historyId; + int historyType; + bool isChecked; + int patientMRN; + String remarks; + + GetHistoryResModel( + {this.appointmentNo, + this.episodeId, + this.historyId, + this.historyType, + this.isChecked, + this.patientMRN, + this.remarks}); + + GetHistoryResModel.fromJson(Map json) { + appointmentNo = json['appointmentNo']; + episodeId = json['episodeId']; + historyId = json['historyId']; + historyType = json['historyType']; + isChecked = json['isChecked']; + patientMRN = json['patientMRN']; + remarks = json['remarks']; + } + + Map toJson() { + final Map data = new Map(); + data['appointmentNo'] = this.appointmentNo; + data['episodeId'] = this.episodeId; + data['historyId'] = this.historyId; + data['historyType'] = this.historyType; + data['isChecked'] = this.isChecked; + data['patientMRN'] = this.patientMRN; + data['remarks'] = this.remarks; + return data; + } +} diff --git a/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart b/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart index 9fae8b21..33a691cb 100644 --- a/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart +++ b/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart @@ -4,6 +4,7 @@ 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/models/SOAP/GeneralGetReqForSOAP.dart'; +import 'package:doctor_app_flutter/models/SOAP/GetHistoryReqModel.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'; @@ -47,7 +48,67 @@ class _UpdateSubjectivePageState extends State { TextEditingController illnessController = TextEditingController(); TextEditingController complaintsController = TextEditingController(); final formKey = GlobalKey(); + getHistory(SOAPViewModel model) async{ + GetHistoryReqModel getHistoryMedicalReqModel = GetHistoryReqModel( + patientMRN: widget.patientInfo.patientMRN, + historyType: + MasterKeysService.HistoryMedical.getMasterKeyService()); + GetHistoryReqModel getHistorySportsReqModel = GetHistoryReqModel( + patientMRN: widget.patientInfo.patientMRN, + historyType: + MasterKeysService.HistorySports.getMasterKeyService()); + GetHistoryReqModel getHistorySurgicalReqModel = GetHistoryReqModel( + patientMRN: widget.patientInfo.patientMRN, + historyType: + MasterKeysService.HistorySurgical.getMasterKeyService()); + GetHistoryReqModel getHistoryFamilyReqModel = GetHistoryReqModel( + patientMRN: widget.patientInfo.patientMRN, + historyType: + MasterKeysService.HistoryFamily.getMasterKeyService()); + await model.getPatientHistories(getHistoryMedicalReqModel); + await model.getPatientHistories(getHistorySportsReqModel); + await model.getPatientHistories(getHistorySurgicalReqModel); + await model.getPatientHistories(getHistoryFamilyReqModel); + + if(model.patientHistoryList.isNotEmpty) { + if (model.historyFamilyList.isEmpty) { + await model.getMasterLookup(MasterKeysService.HistoryFamily); + } + if (model.historyMedicalList.isEmpty) { + await model.getMasterLookup(MasterKeysService.HistoryMedical); + } + if (model.historySurgicalList.length == 0) { + await model.getMasterLookup(MasterKeysService.HistorySurgical); + await model.getMasterLookup(MasterKeysService.HistorySports); + } + model.patientHistoryList.forEach((element) { + if (element.historyType == MasterKeysService.HistoryFamily.getMasterKeyService()) { + widget.myHistoryList.add( model.getOneMasterKey( + masterKeys: MasterKeysService.HistoryFamily, + id: element.historyId, + )); + }if (element.historyType == MasterKeysService.HistoryMedical.getMasterKeyService()) { + widget.myHistoryList.add( model.getOneMasterKey( + masterKeys: MasterKeysService.HistoryMedical, + id: element.historyId, + )); + }if (element.historyType == MasterKeysService.HistorySports.getMasterKeyService()) { + widget.myHistoryList.add( model.getOneMasterKey( + masterKeys: MasterKeysService.HistorySports, + id: element.historyId, + )); + } + if (element.historyType == + MasterKeysService.HistorySurgical.getMasterKeyService()) { + widget.myHistoryList.add(model.getOneMasterKey( + masterKeys: MasterKeysService.HistorySurgical, + id: element.historyId, + )); + } + }); + } + } @override Widget build(BuildContext context) { return BaseView( @@ -57,10 +118,6 @@ class _UpdateSubjectivePageState extends State { episodeId: widget.patientInfo.episodeNo, appointmentNo: widget.patientInfo.appointmentNo); - if (model.allergiesList.isEmpty) - await model.getMasterLookup(MasterKeysService.Allergies); - if (model.allergySeverityList.isEmpty) - await model.getMasterLookup(MasterKeysService.AllergySeverity); await model.getPatientChiefComplaint(generalGetReqForSOAP); if (model.chiefComplaintList.isNotEmpty) { complaintsController.text = @@ -69,6 +126,11 @@ class _UpdateSubjectivePageState extends State { } await model.getPatientAllergy(generalGetReqForSOAP); if (model.patientAllergiesList.isNotEmpty) { + if (model.allergiesList.isEmpty) + await model.getMasterLookup(MasterKeysService.Allergies); + if (model.allergySeverityList.isEmpty) + await model.getMasterLookup(MasterKeysService.AllergySeverity); + model.patientAllergiesList.forEach((element) { MasterKeyModel selectedAllergy = model.getOneMasterKey( masterKeys: MasterKeysService.Allergies, @@ -85,6 +147,9 @@ class _UpdateSubjectivePageState extends State { widget.myAllergiesList.add(mySelectedAllergy); }); } + + await getHistory(model); + }, builder: (_, model, w) => AppScaffold( isShowAppBar: false,