From 6b42f484081683a54af90fb68459cc5027f07478 Mon Sep 17 00:00:00 2001 From: geoff-wasilwa Date: Sun, 27 Sep 2015 16:11:21 +0300 Subject: [PATCH] TRUNK-257: Fix to not copy Orders while moving Encounter Data Removed copying orders while transferring encounters. --- api/src/main/java/org/openmrs/Encounter.java | 14 -------------- api/src/main/java/org/openmrs/Obs.java | 1 - api/src/test/java/org/openmrs/EncounterTest.java | 2 +- .../java/org/openmrs/api/EncounterServiceTest.java | 14 +++++--------- .../EncounterServiceTest-transferEncounter.xml | 1 + 5 files changed, 7 insertions(+), 25 deletions(-) diff --git a/api/src/main/java/org/openmrs/Encounter.java b/api/src/main/java/org/openmrs/Encounter.java index c9ad4f1a9462..a86a3c569be1 100644 --- a/api/src/main/java/org/openmrs/Encounter.java +++ b/api/src/main/java/org/openmrs/Encounter.java @@ -741,7 +741,6 @@ public void removeProvider(EncounterRole role, Provider provider) { * @should copy all Encounter data except visit and assign copied Encounter to given Patient */ public Encounter copyAndAssignToAnotherPatient(Patient patient) { - Map oldNewOrderMap = new HashMap(); Encounter target = new Encounter(); target.setChangedBy(getChangedBy()); @@ -767,15 +766,6 @@ public Encounter copyAndAssignToAnotherPatient(Patient patient) { target.getEncounterProviders().add(encounterProviderCopy); } - //orders - for (Order order : getOrders()) { - Order orderCopy = order.copy(); - orderCopy.setEncounter(target); - orderCopy.setPatient(patient); - target.addOrder(orderCopy); - oldNewOrderMap.put(order, orderCopy); - } - Context.getEncounterService().saveEncounter(target); //obs @@ -783,10 +773,6 @@ public Encounter copyAndAssignToAnotherPatient(Patient patient) { Obs obsCopy = Obs.newInstance(obs); obsCopy.setEncounter(target); obsCopy.setPerson(patient); - //refresh order reference - Order oldOrder = obsCopy.getOrder(); - Order newOrder = oldNewOrderMap.get(oldOrder); - obsCopy.setOrder(newOrder); target.addObs(obsCopy); } diff --git a/api/src/main/java/org/openmrs/Obs.java b/api/src/main/java/org/openmrs/Obs.java index 0b5285ac3f3b..b6ff66a7a1d5 100644 --- a/api/src/main/java/org/openmrs/Obs.java +++ b/api/src/main/java/org/openmrs/Obs.java @@ -191,7 +191,6 @@ public static Obs newInstance(Obs obsToCopy) { newObs.setValueModifier(obsToCopy.getValueModifier()); newObs.setValueText(obsToCopy.getValueText()); newObs.setComment(obsToCopy.getComment()); - newObs.setOrder(obsToCopy.getOrder()); newObs.setEncounter(obsToCopy.getEncounter()); newObs.setCreator(obsToCopy.getCreator()); newObs.setDateCreated(obsToCopy.getDateCreated()); diff --git a/api/src/test/java/org/openmrs/EncounterTest.java b/api/src/test/java/org/openmrs/EncounterTest.java index d11758b7683c..bae651f2dd9b 100644 --- a/api/src/test/java/org/openmrs/EncounterTest.java +++ b/api/src/test/java/org/openmrs/EncounterTest.java @@ -1377,7 +1377,7 @@ public void copy_shouldCopyAllEncounterDataExceptVisitAndAssignCopiedEncounterTo Assert.assertEquals(1, encounter.getObs().size()); Assert.assertEquals(1, encounterCopy.getObs().size()); Assert.assertEquals(1, encounter.getOrders().size()); - Assert.assertEquals(1, encounterCopy.getOrders().size()); + Assert.assertEquals(0, encounterCopy.getOrders().size()); Assert.assertEquals(1, encounter.getProvidersByRole(encounterRole).size()); Assert.assertEquals(1, encounterCopy.getProvidersByRole(encounterRole).size()); diff --git a/api/src/test/java/org/openmrs/api/EncounterServiceTest.java b/api/src/test/java/org/openmrs/api/EncounterServiceTest.java index 667918d6725b..7b23cfbcda08 100644 --- a/api/src/test/java/org/openmrs/api/EncounterServiceTest.java +++ b/api/src/test/java/org/openmrs/api/EncounterServiceTest.java @@ -2735,13 +2735,13 @@ public void getEncounterRolesByName_shouldFindEncounterRolesByName() throws Exce */ @Test @Verifies(value = "transfer an encounter with orders and observations to given patient", method = "transferEncounter(Encounter,Patient)") - public void transferEncounter_shouldTransferAnEncounterWithOrdersAndObservationsToGivenPatient() throws Exception { + public void transferEncounter_shouldTransferAnEncounterWithObservationsButNotOrdersToGivenPatient() throws Exception { executeDataSet(TRANSFER_ENC_DATA_XML); Patient targetPatient = Context.getPatientService().getPatient(201); // encounter has 2 obs which are connected with the same order Encounter sourceEncounter = Context.getEncounterService().getEncounter(201); - Assert.assertEquals(1, sourceEncounter.getOrders().size()); + Assert.assertEquals(2, sourceEncounter.getOrders().size()); Assert.assertEquals(2, sourceEncounter.getObs().size()); //transfer @@ -2754,19 +2754,15 @@ public void transferEncounter_shouldTransferAnEncounterWithOrdersAndObservations Assert.assertEquals(targetPatient, transferredEncounter.getPatient()); //check order - Assert.assertEquals(1, transferredOrders.size()); - Order transferredOrder = transferredOrders.get(0); - Assert.assertEquals(targetPatient, transferredOrder.getPatient()); + Assert.assertEquals(0, transferredOrders.size()); //check obs Assert.assertEquals(2, transferredObservations.size()); Assert.assertEquals(targetPatient, transferredObservations.get(0).getPerson()); Assert.assertEquals(targetPatient, transferredObservations.get(1).getPerson()); - //check if obs has reference to the same order - Assert.assertEquals(transferredOrder, transferredObservations.get(0).getOrder()); - Assert.assertEquals(transferredOrder, transferredObservations.get(1).getOrder()); - Assert.assertSame(transferredObservations.get(0).getOrder(), transferredObservations.get(1).getOrder()); + Assert.assertNull(transferredObservations.get(0).getOrder()); + Assert.assertNull(transferredObservations.get(1).getOrder()); //check if form is transferred Assert.assertNotNull(transferredEncounter.getForm()); diff --git a/api/src/test/resources/org/openmrs/api/include/EncounterServiceTest-transferEncounter.xml b/api/src/test/resources/org/openmrs/api/include/EncounterServiceTest-transferEncounter.xml index 26b33cbe0ea4..16bdb2535758 100644 --- a/api/src/test/resources/org/openmrs/api/include/EncounterServiceTest-transferEncounter.xml +++ b/api/src/test/resources/org/openmrs/api/include/EncounterServiceTest-transferEncounter.xml @@ -29,6 +29,7 @@ +