@Test public void saveOrder_shouldFailDiscontinueNonCodedDrugOrderIfOrderableOfPreviousAndNewOrderDontMatch() { executeDataSet("org/openmrs/api/include/OrderServiceTest-nonCodedDrugs.xml"); DrugOrder previousOrder = (DrugOrder) orderService.getOrder(584); DrugOrder drugOrder = previousOrder.cloneForDiscontinuing(); drugOrder.setDrugNonCoded("non coded drug citrigine"); drugOrder.setPreviousOrder(previousOrder); drugOrder.setDateActivated(new Date()); drugOrder.setOrderer(providerService.getProvider(1)); drugOrder.setEncounter(encounterService.getEncounter(6)); expectedException.expect(EditedOrderDoesNotMatchPreviousException.class); expectedException.expectMessage("The orderable of the previous order and the new one order don't match"); orderService.saveOrder(drugOrder, null); }
@Test public void saveOrder_shouldDiscontinuePreviousNonCodedOrderIfItIsNotAlreadyDiscontinued() { //We are trying to discontinue order id 584 in OrderServiceTest-nonCodedDrugs.xml executeDataSet("org/openmrs/api/include/OrderServiceTest-nonCodedDrugs.xml"); DrugOrder previousOrder = (DrugOrder) orderService.getOrder(584); DrugOrder drugOrder = previousOrder.cloneForDiscontinuing(); drugOrder.setPreviousOrder(previousOrder); drugOrder.setDateActivated(new Date()); drugOrder.setOrderer(previousOrder.getOrderer()); drugOrder.setEncounter(previousOrder.getEncounter()); Order saveOrder = orderService.saveOrder(drugOrder, null); Assert.assertNotNull("previous order should be discontinued", previousOrder.getDateStopped()); assertNotNull(orderService.getOrder(saveOrder.getOrderId())); }
private DrugOrder createDiscontinuationOrderIfNeeded(DrugOrder drugOrder, Date discontinuedDate, String discontinuedReasonStr) { DrugOrder discontinuationOrder = null; if (discontinuedDate != null) { discontinuationOrder = drugOrder.cloneForDiscontinuing(); discontinuationOrder.setDateActivated(discontinuedDate); if (!StringUtils.isEmpty(discontinuedReasonStr)) discontinuationOrder.setOrderReason(HtmlFormEntryUtil.getConcept(discontinuedReasonStr)); } else if (drugOrder.getAutoExpireDate() != null) { Date date = new Date(); if (drugOrder.getAutoExpireDate().getTime() < date.getTime()) { drugOrder.setDateActivated(drugOrder.getAutoExpireDate()); discontinuationOrder = drugOrder.cloneForDiscontinuing(); } } return discontinuationOrder; }
assertTrue(OrderUtilTest.isActiveOrder(orderToDiscontinue, null)); DrugOrder order = orderToDiscontinue.cloneForDiscontinuing(); order.setDateActivated(new Date()); order.setOrderer(providerService.getProvider(1));
/** * @see DrugOrder#cloneForDiscontinuing() */ @Test public void cloneForDiscontinuing_shouldSetAllTheRelevantFields() { DrugOrder order = new DrugOrder(); order.setPatient(new Patient()); order.setCareSetting(new CareSetting()); Drug drug = new Drug(); drug.setConcept(new Concept()); order.setDrug(drug); order.setOrderType(new OrderType()); DrugOrder dcOrder = order.cloneForDiscontinuing(); assertEquals(order.getDrug(), dcOrder.getDrug()); assertEquals(order.getPatient(), dcOrder.getPatient()); assertEquals(order.getConcept(), dcOrder.getConcept()); assertEquals("should set previous order to anOrder", order, dcOrder.getPreviousOrder()); assertEquals("should set new order action to new", dcOrder.getAction(), Order.Action.DISCONTINUE); assertEquals(order.getCareSetting(), dcOrder.getCareSetting()); assertEquals(order.getOrderType(), dcOrder.getOrderType()); }