From 1ce0b52595245cc7e321eb92b84f177a2c8c52ba Mon Sep 17 00:00:00 2001 From: Abinaya U Date: Wed, 31 Jan 2024 19:49:26 +0530 Subject: [PATCH] Abi | update. status as Stopped once administered and stopped a medicine --- .../module/ipd/service/impl/IPDScheduleServiceImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/omod/src/main/java/org/openmrs/module/ipd/service/impl/IPDScheduleServiceImpl.java b/omod/src/main/java/org/openmrs/module/ipd/service/impl/IPDScheduleServiceImpl.java index 018a0f2..500fc39 100644 --- a/omod/src/main/java/org/openmrs/module/ipd/service/impl/IPDScheduleServiceImpl.java +++ b/omod/src/main/java/org/openmrs/module/ipd/service/impl/IPDScheduleServiceImpl.java @@ -14,6 +14,7 @@ import org.openmrs.module.ipd.api.service.ReferenceService; import org.openmrs.module.ipd.api.service.ScheduleService; import org.openmrs.module.ipd.api.service.SlotService; +import org.openmrs.module.ipd.api.util.DateTimeUtil; import org.openmrs.module.ipd.contract.ScheduleMedicationRequest; import org.openmrs.module.ipd.factory.ScheduleFactory; import org.openmrs.module.ipd.factory.SlotFactory; @@ -142,7 +143,9 @@ private void handleDrugOrderStop(EncounterTransaction encounterTransaction){ } boolean atleastOneMedicationAdministered = existingSlots.stream().anyMatch(slot -> slot.getMedicationAdministration() != null); if (atleastOneMedicationAdministered){ // Mark status of non administered slots to stopped - existingSlots.stream().forEach(slot -> { if ((slot.getMedicationAdministration() ==null) && !slot.isStopped()) {slot.setStatus(Slot.SlotStatus.STOPPED); slotService.saveSlot(slot);}}); + existingSlots.stream().forEach(slot -> { + if ((slot.getMedicationAdministration() == null) && !slot.isStopped() && (DateTimeUtil.convertDateToLocalDateTime(drugOrder.getDateStopped()) + .compareTo(slot.getStartDateTime())) < 0) {slot.setStatus(Slot.SlotStatus.STOPPED); slotService.saveSlot(slot);}}); } else { // Void all slots existingSlots.stream().forEach(slot -> slotService.voidSlot(slot, "")); }