From 85b646087bf65497543592241bb5508cd8a12d3e Mon Sep 17 00:00:00 2001 From: "F. Daniel Nicolalde" Date: Mon, 5 Feb 2024 17:04:58 -0600 Subject: [PATCH 01/24] Closing water orders and breeding encounters when animal mark as dead --- WNPRC_EHR/resources/scripts/wnprc_ehr/wnprc_triggers.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/WNPRC_EHR/resources/scripts/wnprc_ehr/wnprc_triggers.js b/WNPRC_EHR/resources/scripts/wnprc_ehr/wnprc_triggers.js index 7ecf17271..3e6c5fc50 100644 --- a/WNPRC_EHR/resources/scripts/wnprc_ehr/wnprc_triggers.js +++ b/WNPRC_EHR/resources/scripts/wnprc_ehr/wnprc_triggers.js @@ -716,4 +716,9 @@ exports.init = function (EHR) { WNPRC.Utils.getJavaHelper().sendVvcNotification(requestid); } });*/ + EHR.Server.TriggerManager.registerHandler(EHR.Server.TriggerManager.Events.INIT, function(event, helper, EHR){ + helper.setScriptOptions({ + datasetsToClose: ['Assignment', 'Cases', 'Housing', 'Treatment Orders', 'Notes', 'Problem List', 'Protocol Assignments', 'waterOrders', 'breeding_encounters'], + }); + }); }; \ No newline at end of file From 6b914dac6a5e824b65a650207899dba8f3ee70f7 Mon Sep 17 00:00:00 2001 From: "F. Daniel Nicolalde" Date: Wed, 7 Feb 2024 10:44:09 -0600 Subject: [PATCH 02/24] Fixing problem with the watertotal info panel --- .../resources/queries/study/waterSchedule.sql | 2 +- .../queries/study/waterScheduleCoalesced.sql | 2 ++ .../study/waterScheduleCoalesced/.qview.xml | 1 + .../waterTotalByDateWithWeight/.qview.xml | 1 + .../web/wnprc_ehr/animalWaterCalendar.js | 10 ++++--- .../pages/husbandry/WaterCalendar.jsp | 29 +++++++++---------- 6 files changed, 25 insertions(+), 20 deletions(-) diff --git a/WNPRC_EHR/resources/queries/study/waterSchedule.sql b/WNPRC_EHR/resources/queries/study/waterSchedule.sql index abe8448f4..9c921b9c0 100644 --- a/WNPRC_EHR/resources/queries/study/waterSchedule.sql +++ b/WNPRC_EHR/resources/queries/study/waterSchedule.sql @@ -6,7 +6,7 @@ SELECT d.id AS animalId, -d.calculated_status, +d.calculated_status AS calculated_status, s.*, s.objectid as treatmentid, --(SELECT max(d.qcstate) as label FROM study.drug d WHERE s.objectid = d.treatmentid AND s.date = d.timeordered) as treatmentStatus, diff --git a/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced.sql b/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced.sql index d04a7c23a..9e4363798 100644 --- a/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced.sql +++ b/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced.sql @@ -4,6 +4,7 @@ (SELECT WA.id AS Id, + WA.id.demographics.calculated_status.code AS calculated_status, WA.date AS date, WA.date AS dateOrdered, WA.id.curLocation.location as location, @@ -40,6 +41,7 @@ UNION ALL (SELECT WS.animalId AS Id, + WS.calculated_status AS calculated_status, WS.origDate AS origDate, WS.date AS dateOrdered, WS.location as location, diff --git a/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/.qview.xml b/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/.qview.xml index 10c7742cd..12cc722c9 100644 --- a/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/.qview.xml +++ b/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/.qview.xml @@ -1,6 +1,7 @@ + diff --git a/WNPRC_EHR/resources/queries/study/waterTotalByDateWithWeight/.qview.xml b/WNPRC_EHR/resources/queries/study/waterTotalByDateWithWeight/.qview.xml index 75fb90ad9..851b5df72 100644 --- a/WNPRC_EHR/resources/queries/study/waterTotalByDateWithWeight/.qview.xml +++ b/WNPRC_EHR/resources/queries/study/waterTotalByDateWithWeight/.qview.xml @@ -17,6 +17,7 @@ + diff --git a/WNPRC_EHR/resources/web/wnprc_ehr/animalWaterCalendar.js b/WNPRC_EHR/resources/web/wnprc_ehr/animalWaterCalendar.js index d7f37b097..8314d2c42 100644 --- a/WNPRC_EHR/resources/web/wnprc_ehr/animalWaterCalendar.js +++ b/WNPRC_EHR/resources/web/wnprc_ehr/animalWaterCalendar.js @@ -5,19 +5,21 @@ let entireColony = false; EHR.reports.animalWaterCalendar = function (panel, tab){ var animalIds = []; - //debugger; + debugger; if (tab.filters.subjects){ // tab.filters.subjects.forEach (animalId => animalIds+=animalId+';'); // animalIds = animalIds.substring(0, animalIds.length-1); animalIds = tab.filters.subjects; + entireColony = false; renderCalendar (animalIds, tab); calendarRender++; - } if (panel.getFilterArray(tab).nonRemovable.length === 0){ + } else if (panel.getFilterArray(tab).nonRemovable.length === 0){ entireColony = true; panel.resolveSubjectsFromHousing(tab,renderCalendar,this); //renderCalendar('null', tab) } else{ + entireColony = false panel.resolveSubjectsFromHousing(tab,renderCalendar,this); calendarRender++; @@ -61,10 +63,10 @@ EHR.reports.animalWaterCalendar = function (panel, tab){ let objectConfig ={} if(!entireColony){ - objectConfig = {animalIds : concatAnimals,numberOfRenders: calendarRender,unbindComponents:'waterInfoPanel,calendarLegend,waterExceptionPanel'}; + objectConfig = {animalIds : concatAnimals,numberOfRenders: calendarRender,unbindComponents:'waterInfoPanel,waterTotalPanel,calendarLegend,waterExceptionPanel'}; }else if(entireColony){ - objectConfig = {animalIds : 'null',numberOfRenders: calendarRender,unbindComponents:'waterInfoPanel,calendarLegend,waterExceptionPanel'}; + objectConfig = {animalIds : 'null',numberOfRenders: calendarRender,unbindComponents:'waterInfoPanel,waterTotalPanel,calendarLegend,waterExceptionPanel'}; } // Render the web part to the div //TODO: add condition to check to request webpart only the first time diff --git a/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp b/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp index a5c6e4955..5df1956bc 100644 --- a/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp +++ b/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp @@ -284,25 +284,19 @@
-
DataSource:
-
{{dataSource}}
-
Date:
-
{{displayDate}}
-
Animal ID:
-
{{Id}}
+
DataSource:
{{dataSource}}
+
Date:
{{displayDate}}
+
Animal ID:
{{Id}}
Current Location: Last Location: -
-
{{location}}
-
Total Volume:
-
+
{{location}}
+
Total Volume:
{{volume}} ml On Lixit Dead -
-
ml Per Kg:
-
{{mlsPerKg}}
+ +
ml Per Kg:
{{mlsPerKg}}
Animal received less than 20 milliliter per kilogram of weight on this day.
@@ -1355,10 +1349,15 @@ }); WebUtils.VM.taskDetails.conditionAtTimeValue = ko.pureComputed(function(){ - if ( WebUtils.VM.taskDetails.conditionAtTime() === 'regulated' && WebUtils.VM.taskDetails.calculatedStatusValue() === 'Alive' ){ + if (WebUtils.VM.taskDetails.calculatedStatusValue() === 'Alive' ){ + debugger; + return WebUtils.VM.taskDetails.conditionAtTime(); + + }else{ + return 'dead'; } - return WebUtils.VM.taskDetails.conditionAtTime(); + //return WebUtils.VM.taskDetails.conditionAtTime(); }); WebUtils.VM.taskDetails.calculatedStatusValue = ko.pureComputed(function(){ From bbe280764bfdfb1de198af6cf2e7e4733727ed7a Mon Sep 17 00:00:00 2001 From: "F. Daniel Nicolalde" Date: Fri, 9 Feb 2024 19:45:46 -0600 Subject: [PATCH 03/24] Fix problem with event label in calendar. --- .../pages/husbandry/WaterCalendar.jsp | 105 +++++++++++------- 1 file changed, 64 insertions(+), 41 deletions(-) diff --git a/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp b/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp index 5df1956bc..2fe196e69 100644 --- a/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp +++ b/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp @@ -295,6 +295,7 @@ {{volume}} ml On Lixit Dead +
ml Per Kg:
{{mlsPerKg}}
@@ -702,7 +703,7 @@ WebUtils.API.selectRows("study", "waterTotalByDateWithWeight", { "date~gte": fetchInfo.start.format('Y-m-d'), "date~lte": fetchInfo.end.format('Y-m-d'), - "date~lt": new Date() + "date~lte": new Date() }).then(function (data) { debugger; var events = data.rows; @@ -710,30 +711,38 @@ successCallback( events.map(function (row) { let parsedTotalWater = 0; - let eventTitle = ""; - if( row.conditionAtTime === 'regulated' ){ - if ( row.TotalWater === null && row['Id/Demographics/calculated_status'] === 'Alive'){ - row.TotalWater = 'none'; - }else if( row.TotalWater === null && row['Id/Demographics/calculated_status'] === 'Dead'){ - row.TotalWater = 'Dead' - eventTitle = row.id + row['Id/Demographics/calculated_status'] + let eventTitle = row.Id; + row.animalStatus=row['Id/Demographics/calculated_status']; + if( row.conditionAtTime === 'regulated' ) { + if (row['Id/Demographics/calculated_status'] === 'Alive') { + if (row.TotalWater === null) { + row.TotalWater = ' none'; + parsedTotalWater = row.TotalWater; + } + else if (row.TotalWater !== null) { + parsedTotalWater = row.TotalWater; + eventTitle += " Total: "; + } + + } + else { + row.TotalWater = row['Id/Demographics/calculated_status']; + parsedTotalWater = row.TotalWater; } - if (row['Id/Demographics/calculated_status'] === 'Alive'){ + } + else { + if (row['Id/Demographics/calculated_status'] === 'Alive') { + row.TotalWater = 'on Lixit'; parsedTotalWater = row.TotalWater; - eventTitle = row.Id + " Total: " + parsedTotalWater; - }else{ - eventTitle = row.Id + row['Id/Demographics/calculated_status'] } + else { + row.TotalWater = row['Id/Demographics/calculated_status']; + parsedTotalWater = row.TotalWater; - }else{ - if (row['Id/Demographics/calculated_status'] === 'Alive'){ - row.TotalWater = 'Lixit' - eventTitle = row.Id + " on Lixit"; - }else{ - row.TotalWater = 'Dead' - eventTitle = row.Id + row['Id/Demographics/calculated_status'] } } + eventTitle += parsedTotalWater; + var eventObj = { id : LABKEY.Utils.generateUUID(), title: eventTitle, @@ -766,7 +775,7 @@ WebUtils.API.selectRows("study", "waterTotalByDateWithWeight", { "date~gte": fetchInfo.start.format('Y-m-d'), "date~lte": fetchInfo.end.format('Y-m-d'), - "date~lt": new Date(), + "date~lte": new Date(), "Id~in": $animalId }).then(function (data) { var events = data.rows; @@ -774,30 +783,39 @@ successCallback( events.map(function (row) { let parsedTotalWater = 0; - let eventTitle = ""; + let eventTitle = row.Id; + row.animalStatus=row['Id/Demographics/calculated_status']; debugger; - if(row.conditionAtTime === 'regulated') { - if (row.TotalWater === null && row['Id/Demographics/calculated_status'] === 'Alive') { - row.TotalWater = 'none'; - }else if( row.TotalWater === null && row['Id/Demographics/calculated_status'] === 'Dead'){ - row.TotalWater = 'Dead' - eventTitle = row.Id + row['Id/Demographics/calculated_status'] + if( row.conditionAtTime === 'regulated' ) { + if (row['Id/Demographics/calculated_status'] === 'Alive') { + if (row.TotalWater === null) { + row.TotalWater = ' none'; + parsedTotalWater = row.TotalWater; + } + else if (row.TotalWater !== null) { + parsedTotalWater = row.TotalWater; + eventTitle += " Total: "; + } + } - else if (row['Id/Demographics/calculated_status'] === 'Alive'){ + else { + row.TotalWater = row['Id/Demographics/calculated_status']; parsedTotalWater = row.TotalWater; - eventTitle = row.Id + " Total: " + parsedTotalWater; } - - }else{ - if (row['Id/Demographics/calculated_status'] === 'Alive'){ - row.TotalWater = 'Lixit' - eventTitle = row.Id + " on Lixit"; - }else{ - row.TotalWater = 'Dead' - eventTitle = row.Id + row['Id/Demographics/calculated_status'] + } + else { + if (row['Id/Demographics/calculated_status'] === 'Alive') { + row.TotalWater = ' on Lixit'; + parsedTotalWater = row.TotalWater; } + else { + row.TotalWater = row['Id/Demographics/calculated_status']; + parsedTotalWater = row.TotalWater; + } } + eventTitle += parsedTotalWater; + var eventObj = { id : LABKEY.Utils.generateUUID(), title: eventTitle, @@ -841,7 +859,9 @@ color: '#fff' } }); - $('#waterInformation').collapse('show'); + $('#waterInformation').collapse('hide'); + $('#waterTotalInformation').collapse('hide'); + //$('#waterInformation').collapse('show'); }else{ $('#water-calendar').unblock(); @@ -1026,7 +1046,7 @@ rawDate: ko.observable(), mlsPerKg: ko.observable(), conditionAtTime: ko.observable(), - status: ko.observable() + animalStatus: ko.observable() }, form: { lsidForm: ko.observable(), @@ -1353,15 +1373,18 @@ debugger; return WebUtils.VM.taskDetails.conditionAtTime(); - }else{ + } + else if(WebUtils.VM.taskDetails.calculatedStatusValue() === 'Dead' ){ return 'dead'; + }else{ + return ''; } //return WebUtils.VM.taskDetails.conditionAtTime(); }); WebUtils.VM.taskDetails.calculatedStatusValue = ko.pureComputed(function(){ - return WebUtils.VM.taskDetails.status(); + return WebUtils.VM.taskDetails.animalStatus(); }); //Updating all the records of the form with data coming from the taskDeatils panel From 94d9938ea923171b880416dc3dfa054d4606e309 Mon Sep 17 00:00:00 2001 From: "F. Daniel Nicolalde" Date: Fri, 9 Feb 2024 21:09:00 -0600 Subject: [PATCH 04/24] Implemented accordion for the Info Panels in the calendar. --- .../pages/husbandry/WaterCalendar.jsp | 166 +++++++++--------- 1 file changed, 87 insertions(+), 79 deletions(-) diff --git a/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp b/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp index 2fe196e69..8ea2779cf 100644 --- a/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp +++ b/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp @@ -217,92 +217,100 @@
-
-
Water Details
-
- - -
-
DataSource:
{{dataSource}}
-
Task ID:
{{taskid}}
-
Animal ID:
{{Id}}
-
Location:
{{location}}
-
Assigned to:
{{assignedToTitleCoalesced}}
-
Volume:
{{volume}}
-
Provide Fruit:
{{provideFruitTitle}}
-
Project (Account):
{{projectCoalesced}}
-
Date:
{{displayDate}}
-
Frequency:
{{frequencyMeaningCoalesced}}
-
Time of day:
{{displaytimeofday}}
-
- - - - - - - -