/** * @see org.openmrs.api.OrderService#discontinueOrder(org.openmrs.Order, String, java.util.Date, * org.openmrs.Provider, org.openmrs.Encounter) */ @Override public Order discontinueOrder(Order orderToDiscontinue, String reasonNonCoded, Date discontinueDate, Provider orderer, Encounter encounter) { if (discontinueDate == null) { discontinueDate = aMomentBefore(new Date()); } stopOrder(orderToDiscontinue, discontinueDate, false); Order newOrder = orderToDiscontinue.cloneForDiscontinuing(); newOrder.setOrderReasonNonCoded(reasonNonCoded); newOrder.setOrderer(orderer); newOrder.setEncounter(encounter); newOrder.setDateActivated(discontinueDate); return saveOrderInternal(newOrder, null); }
/** * @see org.openmrs.api.OrderService#discontinueOrder(org.openmrs.Order, org.openmrs.Concept, * java.util.Date, org.openmrs.Provider, org.openmrs.Encounter) */ @Override public Order discontinueOrder(Order orderToDiscontinue, Concept reasonCoded, Date discontinueDate, Provider orderer, Encounter encounter) { if (discontinueDate == null) { discontinueDate = aMomentBefore(new Date()); } stopOrder(orderToDiscontinue, discontinueDate, false); Order newOrder = orderToDiscontinue.cloneForDiscontinuing(); newOrder.setOrderReason(reasonCoded); newOrder.setOrderer(orderer); newOrder.setEncounter(encounter); newOrder.setDateActivated(discontinueDate); return saveOrderInternal(newOrder, null); }
@Test public void saveRetrospectiveOrder_shouldDiscontinueOrderInRetrospectiveEntry() throws ParseException { executeDataSet("org/openmrs/api/include/OrderServiceTest-ordersWithAutoExpireDate.xml"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S"); Date originalOrderDateActivated = dateFormat.parse("2008-11-19 09:24:10.0"); Date discontinuationOrderDate = DateUtils.addDays(originalOrderDateActivated, 2); Order originalOrder = orderService.getOrder(201); assertNull(originalOrder.getDateStopped()); assertEquals(dateFormat.parse("2008-11-23 09:24:09.0"), originalOrder.getAutoExpireDate()); assertFalse(originalOrder.isActive()); assertTrue(originalOrder.isActive(discontinuationOrderDate)); Order discontinueationOrder = originalOrder.cloneForDiscontinuing(); discontinueationOrder.setPreviousOrder(originalOrder); discontinueationOrder.setEncounter(encounterService.getEncounter(17)); discontinueationOrder.setOrderer(providerService.getProvider(1)); discontinueationOrder.setDateActivated(discontinuationOrderDate); orderService.saveRetrospectiveOrder(discontinueationOrder, null); assertNotNull(originalOrder.getDateStopped()); assertEquals(discontinueationOrder.getAutoExpireDate(), discontinueationOrder.getDateActivated()); }
@Test public void saveRetrospectiveOrder_shouldDiscontinueAndStopActiveOrderInRetrospectiveEntry() throws ParseException { executeDataSet("org/openmrs/api/include/OrderServiceTest-ordersWithAutoExpireDate.xml"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S"); Date originalOrderDateActivated = dateFormat.parse("2008-11-19 09:24:10.0"); Date discontinuationOrderDate = DateUtils.addDays(originalOrderDateActivated, 2); Order originalOrder = orderService.getOrder(202); assertNull(originalOrder.getDateStopped()); assertEquals(dateFormat.parse("2008-11-23 09:24:09.0"), originalOrder.getAutoExpireDate()); assertFalse(originalOrder.isActive()); assertTrue(originalOrder.isActive(discontinuationOrderDate)); Order discontinuationOrder = originalOrder.cloneForDiscontinuing(); discontinuationOrder.setPreviousOrder(null); discontinuationOrder.setEncounter(encounterService.getEncounter(17)); discontinuationOrder.setOrderer(providerService.getProvider(1)); discontinuationOrder.setDateActivated(discontinuationOrderDate); orderService.saveRetrospectiveOrder(discontinuationOrder, null); assertNotNull(originalOrder.getDateStopped()); assertEquals(discontinuationOrder.getAutoExpireDate(), discontinuationOrder.getDateActivated()); }
/** * @see OrderService#saveOrder(org.openmrs.Order, OrderContext) */ @Test public void saveOrder_shouldFailIfConceptInPreviousOrderDoesNotMatchThisConcept() { Order previousOrder = orderService.getOrder(7); assertTrue(OrderUtilTest.isActiveOrder(previousOrder, null)); Order order = previousOrder.cloneForDiscontinuing(); order.setDateActivated(new Date()); order.setOrderReasonNonCoded("Discontinue this"); order.setEncounter(encounterService.getEncounter(6)); order.setOrderer(providerService.getProvider(1)); Concept newConcept = conceptService.getConcept(5089); assertFalse(previousOrder.getConcept().equals(newConcept)); order.setConcept(newConcept); expectedException.expect(EditedOrderDoesNotMatchPreviousException.class); expectedException.expectMessage("The orderable of the previous order and the new one order don't match"); orderService.saveOrder(order, null); }
Order discontinuationOrder = thirdOrderToDiscontinue.cloneForDiscontinuing(); discontinuationOrder.setOrderer(orderer); discontinuationOrder.setEncounter(encounterService.getEncounter(6));
private Order newDiscontinuationOrder(Date discontinuedDate, String discontinuedReasonStr, Order o) { Order discontinuationOrder; discontinuationOrder = o.cloneForDiscontinuing(); discontinuationOrder.setDateActivated(discontinuedDate); if (!StringUtils.isEmpty(discontinuedReasonStr)) { discontinuationOrder.setOrderReason(HtmlFormEntryUtil.getConcept(discontinuedReasonStr)); } return discontinuationOrder; } }
/** * @see OrderService#saveOrder(org.openmrs.Order, OrderContext) */ @Test public void saveOrder_shouldFailIfTheCareSettingOfThePreviousOrderDoesNotMatch() { Order order = orderService.getOrder(7); assertTrue(OrderUtilTest.isActiveOrder(order, null)); Order discontinuationOrder = order.cloneForDiscontinuing(); CareSetting careSetting = orderService.getCareSetting(2); assertNotEquals(discontinuationOrder.getCareSetting(), careSetting); discontinuationOrder.setCareSetting(careSetting); discontinuationOrder.setOrderer(Context.getProviderService().getProvider(1)); discontinuationOrder.setEncounter(Context.getEncounterService().getEncounter(6)); expectedException.expect(EditedOrderDoesNotMatchPreviousException.class); expectedException.expectMessage(mss.getMessage("Order.care.setting.doesnot.match")); orderService.saveOrder(discontinuationOrder, null); }
/** * @see OrderService#saveOrder(org.openmrs.Order, OrderContext) */ @Test public void saveOrder_shouldFailIfTheOrderTypeOfThePreviousOrderDoesNotMatch() { Order order = orderService.getOrder(7); assertTrue(OrderUtilTest.isActiveOrder(order, null)); Order discontinuationOrder = order.cloneForDiscontinuing(); OrderType orderType = orderService.getOrderType(7); assertNotEquals(discontinuationOrder.getOrderType(), orderType); assertTrue(OrderUtil.isType(discontinuationOrder.getOrderType(), orderType)); discontinuationOrder.setOrderType(orderType); discontinuationOrder.setOrderer(Context.getProviderService().getProvider(1)); discontinuationOrder.setEncounter(Context.getEncounterService().getEncounter(6)); expectedException.expect(EditedOrderDoesNotMatchPreviousException.class); expectedException.expectMessage(mss.getMessage("Order.type.doesnot.match")); orderService.saveOrder(discontinuationOrder, null); }
anOrder.setOrderType(new OrderType()); Order orderThatCanDiscontinueTheOrder = anOrder.cloneForDiscontinuing();