/** * Checks whether this order's orderType matches or is a sub type of the specified one * * @since 1.10 * @param orderType the orderType to match on * @return true if the type of the order matches or is a sub type of the other order * @should true if it is the same or is a subtype * @should false if it neither the same nor a subtype */ public boolean isType(OrderType orderType) { return OrderUtil.isType(orderType, this.orderType); }
private boolean areDrugOrdersOfSameOrderableAndOverlappingSchedule(Order firstOrder, Order secondOrder) { return firstOrder.hasSameOrderableAs(secondOrder) && !OpenmrsUtil.nullSafeEquals(firstOrder.getPreviousOrder(), secondOrder) && OrderUtil.checkScheduleOverlap(firstOrder, secondOrder) && firstOrder.getOrderType().equals( Context.getOrderService().getOrderTypeByUuid(OrderType.DRUG_ORDER_TYPE_UUID)); }
/** * @throws ParseException * @see OrderUtil#checkScheduleOverlap(org.openmrs.Order, org.openmrs.Order) */ @Test public void checkScheduleOverlap_shouldReturnTrueIfOrder2StartsBeforeOrder1AndEndsAfterOrder1() throws ParseException { DateFormat df = new SimpleDateFormat("dd/MM/yyy"); Order order1 = new Order(); order1.setDateActivated(df.parse("03/08/2014")); order1.setAutoExpireDate(df.parse("05/08/2014")); Order order2 = new Order(); order2.setDateActivated(df.parse("01/08/2014")); order2.setAutoExpireDate(df.parse("07/08/2014")); assertTrue(OrderUtil.checkScheduleOverlap(order1, order2)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order1)); }
/** * @throws ParseException * @see OrderUtil#checkScheduleOverlap(org.openmrs.Order, org.openmrs.Order) */ @Test public void checkScheduleOverlap_shouldReturnTrueIfOrder1StartsOnTheStopDateOfOrder2() throws ParseException { DateFormat df = new SimpleDateFormat("dd/MM/yyy"); Order order1 = new Order(); order1.setDateActivated(df.parse("13/08/2014")); Order order2 = new Order(); order2.setDateActivated(df.parse("05/08/2014")); order2.setAutoExpireDate(order1.getDateActivated()); assertTrue(OrderUtil.checkScheduleOverlap(order1, order2)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order1)); //Assuming order1 has an end date order1.setAutoExpireDate(df.parse("15/08/2014")); assertTrue(OrderUtil.checkScheduleOverlap(order1, order2)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order1)); }
/** * @see OrderUtil#isType(org.openmrs.OrderType, org.openmrs.OrderType) */ @Test public void isType_shouldReturnFalseIfTheyAreBothNull() { assertFalse(OrderUtil.isType(null, null)); }
/** * @throws ParseException * @see OrderUtil#checkScheduleOverlap(org.openmrs.Order, org.openmrs.Order) */ @Test public void checkScheduleOverlap_shouldReturnTrueIfOrder1EndsOnTheStartDateOfOrder2() throws ParseException { DateFormat df = new SimpleDateFormat("dd/MM/yyy"); Order order1 = new Order(); order1.setDateActivated(df.parse("05/08/2014")); order1.setAutoExpireDate(df.parse("13/08/2014")); Order order2 = new Order(); order2.setDateActivated(order1.getAutoExpireDate()); assertTrue(OrderUtil.checkScheduleOverlap(order1, order2)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order1)); //Assuming order2 has an end date order2.setAutoExpireDate(df.parse("15/08/2014")); assertTrue(OrderUtil.checkScheduleOverlap(order1, order2)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order1)); }
/** * @throws ParseException * @see OrderUtil#checkScheduleOverlap(org.openmrs.Order, org.openmrs.Order) */ @Test public void checkScheduleOverlap_shouldReturnTrueIfBothOrdersStartAndEndOnSameDates() throws ParseException { DateFormat df = new SimpleDateFormat("dd/MM/yyy"); Order order1 = new Order(); order1.setDateActivated(df.parse("05/08/2014")); order1.setAutoExpireDate(df.parse("13/08/2014")); Order order2 = new Order(); order2.setDateActivated(order1.getDateActivated()); order2.setDateActivated(order1.getAutoExpireDate()); assertTrue(OrderUtil.checkScheduleOverlap(order1, order2)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order1)); } }
/** * @see OrderUtil#isType(org.openmrs.OrderType, org.openmrs.OrderType) */ @Test public void isType_shouldTrueIfOrderType2IsTheSameOrIsASubtypeOfOrderType1() { OrderType orderType = new OrderType(); OrderType subType1 = new OrderType(); OrderType subType2 = new OrderType(); subType2.setParent(subType1); subType1.setParent(orderType); assertTrue(OrderUtil.isType(subType2, subType2)); assertTrue(OrderUtil.isType(subType1, subType2)); assertTrue(OrderUtil.isType(orderType, subType2)); }
/** * @see OrderUtil#checkScheduleOverlap(Order,Order) */ @Test public void checkScheduleOverlap_shouldReturnTrueIfOrder1StartsWhenTheOrder2IsActive() { Date date = new Date(); Order order1 = new Order(); order1.setScheduledDate(DateUtils.addDays(date, 3)); //Order1 scheduled after 3 days order1.setUrgency(Order.Urgency.ON_SCHEDULED_DATE); Order order2 = new Order(); order2.setDateActivated(date); //Order2 scheduled today getting expired after 4 days order2.setAutoExpireDate(DateUtils.addDays(date, 4)); assertTrue(OrderUtil.checkScheduleOverlap(order1, order2)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order1)); }
/** * @see OrderUtil#isType(org.openmrs.OrderType, org.openmrs.OrderType) */ @Test public void isType_shouldFalseIfOrderType2IsNeitherTheSameNorASubtypeOfOrderType1() { assertFalse(OrderUtil.isType(new OrderType(), new OrderType())); }
/** * @see OrderUtil#checkScheduleOverlap(Order,Order) */ @Test public void checkScheduleOverlap_shouldReturnTrueIfOrder1AndOrder2HaveSameStartDates() { Date date = new Date(); Order order1 = new Order(); order1.setDateActivated(date); order1.setScheduledDate(DateUtils.addDays(date, 6)); //Order1 scheduled after 6 days order1.setUrgency(Order.Urgency.ON_SCHEDULED_DATE); Order order2 = new Order(); order2.setDateActivated(date); order2.setScheduledDate(DateUtils.addDays(date, 6)); //Order2 also scheduled after 6 days order2.setUrgency(Order.Urgency.ON_SCHEDULED_DATE); assertTrue(OrderUtil.checkScheduleOverlap(order1, order2)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order1)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order2)); }
if (orderType.getParent() != null && OrderUtil.isType(orderType, orderType.getParent())) { errors.rejectValue("parent", "OrderType.parent.amongDescendants", new Object[] { orderType.getName() }, "Parent of " + orderType.getName() + " is among its descendants");
/** * @see OrderUtil#checkScheduleOverlap(Order,Order) */ @Test public void checkScheduleOverlap_shouldReturnFalseIfOrder1StartsAfterOrder2() { Date date = new Date(); Order order1 = new Order(); order1.setScheduledDate(DateUtils.addDays(date, 11)); //Order1 getting started after existing order's stop order1.setUrgency(Order.Urgency.ON_SCHEDULED_DATE); Order order2 = new Order(); order2.setDateActivated(date); order2.setAutoExpireDate(DateUtils.addDays(date, 2)); //Order2 expiring after 2 days assertFalse(OrderUtil.checkScheduleOverlap(order1, order2)); assertFalse(OrderUtil.checkScheduleOverlap(order2, order1)); }
/** * @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); }
/** * @see OrderUtil#checkScheduleOverlap(Order,Order) */ @Test public void checkScheduleOverlap_shouldReturnFalseIfOrder1EndsBeforeOrder2Starts() { Date date = new Date(); Order order1 = new Order(); order1.setDateActivated(date); order1.setAutoExpireDate(DateUtils.addDays(date, 2)); //Order1 getting expired after 2 days Order order2 = new Order(); order2.setDateActivated(date); order2.setScheduledDate(DateUtils.addDays(date, 4)); //Order2 scheduled after 4 days order2.setUrgency(Order.Urgency.ON_SCHEDULED_DATE); assertFalse(OrderUtil.checkScheduleOverlap(order1, order2)); assertFalse(OrderUtil.checkScheduleOverlap(order2, order1)); }
/** * @see OrderUtil#checkScheduleOverlap(Order,Order) */ @Test public void checkScheduleOverlap_shouldReturnTrueIfOrder1AndOrder2DoNotHaveEndDate() { Date date = new Date(); Order order1 = new Order(); order1.setScheduledDate(DateUtils.addDays(date, 4)); //Order1 scheduled after 4 days without stop date order1.setUrgency(Order.Urgency.ON_SCHEDULED_DATE); Order order2 = new Order(); order2.setDateActivated(date); order2.setScheduledDate(DateUtils.addDays(date, 6)); //Order2 scheduled after 6 days without stop date order2.setUrgency(Order.Urgency.ON_SCHEDULED_DATE); assertTrue(OrderUtil.checkScheduleOverlap(order1, order2)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order1)); //Checks vice versa }
/** * versa * @see OrderUtil#checkScheduleOverlap(Order,Order) */ @Test public void checkScheduleOverlap_shouldReturnTrueIfOrder1StopsAfterTheOrder2HasAlreadyBeenActivated() { Date date = new Date(); Order order1 = new Order(); order1.setDateActivated(date); //Order1 scheduled today getting expired after 5 days order1.setAutoExpireDate(DateUtils.addDays(date, 5)); Order order2 = new Order(); order2.setDateActivated(date); order2.setScheduledDate(DateUtils.addDays(date, 4)); //Order2 scheduled after 4 days order2.setUrgency(Order.Urgency.ON_SCHEDULED_DATE); assertTrue(OrderUtil.checkScheduleOverlap(order1, order2)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order1)); }
/** * @see OrderUtil#checkScheduleOverlap(Order,Order) */ @Test public void checkScheduleOverlap_shouldReturnTrueIfOrder1StartsBeforeOrder2AndEndsAfterOrder2() { Date date = new Date(); Order order1 = new Order(); order1.setScheduledDate(DateUtils.addDays(date, 4)); //Order1 scheduled after 4 days getting expired after 14 days order1.setAutoExpireDate(DateUtils.addDays(date, 14)); order1.setUrgency(Order.Urgency.ON_SCHEDULED_DATE); Order order2 = new Order(); order2.setDateActivated(date); order2.setScheduledDate(DateUtils.addDays(date, 6)); //Order2 scheduled after 6 days getting expired after 10 days order2.setAutoExpireDate(DateUtils.addDays(date, 10)); order2.setUrgency(Order.Urgency.ON_SCHEDULED_DATE); assertTrue(OrderUtil.checkScheduleOverlap(order1, order2)); assertTrue(OrderUtil.checkScheduleOverlap(order2, order1)); }