From c787d7bd78a0d757587e185bd95b528f28dee8c3 Mon Sep 17 00:00:00 2001 From: Arjun-Go Date: Wed, 12 Jul 2023 13:57:47 +0530 Subject: [PATCH] BAH-3079 | add. medications tagged as inpatient to be fetched in active and inactive drug orders --- .../impl/BahmniDrugOrderServiceImpl.java | 28 +++++++++++++------ .../impl/BahmniDrugOrderServiceImplTest.java | 3 +- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/bahmnicore-api/src/main/java/org/bahmni/module/bahmnicore/service/impl/BahmniDrugOrderServiceImpl.java b/bahmnicore-api/src/main/java/org/bahmni/module/bahmnicore/service/impl/BahmniDrugOrderServiceImpl.java index 5f54ca0c5b..2c9bb6faa8 100644 --- a/bahmnicore-api/src/main/java/org/bahmni/module/bahmnicore/service/impl/BahmniDrugOrderServiceImpl.java +++ b/bahmnicore-api/src/main/java/org/bahmni/module/bahmnicore/service/impl/BahmniDrugOrderServiceImpl.java @@ -97,11 +97,17 @@ public Map getDiscontinuedDrugOrders(List drugOrder public List getInactiveDrugOrders(String patientUuid, Set concepts, Set drugConceptsToBeExcluded, Collection encounters) { Patient patient = openmrsPatientService.getPatientByUuid(patientUuid); - CareSetting careSettingByName = orderService.getCareSettingByName(CareSetting.CareSettingType.OUTPATIENT.toString()); + CareSetting outPatientCareSetting = orderService.getCareSettingByName(CareSetting.CareSettingType.OUTPATIENT.toString()); + CareSetting inPatientCareSetting = orderService.getCareSettingByName(CareSetting.CareSettingType.INPATIENT.toString()); Date asOfDate = new Date(); - List orders = orderDao.getInactiveOrders(patient, orderService.getOrderTypeByName("Drug order"), - careSettingByName, asOfDate, concepts, drugConceptsToBeExcluded, encounters); - return mapOrderToDrugOrder(orders); + List outPatientOrders = orderDao.getInactiveOrders(patient, orderService.getOrderTypeByName("Drug order"), + outPatientCareSetting, asOfDate, concepts, drugConceptsToBeExcluded, encounters); + List inPatientOrders = orderDao.getInactiveOrders(patient, orderService.getOrderTypeByName("Drug order"), + inPatientCareSetting, asOfDate, concepts, drugConceptsToBeExcluded, encounters); + List allActiveDrugOrders = new ArrayList<>(); + allActiveDrugOrders.addAll(outPatientOrders); + allActiveDrugOrders.addAll(inPatientOrders); + return mapOrderToDrugOrder(allActiveDrugOrders); } @Override @@ -204,10 +210,16 @@ private List getFrequencies() { private List getActiveDrugOrders(String patientUuid, Date asOfDate, Set conceptsToFilter, Set conceptsToExclude, Date startDate, Date endDate, Collection encounters) { Patient patient = openmrsPatientService.getPatientByUuid(patientUuid); - CareSetting careSettingByName = orderService.getCareSettingByName(CareSetting.CareSettingType.OUTPATIENT.toString()); - List orders = orderDao.getActiveOrders(patient, orderService.getOrderTypeByName("Drug order"), - careSettingByName, asOfDate, conceptsToFilter, conceptsToExclude, startDate, endDate, encounters); - return mapOrderToDrugOrder(orders); + CareSetting outPatientCareSetting = orderService.getCareSettingByName(CareSetting.CareSettingType.OUTPATIENT.toString()); + CareSetting inPatientCareSetting = orderService.getCareSettingByName(CareSetting.CareSettingType.INPATIENT.toString()); + List outPatientOrders = orderDao.getActiveOrders(patient, orderService.getOrderTypeByName("Drug order"), + outPatientCareSetting, asOfDate, conceptsToFilter, conceptsToExclude, startDate, endDate, encounters); + List inPatientOrders = orderDao.getActiveOrders(patient, orderService.getOrderTypeByName("Drug order"), + inPatientCareSetting, asOfDate, conceptsToFilter, conceptsToExclude, startDate, endDate, encounters); + List allActiveDrugOrders = new ArrayList<>(); + allActiveDrugOrders.addAll(outPatientOrders); + allActiveDrugOrders.addAll(inPatientOrders); + return mapOrderToDrugOrder(allActiveDrugOrders); } private List mapOrderToDrugOrder(List orders){ diff --git a/bahmnicore-api/src/test/java/org/bahmni/module/bahmnicore/service/impl/BahmniDrugOrderServiceImplTest.java b/bahmnicore-api/src/test/java/org/bahmni/module/bahmnicore/service/impl/BahmniDrugOrderServiceImplTest.java index db08d279f4..cbc9983503 100644 --- a/bahmnicore-api/src/test/java/org/bahmni/module/bahmnicore/service/impl/BahmniDrugOrderServiceImplTest.java +++ b/bahmnicore-api/src/test/java/org/bahmni/module/bahmnicore/service/impl/BahmniDrugOrderServiceImplTest.java @@ -33,6 +33,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; +import static org.mockito.Mockito.times; import static org.mockito.MockitoAnnotations.initMocks; public class BahmniDrugOrderServiceImplTest { @@ -85,7 +86,7 @@ public void shouldGetActiveDrugOrdersOfAPatientProgram() throws ParseException { bahmniDrugOrderService.getDrugOrders(PATIENT_UUID, true, conceptsToFilter, null, PATIENT_PROGRAM_UUID); final Date value = dateArgumentCaptor.getValue(); - verify(orderDao).getActiveOrders(mockPatient, mockOrderType, mockCareSetting, value, conceptsToFilter, null, null, null, encounters); + verify(orderDao, times(2)).getActiveOrders(mockPatient, mockOrderType, mockCareSetting, value, conceptsToFilter, null, null, null, encounters); } @Test