diff --git a/api/src/main/java/org/openmrs/module/patientflags/api/FlagService.java b/api/src/main/java/org/openmrs/module/patientflags/api/FlagService.java index 87c4b37..0144a18 100755 --- a/api/src/main/java/org/openmrs/module/patientflags/api/FlagService.java +++ b/api/src/main/java/org/openmrs/module/patientflags/api/FlagService.java @@ -581,4 +581,9 @@ public interface FlagService extends OpenmrsService { @Transactional(readOnly = true) public List getPatientFlags(Patient patient, Set roles, String displayPointName); + + /** + * Delete all patient f lags. + */ + public void deleteAllPatientFLags(); } diff --git a/api/src/main/java/org/openmrs/module/patientflags/api/impl/FlagServiceImpl.java b/api/src/main/java/org/openmrs/module/patientflags/api/impl/FlagServiceImpl.java index 4defe9a..68f2f34 100755 --- a/api/src/main/java/org/openmrs/module/patientflags/api/impl/FlagServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/patientflags/api/impl/FlagServiceImpl.java @@ -673,7 +673,6 @@ public Future evaluateAllFlags() { if (executor == null) { executor = Executors.newSingleThreadExecutor(); } - dao.deleteAllPatientFlags(); return executor.submit(PatientFlagTask.evaluateAllFlags()); } @@ -708,4 +707,10 @@ public List getPatientFlags(Patient patient) { public List getPatientFlags(Patient patient, Set roles, String displayPointName) { return getPatientFlags(patient, getFilter(roles, getDisplayPoint(displayPointName))); } + + @Override + public void deleteAllPatientFLags() { + dao.deleteAllPatientFlags(); + } + } diff --git a/api/src/main/java/org/openmrs/module/patientflags/task/PatientFlagTask.java b/api/src/main/java/org/openmrs/module/patientflags/task/PatientFlagTask.java index 540d616..1cca291 100644 --- a/api/src/main/java/org/openmrs/module/patientflags/task/PatientFlagTask.java +++ b/api/src/main/java/org/openmrs/module/patientflags/task/PatientFlagTask.java @@ -72,7 +72,6 @@ public void generatePatientFlags(Flag flag) { } private static void generatePatientFlags(Flag flag, FlagService service) { - service.deletePatientFlagsForFlag(flag); generatePatientFlagsForFlagAndPatient(flag,service); } @@ -127,7 +126,7 @@ private static class AllFlagsEvaluator implements Runnable { @Override public void run() { FlagService flagService = Context.getService(FlagService.class); - + flagService.deleteAllPatientFLags(); flagService.getAllFlags().forEach(flag -> Daemon.runInNewDaemonThread(new PatientFlagGenerator(flag))); } } diff --git a/api/src/test/java/org/openmrs/module/patientflags/api/impl/FlagServiceTest.java b/api/src/test/java/org/openmrs/module/patientflags/api/impl/FlagServiceTest.java index b4d01ff..ff1204c 100644 --- a/api/src/test/java/org/openmrs/module/patientflags/api/impl/FlagServiceTest.java +++ b/api/src/test/java/org/openmrs/module/patientflags/api/impl/FlagServiceTest.java @@ -431,6 +431,14 @@ public void getPatientFlags_shouldAcceptNullParameters() { assertFalse(patientFlags.isEmpty()); } + @Test + public void deleteAllPatientFags_shouldDeleteAllPatientFlags() { + Patient patient = Context.getService(PatientService.class).getPatient(1); + flagService.deleteAllPatientFLags(); + List patientFlags = flagService.getPatientFlags(patient,null,""); + assertTrue(patientFlags.isEmpty()); + } + /** * Utility methods */