From 748b999fd64bc34fe5c125e3a073f62837865839 Mon Sep 17 00:00:00 2001 From: Mike Brown Date: Thu, 11 Jul 2024 14:58:17 -0400 Subject: [PATCH] Fix test event survey data after AOE correction (#7904) * Fix test event correction constructor * Add aoe corrections test --- .../usds/simplereport/db/model/TestEvent.java | 2 +- .../service/TestOrderServiceTest.java | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/gov/cdc/usds/simplereport/db/model/TestEvent.java b/backend/src/main/java/gov/cdc/usds/simplereport/db/model/TestEvent.java index 054eaf27a0..da76c579db 100644 --- a/backend/src/main/java/gov/cdc/usds/simplereport/db/model/TestEvent.java +++ b/backend/src/main/java/gov/cdc/usds/simplereport/db/model/TestEvent.java @@ -116,7 +116,7 @@ public TestEvent( this.patientData = event.getPatientData(); this.providerData = event.getProviderData(); this.order = order; - this.surveyData = event.getSurveyData(); + this.surveyData = order.getAskOnEntrySurvey().getSurvey(); setDateTestedBackdate(order.getDateTestedBackdate()); this.priorCorrectedTestEventId = event.getInternalId(); } diff --git a/backend/src/test/java/gov/cdc/usds/simplereport/service/TestOrderServiceTest.java b/backend/src/test/java/gov/cdc/usds/simplereport/service/TestOrderServiceTest.java index 6faa11aac1..06f1a423b5 100644 --- a/backend/src/test/java/gov/cdc/usds/simplereport/service/TestOrderServiceTest.java +++ b/backend/src/test/java/gov/cdc/usds/simplereport/service/TestOrderServiceTest.java @@ -1598,6 +1598,53 @@ void correctionsTest() { verify(testEventReportingService, times(0)).report(e); } + @Test + @WithSimpleReportOrgAdminUser + void aoeCorrectionsTest() { + Organization org = _organizationService.getCurrentOrganization(); + Facility facility = _organizationService.getFacilities(org).get(0); + facility.setDefaultDeviceTypeSpecimenType( + _dataFactory.getGenericDevice(), _dataFactory.getGenericSpecimen()); + Person p = _dataFactory.createFullPerson(org); + AskOnEntrySurvey survey = + new AskOnEntrySurvey("77386006", null, Map.of("fake", true), false, null, null); + TestOrder order = _dataFactory.createTestOrder(p, facility, survey); + TestEvent testEvent = _dataFactory.createTestEvent(order); + + // pregnancy marked as Yes on test event + assertEquals("77386006", testEvent.getSurveyData().getPregnancy()); + + String reasonMsg = "Testing AOE correction " + LocalDateTime.now(); + TestEvent originalEvent = _service.markAsCorrection(testEvent.getInternalId(), reasonMsg); + TestOrder updatedOrder = originalEvent.getTestOrder(); + + // now mark pregnancy as No + _service.updateAoeQuestions(p.getInternalId(), "60001007", null, null, null, null, null); + assertEquals("60001007", updatedOrder.getAskOnEntrySurvey().getSurvey().getPregnancy()); + + assertEquals(TestCorrectionStatus.CORRECTED, updatedOrder.getCorrectionStatus()); + assertEquals(reasonMsg, updatedOrder.getReasonForCorrection()); + assertEquals(testEvent.getInternalId(), updatedOrder.getTestEvent().getInternalId()); + assertEquals(OrderStatus.PENDING, updatedOrder.getOrderStatus()); + + List results = + originalEvent.getResults().stream() + .map(r -> new MultiplexResultInput(r.getDisease().getName(), r.getTestResult())) + .toList(); + + // submit queue item + AddTestResultResponse response = + _service.addMultiplexResult( + facility.getDefaultDeviceType().getInternalId(), + facility.getDefaultSpecimenType().getInternalId(), + results, + p.getInternalId(), + originalEvent.getDateTested()); + + // pregnancy is marked as No on test event + assertEquals("60001007", response.getTestOrder().getTestEvent().getSurveyData().getPregnancy()); + } + @Test @WithSimpleReportOrgAdminUser void markAsErrorTest_backwardCompatible() {