@Override public void handle(Visit voidableObject, User voidingUser, Date voidedDate, String voidReason) { List<Encounter> encountersByVisit = Context.getEncounterService().getEncountersByVisit(voidableObject, false); for (Encounter encounter : encountersByVisit) { encounter.setDateVoided(voidedDate); Context.getEncounterService().voidEncounter(encounter, voidReason); } }
/** * @see EncounterService#voidEncounter(Encounter,String) */ @Test(expected = IllegalArgumentException.class) public void voidEncounter_shouldThrowErrorWithNullReasonParameter() { EncounterService encounterService = Context.getEncounterService(); Encounter type = encounterService.getEncounter(1); encounterService.voidEncounter(type, null); }
/** * @see RequireVoidReasonVoidHandler#handle(Voidable,User,Date,String) */ @Test(expected = IllegalArgumentException.class) public void handle_shouldThrowIllegalArgumentExceptionIfEncounterVoidReasonIsEmpty() { Encounter e = Context.getEncounterService().getEncounter(3); Context.getEncounterService().voidEncounter(e, ""); }
es.voidEncounter(encounter, voidReason);
/** * @see EncounterService#voidEncounter(Encounter,String) */ @Test public void voidEncounter_shouldCascadeToOrders() { EncounterService encounterService = Context.getEncounterService(); // get a nonvoided encounter that has some obs Encounter encounter = encounterService.getEncounter(1); encounterService.voidEncounter(encounter, "Just Testing"); Order order = Context.getOrderService().getOrder(1); assertTrue(order.getVoided()); assertEquals("Just Testing", order.getVoidReason()); }
/** * @see EncounterService#voidEncounter(Encounter,String) */ @Test public void voidEncounter_shouldCascadeToObs() { EncounterService encounterService = Context.getEncounterService(); // get a nonvoided encounter that has some obs Encounter encounter = encounterService.getEncounter(1); encounterService.voidEncounter(encounter, "Just Testing"); Obs obs = Context.getObsService().getObs(1); assertTrue(obs.getVoided()); assertEquals("Just Testing", obs.getVoidReason()); }
/** * @see EncounterService#voidEncounter(Encounter, String) */ @Test(expected = APIException.class) public void voidEncounter_shouldFailfIfUserIsNotSupposedToEditEncountersOfTypeOfGivenEncounter() { // get encounter that has type with edit privilege set Encounter encounter = getEncounterWithEditPrivilege(); User user = Context.getUserService().getUserByUsername("test_user"); assertNotNull(user); // left this user as is - i.e. without required privilege // and authenticate under it's account Context.becomeUser(user.getSystemId()); // have to add privilege in order to be able to call voidEncounter(Encounter,String) method Context.addProxyPrivilege(PrivilegeConstants.EDIT_ENCOUNTERS); Context.getEncounterService().voidEncounter(encounter, "test"); }
/** * @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(Encounter enc, String reason, RequestContext context) throws ResponseException { if (enc.isVoided()) { // DELETE is idempotent, so we return success here return; } Context.getEncounterService().voidEncounter(enc, reason); }
encounterService.voidEncounter(encounter, "reason");
es.voidEncounter(testEncounter, "random reason"); assertTrue(testEncounter.getVoided()); assertTrue(testOrder.getVoided());
/** * Make sure {@link EncounterService#voidEncounter(Encounter, String)} marks all the voided * stuff correctly * * @see EncounterService#voidEncounter(Encounter,String) */ @Test public void voidEncounter_shouldVoidEncounterAndSetAttributes() { EncounterService encounterService = Context.getEncounterService(); // get a nonvoided encounter Encounter encounter = encounterService.getEncounter(1); assertFalse(encounter.getVoided()); assertNull(encounter.getVoidedBy()); assertNull(encounter.getVoidReason()); assertNull(encounter.getDateVoided()); Encounter voidedEnc = encounterService.voidEncounter(encounter, "Just Testing"); // make sure its still the same object assertEquals(voidedEnc, encounter); // make sure that all the values were filled in assertTrue(voidedEnc.getVoided()); assertNotNull(voidedEnc.getDateVoided()); assertEquals(Context.getAuthenticatedUser(), voidedEnc.getVoidedBy()); assertEquals("Just Testing", voidedEnc.getVoidReason()); }
/** * Utility method to void an encounter. If the voidEncounterByHtmlFormSchema global property has * been set to true, OR if the Html Form Flowsheet module has been started AND the * voidEncounterByHtmlFormSchema global property has not been explicitly set to false, void the * encounter via the special voidEncounterByHtmlFormSchema algorithm. Otherwise simply void the * encounter normally. This test is done because when using the Html Form Flowsheet module we * only want to void observations associated with the current form, not the entire encounter */ public static void voidEncounter(Encounter e, HtmlForm htmlform, String voidReason) throws Exception { if (voidReason == null) { voidReason = "htmlformentry"; } if (HtmlFormEntryGlobalProperties.VOID_ENCOUNTER_BY_HTML_FORM_SCHEMA() != null) { if (HtmlFormEntryGlobalProperties.VOID_ENCOUNTER_BY_HTML_FORM_SCHEMA() == true) { voidEncounterByHtmlFormSchema(e, htmlform, voidReason); } else { Context.getEncounterService().voidEncounter(e, voidReason); } } else if (HtmlFormEntryGlobalProperties.HTML_FORM_FLOWSHEET_STARTED() != null && HtmlFormEntryGlobalProperties.HTML_FORM_FLOWSHEET_STARTED() == true) { voidEncounterByHtmlFormSchema(e, htmlform, voidReason); } else { Context.getEncounterService().voidEncounter(e, voidReason); } }