Skip to content

Commit

Permalink
Use original test event id for FHIR bundle corrections (#8207)
Browse files Browse the repository at this point in the history
* Use original test event id for corrections

* Update tests for diagnostic report with prior test event

* Spotless apply
  • Loading branch information
mpbrown authored Oct 22, 2024
1 parent 4280ba9 commit b1154f9
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1195,15 +1195,18 @@ public ServiceRequest convertToServiceRequest(
*/
public DiagnosticReport convertToDiagnosticReport(TestEvent testEvent, Date currentDate) {
DiagnosticReportStatus status = null;
String id = Objects.toString(testEvent.getInternalId(), "");
switch (testEvent.getCorrectionStatus()) {
case ORIGINAL:
status = (DiagnosticReportStatus.FINAL);
break;
case CORRECTED:
status = (DiagnosticReportStatus.CORRECTED);
id = testEvent.getPriorCorrectedTestEventId().toString();
break;
case REMOVED:
status = (DiagnosticReportStatus.ENTEREDINERROR);
id = testEvent.getPriorCorrectedTestEventId().toString();
break;
}

Expand Down Expand Up @@ -1241,12 +1244,7 @@ public DiagnosticReport convertToDiagnosticReport(TestEvent testEvent, Date curr
dateIssued = ZonedDateTime.ofInstant(currentDate.toInstant(), ZoneOffset.UTC);

return convertToDiagnosticReport(
status,
testOrderLoinc,
testOrderLoincLongName,
Objects.toString(testEvent.getInternalId(), ""),
dateTested,
dateIssued);
status, testOrderLoinc, testOrderLoincLongName, id, dateTested, dateIssued);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1367,24 +1367,41 @@ void convertToDiagnosticReport_TestEvent_valid() {

@Test
void convertToDiagnosticReport_TestEvent_correctedTestEvent() {
var invalidTestEvent = TestDataBuilder.createEmptyTestEvent();
var invalidTestEvent = TestDataBuilder.createMultiplexTestEvent();

var correctedTestEvent =
new TestEvent(invalidTestEvent, TestCorrectionStatus.CORRECTED, "typo");

String priorCorrectedTestEventId = "3c9c7370-e2e3-49ad-bb7a-f6005f41cf29";
ReflectionTestUtils.setField(
correctedTestEvent,
"priorCorrectedTestEventId",
UUID.fromString(priorCorrectedTestEventId));

var actual = fhirConverter.convertToDiagnosticReport(correctedTestEvent, new Date());

assertThat(actual.getStatus()).isEqualTo(DiagnosticReportStatus.CORRECTED);
assertThat(actual.getId())
.isEqualTo(correctedTestEvent.getPriorCorrectedTestEventId().toString());
}

@Test
void convertToDiagnosticReport_TestEvent_removedTestEvent() {
var invalidTestEvent = TestDataBuilder.createEmptyTestEvent();
var invalidTestEvent = TestDataBuilder.createMultiplexTestEvent();
var correctedTestEvent =
new TestEvent(invalidTestEvent, TestCorrectionStatus.REMOVED, "wrong person");

String priorCorrectedTestEventId = "3c9c7370-e2e3-49ad-bb7a-f6005f41cf29";
ReflectionTestUtils.setField(
correctedTestEvent,
"priorCorrectedTestEventId",
UUID.fromString(priorCorrectedTestEventId));

var actual = fhirConverter.convertToDiagnosticReport(correctedTestEvent, new Date());

assertThat(actual.getStatus()).isEqualTo(DiagnosticReportStatus.ENTEREDINERROR);
assertThat(actual.getId())
.isEqualTo(correctedTestEvent.getPriorCorrectedTestEventId().toString());
}

@Test
Expand Down

0 comments on commit b1154f9

Please sign in to comment.