From cd09f9e7f74a9a9fa5e1eb12301a001f234c3ffc Mon Sep 17 00:00:00 2001 From: Nick <53413353+nickpalladino@users.noreply.github.com> Date: Fri, 18 Oct 2024 10:36:50 -0400 Subject: [PATCH] Remove program keys from observations data --- .../brapi/v2/dao/BrAPIObservationUnitDAO.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) 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 aeb919a2f..3466571ef 100644 --- a/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIObservationUnitDAO.java +++ b/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIObservationUnitDAO.java @@ -31,6 +31,7 @@ import org.brapi.client.v2.modules.phenotype.ObservationUnitsApi; import org.brapi.v2.model.BrAPIExternalReference; import org.brapi.v2.model.germ.BrAPIGermplasm; +import org.brapi.v2.model.pheno.BrAPIObservation; import org.brapi.v2.model.pheno.BrAPIObservationTreatment; import org.brapi.v2.model.pheno.BrAPIObservationUnit; import org.brapi.v2.model.pheno.BrAPIObservationUnitLevelRelationship; @@ -408,6 +409,28 @@ private void processObservationUnits(Program program, List .getReferenceId()); } } + + // If we have an observations array, strip program keys from names + List observations = ou.getObservations(); + if (observations != null) { + for (BrAPIObservation observation : observations) { + String germplasmName = observation.getGermplasmName(); + if(StringUtils.isNotBlank(germplasmName)) { + observation.setGermplasmName(Utilities.removeProgramKeyAndUnknownAdditionalData(germplasmName, program.getKey())); + } + + String observationUnitName = observation.getObservationUnitName(); + if(StringUtils.isNotBlank(germplasmName)) { + observation.setObservationUnitName(Utilities.removeProgramKeyAndUnknownAdditionalData(observationUnitName, program.getKey())); + } + + String observationVariableName = observation.getObservationVariableName(); + if(StringUtils.isNotBlank(observationVariableName)) { + observation.setObservationVariableName(Utilities.removeProgramKey(observationVariableName, program.getKey())); + } + } + } + ou.setObservationUnitName(Utilities.removeProgramKeyAndUnknownAdditionalData(ou.getObservationUnitName(), program.getKey())); if(StringUtils.isNotBlank(ou.getGermplasmName())) { ou.setGermplasmName(Utilities.removeProgramKeyAndUnknownAdditionalData(ou.getGermplasmName(), program.getKey()));