Skip to content

Commit

Permalink
Flatten pmUsers and endUsers on CohortComplete nodes (#1181)
Browse files Browse the repository at this point in the history
Signed-off-by: Angelica Ochoa <[email protected]>
  • Loading branch information
ao508 authored Jun 6, 2024
1 parent 77d5b4c commit 11d6d37
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package org.mskcc.smile.model.converter;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.neo4j.ogm.typeconversion.AttributeConverter;

/**
*
* @author ochoaa
*/
public class ArrayStringConverter implements AttributeConverter<List<String>, String> {
private final ObjectMapper mapper = new ObjectMapper();
private static final Log LOG = LogFactory.getLog(ArrayStringConverter.class);

@Override
public String toGraphProperty(List<String> value) {
String toReturn = null;
try {
toReturn = mapper.writeValueAsString(value);
} catch (JsonProcessingException ex) {
LOG.error(ex);
}
return toReturn;
}

@Override
public List<String> toEntityAttribute(String value) {
List<String> toReturn = null;
try {
toReturn = Arrays.asList(mapper.readValue(value, String[].class));
} catch (Exception ex) {
LOG.error(ex);
}
return toReturn;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@
import java.util.Collections;
import java.util.List;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.mskcc.smile.model.converter.ArrayStringConverter;
import org.mskcc.smile.model.tempo.json.CohortCompleteJson;
import org.neo4j.ogm.annotation.GeneratedValue;
import org.neo4j.ogm.annotation.Id;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.typeconversion.Convert;

/**
*
Expand All @@ -23,7 +25,9 @@ public class CohortComplete implements Serializable, Comparable<CohortComplete>
private String date;
private String status;
private String type;
@Convert(ArrayStringConverter.class)
private List<String> endUsers;
@Convert(ArrayStringConverter.class)
private List<String> pmUsers;
private String projectTitle;
private String projectSubtitle;
Expand Down
11 changes: 11 additions & 0 deletions scripts/migrate.cypher
Original file line number Diff line number Diff line change
Expand Up @@ -150,3 +150,14 @@ RETURN true
MATCH (t: Tempo)
SET t.smileTempoId = apoc.create.uuid()
RETURN true

// flatten pmUsers and endUsers on CohortComplete nodes
MATCH (cc:CohortComplete)
WITH cc, REDUCE(x="", v IN cc.pmUsers | x + v + ", ") AS newPmUsers
SET cc.pmUsers = LEFT(newPmUsers, SIZE(newPmUsers)-2)
RETURN cc

MATCH (cc:CohortComplete)
WITH cc, REDUCE(x="", v IN cc.endUsers | x + v + ", ") AS newEndUsers
SET cc.endUsers = LEFT(newEndUsers, SIZE(newEndUsers)-2)
RETURN cc

0 comments on commit 11d6d37

Please sign in to comment.