Uploaded image for project: 'OpenMRS Core'
  1. OpenMRS Core
  2. TRUNK-5017

Encounter.removeProvider fails if same provider has already been removed once before

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Should
    • Resolution: Fixed
    • Affects Version/s: Platform 1.9.11, Platform 1.10.3, Platform 1.11.7, Platform 2.0.2
    • Fix Version/s: Core 2.1.0
    • Component/s: None
    • Labels:
    • Complexity:
      Low

      Description

      The Encounter removeProvider(EncounterRole role, Provider provider) method sets voided=true on the first matching provider it finds, regardless of whether that provider is voided or not.

      Therefore, if you add and then remove the same provider twice, the second remove fails.

      Test to reproduce:

      	@Test
      	public void multipleAddingAndRemovingOfSameProviderShouldNotFail() throws Exception {
      
      		Encounter encounter = new Encounter();
      		EncounterRole role = new EncounterRole();
      		Provider provider = new Provider();
      
      		encounter.addProvider(role, provider);
      
      		Assert.assertEquals(1, encounter.getProvidersByRole(role).size());
      		Assert.assertTrue(encounter.getProvidersByRole(role).contains(provider));
      
      		encounter.removeProvider(role, provider);
      
      		//the size should be 0 for non voided providers
      		Assert.assertEquals(0, encounter.getProvidersByRole(role).size());
      
      		encounter.addProvider(role, provider);
      		Assert.assertEquals(1, encounter.getProvidersByRole(role).size());
      
      		encounter.removeProvider(role, provider);
      		Assert.assertEquals(0, encounter.getProvidersByRole(role).size());  // current fails, returns 1
      
      	}
      }
      

      (this might make a good intro ticket)

        Gliffy Diagrams

          Attachments

            Attachments-Category-Modification

              Activity

                People

                • Assignee:
                  jtatia Jai Tatia
                  Reporter:
                  mogoodrich Mark Goodrich
                  Watchers:
                  Daniel Kayiwa, Darius Jazayeri, Ira Lauer, Jai Tatia, Mark Goodrich
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  5 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: