diff --git a/src/main/java/org/mskcc/cbio/portal/scripts/UpdateCaseListsSampleIds.java b/src/main/java/org/mskcc/cbio/portal/scripts/UpdateCaseListsSampleIds.java index b8ab514e..4fa4d48a 100644 --- a/src/main/java/org/mskcc/cbio/portal/scripts/UpdateCaseListsSampleIds.java +++ b/src/main/java/org/mskcc/cbio/portal/scripts/UpdateCaseListsSampleIds.java @@ -70,7 +70,7 @@ public void run() { this.caseListSampleIdToSampleIds.put(cancerStudyStableId + "_all", this.allSampleIds); Map<String, Set<String>> readCaseListSampleIds = readCaseListFiles(); this.caseListSampleIdToSampleIds.putAll(readCaseListSampleIds); - updateCaseLists(this.caseListSampleIdToSampleIds); + updateCaseListsForTheStudy(this.caseListSampleIdToSampleIds); } private Map<String, Set<String>> readCaseListFiles() { @@ -96,7 +96,17 @@ private Map<String, Set<String>> readCaseListFiles() { return result; } - private void updateCaseLists(Map<String, Set<String>> caseListSampleIdToSampleIds) { + /** + * Updates study case lists + * by adding new sample IDs to their designated case lists + * and ensuring these sample IDs are removed from any other case lists within the study. + * + * @param caseListSampleIdToSampleIds case list ID -> sample IDs map + * NOTE: The `caseListSampleIdToSampleIds` mapping is not a complete representation of all case lists in the study. + * We do not drop any existing case lists for the study. Instead, we only add or remove sample IDs + * that are specified in the provided mapping. + */ + private void updateCaseListsForTheStudy(Map<String, Set<String>> caseListSampleIdToSampleIds) { DaoCancerStudy.reCacheAll(); try { for (Map.Entry<String, Set<String>> caseListStableIdToSampleIds : caseListSampleIdToSampleIds.entrySet()) {