Search in sources :

Example 6 with DrugOrder

use of org.openmrs.DrugOrder in project openmrs-core by openmrs.

the class OrderServiceTest method saveOrder_shouldSetAutoExpireDateOfDrugOrderIfAutoExpireDateIsNotSet.

@Test
public void saveOrder_shouldSetAutoExpireDateOfDrugOrderIfAutoExpireDateIsNotSet() throws ParseException {
    executeDataSet("org/openmrs/api/include/OrderServiceTest-drugOrderAutoExpireDate.xml");
    Drug drug = conceptService.getDrug(3000);
    DrugOrder drugOrder = new DrugOrder();
    Encounter encounter = encounterService.getEncounter(3);
    drugOrder.setEncounter(encounter);
    drugOrder.setPatient(patientService.getPatient(7));
    drugOrder.setCareSetting(orderService.getCareSetting(1));
    drugOrder.setOrderer(Context.getProviderService().getProvider(1));
    drugOrder.setDrug(drug);
    drugOrder.setDosingType(SimpleDosingInstructions.class);
    drugOrder.setDose(300.0);
    drugOrder.setDoseUnits(conceptService.getConcept(50));
    drugOrder.setQuantity(20.0);
    drugOrder.setQuantityUnits(conceptService.getConcept(51));
    drugOrder.setFrequency(orderService.getOrderFrequency(3));
    drugOrder.setRoute(conceptService.getConcept(22));
    drugOrder.setNumRefills(0);
    drugOrder.setOrderType(null);
    drugOrder.setDateActivated(TestUtil.createDateTime("2014-08-03"));
    // 20 days
    drugOrder.setDuration(20);
    drugOrder.setDurationUnits(conceptService.getConcept(1001));
    Order savedOrder = orderService.saveOrder(drugOrder, null);
    Order loadedOrder = orderService.getOrder(savedOrder.getId());
    Assert.assertEquals(TestUtil.createDateTime("2014-08-22 23:59:59"), loadedOrder.getAutoExpireDate());
}
Also used : Drug(org.openmrs.Drug) DrugOrder(org.openmrs.DrugOrder) DrugOrder(org.openmrs.DrugOrder) TestOrder(org.openmrs.TestOrder) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) Order(org.openmrs.Order) Encounter(org.openmrs.Encounter) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest) OrderUtilTest(org.openmrs.order.OrderUtilTest) Test(org.junit.Test)

Example 7 with DrugOrder

use of org.openmrs.DrugOrder in project openmrs-core by openmrs.

the class OrderServiceTest method saveOrder_shouldPassIfTheExistingDrugOrderMatchesTheConceptAndThereIsNoDrugOnThePreviousOrder.

/**
 *           previous order
 * @see OrderService#saveOrder(org.openmrs.Order, OrderContext)
 */
@Test
public void saveOrder_shouldPassIfTheExistingDrugOrderMatchesTheConceptAndThereIsNoDrugOnThePreviousOrder() {
    DrugOrder orderToDiscontinue = new DrugOrder();
    orderToDiscontinue.setAction(Action.NEW);
    orderToDiscontinue.setPatient(Context.getPatientService().getPatient(7));
    orderToDiscontinue.setConcept(Context.getConceptService().getConcept(5497));
    orderToDiscontinue.setCareSetting(orderService.getCareSetting(1));
    orderToDiscontinue.setOrderer(orderService.getOrder(1).getOrderer());
    orderToDiscontinue.setEncounter(encounterService.getEncounter(3));
    orderToDiscontinue.setDateActivated(new Date());
    orderToDiscontinue.setScheduledDate(new Date());
    orderToDiscontinue.setUrgency(Order.Urgency.ON_SCHEDULED_DATE);
    orderToDiscontinue.setEncounter(encounterService.getEncounter(3));
    orderToDiscontinue.setOrderType(orderService.getOrderType(17));
    orderToDiscontinue.setDrug(null);
    orderToDiscontinue.setDosingType(FreeTextDosingInstructions.class);
    orderToDiscontinue.setDosingInstructions("instructions");
    orderToDiscontinue.setOrderer(providerService.getProvider(1));
    orderToDiscontinue.setDosingInstructions("2 for 5 days");
    orderToDiscontinue.setQuantity(10.0);
    orderToDiscontinue.setQuantityUnits(conceptService.getConcept(51));
    orderToDiscontinue.setNumRefills(2);
    orderService.saveOrder(orderToDiscontinue, null);
    assertTrue(OrderUtilTest.isActiveOrder(orderToDiscontinue, null));
    DrugOrder order = orderToDiscontinue.cloneForDiscontinuing();
    order.setDateActivated(new Date());
    order.setOrderer(providerService.getProvider(1));
    order.setEncounter(encounterService.getEncounter(3));
    order.setOrderReasonNonCoded("Discontinue this");
    orderService.saveOrder(order, null);
    Assert.assertNotNull("previous order should be discontinued", orderToDiscontinue.getDateStopped());
}
Also used : DrugOrder(org.openmrs.DrugOrder) Date(java.util.Date) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest) OrderUtilTest(org.openmrs.order.OrderUtilTest) Test(org.junit.Test)

Example 8 with DrugOrder

use of org.openmrs.DrugOrder in project openmrs-core by openmrs.

the class OrderServiceTest method saveOrder_shouldDiscontinuePreviousOrderIfItIsNotAlreadyDiscontinued.

/**
 * @see OrderService#saveOrder(org.openmrs.Order, OrderContext)
 */
@Test
public void saveOrder_shouldDiscontinuePreviousOrderIfItIsNotAlreadyDiscontinued() {
    // We are trying to discontinue order id 111 in standardTestDataset.xml
    DrugOrder order = new DrugOrder();
    order.setAction(Order.Action.DISCONTINUE);
    order.setOrderReasonNonCoded("Discontinue this");
    order.setDrug(conceptService.getDrug(3));
    order.setEncounter(encounterService.getEncounter(5));
    order.setPatient(Context.getPatientService().getPatient(7));
    order.setOrderer(Context.getProviderService().getProvider(1));
    order.setCareSetting(orderService.getCareSetting(1));
    order.setEncounter(encounterService.getEncounter(3));
    order.setOrderType(orderService.getOrderType(1));
    order.setDateActivated(new Date());
    order.setDosingType(SimpleDosingInstructions.class);
    order.setDose(500.0);
    order.setDoseUnits(conceptService.getConcept(50));
    order.setFrequency(orderService.getOrderFrequency(1));
    order.setRoute(conceptService.getConcept(22));
    order.setNumRefills(10);
    order.setQuantity(20.0);
    order.setQuantityUnits(conceptService.getConcept(51));
    Order previousOrder = orderService.getOrder(111);
    assertTrue(OrderUtilTest.isActiveOrder(previousOrder, null));
    order.setPreviousOrder(previousOrder);
    orderService.saveOrder(order, null);
    Assert.assertEquals(order.getDateActivated(), order.getAutoExpireDate());
    Assert.assertNotNull("previous order should be discontinued", previousOrder.getDateStopped());
}
Also used : DrugOrder(org.openmrs.DrugOrder) DrugOrder(org.openmrs.DrugOrder) TestOrder(org.openmrs.TestOrder) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) Order(org.openmrs.Order) Date(java.util.Date) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest) OrderUtilTest(org.openmrs.order.OrderUtilTest) Test(org.junit.Test)

Example 9 with DrugOrder

use of org.openmrs.DrugOrder in project openmrs-core by openmrs.

the class OrderServiceTest method saveOrder_shouldPassIfAnActiveDrugOrderForTheSameConceptAndCareSettingButDifferentFormulationExists.

/**
 * @see OrderService#saveOrder(org.openmrs.Order, OrderContext)
 */
@Test
public void saveOrder_shouldPassIfAnActiveDrugOrderForTheSameConceptAndCareSettingButDifferentFormulationExists() {
    executeDataSet("org/openmrs/api/include/OrderServiceTest-drugOrdersWithSameConceptAndDifferentFormAndStrength.xml");
    final Patient patient = patientService.getPatient(2);
    // sanity check that we have an active order
    DrugOrder existingOrder = (DrugOrder) orderService.getOrder(1000);
    assertTrue(existingOrder.isActive());
    // New Drug order
    DrugOrder order = new DrugOrder();
    order.setPatient(patient);
    order.setConcept(existingOrder.getConcept());
    order.setEncounter(encounterService.getEncounter(6));
    order.setOrderer(providerService.getProvider(1));
    order.setCareSetting(existingOrder.getCareSetting());
    order.setDrug(conceptService.getDrug(3001));
    order.setDosingType(FreeTextDosingInstructions.class);
    order.setDosingInstructions("2 for 5 days");
    order.setQuantity(10.0);
    order.setQuantityUnits(conceptService.getConcept(51));
    order.setNumRefills(2);
    Order savedDrugOrder = orderService.saveOrder(order, null);
    assertNotNull(orderService.getOrder(savedDrugOrder.getOrderId()));
}
Also used : DrugOrder(org.openmrs.DrugOrder) DrugOrder(org.openmrs.DrugOrder) TestOrder(org.openmrs.TestOrder) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) Order(org.openmrs.Order) Patient(org.openmrs.Patient) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest) OrderUtilTest(org.openmrs.order.OrderUtilTest) Test(org.junit.Test)

Example 10 with DrugOrder

use of org.openmrs.DrugOrder in project openmrs-core by openmrs.

the class OrderServiceTest method saveOrder_shouldPassIfAnActiveDrugOrderForTheSameDrugFormulationExistsBeyondSchedule.

/**
 * @see OrderService#saveOrder(org.openmrs.Order, OrderContext)
 */
@Test
public void saveOrder_shouldPassIfAnActiveDrugOrderForTheSameDrugFormulationExistsBeyondSchedule() {
    executeDataSet("org/openmrs/api/include/OrderServiceTest-DrugOrders.xml");
    final Patient patient = patientService.getPatient(2);
    DrugOrder existingOrder = (DrugOrder) orderService.getOrder(2000);
    int initialActiveOrderCount = orderService.getActiveOrders(patient, null, null, null).size();
    // New Drug order
    DrugOrder order = new DrugOrder();
    order.setPatient(patient);
    order.setDrug(existingOrder.getDrug());
    order.setEncounter(encounterService.getEncounter(6));
    order.setOrderer(providerService.getProvider(1));
    order.setCareSetting(existingOrder.getCareSetting());
    order.setDosingType(FreeTextDosingInstructions.class);
    order.setDosingInstructions("2 for 10 days");
    order.setQuantity(10.0);
    order.setQuantityUnits(conceptService.getConcept(51));
    order.setNumRefills(2);
    order.setUrgency(Order.Urgency.ON_SCHEDULED_DATE);
    order.setScheduledDate(DateUtils.addDays(existingOrder.getDateStopped(), 1));
    orderService.saveOrder(order, null);
    List<Order> activeOrders = orderService.getActiveOrders(patient, null, null, null);
    assertEquals(++initialActiveOrderCount, activeOrders.size());
}
Also used : DrugOrder(org.openmrs.DrugOrder) DrugOrder(org.openmrs.DrugOrder) TestOrder(org.openmrs.TestOrder) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) Order(org.openmrs.Order) Patient(org.openmrs.Patient) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest) OrderUtilTest(org.openmrs.order.OrderUtilTest) Test(org.junit.Test)

Aggregations

DrugOrder (org.openmrs.DrugOrder)68 Test (org.junit.Test)64 OrderUtilTest (org.openmrs.order.OrderUtilTest)64 BaseContextSensitiveTest (org.openmrs.test.BaseContextSensitiveTest)64 BindException (org.springframework.validation.BindException)38 Errors (org.springframework.validation.Errors)38 Patient (org.openmrs.Patient)22 Date (java.util.Date)18 Encounter (org.openmrs.Encounter)17 Concept (org.openmrs.Concept)12 CareSetting (org.openmrs.CareSetting)11 Order (org.openmrs.Order)11 OrderType (org.openmrs.OrderType)11 TestOrder (org.openmrs.TestOrder)11 Matchers.containsInAnyOrder (org.hamcrest.Matchers.containsInAnyOrder)7 Drug (org.openmrs.Drug)7 GlobalProperty (org.openmrs.GlobalProperty)7 Calendar (java.util.Calendar)5 SimpleDateFormat (java.text.SimpleDateFormat)1 Ignore (org.junit.Ignore)1