@Override public Encounter transferEncounter(Encounter encounter, Patient patient) { Encounter encounterCopy = encounter.copyAndAssignToAnotherPatient(patient); voidEncounter(encounter, "transfer to patient: id = " + patient.getId()); //void visit if voided encounter is the only one Visit visit = encounter.getVisit(); if (visit != null && visit.getEncounters().size() == 1) { Context.getVisitService().voidVisit(visit, "Visit does not contain non-voided encounters"); } return saveEncounter(encounterCopy); } }
/** * @see VisitService#voidVisit(Visit,String) */ @Test public void voidVisit_shouldVoidEncountersWithVisit() { //given executeDataSet(VISITS_WITH_DATES_XML); Visit visit = visitService.getVisit(7); Assert.assertFalse(visit.getVoided()); List<Encounter> encountersByVisit = Context.getEncounterService().getEncountersByVisit(visit, false); Assert.assertFalse(encountersByVisit.isEmpty()); //when visit = visitService.voidVisit(visit, "test reason"); //then assertTrue(visit.getVoided()); encountersByVisit = Context.getEncounterService().getEncountersByVisit(visit, false); assertTrue(encountersByVisit.isEmpty()); }
/** * @see VisitService#unvoidVisit(Visit) */ @Test public void unvoidVisit_shouldUnvoidEncountersVoidedWithVisit() { //given executeDataSet(VISITS_WITH_DATES_XML); Visit visit = visitService.getVisit(7); List<Encounter> encountersByVisit = Context.getEncounterService().getEncountersByVisit(visit, true); assertEquals(2, encountersByVisit.size()); visitService.voidVisit(visit, "test reason"); assertTrue(visit.getVoided()); encountersByVisit = Context.getEncounterService().getEncountersByVisit(visit, false); assertTrue(encountersByVisit.isEmpty()); //when visit = visitService.unvoidVisit(visit); //then Assert.assertFalse(visit.getVoided()); encountersByVisit = Context.getEncounterService().getEncountersByVisit(visit, false); assertEquals(1, encountersByVisit.size()); }
/** * @see org.openmrs.module.webservices.rest.web.resource.impl.DelegatingCrudResource#delete(org.openmrs.Encounter, * java.lang.String, org.openmrs.module.webservices.rest.web.RequestContext) */ @Override public void delete(Visit visit, String reason, RequestContext context) throws ResponseException { if (visit.isVoided()) { // Makes no sense, so we return success here return; } Context.getVisitService().voidVisit(visit, reason); }
/** * @see VisitService#voidVisit(Visit,String) */ @Test public void voidVisit_shouldVoidTheVisitAndSetTheVoidReason() { Visit visit = visitService.getVisit(1); Assert.assertFalse(visit.getVoided()); assertNull(visit.getVoidReason()); assertNull(visit.getVoidedBy()); assertNull(visit.getDateVoided()); visit = visitService.voidVisit(visit, "test reason"); assertTrue(visit.getVoided()); assertEquals("test reason", visit.getVoidReason()); assertEquals(Context.getAuthenticatedUser(), visit.getVoidedBy()); assertNotNull(visit.getDateVoided()); }
@Override public void delete(Patient patient, String reason, RequestContext context) throws ResponseException { if (patient.isVoided()) { // DELETE is idempotent, so we return success here return; } VisitService visitService = Context.getVisitService(); List<Visit> visits = Context.getVisitService().getVisitsByPatient(patient); for (Visit visit : visits) { visitService.voidVisit(visit, "Patient deleted"); } super.delete(patient, reason, context); }