From 35720f8ac91bbe5da90f934b162544f8226acb81 Mon Sep 17 00:00:00 2001 From: Steven Williams Date: Wed, 7 Feb 2024 21:00:24 -0500 Subject: [PATCH] Fix `EncounterStatusTransformer` - Put original value extension on the `status` element rather than the `Encounter` itself. - Use `toCode` (the FHIR code value) rather than `toString` (the name of the Java enum instance). --- .../lantanagroup/link/events/EncounterStatusTransformer.java | 4 ++-- .../link/nhsn/EncounterStatusTransformerTest.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/lantanagroup/link/events/EncounterStatusTransformer.java b/core/src/main/java/com/lantanagroup/link/events/EncounterStatusTransformer.java index 9b8db22a0..054a748e4 100644 --- a/core/src/main/java/com/lantanagroup/link/events/EncounterStatusTransformer.java +++ b/core/src/main/java/com/lantanagroup/link/events/EncounterStatusTransformer.java @@ -26,9 +26,9 @@ public void execute(TenantService tenantService, Bundle bundle, ReportCriteria c if (patientEncounter.getPeriod().hasEnd() && patientEncounter.getStatus() != Encounter.EncounterStatus.FINISHED) { logger.debug("Updating Encounter {} status from {} to FINISHED", patientEncounter.getIdElement().getIdPart(), patientEncounter.getStatus()); - patientEncounter.addExtension() + patientEncounter.getStatusElement().addExtension() .setUrl(Constants.OriginalElementValueExtension) - .setValue(new CodeType().setValue(patientEncounter.getStatus().toString())); + .setValue(new CodeType(patientEncounter.getStatus().toCode())); patientEncounter.setStatus(Encounter.EncounterStatus.FINISHED); } } diff --git a/nhsn/src/test/java/com/lantanagroup/link/nhsn/EncounterStatusTransformerTest.java b/nhsn/src/test/java/com/lantanagroup/link/nhsn/EncounterStatusTransformerTest.java index 91944f58a..5ce69bc43 100644 --- a/nhsn/src/test/java/com/lantanagroup/link/nhsn/EncounterStatusTransformerTest.java +++ b/nhsn/src/test/java/com/lantanagroup/link/nhsn/EncounterStatusTransformerTest.java @@ -68,8 +68,8 @@ public void execute() throws ParseException { Encounter encounterTest2 = (Encounter)bundle.getEntry().get(2).getResource(); //Rewriting these tests to check that the transformed values persist rather than checking that they DON'T persist Assert.assertEquals(encounterTest1.getStatus(), Encounter.EncounterStatus.FINISHED); - Assert.assertEquals(encounterTest1.getExtension().size(), 1); + Assert.assertTrue(encounterTest1.getStatusElement().hasExtension()); Assert.assertEquals(encounterTest2.getStatus(), Encounter.EncounterStatus.TRIAGED); - Assert.assertEquals(encounterTest2.getExtension().size(), 0); + Assert.assertFalse(encounterTest2.getStatusElement().hasExtension()); } }