diff --git a/assets/angular/core/app.js b/assets/angular/core/app.js index 8bbd661..e0158c0 100644 --- a/assets/angular/core/app.js +++ b/assets/angular/core/app.js @@ -125,11 +125,19 @@ angular.module("EmmetBlue") services.serverRequest = function(url, requestType, data={}){ var deferred = $q.defer(); - return $http({ + var _req = { "url":services.restServer+url, "method":requestType, "data":data - }).then(function(result){ + } + + if (typeof $cookies.getObject(CONSTANTS.USER_COOKIE_IDENTIFIER) !== "undefined"){ + _req.headers = { + "Authorization":$cookies.getObject(CONSTANTS.USER_COOKIE_IDENTIFIER).token + } + } + + return $http(_req).then(function(result){ deferred.resolve(result.data.contentData); return deferred.promise; }, function(result){ @@ -166,13 +174,17 @@ angular.module("EmmetBlue") case 500: case 501: case 400:{ - services.notify('Unable To Process Request', 'This is usually due to making request for a missing resource or sending improperly formatted data to the server. Please contact an administrator if this error persists. Error Code: AB0'+errorObject.status, "error"); + services.notify('Unable To Process Request', 'This is usually due to making request for a missing resource or sending improperly formatted data to the server. Please contact an administrator if this error persists. Error Code: AB0'+errorObject.status+' Server Message: '+errorObject.data.errorMessage, "error"); break; } case 503:{ services.notify('The Server Refused To Process Your Request', 'This is usally due to the creation of duplicate data. This resource does not allow you to create data of the same exact type, please contact an administrator if this error persists. Error Code: AB0'+errorObject.status, 'warning'); break; } + case 401:{ + console.log("Request Denied"); + break; + } default: { if (typeof errorObject.data != "undefined" && errorObject.data != null){ diff --git a/assets/images/giltooe/logo-black.png b/assets/images/giltooe/logo-black.png new file mode 100644 index 0000000..5f96c64 Binary files /dev/null and b/assets/images/giltooe/logo-black.png differ diff --git a/assets/images/giltooe/logo-orange-full.png b/assets/images/giltooe/logo-orange-full.png new file mode 100644 index 0000000..5f96c64 Binary files /dev/null and b/assets/images/giltooe/logo-orange-full.png differ diff --git a/assets/images/giltooe/logo-orange-small.png b/assets/images/giltooe/logo-orange-small.png new file mode 100644 index 0000000..5f96c64 Binary files /dev/null and b/assets/images/giltooe/logo-orange-small.png differ diff --git a/assets/images/giltooe/logo.png b/assets/images/giltooe/logo.png new file mode 100644 index 0000000..3c45faa Binary files /dev/null and b/assets/images/giltooe/logo.png differ diff --git a/consts.js b/consts.js index dcc3b8c..401015a 100644 --- a/consts.js +++ b/consts.js @@ -2,7 +2,7 @@ function getConstants(){ var server = "https://emmetblue.org.ng:700/"; var client = { short_name: "Harmony Hospital", - name: "Harmony Hospital & Specialists Clinic", + name: "Harmony Hospital and Specialists Clinic", _style:{ accounts:{ billing:{ diff --git a/plugins/accounts/billing/assets/controllers/new-payment-controller.js b/plugins/accounts/billing/assets/controllers/new-payment-controller.js index b3e2f81..c1fc3a4 100644 --- a/plugins/accounts/billing/assets/controllers/new-payment-controller.js +++ b/plugins/accounts/billing/assets/controllers/new-payment-controller.js @@ -114,6 +114,28 @@ angular.module("EmmetBlue") $("#accept_new_payment").modal("hide"); $("#payment_receipt").modal("show"); + + var form = $("#main_payment_receipt").get(0); + domtoimage.toPng(form) + .then(function (dataUrl) { + var img = new Image(); + + var req = utils.serverRequest("/emmetblue-cloud/receipt/upload", "POST", { + patient: $scope.receiptData.invoiceData.patient, + description: "Invoice No.: #"+$scope.receiptData.transactionId, + staff: utils.userSession.getID(), + receipt: dataUrl + }); + + req.then(function(response){ + + }, function(error){ + + }); + }) + .catch(function (error) { + console.error('oops, something went wrong!', error); + }); } $scope.loadInvoice = function(){ diff --git a/plugins/accounts/main/assets/controllers/view-general-journal-controller.js b/plugins/accounts/main/assets/controllers/view-general-journal-controller.js index d1c95d0..7555ca1 100644 --- a/plugins/accounts/main/assets/controllers/view-general-journal-controller.js +++ b/plugins/accounts/main/assets/controllers/view-general-journal-controller.js @@ -98,6 +98,7 @@ angular.module("EmmetBlue") utils.DT.columnBuilder.newColumn('GeneralJournalTotalAmount').withTitle("Amount ()"), utils.DT.columnBuilder.newColumn(null).withTitle('').renderWith(function(data, full, meta){ var viewButtonAction = "manageJournal('view', "+data.GeneralJournalID+")"; + var delButtonAction = "manageJournal('delete', "+data.GeneralJournalID+")"; var begBalButtonAction = "manageJournal('beginningBalances', "+data.GeneralJournalID+")"; var viewMetadataButtonAction = "manageJournal('viewmetadata', "+data.GeneralJournalID+")"; @@ -109,6 +110,7 @@ angular.module("EmmetBlue") "
  • View
  • "+ "
  • Adjust Entry
  • "+ "
  • "+ + "
  • Delete
  • "+ "
  • View Metadata
  • "+ ""+ ""; @@ -208,6 +210,27 @@ angular.module("EmmetBlue") $("#view-current-journal-metadata").modal("show"); break; } + case "delete":{ + var title = "Please Confirm"; + var text = "Do you really want to delete this transaction. Please note that you have to manually balance any affected account(s)" + var close = true; + var type = "warning"; + var btnText = "Yes, please continue"; + + var process = function(){ + var req = utils.serverRequest("/financial-accounts/general-journal/delete?resourceId="+id, "DELETE"); + + req.then(function(response){ + utils.notify("Operation successful", "The selected transaction has been deleted successfully", "success"); + $scope.reloadTable(); + }, function(error){ + utils.errorHandler(error); + }) + } + + utils.confirm(title, text, close, process, type, btnText); + break; + } } } diff --git a/plugins/consultancy/assets/controllers/admit-patient-controller.js b/plugins/consultancy/assets/controllers/admit-patient-controller.js index c73de3b..27786a4 100644 --- a/plugins/consultancy/assets/controllers/admit-patient-controller.js +++ b/plugins/consultancy/assets/controllers/admit-patient-controller.js @@ -20,6 +20,12 @@ angular.module("EmmetBlue") } } + $scope.$on("prepareNewAdmission", function(e, data){ + var uuid = data; + $("#patientNumber").val(uuid); + $scope.loadInfo(); + }); + var showBigSpace = function(){ $(".bigSpace").addClass("col-md-8").removeClass("col-md-12"); $scope.showInfo = true; diff --git a/plugins/consultancy/assets/controllers/lab-request-form-directive.js b/plugins/consultancy/assets/controllers/lab-request-form-directive.js index 2ce2f0d..b724c38 100644 --- a/plugins/consultancy/assets/controllers/lab-request-form-directive.js +++ b/plugins/consultancy/assets/controllers/lab-request-form-directive.js @@ -9,6 +9,7 @@ angular.module("EmmetBlue") templateUrl: "plugins/consultancy/assets/includes/lab-request-form-template.html", controller: function($scope, utils, $rootScope){ $scope.showSubmitLoader = false; + $scope.investigationLists = {}; $scope.today = utils.today()+ " " + (new Date()).toLocaleTimeString(); var table = $(".lab-table tr"); @@ -34,6 +35,7 @@ angular.module("EmmetBlue") loadRegisteredInvestigationTypes: function(lab){ utils.serverRequest('/lab/investigation-type/view-by-lab?resourceId='+lab, 'GET').then(function(response){ $scope.module.registeredInvestigationTypes = response; + $scope.investigationLists = {}; }, function(error){ utils.errorHandler(error); }) @@ -45,6 +47,85 @@ angular.module("EmmetBlue") $scope.module.loadRegisteredInvestigationTypes(nv); }) + var showLabForwarder = function(response){ + console.log(response, $scope.investigationLists, $scope.module.lab); + $scope.pushToLab = { + investigations: [] + }; + if ($scope.investigationLists.length !== 0){ + $scope.requestId = response.lastInsertId; + $("#labForwarderModal").modal("show"); + var req = utils.serverRequest("/patients/patient/view/"+$scope.patientInfo.patientid, "GET"); + req.then(function(response){ + $scope.pushToLab.gender = response["_source"].gender; + $scope.pushToLab.picture = response["_source"].patientpicture; + $scope.pushToLab.phoneNumber = response["_source"]["phone number"]; + $scope.pushToLab.firstName = response["_source"]["first name"]; + $scope.pushToLab.lastName = response["_source"]["last name"]; + $scope.pushToLab.address = response["_source"]["home address"]; + $scope.pushToLab.dateOfBirth = response["_source"]["date of birth"]; + + + var req = utils.serverRequest("/lab/lab-request/view/"+$scope.requestId, "GET"); + req.then(function(response){ + $scope.pushToLab.clinicalDiagnosis = response.ClinicalDiagnosis; + $scope.pushToLab.dateRequested = response.RequestDate; + $scope.pushToLab.investigationRequired = response.InvestigationRequired; + $scope.pushToLab.request = response.RequestID; + $scope.pushToLab.requestedBy = response.RequestedBy; + $scope.pushToLab.patientID = response.PatientID; + + angular.forEach($scope.investigationLists, function(value, key){ + if (value){ + var req = utils.serverRequest("/lab/investigation-type/view/"+key, "GET"); + req.then(function(response){ + response = response[0]; + $scope.pushToLab.investigations.push({ + iName: response.InvestigationTypeName, + investigation: response.InvestigationTypeID, + lName: response.LabName, + lab: response.LabID + }); + }, function(error){ + utils.errorHandler(error); + }) + } + }); + }, function(error){ + utils.errorHandler(error); + }); + + }, function(error){ + utils.errorHandler(error); + }) + } + } + + $scope.forwardPushToLab = function(){ + var req = utils.serverRequest("/lab/patient/new", "POST", $scope.pushToLab); + req.then(function(response){ + if (response){ + utils.notify("Operation successful", "This patient can go to the lab", "success"); + $("#labForwarderModal").modal("hide"); + utils.serverRequest("/lab/lab-request/close-request", "POST", {"request": $scope.pushToLab.request, "staff": utils.userSession.getID()}) + .then(function(response){ + $rootScope.$broadcast("ReloadQueue"); + utils.serverRequest("/lab/lab-request/close-request", "POST", {"request": $scope.pushToLab.request, "staff": utils.userSession.getID()}) + .then(function(response){ + $rootScope.$broadcast("ReloadQueue"); + $rootScope.$broadcast("reloadLabPatients", {}); + }, function(error){ + utils.errorHandler(error); + }); + }, function(error){ + utils.errorHandler(error); + }); + } + }, function(error){ + utils.errorHandler(error); + }); + } + $scope.submit = function(){ $scope.showSubmitLoader = true; var reqs = []; @@ -109,6 +190,7 @@ angular.module("EmmetBlue") utils.notify("Operation Successful", "Request sent successfully", "success"); $scope.investigations = ""; reqs = []; + showLabForwarder(response); }, function(error){ utils.errorHandler(error); }) diff --git a/plugins/consultancy/assets/controllers/new-diagnosis-controller.js b/plugins/consultancy/assets/controllers/new-diagnosis-controller.js index 6173c1f..eb84a4d 100644 --- a/plugins/consultancy/assets/controllers/new-diagnosis-controller.js +++ b/plugins/consultancy/assets/controllers/new-diagnosis-controller.js @@ -323,7 +323,7 @@ angular.module("EmmetBlue") $scope.patient.isProfileReady = true; modules.allergies.loadPatientAllergies($scope.patient.profile.patientid); utils.notify("Profile loaded successfully", "", "info"); - modules.globals.loadSavedDiagnosis(); + modules.globals.loadAllSavedDiagnosis(); $scope.patient.history.displayPage='profile'; if (typeof $scope.patient.profile.auditflags !== "undefined" && $scope.patient.profile.auditflags.length > 0){ @@ -612,9 +612,27 @@ angular.module("EmmetBlue") utils.serverRequest("/patients/patient-diagnosis/new", "POST", data).then(successCallback, errorCallback); }, - loadSavedDiagnosis: function(){ + loadAllSavedDiagnosis: function(){ var patient = $scope.patient.profile.patientid; - var consultant = utils.userSession.getID(); + var errorCallback = function(error){ + utils.errorHandler(error); + } + utils.serverRequest("/consultancy/saved-diagnosis/view-all-saved-diagnosis?resourceId="+patient, "GET").then(function(response){ + if (response.length == 0){ + //continue; + } + else if (response.length == 1 && response[0].Consultant == utils.userSession.getID()){ + modules.globals.loadSavedDiagnosis(); + } + else { + $scope.allSavedDiagnoses = response; + $("#show-saved-diag-selector").modal("show"); + } + }, errorCallback); + }, + loadSavedDiagnosis: function(patient=0, consultant=0){ + var patient = (patient == 0) ? $scope.patient.profile.patientid : patient; + var consultant = (consultant == 0) ? utils.userSession.getID() : consultant; var successCallback = function(response){ if (response.length > 0){ @@ -925,4 +943,15 @@ angular.module("EmmetBlue") $scope.$watch(function(){ return $scope.conclusion.diagnosis.title; }, function(nv, ov){ $rootScope.$broadcast("currentDiagnosis", nv); }) + + $scope.loadSavedDiagnosis = function(patient, consultant){ + $("#show-saved-diag-selector").modal("hide"); + modules.globals.loadSavedDiagnosis(patient, consultant); + } + + $scope.admit = function(){ + var patient = $scope.patient.profile.patientuuid; + $rootScope.$broadcast("prepareNewAdmission", patient); + $("#_patient-admission-form").modal("show"); + } }); \ No newline at end of file diff --git a/plugins/consultancy/assets/controllers/pharmacy-prescription-directive.js b/plugins/consultancy/assets/controllers/pharmacy-prescription-directive.js index 7ec084a..7e13e4c 100644 --- a/plugins/consultancy/assets/controllers/pharmacy-prescription-directive.js +++ b/plugins/consultancy/assets/controllers/pharmacy-prescription-directive.js @@ -46,7 +46,7 @@ angular.module("EmmetBlue") }, addPrescriptionToList: function(item, duration = ""){ if (item !== ""){ - utils.serverRequest("/pharmacy/pharmacy-request/smartify?prescription="+item, "GET").then(function(response){ + utils.serverRequest("/pharmacy/pharmacy-request/smartify", "POST", {prescription: item}).then(function(response){ if (!response.valid){ utils.notify("Last entered prescription is not smart", "Reason: "+response.reason, "info"); $scope.isSmart = false; @@ -186,6 +186,7 @@ angular.module("EmmetBlue") }, catchSearchDrugEnterPress: function(e){ if (e.which == 13){ + e.preventDefault(); modules.conclusion.searchDrug(); } }, diff --git a/plugins/consultancy/assets/includes/lab-request-form-template.html b/plugins/consultancy/assets/includes/lab-request-form-template.html index 9bbd44a..3d3e2bd 100644 --- a/plugins/consultancy/assets/includes/lab-request-form-template.html +++ b/plugins/consultancy/assets/includes/lab-request-form-template.html @@ -779,7 +779,7 @@

    LABORATORY/IMAGING INVESTIGATION REQUEST

    @@ -792,4 +792,42 @@

    LABORATORY/IMAGING INVESTIGATION REQUEST

    +
    + + \ No newline at end of file diff --git a/plugins/consultancy/assets/includes/pharmacy-prescription-template.html b/plugins/consultancy/assets/includes/pharmacy-prescription-template.html index 5936960..4c711c0 100644 --- a/plugins/consultancy/assets/includes/pharmacy-prescription-template.html +++ b/plugins/consultancy/assets/includes/pharmacy-prescription-template.html @@ -12,14 +12,13 @@
    Prescri
    -
    - - - - -
    + + + +
    -
    +
    +
    @@ -40,8 +39,9 @@
    Prescri
    diff --git a/plugins/consultancy/diagnosis.html b/plugins/consultancy/diagnosis.html index e48e1a9..6cbd9b8 100644 --- a/plugins/consultancy/diagnosis.html +++ b/plugins/consultancy/diagnosis.html @@ -43,6 +43,7 @@
    Current Patient: {{patient.profile["first name"]}} {{patient.profile["last name"]}}
    +
    Date: {{globals.today()}}
    @@ -701,4 +702,38 @@
    + + + + \ No newline at end of file diff --git a/plugins/consultancy/patient-workspace.html b/plugins/consultancy/patient-workspace.html index 8ec3916..549d1a3 100644 --- a/plugins/consultancy/patient-workspace.html +++ b/plugins/consultancy/patient-workspace.html @@ -47,7 +47,8 @@
    Admission Workspace for patient number {{admissionInfo.PatientAdmissionID}}
    - + +
    @@ -59,6 +60,7 @@
    Admission Workspace for patient number Diagnosis Note
  • Services Rendered
  • Treatment Chart
  • +
  • Investigation Request
  • @@ -113,6 +115,9 @@
    {{repo.RepositoryName}}
    +
    + +
    diff --git a/plugins/financial-audit/assets/controllers/patient-flow-controller.js b/plugins/financial-audit/assets/controllers/patient-flow-controller.js index 10d2499..0a089cc 100644 --- a/plugins/financial-audit/assets/controllers/patient-flow-controller.js +++ b/plugins/financial-audit/assets/controllers/patient-flow-controller.js @@ -4,8 +4,15 @@ angular.module("EmmetBlue") $scope.loadImage = utils.loadImage; $scope.dtInstance = {}; $scope.dtOptions = utils.DT.optionsBuilder - .fromFnPromise(function(){ - var url = '/audit/unlock-log/view-unlocked?'; + .newOptions() + .withFnServerData(function(source, data, callback, settings){ + var draw = data[0].value; + var order = data[2].value; + var start = data[3].value; + var length = data[4].value; + var search= data[5].value.value; + + var url = '/audit/unlock-log/view-unlocked?paginate&from='+start+'&size='+length+'&keywordsearch='+search+'&'; var filter = $scope.requestFilter; var _filter = ""; if (filter.type == 'date'){ @@ -14,10 +21,25 @@ angular.module("EmmetBlue") } var requests = utils.serverRequest(url+_filter, 'GET'); - return requests; + requests.then(function(response){ + var records = { + data: response.data, + draw: draw, + recordsTotal: response.total, + recordsFiltered: response.filtered + }; + + callback(records); + }, function(error){ + utils.errorHandler(error); + }); }) + .withDataProp('data') + .withOption('processing', true) + .withOption('serverSide', true) + .withOption('paging', true) .withPaginationType('full_numbers') - .withDisplayLength(50) + .withDisplayLength(100) .withOption('createdRow', function(row, data, dataIndex){ utils.compile(angular.element(row).contents())($scope); }) @@ -82,6 +104,14 @@ angular.module("EmmetBlue") if (typeof data.PatientInfo["phone number"] !== "undefined" && data.PatientInfo["phone number"] !== null){ _html = "
    : "+data.PatientInfo["phone number"]+"
    "; } + + if (typeof data.PatientInfo["gender"] !== "undefined"){ + _html += ""+data.PatientInfo["gender"]+""; + } + if (typeof data.PatientInfo["date of birth"] !== "undefined"){ + var age = utils.getAge(data.PatientInfo["date of birth"]); + _html += ""+age+" years old"; + } // var html = "
    "; if (typeof data.PatientInfo["email address"] !== "undefined" && data.PatientInfo["email address"] !== null){ _html += "
    "+ @@ -202,7 +232,7 @@ angular.module("EmmetBlue") $scope.currentLog = {}; $scope.reloadTable = function(){ - $scope.dtInstance.reloadData(); + $scope.dtInstance.rerender(); } $scope.setStatus = function(id, close, text=""){ diff --git a/plugins/pharmacy/assets/controllers.js b/plugins/pharmacy/assets/controllers.js index 520a7fe..2e7dc7f 100644 --- a/plugins/pharmacy/assets/controllers.js +++ b/plugins/pharmacy/assets/controllers.js @@ -4,6 +4,7 @@ head.load(controllersLocation+"manage-stores-controller.js"); head.load(controllersLocation+"store-inventory-controller.js"); head.load(controllersLocation+"dispensation-controller.js"); head.load(controllersLocation+"reports-controller.js"); +head.load(controllersLocation+"transfer-reports-controller.js"); head.load(controllersLocation+"dashboard-controller.js"); head.load(controllersLocation+"new-store-restock-controller.js"); head.load(controllersLocation+"store-transfer-controller.js"); diff --git a/plugins/pharmacy/assets/controllers/transfer-reports-controller.js b/plugins/pharmacy/assets/controllers/transfer-reports-controller.js new file mode 100644 index 0000000..a9cb1c9 --- /dev/null +++ b/plugins/pharmacy/assets/controllers/transfer-reports-controller.js @@ -0,0 +1,367 @@ +angular.module("EmmetBlue") + +.controller('pharmacyTransferReportsController', function($scope, utils, patientEventLogger, $rootScope){ + $scope.loadImage = utils.loadImage; + $scope.patient = {}; + + $scope.getDateRange = function(selector){ + var today = new Date(); + switch(selector){ + case "today":{ + return today.toLocaleDateString() + " - " + today.toLocaleDateString(); + } + case "yesterday":{ + var yesterday = new Date(new Date(new Date()).setDate(new Date().getDate() - 1)).toLocaleDateString(); + return yesterday + " - " + yesterday; + break; + } + case "week":{ + var d = new Date(today); + var day = d.getDay(), diff = d.getDate() - day + (day == 0 ? -6 : 1); + + return new Date(d.setDate(diff)).toLocaleDateString() + " - " + today.toLocaleDateString(); + break; + } + case "month":{ + var year = today.getFullYear(); + var month = today.getMonth() + 1; + + return month+'/1/'+year + ' - ' + today.toLocaleDateString(); + break; + } + } + } + + $scope.requestFilter = { + type: 'nil', + description: 'Today\'s Dispensations', + value: $scope.getDateRange("today") + } + + $scope.createdFilters = []; + $scope.createdFilters.push({ + type: 'nil', + description: 'Today\'s Dispensations', + value: $scope.getDateRange("today") + }); + + $scope.dateRange = $scope.getDateRange("today"); + + $scope.$watch("dateRange", function(nv){ + var dates = nv.split(" - "); + if (dates[0] == dates[1]){ + $scope.requestFilter = { + type: "nil", + description: "All transfers on "+(new Date(dates[0])).toDateString(), + value: nv + }; + } + else { + $scope.requestFilter = { + type: "nil", + description: "Date Range Between "+(new Date(dates[0])).toDateString()+" and "+(new Date(dates[1])).toDateString(), + value: nv + }; + } + + $scope.reloadDispensationsTable(true); + }) + + $("option[status='disabled']").attr("disabled", "disabled"); + + $scope.dtInstance = {}; + $scope.dtOptions = utils.DT.optionsBuilder + .newOptions() + .withFnServerData(function(source, data, callback, settings){ + var filter = $scope.createdFilters; + + var draw = data[0].value; + var order = data[2].value; + var start = data[3].value; + var length = data[4].value; + + var dates = filter[0].value.split(" - "); + + // filter.splice(0, 1); + + var data = { + "startdate": dates[0], + "enddate": dates[1], + "resourceId":0, + "paginate":true, + "from":start, + "size":length, + "filtertype":"filtercombo", + "query":[] + } + + if (typeof data[5] !== "undefined" && data[5].value.value != ""){ + data.keywordsearch = data[5].value.value; + } + + for (var i = filter.length - 1; i >= 1; i--) { + var _filter = filter[i]; + if (_filter.use){ + data.query.push({ + type:_filter.type, + value:_filter.value + }); + } + } + + var url = '/pharmacy/store-transfer/view'; + + var transfers = utils.serverRequest(url, 'POST', data); + transfers.then(function(response){ + var records = { + data: response.data, + draw: draw, + recordsTotal: response.total, + recordsFiltered: response.filtered + }; + callback(records); + }, function(error){ + utils.errorHandler(error); + }); + }) + .withDataProp('data') + .withOption('processing', true) + .withOption('serverSide', true) + .withOption('paging', true) + .withPaginationType('full_numbers') + .withDisplayLength(10) + .withOption('createdRow', function(row, data, dataIndex){ + utils.compile(angular.element(row).contents())($scope); + }) + .withOption('headerCallback', function(header) { + if (!$scope.headerCompiled) { + $scope.headerCompiled = true; + utils.compile(angular.element(header).contents())($scope); + } + }) + .withButtons([ + { + extend: 'print', + text: ' Print this data page', + key: { + key: 'p', + ctrlKey: false, + altKey: true + } + }, + { + extend: 'copy', + text: ' Copy this data', + key: { + key: 'c', + ctrlKey: false, + altKey: true + } + } + ]); + + $scope.dtColumns = [ + utils.DT.columnBuilder.newColumn(null).withTitle("Item").renderWith(function(data){ + return ""+data.BillingTypeItemName+ + "
    Brand: "+data.ItemBrand; + }), + utils.DT.columnBuilder.newColumn(null).withTitle("Transferred Quantity").renderWith(function(data){ + return ""+data.ItemQuantity+""; + }), + utils.DT.columnBuilder.newColumn(null).withTitle("Recipient Store").renderWith(function(data){ + return ""+data.RecipientStoreName+""; + }), + utils.DT.columnBuilder.newColumn(null).withTitle("Staff").renderWith(function(data, full, meta){ + var image = $scope.loadImage(data.staffInfo.StaffPicture); + var html = "
    "; + + return html; + }), + utils.DT.columnBuilder.newColumn(null).withTitle("Date").renderWith(function(data, a, b){ + return (new Date(data.TransferDate)).toDateString()+"
    "+(new Date(data.TransferDate)).toLocaleTimeString(); + }) + ]; + + $scope.reloadDispensationsTable = function(applyToFirstIndex=false){ + if (typeof $scope.requestFilter.type !== "undefined"){ + var data = { + description: $scope.requestFilter.description, + value: $scope.requestFilter.value, + type: $scope.requestFilter.type, + use: true + }; + + if (applyToFirstIndex){ + $scope.createdFilters[0] = data; + } + else{ + $scope.createdFilters.push(data); + } + $scope.requestFilter = {}; + } + + rerenderTable(); + } + + function rerenderTable(){ + if (angular.isFunction($scope.dtInstance.rerender)){ + $scope.dtInstance.rerender(); + } + } + + $scope.stores = {}; + var loadStores = function(){ + var request = utils.serverRequest("/pharmacy/store/view", "GET"); + request.then(function(result){ + $scope.stores = result; + }, function(error){ + utils.errorHandler(error); + }) + }(); + + $scope.billingTypes = {}; + + var loadBillingTypes = function(){ + var request = utils.serverRequest("/accounts-biller/billing-type/view", "GET"); + request.then(function(result){ + $scope.billingTypes = result; + }, function(error){ + utils.errorHandler(error); + }) + }(); + + $scope.patientTypes = {}; + + $scope.loadPatientTypes = function(){ + if (typeof (utils.userSession.getID()) !== "undefined"){ + var requestData = utils.serverRequest("/patients/patient-type-category/view", "GET"); + requestData.then(function(response){ + $scope.patientTypes = response; + }, function(responseObject){ + utils.errorHandler(responseObject); + }); + } + } + + $scope.loadPatientTypes(); + + // loadStores(); + + $scope.activateFilter = function(){ + var selector = $scope.filterSelector; + switch(selector.type){ + case "status":{ + if (selector.value !== null){ + $scope.requestFilter.type = "status"; + var value = selector.value.split(""); + $scope.requestFilter.value = value[1]; + $scope.requestFilter.description = "Status: "+value[0]; + $scope.reloadDispensationsTable(); + } + break; + } + case "dateRange":{ + $scope.requestFilter.type = "date"; + var value = selector.value.split(" - "); + $scope.requestFilter.value= selector.value; + $scope.requestFilter.description = "Date Ranges Between: "+ new Date(value[0]).toDateString()+" And "+ new Date(value[1]).toDateString(); + $scope.reloadDispensationsTable(true); + break; + } + case "patient":{ + $scope.requestFilter.type = "patient"; + $scope.requestFilter.value= selector.value; + $scope.requestFilter.description = "Patient Search: '"+selector.value+"'"; + + var req = utils.serverRequest("/patients/patient/search", "POST", {"query": selector.value, "from": 0, "size": 1}); + req.then(function(result){ + if (typeof result.hits.hits[0]["_source"]["patientid"] !== "undefined"){ + $scope.requestFilter.value = result.hits.hits[0]["_source"]["patientid"]; + $scope.reloadDispensationsTable(); + } + else { + utils.notify("Invalid Search Query", "Please enter a valid patient profile identifier to continue", "warning"); + } + }, function(error){ + utils.errorHandler(error); + }) + break; + } + case "staff":{ + $scope.requestFilter.type = "staff"; + $scope.requestFilter.value= selector.value; + $scope.requestFilter.description = "Staff Search: '"+selector.value+"'"; + + var req = utils.serverRequest("/human-resources/staff/get-staff-id?name="+selector.value, "GET"); + req.then(function(result){ + if (typeof result["StaffID"] !== "undefined"){ + $scope.requestFilter.value = result["StaffID"]; + $scope.reloadDispensationsTable(); + } + else { + utils.notify("Invalid Staff Username", "Please enter a valid username to continue", "warning"); + } + }, function(error){ + utils.errorHandler(error); + }) + break; + } + case "patienttype":{ + $scope.requestFilter.type = "patienttype"; + var value = selector.value.split(""); + $scope.requestFilter.value = value[1]; + $scope.requestFilter.description = "Patient Type: '"+value[0]+"'"; + $scope.reloadDispensationsTable(); + break; + } + case "billingtype":{ + $scope.requestFilter.type = "billingtype"; + var value = selector.value.split(""); + $scope.requestFilter.value = value[0]; + $scope.requestFilter.description = "Billing Type Item: '"+value[1]+"'"; + $scope.reloadDispensationsTable(); + break; + } + case "Transferring Store":{ + $scope.requestFilter.type = "transferstore"; + var value = selector.value.split(""); + $scope.requestFilter.value = value[0]; + $scope.requestFilter.description = "Transferring Store: '"+value[1]+"'"; + $scope.reloadDispensationsTable(); + break; + } + case "Recipient Store":{ + $scope.requestFilter.type = "recipientstore"; + var value = selector.value.split(""); + $scope.requestFilter.value = value[0]; + $scope.requestFilter.description = "Recipient Store: '"+value[1]+"'"; + $scope.reloadDispensationsTable(); + break; + } + case "itemcode":{ + $scope.requestFilter.type = "itemcode"; + $scope.requestFilter.value= selector.value; + $scope.requestFilter.description = "Item Code: '"+selector.value+"'"; + $scope.reloadDispensationsTable(); + break; + } + default:{ + $scope.requestFilter.type = "date"; + var value = selector.type.split(""); + $scope.requestFilter.value = value[1]; + $scope.requestFilter.description = value[0]; + $scope.reloadDispensationsTable(); + } + } + } +}); \ No newline at end of file diff --git a/plugins/pharmacy/assets/includes/menu.html b/plugins/pharmacy/assets/includes/menu.html index 66c4883..e7b5487 100644 --- a/plugins/pharmacy/assets/includes/menu.html +++ b/plugins/pharmacy/assets/includes/menu.html @@ -9,7 +9,17 @@ + + + + + + + + + \ No newline at end of file diff --git a/plugins/pharmacy/transfer-reports.html b/plugins/pharmacy/transfer-reports.html new file mode 100644 index 0000000..13c25a5 --- /dev/null +++ b/plugins/pharmacy/transfer-reports.html @@ -0,0 +1,82 @@ + + + + + + + + +
    +
    +
    +
    Pharmacy Store Transfer Log
    +
    + + + +
      +
    • + +
    • +
    +
    +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    {{prescription.item.name}} {{prescription.item.item.name}} -
    {{prescription.item.item.category}} QTY: {{prescription.item.quantity}} -
    {{prescription.item.times}} daily for {{prescription.item.duration}} days +
    {{prescription.item.item.category}} + QTY: {{prescription.item.quantity}} +
    {{prescription.item.methodString}}
    "+ + "
    "+ + ""+ + "
    "+ + "
    "+ + ""+ + "
    "+ + data.staffInfo.Role+ + "
    "+ + "
    "+ + "
    + +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/plugins/records/cloud/assets/controllers/patient-cloud-grid-directive.js b/plugins/records/cloud/assets/controllers/patient-cloud-grid-directive.js index 012b742..dfda3bc 100644 --- a/plugins/records/cloud/assets/controllers/patient-cloud-grid-directive.js +++ b/plugins/records/cloud/assets/controllers/patient-cloud-grid-directive.js @@ -35,7 +35,7 @@ angular.module("EmmetBlue") var process = function(){ var data = { patient: $scope.patientInfo.patientid, - accountId: $scope.foundAccount.account_id, + accountId: $scope.foundAccount.user_id, staff: utils.userSession.getID() }; diff --git a/plugins/records/patient/patient-database.html b/plugins/records/patient/patient-database.html index 0906c88..39608a3 100644 --- a/plugins/records/patient/patient-database.html +++ b/plugins/records/patient/patient-database.html @@ -1,8 +1,18 @@ + + +
    diff --git a/plugins/user/assets/assets/img/demo/13.gif b/plugins/user/assets/assets/img/demo/13.gif new file mode 100644 index 0000000..1b199a7 Binary files /dev/null and b/plugins/user/assets/assets/img/demo/13.gif differ diff --git a/plugins/user/assets/assets/img/demo/13.jpg b/plugins/user/assets/assets/img/demo/13.jpg new file mode 100644 index 0000000..06bd768 Binary files /dev/null and b/plugins/user/assets/assets/img/demo/13.jpg differ diff --git a/plugins/user/assets/controllers/login-controller.js b/plugins/user/assets/controllers/login-controller.js index 71fcfec..8344733 100644 --- a/plugins/user/assets/controllers/login-controller.js +++ b/plugins/user/assets/controllers/login-controller.js @@ -86,9 +86,12 @@ angular.module("EmmetBlue") uuid: response.uuid, accountActivated: response.accountActivated, staffid: response.id, - username: $scope.login.username + username: $scope.login.username, + token: response.token }; + $cookies.putObject(utils.globalConstants.USER_COOKIE_IDENTIFIER, responseObject); + $timeout(function(){ utils.serverRequest("/human-resources/staff/view-root-url?resourceId="+responseObject.staffid, "GET").then(function(response){ responseObject.dashboard = response.Url; diff --git a/plugins/user/login.html b/plugins/user/login.html index 75e55c1..a24d469 100644 --- a/plugins/user/login.html +++ b/plugins/user/login.html @@ -6,7 +6,7 @@