Skip to content

Commit 72e33ab

Browse files
Merge pull request #916 from MeasureAuthoringTool/feature/mat-8638-logging-updates
[MAT-8638] Improve async validation status query precision
2 parents ae0423e + db232c3 commit 72e33ab

2 files changed

Lines changed: 27 additions & 24 deletions

File tree

src/main/java/cms/gov/madie/measure/repositories/TestCaseRepositoryImpl.java

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@ public Measure setValidationStatusToPending(String testCaseId, String measureId)
2626
query.addCriteria(
2727
Criteria.where("_id")
2828
.is(measureId)
29-
.and("testCases._id")
30-
.is(testCaseId)
31-
.and("testCases.validationStatus")
32-
.ne(TestCaseValidationStatus.PENDING.toString()));
29+
.and("testCases")
30+
.elemMatch(
31+
Criteria.where("_id")
32+
.is(testCaseId)
33+
.and("validationStatus")
34+
.ne(TestCaseValidationStatus.PENDING.toString())));
3335

3436
Update update = new Update();
3537
update.set("testCases.$.validationStatus", TestCaseValidationStatus.PENDING.toString());
@@ -41,10 +43,15 @@ public Measure setValidationStatusToPending(String testCaseId, String measureId)
4143
@Override
4244
public Measure setValidationStatusToValidating(String testCaseId, String measureId, UUID taskId) {
4345
Query query = new Query();
44-
query.addCriteria(Criteria.where("_id").is(measureId).and("testCases._id").is(testCaseId));
4546
query.addCriteria(
46-
Criteria.where("testCases.validationStatus")
47-
.is(TestCaseValidationStatus.PENDING.toString()));
47+
Criteria.where("_id")
48+
.is(measureId)
49+
.and("testCases")
50+
.elemMatch(
51+
Criteria.where("_id")
52+
.is(testCaseId)
53+
.and("validationStatus")
54+
.is(TestCaseValidationStatus.PENDING.toString())));
4855

4956
Update update = new Update();
5057
update.set("testCases.$.validationStatus", TestCaseValidationStatus.VALIDATING.toString());
@@ -75,12 +82,14 @@ public Measure findAndUpdateValidationResults(
7582
query.addCriteria(
7683
Criteria.where("_id")
7784
.is(measureId)
78-
.and("testCases._id")
79-
.is(testCaseId)
80-
.and("testCases.validationStatus")
81-
.is(TestCaseValidationStatus.VALIDATING.toString())
82-
.and("testCases.validationTaskId")
83-
.is(taskId.toString()));
85+
.and("testCases")
86+
.elemMatch(
87+
Criteria.where("_id")
88+
.is(testCaseId)
89+
.and("validationStatus")
90+
.is(TestCaseValidationStatus.VALIDATING.toString())
91+
.and("testCases.validationTaskId")
92+
.is(taskId.toString())));
8493

8594
Update update = new Update();
8695
update.set(

src/main/java/cms/gov/madie/measure/services/TestCaseValidationService.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,7 @@ void submitOnImportValidationTask(
8787
taskId,
8888
Instant.now(),
8989
importExecutor.getQueueSize());
90-
importExecutor.submit(
91-
() -> {
92-
validate(taskId, measureId, testCase, modelType, accessToken);
93-
});
90+
importExecutor.submit(() -> validate(taskId, measureId, testCase, modelType, accessToken));
9491
}
9592

9693
void validate(
@@ -102,11 +99,7 @@ void validate(
10299
// TODO replace with decorator
103100
Instant startTime = Instant.now();
104101
log.info(
105-
"TestCase Validation::execute::{}::{}::{}::{}",
106-
submittedTestCase.getId(),
107-
Thread.currentThread().getId(),
108-
taskId,
109-
startTime);
102+
"TestCase Validation::execute::{}::{}::{}", submittedTestCase.getId(), taskId, startTime);
110103
Measure measure =
111104
measureRepository.setValidationStatusToValidating(
112105
submittedTestCase.getId(), measureId, taskId);
@@ -133,9 +126,10 @@ void validate(
133126
currentTestCase.getId(), measureId, taskId, validationOutcome);
134127
Instant stopTime = Instant.now();
135128
log.info(
136-
"TestCase Validation::completed::{}::{}::{}::{}",
129+
"TestCase Validation::completed::{}::{}::{}::{}::{}",
137130
currentTestCase.getId(),
138131
taskId,
132+
stopTime,
139133
Duration.between(startTime, stopTime),
140134
saveExecutor.getQueueSize());
141135
} catch (Exception e) {
@@ -157,7 +151,7 @@ public TestCase validateResourceAsynchronously(
157151
// If the measure is null, the test case has already has PENDING status.
158152
if (updatedMeasure == null) {
159153
log.info(
160-
"Test Case with Id {} already in validation queue for Measure with Id {}",
154+
"TestCase Validation::already pending::{}::measure::{}",
161155
testCase.getId(),
162156
measure.getId());
163157
return testCase;

0 commit comments

Comments
 (0)