Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GLT-4100] fixed pending release approval and release filters #188

Merged
merged 1 commit into from
Mar 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changes/fix_allDeliverableFilters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
The 'Pending: Release Approval' and 'Pending: Release' filters (without a deliverable type specified) were not including all of the appropriate cases
1 change: 1 addition & 0 deletions changes/fix_deliverableReleaseApprovalFilters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
The "Pending: Release Approval - Data Release" and "Pending: Release Approval - Clinical Report" filters were not including stopped cases
Original file line number Diff line number Diff line change
Expand Up @@ -258,19 +258,20 @@ public boolean qualifyCase(Case kase) {

@Override
public boolean qualifyCase(Case kase) {
return (kase.isStopped() || CompletedGate.ANALYSIS_REVIEW.qualifyCase(kase))
&& !CompletedGate.RELEASE_APPROVAL.qualifyCase(kase);
return (kase.isStopped() && !CompletedGate.RELEASE_APPROVAL.qualifyCase(kase))
|| RELEASE_APPROVAL_DATA_RELEASE.qualifyCase(kase)
|| RELEASE_APPROVAL_CLINICAL_REPORT.qualifyCase(kase);
}
},
RELEASE_APPROVAL_DATA_RELEASE("Release Approval - Data Release", true) {
RELEASE_APPROVAL_DATA_RELEASE("Release Approval - Data Release", false) {
@Override
public boolean qualifyCase(Case kase) {
return (kase.isStopped() || CompletedGate.ANALYSIS_REVIEW_DATA_RELEASE.qualifyCase(kase))
&& CompletedGate.RELEASE_APPROVAL_DATA_RELEASE.isApplicable(kase)
&& !CompletedGate.RELEASE_APPROVAL_DATA_RELEASE.qualifyCase(kase);
}
},
RELEASE_APPROVAL_CLINICAL_REPORT("Release Approval - Clinical Report", true) {
RELEASE_APPROVAL_CLINICAL_REPORT("Release Approval - Clinical Report", false) {
@Override
public boolean qualifyCase(Case kase) {
return (kase.isStopped() || CompletedGate.ANALYSIS_REVIEW_CLINICAL_REPORT.qualifyCase(kase))
Expand All @@ -281,8 +282,7 @@ public boolean qualifyCase(Case kase) {
RELEASE("Release", false) {
@Override
public boolean qualifyCase(Case kase) {
return CompletedGate.RELEASE_APPROVAL.qualifyCase(kase)
&& !CompletedGate.RELEASE.qualifyCase(kase);
return RELEASE_DATA_RELEASE.qualifyCase(kase) || RELEASE_CLINICAL_REPORT.qualifyCase(kase);
}
},
RELEASE_DATA_RELEASE("Release - Data Release", false) {
Expand Down
44 changes: 42 additions & 2 deletions src/test/java/ca/on/oicr/gsi/dimsum/MockCase.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ public static List<Case> getCases() {
makeCase6(), makeCase7(), makeCase8(), makeCase9(), makeCase10(), makeCase11(),
makeCase12(), makeCase13(), makeCase14(), makeCase15(), makeCase16(), makeCase17(),
makeCase18(), makeCase19(), makeCase20(), makeCase21(), makeCase22(), makeCase23(),
makeCase24(), makeCase25(), makeCase26(), makeCase27(), makeCase28());
makeCase24(), makeCase25(), makeCase26(), makeCase27(), makeCase28(), makeCase29(),
makeCase30(), makeCase31());

private static Case makeCase0() {
final int caseNumber = 0;
Expand Down Expand Up @@ -290,8 +291,11 @@ private static Case makeCase22() {
}

private static Case makeCase23() {
// Case is stopped
final int caseNumber = 23;
Case kase = makeCase("PRO23_001", "Single Test", "PRO23", "REQ23", caseNumber);
when(kase.isStopped()).thenReturn(true);
when(kase.getRequisition().isStopped()).thenReturn(true);
addTest(kase, caseNumber, 1, "Test", "WG", false, false, false, false);
return kase;
}
Expand Down Expand Up @@ -357,6 +361,43 @@ private static Case makeCase28() {
return kase;
}

private static Case makeCase29() {
final int caseNumber = 29;
// Case is pending release approval - data release, and pending release - clinical report
Case kase = makeCase("PRO29_0001", "Single Test", "PRO29", "REQ29", caseNumber);
addTest(kase, caseNumber, 1, "Test", "WG", true, true, true, true);
markAnalysisReview(kase.getDeliverables().get(0), true);
CaseDeliverable deliverable =
addDeliverable(kase, DeliverableType.CLINICAL_REPORT, "Clinical Report");
markAnalysisReview(deliverable, true);
markReleaseApproval(deliverable, true);
return kase;
}

private static Case makeCase30() {
final int caseNumber = 30;
// Case is pending release approval - data release, and pending analysis review - clinical
// report
Case kase = makeCase("PRO30_0001", "Single Test", "PRO30", "REQ30", caseNumber);
addTest(kase, caseNumber, 1, "Test", "WG", true, true, true, true);
markAnalysisReview(kase.getDeliverables().get(0), true);
addDeliverable(kase, DeliverableType.CLINICAL_REPORT, "Clinical Report");
return kase;
}

private static Case makeCase31() {
final int caseNumber = 31;
// Case is completed release - clinical report, but pending analysis review - data release
Case kase = makeCase("PRO31_0001", "Single Test", "PRO31", "REQ31", caseNumber);
addTest(kase, caseNumber, 1, "Test", "WG", true, true, true, true);
CaseDeliverable deliverable =
addDeliverable(kase, DeliverableType.CLINICAL_REPORT, "Clinical Report");
markAnalysisReview(deliverable, true);
markReleaseApproval(deliverable, true);
markRelease(deliverable.getReleases().get(0), true);
return kase;
}

private static Case makeCase(String donorName, String assayName, String projectName,
String requisitionName, int caseNumber) {
Case kase = mock(Case.class);
Expand Down Expand Up @@ -408,7 +449,6 @@ private static Project makeProject(String name) {
private static Requisition addRequisition(Case kase, int caseNumber, String name) {
Requisition requisition = mock(Requisition.class);
when(requisition.getId()).thenReturn(Long.valueOf(caseNumber));
when(requisition.isStopped()).thenReturn(caseNumber == 23);
when(requisition.isPaused()).thenReturn(caseNumber == 24);
when(requisition.getName()).thenReturn(name);
when(kase.getRequisition()).thenReturn(requisition);
Expand Down
Loading
Loading