/** * @see OrderService#getActiveOrders(org.openmrs.Patient, org.openmrs.OrderType, * org.openmrs.CareSetting, java.util.Date) */ @Test public void getActiveOrders_shouldReturnAllActiveOrdersForTheSpecifiedPatient() { Patient patient = Context.getPatientService().getPatient(2); List<Order> orders = orderService.getActiveOrders(patient, null, null, null); assertEquals(5, orders.size()); Order[] expectedOrders = { orderService.getOrder(222), orderService.getOrder(3), orderService.getOrder(444), orderService.getOrder(5), orderService.getOrder(7) }; assertThat(orders, hasItems(expectedOrders)); assertTrue(OrderUtilTest.isActiveOrder(orders.get(0), null)); assertTrue(OrderUtilTest.isActiveOrder(orders.get(1), null)); assertTrue(OrderUtilTest.isActiveOrder(orders.get(2), null)); assertTrue(OrderUtilTest.isActiveOrder(orders.get(3), null)); assertTrue(OrderUtilTest.isActiveOrder(orders.get(4), null)); }
/** * @see Order#isDiscontinued(Date) */ @Test public void isDiscontinued_shouldDiscontinueActivatedOrderAfterDateStopped() throws Exception { o.setDateActivated(ymd.parse("2007-01-01")); o.setAutoExpireDate(ymd.parse("2007-12-31")); OrderUtilTest.setDateStopped(o, ymd.parse("2007-11-01")); assertTrue("should be discontinued after dateStopped", o.isDiscontinued(ymd.parse("2007-11-26"))); }
/** * @see Order#isDiscontinued(Date) */ @Test public void isDiscontinued_shouldNotDiscontinueActivatedOrderBeforeDateStopped() throws Exception { o.setDateActivated(ymd.parse("2007-01-01")); o.setAutoExpireDate(ymd.parse("2007-12-31")); OrderUtilTest.setDateStopped(o, ymd.parse("2007-11-01")); assertFalse("shouldn't be discontinued before dateStopped", o.isDiscontinued(ymd.parse("2007-10-26"))); }
@Test public void shouldReviseAnOrderAndFlushSuccessfully() { Order originalOrder = orderService.getOrder(111); assertTrue(OrderUtilTest.isActiveOrder(originalOrder, null)); final Patient patient = originalOrder.getPatient(); List<Order> originalActiveOrders = orderService.getActiveOrders(patient, null, null, null); final int originalOrderCount = originalActiveOrders.size(); assertTrue(originalActiveOrders.contains(originalOrder)); Order revisedOrder = originalOrder.cloneForRevision(); revisedOrder.setInstructions("Take after a meal"); revisedOrder.setDateActivated(new Date()); revisedOrder.setOrderer(providerService.getProvider(1)); revisedOrder.setEncounter(encounterService.getEncounter(3)); orderService.saveOrder(revisedOrder, null); Context.flushSession(); List<Order> activeOrders = orderService.getActiveOrders(patient, null, null, null); assertEquals(originalOrderCount, activeOrders.size()); assertFalse(OrderUtilTest.isActiveOrder(originalOrder, null)); }
/** * @see Order#isActive() */ @Test public void isActive_shouldBeCurrentBetweenDateActivatedAndDateStopped() throws Exception { o.setDateActivated(ymd.parse("2007-01-01")); o.setAutoExpireDate(ymd.parse("2007-12-31")); OrderUtilTest.setDateStopped(o, ymd.parse("2007-11-01")); assertFalse("shouldn't be current before dateActivated", o.isActive(ymd.parse("2006-10-26"))); assertTrue("should be current between dateActivated and dateStopped", o.isActive(ymd.parse("2007-10-26"))); assertFalse("shouldn't be current after dateStopped", o.isActive(ymd.parse("2007-11-26"))); }
@Test public void shouldReviseAnOrder() { Order originalOrder = orderService.getOrder(111); assertTrue(OrderUtilTest.isActiveOrder(originalOrder, null)); final Patient patient = originalOrder.getPatient(); List<Order> originalActiveOrders = orderService.getActiveOrders(patient, null, null, null); final int originalOrderCount = originalActiveOrders.size(); assertTrue(originalActiveOrders.contains(originalOrder)); Order revisedOrder = originalOrder.cloneForRevision(); revisedOrder.setInstructions("Take after a meal"); revisedOrder.setDateActivated(new Date()); revisedOrder.setOrderer(providerService.getProvider(1)); revisedOrder.setEncounter(encounterService.getEncounter(3)); orderService.saveOrder(revisedOrder, null); List<Order> activeOrders = orderService.getActiveOrders(patient, null, null, null); assertEquals(originalOrderCount, activeOrders.size()); assertEquals(revisedOrder.getDateActivated(), DateUtils.addSeconds(originalOrder.getDateStopped(), 1)); assertFalse(OrderUtilTest.isActiveOrder(originalOrder, null)); }
/** * @see Order#getEffectiveStopDate() */ @Test public void getEffectiveStopDate_shouldReturnDateStoppedIfDateStoppedIsNotNull() throws Exception { Order order = new Order(); Date dateStopped = DateUtils.addDays(new Date(), 4); OrderUtilTest.setDateStopped(order, dateStopped); order.setAutoExpireDate(new Date()); assertEquals(dateStopped, order.getEffectiveStopDate()); }
assertTrue(OrderUtilTest.isActiveOrder(firstOrderToDiscontinue, null)); Patient patient = firstOrderToDiscontinue.getPatient(); int ordersCount = orderService.getActiveOrders(patient, null, null, null).size(); assertTrue(OrderUtilTest.isActiveOrder(secondOrderToDiscontinue, null)); Order discontinuationOrder2 = orderService.discontinueOrder(secondOrderToDiscontinue, "Testing", null, orderer, encounter); assertTrue(OrderUtilTest.isActiveOrder(thirdOrderToDiscontinue, null)); Order discontinuationOrder = thirdOrderToDiscontinue.cloneForDiscontinuing(); discontinuationOrder.setOrderer(orderer);
/** * @see Order#isActive(java.util.Date) */ @Test public void isActive_shouldReturnTrueIfAnOrderWasDiscontinuedOnTheCheckDate() throws Exception { Order order = new Order(); order.setDateActivated(DateUtils.parseDate("2014-11-01 11:11:10", DATE_FORMAT)); Date dateStopped = DateUtils.parseDate("2014-11-01 11:11:11", DATE_FORMAT); OrderUtilTest.setDateStopped(order, dateStopped); assertTrue(order.isActive(dateStopped)); }
@Test public void shouldDiscontinueAnActiveOrderAndFlushSuccessfully() { executeDataSet(ORDER_ENTRY_DATASET_XML); executeDataSet("org/openmrs/api/include/OrderServiceTest-discontinueReason.xml"); Order firstOrderToDiscontinue = orderService.getOrder(3); Encounter encounter = encounterService.getEncounter(3); assertTrue(OrderUtilTest.isActiveOrder(firstOrderToDiscontinue, null)); Concept discontinueReason = Context.getConceptService().getConcept(1); Provider orderer = providerService.getProvider(1); Order discontinuationOrder1 = orderService.discontinueOrder(firstOrderToDiscontinue, discontinueReason, null, orderer, encounter); Context.flushSession(); assertEquals(firstOrderToDiscontinue, discontinuationOrder1.getPreviousOrder()); }
/** * @throws Exception * @see OrderValidator#validate(Object,Errors) */ @Test public void validate_shouldFailValidationIfDateActivatedAfterDateStopped() throws Exception { Order order = new Order(); order.setConcept(Context.getConceptService().getConcept(88)); order.setPatient(Context.getPatientService().getPatient(2)); order.setOrderer(Context.getProviderService().getProvider(1)); Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH) - 1); order.setDateActivated(new Date()); OrderUtilTest.setDateStopped(order, cal.getTime()); Errors errors = new BindException(order, "order"); new OrderValidator().validate(order, errors); Assert.assertTrue(errors.hasFieldErrors("dateActivated")); Assert.assertTrue(errors.hasFieldErrors("dateStopped")); }
/** * @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); }
/** * @see Order#isDiscontinued(java.util.Date) */ @Test public void isDiscontinued_shouldReturnFalseIfDateActivatedIsAfterCheckDate() throws Exception { Order order = new Order(); order.setDateActivated(DateUtils.parseDate("2014-11-01 11:11:12", DATE_FORMAT)); OrderUtilTest.setDateStopped(order, DateUtils.parseDate("2014-11-01 11:11:13", DATE_FORMAT)); assertFalse(order.isDiscontinued(DateUtils.parseDate("2014-11-01 11:11:11", DATE_FORMAT))); }
/** * @see OrderService#discontinueOrder(org.openmrs.Order, String, java.util.Date, * org.openmrs.Provider, org.openmrs.Encounter) */ @Test public void discontinueOrder_shouldPopulateCorrectAttributesOnTheDiscontinueAndDiscontinuedOrders() { Order order = orderService.getOrderByOrderNumber("111"); Encounter encounter = encounterService.getEncounter(3); Provider orderer = providerService.getProvider(1); assertTrue(OrderUtilTest.isActiveOrder(order, null)); Date discontinueDate = new Date(); String discontinueReasonNonCoded = "Test if I can discontinue this"; Order discontinueOrder = orderService.discontinueOrder(order, discontinueReasonNonCoded, discontinueDate, orderer, encounter); Assert.assertEquals(order.getDateStopped(), discontinueDate); Assert.assertNotNull(discontinueOrder); Assert.assertNotNull(discontinueOrder.getId()); Assert.assertEquals(discontinueOrder.getDateActivated(), discontinueOrder.getAutoExpireDate()); Assert.assertEquals(discontinueOrder.getAction(), Action.DISCONTINUE); Assert.assertEquals(discontinueOrder.getOrderReasonNonCoded(), discontinueReasonNonCoded); Assert.assertEquals(discontinueOrder.getPreviousOrder(), order); }
/** * @see Order#isActive(java.util.Date) */ @Test public void isActive_shouldReturnFalseForADiscontinuedOrder() throws Exception { Order order = new Order(); order.setDateActivated(DateUtils.parseDate("2014-11-01 11:11:10", DATE_FORMAT)); OrderUtilTest.setDateStopped(order, DateUtils.parseDate("2014-11-01 11:11:11", DATE_FORMAT)); assertFalse(order.isActive(DateUtils.parseDate("2014-11-01 11:11:12", DATE_FORMAT))); }
/** * @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#isDiscontinued(java.util.Date) */ @Test public void isDiscontinued_shouldReturnFalseIfAutoExpireDateIsNullAndDateStoppedIsEqualToCheckDate() throws Exception { Order order = new Order(); order.setDateActivated(DateUtils.parseDate("2014-11-01 11:11:10", DATE_FORMAT)); Date checkDate = DateUtils.parseDate("2014-11-01 11:11:11", DATE_FORMAT); OrderUtilTest.setDateStopped(order, checkDate); assertNull(order.getAutoExpireDate()); assertFalse(order.isDiscontinued(checkDate)); }
/** * @see OrderService#saveOrder(org.openmrs.Order, OrderContext) */ @Test public void saveOrder_shouldFailIfTheExistingDrugOrderMatchesTheConceptAndNotDrugOfTheDCOrder() { final DrugOrder orderToDiscontinue = (DrugOrder) orderService.getOrder(5); assertTrue(OrderUtilTest.isActiveOrder(orderToDiscontinue, null)); //create a different test drug Drug discontinuationOrderDrug = new Drug(); discontinuationOrderDrug.setConcept(orderToDiscontinue.getConcept()); discontinuationOrderDrug = conceptService.saveDrug(discontinuationOrderDrug); assertNotEquals(discontinuationOrderDrug, orderToDiscontinue.getDrug()); assertNotNull(orderToDiscontinue.getDrug()); DrugOrder order = orderToDiscontinue.cloneForRevision(); order.setDateActivated(new Date()); order.setOrderer(providerService.getProvider(1)); order.setEncounter(encounterService.getEncounter(6)); order.setDrug(discontinuationOrderDrug); order.setOrderReasonNonCoded("Discontinue this"); expectedException.expect(EditedOrderDoesNotMatchPreviousException.class); expectedException.expectMessage("The orderable of the previous order and the new one order don't match"); orderService.saveOrder(order, null); }
/** * @see Order#isExpired(java.util.Date) */ @Test public void isExpired_shouldReturnFalseIfCheckDateIsAfterDateStoppedButBeforeAutoExpireDate() throws Exception { Order order = new Order(); order.setDateActivated(DateUtils.parseDate("2014-11-01 11:11:10", DATE_FORMAT)); OrderUtilTest.setDateStopped(order, DateUtils.parseDate("2014-11-01 11:11:11", DATE_FORMAT)); order.setAutoExpireDate(DateUtils.parseDate("2014-11-01 11:11:13", DATE_FORMAT)); assertFalse(order.isExpired(DateUtils.parseDate("2014-11-01 11:11:12", DATE_FORMAT))); }
/** * @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); }