From b85a0e4d4d0c4fe1bf86c6579573f42f0db22b58 Mon Sep 17 00:00:00 2001 From: Jason Loux Date: Fri, 13 Feb 2026 17:48:05 -0500 Subject: [PATCH 1/2] [BI-2786] Remove code to add treatments to additional info --- .../brapi/v2/dao/BrAPIObservationUnitDAO.java | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIObservationUnitDAO.java b/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIObservationUnitDAO.java index 9749bf093..1dc00b2db 100644 --- a/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIObservationUnitDAO.java +++ b/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIObservationUnitDAO.java @@ -176,7 +176,6 @@ public List createBrAPIObservationUnits(List> postFunction = () -> { - preprocessObservationUnits(brAPIObservationUnitList); List ous = brAPIDAOUtil.post(brAPIObservationUnitList, upload, api::observationunitsPost, importDAO::update); return processObservationUnitsForCache(ous, program, false); }; @@ -198,7 +197,6 @@ public List createBrAPIObservationUnits(List> postFunction = () -> { - preprocessObservationUnits(brAPIObservationUnitList); List ous = brAPIDAOUtil.post(brAPIObservationUnitList, api::observationunitsPost); return processObservationUnitsForCache(ous, program, false); }; @@ -432,14 +430,4 @@ private void processObservationUnits(Program program, List } } } - - private void preprocessObservationUnits(List brapiObservationUnits) { - // add treatments to additional info - for (BrAPIObservationUnit obsUnit : brapiObservationUnits) { - List treatments = obsUnit.getTreatments(); - if (treatments != null) { - obsUnit.putAdditionalInfoItem(BrAPIAdditionalInfoFields.TREATMENTS, treatments); - } - } - } } From c4539f6dfdf73b35e21e99b1147af6997fec6b8b Mon Sep 17 00:00:00 2001 From: Jason Loux Date: Mon, 16 Feb 2026 15:43:58 -0500 Subject: [PATCH 2/2] Remove treatments from BrAPIAdditionalFields, update unit test --- .../brapi/v2/constants/BrAPIAdditionalInfoFields.java | 1 - .../brapi/v2/dao/BrAPIObservationUnitDAO.java | 6 ------ .../importer/daos/BrAPIObservationUnitDAOTest.java | 10 ++++++++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/breedinginsight/brapi/v2/constants/BrAPIAdditionalInfoFields.java b/src/main/java/org/breedinginsight/brapi/v2/constants/BrAPIAdditionalInfoFields.java index d14663cd2..a69a7b983 100644 --- a/src/main/java/org/breedinginsight/brapi/v2/constants/BrAPIAdditionalInfoFields.java +++ b/src/main/java/org/breedinginsight/brapi/v2/constants/BrAPIAdditionalInfoFields.java @@ -47,7 +47,6 @@ public final class BrAPIAdditionalInfoFields { public static final String DATASETS = "datasets"; public static final String FEMALE_PARENT_UNKNOWN = "femaleParentUnknown"; public static final String MALE_PARENT_UNKNOWN = "maleParentUnknown"; - public static final String TREATMENTS = "treatments"; public static final String GID = "gid"; public static final String CHANGELOG = "changeLog"; public static final String ENV_YEAR = "envYear"; diff --git a/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIObservationUnitDAO.java b/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIObservationUnitDAO.java index 1dc00b2db..76acb8076 100644 --- a/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIObservationUnitDAO.java +++ b/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIObservationUnitDAO.java @@ -385,15 +385,9 @@ private void processObservationUnits(Program program, List this.germplasmService.getGermplasm(program.getId()).forEach((germplasm -> germplasmByDbId.put(germplasm.getGermplasmDbId(), germplasm))); } - // if has treatments in additionalInfo, copy to treatments property for (BrAPIObservationUnit ou : brapiObservationUnits) { JsonObject additionalInfo = ou.getAdditionalInfo(); if (additionalInfo != null) { - JsonElement treatmentsElement = additionalInfo.get(BrAPIAdditionalInfoFields.TREATMENTS); - if (treatmentsElement != null) { - List treatments = gson.fromJson(treatmentsElement, treatmentlistType); - ou.setTreatments(treatments); - } if( withGID ){ BrAPIGermplasm germplasm = germplasmByDbId.get(ou.getGermplasmDbId()); ou.putAdditionalInfoItem(BrAPIAdditionalInfoFields.GID, germplasm.getAccessionNumber()); diff --git a/src/test/java/org/breedinginsight/brapps/importer/daos/BrAPIObservationUnitDAOTest.java b/src/test/java/org/breedinginsight/brapps/importer/daos/BrAPIObservationUnitDAOTest.java index f4375e590..bd2048b61 100644 --- a/src/test/java/org/breedinginsight/brapps/importer/daos/BrAPIObservationUnitDAOTest.java +++ b/src/test/java/org/breedinginsight/brapps/importer/daos/BrAPIObservationUnitDAOTest.java @@ -36,6 +36,7 @@ import static org.breedinginsight.TestUtils.insertAndFetchTestProgram; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; @MicronautTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) @@ -119,12 +120,14 @@ public void setup() { @SneakyThrows @Order(1) public void testCreateObservationUnitAdditionalInfoSingleTreatmentFactor() { - // create observation unit with treatments only in additional info to simulate breedbase not populating // treatments field BrAPIObservationUnit ou1 = new BrAPIObservationUnit(); ou1.setObservationUnitName("test1"); - ou1.putAdditionalInfoItem(BrAPIAdditionalInfoFields.TREATMENTS, List.of(testTreatment)); ou1.setProgramDbId(validProgram.getBrapiProgram().getProgramDbId()); + + var treatment = new BrAPIObservationTreatment(); + treatment.setFactor("ou1 treatment"); + ou1.setTreatments(List.of(treatment)); // Set xref. BrAPIExternalReference xref = new BrAPIExternalReference(); xref.setReferenceSource(Utilities.generateReferenceSource(referenceSource, ExternalReferenceSource.OBSERVATION_UNITS)); @@ -153,6 +156,9 @@ private void singleTreatmentAsserts(List obsUnits, BrAPIOb BrAPIObservationTreatment treatment = treatments.get(0); assertEquals(expectedTreatment, treatment, "Expected treatments to be same"); + + // Storing treatments in additionalInfo is no longer necessary since BrAPI server stores treatments in observation_unit_treatment + assertNull(ou.getAdditionalInfo(), "Expected OU additionalInfo to be null"); } }