From 6754388def7780bf62567faf96955587ea576ba7 Mon Sep 17 00:00:00 2001 From: NIRC-IT <87669815+NIRC-IT@users.noreply.github.com> Date: Wed, 29 Jul 2026 08:44:25 -0500 Subject: [PATCH 1/2] Updated orchard file generator module and sql to reduce duplicates, further streamline query, send shipped, and handle nulls. --- nirc_ehr/resources/queries/study/orchardData.sql | 13 ++++++------- .../labkey/nirc_ehr/NIRCOrchardFileGenerator.java | 8 ++++++-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/nirc_ehr/resources/queries/study/orchardData.sql b/nirc_ehr/resources/queries/study/orchardData.sql index 74b40b5d..d8a8643d 100644 --- a/nirc_ehr/resources/queries/study/orchardData.sql +++ b/nirc_ehr/resources/queries/study/orchardData.sql @@ -3,16 +3,15 @@ * * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 */ -SELECT +SELECT DISTINCT d.Id, d.gender, d.birth, d.species.scientific_name as species, - pa.protocol.title as protocol, - InitCap(pa.protocol.InvestigatorId.LastName) || ', ' || InitCap(pa.protocol.InvestigatorId.FirstName) as PI, - InitCap(pa.protocol.AuthorId.LastName) || ', ' || InitCap(pa.protocol.AuthorId.FirstName) as Vet, - dlh.cage.cage as cage, + dlp.protocol.title as protocol, + InitCap(dlp.protocol.InvestigatorId.LastName) || ', ' || InitCap(dlp.protocol.InvestigatorId.FirstName) as PI, + InitCap(dlp.protocol.AuthorId.LastName) || ', ' || InitCap(dlp.protocol.AuthorId.FirstName) as Vet, + d.Id.lastHousing.cage.cage as cage, d.calculated_status as alive FROM demographics d -LEFT JOIN demographicsLastHousing dlh ON d.Id = dlh.Id -LEFT JOIN protocolAssignment pa ON d.Id = pa.Id AND pa.endDate is null \ No newline at end of file +LEFT JOIN demographicsLastProtocol dlp ON d.Id = dlp.Id \ No newline at end of file diff --git a/nirc_ehr/src/org/labkey/nirc_ehr/NIRCOrchardFileGenerator.java b/nirc_ehr/src/org/labkey/nirc_ehr/NIRCOrchardFileGenerator.java index 4127955b..64ce51b1 100644 --- a/nirc_ehr/src/org/labkey/nirc_ehr/NIRCOrchardFileGenerator.java +++ b/nirc_ehr/src/org/labkey/nirc_ehr/NIRCOrchardFileGenerator.java @@ -121,6 +121,7 @@ public void run() new TableSelector(ti, PageFlowUtil.set("Id", "gender", "birth", "species", "protocol", "PI", "Vet", "cage", "alive"), filter, null).forEachResults(rs -> { sb.append("PID|1|"); + sb.append(rs.getString("Id")).append("|"); sb.append(rs.getString("Id")).append("||"); sb.append(rs.getString("Id")).append("^").append(rs.getString("species")).append("||"); @@ -130,11 +131,14 @@ public void run() else if (Objects.equals(rs.getString("gender"), "3")) sb.append("M"); else sb.append("U"); - sb.append("||NHP|"); //could change if more species + sb.append("||NHP|"); //build out if other than non-human primate sb.append(rs.getString("cage")); sb.append("^New Iberia^LA^70506|||||||||||"); sb.append(rs.getString("species")).append("|"); - sb.append(rs.getString("protocol")).append("|||||||"); + if (Objects.equals(rs.getString("alive"),"Shipped")) + sb.append("OFFSITE").append("|||||||"); + else + sb.append(rs.getString("protocol")).append("|||||||"); if (Objects.equals(rs.getString("alive"), "Alive")) sb.append("N"); else From db9d3d1f401c2879f49363e6d4e5cd602e13c541 Mon Sep 17 00:00:00 2001 From: NIRC-IT <87669815+NIRC-IT@users.noreply.github.com> Date: Wed, 29 Jul 2026 09:06:12 -0500 Subject: [PATCH 2/2] Updated orchard file generator module and sql to reduce duplicates, further streamline query, send shipped, and handle nulls. --- .../org/labkey/nirc_ehr/NIRCOrchardFileGenerator.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/nirc_ehr/src/org/labkey/nirc_ehr/NIRCOrchardFileGenerator.java b/nirc_ehr/src/org/labkey/nirc_ehr/NIRCOrchardFileGenerator.java index 64ce51b1..8bc828bb 100644 --- a/nirc_ehr/src/org/labkey/nirc_ehr/NIRCOrchardFileGenerator.java +++ b/nirc_ehr/src/org/labkey/nirc_ehr/NIRCOrchardFileGenerator.java @@ -121,7 +121,6 @@ public void run() new TableSelector(ti, PageFlowUtil.set("Id", "gender", "birth", "species", "protocol", "PI", "Vet", "cage", "alive"), filter, null).forEachResults(rs -> { sb.append("PID|1|"); - sb.append(rs.getString("Id")).append("|"); sb.append(rs.getString("Id")).append("||"); sb.append(rs.getString("Id")).append("^").append(rs.getString("species")).append("||"); @@ -132,21 +131,21 @@ else if (Objects.equals(rs.getString("gender"), "3")) sb.append("M"); else sb.append("U"); sb.append("||NHP|"); //build out if other than non-human primate - sb.append(rs.getString("cage")); + sb.append(rs.getString("cage") == null ? "" : rs.getString("cage")); sb.append("^New Iberia^LA^70506|||||||||||"); sb.append(rs.getString("species")).append("|"); if (Objects.equals(rs.getString("alive"),"Shipped")) sb.append("OFFSITE").append("|||||||"); else - sb.append(rs.getString("protocol")).append("|||||||"); + sb.append(rs.getString("protocol") == null ? "" : rs.getString("protocol")).append("|||||||"); if (Objects.equals(rs.getString("alive"), "Alive")) sb.append("N"); else sb.append("Y"); sb.append(System.lineSeparator()); - sb.append("ZCP|Veterinarian|").append(rs.getString("Vet")).append("|"); + sb.append("ZCP|Veterinarian|").append(rs.getString("Vet") == null ? "" : rs.getString("Vet")).append("|"); sb.append(System.lineSeparator()); - sb.append("PD1||||").append(rs.getString("PI")).append("|"); + sb.append("PD1||||").append(rs.getString("PI") == null ? "" : rs.getString("PI")).append("|"); sb.append(System.lineSeparator()); });