Skip to content

Commit 97548ae

Browse files
authored
Fix initialized pipeline run dates for TEMPO nodes (#1829)
Signed-off-by: Angelica Ochoa <15623749+ao508@users.noreply.github.com>
1 parent 9dfb157 commit 97548ae

File tree

3 files changed

+31
-8
lines changed

3 files changed

+31
-8
lines changed

model/src/main/java/org/mskcc/smile/model/tempo/Tempo.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ public class Tempo implements Serializable {
2828
private Boolean billed;
2929
private String billedBy;
3030
private String costCenter;
31-
private String initialPipelineRunDate;
32-
private String embargoDate;
31+
private String initialPipelineRunDate; // yyyy-MM-dd
32+
private String embargoDate; // yyyy-MM-dd
3333
@Relationship(type = "HAS_EVENT", direction = Relationship.Direction.OUTGOING)
3434
private List<BamComplete> bamCompleteEvents;
3535
@Relationship(type = "HAS_EVENT", direction = Relationship.Direction.OUTGOING)

persistence/src/main/java/org/mskcc/smile/persistence/neo4j/TempoRepository.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,10 @@ OPTIONAL MATCH (cc:CohortComplete)<-[:HAS_COHORT_COMPLETE]-(c:Cohort)-[:HAS_COHO
200200
}[0] AS earliestDeliveryDate
201201
WITH custodianInformation, s.smileSampleId as smileSampleId, earliestDeliveryDate,
202202
CASE WHEN (earliestDeliveryDate IS NULL OR earliestDeliveryDate = "")
203-
THEN $ccDeliveryDate ELSE earliestDeliveryDate END AS initialPipelineRunDate
203+
THEN apoc.date.parse($ccDeliveryDate,"ms","yyyy-MM-dd HH:mm")
204+
ELSE apoc.date.parse(earliestDeliveryDate,"ms","yyyy-MM-dd HH:mm") END AS initPipelineRunDatetime
205+
WITH custodianInformation, smileSampleId, earliestDeliveryDate,
206+
apoc.date.format(initPipelineRunDatetime, "ms", "yyyy-MM-dd") AS initialPipelineRunDate
204207
WITH custodianInformation, smileSampleId, earliestDeliveryDate, initialPipelineRunDate,
205208
CASE WHEN (initialPipelineRunDate IS NULL OR initialPipelineRunDate = "") THEN ""
206209
ELSE apoc.temporal.format(datetime(apoc.date.format(
@@ -244,17 +247,17 @@ CASE WHEN ((t.initialPipelineRunDate IS NULL OR t.initialPipelineRunDate = "")
244247
AND (earliestDeliveryDate IS NULL)) THEN ""
245248
ELSE CASE WHEN (t.initialPipelineRunDate IS NULL OR t.initialPipelineRunDate = ""
246249
OR earliestDeliveryDate < t.initialPipelineRunDate)
247-
THEN earliestDeliveryDate
248-
ELSE t.initialPipelineRunDate
250+
THEN apoc.date.parse(earliestDeliveryDate,"ms","yyyy-MM-dd HH:mm")
251+
ELSE apoc.date.parse(t.initialPipelineRunDate,"ms","yyyy-MM-dd")
249252
END
250-
END AS updatedInitRundate
251-
SET t.initialPipelineRunDate = updatedInitRundate
253+
END AS updatedInitRundatetime
254+
SET t.initialPipelineRunDate = apoc.date.format(updatedInitRundatetime,"ms","yyyy-MM-dd")
252255
WITH s, t, today,
253256
CASE WHEN (t.initialPipelineRunDate IS NULL OR t.initialPipelineRunDate = "")
254257
THEN ""
255258
ELSE apoc.temporal.format(datetime(
256259
apoc.date.format(apoc.date.parse(t.initialPipelineRunDate, "ms", "yyyy-MM-dd"),
257-
"ms", "yyyy-MM-dd")) + Duration({months:18}), 'YYYY-MM-dd')
260+
"ms", "yyyy-MM-dd")) + Duration({months:18}), 'yyyy-MM-dd')
258261
END as updatedEmbargoDate
259262
SET t.embargoDate = updatedEmbargoDate
260263
WITH s,t,today,

service/src/test/java/org/mskcc/smile/service/TempoServiceTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,26 @@ public void testInitAndSaveDefaultTempoDataWithFallbackToCohortDate() throws Exc
426426
Assertions.assertEquals("2025-12-01", tempo.getEmbargoDate());
427427
}
428428

429+
@Test
430+
public void testInitAndSaveBatchTempoDataWithFallbackToCohortDate() throws Exception {
431+
// use a tumor sample that doet not belong to an existing cohort
432+
String igoId = "MOCKREQUEST1_B_3";
433+
Tempo preTempo = tempoService.getTempoDataBySamplePrimaryId(igoId);
434+
Assertions.assertNull(preTempo);
435+
436+
// call batch create tempo nodes for current sample
437+
SmileSample sample = sampleService.getSampleByInputId(igoId);
438+
String fallbackCohortDate = "2024-06-01 12:00";
439+
Integer actual =
440+
tempoService.batchCreateTempoNodesForSamplePrimaryIds(
441+
Arrays.asList("MOCKREQUEST1_B_3"), fallbackCohortDate);
442+
Assertions.assertEquals(1, actual);
443+
Tempo tempo = tempoService.getTempoDataBySampleId(sample);
444+
// verify that the tempo dates are set based on the fallback date
445+
Assertions.assertEquals("2024-06-01", tempo.getInitialPipelineRunDate());
446+
Assertions.assertEquals("2025-12-01", tempo.getEmbargoDate());
447+
}
448+
429449
@Test
430450
public void testCohortCompletePipelineVersionNull() throws Exception {
431451
CohortCompleteJson ccJson = getCohortEventData("mockCohortCompleteCCSPPPQQQQ");

0 commit comments

Comments
 (0)