diff --git a/ui/app/clinical/consultation/controllers/addTreatmentController.js b/ui/app/clinical/consultation/controllers/addTreatmentController.js index 56405c2481..ddaf74d53e 100644 --- a/ui/app/clinical/consultation/controllers/addTreatmentController.js +++ b/ui/app/clinical/consultation/controllers/addTreatmentController.js @@ -51,7 +51,6 @@ angular.module('bahmni.clinical') } $scope.doseFractions = treatmentConfig.getDoseFractions(); - $scope.hideOrderSet = treatmentConfig.inputOptionsConfig.hideOrderSet; $scope.showDoseFractions = treatmentConfig.inputOptionsConfig.showDoseFractions; @@ -59,6 +58,14 @@ angular.module('bahmni.clinical') return $scope.doseFractions && !_.isEmpty($scope.doseFractions) ? true : false; }; + $scope.isRuleMode = function (treatment) { + if (treatment.dosingRule != undefined || treatment.dosingRule != null) { + $scope.treatment.uniformDosingType.doseUnits = 'mg'; + return true; + } + return false; + }; + $scope.isSelected = function (drug) { var selectedDrug = $scope.treatment.drug; return selectedDrug && drug.drug.name === selectedDrug.name; @@ -304,6 +311,21 @@ angular.module('bahmni.clinical') $scope.treatment.calculateQuantityAndUnit(); }, true); + $scope.calculateDose = function (treatment) { + if (treatment.dosingRule != null || treatment.dosingRule != undefined) { + var visitUuid = treatmentConfig.orderSet.calculateDoseOnlyOnCurrentVisitValues ? $scope.activeVisit.uuid : undefined; + var calculatedDose = orderSetService.getCalculatedDose($scope.patient.uuid, treatment.drug.name, treatment.uniformDosingType.dose, "mg", '', treatment.dosingRule, visitUuid); + calculatedDose.then(function (calculatedDosage) { + treatment.uniformDosingType.dose = calculatedDosage.dose; + treatment.calculateQuantityAndUnit(); + return treatment; + }); + return treatment; + } + }; + + $scope.$watch('calculateDose', $scope.treatment, true); + $scope.add = function () { var treatments = $scope.treatments; if ($scope.treatment.isNewOrderSet) { @@ -745,6 +767,16 @@ angular.module('bahmni.clinical') }); }; + var showRulesInMedication = function (medicationConfig) { + $scope.showRulesInMedication = false; + if (medicationConfig !== 'undefined' && medicationConfig.tabConfig !== 'undefined' && medicationConfig.tabConfig.allMedicationTabConfig + !== 'undefined' && medicationConfig.tabConfig.allMedicationTabConfig.orderSet !== 'undefined') { + if (medicationConfig.tabConfig.allMedicationTabConfig.orderSet.showRulesInMedication) { + $scope.showRulesInMedication = true; + } + } + }; + var init = function () { $scope.consultation.removableDrugs = $scope.consultation.removableDrugs || []; $scope.consultation.discontinuedDrugs = $scope.consultation.discontinuedDrugs || []; @@ -754,6 +786,8 @@ angular.module('bahmni.clinical') mergeActiveAndScheduledWithDiscontinuedOrders(); $scope.treatmentConfig = treatmentConfig;// $scope.treatmentConfig used only in UI + var medicationConfig = appService.getAppDescriptor().getConfigForPage('medication') || {}; + showRulesInMedication(medicationConfig); }; init(); }]); diff --git a/ui/app/clinical/consultation/views/treatmentSections/addTreatment.html b/ui/app/clinical/consultation/views/treatmentSections/addTreatment.html index 6b4356fba7..2f4fa3273a 100644 --- a/ui/app/clinical/consultation/views/treatmentSections/addTreatment.html +++ b/ui/app/clinical/consultation/views/treatmentSections/addTreatment.html @@ -42,8 +42,20 @@

+
+
+ +
+
+ +
+
@@ -83,6 +95,7 @@

@@ -261,7 +274,8 @@

diff --git a/ui/app/i18n/clinical/locale_en.json b/ui/app/i18n/clinical/locale_en.json index da34278d2c..16817474b4 100644 --- a/ui/app/i18n/clinical/locale_en.json +++ b/ui/app/i18n/clinical/locale_en.json @@ -130,6 +130,7 @@ "MEDICATION_ADD_DRUG_FORM_TITLE": "Order Drug", "MEDICATION_ADD_ORDERSET_FORM_TITLE": "Order an Order Set", "MEDICATION_LABEL_DOSE": "Dose", + "MEDICATION_LABEL_RULE": "Rule", "MEDICATION_LABEL_UNITS": "Units", "MEDICATION_LABEL_FREQUENCY": "Frequency", "MEDICATION_LABEL_ROUTE": "Route",