From 4c325b62f79288759037c790e1080a6b1571b1d1 Mon Sep 17 00:00:00 2001 From: Abinaya U <77735030+abinaya-u@users.noreply.github.com> Date: Fri, 2 Feb 2024 20:11:21 +0530 Subject: [PATCH] add. check to avoid multiple save (#23) --- .../module/ipd/service/impl/IPDScheduleServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) 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 500fc39..72e9548 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 @@ -69,6 +69,10 @@ public Schedule saveMedicationSchedule(ScheduleMedicationRequest scheduleMedicat savedSchedule = scheduleService.saveSchedule(schedule); } DrugOrder order = (DrugOrder) orderService.getOrderByUuid(scheduleMedicationRequest.getOrderUuid()); + List existingSlots = getMedicationSlots(patient.getUuid(),ServiceType.MEDICATION_REQUEST,new ArrayList<>(Arrays.asList(new String[]{order.getUuid()}))); + if (existingSlots !=null && !existingSlots.isEmpty()) { + throw new RuntimeException("Slots already created for this drug order"); + } List slotsStartTime = slotTimeCreationService.createSlotsStartTimeFrom(scheduleMedicationRequest, order); slotFactory.createSlotsForMedicationFrom(savedSchedule, slotsStartTime, order, null, SCHEDULED, ServiceType.MEDICATION_REQUEST, scheduleMedicationRequest.getComments()) .forEach(slotService::saveSlot);