/** * Creates a discontinuation order for this order, sets the previousOrder and action fields, * note that the discontinuation order needs to be saved for the discontinuation to take effect * * @return the newly created order * @since 1.10 * @should set all the relevant fields */ public Order cloneForDiscontinuing() { Order newOrder = new Order(); newOrder.setCareSetting(getCareSetting()); newOrder.setConcept(getConcept()); newOrder.setAction(Action.DISCONTINUE); newOrder.setPreviousOrder(this); newOrder.setPatient(getPatient()); newOrder.setOrderType(getOrderType()); return newOrder; }
@Test public void saveOrder_shouldNotRevisePreviousIfAlreadyStopped() throws ParseException { executeDataSet("org/openmrs/api/include/OrderServiceTest-ordersWithAutoExpireDate.xml"); Order previousOrder = orderService.getOrder(203); Date dateActivated = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2008-10-19 13:00:00"); Order order = previousOrder.cloneForRevision(); order.setDateActivated(dateActivated); order.setOrderer(providerService.getProvider(1)); order.setEncounter(encounterService.getEncounter(18)); order.setPreviousOrder(previousOrder); expectedException.expect(CannotStopInactiveOrderException.class); expectedException.expectMessage(mss.getMessage("Order.cannot.discontinue.inactive")); orderService.saveRetrospectiveOrder(order, null); }
/** * @see OrderService#saveOrder(org.openmrs.Order, OrderContext) */ @Test public void saveOrder_shouldNotAllowRevisingAnOrderWithNoPreviousOrder() { Order originalOrder = orderService.getOrder(111); assertTrue(originalOrder.isActive()); Order revisedOrder = originalOrder.cloneForRevision(); revisedOrder.setEncounter(encounterService.getEncounter(5)); revisedOrder.setInstructions("Take after a meal"); revisedOrder.setPreviousOrder(null); revisedOrder.setOrderer(providerService.getProvider(1)); revisedOrder.setDateActivated(new Date()); expectedException.expect(MissingRequiredPropertyException.class); expectedException.expectMessage(mss.getMessage("Order.previous.required")); orderService.saveOrder(revisedOrder, null); }
if (getAction() == Action.DISCONTINUE) { target.setAction(Action.DISCONTINUE); target.setPreviousOrder(getPreviousOrder()); target.setDateActivated(getDateActivated()); } else { target.setAction(Action.REVISE); target.setPreviousOrder(this); target.setAutoExpireDate(getAutoExpireDate());
@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()); }
order.setPreviousOrder(orderToBeDiscontinued); stopOrder(orderToBeDiscontinued, aMomentBefore(order.getDateActivated()), isRetrospective);
/** * @see OrderService#saveOrder(org.openmrs.Order, OrderContext) */ @Test public void saveOrder_shouldFailIfTheJavaTypeOfThePreviousOrderDoesNotMatch() { Order order = orderService.getOrder(7); assertTrue(OrderUtilTest.isActiveOrder(order, null)); Order discontinuationOrder = new SomeTestOrder(); discontinuationOrder.setCareSetting(order.getCareSetting()); discontinuationOrder.setConcept(order.getConcept()); discontinuationOrder.setAction(Action.DISCONTINUE); discontinuationOrder.setPreviousOrder(order); discontinuationOrder.setPatient(order.getPatient()); assertTrue(order.getOrderType().getJavaClass().isAssignableFrom(discontinuationOrder.getClass())); discontinuationOrder.setOrderType(order.getOrderType()); discontinuationOrder.setOrderer(Context.getProviderService().getProvider(1)); discontinuationOrder.setEncounter(Context.getEncounterService().getEncounter(6)); expectedException.expect(EditedOrderDoesNotMatchPreviousException.class); expectedException.expectMessage(mss.getMessage("Order.class.doesnot.match")); orderService.saveOrder(discontinuationOrder, null); }
/** * @see Order#cloneForRevision() */ @Test public void cloneForRevision_shouldSetTheRelevantFieldsForADCOrder() throws Exception { Order order = new Order(); order.setAction(Order.Action.DISCONTINUE); Date date = new Date(); order.setDateActivated(date); order.setPreviousOrder(new Order()); order.setAutoExpireDate(date); order.setAccessionNumber("some number"); OrderUtilTest.setDateStopped(order, date); Order clone = order.cloneForRevision(); assertEquals(Order.Action.DISCONTINUE, clone.getAction()); assertEquals(order.getDateActivated(), clone.getDateActivated()); assertEquals(order.getPreviousOrder(), clone.getPreviousOrder()); assertNull(clone.getAutoExpireDate()); assertNull(clone.getDateStopped()); assertNull(clone.getAccessionNumber()); }
/** * @throws Exception * @see DrugOrder#cloneForRevision() */ @Test public void cloneForRevision_shouldSetTheRelevantFieldsForADCOrder() { Order order = new DrugOrder(); order.setAction(Order.Action.DISCONTINUE); Date date = new Date(); order.setDateActivated(date); order.setAutoExpireDate(date); order.setAccessionNumber("some number"); OrderUtilTest.setDateStopped(order, date); order.setPreviousOrder(new Order()); Order clone = order.cloneForRevision(); assertEquals(Order.Action.DISCONTINUE, clone.getAction()); assertEquals(order.getDateActivated(), clone.getDateActivated()); assertEquals(order.getPreviousOrder(), clone.getPreviousOrder()); assertNull(clone.getAutoExpireDate()); assertNull(clone.getDateStopped()); assertNull(clone.getAccessionNumber()); }
/** * @see TestOrder#cloneForRevision() */ @Test public void cloneForRevision_shouldSetTheRelevantFieldsForADCOrder() { Order order = new TestOrder(); order.setAction(Order.Action.DISCONTINUE); Date date = new Date(); order.setDateActivated(date); order.setAutoExpireDate(date); order.setAccessionNumber("some number"); OrderUtilTest.setDateStopped(order, date); order.setPreviousOrder(new Order()); Order clone = order.cloneForRevision(); assertEquals(Order.Action.DISCONTINUE, clone.getAction()); assertEquals(order.getDateActivated(), clone.getDateActivated()); assertEquals(order.getPreviousOrder(), clone.getPreviousOrder()); assertNull(clone.getAutoExpireDate()); assertNull(clone.getDateStopped()); assertNull(clone.getAccessionNumber()); } }