diff --git a/lib/models/patient/prescription_report_for_in_patient.dart b/lib/models/patient/prescription_report_for_in_patient.dart new file mode 100644 index 00000000..d4452e32 --- /dev/null +++ b/lib/models/patient/prescription_report_for_in_patient.dart @@ -0,0 +1,200 @@ +class PrescriptionReportForInPatient { + int admissionNo; + int authorizedBy; + Null bedNo; + String comments; + int createdBy; + String createdByName; + Null createdByNameN; + String createdOn; + String direction; + int directionID; + Null directionN; + String dose; + int editedBy; + Null iVDiluentLine; + int iVDiluentType; + Null iVDiluentVolume; + Null iVRate; + Null iVStability; + String itemDescription; + int itemID; + int lineItemNo; + int locationId; + int noOfDoses; + int orderNo; + int patientID; + String pharmacyRemarks; + String prescriptionDatetime; + int prescriptionNo; + String processedBy; + int projectID; + int refillID; + String refillType; + Null refillTypeN; + int reviewedPharmacist; + Null roomId; + String route; + int routeId; + Null routeN; + Null setupID; + String startDatetime; + int status; + String statusDescription; + Null statusDescriptionN; + String stopDatetime; + int unitofMeasurement; + String unitofMeasurementDescription; + Null unitofMeasurementDescriptionN; + + PrescriptionReportForInPatient( + {this.admissionNo, + this.authorizedBy, + this.bedNo, + this.comments, + this.createdBy, + this.createdByName, + this.createdByNameN, + this.createdOn, + this.direction, + this.directionID, + this.directionN, + this.dose, + this.editedBy, + this.iVDiluentLine, + this.iVDiluentType, + this.iVDiluentVolume, + this.iVRate, + this.iVStability, + this.itemDescription, + this.itemID, + this.lineItemNo, + this.locationId, + this.noOfDoses, + this.orderNo, + this.patientID, + this.pharmacyRemarks, + this.prescriptionDatetime, + this.prescriptionNo, + this.processedBy, + this.projectID, + this.refillID, + this.refillType, + this.refillTypeN, + this.reviewedPharmacist, + this.roomId, + this.route, + this.routeId, + this.routeN, + this.setupID, + this.startDatetime, + this.status, + this.statusDescription, + this.statusDescriptionN, + this.stopDatetime, + this.unitofMeasurement, + this.unitofMeasurementDescription, + this.unitofMeasurementDescriptionN}); + + PrescriptionReportForInPatient.fromJson(Map json) { + admissionNo = json['AdmissionNo']; + authorizedBy = json['AuthorizedBy']; + bedNo = json['BedNo']; + comments = json['Comments']; + createdBy = json['CreatedBy']; + createdByName = json['CreatedByName']; + createdByNameN = json['CreatedByNameN']; + createdOn = json['CreatedOn']; + direction = json['Direction']; + directionID = json['DirectionID']; + directionN = json['DirectionN']; + dose = json['Dose']; + editedBy = json['EditedBy']; + iVDiluentLine = json['IVDiluentLine']; + iVDiluentType = json['IVDiluentType']; + iVDiluentVolume = json['IVDiluentVolume']; + iVRate = json['IVRate']; + iVStability = json['IVStability']; + itemDescription = json['ItemDescription']; + itemID = json['ItemID']; + lineItemNo = json['LineItemNo']; + locationId = json['LocationId']; + noOfDoses = json['NoOfDoses']; + orderNo = json['OrderNo']; + patientID = json['PatientID']; + pharmacyRemarks = json['PharmacyRemarks']; + prescriptionDatetime = json['PrescriptionDatetime']; + prescriptionNo = json['PrescriptionNo']; + processedBy = json['ProcessedBy']; + projectID = json['ProjectID']; + refillID = json['RefillID']; + refillType = json['RefillType']; + refillTypeN = json['RefillTypeN']; + reviewedPharmacist = json['ReviewedPharmacist']; + roomId = json['RoomId']; + route = json['Route']; + routeId = json['RouteId']; + routeN = json['RouteN']; + setupID = json['SetupID']; + startDatetime = json['StartDatetime']; + status = json['Status']; + statusDescription = json['StatusDescription']; + statusDescriptionN = json['StatusDescriptionN']; + stopDatetime = json['StopDatetime']; + unitofMeasurement = json['UnitofMeasurement']; + unitofMeasurementDescription = json['UnitofMeasurementDescription']; + unitofMeasurementDescriptionN = json['UnitofMeasurementDescriptionN']; + } + + Map toJson() { + final Map data = new Map(); + data['AdmissionNo'] = this.admissionNo; + data['AuthorizedBy'] = this.authorizedBy; + data['BedNo'] = this.bedNo; + data['Comments'] = this.comments; + data['CreatedBy'] = this.createdBy; + data['CreatedByName'] = this.createdByName; + data['CreatedByNameN'] = this.createdByNameN; + data['CreatedOn'] = this.createdOn; + data['Direction'] = this.direction; + data['DirectionID'] = this.directionID; + data['DirectionN'] = this.directionN; + data['Dose'] = this.dose; + data['EditedBy'] = this.editedBy; + data['IVDiluentLine'] = this.iVDiluentLine; + data['IVDiluentType'] = this.iVDiluentType; + data['IVDiluentVolume'] = this.iVDiluentVolume; + data['IVRate'] = this.iVRate; + data['IVStability'] = this.iVStability; + data['ItemDescription'] = this.itemDescription; + data['ItemID'] = this.itemID; + data['LineItemNo'] = this.lineItemNo; + data['LocationId'] = this.locationId; + data['NoOfDoses'] = this.noOfDoses; + data['OrderNo'] = this.orderNo; + data['PatientID'] = this.patientID; + data['PharmacyRemarks'] = this.pharmacyRemarks; + data['PrescriptionDatetime'] = this.prescriptionDatetime; + data['PrescriptionNo'] = this.prescriptionNo; + data['ProcessedBy'] = this.processedBy; + data['ProjectID'] = this.projectID; + data['RefillID'] = this.refillID; + data['RefillType'] = this.refillType; + data['RefillTypeN'] = this.refillTypeN; + data['ReviewedPharmacist'] = this.reviewedPharmacist; + data['RoomId'] = this.roomId; + data['Route'] = this.route; + data['RouteId'] = this.routeId; + data['RouteN'] = this.routeN; + data['SetupID'] = this.setupID; + data['StartDatetime'] = this.startDatetime; + data['Status'] = this.status; + data['StatusDescription'] = this.statusDescription; + data['StatusDescriptionN'] = this.statusDescriptionN; + data['StopDatetime'] = this.stopDatetime; + data['UnitofMeasurement'] = this.unitofMeasurement; + data['UnitofMeasurementDescription'] = this.unitofMeasurementDescription; + data['UnitofMeasurementDescriptionN'] = this.unitofMeasurementDescriptionN; + return data; + } +} diff --git a/lib/models/patient/reauest_prescription_report_for_in_patient.dart b/lib/models/patient/reauest_prescription_report_for_in_patient.dart new file mode 100644 index 00000000..857705c4 --- /dev/null +++ b/lib/models/patient/reauest_prescription_report_for_in_patient.dart @@ -0,0 +1,64 @@ +class RequestPrescriptionReportForInPatient { + int patientID; + int projectID; + int admissionNo; + int languageID; + String stamp; + String iPAdress; + double versionID; + int channel; + String tokenID; + String sessionID; + bool isLoginForDoctorApp; + bool patientOutSA; + int patientTypeID; + + RequestPrescriptionReportForInPatient( + {this.patientID, + this.projectID, + this.admissionNo, + this.languageID, + this.stamp, + this.iPAdress, + this.versionID, + this.channel, + this.tokenID, + this.sessionID, + this.isLoginForDoctorApp, + this.patientOutSA, + this.patientTypeID}); + + RequestPrescriptionReportForInPatient.fromJson(Map json) { + patientID = json['PatientID']; + projectID = json['ProjectID']; + admissionNo = json['AdmissionNo']; + 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 toJson() { + final Map data = new Map(); + data['PatientID'] = this.patientID; + data['ProjectID'] = this.projectID; + data['AdmissionNo'] = this.admissionNo; + 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; + } +} diff --git a/lib/providers/patients_provider.dart b/lib/providers/patients_provider.dart index 7ff73724..9bf8d34b 100644 --- a/lib/providers/patients_provider.dart +++ b/lib/providers/patients_provider.dart @@ -6,6 +6,7 @@ import 'package:doctor_app_flutter/models/patient/lab_orders_res_model.dart'; import 'package:doctor_app_flutter/models/patient/lab_result.dart'; import 'package:doctor_app_flutter/models/patient/lab_result_req_model.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; +import 'package:doctor_app_flutter/models/patient/prescription_report_for_in_patient.dart'; import 'package:doctor_app_flutter/models/patient/prescription_res_model.dart'; import 'package:doctor_app_flutter/models/patient/radiology_res_model.dart'; import 'package:flutter/cupertino.dart'; @@ -25,8 +26,7 @@ import '../util/helpers.dart'; Helpers helpers = Helpers(); -class PatientsProvider with ChangeNotifier -{ +class PatientsProvider with ChangeNotifier { bool isLoading = false; bool isError = false; String error = ''; @@ -35,10 +35,10 @@ class PatientsProvider with ChangeNotifier List patientLabResultOrdersList = []; List patientPrescriptionsList = []; List patientRadiologyList = []; + List prescriptionReportForInPatientList = []; - - /*@author: ibrahe albitar - *@Date:2/6/2020 + /*@author: ibrahe albitar + *@Date:2/6/2020 *@desc: getPatientPrescriptions */ @@ -48,7 +48,7 @@ class PatientsProvider with ChangeNotifier var insuranceApporvalsList = []; Client client = - HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]); + HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]); PatiantInformtion _selectedPatient; @@ -211,17 +211,15 @@ class PatientsProvider with ChangeNotifier *@Date:3/5/2020 *@param: patient *@return: - *@desc: getPatientPrescriptions + *@desc: geOutPatientPrescriptions */ getOutPatientPrescriptions(patient) async { - // isLoading = true; - // notifyListeners(); setBasicData(); try { if (await Helpers.checkConnection()) { final response = - await AppClient.post(GET_PRESCRIPTION, body: json.encode(patient)); + await AppClient.post(GET_PRESCRIPTION, body: json.encode(patient)); final int statusCode = response.statusCode; isLoading = false; @@ -253,6 +251,37 @@ class PatientsProvider with ChangeNotifier } } + /*@author: Mohammad Aljammal + *@Date:4/6/2020 + *@param: patient + *@return: + *@desc: getInPatientPrescriptions + */ + getInPatientPrescriptions(patient) async { + setBasicData(); + try { + prescriptionReportForInPatientList = []; + notifyListeners(); + await BaseAppClient.post( + 'DoctorApplication.svc/REST/GetPrescriptionReportForInPatient', + onSuccess: (dynamic response, int statusCode) { + response['List_PrescriptionReportForInPatient'].forEach((v) { + prescriptionReportForInPatientList + .add(PrescriptionReportForInPatient.fromJson(v)); + }); + isError = false; + isLoading = false; + }, onFailure: (String error, int statusCode) { + isError = true; + this.error = error; + }, body: patient); + notifyListeners(); + + } catch (err) { + handelCatchErrorCase(err); + } + } + /*@author: Elham Rababah *@Date:12/5/2020 *@param: patient @@ -280,7 +309,7 @@ class PatientsProvider with ChangeNotifier try { if (await Helpers.checkConnection()) { final response = - await AppClient.post(GET_RADIOLOGY, body: json.encode(patient)); + await AppClient.post(GET_RADIOLOGY, body: json.encode(patient)); final int statusCode = response.statusCode; isLoading = false; @@ -311,7 +340,6 @@ class PatientsProvider with ChangeNotifier } } - getLabResult(LabOrdersResModel labOrdersResModel) async { labResultList.clear(); isLoading = true; @@ -321,15 +349,14 @@ class PatientsProvider with ChangeNotifier requestLabResult.orderNo = labOrdersResModel.orderNo; requestLabResult.invoiceNo = labOrdersResModel.invoiceNo; requestLabResult.patientTypeID = labOrdersResModel.patientType; - await BaseAppClient.post( - 'DoctorApplication.svc/REST/GetPatientLabResults', + await BaseAppClient.post('DoctorApplication.svc/REST/GetPatientLabResults', onSuccess: (dynamic response, int statusCode) { - isError = false; - isLoading = false; - response['List_GetLabNormal'].forEach((v) { - labResultList.add(new LabResult.fromJson(v)); - }); - }, onFailure: (String error, int statusCode) { + isError = false; + isLoading = false; + response['List_GetLabNormal'].forEach((v) { + labResultList.add(new LabResult.fromJson(v)); + }); + }, onFailure: (String error, int statusCode) { isError = true; isLoading = false; this.error = error; @@ -337,13 +364,12 @@ class PatientsProvider with ChangeNotifier notifyListeners(); } - getPatientInsuranceApprovals(patient) async { setBasicData(); try { if (await Helpers.checkConnection()) { - final response = await AppClient.post( - PATIENT_INSURANCE_APPROVALS_URL, body: json.encode(patient)); + final response = await AppClient.post(PATIENT_INSURANCE_APPROVALS_URL, + body: json.encode(patient)); final int statusCode = response.statusCode; isLoading = false; @@ -372,44 +398,40 @@ class PatientsProvider with ChangeNotifier } } -/*@author: ibrahe albitar - *@Date:2/6/2020 +/*@author: ibrahe albitar + *@Date:2/6/2020 *@desc: getPatientPrescriptions */ getPatientProgressNote(patient) async { - setBasicData(); - try { - if (await Helpers.checkConnection()) { - final response = await AppClient.post(PATIENT_PROGRESS_NOTE_URL, - body: json.encode(patient)); - final int statusCode = response.statusCode; - isLoading = false; - - if (statusCode < 200 || statusCode >= 400 || json == null) { - isError = true; - error = 'Error While Fetching data'; + setBasicData(); + try { + if (await Helpers.checkConnection()) { + final response = await AppClient.post(PATIENT_PROGRESS_NOTE_URL, + body: json.encode(patient)); + final int statusCode = response.statusCode; + isLoading = false; + + if (statusCode < 200 || statusCode >= 400 || json == null) { + isError = true; + error = 'Error While Fetching data'; + } else { + var res = json.decode(response.body); + print('$res'); + if (res['MessageStatus'] == 1) { + patientProgressNoteList = res['List_GetPregressNoteForInPatient']; } else { - var res = json.decode(response.body); - print('$res'); - if (res['MessageStatus'] == 1) { - patientProgressNoteList = res['List_GetPregressNoteForInPatient']; - } else { - isError = true; - error = res['ErrorMessage'] ?? res['ErrorEndUserMessage']; - } + isError = true; + error = res['ErrorMessage'] ?? res['ErrorEndUserMessage']; } - } else { - isLoading = false; - isError = true; - error = 'Please Check The Internet Connection'; } - notifyListeners(); - } catch (err) { - handelCatchErrorCase(err); + } else { + isLoading = false; + isError = true; + error = 'Please Check The Internet Connection'; } + notifyListeners(); + } catch (err) { + handelCatchErrorCase(err); } - - - - + } } diff --git a/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart b/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart index aa1d193c..c246d9ff 100644 --- a/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart +++ b/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart @@ -1,3 +1,4 @@ +import 'package:doctor_app_flutter/models/patient/reauest_prescription_report_for_in_patient.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart'; import 'package:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart'; import 'package:flutter/cupertino.dart'; @@ -47,14 +48,23 @@ class _PrescriptionScreenState extends State { String token = await sharedPref.getString(TOKEN); String type = await sharedPref.getString(SLECTED_PATIENT_TYPE); - PrescriptionReqModel prescriptionReqModel = PrescriptionReqModel( - patientID: patient.patientId, - projectID: patient.projectId, - tokenID: token, - patientTypeID: patient.patientType, - languageID: 2, - setupID: 0); - patientsProv.getOutPatientPrescriptions(prescriptionReqModel.toJson()); + if (type == '1') { + RequestPrescriptionReportForInPatient prescriptionReqModel = + RequestPrescriptionReportForInPatient( + patientID: patient.patientId, + patientTypeID: patient.patientType, + admissionNo: int.parse(patient.admissionNo)); + patientsProv.getInPatientPrescriptions(prescriptionReqModel.toJson()); + } else { + PrescriptionReqModel prescriptionReqModel = PrescriptionReqModel( + patientID: patient.patientId, + projectID: patient.projectId, + tokenID: token, + patientTypeID: patient.patientType, + languageID: 2, + setupID: 0); + patientsProv.getOutPatientPrescriptions(prescriptionReqModel.toJson()); + } } @override @@ -98,25 +108,38 @@ class _PrescriptionScreenState extends State { Row( children: [ LargeAvatar( - url: patientsProv.patientPrescriptionsList[index].doctorImageURL,name:patientsProv.patientPrescriptionsList[index].doctorName ,radius: 10,width: 70,), + url: patientsProv + .patientPrescriptionsList[index] + .doctorImageURL, + name: patientsProv + .patientPrescriptionsList[index] + .doctorName, + radius: 10, + width: 70, + ), Expanded( child: Container( - margin: EdgeInsets.only(left: 15,right: 15), + margin: EdgeInsets.only( + left: 15, right: 15), child: Column( crossAxisAlignment: - CrossAxisAlignment.start, + CrossAxisAlignment.start, children: [ AppText( '${patientsProv.patientPrescriptionsList[index].name}', - fontSize: 2.5 * SizeConfig.textMultiplier, + fontSize: 2.5 * + SizeConfig.textMultiplier, ), SizedBox( height: 8, ), AppText( '${patientsProv.patientPrescriptionsList[index].clinicDescription}', - fontSize: 2.5 * SizeConfig.textMultiplier, - color: Theme.of(context).primaryColor), + fontSize: 2.5 * + SizeConfig + .textMultiplier, + color: Theme.of(context) + .primaryColor), SizedBox( height: 8, ),